[vassalengine-svn-trunk] [vassalengine-svn] SF.net SVN: vassalengine:[4690] VASSAL-src/trunk/src/VA
Brought to you by:
rodneykinney,
uckelman
From: <uck...@us...> - 2008-12-26 18:38:38
|
Revision: 4690 http://vassalengine.svn.sourceforge.net/vassalengine/?rev=4690&view=rev Author: uckelman Date: 2008-12-26 18:38:16 +0000 (Fri, 26 Dec 2008) Log Message: ----------- Merged mkiefte 4666, 4680. * Replace.myGetType() invalidated by additions to PlaceMarker.myGetType(). Maintaining descendents of traits is nightmarish. * Pulled above field from Replace.java to PlaceMarker.java. Easier to maintain descendent trait. Modified Paths: -------------- VASSAL-src/trunk/src/VASSAL/counters/PlaceMarker.java VASSAL-src/trunk/src/VASSAL/counters/Replace.java Modified: VASSAL-src/trunk/src/VASSAL/counters/PlaceMarker.java =================================================================== --- VASSAL-src/trunk/src/VASSAL/counters/PlaceMarker.java 2008-12-26 18:28:09 UTC (rev 4689) +++ VASSAL-src/trunk/src/VASSAL/counters/PlaceMarker.java 2008-12-26 18:38:16 UTC (rev 4690) @@ -32,6 +32,7 @@ import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; +import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel; @@ -80,13 +81,13 @@ protected String gpId = ""; protected String newGpId; protected GpIdSupport gpidSupport; // The component that generates unique Slot Id's for us - private static final int STACK_TOP = 0; - private static final int STACK_BOTTOM = 1; - private static final int ABOVE = 2; - private static final int BELOW = 3; + protected static final int STACK_TOP = 0; + protected static final int STACK_BOTTOM = 1; + protected static final int ABOVE = 2; + protected static final int BELOW = 3; protected int placement = STACK_TOP; + protected boolean above; - public PlaceMarker() { this(ID + "Place Marker;M;null;null;null", null); } @@ -128,7 +129,8 @@ .append(afterBurnerKey) .append(description) .append(gpId) - .append(placement); + .append(placement) + .append(above); return ID + se.getValue(); } @@ -349,6 +351,7 @@ description = st.nextToken(""); setGpId(st.nextToken("")); placement = st.nextInt(STACK_TOP); + above = st.nextBoolean(false); gpidSupport = GameModule.getGameModule().getGpIdSupport(); } @@ -388,6 +391,7 @@ protected IntConfigurer xOffsetConfig = new IntConfigurer(null, "Horizontal offset: "); protected IntConfigurer yOffsetConfig = new IntConfigurer(null, "Vertical offset: "); protected BooleanConfigurer matchRotationConfig; + protected BooleanConfigurer aboveConfig; protected JComboBox placementConfig; protected HotKeyConfigurer afterBurner; protected StringConfigurer descConfig; @@ -395,6 +399,7 @@ protected Ed(PlaceMarker piece) { matchRotationConfig = createMatchRotationConfig(); + aboveConfig = createAboveConfig(); descConfig = new StringConfigurer(null, "Description: ", piece.description); keyInput = new HotKeyConfigurer(null, "Keyboard Command: ", piece.key); afterBurner = new HotKeyConfigurer(null, "Keystroke to apply after placement: ", piece.afterBurnerKey); @@ -442,6 +447,16 @@ p.add(yOffsetConfig.getControls()); matchRotationConfig.setValue(Boolean.valueOf(piece.matchRotation)); p.add(matchRotationConfig.getControls()); + if (aboveConfig != null) { + aboveConfig.setValue(Boolean.valueOf(piece.above)); + p.add(aboveConfig.getControls()); + ((JCheckBox) matchRotationConfig.getControls()).addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + aboveConfig.getControls().setVisible(((JCheckBox) matchRotationConfig.getControls()).isSelected()); + } + }); + aboveConfig.getControls().setVisible(Boolean.valueOf(piece.matchRotation)); + } placementConfig = new JComboBox(new String[]{"On top of stack","On bottom of stack","Above this piece","Below this piece"}); placementConfig.setSelectedIndex(piece.placement); Box placementBox = Box.createHorizontalBox(); @@ -455,6 +470,10 @@ protected BooleanConfigurer createMatchRotationConfig() { return new BooleanConfigurer(null, "Match Rotation?"); } + + protected BooleanConfigurer createAboveConfig() { + return null; + } public Component getControls() { return p; @@ -487,6 +506,7 @@ se.append(descConfig.getValueString()); se.append(slotId); se.append(placementConfig.getSelectedIndex()); + se.append(aboveConfig == null ? "false" : aboveConfig.getValueString()); return ID + se.getValue(); } public static class ChoosePieceDialog extends ChooseComponentPathDialog { Modified: VASSAL-src/trunk/src/VASSAL/counters/Replace.java =================================================================== --- VASSAL-src/trunk/src/VASSAL/counters/Replace.java 2008-12-26 18:28:09 UTC (rev 4689) +++ VASSAL-src/trunk/src/VASSAL/counters/Replace.java 2008-12-26 18:38:16 UTC (rev 4690) @@ -18,28 +18,20 @@ */ package VASSAL.counters; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.JCheckBox; -import javax.swing.JPanel; import javax.swing.KeyStroke; -import VASSAL.build.GameModule; import VASSAL.build.module.documentation.HelpFile; import VASSAL.command.Command; import VASSAL.command.RemovePiece; import VASSAL.configure.BooleanConfigurer; import VASSAL.i18n.PieceI18nData; -import VASSAL.tools.SequenceEncoder; /** * GamePiece trait that replaces a GamePiece with another one */ public class Replace extends PlaceMarker { public static final String ID = "replace;"; - protected boolean above; - + public Replace() { this(ID + "Replace;R;null", null); } @@ -80,40 +72,9 @@ public HelpFile getHelpFile() { return HelpFile.getReferenceManualPage("Replace.htm"); } - - public void mySetType(String type) { - SequenceEncoder.Decoder st = new SequenceEncoder.Decoder(type, ';'); - st.nextToken(); - String name = st.nextToken(); - key = st.nextKeyStroke(null); - command = new KeyCommand(name, key, this, this); - if (name.length() > 0 && key != null) { - commands = new KeyCommand[]{command}; - } - else { - commands = new KeyCommand[0]; - } - markerSpec = st.nextToken(); - if ("null".equals(markerSpec)) { - markerSpec = null; - } - markerText = st.nextToken("null"); - if ("null".equals(markerText)) { - markerText = null; - } - xOffset = st.nextInt(0); - yOffset = st.nextInt(0); - matchRotation = st.nextBoolean(false); - afterBurnerKey = st.nextKeyStroke(null); - description = st.nextToken(""); - setGpId(st.nextToken("")); - above = st.nextBoolean(false); - gpidSupport = GameModule.getGameModule().getGpIdSupport(); - } - public String myGetType() { - return ID + super.myGetType().substring(PlaceMarker.ID.length()) + ";" + String.valueOf(above); + return ID + super.myGetType().substring(PlaceMarker.ID.length()); } public PieceEditor getEditor() { @@ -175,29 +136,22 @@ } protected static class Ed extends PlaceMarker.Ed { - protected BooleanConfigurer aboveConfig = new BooleanConfigurer(null, "Only match states above this trait?"); public Ed(Replace piece) { super(piece); defineButton.setText("Define Replacement"); - JPanel p = (JPanel) getControls(); - p.add(aboveConfig.getControls(), 7); - aboveConfig.setValue(Boolean.valueOf(piece.above)); - ((JCheckBox) matchRotationConfig.getControls()).addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - aboveConfig.getControls().setVisible(((JCheckBox) matchRotationConfig.getControls()).isSelected()); - } - }); } protected BooleanConfigurer createMatchRotationConfig() { return new BooleanConfigurer(null, "Match Current State?"); } + protected BooleanConfigurer createAboveConfig() { + return new BooleanConfigurer(null, "Only match states above this trait?"); + } + public String getType() { - String s = super.getType(); - s = ID + s.substring(PlaceMarker.ID.length()) + ";" + aboveConfig.getValueString(); - return s; + return ID + super.getType().substring(PlaceMarker.ID.length()); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ _______________________________________________ vassalengine-svn mailing list vas...@li... https://lists.sourceforge.net/lists/listinfo/vassalengine-svn |