[vassalengine-svn] SF.net SVN: vassalengine: [2118] VASSAL-src/branches/uckelman-merge/VASSAL
Brought to you by:
rodneykinney,
uckelman
From: <uck...@us...> - 2007-05-29 18:36:44
|
Revision: 2118 http://svn.sourceforge.net/vassalengine/?rev=2118&view=rev Author: uckelman Date: 2007-05-29 11:36:46 -0700 (Tue, 29 May 2007) Log Message: ----------- Various cleanup, including: Changing Vectors to ArrayLists, Changing Hashtables to HashMaps, Paramaterizing Collections, Cleaning up comments, Chaning Iterator-driven loops to foreach loops. Modified Paths: -------------- VASSAL-src/branches/uckelman-merge/VASSAL/build/module/DieManager.java VASSAL-src/branches/uckelman-merge/VASSAL/build/module/EventLog.java VASSAL-src/branches/uckelman-merge/VASSAL/build/module/Inventory.java VASSAL-src/branches/uckelman-merge/VASSAL/build/module/SpecialDiceButton.java VASSAL-src/branches/uckelman-merge/VASSAL/build/module/dice/DieServer.java VASSAL-src/branches/uckelman-merge/VASSAL/build/module/map/boardPicker/board/RegionGrid.java VASSAL-src/branches/uckelman-merge/VASSAL/build/widget/BoxWidget.java VASSAL-src/branches/uckelman-merge/VASSAL/build/widget/ListWidget.java VASSAL-src/branches/uckelman-merge/VASSAL/build/widget/PanelWidget.java VASSAL-src/branches/uckelman-merge/VASSAL/build/widget/TabWidget.java VASSAL-src/branches/uckelman-merge/VASSAL/command/ConditionalCommand.java VASSAL-src/branches/uckelman-merge/VASSAL/configure/EditPropertiesAction.java VASSAL-src/branches/uckelman-merge/VASSAL/counters/BasicPiece.java VASSAL-src/branches/uckelman-merge/VASSAL/counters/DragBuffer.java VASSAL-src/branches/uckelman-merge/VASSAL/counters/Embellishment.java VASSAL-src/branches/uckelman-merge/VASSAL/counters/MassPieceDefiner.java VASSAL-src/branches/uckelman-merge/VASSAL/counters/MultiImagePicker.java VASSAL-src/branches/uckelman-merge/VASSAL/i18n/TranslateAction.java VASSAL-src/branches/uckelman-merge/VASSAL/tools/DataArchive.java VASSAL-src/branches/uckelman-merge/VASSAL/tools/SVGManager.java Modified: VASSAL-src/branches/uckelman-merge/VASSAL/build/module/DieManager.java =================================================================== --- VASSAL-src/branches/uckelman-merge/VASSAL/build/module/DieManager.java 2007-05-29 13:26:44 UTC (rev 2117) +++ VASSAL-src/branches/uckelman-merge/VASSAL/build/module/DieManager.java 2007-05-29 18:36:46 UTC (rev 2118) @@ -17,9 +17,8 @@ */ package VASSAL.build.module; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Vector; +import java.util.ArrayList; +import java.util.HashMap; import javax.swing.DefaultListModel; import javax.swing.event.ListDataEvent; import javax.swing.event.ListDataListener; @@ -47,8 +46,9 @@ public class DieManager extends AbstractConfigurable { - private Hashtable servers; - private Vector dieButtons = new Vector(); + private HashMap<String,DieServer> servers; + private ArrayList<InternetDiceButton> dieButtons = + new ArrayList<InternetDiceButton>(); private String desc = "Die Manager"; private boolean useMultiRoll; private int defaultNDice = 2; @@ -76,7 +76,7 @@ public DieManager() { DieServer d; - servers = new Hashtable(); + servers = new HashMap<String,DieServer>(); /* * Create the Internet Dice Servers we know about @@ -152,31 +152,26 @@ // Return names of all known Dice Servers public String[] getNames() { +// FIXME: better to return zero-length array if (servers == null) { return null; } else { - String s[] = new String[servers.size()]; - Enumeration e = servers.keys(); - - for (int i = 0; e.hasMoreElements(); i++) { - s[i] = (String) e.nextElement(); - } - return s; + return servers.keySet().toArray(new String[servers.size()]); } } // Return descriptions of all known dice servers public String[] getDescriptions() { +// FIXME: better to return zero-length array if (servers == null) { return null; } else { String s[] = new String[servers.size()]; - Enumeration e = servers.elements(); - - for (int i = 0; e.hasMoreElements(); i++) { - s[i] = ((DieServer) e.nextElement()).getDescription(); + int i = 0; + for (DieServer d : servers.values()) { + s[i++] = d.getDescription(); } return s; } @@ -184,16 +179,12 @@ // Return server matching Name public DieServer getServerForName(String name) { - return (DieServer) servers.get(name); + return servers.get(name); } // Return server matching Description public DieServer getServerFromDescription(String de) { - DieServer d = null; - - Enumeration e = servers.elements(); - while (e.hasMoreElements()) { - d = (DieServer) e.nextElement(); + for (DieServer d : servers.values()) { if (de.equals(d.getDescription())) { return d; } Modified: VASSAL-src/branches/uckelman-merge/VASSAL/build/module/EventLog.java =================================================================== --- VASSAL-src/branches/uckelman-merge/VASSAL/build/module/EventLog.java 2007-05-29 13:26:44 UTC (rev 2117) +++ VASSAL-src/branches/uckelman-merge/VASSAL/build/module/EventLog.java 2007-05-29 18:36:46 UTC (rev 2118) @@ -18,8 +18,9 @@ */ package VASSAL.build.module; +import java.util.ArrayList; +import java.util.Collections; import java.util.Enumeration; -import java.util.Vector; import VASSAL.build.AbstractBuildable; import VASSAL.build.Buildable; import VASSAL.build.GameModule; @@ -31,33 +32,36 @@ public class EventLog extends AbstractBuildable implements CommandEncoder, GameComponent { public static final String EVENT_LIST = "Events"; //$NON-NLS-1$ - private Vector myEvents; - private Vector savedEvents; + private ArrayList<Event> myEvents; + private ArrayList<Event> savedEvents; public void addTo(Buildable b) { GameModule mod = GameModule.getGameModule(); mod.addCommandEncoder(this); mod.getGameState().addGameComponent(this); mod.getPrefs().addOption(new StringConfigurer(EVENT_LIST, null)); - myEvents = new Vector(); - savedEvents = new Vector(); + myEvents = new ArrayList<Event>(); + savedEvents = new ArrayList<Event>(); for (Enumeration e = decodeEvents((String) mod.getPrefs().getValue(EVENT_LIST)); e.hasMoreElements();) { - myEvents.addElement(e.nextElement()); + myEvents.add((Event) e.nextElement()); } } public void clearSaved() { - savedEvents.removeAllElements(); + savedEvents.clear(); } public void store(Event e) { - savedEvents.addElement(e); + savedEvents.add(e); } public void log(Event e) { - myEvents.addElement(e); - GameModule.getGameModule().getPrefs().getOption(EVENT_LIST).setValue(encodeEvents(myEvents.elements())); + myEvents.add(e); + GameModule.getGameModule() + .getPrefs() + .getOption(EVENT_LIST) + .setValue(encodeEvents(Collections.enumeration(myEvents))); } public Command decode(String s) { @@ -85,18 +89,20 @@ } public Command getRestoreCommand() { - return new StoreEvents(this, encodeEvents(savedEvents.elements())); + return new StoreEvents(this, + encodeEvents(Collections.enumeration(savedEvents))); } public static Enumeration decodeEvents(String s) { - Vector v = new Vector(); + ArrayList<Event> l = new ArrayList<Event>(); SequenceEncoder.Decoder se = new SequenceEncoder.Decoder(s, '|'); while (se.hasMoreTokens()) { - SequenceEncoder.Decoder sub = new SequenceEncoder.Decoder(se.nextToken(), ','); - v.addElement(new Event(Long.parseLong(sub.nextToken()), - sub.nextToken(), sub.nextToken())); + SequenceEncoder.Decoder sub = + new SequenceEncoder.Decoder(se.nextToken(), ','); + l.add(new Event(Long.parseLong(sub.nextToken()), + sub.nextToken(), sub.nextToken())); } - return v.elements(); + return Collections.enumeration(l); } public static String encodeEvents(Enumeration e) { Modified: VASSAL-src/branches/uckelman-merge/VASSAL/build/module/Inventory.java =================================================================== --- VASSAL-src/branches/uckelman-merge/VASSAL/build/module/Inventory.java 2007-05-29 13:26:44 UTC (rev 2117) +++ VASSAL-src/branches/uckelman-merge/VASSAL/build/module/Inventory.java 2007-05-29 18:36:46 UTC (rev 2118) @@ -42,7 +42,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import java.util.Vector; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -208,8 +207,8 @@ } public void addTo(Buildable b) { - // Support for players changing sides - PlayerRoster.addSideChangeListener(this); + // Support for players changing sides + PlayerRoster.addSideChangeListener(this); launch.setAlignmentY(0.0F); GameModule.getGameModule().getToolBar().add(getComponent()); GameModule.getGameModule().getGameState().addGameComponent(this); @@ -283,37 +282,37 @@ protected TreeCellRenderer initTreeCellRenderer() { return new DefaultTreeCellRenderer() { - private static final long serialVersionUID = -250332615261355856L; + private static final long serialVersionUID = -250332615261355856L; - public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { - super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf && !foldersOnly, row, hasFocus); - if (value instanceof CounterNode) { - final GamePiece piece = ((CounterNode) value).getCounter().getPiece(); - if (piece != null) { - final Rectangle r = piece.getShape().getBounds(); - r.x = (int) Math.round(r.x * pieceZoom); - r.y = (int) Math.round(r.y * pieceZoom); - r.width = (int) Math.round(r.width * pieceZoom); - r.height = (int) Math.round(r.height * pieceZoom); - setIcon(new Icon() { + public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { + super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf && !foldersOnly, row, hasFocus); + if (value instanceof CounterNode) { + final GamePiece piece = ((CounterNode) value).getCounter().getPiece(); + if (piece != null) { + final Rectangle r = piece.getShape().getBounds(); + r.x = (int) Math.round(r.x * pieceZoom); + r.y = (int) Math.round(r.y * pieceZoom); + r.width = (int) Math.round(r.width * pieceZoom); + r.height = (int) Math.round(r.height * pieceZoom); + setIcon(new Icon() { - public int getIconHeight() { - return r.height; - } + public int getIconHeight() { + return r.height; + } - public int getIconWidth() { - return r.width; - } + public int getIconWidth() { + return r.width; + } - public void paintIcon(Component c, Graphics g, int x, int y) { - piece.draw(g, -r.x, -r.y, c, pieceZoom); - } + public void paintIcon(Component c, Graphics g, int x, int y) { + piece.draw(g, -r.x, -r.y, c, pieceZoom); + } - }); - } - } - return this; - } + }); + } + } + return this; + } }; } @@ -323,9 +322,9 @@ // Written by Scot McConnachie. JButton writeButton = new JButton(Resources.getString(Resources.SAVE)); writeButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - inventoryToText(); - } + public void actionPerformed(ActionEvent e) { + inventoryToText(); + } }); buttonBox.add(writeButton); JButton refreshButton = new JButton(Resources.getString(Resources.REFRESH)); @@ -357,28 +356,28 @@ * TODO rework text display of Inventory */ protected void inventoryToText() { - StringBuffer output = new StringBuffer(""); //$NON-NLS-1$ - FileChooser fc = GameModule.getGameModule().getFileChooser(); - if (fc.showSaveDialog() == FileChooser.CANCEL_OPTION) { - return; - } - // TODO replace this hack - mapSeparator = System.getProperty("line.separator"); //$NON-NLS-1$ - // groupSeparator = mapSeparator + " "; - // groupSeparator = " "; - output.append(results.getResultString()); - // .substring(1).replaceAll( - // mapSeparator, System.getProperty("line.separator")); - try { - PrintWriter p = new PrintWriter(new FileOutputStream(fc - .getSelectedFile().getPath())); - p.print(output); - p.close(); - Command c = new Chatter.DisplayText(GameModule.getGameModule().getChatter(), Resources.getString("Inventory.wrote", fc.getSelectedFile().getName())); //$NON-NLS-1$ - c.execute(); - } catch (IOException e) { - JOptionPane.showMessageDialog(null, e.getMessage()); - } + StringBuffer output = new StringBuffer(""); //$NON-NLS-1$ + FileChooser fc = GameModule.getGameModule().getFileChooser(); + if (fc.showSaveDialog() == FileChooser.CANCEL_OPTION) { + return; + } + // TODO replace this hack + mapSeparator = System.getProperty("line.separator"); //$NON-NLS-1$ + // groupSeparator = mapSeparator + " "; + // groupSeparator = " "; + output.append(results.getResultString()); + // .substring(1).replaceAll( + // mapSeparator, System.getProperty("line.separator")); + try { + PrintWriter p = new PrintWriter(new FileOutputStream(fc + .getSelectedFile().getPath())); + p.print(output); + p.close(); + Command c = new Chatter.DisplayText(GameModule.getGameModule().getChatter(), Resources.getString("Inventory.wrote", fc.getSelectedFile().getName())); //$NON-NLS-1$ + c.execute(); + } catch (IOException e) { + JOptionPane.showMessageDialog(null, e.getMessage()); + } } public GamePiece getSelectedCounter() { @@ -411,55 +410,56 @@ } private void buildTreeModel() { - // Initialize all pieces with CurrentBoard correctly. - for (Iterator i = VASSAL.build.module.Map.getAllMaps(); i.hasNext();) { - VASSAL.build.module.Map m = (VASSAL.build.module.Map) i.next(); - m.getPieces(); - } - - ArrayList path = new ArrayList(); - for (int i = 0; i < groupBy.length; i++) - path.add(groupBy[i]); - results = new CounterInventory(new Counter(this.getConfigureName()), path, sortPieces); + // Initialize all pieces with CurrentBoard correctly. + for (Iterator i = VASSAL.build.module.Map.getAllMaps(); i.hasNext();) { + VASSAL.build.module.Map m = (VASSAL.build.module.Map) i.next(); + m.getPieces(); + } + + ArrayList<String> path = new ArrayList<String>(); + for (int i = 0; i < groupBy.length; i++) + path.add(groupBy[i]); + results = new CounterInventory( + new Counter(this.getConfigureName()), path, sortPieces); - PieceIterator pi = new PieceIterator(GameModule.getGameModule().getGameState().getPieces(), piecePropertiesFilter); + PieceIterator pi = new PieceIterator( + GameModule.getGameModule().getGameState().getPieces(), + piecePropertiesFilter); - while (pi.hasMoreElements()) { - ArrayList groups = new ArrayList(); - GamePiece p = pi.nextPiece(); + while (pi.hasMoreElements()) { + ArrayList<String> groups = new ArrayList<String>(); + GamePiece p = pi.nextPiece(); - for (int i = 0; i < groupBy.length; i++) { - if (groupBy[i].length() > 0) { - String prop = (String) p.getProperty(groupBy[i]); - if (prop != null) - groups.add(p.getProperty(groupBy[i])); - } - } + for (int i = 0; i < groupBy.length; i++) { + if (groupBy[i].length() > 0) { + String prop = (String) p.getProperty(groupBy[i]); + if (prop != null) + groups.add(prop); + } + } - int count = 1; - if (nonLeafFormat.length() > 0) - count = getTotalValue(p); + int count = 1; + if (nonLeafFormat.length() > 0) + count = getTotalValue(p); - Counter c; - c = new Counter(p, groups, count, pieceFormat, sortFormat); - // Store - results.insert(c); - } + Counter c; + c = new Counter(p, groups, count, pieceFormat, sortFormat); + // Store + results.insert(c); + } } - - protected int getTotalValue(GamePiece p) { - String s = (String) p.getProperty(nonLeafFormat); - int count = 1; - try { - count = Integer.parseInt(s); - } - catch (Exception e) { - count = 1; - } + String s = (String) p.getProperty(nonLeafFormat); + int count = 1; + try { + count = Integer.parseInt(s); + } + catch (Exception e) { + count = 1; + } - return count; + return count; } public VASSAL.build.module.documentation.HelpFile getHelpFile() { @@ -471,26 +471,26 @@ } public String[] getAttributeDescriptions() { - return new String[] {"Name: ", "Button text: ", "Tooltip text: ","Button icon: ", "Hotkey: ", // "Display", - "Show only pieces matching these properties: ", "Sort and Group By Properties", - "Label for folders: ", "Show only folders?", "Label for pieces: ", "Sort?", "Label for sort: ", - "Sorting method: ", "Center on selected piece?", - "Forward key strokes to selected piece?", "Show right-click menu of piece?", "Draw piece images?", "Zoom factor: ", "Available to these sides"}; + return new String[] {"Name: ", "Button text: ", "Tooltip text: ","Button icon: ", "Hotkey: ", // "Display", + "Show only pieces matching these properties: ", "Sort and Group By Properties", + "Label for folders: ", "Show only folders?", "Label for pieces: ", "Sort?", "Label for sort: ", + "Sorting method: ", "Center on selected piece?", + "Forward key strokes to selected piece?", "Show right-click menu of piece?", "Draw piece images?", "Zoom factor: ", "Available to these sides"}; } public Class[] getAttributeTypes() { - return new Class[] {String.class, String.class, String.class, IconConfig.class, KeyStroke.class, // DestConfig.class, - PropertyExpression.class, String[].class, String.class, Boolean.class, - PieceFormatConfig.class, Boolean.class, PieceFormatConfig.class, - SortConfig.class, Boolean.class, Boolean.class, Boolean.class, Boolean.class, - Double.class, String[].class}; + return new Class[] {String.class, String.class, String.class, IconConfig.class, KeyStroke.class, // DestConfig.class, + PropertyExpression.class, String[].class, String.class, Boolean.class, + PieceFormatConfig.class, Boolean.class, PieceFormatConfig.class, + SortConfig.class, Boolean.class, Boolean.class, Boolean.class, Boolean.class, + Double.class, String[].class}; } public String[] getAttributeNames() { - return new String[] {NAME, BUTTON_TEXT, TOOLTIP, ICON, HOTKEY, // DEST, - FILTER, GROUP_BY, NON_LEAF_FORMAT, FOLDERS_ONLY, LEAF_FORMAT, - SORT_PIECES, SORT_FORMAT, - SORTING, CENTERONPIECE, FORWARD_KEYSTROKE, SHOW_MENU, DRAW_PIECES, PIECE_ZOOM, SIDES}; + return new String[] {NAME, BUTTON_TEXT, TOOLTIP, ICON, HOTKEY, // DEST, + FILTER, GROUP_BY, NON_LEAF_FORMAT, FOLDERS_ONLY, LEAF_FORMAT, + SORT_PIECES, SORT_FORMAT, + SORTING, CENTERONPIECE, FORWARD_KEYSTROKE, SHOW_MENU, DRAW_PIECES, PIECE_ZOOM, SIDES}; } public static class IconConfig implements ConfigurerFactory { @@ -504,14 +504,14 @@ } } // public static class DestConfig implements ConfigurerFactory { -// public Configurer getConfigurer(AutoConfigurable c, String key, String name) { -// return new StringEnumConfigurer(key, name, DEST_OPTIONS); -// } +// public Configurer getConfigurer(AutoConfigurable c, String key, String name) { +// return new StringEnumConfigurer(key, name, DEST_OPTIONS); +// } // } public static class SortConfig implements ConfigurerFactory { - public Configurer getConfigurer(AutoConfigurable c, String key, String name) { - return new StringEnumConfigurer(key,name,SORT_OPTIONS); - } + public Configurer getConfigurer(AutoConfigurable c, String key, String name) { + return new StringEnumConfigurer(key,name,SORT_OPTIONS); + } } public void setAttribute(String key, Object o) { @@ -585,13 +585,13 @@ sortPieces = getBooleanValue(o); } else if (SORT_FORMAT.equals(key)) { - sortFormat = (String) o; + sortFormat = (String) o; } else if (SORTING.equals(key)) { - sortStrategy = (String) o; + sortStrategy = (String) o; } // else if (DEST.equals(key)) { -// destination = (String) o; +// destination = (String) o; // } else { @@ -681,13 +681,13 @@ return sortPieces + ""; //$NON-NLS-1$ } else if (SORT_FORMAT.equals(key)) { - return sortFormat; + return sortFormat; } else if (SORTING.equals(key)) { - return sortStrategy; + return sortStrategy; } // else if (DEST.equals(key)) { -// return destination; +// return destination; // } else { @@ -701,8 +701,8 @@ public void setup(boolean gameStarting) { launch.setEnabled(gameStarting && enabledForPlayersSide()); - if (gameStarting) - setupLaunch(); + if (gameStarting) + setupLaunch(); } protected void setupLaunch() { @@ -714,7 +714,7 @@ * Update inventory according to change of side. */ public void sideChanged(String oldSide, String newSide) { - setupLaunch(); + setupLaunch(); } protected boolean enabledForPlayersSide() { @@ -766,7 +766,7 @@ Command c = new NullCommand(); final TreePath[] tp = tree.getSelectionPaths(); // set to not get duplicates - HashSet pieces = new HashSet(); + HashSet<GamePiece> pieces = new HashSet<GamePiece>(); for (int i = 0; i < tp.length; i++) { CounterNode node = (CounterNode) tp[i].getLastPathComponent(); if (node.isLeaf()) { @@ -780,8 +780,8 @@ } } } - for (Iterator i = pieces.iterator(); i.hasNext();) { - GamePiece piece = (GamePiece) i.next(); + + for (GamePiece piece : pieces) { GameModule.getGameModule().sendAndLog(piece.keyEvent(keyStroke)); } return c; @@ -793,7 +793,7 @@ private void refresh() { // Make an attempt to keep the same nodes expanded - Set expanded = new HashSet(); + HashSet<String> expanded = new HashSet<String>(); for (int i = 0, n = tree.getRowCount(); i < n; ++i) { if (tree.isExpanded(i)) { expanded.add(tree.getPathForRow(i).getLastPathComponent().toString()); @@ -801,8 +801,10 @@ } buildTreeModel(); tree.setModel(results); + for (int i = 0; i < tree.getRowCount(); ++i) { - if (expanded.contains(tree.getPathForRow(i).getLastPathComponent().toString())) { + if (expanded.contains( + tree.getPathForRow(i).getLastPathComponent().toString())) { tree.expandRow(i); } } @@ -867,9 +869,9 @@ // } // } // public static class SortStrategy extends StringEnum { -// public String[] getValidValues(AutoConfigurable target) { -// return new String[] {ALPHA, LENGTHALPHA, NUMERIC}; -// } +// public String[] getValidValues(AutoConfigurable target) { +// return new String[] {ALPHA, LENGTHALPHA, NUMERIC}; +// } // } /** @@ -907,7 +909,7 @@ // piece can be null, so provide a alternate name public String getName() { - if (piece != null) + if (piece != null) return piece.getName(); return localName; } @@ -1043,12 +1045,14 @@ public class CounterNode implements Comparable { protected final String entry; protected final Counter counter; - protected List children; + protected ArrayList<CounterNode> children; protected int level; // protected int depth; - public CounterNode(final String entry, final Counter counter, final int level) { + public CounterNode(final String entry, + final Counter counter, + final int level) { this(entry, counter); this.level = level; } @@ -1059,7 +1063,7 @@ this.entry = entry; this.counter = counter; counter.setNode(this); - children = new ArrayList(); + children = new ArrayList<CounterNode>(); } public String toString() { @@ -1079,7 +1083,7 @@ if (getLevel() > 0) sep.append(mapSeparator); for (int i = 0; i < getLevel(); i++) - sep.append(groupSeparator); + sep.append(groupSeparator); return sep.toString(); } @@ -1093,8 +1097,7 @@ else name.append(getEntry()); - for (Iterator i = children.iterator(); i.hasNext();) { - CounterNode child = (CounterNode) i.next(); + for (CounterNode child : children) { name.append(child.toResultString()); } return name.toString(); @@ -1111,25 +1114,25 @@ public void addChild(final CounterNode counterNode, boolean sort) { children.add(counterNode); if (sort) - sortChildren(); + sortChildren(); } - public void addChild(final int i, final CounterNode counterNode, boolean sort) { + public void addChild(final int i, + final CounterNode counterNode, boolean sort) { children.add(i, counterNode); if (sort) - sortChildren(); + sortChildren(); } + protected void sortChildren() { - - if (sortStrategy.equals(ALPHA)) - Collections.sort(children); - else if (sortStrategy.equals(LENGTHALPHA)) - Collections.sort(children, new LengthAlpha()); - else if (sortStrategy.equals(NUMERIC)) - Collections.sort(children, new Numerical()); - else - Collections.sort(children); - + if (sortStrategy.equals(ALPHA)) + Collections.sort(children); + else if (sortStrategy.equals(LENGTHALPHA)) + Collections.sort(children, new LengthAlpha()); + else if (sortStrategy.equals(NUMERIC)) + Collections.sort(children, new Numerical()); + else + Collections.sort(children); } public void removeChild(CounterNode child) { @@ -1166,8 +1169,7 @@ value = counter.getValue(); // inform children about update - for (Iterator i = children.iterator(); i.hasNext();) { - CounterNode child = (CounterNode) i.next(); + for (CounterNode child : children) { value += child.updateValues(); } @@ -1185,192 +1187,197 @@ children.clear(); return; } - for (Iterator i = children.iterator(); i.hasNext();) { - CounterNode child = (CounterNode) i.next(); + + for (CounterNode child : children) { child.cutLevel(cut - 1); } } public void cutLeaves() { - List toBeRemoved = new ArrayList(); - for (Iterator i = children.iterator(); i.hasNext();) { - CounterNode child = (CounterNode) i.next(); - if (child.isLeaf()) { + ArrayList<CounterNode> toBeRemoved = new ArrayList<CounterNode>(); + for (CounterNode child : children) { + if (child.isLeaf()) toBeRemoved.add(child); - } else child.cutLeaves(); } - for (Iterator i = toBeRemoved.iterator(); i.hasNext();) { - CounterNode removeMe = (CounterNode) i.next(); - children.remove(removeMe); - } + children.removeAll(toBeRemoved); } /** * Compare this CounterNode to another one based on the respective SortKeys. */ - public int compareTo(Object node) { - CounterNode other = (CounterNode) node; - return this.toSortKey().compareTo(other.toSortKey()); - } + public int compareTo(Object node) { + CounterNode other = (CounterNode) node; + return this.toSortKey().compareTo(other.toSortKey()); + } - /** - * Sort this CounterNode by the counters key, if no counter use the label. If no children, use the - * name of the counterNode, probably could be $PropertyValue$ as well? - * @return key as String - */ - protected String toSortKey() { - String sortKey = getEntry(); - if (counter != null) - sortKey = counter.toSortKey(); - if (!children.isEmpty()) - sortKey = toString(); - return sortKey; - } + /** + * Sort this CounterNode by the counters key, if no counter use the label. + * If no children, use the name of the counterNode, probably could be + * $PropertyValue$ as well? + * + * @return key as String + */ + protected String toSortKey() { + String sortKey = getEntry(); + if (counter != null) + sortKey = counter.toSortKey(); + if (!children.isEmpty()) + sortKey = toString(); + return sortKey; + } - /** - * Base class for comparing two CounterNodes. Contains methods for sanity checking of - * arguments and comparing non-sane arguments. - * @author spindler - * - */ - protected class CompareCounterNodes { - /** - * Sanity check for arguments. - * @param arg0 - * @param arg1 - * @return true if arguments looks processable, false else - */ - protected boolean argsOK(Object arg0, Object arg1) { - return (arg0 != null && - arg1 != null && - arg0 instanceof CounterNode && - arg1 instanceof CounterNode); - } - - protected int compareStrangeArgs(Object arg0, Object arg1) { - if (arg1.equals(arg1)) - return 0; + /** + * Base class for comparing two CounterNodes. Contains methods for + * sanity checking of arguments and comparing non-sane arguments. + * + * @author spindler + */ + protected class CompareCounterNodes { + /** + * Sanity check for arguments. + * @param arg0 + * @param arg1 + * @return true if arguments looks processable, false else + */ + protected boolean argsOK(Object arg0, Object arg1) { + return (arg0 != null && + arg1 != null && + arg0 instanceof CounterNode && + arg1 instanceof CounterNode); + } + + protected int compareStrangeArgs(Object arg0, Object arg1) { + if (arg1.equals(arg1)) + return 0; + + if (arg0 == null) + return 1; + if (arg1 == null) + return -1; + if (arg0 instanceof CounterNode && !(arg1 instanceof CounterNode)) + return -1; + if (arg1 instanceof CounterNode && !(arg0 instanceof CounterNode)) + return 1; + + throw new RuntimeException("These CounterNodes are not strange!"); + } + } + + /** + * Compare two CounterNodes based on the alphanumerical order of their + * SortKeys. + * + * @author spindler + */ + protected class Alpha extends CompareCounterNodes implements Comparator { - if (arg0 == null) - return 1; - if (arg1 == null) - return -1; - if (arg0 instanceof CounterNode && !(arg1 instanceof CounterNode)) - return -1; - if (arg1 instanceof CounterNode && !(arg0 instanceof CounterNode)) - return 1; - - throw new RuntimeException("These CounterNodes are not strange!"); - } - } - - /** - * Compare two CounterNodes based on the alphanumerical order of their SortKeys. - * @author spindler - * - */ - protected class Alpha extends CompareCounterNodes implements Comparator { + public int compare(Object arg0, Object arg1) { + if (!argsOK(arg0, arg1)) + return compareStrangeArgs(arg0, arg1); + CounterNode left = (CounterNode) arg0; + CounterNode right = (CounterNode) arg1; + + return left.compareTo(right); + } + } - public int compare(Object arg0, Object arg1) { - if (!argsOK(arg0, arg1)) - return compareStrangeArgs(arg0, arg1); - CounterNode left = (CounterNode) arg0; - CounterNode right = (CounterNode) arg1; + /** + * Compare two CounterNodes based on the first integer value found in + * their SortKeys. If a CounterNodes SortKey does not contain an integer + * at all it is assigned the lowest available integer. + * + * @author spindler + */ + protected class Numerical extends CompareCounterNodes + implements Comparator { + protected final String regex = "\\d+"; //$NON-NLS-1$ + protected final Pattern p = Pattern.compile(regex); - return left.compareTo(right); - } - - } + /** + * Get first integer in key, if any. Otherwise return lowest possible + * integer. + * + * @param key is a string that may or may not contain an integer value + * @return the value of the integer found, min(Integer) otherwise + * + */ + protected int getInt(String key) { + int found = Integer.MIN_VALUE; + Matcher match = p.matcher(key); - /** - * Compare two CounterNodes based on the first integer value found in their SortKeys. - * If a CounterNodes SortKey does not contain an integer at all it is assigned the lowest - * available integer. - * @author spindler - * - */ - protected class Numerical extends CompareCounterNodes implements Comparator { - - protected final String regex = "\\d+"; //$NON-NLS-1$ - protected final Pattern p = Pattern.compile(regex); - - /** - * Get first integer in key, if any. Otherwise return lowest possible integer. - * @param key is a string that may or may not contain an integer value - * @return the value of the integer found, min(Integer) otherwise - * - */ - protected int getInt(String key) { - int found = Integer.MIN_VALUE; - Matcher match = p.matcher(key); - - if (!match.find()) { - // return minimum value - return found; - } - int start = match.start(); - found = Integer.parseInt(key.substring(start, match.end())); + if (!match.find()) { + // return minimum value + return found; + } + int start = match.start(); + found = Integer.parseInt(key.substring(start, match.end())); - // Check for sign - if ( (start > 0) && (key.charAt(start-1) == '-') ) { - // negative integer found - // Is this a safe operation? What happens when MAX_VALUE * -1 < MIN_VALUE? - found *= -1; - } - return found; - } - /** - * Compare two CounterNodes based on the first integer found in their SortKeys. - */ - public int compare(Object arg0, Object arg1) { - if (!argsOK(arg0, arg1)) - return compareStrangeArgs(arg0, arg1); - CounterNode left = (CounterNode) arg0; - CounterNode right = (CounterNode) arg1; + // Check for sign + if ( (start > 0) && (key.charAt(start-1) == '-') ) { + // negative integer found + // FIXME: Is this a safe operation? What happens when + // MAX_VALUE * -1 < MIN_VALUE? + found *= -1; + } + return found; + } - int l = getInt(left.toSortKey()); - int r = getInt(right.toSortKey()); + /** + * Compare two CounterNodes based on the first integer found in their + * SortKeys. + */ + public int compare(Object arg0, Object arg1) { + if (!argsOK(arg0, arg1)) + return compareStrangeArgs(arg0, arg1); + CounterNode left = (CounterNode) arg0; + CounterNode right = (CounterNode) arg1; + + int l = getInt(left.toSortKey()); + int r = getInt(right.toSortKey()); - if (l < r) - return -1; - if (l > r) - return 1; + if (l < r) + return -1; + if (l > r) + return 1; - return 0; - } - } - /** - * Compare two CounterNodes based on the length of their SortKeys and alphanumerical sorting. - * @author spindler - * - */ - protected class LengthAlpha extends CompareCounterNodes implements Comparator { - public int compare(Object arg0, Object arg1) { - if (!argsOK(arg0, arg1)) - return compareStrangeArgs(arg0, arg1); - CounterNode left = (CounterNode) arg0; - CounterNode right = (CounterNode) arg1; - - int leftLength = left.toSortKey().length(); - int rightLength = right.toSortKey().length(); - if (leftLength < rightLength) - return -1; - if (leftLength > rightLength) - return 1; - // Native comparism - return (left.compareTo(right)); - } - } + return 0; + } + } + /** + * Compare two CounterNodes based on the length of their SortKeys and + * alphanumerical sorting. + * + * @author spindler + */ + protected class LengthAlpha extends CompareCounterNodes + implements Comparator { + public int compare(Object arg0, Object arg1) { + if (!argsOK(arg0, arg1)) + return compareStrangeArgs(arg0, arg1); + CounterNode left = (CounterNode) arg0; + CounterNode right = (CounterNode) arg1; + + int leftLength = left.toSortKey().length(); + int rightLength = right.toSortKey().length(); + if (leftLength < rightLength) + return -1; + if (leftLength > rightLength) + return 1; + // Native comparison + return (left.compareTo(right)); + } + } } public class CounterInventory implements TreeModel { // Needed for TreeModel - protected Vector treeModelListeners = new Vector(); + protected ArrayList<TreeModelListener> treeModelListeners = + new ArrayList<TreeModelListener>(); // This contains shortcuts to the nodes of the tree - protected Map inventory; + protected HashMap<String,CounterNode> inventory; // The start of the tree protected CounterNode root; // Text view of the tree @@ -1385,7 +1392,7 @@ public CounterInventory(Counter c, ArrayList path, boolean sort) { this.root = new CounterNode(c.getName(), c); this.path = path; - this.inventory = new HashMap(); + this.inventory = new HashMap<String,CounterNode>(); this.sort = sort; changed = true; } @@ -1404,13 +1411,15 @@ for (int j = 0; path != null && j < path.length; j++) { hash.append(path[j]); if (inventory.get(hash.toString()) == null) { - newNode = new CounterNode(path[j], new Counter(path[j]), insertNode.getLevel() + 1); + newNode = new CounterNode( + path[j], new Counter(path[j]), insertNode.getLevel() + 1); inventory.put(hash.toString(), newNode); insertNode.addChild(newNode, sort); } - insertNode = (CounterNode) inventory.get(hash.toString()); + insertNode = inventory.get(hash.toString()); } - newNode = new CounterNode(counter.toString(), counter, insertNode.getLevel() + 1); + newNode = new CounterNode( + counter.toString(), counter, insertNode.getLevel() + 1); insertNode.addChild(newNode, sort); changed = true; } @@ -1473,10 +1482,11 @@ treeModelListeners.remove(l); } - public void fireNodesRemoved(Object[] path, int[] childIndices, Object[] children) { + public void fireNodesRemoved(Object[] path, int[] childIndices, + Object[] children) { TreeModelEvent e = new TreeModelEvent(this, path, childIndices, children); - for (Enumeration en = treeModelListeners.elements(); en.hasMoreElements();) { - ((TreeModelListener) en.nextElement()).treeNodesRemoved(e); + for (TreeModelListener l : treeModelListeners) { + l.treeNodesRemoved(e); } } @@ -1495,5 +1505,4 @@ } } - } Modified: VASSAL-src/branches/uckelman-merge/VASSAL/build/module/SpecialDiceButton.java =================================================================== --- VASSAL-src/branches/uckelman-merge/VASSAL/build/module/SpecialDiceButton.java 2007-05-29 13:26:44 UTC (rev 2117) +++ VASSAL-src/branches/uckelman-merge/VASSAL/build/module/SpecialDiceButton.java 2007-05-29 18:36:46 UTC (rev 2118) @@ -30,7 +30,6 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import java.util.Vector; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JDialog; @@ -65,7 +64,7 @@ protected static UniqueIdManager idMgr = new UniqueIdManager("SpecialDiceButton"); //$NON-NLS-1$ public static final String SHOW_RESULTS_COMMAND = "SHOW_RESULTS\t"; //$NON-NLS-1$ - protected List dice = new ArrayList(); + protected ArrayList<SpecialDie> dice = new ArrayList<SpecialDie>(); protected java.util.Random ran; protected boolean reportResultAsText = true; protected boolean reportResultInWindow = false; @@ -150,8 +149,8 @@ protected void DR() { int[] results = new int[dice.size()]; int i = 0; - for (Iterator it = dice.iterator(); it.hasNext();) { - results[i++] = ran.nextInt(((SpecialDie) it.next()).getFaceCount()); + for (SpecialDie sd : dice) { + results[i++] = ran.nextInt(sd.getFaceCount()); } Command c = reportResults(results); if (reportResultAsText) { @@ -180,7 +179,7 @@ int total = 0; for (int i = 0; i < dice.size(); ++i) { - SpecialDie die = (SpecialDie) dice.get(i); + SpecialDie die = dice.get(i); format.setProperty("result" + (i + 1), die.getTextValue(results[i])); //$NON-NLS-1$ total += die.getIntValue(results[i]); } @@ -505,13 +504,13 @@ return EMPTY; } SequenceEncoder.Decoder st = new SequenceEncoder.Decoder(s, ','); - Vector v = new Vector(); + ArrayList<String> l = new ArrayList<String>(); while (st.hasMoreTokens()) { - v.addElement(st.nextToken()); + l.add(st.nextToken()); } - int[] val = new int[v.size()]; + int[] val = new int[l.size()]; for (int i = 0; i < val.length; ++i) { - val[i] = Integer.parseInt((String) v.elementAt(i)); + val[i] = Integer.parseInt(l.get(i)); } return val; } @@ -544,14 +543,14 @@ st.nextToken(); } if (st != null) { - List l = new ArrayList(); + ArrayList<String> l = new ArrayList<String>(); while (st.hasMoreTokens()) { l.add(st.nextToken()); } int[] results = new int[l.size()]; int i = 0; - for (Iterator iterator = l.iterator(); iterator.hasNext();) { - results[i++] = Integer.parseInt((String) iterator.next()); + for (String n : l) { + results[i++] = Integer.parseInt(n); } return new ShowResults(this, results); } @@ -628,4 +627,4 @@ } // end class SpecialDiceIcon -} \ No newline at end of file +} Modified: VASSAL-src/branches/uckelman-merge/VASSAL/build/module/dice/DieServer.java =================================================================== --- VASSAL-src/branches/uckelman-merge/VASSAL/build/module/dice/DieServer.java 2007-05-29 13:26:44 UTC (rev 2117) +++ VASSAL-src/branches/uckelman-merge/VASSAL/build/module/dice/DieServer.java 2007-05-29 18:36:46 UTC (rev 2118) @@ -6,6 +6,7 @@ import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; +import java.util.ArrayList; import java.util.Vector; import VASSAL.build.GameModule; @@ -47,8 +48,8 @@ /* * Each implemented die server must provide this routine to interpret the - * html output generated by the site in response to the buildInternetRollString - * call. + * html output generated by the site in response to the + * {@link #buildInternetRollString} call. */ public abstract void parseInternetRollString(RollSet rollSet, Vector results); @@ -249,7 +250,7 @@ public void doIRoll(RollSet toss) throws IOException { String[] rollString = buildInternetRollString(toss); - Vector returnString = new Vector(); + ArrayList<String> returnString = new ArrayList<String>(); // rollString[0] = // "number1=2&type1=6&number2=2&type2=30&number3=2&type3=30" // + "&number4=0&type4=2&number5=0&type5=2&number6=0&type6=2&number7=0&type7=2" @@ -267,18 +268,17 @@ out.close(); - BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + BufferedReader in = + new BufferedReader(new InputStreamReader(connection.getInputStream())); String inputLine; - int i = 0; while ((inputLine = in.readLine()) != null) - returnString.add(i++, inputLine); + returnString.add(inputLine); in.close(); - parseInternetRollString(toss, returnString); - + parseInternetRollString(toss, new Vector(returnString)); } /** @@ -296,5 +296,4 @@ return email; } } - } Modified: VASSAL-src/branches/uckelman-merge/VASSAL/build/module/map/boardPicker/board/RegionGrid.java =================================================================== --- VASSAL-src/branches/uckelman-merge/VASSAL/build/module/map/boardPicker/board/RegionGrid.java 2007-05-29 13:26:44 UTC (rev 2117) +++ VASSAL-src/branches/uckelman-merge/VASSAL/build/module/map/boardPicker/board/RegionGrid.java 2007-05-29 18:36:46 UTC (rev 2118) @@ -57,8 +57,7 @@ import java.awt.event.WindowEvent; import java.awt.image.BufferedImage; import java.util.ArrayList; -import java.util.Enumeration; -import java.util.Hashtable; +import java.util.HashMap; import java.util.Iterator; import javax.swing.Action; @@ -97,7 +96,7 @@ // AreaList is the table of Map areas // pointList is a cross-reference of points to Area names - protected Hashtable regionList = new Hashtable(); + protected HashMap<Point,Region> regionList = new HashMap<Point,Region>(); protected GridContainer container; protected boolean visible = false; protected static boolean inConfig = false; @@ -247,8 +246,8 @@ public void configureRegions() { inConfig = true; - for (Enumeration e = regionList.elements(); e.hasMoreElements(); ) { - ((Region) e.nextElement()).setSelected(false); + for (Region r : regionList.values()) { + r.setSelected(false); } regionConfigurer = new Config(this); regionConfigurer.setVisible(true); @@ -302,17 +301,11 @@ // Internal routine to find closest point for region name reporting // protected Point doSnap(Point p) { + double distSq, minDistSq = 999999999; + Point snapPoint = p; - double distSq, minDistSq = 999999999; - Point snapPoint, checkPoint; - - // - // Enumerate through each grid point and determine the closest. - // - snapPoint = p; - Enumeration e = regionList.keys(); - while (e.hasMoreElements()) { - checkPoint = (Point) e.nextElement(); + // Iterate over each grid point and determine the closest. + for (Point checkPoint : regionList.keySet()) { distSq = (p.x - checkPoint.x) * (p.x - checkPoint.x) + (p.y - checkPoint.y) * (p.y - checkPoint.y); @@ -343,7 +336,7 @@ checkPoint = doSnap(p); } - Region region = (Region) regionList.get(checkPoint); + Region region = regionList.get(checkPoint); return region != null ? region.getName() : null; } @@ -366,7 +359,7 @@ checkPoint = doSnap(p); } - Region region = (Region) regionList.get(checkPoint); + Region region = regionList.get(checkPoint); return region != null ? region.getLocalizedName() : null; } @@ -375,30 +368,23 @@ * Return Region selected by Point */ public Region getRegion(Point p) { - Region checkRegion, r = null; - - Enumeration e = regionList.elements(); - while (e.hasMoreElements()) { - checkRegion = (Region) e.nextElement(); + for (Region checkRegion : regionList.values()) { if (checkRegion.contains(p)) return checkRegion; } - return r; + return null; } /** * Return Region by Name */ public Region findRegion(String name) { - Region checkRegion; - Region r = null; - for (Enumeration e = regionList.elements(); e.hasMoreElements() && r==null;) { - checkRegion = (Region) e.nextElement(); + for (Region checkRegion : regionList.values()) { if (checkRegion.getConfigureName().equals(name)) { - r = checkRegion; + return checkRegion; } } - return r; + return null; } // @@ -421,9 +407,7 @@ double scale, boolean reversed) { - Enumeration e = regionList.elements(); - while (e.hasMoreElements()) { - Region r = (Region) e.nextElement(); + for (Region r : regionList.values()) { r.draw(g, bounds, visibleRect, scale, reversed); } @@ -431,9 +415,8 @@ } public void unSelectAll() { - Enumeration e = regionList.elements(); - while (e.hasMoreElements()) { - unSelect((Region) e.nextElement()); + for (Region r : regionList.values()) { + unSelect(r); } } @@ -457,7 +440,7 @@ protected Rectangle selectionRect = null; protected Point anchor; - protected ArrayList saveRegions; + protected ArrayList<Region> saveRegions; protected boolean dirty = false; @@ -561,10 +544,10 @@ * after changes */ public void save() { - saveRegions = new ArrayList(grid.regionList.size()); - for (Enumeration e = grid.regionList.elements(); e.hasMoreElements(); ) { - saveRegions.add(new Region((Region) e.nextElement())); - } + saveRegions = new ArrayList<Region>(grid.regionList.size()); + for (Region r : grid.regionList.values()) { + saveRegions.add(new Region(r)); + } } /* @@ -573,8 +556,7 @@ */ public void restore() { grid.removeAllRegions(); - for (Iterator i = saveRegions.iterator(); i.hasNext(); ) { - Region r = (Region) i.next(); + for (Region r : saveRegions) { r.addTo(grid); grid.add(r); } @@ -1084,8 +1066,7 @@ public void mouseReleased(MouseEvent evPt) { if (selectionRect != null) { - for (Enumeration e = grid.regionList.elements(); e.hasMoreElements(); ) { - Region r = (Region) e.nextElement(); + for (Region r : grid.regionList.values()) { if (selectionRect.contains(r.getOrigin())) { if (evPt.isControlDown()) { unselect(r); Modified: VASSAL-src/branches/uckelman-merge/VASSAL/build/widget/BoxWidget.java =================================================================== --- VASSAL-src/branches/uckelman-merge/VASSAL/build/widget/BoxWidget.java 2007-05-29 13:26:44 UTC (rev 2117) +++ VASSAL-src/branches/uckelman-merge/VASSAL/build/widget/BoxWidget.java 2007-05-29 18:36:46 UTC (rev 2118) @@ -23,8 +23,8 @@ import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.beans.PropertyChangeListener; -import java.util.Hashtable; -import java.util.Vector; +import java.util.ArrayList; +import java.util.HashMap; import javax.swing.BoxLayout; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; @@ -48,10 +48,10 @@ private DefaultComboBoxModel widgets = new DefaultComboBoxModel(); private CardLayout layout = new CardLayout(); private JPanel multiPanel = new JPanel(); - private Vector built = new Vector(); + private ArrayList<Widget> built = new ArrayList<Widget>(); private Dimension size = new Dimension(); - private Hashtable keys = new Hashtable(); + private HashMap<Object,String> keys = new HashMap<Object,String>(); private int count = 0; public BoxWidget() { @@ -112,7 +112,7 @@ } private String getKey(Object o) { - String s = (String) keys.get(o); + String s = keys.get(o); if (s == null) { s = "" + new Integer(count++); keys.put(o, s); @@ -125,7 +125,7 @@ Widget w = (Widget) box.getSelectedItem(); if (!built.contains(w)) { multiPanel.add(getKey(w), w.getComponent()); - built.addElement(w); + built.add(w); } layout.show(multiPanel, getKey(w)); } Modified: VASSAL-src/branches/uckelman-merge/VASSAL/build/widget/ListWidget.java =================================================================== --- VASSAL-src/branches/uckelman-merge/VASSAL/build/widget/ListWidget.java 2007-05-29 13:26:44 UTC (rev 2117) +++ VASSAL-src/branches/uckelman-merge/VASSAL/build/widget/ListWidget.java 2007-05-29 18:36:46 UTC (rev 2118) @@ -21,7 +21,7 @@ import java.awt.CardLayout; import java.awt.Component; import java.util.Enumeration; -import java.util.Hashtable; +import java.util.HashMap; import javax.swing.BoxLayout; import javax.swing.DefaultListModel; import javax.swing.JList; @@ -51,7 +51,7 @@ private CardLayout layout; private JPanel multiPanel; - private Hashtable keys = new Hashtable(); + private HashMap<Object,String> keys = new HashMap<Object,String>(); private int count = 0; public ListWidget() { @@ -73,8 +73,7 @@ panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS)); multiPanel.setLayout(layout); - for (Enumeration e = getBuildComponents(); - e.hasMoreElements();) { + for (Enumeration e = getBuildComponents(); e.hasMoreElements();) { Widget w = (Widget) e.nextElement(); multiPanel.add(getKey(w), w.getComponent()); } @@ -110,7 +109,7 @@ } private String getKey(Object o) { - String s = (String) keys.get(o); + String s = keys.get(o); if (s == null) { s = "" + new Integer(count++); keys.put(o, s); Modified: VASSAL-src/branches/uckelman-merge/VASSAL/build/widget/PanelWidget.java =================================================================== --- VASSAL-src/branches/uckelman-merge/VASSAL/build/widget/PanelWidget.java 2007-05-29 13:26:44 UTC (rev 2117) +++ VASSAL-src/branches/uckelman-merge/VASSAL/build/widget/PanelWidget.java 2007-05-29 18:36:46 UTC (rev 2118) @@ -22,7 +22,7 @@ import java.awt.Container; import java.awt.GridLayout; import java.awt.LayoutManager; -import java.util.Vector; +import java.util.ArrayList; import javax.swing.BoxLayout; import javax.swing.JComponent; import javax.swing.JPanel; @@ -38,7 +38,7 @@ */ public class PanelWidget extends Widget { private JPanel panel; - private Vector widgets = new Vector(); + private ArrayList<Widget> widgets = new ArrayList<Widget>(); private int nColumns = 3; private boolean vertical = false; private boolean fixed = false; @@ -55,8 +55,8 @@ rebuild(); panel = new JPanel(); panel.setLayout(getLayout(panel)); - for (int i = 0; i < widgets.size(); ++i) { - Component c = ((Widget) widgets.elementAt(i)).getComponent(); + for (Widget w : widgets) { + Component c = w.getComponent(); if (c instanceof JComponent) { ((JComponent) c).setAlignmentX(0.0F); ((JComponent) c).setAlignmentY(0.0F); @@ -80,7 +80,7 @@ public void add(Buildable b) { if (b instanceof Widget) { Widget w = (Widget) b; - widgets.addElement(w); + widgets.add(w); if (panel != null) { Component c = w.getComponent(); if (c instanceof JComponent) { @@ -100,7 +100,7 @@ if (panel != null) { panel.remove(w.getComponent()); } - widgets.removeElement(w); + widgets.remove(w); } super.remove(b); } Modified: VASSAL-src/branches/uckelman-merge/VASSAL/build/widget/TabWidget.java =================================================================== --- VASSAL-src/branches/uckelman-merge/VASSAL/build/widget/TabWidget.java 2007-05-29 13:26:44 UTC (rev 2117) +++ VASSAL-src/branches/uckelman-merge/VASSAL/build/widget/TabWidget.java 2007-05-29 18:36:46 UTC (rev 2118) @@ -19,7 +19,7 @@ package VASSAL.build.widget; import java.beans.PropertyChangeListener; -import java.util.Vector; +import java.util.ArrayList; import javax.swing.JPanel; import javax.swing.JTabbedPane; import javax.swing.event.ChangeEvent; @@ -35,118 +35,118 @@ * (via {@link Configurable#getConfigureName}) */ public class TabWidget extends Widget - implements ChangeListener, PropertyChangeListener { - private JTabbedPane tab = null; - private Vector widgets = new Vector(); + implements ChangeListener, PropertyChangeListener { + private JTabbedPane tab = null; + private ArrayList<Widget> widgets = new ArrayList<Widget>(); - public TabWidget() { - } + public TabWidget() { + } - public static String getConfigureTypeName() { - return "Tabbed Panel"; - } + public static String getConfigureTypeName() { + return "Tabbed Panel"; + } - public void stateChanged(ChangeEvent e) { - int index = tab.getSelectedIndex(); - if (index >= 0) { - tab.setComponentAt(index, ((Widget) widgets.elementAt(index)).getComponent()); - } + public void stateChanged(ChangeEvent e) { + int index = tab.getSelectedIndex(); + if (index >= 0) { + tab.setComponentAt(index, widgets.get(index).getComponent()); } + } - public void add(Buildable b) { - if (b instanceof Widget) { - Widget w = (Widget) b; - widgets.addElement(w); - if (tab != null) { - tab.removeChangeListener(this); - if (widgets.size() > 1) { - tab.addTab(w.getConfigureName(), new JPanel()); - } - else { - tab.addTab(w.getConfigureName(), w.getComponent()); - } - w.addPropertyChangeListener(this); - tab.addChangeListener(this); - } + public void add(Buildable b) { + if (b instanceof Widget) { + Widget w = (Widget) b; + widgets.add(w); + if (tab != null) { + tab.removeChangeListener(this); + if (widgets.size() > 1) { + tab.addTab(w.getConfigureName(), new JPanel()); } - super.add(b); + else { + tab.addTab(w.getConfigureName(), w.getComponent()); + } + w.addPropertyChangeListener(this); + tab.addChangeListener(this); + } } + super.add(b); + } - public void remove(Buildable b) { - if (b instanceof Widget) { - Widget w = (Widget) b; - if (tab != null) { - tab.removeTabAt(widgets.indexOf(w)); - } - widgets.removeElement(w); - } - super.remove(b); + public void remove(Buildable b) { + if (b instanceof Widget) { + Widget w = (Widget) b; + if (tab != null) { + tab.removeTabAt(widgets.indexOf(w)); + } + widgets.remove(w); } + super.remove(b); + } - public void propertyChange - (java.beans.PropertyChangeEvent evt) { - if (Configurable.NAME_PROPERTY.equals(evt.getPropertyName())) { - Widget src = (Widget) evt.getSource(); - int index = widgets.indexOf(src); - String name = src.getConfigureName(); - if (name == null) { - name = ""; - } - tab.setTitleAt(index, name); - } + public void propertyChange + (java.beans.PropertyChangeEvent evt) { + if (Configurable.NAME_PROPERTY.equals(evt.getPropertyName())) { + Widget src = (Widget) evt.getSource(); + int index = widgets.indexOf(src); + String name = src.getConfigureName(); + if (name == null) { + name = ""; + } + tab.setTitleAt(index, name); } + } - public java.awt.Component getComponent() { - if (tab == null) { - rebuild(); - tab = new JTabbedPane(); - for (int i = 0; i < widgets.size(); ++i) { - Widget w = (Widget) widgets.elementAt(i); - w.addPropertyChangeListener(this); - tab.addTab(w.getConfigureName(), new JPanel()); - } - tab.addChangeListener(this); - if (widgets.size() > 0) { - tab.setSelectedIndex(0); - } - stateChanged(null); - } - return tab; + public java.awt.Component getComponent() { + if (tab == null) { + rebuild(); + tab = new JTabbedPane(); + for (int i = 0; i < widgets.size(); ++i) { + Widget w = widgets.get(i); + w.addPropertyChangeListener(this); + tab.addTab(w.getConfigureName(), new JPanel()); + } + tab.addChangeListener(this); + if (widgets.size() > 0) { + tab.setSelectedIndex(0); + } + stateChanged(null); } + return tab; + } - /* - public Configurer[] getAttributeConfigurers() { - Configur... [truncated message content] |