[Jrisk-cvs] SF.net SVN: domination-code:[2608] Domination
Brought to you by:
yuranet
|
From: <yu...@us...> - 2025-01-09 22:46:05
|
Revision: 2608
http://sourceforge.net/p/domination/code/2608
Author: yuranet
Date: 2025-01-09 22:46:02 +0000 (Thu, 09 Jan 2025)
Log Message:
-----------
allow teg xml maps to open on macOS
Modified Paths:
--------------
Domination/ChangeLog.txt
Domination/src/net/yura/domination/engine/JavaCompatUtil.java
Domination/src_lobbyserver/net/yura/domination/lobby/server/GameSettings.java
Domination/swingUI/src/net/yura/domination/guishared/RiskFileFilter.java
Domination/swingUI/src/net/yura/domination/guishared/RiskUIUtil.java
Domination/swingUI/src/net/yura/domination/tools/mapeditor/MapEditor.java
Modified: Domination/ChangeLog.txt
===================================================================
--- Domination/ChangeLog.txt 2025-01-09 21:23:56 UTC (rev 2607)
+++ Domination/ChangeLog.txt 2025-01-09 22:46:02 UTC (rev 2608)
@@ -24,6 +24,7 @@
RiskGame.getMissions() now returns ALL game missions, to make AI development easier
SwingGUI: can replay debug game log without having to save it to file first
SwingGUI: little memory graph on debug screen
+ SwingGUI: fix - allow opening TEG xml maps in MapEditor on macOS again
1.3.1 (08.05.2024) (svn rev 2540)
Modified: Domination/src/net/yura/domination/engine/JavaCompatUtil.java
===================================================================
--- Domination/src/net/yura/domination/engine/JavaCompatUtil.java 2025-01-09 21:23:56 UTC (rev 2607)
+++ Domination/src/net/yura/domination/engine/JavaCompatUtil.java 2025-01-09 22:46:02 UTC (rev 2608)
@@ -5,6 +5,7 @@
import java.lang.reflect.Proxy;
import java.util.Collection;
import java.util.Hashtable;
+import java.util.Iterator;
import java.util.Map;
import java.util.Vector;
import java.util.logging.Level;
@@ -90,4 +91,24 @@
}
return sb.toString();
}
+
+ /**
+ * @see String#join(java.lang.CharSequence, java.lang.CharSequence...)
+ */
+ public static String join(Collection list, String delimiter) {
+ Iterator i = list.iterator();
+ if (! i.hasNext()) {
+ return "";
+ }
+
+ StringBuilder sb = new StringBuilder();
+ for (;;) {
+ Object e = i.next();
+ sb.append(e);
+ if (!i.hasNext()) {
+ return sb.toString();
+ }
+ sb.append(delimiter);
+ }
+ }
}
Modified: Domination/src_lobbyserver/net/yura/domination/lobby/server/GameSettings.java
===================================================================
--- Domination/src_lobbyserver/net/yura/domination/lobby/server/GameSettings.java 2025-01-09 21:23:56 UTC (rev 2607)
+++ Domination/src_lobbyserver/net/yura/domination/lobby/server/GameSettings.java 2025-01-09 22:46:02 UTC (rev 2608)
@@ -14,6 +14,7 @@
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import java.util.logging.Logger;
+import net.yura.domination.engine.JavaCompatUtil;
import net.yura.domination.engine.RiskUtil;
import net.yura.domination.engine.ai.AIManager;
import net.yura.domination.engine.core.RiskGame;
@@ -259,20 +260,7 @@
* then the returned string will be "hello,world"
*/
private static <E> String toOptionString(Collection<E> list) {
- Iterator<E> i = list.iterator();
- if (! i.hasNext()) {
- return "";
- }
-
- StringBuilder sb = new StringBuilder();
- for (;;) {
- E e = i.next();
- sb.append(e);
- if (!i.hasNext()) {
- return sb.toString();
- }
- sb.append(",");
- }
+ return JavaCompatUtil.join(list, ",");
}
ServerRisk getServerGame(int id) {
Modified: Domination/swingUI/src/net/yura/domination/guishared/RiskFileFilter.java
===================================================================
--- Domination/swingUI/src/net/yura/domination/guishared/RiskFileFilter.java 2025-01-09 21:23:56 UTC (rev 2607)
+++ Domination/swingUI/src/net/yura/domination/guishared/RiskFileFilter.java 2025-01-09 22:46:02 UTC (rev 2608)
@@ -4,7 +4,10 @@
import java.io.File;
import java.io.FilenameFilter;
+import java.util.ArrayList;
+import java.util.List;
import javax.swing.filechooser.FileFilter;
+import net.yura.domination.engine.JavaCompatUtil;
import net.yura.domination.engine.translation.TranslationBundle;
/**
@@ -20,10 +23,10 @@
public final static String RISK_LOG_FILES ="log";
//public final static String RISK_PROPERTIES_FILES ="properties";
- private String extension = null;
+ private final String[] extensions;
- public RiskFileFilter(String ext) {
- extension = ext;
+ public RiskFileFilter(String... ext) {
+ extensions = ext;
}
public boolean accept(File f) {
@@ -35,16 +38,14 @@
String ext = getExtension(f);
if (ext != null) {
- if (ext.equals( extension )) {
- return true;
- }
- else {
- return false;
- }
+ for (String e : extensions) {
+ if (ext.equals(e)) {
+ return true;
+ }
+ }
}
return false;
-
}
/**
@@ -55,36 +56,30 @@
String name;
- if ( extension.equals(RISK_MAP_FILES) ) {
+ if (extensions[0].equals(RISK_MAP_FILES)) {
+ name = resb.getString("riskfilefilter.map");
+ }
+ else if (extensions[0].equals(RISK_CARDS_FILES)) {
+ name = resb.getString("riskfilefilter.cards");
+ }
+ else if (extensions[0].equals(RISK_SAVE_FILES)) {
+ name = resb.getString("riskfilefilter.save");
+ }
+ else if (extensions[0].equals(RISK_SCRIPT_FILES)) {
+ name = resb.getString("riskfilefilter.script");
+ }
+ else if (extensions[0].equals(RISK_LOG_FILES)) {
+ name = resb.getString("riskfilefilter.log") ;
+ }
+ else {
+ name = resb.getString("riskfilefilter.files");
+ }
- name = resb.getString("riskfilefilter.map");
- }
- else if ( extension.equals(RISK_CARDS_FILES) ) {
-
- name = resb.getString("riskfilefilter.cards");
- }
- else if ( extension.equals(RISK_SAVE_FILES) ) {
-
- name = resb.getString("riskfilefilter.save");
- }
- else if ( extension.equals(RISK_SCRIPT_FILES) ) {
-
- name = resb.getString("riskfilefilter.script");
- }
- else if ( extension.equals(RISK_LOG_FILES) ) {
-
- name = resb.getString("riskfilefilter.log") ;
- }
- else {
- name = resb.getString("riskfilefilter.files");
- }
-
- return name + " (*."+extension+")";
-
- }//public String getDescription()
-
- public String getExtension() {
- return extension;
+ List types = new ArrayList();
+ for (String e : extensions) {
+ types.add("*." + e);
+ }
+ return name + " (" + JavaCompatUtil.join(types, ", ") + ")";
}
/**
Modified: Domination/swingUI/src/net/yura/domination/guishared/RiskUIUtil.java
===================================================================
--- Domination/swingUI/src/net/yura/domination/guishared/RiskUIUtil.java 2025-01-09 21:23:56 UTC (rev 2607)
+++ Domination/swingUI/src/net/yura/domination/guishared/RiskUIUtil.java 2025-01-09 22:46:02 UTC (rev 2608)
@@ -553,12 +553,12 @@
return getNewMapsFile(f, RiskFileFilter.RISK_MAP_FILES);
}
- public static String getNewMapsFile(Frame f,String extension) {
+ public static String getNewMapsFile(Frame f, String... extension) {
if (checkForNoSandbox()) {
return getNewMapsFileNoSandbox(f, extension);
}
else {
- return getNewFileInSandbox(f, extension);
+ return getNewFileInSandbox(f, extension[0]);
}
}
@@ -575,7 +575,7 @@
* Used if the MapStore fails, also used in the map editor
* and also for selecting the cards file
*/
- public static String getNewMapsFileNoSandbox(Frame f, String extension) {
+ public static String getNewMapsFileNoSandbox(Frame f, String... extension) {
File md = getFile(mapsdir);
File file = getFileOpenDialog(f, md, extension);
@@ -588,7 +588,7 @@
return file.getPath();
}
- public static File getFileOpenDialog(Frame parent, File directory, String extension) {
+ public static File getFileOpenDialog(Frame parent, File directory, String... extension) {
RiskFileFilter filter = new RiskFileFilter(extension);
java.io.File file;
@@ -631,9 +631,9 @@
return new File(fileDialog.getDirectory(), filename);
}
- public static String getNewFileInSandbox(Frame f,String a) {
+ public static String getNewFileInSandbox(Frame f, String type) {
- List namesvector = getFileList(a);
+ List namesvector = getFileList(type);
JComboBox combobox = new JComboBox( JavaCompatUtil.asVector(namesvector) );
@@ -649,7 +649,7 @@
int result = JOptionPane.showOptionDialog(
f, // the parent that the dialog blocks
message, // the dialog message array
- "select "+a, // the title of the dialog window
+ "select " + type, // the title of the dialog window
JOptionPane.OK_CANCEL_OPTION, // option type
JOptionPane.QUESTION_MESSAGE, // message type
null, // optional icon, use null to use the default icon
Modified: Domination/swingUI/src/net/yura/domination/tools/mapeditor/MapEditor.java
===================================================================
--- Domination/swingUI/src/net/yura/domination/tools/mapeditor/MapEditor.java 2025-01-09 21:23:56 UTC (rev 2607)
+++ Domination/swingUI/src/net/yura/domination/tools/mapeditor/MapEditor.java 2025-01-09 22:46:02 UTC (rev 2608)
@@ -528,7 +528,7 @@
else if ("load".equals(action)) {
try {
- String name = RiskUIUtil.getNewMapsFile(RiskUIUtil.findParentFrame(this), "map");
+ String name = RiskUIUtil.getNewMapsFile(RiskUIUtil.findParentFrame(this), "map", "xml");
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
|