You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(103) |
Jun
(121) |
Jul
(16) |
Aug
(67) |
Sep
(126) |
Oct
(161) |
Nov
(164) |
Dec
(588) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(394) |
Feb
(181) |
Mar
(131) |
Apr
(180) |
May
(255) |
Jun
(11) |
Jul
(79) |
Aug
(70) |
Sep
(274) |
Oct
(138) |
Nov
(195) |
Dec
(8) |
2008 |
Jan
(3) |
Feb
(142) |
Mar
(162) |
Apr
(124) |
May
(148) |
Jun
(157) |
Jul
(425) |
Aug
(373) |
Sep
(264) |
Oct
(315) |
Nov
(225) |
Dec
(6) |
2009 |
Jan
(67) |
Feb
(78) |
Mar
(279) |
Apr
(294) |
May
(92) |
Jun
(65) |
Jul
(134) |
Aug
(41) |
Sep
(138) |
Oct
(125) |
Nov
(126) |
Dec
(122) |
2010 |
Jan
(15) |
Feb
(48) |
Mar
(9) |
Apr
(195) |
May
(373) |
Jun
(507) |
Jul
(42) |
Aug
(16) |
Sep
(38) |
Oct
(81) |
Nov
(64) |
Dec
(18) |
2011 |
Jan
(13) |
Feb
(12) |
Mar
(39) |
Apr
(1) |
May
(2) |
Jun
(27) |
Jul
(27) |
Aug
(31) |
Sep
(14) |
Oct
(102) |
Nov
(20) |
Dec
(37) |
2012 |
Jan
(22) |
Feb
(1) |
Mar
(1) |
Apr
(2) |
May
(2) |
Jun
(18) |
Jul
(6) |
Aug
(1) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2013 |
Jan
(1) |
Feb
(2) |
Mar
(1) |
Apr
(1) |
May
(47) |
Jun
(7) |
Jul
(107) |
Aug
|
Sep
|
Oct
(112) |
Nov
(31) |
Dec
(17) |
2014 |
Jan
(29) |
Feb
(111) |
Mar
(34) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
(18) |
Dec
(10) |
From: <aki...@us...> - 2013-11-24 09:32:26
|
Revision: 9510 http://sourceforge.net/p/gridarta/code/9510 Author: akirschbaum Date: 2013-11-24 09:32:18 +0000 (Sun, 24 Nov 2013) Log Message: ----------- Clean up plugin parameter implementations. Fixes archetype plugin parameters. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginView.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchParameterView.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/IntegerParameterView.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapParameterView.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapPathParameterView.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ParameterDescriptionEditor.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ParameterNameEditor.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ParameterTypeEditor.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/StringParameterView.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/Plugin.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/PluginExecutor.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/PluginModelParser.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPathParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchetypeParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/BooleanParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/DoubleParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/FilterParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/IntegerParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/MapParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterCodec.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterFactory.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/StringParameter.java trunk/src/plugin/src/test/java/net/sf/gridarta/plugin/parameter/PluginParameterCodecTest.java Added Paths: ----------- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractStringPluginParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractValuePluginParameter.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -105,16 +105,16 @@ private final Plugin<G, A, R> plugin; @NotNull - private final Map<PluginParameter<G, A, R>, ParameterNameEditor<G, A, R>> paramNameEditors = new HashMap<PluginParameter<G, A, R>, ParameterNameEditor<G, A, R>>(); + private final Map<PluginParameter<G, A, R, ?>, ParameterNameEditor<G, A, R>> paramNameEditors = new HashMap<PluginParameter<G, A, R, ?>, ParameterNameEditor<G, A, R>>(); @NotNull - private final Map<PluginParameter<G, A, R>, ParameterDescriptionEditor<G, A, R>> paramDescriptionEditors = new HashMap<PluginParameter<G, A, R>, ParameterDescriptionEditor<G, A, R>>(); + private final Map<PluginParameter<G, A, R, ?>, ParameterDescriptionEditor<G, A, R>> paramDescriptionEditors = new HashMap<PluginParameter<G, A, R, ?>, ParameterDescriptionEditor<G, A, R>>(); @NotNull - private final Map<PluginParameter<G, A, R>, ParameterTypeEditor<G, A, R>> paramTypeEditors = new HashMap<PluginParameter<G, A, R>, ParameterTypeEditor<G, A, R>>(); + private final Map<PluginParameter<G, A, R, ?>, ParameterTypeEditor<G, A, R>> paramTypeEditors = new HashMap<PluginParameter<G, A, R, ?>, ParameterTypeEditor<G, A, R>>(); @NotNull - private final Map<PluginParameter<G, A, R>, PluginParameterView<G, A, R>> paramViews = new HashMap<PluginParameter<G, A, R>, PluginParameterView<G, A, R>>(); + private final Map<PluginParameter<G, A, R, ?>, PluginParameterView<G, A, R>> paramViews = new HashMap<PluginParameter<G, A, R, ?>, PluginParameterView<G, A, R>>(); private int selectedRow = -1; @@ -337,7 +337,7 @@ gbc.gridx = 4; paramTable.add(ActionBuilderUtils.newLabel(ACTION_BUILDER, "pluginEditorTitleDefault.text"), gbc); int i = 0; - for (final PluginParameter<G, A, R> parameter : plugin) { + for (final PluginParameter<G, A, R, ?> parameter : plugin) { gbc.gridy = i + 1; putRow(gbc, parameter); i++; @@ -350,7 +350,7 @@ c.addMouseListener(cellMouseListener); } - private Component getParameterNameEditor(@NotNull final PluginParameter<G, A, R> param) { + private Component getParameterNameEditor(@NotNull final PluginParameter<G, A, R, ?> param) { if (log.isDebugEnabled()) { log.debug("Doing " + param); } @@ -366,7 +366,7 @@ return newParameterNameEditor; } - private Component getParameterDescriptionEditor(@NotNull final PluginParameter<G, A, R> param) { + private Component getParameterDescriptionEditor(@NotNull final PluginParameter<G, A, R, ?> param) { final Component existingParameterDescriptionEditor = paramDescriptionEditors.get(param); if (existingParameterDescriptionEditor != null) { return existingParameterDescriptionEditor; @@ -378,7 +378,7 @@ return newParameterDescriptionEditor; } - private Component getParameterTypeEditor(@NotNull final PluginParameter<G, A, R> param) { + private Component getParameterTypeEditor(@NotNull final PluginParameter<G, A, R, ?> param) { final Component existingParameterTypeEditor = paramTypeEditors.get(param); if (existingParameterTypeEditor != null) { return existingParameterTypeEditor; @@ -390,7 +390,7 @@ return newParameterTypeEditor; } - private PluginParameterView<G, A, R> getParameterView(@NotNull final PluginParameter<G, A, R> param) { + private PluginParameterView<G, A, R> getParameterView(@NotNull final PluginParameter<G, A, R, ?> param) { final PluginParameterView<G, A, R> existingPluginParameterView = paramViews.get(param); if (existingPluginParameterView != null) { return existingPluginParameterView; @@ -405,7 +405,7 @@ return newPluginParameterView; } - private void putRow(@NotNull final GridBagConstraints gbc, @NotNull final PluginParameter<G, A, R> param) { + private void putRow(@NotNull final GridBagConstraints gbc, @NotNull final PluginParameter<G, A, R, ?> param) { gbc.gridx = 0; paramTable.add(getParameterNameEditor(param), gbc); gbc.gridx = 1; @@ -518,7 +518,7 @@ return; } - final PluginParameter<G, A, R> parameter; + final PluginParameter<G, A, R, ?> parameter; try { parameter = plugin.getParameter(selectedRow); } catch (final NoSuchParameterException ignored) { Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginView.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginView.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginView.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -222,7 +222,7 @@ dialog.setModal(true); dialog.getContentPane().removeAll(); int i = 0; - for (final PluginParameter<G, A, R> parameter : plugin) { + for (final PluginParameter<G, A, R, ?> parameter : plugin) { log.debug("adding parameter"); final Component name = new JLabel(parameter.getName()); final PluginParameterView<G, A, R> view = pluginParameterViewFactory.getView(panel, parameter); Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchParameterView.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchParameterView.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchParameterView.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -31,7 +31,7 @@ import net.sf.gridarta.model.face.FaceObjectProviders; import net.sf.gridarta.model.gameobject.GameObject; import net.sf.gridarta.model.maparchobject.MapArchObject; -import net.sf.gridarta.plugin.parameter.AbstractPluginParameter; +import net.sf.gridarta.plugin.parameter.ArchetypeParameter; import org.jetbrains.annotations.NotNull; public class ArchParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView<G, A, R> { @@ -43,14 +43,14 @@ private final JComboBox value; @NotNull - private final AbstractPluginParameter<G, A, R, Archetype<G, A, R>> parameter; + private final ArchetypeParameter<G, A, R> parameter; /** * Creates a new instance. * @param faceObjectProviders the face object providers for looking up * faces */ - public ArchParameterView(@NotNull final AbstractPluginParameter<G, A, R, Archetype<G, A, R>> param, @NotNull final GameObjectAttributesModel<G, A, R> gameObjectAttributesModel, @NotNull final ArchetypeSet<G, A, R> archetypeSet, @NotNull final ObjectChooser<G, A, R> objectChooser, @NotNull final FaceObjectProviders faceObjectProviders) { + public ArchParameterView(@NotNull final ArchetypeParameter<G, A, R> param, @NotNull final GameObjectAttributesModel<G, A, R> gameObjectAttributesModel, @NotNull final ArchetypeSet<G, A, R> archetypeSet, @NotNull final ObjectChooser<G, A, R> objectChooser, @NotNull final FaceObjectProviders faceObjectProviders) { value = new ArchComboBox<G, A, R>(gameObjectAttributesModel, archetypeSet, objectChooser, faceObjectProviders); parameter = param; value.setSelectedItem(param.getValue()); @@ -62,7 +62,7 @@ //JComboBox does not use type parameters @SuppressWarnings("unchecked") final Archetype<G, A, R> archetype = (Archetype<G, A, R>) value.getSelectedItem(); - parameter.setValue(archetype); + parameter.setStringValue(archetype.getArchetypeName()); } } }); Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/IntegerParameterView.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/IntegerParameterView.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/IntegerParameterView.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -26,7 +26,6 @@ import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.JSpinner; -import javax.swing.SpinnerModel; import javax.swing.SpinnerNumberModel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -49,12 +48,7 @@ public IntegerParameterView(@NotNull final IntegerParameter<G, A, R> parameter) { this.parameter = parameter; - final SpinnerModel mdl = new SpinnerNumberModel(0, parameter.getMin(), parameter.getMax(), 1); - value = new TooltipSpinner(mdl); - try { - value.setValue(parameter.getValue()); - } catch (final Exception ignored) { - } + value = new TooltipSpinner(new SpinnerNumberModel((int) parameter.getValue(), parameter.getMin(), parameter.getMax(), 1)); value.addChangeListener(new ChangeListener() { @Override Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapParameterView.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapParameterView.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapParameterView.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -21,6 +21,7 @@ import java.awt.event.ItemEvent; import java.awt.event.ItemListener; +import java.io.File; import javax.swing.ComboBoxModel; import javax.swing.JComboBox; import javax.swing.JComponent; @@ -28,6 +29,7 @@ import net.sf.gridarta.model.archetype.Archetype; import net.sf.gridarta.model.gameobject.GameObject; import net.sf.gridarta.model.maparchobject.MapArchObject; +import net.sf.gridarta.model.mapcontrol.MapControl; import net.sf.gridarta.model.mapmanager.MapManager; import net.sf.gridarta.plugin.parameter.MapParameter; import org.jetbrains.annotations.NotNull; @@ -57,7 +59,15 @@ if (value.getSelectedIndex() == 0) { parameter.setValueToCurrent(); } else { - parameter.setValue(value.getSelectedItem()); + final MapControl<?, ?, ?> mapControl = (MapControl<?, ?, ?>) value.getSelectedItem(); + final String stringValue; + if (mapControl == null) { + stringValue = ""; + } else { + final File mapFile = mapControl.getMapModel().getMapFile(); + stringValue = mapFile == null ? "" : mapFile.getPath(); + } + parameter.setStringValue(stringValue); } } } Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapPathParameterView.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapPathParameterView.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapPathParameterView.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -29,11 +29,12 @@ import net.sf.gridarta.model.archetype.Archetype; import net.sf.gridarta.model.gameobject.GameObject; import net.sf.gridarta.model.maparchobject.MapArchObject; -import net.sf.gridarta.plugin.parameter.MapPathParameter; +import net.sf.gridarta.plugin.parameter.AbstractPathParameter; import org.jetbrains.annotations.NotNull; /** - * A {@link PluginParameterView} that displays a {@link MapPathParameter}. + * A {@link PluginParameterView} that displays a {@link + * net.sf.gridarta.plugin.parameter.MapPathParameter}. * @author Andreas Kirschbaum */ public class MapPathParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView<G, A, R> { @@ -52,9 +53,9 @@ * @param parent the parent component for the file chooser * @param parameter the parameter to affect */ - public MapPathParameterView(@NotNull final JComponent parent, @NotNull final MapPathParameter<G, A, R> parameter) { - final String value = parameter.getValue(); - valueComponent = new JFileField(parent, null, parameter.getBaseDir(), new File(value == null ? "" : value), JFileChooser.FILES_AND_DIRECTORIES); + public MapPathParameterView(@NotNull final JComponent parent, @NotNull final AbstractPathParameter<G, A, R> parameter) { + final File value = parameter.getValue(); + valueComponent = new JFileField(parent, null, parameter.getBaseDir(), value == null ? new File("") : value, JFileChooser.FILES_AND_DIRECTORIES); valueComponent.addDocumentListener(new DocumentListener() { @Override Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ParameterDescriptionEditor.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ParameterDescriptionEditor.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ParameterDescriptionEditor.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -31,9 +31,9 @@ private static final long serialVersionUID = 1L; - private final PluginParameter<G, A, R> parameter; + private final PluginParameter<G, A, R, ?> parameter; - public ParameterDescriptionEditor(final PluginParameter<G, A, R> param) { + public ParameterDescriptionEditor(final PluginParameter<G, A, R, ?> param) { parameter = param; setText(param.getDescription()); getDocument().addDocumentListener(new DocumentListener() { Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ParameterNameEditor.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ParameterNameEditor.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ParameterNameEditor.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -31,7 +31,7 @@ private static final long serialVersionUID = 1L; - private final PluginParameter<G, A, R> parameter; + private final PluginParameter<G, A, R, ?> parameter; private final DocumentListener documentListener = new DocumentListener() { @@ -52,7 +52,7 @@ }; - public ParameterNameEditor(final PluginParameter<G, A, R> parameter) { + public ParameterNameEditor(final PluginParameter<G, A, R, ?> parameter) { this.parameter = parameter; setText(parameter.getName()); getDocument().addDocumentListener(documentListener); Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ParameterTypeEditor.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ParameterTypeEditor.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ParameterTypeEditor.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -44,7 +44,7 @@ private static final Category log = Logger.getLogger(ParameterTypeEditor.class); @NotNull - private final PluginParameter<G, A, R> parameter; + private final PluginParameter<G, A, R, ?> parameter; @NotNull private final Plugin<G, A, R> plugin; @@ -67,7 +67,7 @@ }; - public ParameterTypeEditor(@NotNull final PluginModel<G, A, R> pluginModel, @NotNull final Plugin<G, A, R> plugin, @NotNull final PluginParameter<G, A, R> parameter) { + public ParameterTypeEditor(@NotNull final PluginModel<G, A, R> pluginModel, @NotNull final Plugin<G, A, R> plugin, @NotNull final PluginParameter<G, A, R, ?> parameter) { super(pluginModel.getTypes()); this.parameter = parameter; this.plugin = plugin; Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -142,7 +142,7 @@ * @param parent the parent component for showing dialogs */ @NotNull - public PluginParameterView<G, A, R> getView(@NotNull final JComponent parent, @NotNull final PluginParameter<G, A, R> parameter) { + public PluginParameterView<G, A, R> getView(@NotNull final JComponent parent, @NotNull final PluginParameter<G, A, R, ?> parameter) { this.parent = parent; try { return parameter.visit(visitor); Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/StringParameterView.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/StringParameterView.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/StringParameterView.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -29,7 +29,7 @@ import net.sf.gridarta.model.archetype.Archetype; import net.sf.gridarta.model.gameobject.GameObject; import net.sf.gridarta.model.maparchobject.MapArchObject; -import net.sf.gridarta.plugin.parameter.AbstractPluginParameter; +import net.sf.gridarta.plugin.parameter.StringParameter; import org.jetbrains.annotations.NotNull; public class StringParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView<G, A, R> { @@ -41,9 +41,9 @@ private final JComponent config = new JPanel(); @NotNull - private final AbstractPluginParameter<G, A, R, String> linkedParameter; + private final StringParameter<G, A, R> linkedParameter; - public StringParameterView(@NotNull final AbstractPluginParameter<G, A, R, String> parameter) { + public StringParameterView(@NotNull final StringParameter<G, A, R> parameter) { linkedParameter = parameter; final Document d = value.getDocument(); d.addDocumentListener(new DocumentListener() { Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/Plugin.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/Plugin.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/Plugin.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -51,7 +51,7 @@ * @author tchize * @author Andreas Kirschbaum */ -public class Plugin<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements Iterable<PluginParameter<G, A, R>> { +public class Plugin<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements Iterable<PluginParameter<G, A, R, ?>> { /** * The Logger for printing log messages. @@ -69,7 +69,7 @@ * The {@link PluginParameter PluginParameters} for this plugin. */ @NotNull - private final List<PluginParameter<G, A, R>> parameters = new ArrayList<PluginParameter<G, A, R>>(); + private final List<PluginParameter<G, A, R, ?>> parameters = new ArrayList<PluginParameter<G, A, R, ?>>(); /** * The plugin name. @@ -182,7 +182,7 @@ */ public int getParameter(@NotNull final String paramName) { int index = 0; - for (final PluginParameter<G, A, R> parameter : parameters) { + for (final PluginParameter<G, A, R, ?> parameter : parameters) { if (parameter.getName().equals(paramName)) { return index; } @@ -204,7 +204,7 @@ * Creates a new plugin parameter. */ public void newParameter() { - final PluginParameter<G, A, R> pluginParameter; + final PluginParameter<G, A, R, ?> pluginParameter; try { pluginParameter = pluginParameterFactory.createParameter(StringParameter.PARAMETER_TYPE); } catch (final NoSuchParameterException ex) { @@ -267,9 +267,9 @@ model.filter = filter; model.script = script; model.modified = modified; - for (final PluginParameter<G, A, R> parameter : parameters) { + for (final PluginParameter<G, A, R, ?> parameter : parameters) { final Element paramXml = codec.toXML(parameter); - final PluginParameter<G, A, R> clonedParam; + final PluginParameter<G, A, R, ?> clonedParam; try { clonedParam = pluginParameterFactory.createParameter(paramXml); } catch (final NoSuchParameterException ex) { @@ -284,7 +284,7 @@ * Adds a plugin parameter to this plugin. * @param pluginParameter the plugin parameter to add */ - public void addParameter(@NotNull final PluginParameter<G, A, R> pluginParameter) { + public void addParameter(@NotNull final PluginParameter<G, A, R, ?> pluginParameter) { parameters.add(pluginParameter); modified = true; notifyListeners(); @@ -297,7 +297,7 @@ * @return the plugin parameter * @throws NoSuchParameterException if the index is invalid */ - public PluginParameter<G, A, R> getParameter(final int index) throws NoSuchParameterException { + public PluginParameter<G, A, R, ?> getParameter(final int index) throws NoSuchParameterException { try { return parameters.get(index); } catch (final IndexOutOfBoundsException ignored) { @@ -387,7 +387,7 @@ * @param newType the new type * @throws NoSuchParameterException if the index is invalid */ - public void convertType(@NotNull final PluginParameter<G, A, R> pluginParameter, @NotNull final String newType) throws NoSuchParameterException { + public void convertType(@NotNull final PluginParameter<G, A, R, ?> pluginParameter, @NotNull final String newType) throws NoSuchParameterException { final int index = parameters.indexOf(pluginParameter); convertType(index, newType); } @@ -435,7 +435,7 @@ */ @NotNull @Override - public Iterator<PluginParameter<G, A, R>> iterator() { + public Iterator<PluginParameter<G, A, R, ?>> iterator() { return Collections.unmodifiableList(parameters).iterator(); } @@ -469,7 +469,7 @@ * @return the plugin parameter in XML representation */ @NotNull - public Content toXML(@NotNull final PluginParameter<G, A, R> pluginParameter) { + public Content toXML(@NotNull final PluginParameter<G, A, R, ?> pluginParameter) { return codec.toXML(pluginParameter); } Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/PluginExecutor.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/PluginExecutor.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/PluginExecutor.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -91,7 +91,7 @@ if (index == -1) { final StringBuilder sb = new StringBuilder(); boolean firstParameter = true; - for (final PluginParameter<?, ?, ?> parameter : clonedPlugin) { + for (final PluginParameter<?, ?, ?, ?> parameter : clonedPlugin) { sb.append(firstParameter ? " " : ", "); sb.append(parameter.getName()); firstParameter = false; @@ -100,7 +100,7 @@ return 1; } - final PluginParameter<G, A, R> parameter; + final PluginParameter<G, A, R, ?> parameter; try { parameter = clonedPlugin.getParameter(index); } catch (final NoSuchParameterException ex) { @@ -179,7 +179,7 @@ runner.setConsole(console); try { pluginParameters.setInterpreterValues(runner, PluginRunMode.BATCH); - for (final PluginParameter<G, A, R> parameter : plugin) { + for (final PluginParameter<G, A, R, ?> parameter : plugin) { runner.set(parameter.getName(), parameter.getValue()); } } catch (final TargetError ex) { Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/PluginModelParser.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/PluginModelParser.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/PluginModelParser.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -117,7 +117,7 @@ final Collection<Element> parameters = node.getChildren("parameter"); if (parameters != null && !parameters.isEmpty()) { for (final Element parameter : parameters) { - PluginParameter<G, A, R> pluginParameter; + PluginParameter<G, A, R, ?> pluginParameter; try { pluginParameter = pluginParameterFactory.createParameter(parameter); } catch (final NoSuchParameterException ex) { @@ -163,7 +163,7 @@ modes.addContent(filter); root.addContent(modes); - for (final PluginParameter<G, A, R> pluginParameter : plugin) { + for (final PluginParameter<G, A, R, ?> pluginParameter : plugin) { root.addContent(plugin.toXML(pluginParameter)); } return root; Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPathParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPathParameter.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPathParameter.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -25,13 +25,14 @@ import net.sf.gridarta.model.io.PathManager; import net.sf.gridarta.model.maparchobject.MapArchObject; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** * Base class for {@link PluginParameter PluginParameters} that hold a {@link * File} value. * @author Andreas Kirschbaum */ -public abstract class AbstractPathParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractPluginParameter<G, A, R, String> { +public abstract class AbstractPathParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractStringPluginParameter<G, A, R, File> { /** * The base directory. @@ -44,20 +45,11 @@ * @param baseDir the base directory */ protected AbstractPathParameter(@NotNull final File baseDir) { + super(""); this.baseDir = baseDir; - setValue(""); } /** - * {@inheritDoc} - */ - @Override - public boolean setStringValue(@NotNull final String stringValue) { - setValue(stringValue); - return true; - } - - /** * Returns the base directory. * @return the base directory */ @@ -71,7 +63,21 @@ * @param file the file */ public void setFile(@NotNull final File file) { - setValue(PathManager.getMapPath(file.getAbsolutePath(), baseDir)); + setStringValue(PathManager.getMapPath(file.getAbsolutePath(), baseDir)); } + /** + * {@inheritDoc} + */ + @Nullable + @Override + public File getValue() { + final String stringValue = getStringValue(); + if (stringValue.isEmpty()) { + return null; + } + final File file = new File(stringValue); + return file.exists() ? file : null; + } + } Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -23,13 +23,12 @@ import net.sf.gridarta.model.gameobject.GameObject; import net.sf.gridarta.model.maparchobject.MapArchObject; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; /** * Parameter for a Plugin. * @author tchize */ -public abstract class AbstractPluginParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>, V> implements PluginParameter<G, A, R> { +public abstract class AbstractPluginParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>, V> implements PluginParameter<G, A, R, V> { /** * The name of the parameter for the plugin script. @@ -44,12 +43,6 @@ private String description = "[description]"; /** - * The current value. - */ - @Nullable - private V value; - - /** * Creates a new instance. */ protected AbstractPluginParameter() { @@ -89,27 +82,4 @@ this.description = description; } - /** - * {@inheritDoc} - */ - @Nullable - @Override - public V getValue() { - return value; - } - - /** - * Updates the parameter value. - * @param value the new value - * @return whether the value has changed - */ - public boolean setValue(@Nullable final V value) { - if (this.value == null ? value == null : this.value.equals(value)) { - return false; - } - - this.value = value; - return true; - } - } Added: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractStringPluginParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractStringPluginParameter.java (rev 0) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractStringPluginParameter.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -0,0 +1,67 @@ +/* + * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games. + * Copyright (C) 2000-2011 The Gridarta Developers. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +package net.sf.gridarta.plugin.parameter; + +import net.sf.gridarta.model.archetype.Archetype; +import net.sf.gridarta.model.gameobject.GameObject; +import net.sf.gridarta.model.maparchobject.MapArchObject; +import org.jetbrains.annotations.NotNull; + +/** + * Abstract base class for {@link PluginParameter} implementations for which the + * value is calculated from the string representation. + * @author Andreas Kirschbaum + */ +public abstract class AbstractStringPluginParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>, V> extends AbstractPluginParameter<G, A, R, V> { + + /** + * The current value. + */ + @NotNull + private String stringValue; + + /** + * Creates a new instance. + * @param stringValue the initial value + */ + protected AbstractStringPluginParameter(@NotNull final String stringValue) { + this.stringValue = stringValue; + } + + /** + * {@inheritDoc} + */ + @NotNull + @Override + public String getStringValue() { + return stringValue; + } + + /** + * Updates the parameter value. + * @param stringValue the new value + */ + @Override + public boolean setStringValue(@NotNull final String stringValue) { + this.stringValue = stringValue; + return true; + } + +} Property changes on: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractStringPluginParameter.java ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractValuePluginParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractValuePluginParameter.java (rev 0) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractValuePluginParameter.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -0,0 +1,65 @@ +/* + * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games. + * Copyright (C) 2000-2011 The Gridarta Developers. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +package net.sf.gridarta.plugin.parameter; + +import net.sf.gridarta.model.archetype.Archetype; +import net.sf.gridarta.model.gameobject.GameObject; +import net.sf.gridarta.model.maparchobject.MapArchObject; +import org.jetbrains.annotations.NotNull; + +/** + * Abstract base class for {@link PluginParameter} implementations for which the + * string representation of the value is calculated from the value. + * @author Andreas Kirschbaum + */ +public abstract class AbstractValuePluginParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>, V> extends AbstractPluginParameter<G, A, R, V> { + + /** + * The current value. + */ + @NotNull + private V value; + + /** + * Creates a new instance. + * @param value the initial value + */ + protected AbstractValuePluginParameter(@NotNull final V value) { + this.value = value; + } + + /** + * {@inheritDoc} + */ + @NotNull + @Override + public V getValue() { + return value; + } + + /** + * Updates the parameter value. + * @param value the new value + */ + public void setValue(@NotNull final V value) { + this.value = value; + } + +} Property changes on: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractValuePluginParameter.java ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchetypeParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchetypeParameter.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchetypeParameter.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -30,7 +30,7 @@ /** * A {@link PluginParameter} that holds an {@link Archetype} value. */ -public class ArchetypeParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractPluginParameter<G, A, R, Archetype<G, A, R>> { +public class ArchetypeParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractStringPluginParameter<G, A, R, Archetype<G, A, R>> { /** * The string representation of this parameter type. @@ -44,13 +44,12 @@ @NotNull private final ArchetypeSet<G, A, R> archetypeSet; - private String valueString; - /** * Creates a new instance. * @param archetypeSet the archetype set for looking up archetypes */ public ArchetypeParameter(@NotNull final ArchetypeSet<G, A, R> archetypeSet) { + super(""); // XXX this.archetypeSet = archetypeSet; } @@ -69,25 +68,11 @@ @Nullable @Override public Archetype<G, A, R> getValue() { - if (super.getValue() == null) { - setValue(archetypeSet.getOrCreateArchetype(valueString)); - } - return super.getValue(); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean setStringValue(@NotNull final String stringValue) { - final Archetype<G, A, R> archetype; try { - archetype = archetypeSet.getArchetype(stringValue); + return archetypeSet.getArchetype(getStringValue()); } catch (final UndefinedArchetypeException ignored) { - return false; + return null; } - setValue(archetype); - return true; } /** @@ -99,9 +84,4 @@ return PARAMETER_TYPE; } - @Nullable - public String getValueString() { - return valueString; - } - } Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/BooleanParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/BooleanParameter.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/BooleanParameter.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -27,7 +27,7 @@ /** * A {@link PluginParameter} that holds a boolean value. */ -public class BooleanParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractPluginParameter<G, A, R, Boolean> { +public class BooleanParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValuePluginParameter<G, A, R, Boolean> { /** * The string representation of this parameter type. @@ -48,6 +48,13 @@ private String falseText = "No"; /** + * Creates a new instance. + */ + public BooleanParameter() { + super(false); + } + + /** * {@inheritDoc} */ @NotNull @@ -62,14 +69,14 @@ @Override public boolean setStringValue(@NotNull final String stringValue) { if (stringValue.equals("true")) { - setValue(Boolean.TRUE); - return true; + setValue(true); } else if (stringValue.equals("false")) { - setValue(Boolean.FALSE); - return true; + setValue(false); } else { return false; } + + return true; } /** @@ -82,6 +89,15 @@ } /** + * {@inheritDoc} + */ + @NotNull + @Override + public String getStringValue() { + return getValue().toString(); + } + + /** * Returns the string representation of the "false" value. * @return the string representation */ Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/DoubleParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/DoubleParameter.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/DoubleParameter.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -27,7 +27,7 @@ /** * A {@link PluginParameter} that holds a double value. */ -public class DoubleParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractPluginParameter<G, A, R, Double> { +public class DoubleParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValuePluginParameter<G, A, R, Double> { /** * The string representation of this parameter type. @@ -48,6 +48,13 @@ private double max = 1.0; /** + * Creates a new instance. + */ + public DoubleParameter() { + super(0.0); + } + + /** * {@inheritDoc} */ @NotNull @@ -67,13 +74,29 @@ } catch (final NumberFormatException ignored) { return false; } + if (doubleValue < min) { + return false; + } + if (doubleValue > max) { + return false; + } setValue(doubleValue); + //noinspection FloatingPointEquality + assert getValue() == doubleValue; return true; } /** * {@inheritDoc} */ + @Override + public void setValue(@NotNull final Double value) { + super.setValue(Math.max(Math.min(value, max), min)); + } + + /** + * {@inheritDoc} + */ @NotNull @Override public String getParameterType() { @@ -81,6 +104,15 @@ } /** + * {@inheritDoc} + */ + @NotNull + @Override + public String getStringValue() { + return getValue().toString(); + } + + /** * Returns the maximal allowed value. * @return the maximal allowed value */ Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/FilterParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/FilterParameter.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/FilterParameter.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -25,8 +25,9 @@ import net.sf.gridarta.model.gameobject.GameObject; import net.sf.gridarta.model.maparchobject.MapArchObject; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; -public class FilterParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractPluginParameter<G, A, R, NamedFilterConfig> { +public class FilterParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractStringPluginParameter<G, A, R, NamedFilterConfig> { @NotNull public static final String PARAMETER_TYPE = NamedFilterConfig.class.getName(); @@ -34,27 +35,21 @@ @NotNull private final NamedFilter defaultFilterList; + /** + * Creates a new instance. + */ public FilterParameter(@NotNull final NamedFilter defaultFilterList) { + super(""); this.defaultFilterList = defaultFilterList; } - @NotNull - @Override - public NamedFilterConfig getValue() { - NamedFilterConfig o = super.getValue(); - if (o == null) { - o = defaultFilterList.createConfig(); - setValue(o); - } - return o; - } - /** * {@inheritDoc} */ + @Nullable @Override - public boolean setStringValue(@NotNull final String stringValue) { - return false; // XXX: not implemented + public NamedFilterConfig getValue() { + return null; // XXX: not implemented } /** Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/IntegerParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/IntegerParameter.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/IntegerParameter.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -25,9 +25,10 @@ import org.jetbrains.annotations.NotNull; /** - * A {@link PluginParameter} that holds an integer value. + * A {@link PluginParameter} that holds an integer value and a range of valid + * values. */ -public class IntegerParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractPluginParameter<G, A, R, Integer> { +public class IntegerParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValuePluginParameter<G, A, R, Integer> { /** * The string representation of this parameter type. @@ -46,6 +47,13 @@ private int max = Integer.MAX_VALUE; /** + * Creates a new instance. + */ + public IntegerParameter() { + super(0); + } + + /** * {@inheritDoc} */ @NotNull @@ -65,13 +73,28 @@ } catch (final NumberFormatException ignored) { return false; } - setValue(intValue); + if (intValue < min) { + return false; + } + if (intValue > max) { + return false; + } + super.setValue(intValue); + assert getValue() == intValue; return true; } /** * {@inheritDoc} */ + @Override + public void setValue(@NotNull final Integer value) { + super.setValue(Math.max(Math.min(value, max), min)); + } + + /** + * {@inheritDoc} + */ @NotNull @Override public String getParameterType() { @@ -79,6 +102,15 @@ } /** + * {@inheritDoc} + */ + @NotNull + @Override + public String getStringValue() { + return getValue().toString(); + } + + /** * Returns the maximal allowed value. * @return the maximal allowed value */ Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/MapParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/MapParameter.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/MapParameter.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -30,7 +30,7 @@ /** * A {@link PluginParameter} that holds a {@link MapControl} value. */ -public class MapParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractPluginParameter<G, A, R, Object> { // XXX: find correct parameter type: String or MapControl<GameObject, MapArchObject, Archetype> +public class MapParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractStringPluginParameter<G, A, R, MapControl<G, A, R>> { /** * The string representation of this parameter type. @@ -57,6 +57,7 @@ * instances */ public MapParameter(@NotNull final MapManager<G, A, R> mapManager) { + super(""); // XXX this.mapManager = mapManager; } @@ -83,47 +84,34 @@ */ @Nullable @Override - public Object getValue() { - final String s = (String) super.getValue(); - if (CURRENT_MAP.equals(s)) { + public MapControl<G, A, R> getValue() { + final String stringValue = getStringValue(); + if (CURRENT_MAP.equals(stringValue)) { return mapManager.getCurrentMap(); } for (final MapControl<G, A, R> mapControl : mapManager.getOpenedMaps()) { - if (mapControl.getMapModel().getMapArchObject().getMapName().equalsIgnoreCase(s)) { + if (mapControl.getMapModel().getMapArchObject().getMapName().equalsIgnoreCase(stringValue)) { return mapControl; } } - return mapManager.getCurrentMap(); + return null; } /** - * {@inheritDoc} + * Selects the current map. */ - @Override - public boolean setValue(@Nullable final Object value) { - if (value == null) { - return super.setValue(null); - } else { - final MapControl<?, ?, ?> map = (MapControl<?, ?, ?>) value; - return super.setValue(map.getMapModel().getMapArchObject().getMapName()); - } + public void setValueToCurrent() { + setStringValue(CURRENT_MAP); } /** - * {@inheritDoc} + * Returns whether the current map is selected. + * @return whether the current map is selected */ - @Override - public boolean setStringValue(@NotNull final String stringValue) { - return super.setValue(stringValue); + public boolean isCurrentMap() { + return getStringValue().equals(CURRENT_MAP); } - /** - * Selects the current map. - */ - public void setValueToCurrent() { - super.setValue(CURRENT_MAP); - } - } Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -30,7 +30,7 @@ * @author tchize * @author Andreas Kirschbaum */ -public interface PluginParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> { +public interface PluginParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>, V> { /** * The name of the parameter. It identifies the parameter in the user @@ -69,15 +69,23 @@ /** * Returns the current value of the parameter. - * @return the value or {@code null} if unknown or invalid. + * @return the value or {@code null} if invalid. */ @Nullable - Object getValue(); + V getValue(); /** + * Returns the string representation of the current value of the parameter. + * @return the string representation of the value + */ + @NotNull + String getStringValue(); + + /** * Sets the parameter value from string representation. - * @param stringValue the value to set - * @return whether the value was updated + * @param stringValue the string representation of the value to set + * @return {@code true} if the value was accepted or {@code false} if the + * value was not changed because the new value is invalid */ boolean setStringValue(@NotNull String stringValue); Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterCodec.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterCodec.java 2013-11-24 09:14:49 UTC (rev 9509) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterCodec.java 2013-11-24 09:32:18 UTC (rev 9510) @@ -24,7 +24,6 @@ import net.sf.gridarta.model.filter.NamedFilterConfig; import net.sf.gridarta.model.gameobject.GameObject; import net.sf.gridarta.model.maparchobject.MapArchObject; -import net.sf.gridarta.utils.NumberUtils; import org.jdom.Element; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -48,7 +47,7 @@ * @return the plugin parameter in XML encoding */ @NotNull - private Element toXML(@NotNull final PluginParameter<G, A, R> parameter) { + private Element toXML(@NotNull final PluginParameter<G, A, R, ?> parameter) { final Element e = new Element("parameter"); final Element n = new Element("name"); final Element d = new Element("description"); @@ -67,12 +66,7 @@ public Element visit(@NotNull final ArchetypeParameter<G, A, R> parameter) { final Element e = toXML(parameter); final Element v = new Element("value"); - final Archetype<G, A, R> archetype = parameter.getValue(); - if (archetype != null) { - v.addContent(archetype.getArchetypeName()); - } else { - v.addContent(parameter.getValueString()); - } + v.addContent(parameter.getStringValue()); e.addContent(v); return e; } @@ -82,8 +76,7 @@ public Element visit(@NotNull final BooleanParameter<G, A, R> parameter) { final Element e = toXML(parameter); final Element v = new Element("value"); - final Boolean value = parameter.getValue(); - v.addContent(value != null ? value.toString() : ""); + v.addContent(parameter.getStringValue()); e.addContent(v); final Element yes = new Element("trueText"); yes.addContent(parameter.getTrueText()); @@ -99,8 +92,7 @@ public Element visit(@NotNull final DoubleParameter<G, A, R> parameter) { final Element e = toXML(parameter); final Element v = new Element("value"); - final Double value = parameter.getValue(); - v.addContent(value != null ? value.toString() : ""); + v.addContent(parameter.getStringValue()); e.addContent(v); final Element min = new Element("minimum"); final Element max = new Element("maximum"); @@ -124,8 +116,7 @@ public Element visit(@NotNull final IntegerParameter<G, A, R> parameter) { final Element e = toXML(parameter); final Element v = new Element("value"); - final Integer value = parameter.getValue(); - v.addContent(value != null ? value.toString() : ""); + v.addContent(parameter.getStringValue()); e.addContent(v); final Element min = new Element("minimum"); final Element max = new Element("maximum"); @@ -141,7 +132,7 @@ public Element visit(@NotNull final MapParameter<G, A, R> parameter) { final Element e = toXML(parameter); final Element v = new Element("value"); - v.addContent((String) parameter.getValue()); + v.addContent(parameter.isCurrentMap() ? "" : parameter.getStringValue()); e.addContent(v); return e; } @@ -151,8 +142,7 @@ public Element visit(@NotNull final MapPathParameter<G, A, R> parameter) { final Element e = toXML(parameter); final Element s = new Element("value"); - final String value = parameter.getValue(); - s.addContent(value != null ? value : ""); + s.addContent(parameter.getStringValue()); e.addContent(s); return e; } @@ -162,8 +152,7 @@ public Element visit(@NotNull final StringParameter<G, A, R> parameter) { final Element e = toXML(parameter); final Element s = new Element("value"); - final String value = parameter.getValue(); - s.addContent(value != null ? value : ""); + s.addContent(parameter.getStringValue()); e.addContent(s); return e; } @@ -175,121 +164,97 @@ * from XML representation. */ @NotNull - private final PluginParameterVisitor<G, A, R, PluginParameter<G, A, R>> fromXML = new PluginParameterVisitor<G, A, R, PluginParameter<G, A, R>>() { + private final PluginParameterVisitor<G, A, R, PluginParameter<G, A, R, ?>> fromXML = new PluginParameterVisitor<G, A, R, PluginParameter<G, A, R, ?>>() { /** * Restores generic plugin parameter values. * @param parameter the plugin parameter being restored */ - public void... [truncated message content] |
From: <aki...@us...> - 2013-11-24 09:14:52
|
Revision: 9509 http://sourceforge.net/p/gridarta/code/9509 Author: akirschbaum Date: 2013-11-24 09:14:49 +0000 (Sun, 24 Nov 2013) Log Message: ----------- Fix incorrect test. Modified Paths: -------------- trunk/src/plugin/src/test/java/net/sf/gridarta/plugin/parameter/PluginParameterCodecTest.java Modified: trunk/src/plugin/src/test/java/net/sf/gridarta/plugin/parameter/PluginParameterCodecTest.java =================================================================== --- trunk/src/plugin/src/test/java/net/sf/gridarta/plugin/parameter/PluginParameterCodecTest.java 2013-11-24 09:14:35 UTC (rev 9508) +++ trunk/src/plugin/src/test/java/net/sf/gridarta/plugin/parameter/PluginParameterCodecTest.java 2013-11-24 09:14:49 UTC (rev 9509) @@ -64,10 +64,10 @@ final StringBuilder sb = new StringBuilder(); sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); sb.append("<parameter>\r\n"); - sb.append(" <name>Name</name>\r\n"); - sb.append(" <description>Description</description>\r\n"); + sb.append(" <name>[name]</name>\r\n"); + sb.append(" <description>[description]</description>\r\n"); sb.append(" <type>net.sf.gridarta.model.archetype.Archetype</type>\r\n"); - sb.append(" <value/>\r\n"); + sb.append(" <value />\r\n"); sb.append("</parameter>\r\n"); sb.append("\r\n"); Assert.assertEquals(sb.toString(), toXML(parameter)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-24 09:14:42
|
Revision: 9508 http://sourceforge.net/p/gridarta/code/9508 Author: akirschbaum Date: 2013-11-24 09:14:35 +0000 (Sun, 24 Nov 2013) Log Message: ----------- Rename variable names. Modified Paths: -------------- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/Plugin.java Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/Plugin.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/Plugin.java 2013-11-24 08:40:39 UTC (rev 9507) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/Plugin.java 2013-11-24 09:14:35 UTC (rev 9508) @@ -182,8 +182,8 @@ */ public int getParameter(@NotNull final String paramName) { int index = 0; - for (final PluginParameter<G, A, R> param : parameters) { - if (param.getName().equals(paramName)) { + for (final PluginParameter<G, A, R> parameter : parameters) { + if (parameter.getName().equals(paramName)) { return index; } index++; @@ -267,8 +267,8 @@ model.filter = filter; model.script = script; model.modified = modified; - for (final PluginParameter<G, A, R> param : parameters) { - final Element paramXml = codec.toXML(param); + for (final PluginParameter<G, A, R> parameter : parameters) { + final Element paramXml = codec.toXML(parameter); final PluginParameter<G, A, R> clonedParam; try { clonedParam = pluginParameterFactory.createParameter(paramXml); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-24 08:40:45
|
Revision: 9507 http://sourceforge.net/p/gridarta/code/9507 Author: akirschbaum Date: 2013-11-24 08:40:39 +0000 (Sun, 24 Nov 2013) Log Message: ----------- Rename parameter name. Modified Paths: -------------- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPathParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchetypeParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/BooleanParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/DoubleParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/FilterParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/IntegerParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/MapParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/StringParameter.java Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPathParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPathParameter.java 2013-11-24 08:35:12 UTC (rev 9506) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPathParameter.java 2013-11-24 08:40:39 UTC (rev 9507) @@ -52,8 +52,8 @@ * {@inheritDoc} */ @Override - public boolean setStringValue(@NotNull final String value) { - setValue(value); + public boolean setStringValue(@NotNull final String stringValue) { + setValue(stringValue); return true; } Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchetypeParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchetypeParameter.java 2013-11-24 08:35:12 UTC (rev 9506) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchetypeParameter.java 2013-11-24 08:40:39 UTC (rev 9507) @@ -79,10 +79,10 @@ * {@inheritDoc} */ @Override - public boolean setStringValue(@NotNull final String value) { + public boolean setStringValue(@NotNull final String stringValue) { final Archetype<G, A, R> archetype; try { - archetype = archetypeSet.getArchetype(value); + archetype = archetypeSet.getArchetype(stringValue); } catch (final UndefinedArchetypeException ignored) { return false; } Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/BooleanParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/BooleanParameter.java 2013-11-24 08:35:12 UTC (rev 9506) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/BooleanParameter.java 2013-11-24 08:40:39 UTC (rev 9507) @@ -60,11 +60,11 @@ * {@inheritDoc} */ @Override - public boolean setStringValue(@NotNull final String value) { - if (value.equals("true")) { + public boolean setStringValue(@NotNull final String stringValue) { + if (stringValue.equals("true")) { setValue(Boolean.TRUE); return true; - } else if (value.equals("false")) { + } else if (stringValue.equals("false")) { setValue(Boolean.FALSE); return true; } else { Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/DoubleParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/DoubleParameter.java 2013-11-24 08:35:12 UTC (rev 9506) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/DoubleParameter.java 2013-11-24 08:40:39 UTC (rev 9507) @@ -60,10 +60,10 @@ * {@inheritDoc} */ @Override - public boolean setStringValue(@NotNull final String value) { + public boolean setStringValue(@NotNull final String stringValue) { final double doubleValue; try { - doubleValue = Double.parseDouble(value); + doubleValue = Double.parseDouble(stringValue); } catch (final NumberFormatException ignored) { return false; } Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/FilterParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/FilterParameter.java 2013-11-24 08:35:12 UTC (rev 9506) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/FilterParameter.java 2013-11-24 08:40:39 UTC (rev 9507) @@ -53,7 +53,7 @@ * {@inheritDoc} */ @Override - public boolean setStringValue(@NotNull final String value) { + public boolean setStringValue(@NotNull final String stringValue) { return false; // XXX: not implemented } Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/IntegerParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/IntegerParameter.java 2013-11-24 08:35:12 UTC (rev 9506) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/IntegerParameter.java 2013-11-24 08:40:39 UTC (rev 9507) @@ -58,10 +58,10 @@ * {@inheritDoc} */ @Override - public boolean setStringValue(@NotNull final String value) { + public boolean setStringValue(@NotNull final String stringValue) { final int intValue; try { - intValue = Integer.parseInt(value); + intValue = Integer.parseInt(stringValue); } catch (final NumberFormatException ignored) { return false; } Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/MapParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/MapParameter.java 2013-11-24 08:35:12 UTC (rev 9506) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/MapParameter.java 2013-11-24 08:40:39 UTC (rev 9507) @@ -115,8 +115,8 @@ * {@inheritDoc} */ @Override - public boolean setStringValue(@NotNull final String value) { - return super.setValue(value); + public boolean setStringValue(@NotNull final String stringValue) { + return super.setValue(stringValue); } /** Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java 2013-11-24 08:35:12 UTC (rev 9506) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java 2013-11-24 08:40:39 UTC (rev 9507) @@ -76,10 +76,10 @@ /** * Sets the parameter value from string representation. - * @param value the value to set + * @param stringValue the value to set * @return whether the value was updated */ - boolean setStringValue(@NotNull String value); + boolean setStringValue(@NotNull String stringValue); /** * Calls the {@code visit()} function for this parameter type. Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/StringParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/StringParameter.java 2013-11-24 08:35:12 UTC (rev 9506) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/StringParameter.java 2013-11-24 08:40:39 UTC (rev 9507) @@ -56,8 +56,8 @@ * {@inheritDoc} */ @Override - public boolean setStringValue(@NotNull final String value) { - setValue(value); + public boolean setStringValue(@NotNull final String stringValue) { + setValue(stringValue); return true; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-24 08:35:19
|
Revision: 9506 http://sourceforge.net/p/gridarta/code/9506 Author: akirschbaum Date: 2013-11-24 08:35:12 +0000 (Sun, 24 Nov 2013) Log Message: ----------- Fix plugin script parameter editor. Modified Paths: -------------- trunk/src/atrinik/ChangeLog trunk/src/crossfire/ChangeLog trunk/src/daimonin/ChangeLog trunk/src/plugin/build.gradle trunk/src/plugin/plugin.iml trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/IntegerParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterCodec.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/StringParameter.java Added Paths: ----------- trunk/src/plugin/src/test/java/net/ trunk/src/plugin/src/test/java/net/sf/ trunk/src/plugin/src/test/java/net/sf/gridarta/ trunk/src/plugin/src/test/java/net/sf/gridarta/plugin/ trunk/src/plugin/src/test/java/net/sf/gridarta/plugin/parameter/ trunk/src/plugin/src/test/java/net/sf/gridarta/plugin/parameter/PluginParameterCodecTest.java Modified: trunk/src/atrinik/ChangeLog =================================================================== --- trunk/src/atrinik/ChangeLog 2013-11-23 15:16:13 UTC (rev 9505) +++ trunk/src/atrinik/ChangeLog 2013-11-24 08:35:12 UTC (rev 9506) @@ -1,3 +1,7 @@ +2013-11-24 Andreas Kirschbaum + + * Fix plugin script parameter editor. + 2013-11-23 Andreas Kirschbaum * Fix layout issues in plugin manager dialog. Modified: trunk/src/crossfire/ChangeLog =================================================================== --- trunk/src/crossfire/ChangeLog 2013-11-23 15:16:13 UTC (rev 9505) +++ trunk/src/crossfire/ChangeLog 2013-11-24 08:35:12 UTC (rev 9506) @@ -1,3 +1,7 @@ +2013-11-24 Andreas Kirschbaum + + * Fix plugin script parameter editor. + 2013-11-23 Andreas Kirschbaum * Fix layout issues in plugin manager dialog. Modified: trunk/src/daimonin/ChangeLog =================================================================== --- trunk/src/daimonin/ChangeLog 2013-11-23 15:16:13 UTC (rev 9505) +++ trunk/src/daimonin/ChangeLog 2013-11-24 08:35:12 UTC (rev 9506) @@ -1,3 +1,7 @@ +2013-11-24 Andreas Kirschbaum + + * Fix plugin script parameter editor. + 2013-11-23 Andreas Kirschbaum * Fix layout issues in plugin manager dialog. Modified: trunk/src/plugin/build.gradle =================================================================== --- trunk/src/plugin/build.gradle 2013-11-23 15:16:13 UTC (rev 9505) +++ trunk/src/plugin/build.gradle 2013-11-24 08:35:12 UTC (rev 9506) @@ -9,4 +9,5 @@ compile name: 'log4j', version: '1.2.13' compile project(':src:model') testCompile name: 'junit', version: '4.2' + testCompile project(':src:model').sourceSets.test.output } Modified: trunk/src/plugin/plugin.iml =================================================================== --- trunk/src/plugin/plugin.iml 2013-11-23 15:16:13 UTC (rev 9505) +++ trunk/src/plugin/plugin.iml 2013-11-24 08:35:12 UTC (rev 9506) @@ -17,6 +17,7 @@ <orderEntry type="library" name="bsh-core" level="project" /> <orderEntry type="library" name="bsh-util" level="project" /> <orderEntry type="library" name="jdom" level="project" /> + <orderEntry type="library" name="junit" level="project" /> <orderEntry type="library" name="log4j" level="project" /> </component> </module> Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/IntegerParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/IntegerParameter.java 2013-11-23 15:16:13 UTC (rev 9505) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/IntegerParameter.java 2013-11-24 08:35:12 UTC (rev 9506) @@ -91,7 +91,7 @@ * @param max the maximal allowed value */ public void setMax(final int max) { - this.max = Math.min(min, max); + this.max = Math.max(min, max); if (getValue() > this.max) { setValue(this.max); } Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterCodec.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterCodec.java 2013-11-23 15:16:13 UTC (rev 9505) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterCodec.java 2013-11-24 08:35:12 UTC (rev 9506) @@ -215,7 +215,13 @@ @Override public PluginParameter<G, A, R> visit(@NotNull final DoubleParameter<G, A, R> parameter) { fromXML(parameter); + final String val = e.getChildText("value"); try { + parameter.setValue(NumberUtils.parseDouble(val)); + } catch (final NumberFormatException ignored) { + parameter.setValue(0.0); + } + try { parameter.setMin(Double.parseDouble(e.getChildTextTrim("minimum"))); } catch (final NumberFormatException ignored) { } @@ -223,8 +229,6 @@ parameter.setMax(Double.parseDouble(e.getChildTextTrim("maximum"))); } catch (final NumberFormatException ignored) { } - final String val = e.getChildText("value"); - parameter.setValue(NumberUtils.parseDouble(val)); return parameter; } @@ -245,8 +249,7 @@ fromXML(parameter); final String val = e.getChildText("value"); try { - final Integer iVal = Integer.parseInt(val); - parameter.setValue(iVal); + parameter.setValue(Integer.parseInt(val)); } catch (final NumberFormatException ignored) { parameter.setValue(0); } Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/StringParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/StringParameter.java 2013-11-23 15:16:13 UTC (rev 9505) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/StringParameter.java 2013-11-24 08:35:12 UTC (rev 9506) @@ -49,7 +49,7 @@ if (log.isDebugEnabled()) { log.debug("New instance of " + StringParameter.class.getName()); } - setValue("[description]"); + setValue(""); } /** Added: trunk/src/plugin/src/test/java/net/sf/gridarta/plugin/parameter/PluginParameterCodecTest.java =================================================================== --- trunk/src/plugin/src/test/java/net/sf/gridarta/plugin/parameter/PluginParameterCodecTest.java (rev 0) +++ trunk/src/plugin/src/test/java/net/sf/gridarta/plugin/parameter/PluginParameterCodecTest.java 2013-11-24 08:35:12 UTC (rev 9506) @@ -0,0 +1,901 @@ +/* + * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games. + * Copyright (C) 2000-2011 The Gridarta Developers. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +package net.sf.gridarta.plugin.parameter; + +import java.io.File; +import java.io.IOException; +import java.io.StringReader; +import java.io.StringWriter; +import java.io.Writer; +import java.util.Collections; +import net.sf.gridarta.model.archetype.TestArchetype; +import net.sf.gridarta.model.filter.NamedFilter; +import net.sf.gridarta.model.filter.NamedFilterConfig; +import net.sf.gridarta.model.gameobject.TestGameObject; +import net.sf.gridarta.model.maparchobject.TestMapArchObject; +import net.sf.gridarta.model.mapcontrol.MapControl; +import net.sf.gridarta.model.mapcontrol.TestMapControlCreator; +import net.sf.gridarta.model.mapmodel.TestMapModelCreator; +import net.sf.gridarta.model.match.NamedGameObjectMatcher; +import net.sf.gridarta.utils.Size2D; +import org.jdom.Document; +import org.jdom.Element; +import org.jdom.JDOMException; +import org.jdom.input.SAXBuilder; +import org.jdom.output.Format; +import org.jdom.output.XMLOutputter; +import org.jetbrains.annotations.NotNull; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +/** + * Regression tests for {@link PluginParameterCodec}. + * @author Andreas Kirschbaum + */ +public class PluginParameterCodecTest { + + /** + * Checks that an {@link ArchetypeParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Ignore + @Test + public void testArchetypeToXml1() throws IOException { + final TestMapModelCreator mapModelCreator = new TestMapModelCreator(false); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = new ArchetypeParameter<TestGameObject, TestMapArchObject, TestArchetype>(mapModelCreator.getArchetypeSet()); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>net.sf.gridarta.model.archetype.Archetype</type>\r\n"); + sb.append(" <value/>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that an {@link ArchetypeParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Ignore + @Test + public void testArchetypeToXml2() throws IOException { + final TestMapModelCreator mapModelCreator = new TestMapModelCreator(false); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = new ArchetypeParameter<TestGameObject, TestMapArchObject, TestArchetype>(mapModelCreator.getArchetypeSet()); + parameter.setStringValue("undefined_archetype"); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>[name]</name>\r\n"); + sb.append(" <description>[description]</description>\r\n"); + sb.append(" <type>net.sf.gridarta.model.archetype.Archetype</type>\r\n"); + sb.append(" <value>undefined_archetype</value>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that an {@link ArchetypeParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Test + public void testArchetypeToXml3() throws IOException { + final TestMapModelCreator mapModelCreator = new TestMapModelCreator(false); + final TestArchetype archetype = mapModelCreator.getArchetype("existing_archetype"); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = new ArchetypeParameter<TestGameObject, TestMapArchObject, TestArchetype>(mapModelCreator.getArchetypeSet()); + parameter.setStringValue(archetype.getArchetypeName()); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>[name]</name>\r\n"); + sb.append(" <description>[description]</description>\r\n"); + sb.append(" <type>net.sf.gridarta.model.archetype.Archetype</type>\r\n"); + sb.append(" <value>existing_archetype</value>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that a {@link BooleanParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Test + public void testBooleanToXml1() throws IOException { + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = new BooleanParameter<TestGameObject, TestMapArchObject, TestArchetype>(); + parameter.setName("Name"); + parameter.setDescription("Description"); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>java.lang.Boolean</type>\r\n"); + sb.append(" <value />\r\n"); + sb.append(" <trueText>Yes</trueText>\r\n"); + sb.append(" <falseText>No</falseText>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that a {@link BooleanParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Test + public void testBooleanToXml2() throws IOException { + final BooleanParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = new BooleanParameter<TestGameObject, TestMapArchObject, TestArchetype>(); + parameter.setStringValue("true"); + parameter.setTrueText("true-text"); + parameter.setFalseText("false-text"); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>[name]</name>\r\n"); + sb.append(" <description>[description]</description>\r\n"); + sb.append(" <type>java.lang.Boolean</type>\r\n"); + sb.append(" <value>true</value>\r\n"); + sb.append(" <trueText>true-text</trueText>\r\n"); + sb.append(" <falseText>false-text</falseText>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that a {@link DoubleParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Test + public void testDoubleToXml1() throws IOException { + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = new DoubleParameter<TestGameObject, TestMapArchObject, TestArchetype>(); + parameter.setName("Name"); + parameter.setDescription("Description"); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>java.lang.Double</type>\r\n"); + sb.append(" <value />\r\n"); + sb.append(" <minimum>0.0</minimum>\r\n"); + sb.append(" <maximum>1.0</maximum>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that a {@link DoubleParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Test + public void testDoubleToXml2() throws IOException { + final DoubleParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = new DoubleParameter<TestGameObject, TestMapArchObject, TestArchetype>(); + parameter.setValue(12.34); + parameter.setMin(-123.456); + parameter.setMax(234.0); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>[name]</name>\r\n"); + sb.append(" <description>[description]</description>\r\n"); + sb.append(" <type>java.lang.Double</type>\r\n"); + sb.append(" <value>12.34</value>\r\n"); + sb.append(" <minimum>-123.456</minimum>\r\n"); + sb.append(" <maximum>234.0</maximum>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that a {@link FilterParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Test + public void testFilterToXml1() throws IOException { + final Iterable<NamedGameObjectMatcher> matchers = Collections.emptyList(); + final NamedFilter namedFilter = new NamedFilter(matchers); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = new FilterParameter<TestGameObject, TestMapArchObject, TestArchetype>(namedFilter); + parameter.setName("Name"); + parameter.setDescription("Description"); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>net.sf.gridarta.model.filter.NamedFilterConfig</type>\r\n"); + sb.append(" <value>\r\n"); + sb.append(" <enabled>false</enabled>\r\n"); + sb.append(" <inverted>false</inverted>\r\n"); + sb.append(" </value>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that a {@link FilterParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Test + public void testFilterToXml2() throws IOException { + final Iterable<NamedGameObjectMatcher> matchers = Collections.emptyList(); + final NamedFilter namedFilter = new NamedFilter(matchers); + final AbstractPluginParameter<TestGameObject, TestMapArchObject, TestArchetype, NamedFilterConfig> parameter = new FilterParameter<TestGameObject, TestMapArchObject, TestArchetype>(namedFilter); + final NamedFilterConfig config = namedFilter.createConfig(); + config.setInverted(true); + config.setEnabled(true); + parameter.setValue(config); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>[name]</name>\r\n"); + sb.append(" <description>[description]</description>\r\n"); + sb.append(" <type>net.sf.gridarta.model.filter.NamedFilterConfig</type>\r\n"); + sb.append(" <value>\r\n"); + sb.append(" <enabled>true</enabled>\r\n"); + sb.append(" <inverted>true</inverted>\r\n"); + sb.append(" </value>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that an {@link IntegerParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Test + public void testIntegerToXml1() throws IOException { + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = new IntegerParameter<TestGameObject, TestMapArchObject, TestArchetype>(); + parameter.setName("Name"); + parameter.setDescription("Description"); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>java.lang.Integer</type>\r\n"); + sb.append(" <value />\r\n"); + sb.append(" <minimum>-2147483648</minimum>\r\n"); + sb.append(" <maximum>2147483647</maximum>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that an {@link IntegerParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Test + public void testIntegerToXml2() throws IOException { + final IntegerParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = new IntegerParameter<TestGameObject, TestMapArchObject, TestArchetype>(); + parameter.setValue(2); + parameter.setMin(-123); + parameter.setMax(234); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>[name]</name>\r\n"); + sb.append(" <description>[description]</description>\r\n"); + sb.append(" <type>java.lang.Integer</type>\r\n"); + sb.append(" <value>2</value>\r\n"); + sb.append(" <minimum>-123</minimum>\r\n"); + sb.append(" <maximum>234</maximum>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that a {@link MapParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Test + public void testMapToXml1() throws IOException { + final TestMapControlCreator mapControlCreator = new TestMapControlCreator(); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = new MapParameter<TestGameObject, TestMapArchObject, TestArchetype>(mapControlCreator.getMapManager()); + parameter.setName("Name"); + parameter.setDescription("Description"); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>net.sf.gridarta.model.mapcontrol.MapControl</type>\r\n"); + sb.append(" <value />\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that a {@link MapParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Test + public void testMapToXml2() throws IOException { + final TestMapControlCreator mapControlCreator = new TestMapControlCreator(); + final MapParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = new MapParameter<TestGameObject, TestMapArchObject, TestArchetype>(mapControlCreator.getMapManager()); + parameter.setValueToCurrent(); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>[name]</name>\r\n"); + sb.append(" <description>[description]</description>\r\n"); + sb.append(" <type>net.sf.gridarta.model.mapcontrol.MapControl</type>\r\n"); + sb.append(" <value />\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that a {@link MapParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Ignore + @Test + public void testMapToXml3() throws IOException { + final TestMapControlCreator mapControlCreator = new TestMapControlCreator(); + final AbstractPluginParameter<TestGameObject, TestMapArchObject, TestArchetype, Object> parameter = new MapParameter<TestGameObject, TestMapArchObject, TestArchetype>(mapControlCreator.getMapManager()); + final MapControl<TestGameObject, TestMapArchObject, TestArchetype> mapControl = mapControlCreator.newMapControl(new File("/tmp/path/to/map"), "map name", new Size2D(13, 15)); + parameter.setValue(mapControl); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>[name]</name>\r\n"); + sb.append(" <description>[description]</description>\r\n"); + sb.append(" <type>net.sf.gridarta.model.mapcontrol.MapControl</type>\r\n"); + sb.append(" <value>/path/to/map</value>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that a {@link MapPathParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Test + public void testMapPathToXml1() throws IOException { + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = new MapPathParameter<TestGameObject, TestMapArchObject, TestArchetype>(new File("/tmp")); + parameter.setName("Name"); + parameter.setDescription("Description"); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>MapPathParameter</type>\r\n"); + sb.append(" <value />\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that a {@link MapPathParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Test + public void testMapPathToXml2() throws IOException { + final AbstractPluginParameter<TestGameObject, TestMapArchObject, TestArchetype, String> parameter = new MapPathParameter<TestGameObject, TestMapArchObject, TestArchetype>(new File("/tmp")); + parameter.setValue("/path"); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>[name]</name>\r\n"); + sb.append(" <description>[description]</description>\r\n"); + sb.append(" <type>MapPathParameter</type>\r\n"); + sb.append(" <value>/path</value>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that a {@link StringParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Test + public void testStringToXml1() throws IOException { + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = new StringParameter<TestGameObject, TestMapArchObject, TestArchetype>(); + parameter.setName("Name"); + parameter.setDescription("Description"); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>java.lang.String</type>\r\n"); + sb.append(" <value />\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that a {@link StringParameter} instance is correctly encoded. + * @throws IOException if the test fails + */ + @Test + public void testStringToXml2() throws IOException { + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = new StringParameter<TestGameObject, TestMapArchObject, TestArchetype>(); + parameter.setStringValue("string value"); + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>[name]</name>\r\n"); + sb.append(" <description>[description]</description>\r\n"); + sb.append(" <type>java.lang.String</type>\r\n"); + sb.append(" <value>string value</value>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + Assert.assertEquals(sb.toString(), toXML(parameter)); + } + + /** + * Checks that a {@link ArchetypeParameter} is correctly decoded. + * @throws IOException if the test fails + * @throws JDOMException if the test fails + * @throws NoSuchParameterException if the test fails + */ + @Ignore + @Test + public void testArchetypeFromXml1() throws IOException, JDOMException, NoSuchParameterException { + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>net.sf.gridarta.model.archetype.Archetype</type>\r\n"); + sb.append(" <value/>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + final TestMapControlCreator mapControlCreator = new TestMapControlCreator(); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = fromXML(mapControlCreator, sb.toString()); + Assert.assertTrue(parameter instanceof ArchetypeParameter); + final ArchetypeParameter<?, ?, ?> archetypeParameter = (ArchetypeParameter<?, ?, ?>) parameter; + Assert.assertEquals("Name", parameter.getName()); + Assert.assertEquals("net.sf.gridarta.model.archetype.Archetype", parameter.getParameterType()); + Assert.assertEquals("Description", parameter.getDescription()); + Assert.assertNull(parameter.getValue()); + Assert.assertEquals("XXX", archetypeParameter.getValueString()); + } + + /** + * Checks that an {@link ArchetypeParameter} is correctly decoded. + * @throws IOException if the test fails + * @throws JDOMException if the test fails + * @throws NoSuchParameterException if the test fails + */ + @Ignore + @Test + public void testArchetypeFromXml2() throws IOException, JDOMException, NoSuchParameterException { + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>net.sf.gridarta.model.archetype.Archetype</type>\r\n"); + sb.append(" <value>undefined_archetype</value>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + final TestMapControlCreator mapControlCreator = new TestMapControlCreator(); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = fromXML(mapControlCreator, sb.toString()); + Assert.assertTrue(parameter instanceof ArchetypeParameter); + final ArchetypeParameter<?, ?, ?> archetypeParameter = (ArchetypeParameter<?, ?, ?>) parameter; + Assert.assertEquals("Name", parameter.getName()); + Assert.assertEquals("net.sf.gridarta.model.archetype.Archetype", parameter.getParameterType()); + Assert.assertEquals("Description", parameter.getDescription()); + Assert.assertNull(parameter.getValue()); + Assert.assertEquals("undefined_archetype", archetypeParameter.getValueString()); + } + + /** + * Checks that an {@link ArchetypeParameter} is correctly decoded. + * @throws IOException if the test fails + * @throws JDOMException if the test fails + * @throws NoSuchParameterException if the test fails + */ + @Ignore + @Test + public void testArchetypeFromXml3() throws IOException, JDOMException, NoSuchParameterException { + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>net.sf.gridarta.model.archetype.Archetype</type>\r\n"); + sb.append(" <value>existing_archetype</value>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + final TestMapControlCreator mapControlCreator = new TestMapControlCreator(); + final TestArchetype archetype = mapControlCreator.getMapModelCreator().getArchetype("existing_archetype"); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = fromXML(mapControlCreator, sb.toString()); + Assert.assertTrue(parameter instanceof ArchetypeParameter); + final ArchetypeParameter<?, ?, ?> archetypeParameter = (ArchetypeParameter<?, ?, ?>) parameter; + Assert.assertEquals("Name", parameter.getName()); + Assert.assertEquals("net.sf.gridarta.model.archetype.Archetype", parameter.getParameterType()); + Assert.assertEquals("Description", parameter.getDescription()); + Assert.assertSame(archetype, parameter.getValue()); + Assert.assertEquals("existing_archetype", archetypeParameter.getValueString()); + } + + /** + * Checks that a {@link BooleanParameter} is correctly decoded. + * @throws IOException if the test fails + * @throws JDOMException if the test fails + * @throws NoSuchParameterException if the test fails + */ + @Test + public void testBooleanFromXml1() throws IOException, JDOMException, NoSuchParameterException { + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>java.lang.Boolean</type>\r\n"); + sb.append(" <value />\r\n"); + sb.append(" <trueText>Yes</trueText>\r\n"); + sb.append(" <falseText>No</falseText>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + final TestMapControlCreator mapControlCreator = new TestMapControlCreator(); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = fromXML(mapControlCreator, sb.toString()); + Assert.assertTrue(parameter instanceof BooleanParameter); + final BooleanParameter<?, ?, ?> booleanParameter = (BooleanParameter<?, ?, ?>) parameter; + Assert.assertEquals("Name", parameter.getName()); + Assert.assertEquals("java.lang.Boolean", parameter.getParameterType()); + Assert.assertEquals("Description", parameter.getDescription()); + Assert.assertSame(Boolean.FALSE, parameter.getValue()); + Assert.assertEquals("No", booleanParameter.getFalseText()); + Assert.assertEquals("Yes", booleanParameter.getTrueText()); + } + + /** + * Checks that a {@link BooleanParameter} is correctly decoded. + * @throws IOException if the test fails + * @throws JDOMException if the test fails + * @throws NoSuchParameterException if the test fails + */ + @Test + public void testBooleanFromXml2() throws IOException, JDOMException, NoSuchParameterException { + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>java.lang.Boolean</type>\r\n"); + sb.append(" <value>true</value>\r\n"); + sb.append(" <trueText>true-text</trueText>\r\n"); + sb.append(" <falseText>false-text</falseText>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + final TestMapControlCreator mapControlCreator = new TestMapControlCreator(); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = fromXML(mapControlCreator, sb.toString()); + Assert.assertTrue(parameter instanceof BooleanParameter); + final BooleanParameter<?, ?, ?> booleanParameter = (BooleanParameter<?, ?, ?>) parameter; + Assert.assertEquals("Name", parameter.getName()); + Assert.assertEquals("java.lang.Boolean", parameter.getParameterType()); + Assert.assertEquals("Description", parameter.getDescription()); + Assert.assertSame(Boolean.TRUE, parameter.getValue()); + Assert.assertEquals("false-text", booleanParameter.getFalseText()); + Assert.assertEquals("true-text", booleanParameter.getTrueText()); + } + + /** + * Checks that a {@link DoubleParameter} is correctly decoded. + * @throws IOException if the test fails + * @throws JDOMException if the test fails + * @throws NoSuchParameterException if the test fails + */ + @Test + public void testDoubleFromXml1() throws IOException, JDOMException, NoSuchParameterException { + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>java.lang.Double</type>\r\n"); + sb.append(" <value />\r\n"); + sb.append(" <minimum>0.0</minimum>\r\n"); + sb.append(" <maximum>1.0</maximum>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + final TestMapControlCreator mapControlCreator = new TestMapControlCreator(); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = fromXML(mapControlCreator, sb.toString()); + Assert.assertTrue(parameter instanceof DoubleParameter); + final DoubleParameter<?, ?, ?> doubleParameter = (DoubleParameter<?, ?, ?>) parameter; + Assert.assertEquals("Name", parameter.getName()); + Assert.assertEquals("java.lang.Double", parameter.getParameterType()); + Assert.assertEquals("Description", parameter.getDescription()); + Assert.assertEquals(0.0, parameter.getValue()); + Assert.assertEquals(0.0, doubleParameter.getMin()); + Assert.assertEquals(1.0, doubleParameter.getMax()); + } + + /** + * Checks that a {@link DoubleParameter} is correctly decoded. + * @throws IOException if the test fails + * @throws JDOMException if the test fails + * @throws NoSuchParameterException if the test fails + */ + @Test + public void testDoubleFromXml2() throws IOException, JDOMException, NoSuchParameterException { + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>java.lang.Double</type>\r\n"); + sb.append(" <value>12.34</value>\r\n"); + sb.append(" <minimum>-123.456</minimum>\r\n"); + sb.append(" <maximum>234.0</maximum>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + final TestMapControlCreator mapControlCreator = new TestMapControlCreator(); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = fromXML(mapControlCreator, sb.toString()); + Assert.assertTrue(parameter instanceof DoubleParameter); + final DoubleParameter<?, ?, ?> doubleParameter = (DoubleParameter<?, ?, ?>) parameter; + Assert.assertEquals("Name", parameter.getName()); + Assert.assertEquals("java.lang.Double", parameter.getParameterType()); + Assert.assertEquals("Description", parameter.getDescription()); + Assert.assertEquals(12.34, parameter.getValue()); + Assert.assertEquals(-123.456, doubleParameter.getMin()); + Assert.assertEquals(234.0, doubleParameter.getMax()); + } + + /** + * Checks that a {@link FilterParameter} is correctly decoded. + * @throws IOException if the test fails + * @throws JDOMException if the test fails + * @throws NoSuchParameterException if the test fails + */ + @Test + public void testFilterFromXml1() throws IOException, JDOMException, NoSuchParameterException { + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>net.sf.gridarta.model.filter.NamedFilterConfig</type>\r\n"); + sb.append(" <value>\r\n"); + sb.append(" <enabled>false</enabled>\r\n"); + sb.append(" <inverted>false</inverted>\r\n"); + sb.append(" </value>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + final TestMapControlCreator mapControlCreator = new TestMapControlCreator(); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = fromXML(mapControlCreator, sb.toString()); + Assert.assertTrue(parameter instanceof FilterParameter); + //noinspection TypeMayBeWeakened + final FilterParameter<?, ?, ?> filterParameter = (FilterParameter<?, ?, ?>) parameter; + Assert.assertEquals("Name", parameter.getName()); + Assert.assertEquals("net.sf.gridarta.model.filter.NamedFilterConfig", parameter.getParameterType()); + Assert.assertEquals("Description", parameter.getDescription()); + Assert.assertFalse(filterParameter.getValue().isEnabled()); + Assert.assertFalse(filterParameter.getValue().isInverted()); + } + + /** + * Checks that a {@link FilterParameter} is correctly decoded. + * @throws IOException if the test fails + * @throws JDOMException if the test fails + * @throws NoSuchParameterException if the test fails + */ + @Test + public void testFilterFromXml2() throws IOException, JDOMException, NoSuchParameterException { + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>net.sf.gridarta.model.filter.NamedFilterConfig</type>\r\n"); + sb.append(" <value>\r\n"); + sb.append(" <enabled>true</enabled>\r\n"); + sb.append(" <inverted>true</inverted>\r\n"); + sb.append(" </value>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + final TestMapControlCreator mapControlCreator = new TestMapControlCreator(); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = fromXML(mapControlCreator, sb.toString()); + Assert.assertTrue(parameter instanceof FilterParameter); + //noinspection TypeMayBeWeakened + final FilterParameter<?, ?, ?> filterParameter = (FilterParameter<?, ?, ?>) parameter; + Assert.assertEquals("Name", parameter.getName()); + Assert.assertEquals("net.sf.gridarta.model.filter.NamedFilterConfig", parameter.getParameterType()); + Assert.assertEquals("Description", parameter.getDescription()); + Assert.assertTrue(filterParameter.getValue().isEnabled()); + Assert.assertTrue(filterParameter.getValue().isInverted()); + } + + /** + * Checks that an {@link IntegerParameter} is correctly decoded. + * @throws IOException if the test fails + * @throws JDOMException if the test fails + * @throws NoSuchParameterException if the test fails + */ + @Test + public void testIntegerFromXml1() throws IOException, JDOMException, NoSuchParameterException { + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>java.lang.Integer</type>\r\n"); + sb.append(" <value />\r\n"); + sb.append(" <minimum>-2147483648</minimum>\r\n"); + sb.append(" <maximum>2147483647</maximum>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + final TestMapControlCreator mapControlCreator = new TestMapControlCreator(); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = fromXML(mapControlCreator, sb.toString()); + Assert.assertTrue(parameter instanceof IntegerParameter); + final IntegerParameter<?, ?, ?> integerParameter = (IntegerParameter<?, ?, ?>) parameter; + Assert.assertEquals("Name", parameter.getName()); + Assert.assertEquals("java.lang.Integer", parameter.getParameterType()); + Assert.assertEquals("Description", parameter.getDescription()); + Assert.assertEquals(0, parameter.getValue()); + Assert.assertEquals(-2147483648, integerParameter.getMin()); + Assert.assertEquals(2147483647, integerParameter.getMax()); + } + + /** + * Checks that an {@link IntegerParameter} is correctly decoded. + * @throws IOException if the test fails + * @throws JDOMException if the test fails + * @throws NoSuchParameterException if the test fails + */ + @Test + public void testIntegerFromXml2() throws IOException, JDOMException, NoSuchParameterException { + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>java.lang.Integer</type>\r\n"); + sb.append(" <value>2</value>\r\n"); + sb.append(" <minimum>-123</minimum>\r\n"); + sb.append(" <maximum>234</maximum>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + final TestMapControlCreator mapControlCreator = new TestMapControlCreator(); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = fromXML(mapControlCreator, sb.toString()); + Assert.assertTrue(parameter instanceof IntegerParameter); + final IntegerParameter<?, ?, ?> integerParameter = (IntegerParameter<?, ?, ?>) parameter; + Assert.assertEquals("Name", parameter.getName()); + Assert.assertEquals("java.lang.Integer", parameter.getParameterType()); + Assert.assertEquals("Description", parameter.getDescription()); + Assert.assertEquals(2, parameter.getValue()); + Assert.assertEquals(-123, integerParameter.getMin()); + Assert.assertEquals(234, integerParameter.getMax()); + } + + /** + * Checks that a {@link MapParameter} is correctly decoded. + * @throws IOException if the test fails + * @throws JDOMException if the test fails + * @throws NoSuchParameterException if the test fails + */ + @Test + public void testMapFromXml1() throws IOException, JDOMException, NoSuchParameterException { + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>net.sf.gridarta.model.mapcontrol.MapControl</type>\r\n"); + sb.append(" <value />\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + final TestMapControlCreator mapControlCreator = new TestMapControlCreator(); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = fromXML(mapControlCreator, sb.toString()); + Assert.assertTrue(parameter instanceof MapParameter); + //final MapParameter<?, ?, ?> mapParameter = (MapParameter<?, ?, ?>) parameter; + Assert.assertEquals("Name", parameter.getName()); + Assert.assertEquals("net.sf.gridarta.model.mapcontrol.MapControl", parameter.getParameterType()); + Assert.assertEquals("Description", parameter.getDescription()); + Assert.assertSame(mapControlCreator.getMapManager().getCurrentMap(), parameter.getValue()); + } + + /** + * Checks that a {@link MapParameter} is correctly decoded. + * @throws IOException if the test fails + * @throws JDOMException if the test fails + * @throws NoSuchParameterException if the test fails + */ + @Ignore + @Test + public void testMapFromXml3() throws IOException, JDOMException, NoSuchParameterException { + final StringBuilder sb = new StringBuilder(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); + sb.append("<parameter>\r\n"); + sb.append(" <name>Name</name>\r\n"); + sb.append(" <description>Description</description>\r\n"); + sb.append(" <type>net.sf.gridarta.model.mapcontrol.MapControl</type>\r\n"); + sb.append(" <value>/path/to/map</value>\r\n"); + sb.append("</parameter>\r\n"); + sb.append("\r\n"); + final TestMapControlCreator mapControlCreator = new TestMapControlCreator(); + mapControlCreator.getMapManager().newMap(null, new TestMapArchObject(), new File("/tmp/path/to/map"), false); + final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter = fromXML(mapControlCreator, sb.toString()); + Assert.assertTrue(parameter instanceof MapParameter); + //noinspection TypeMayBeWeakened + final MapParameter<?, ?, ?> mapParameter = (MapParameter<?, ?, ?>) parameter; + Assert.assertEquals("Name", parameter.getName()); + Assert.assertEquals("net.sf.gridarta.model.mapcontrol.MapControl", parameter.getParameterType()); + Assert.assertEquals("Description", parameter.getDescription()); + final MapControl<?, ?, ?> mapControl2 = (MapControl<?, ?, ?>) mapParameter.getValue(); + Assert.assertNotNull(mapControl2); + final File mapFile = mapControl2.getMapModel().getMapFile(); + Assert.assertNotNull(mapFile); + Assert.assertTrue(mapFile.getPath().endsWith("/path/to/map")); + } + + /** + * Encodes a {@link PluginParameter} to its string representation. + * @param parameter the plugin parameter + * @return the string representation + * @throws IOException if encoding fails + */ + @NotNull + private static String toXML(@NotNull final PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> parameter) throws IOException { + final PluginParameterCodec<TestGameObject, TestMapArchObject, TestArchetype> codec = new PluginParameterCodec<TestGameObject, TestMapArchObject, TestArchetype>(); + final Element element = codec.toXML(parameter); + final Document d = new Document(element); + final XMLOutputter out = new XMLOutputter(); + out.setFormat(Format.getPrettyFormat()); + final Writer writer = new StringWriter(); + out.output(d, writer); + //noinspection ObjectToString + return writer.toString(); + } + + /** + * Decodes a {@link PluginParameter} from its string representation. + * @param mapControlCreator the map control creator to use + * @param string the string representation + * @return the plugin parameter + * @throws IOException if decoding fails + * @throws JDOMException if decoding fails + * @throws NoSuchParameterException if decoding fails + */ + @NotNull + private static PluginParameter<TestGameObject, TestMapArchObject, TestArchetype> fromXML(@NotNull final TestMapControlCreator mapControlCreator, @NotNull final String string) throws IOException, JDOMException, NoSuchParameterException { + final SAXBuilder builder = new SAXBuilder(false); + final Document document = builder.build(new StringReader(string)); + final Iterable<NamedGameObjectMatcher> matchers = Collections.emptyList(); + final NamedFilter filterList = new NamedFilter(matchers); + final PluginParameterFactory<TestGameObject, TestMapArchObject, TestArchetype> parameterFactory = new PluginParameterFactory<TestGameObject, TestMapArchObject, TestArchetype>(mapControlCreator.getArchetypeSet(), mapControlCreator.getMapManager(), filterList, mapControlCreator.getProjectSettings()); + final Element element = document.getRootElement(); + return parameterFactory.createParameter(element); + } + +} Property changes on: trunk/src/plugin/src/test/java/net/sf/gridarta/plugin/parameter/PluginParameterCodecTest.java ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 15:16:18
|
Revision: 9505 http://sourceforge.net/p/gridarta/code/9505 Author: akirschbaum Date: 2013-11-23 15:16:13 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Reorder code. Modified Paths: -------------- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java 2013-11-23 15:15:03 UTC (rev 9504) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java 2013-11-23 15:16:13 UTC (rev 9505) @@ -32,10 +32,10 @@ public abstract class AbstractPluginParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>, V> implements PluginParameter<G, A, R> { /** - * The current value. + * The name of the parameter for the plugin script. */ - @Nullable - private V value; + @NotNull + private String name = "[name]"; /** * The user-provided description of the value for the user interface. @@ -44,10 +44,10 @@ private String description = "[description]"; /** - * The name of the parameter for the plugin script. + * The current value. */ - @NotNull - private String name = "[name]"; + @Nullable + private V value; /** * Creates a new instance. @@ -60,16 +60,16 @@ */ @NotNull @Override - public String getDescription() { - return description; + public String getName() { + return name; } /** * {@inheritDoc} */ @Override - public void setDescription(@NotNull final String description) { - this.description = description; + public void setName(@NotNull final String name) { + this.name = name; } /** @@ -77,16 +77,16 @@ */ @NotNull @Override - public String getName() { - return name; + public String getDescription() { + return description; } /** * {@inheritDoc} */ @Override - public void setName(@NotNull final String name) { - this.name = name; + public void setDescription(@NotNull final String description) { + this.description = description; } /** Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java 2013-11-23 15:15:03 UTC (rev 9504) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java 2013-11-23 15:16:13 UTC (rev 9505) @@ -33,19 +33,6 @@ public interface PluginParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> { /** - * The user-provided description of the value for the user interface. - * @return the description - */ - @NotNull - String getDescription(); - - /** - * Sets the user-provided description of the value for the user interface. - * @param description the description - */ - void setDescription(@NotNull String description); - - /** * The name of the parameter. It identifies the parameter in the user * interface and from the plugin script code. * @return the name @@ -61,6 +48,26 @@ void setName(@NotNull String name); /** + * Returns the parameter type name. + * @return the parameter type name + */ + @NotNull + String getParameterType(); + + /** + * The user-provided description of the value for the user interface. + * @return the description + */ + @NotNull + String getDescription(); + + /** + * Sets the user-provided description of the value for the user interface. + * @param description the description + */ + void setDescription(@NotNull String description); + + /** * Returns the current value of the parameter. * @return the value or {@code null} if unknown or invalid. */ @@ -75,13 +82,6 @@ boolean setStringValue(@NotNull String value); /** - * Returns the parameter type name. - * @return the parameter type name - */ - @NotNull - String getParameterType(); - - /** * Calls the {@code visit()} function for this parameter type. * @param visitor the visitor to call * @param <T> the visitor-specific type of the return value This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 15:15:07
|
Revision: 9504 http://sourceforge.net/p/gridarta/code/9504 Author: akirschbaum Date: 2013-11-23 15:15:03 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Update comments. Modified Paths: -------------- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java 2013-11-23 15:09:13 UTC (rev 9503) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java 2013-11-23 15:15:03 UTC (rev 9504) @@ -38,7 +38,7 @@ private V value; /** - * The description of the value for the user interface. + * The user-provided description of the value for the user interface. */ @NotNull private String description = "[description]"; Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java 2013-11-23 15:09:13 UTC (rev 9503) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java 2013-11-23 15:15:03 UTC (rev 9504) @@ -32,16 +32,38 @@ */ public interface PluginParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> { + /** + * The user-provided description of the value for the user interface. + * @return the description + */ @NotNull String getDescription(); + /** + * Sets the user-provided description of the value for the user interface. + * @param description the description + */ void setDescription(@NotNull String description); + /** + * The name of the parameter. It identifies the parameter in the user + * interface and from the plugin script code. + * @return the name + */ @NotNull String getName(); + /** + * Sets the name of the parameter. It identifies the parameter in the user + * interface and from the plugin script code. + * @param name the name + */ void setName(@NotNull String name); + /** + * Returns the current value of the parameter. + * @return the value or {@code null} if unknown or invalid. + */ @Nullable Object getValue(); @@ -52,9 +74,19 @@ */ boolean setStringValue(@NotNull String value); + /** + * Returns the parameter type name. + * @return the parameter type name + */ @NotNull String getParameterType(); + /** + * Calls the {@code visit()} function for this parameter type. + * @param visitor the visitor to call + * @param <T> the visitor-specific type of the return value + * @return an visitor-specific return value + */ @NotNull <T> T visit(@NotNull PluginParameterVisitor<G, A, R, T> visitor); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 15:09:18
|
Revision: 9503 http://sourceforge.net/p/gridarta/code/9503 Author: akirschbaum Date: 2013-11-23 15:09:13 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Remove unused code. Modified Paths: -------------- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java Removed Paths: ------------- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterListener.java Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java 2013-11-23 13:41:59 UTC (rev 9502) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java 2013-11-23 15:09:13 UTC (rev 9503) @@ -22,7 +22,6 @@ import net.sf.gridarta.model.archetype.Archetype; import net.sf.gridarta.model.gameobject.GameObject; import net.sf.gridarta.model.maparchobject.MapArchObject; -import net.sf.gridarta.utils.EventListenerList2; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -51,12 +50,6 @@ private String name = "[name]"; /** - * The listeners to be notified about changes. - */ - @NotNull - private final EventListenerList2<PluginParameterListener<G, A, R>> listeners = new EventListenerList2<PluginParameterListener<G, A, R>>(PluginParameterListener.class); - - /** * Creates a new instance. */ protected AbstractPluginParameter() { @@ -119,29 +112,4 @@ return true; } - /** - * {@inheritDoc} - */ - @Override - public void addPluginParameterListener(@NotNull final PluginParameterListener<G, A, R> listener) { - listeners.add(listener); - } - - /** - * {@inheritDoc} - */ - @Override - public void removePluginParameterListener(@NotNull final PluginParameterListener<G, A, R> listener) { - listeners.remove(listener); - } - - /** - * Notifies all listeners about a state change. - */ - protected void fireDataChanged() { - for (final PluginParameterListener<G, A, R> listener : listeners.getListeners()) { - listener.stateChanged(); - } - } - } Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java 2013-11-23 13:41:59 UTC (rev 9502) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameter.java 2013-11-23 15:09:13 UTC (rev 9503) @@ -55,10 +55,6 @@ @NotNull String getParameterType(); - void addPluginParameterListener(@NotNull PluginParameterListener<G, A, R> listener); - - void removePluginParameterListener(@NotNull PluginParameterListener<G, A, R> listener); - @NotNull <T> T visit(@NotNull PluginParameterVisitor<G, A, R, T> visitor); Deleted: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterListener.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterListener.java 2013-11-23 13:41:59 UTC (rev 9502) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterListener.java 2013-11-23 15:09:13 UTC (rev 9503) @@ -1,39 +0,0 @@ -/* - * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games. - * Copyright (C) 2000-2010 The Gridarta Developers. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -package net.sf.gridarta.plugin.parameter; - -import java.util.EventListener; -import net.sf.gridarta.model.archetype.Archetype; -import net.sf.gridarta.model.gameobject.GameObject; -import net.sf.gridarta.model.maparchobject.MapArchObject; - -/** - * Interface for listeners interested in {@link PluginParameter} related - * events. - * @author Andreas Kirschbaum - */ -public interface PluginParameterListener<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends EventListener { - - /** - * Called whenever a plugin parameter's value has changed. - */ - void stateChanged(); - -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 13:42:03
|
Revision: 9502 http://sourceforge.net/p/gridarta/code/9502 Author: akirschbaum Date: 2013-11-23 13:41:59 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Rename class name. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterCodec.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterFactory.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterVisitor.java Added Paths: ----------- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchetypeParameter.java Removed Paths: ------------- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchParameter.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java 2013-11-23 13:39:53 UTC (rev 9501) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java 2013-11-23 13:41:59 UTC (rev 9502) @@ -28,7 +28,7 @@ import net.sf.gridarta.model.gameobject.GameObject; import net.sf.gridarta.model.maparchobject.MapArchObject; import net.sf.gridarta.model.mapmanager.MapManager; -import net.sf.gridarta.plugin.parameter.ArchParameter; +import net.sf.gridarta.plugin.parameter.ArchetypeParameter; import net.sf.gridarta.plugin.parameter.BooleanParameter; import net.sf.gridarta.plugin.parameter.DoubleParameter; import net.sf.gridarta.plugin.parameter.FilterParameter; @@ -76,7 +76,7 @@ @NotNull @Override - public PluginParameterView<G, A, R> visit(@NotNull final ArchParameter<G, A, R> parameter) { + public PluginParameterView<G, A, R> visit(@NotNull final ArchetypeParameter<G, A, R> parameter) { return new ArchParameterView<G, A, R>(parameter, gameObjectAttributesModel, archetypeSet, objectChooser, faceObjectProviders); } Deleted: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchParameter.java 2013-11-23 13:39:53 UTC (rev 9501) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchParameter.java 2013-11-23 13:41:59 UTC (rev 9502) @@ -1,107 +0,0 @@ -/* - * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games. - * Copyright (C) 2000-2010 The Gridarta Developers. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -package net.sf.gridarta.plugin.parameter; - -import net.sf.gridarta.model.archetype.Archetype; -import net.sf.gridarta.model.archetype.UndefinedArchetypeException; -import net.sf.gridarta.model.archetypeset.ArchetypeSet; -import net.sf.gridarta.model.gameobject.GameObject; -import net.sf.gridarta.model.maparchobject.MapArchObject; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * A {@link PluginParameter} that holds an {@link Archetype} value. - */ -public class ArchParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractPluginParameter<G, A, R, Archetype<G, A, R>> { - - /** - * The string representation of this parameter type. - */ - @NotNull - public static final String PARAMETER_TYPE = Archetype.class.getName(); - - /** - * The {@link ArchetypeSet} for looking up archetypes. - */ - @NotNull - private final ArchetypeSet<G, A, R> archetypeSet; - - private String valueString; - - /** - * Creates a new instance. - * @param archetypeSet the archetype set for looking up archetypes - */ - public ArchParameter(@NotNull final ArchetypeSet<G, A, R> archetypeSet) { - this.archetypeSet = archetypeSet; - } - - /** - * {@inheritDoc} - */ - @NotNull - @Override - public <T> T visit(@NotNull final PluginParameterVisitor<G, A, R, T> visitor) { - return visitor.visit(this); - } - - /** - * {@inheritDoc} - */ - @Nullable - @Override - public Archetype<G, A, R> getValue() { - if (super.getValue() == null) { - setValue(archetypeSet.getOrCreateArchetype(valueString)); - } - return super.getValue(); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean setStringValue(@NotNull final String value) { - final Archetype<G, A, R> archetype; - try { - archetype = archetypeSet.getArchetype(value); - } catch (final UndefinedArchetypeException ignored) { - return false; - } - setValue(archetype); - return true; - } - - /** - * {@inheritDoc} - */ - @NotNull - @Override - public String getParameterType() { - return PARAMETER_TYPE; - } - - @Nullable - public String getValueString() { - return valueString; - } - -} Copied: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchetypeParameter.java (from rev 9493, trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchParameter.java) =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchetypeParameter.java (rev 0) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchetypeParameter.java 2013-11-23 13:41:59 UTC (rev 9502) @@ -0,0 +1,107 @@ +/* + * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games. + * Copyright (C) 2000-2010 The Gridarta Developers. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +package net.sf.gridarta.plugin.parameter; + +import net.sf.gridarta.model.archetype.Archetype; +import net.sf.gridarta.model.archetype.UndefinedArchetypeException; +import net.sf.gridarta.model.archetypeset.ArchetypeSet; +import net.sf.gridarta.model.gameobject.GameObject; +import net.sf.gridarta.model.maparchobject.MapArchObject; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * A {@link PluginParameter} that holds an {@link Archetype} value. + */ +public class ArchetypeParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractPluginParameter<G, A, R, Archetype<G, A, R>> { + + /** + * The string representation of this parameter type. + */ + @NotNull + public static final String PARAMETER_TYPE = Archetype.class.getName(); + + /** + * The {@link ArchetypeSet} for looking up archetypes. + */ + @NotNull + private final ArchetypeSet<G, A, R> archetypeSet; + + private String valueString; + + /** + * Creates a new instance. + * @param archetypeSet the archetype set for looking up archetypes + */ + public ArchetypeParameter(@NotNull final ArchetypeSet<G, A, R> archetypeSet) { + this.archetypeSet = archetypeSet; + } + + /** + * {@inheritDoc} + */ + @NotNull + @Override + public <T> T visit(@NotNull final PluginParameterVisitor<G, A, R, T> visitor) { + return visitor.visit(this); + } + + /** + * {@inheritDoc} + */ + @Nullable + @Override + public Archetype<G, A, R> getValue() { + if (super.getValue() == null) { + setValue(archetypeSet.getOrCreateArchetype(valueString)); + } + return super.getValue(); + } + + /** + * {@inheritDoc} + */ + @Override + public boolean setStringValue(@NotNull final String value) { + final Archetype<G, A, R> archetype; + try { + archetype = archetypeSet.getArchetype(value); + } catch (final UndefinedArchetypeException ignored) { + return false; + } + setValue(archetype); + return true; + } + + /** + * {@inheritDoc} + */ + @NotNull + @Override + public String getParameterType() { + return PARAMETER_TYPE; + } + + @Nullable + public String getValueString() { + return valueString; + } + +} Property changes on: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/ArchetypeParameter.java ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +LF \ No newline at end of property Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterCodec.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterCodec.java 2013-11-23 13:39:53 UTC (rev 9501) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterCodec.java 2013-11-23 13:41:59 UTC (rev 9502) @@ -64,7 +64,7 @@ @NotNull @Override - public Element visit(@NotNull final ArchParameter<G, A, R> parameter) { + public Element visit(@NotNull final ArchetypeParameter<G, A, R> parameter) { final Element e = toXML(parameter); final Element v = new Element("value"); final Archetype<G, A, R> archetype = parameter.getValue(); @@ -190,7 +190,7 @@ @NotNull @Override - public PluginParameter<G, A, R> visit(@NotNull final ArchParameter<G, A, R> parameter) { + public PluginParameter<G, A, R> visit(@NotNull final ArchetypeParameter<G, A, R> parameter) { fromXML(parameter); assert e != null; parameter.setStringValue(e.getChildTextTrim("value")); Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterFactory.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterFactory.java 2013-11-23 13:39:53 UTC (rev 9501) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterFactory.java 2013-11-23 13:41:59 UTC (rev 9502) @@ -92,8 +92,8 @@ if (type.equals(BooleanParameter.PARAMETER_TYPE)) { return new BooleanParameter<G, A, R>(); } - if (type.equals(ArchParameter.PARAMETER_TYPE)) { - return new ArchParameter<G, A, R>(archetypeSet); + if (type.equals(ArchetypeParameter.PARAMETER_TYPE)) { + return new ArchetypeParameter<G, A, R>(archetypeSet); } if (type.equals(MapParameter.PARAMETER_TYPE)) { return new MapParameter<G, A, R>(mapManager); @@ -116,7 +116,7 @@ @NotNull public String[] getTypes() { - return new String[] { StringParameter.PARAMETER_TYPE, IntegerParameter.PARAMETER_TYPE, DoubleParameter.PARAMETER_TYPE, BooleanParameter.PARAMETER_TYPE, ArchParameter.PARAMETER_TYPE, MapParameter.PARAMETER_TYPE, FilterParameter.PARAMETER_TYPE, MapPathParameter.PARAMETER_TYPE, }; + return new String[] { StringParameter.PARAMETER_TYPE, IntegerParameter.PARAMETER_TYPE, DoubleParameter.PARAMETER_TYPE, BooleanParameter.PARAMETER_TYPE, ArchetypeParameter.PARAMETER_TYPE, MapParameter.PARAMETER_TYPE, FilterParameter.PARAMETER_TYPE, MapPathParameter.PARAMETER_TYPE, }; } } Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterVisitor.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterVisitor.java 2013-11-23 13:39:53 UTC (rev 9501) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterVisitor.java 2013-11-23 13:41:59 UTC (rev 9502) @@ -32,12 +32,12 @@ public interface PluginParameterVisitor<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>, T> { /** - * Called for {@link ArchParameter} instances. + * Called for {@link ArchetypeParameter} instances. * @param parameter the parameter instance * @return an implementation-specific return value */ @NotNull - T visit(@NotNull ArchParameter<G, A, R> parameter); + T visit(@NotNull ArchetypeParameter<G, A, R> parameter); /** * Called for {@link BooleanParameter} instances. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 13:39:56
|
Revision: 9501 http://sourceforge.net/p/gridarta/code/9501 Author: akirschbaum Date: 2013-11-23 13:39:53 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Remove unused listener parameter. Modified Paths: -------------- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterListener.java Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java 2013-11-23 13:39:38 UTC (rev 9500) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java 2013-11-23 13:39:53 UTC (rev 9501) @@ -140,7 +140,7 @@ */ protected void fireDataChanged() { for (final PluginParameterListener<G, A, R> listener : listeners.getListeners()) { - listener.stateChanged(this); + listener.stateChanged(); } } Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterListener.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterListener.java 2013-11-23 13:39:38 UTC (rev 9500) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterListener.java 2013-11-23 13:39:53 UTC (rev 9501) @@ -23,7 +23,6 @@ import net.sf.gridarta.model.archetype.Archetype; import net.sf.gridarta.model.gameobject.GameObject; import net.sf.gridarta.model.maparchobject.MapArchObject; -import org.jetbrains.annotations.NotNull; /** * Interface for listeners interested in {@link PluginParameter} related @@ -34,8 +33,7 @@ /** * Called whenever a plugin parameter's value has changed. - * @param pluginParameter the plugin parameter that has changed */ - void stateChanged(@NotNull PluginParameter<G, A, R> pluginParameter); + void stateChanged(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 13:39:43
|
Revision: 9500 http://sourceforge.net/p/gridarta/code/9500 Author: akirschbaum Date: 2013-11-23 13:39:38 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Remove unused import statements. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManagerFactory.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManagerFactory.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManagerFactory.java 2013-11-23 13:33:30 UTC (rev 9499) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManagerFactory.java 2013-11-23 13:39:38 UTC (rev 9500) @@ -28,8 +28,6 @@ import net.sf.gridarta.plugin.PluginModel; import net.sf.gridarta.utils.EditorAction; import net.sf.gridarta.utils.ResourceIcons; -import net.sf.japi.swing.action.ActionBuilder; -import net.sf.japi.swing.action.ActionBuilderFactory; import net.sf.japi.swing.action.ActionMethod; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 13:33:39
|
Revision: 9499 http://sourceforge.net/p/gridarta/code/9499 Author: akirschbaum Date: 2013-11-23 13:33:30 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Update comments. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/gameobjectattributes/DialogAttributeAnimationName.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/gameobjectattributes/DialogAttributeFaceName.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/gameobjectattributes/DialogAttributeString.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapPathParameterView.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/map/AbstractPerMapDialogManager.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/mapfiles/DuplicateMapFolderException.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/mapfiles/DuplicatePickmapException.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/mapfiles/InvalidNameException.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/mapfiles/MapFolderNotEmptyException.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/undo/UndoControl.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/utils/AsynchronousProgress.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPathParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/BooleanParameter.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterListener.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterVisitor.java trunk/src/textedit/src/main/java/net/sf/gridarta/textedit/textarea/tokenmarker/TokenMarkerFactory.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/gameobjectattributes/DialogAttributeAnimationName.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/gameobjectattributes/DialogAttributeAnimationName.java 2013-11-23 13:32:53 UTC (rev 9498) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/gameobjectattributes/DialogAttributeAnimationName.java 2013-11-23 13:33:30 UTC (rev 9499) @@ -75,4 +75,4 @@ addLine(doc, style, "", " = " + value); } -} // DialogAttributeAnimationName +} Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/gameobjectattributes/DialogAttributeFaceName.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/gameobjectattributes/DialogAttributeFaceName.java 2013-11-23 13:32:53 UTC (rev 9498) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/gameobjectattributes/DialogAttributeFaceName.java 2013-11-23 13:33:30 UTC (rev 9499) @@ -75,4 +75,4 @@ addLine(doc, style, "", " = " + value); } -} // DialogAttributeFaceName +} Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/gameobjectattributes/DialogAttributeString.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/gameobjectattributes/DialogAttributeString.java 2013-11-23 13:32:53 UTC (rev 9498) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/gameobjectattributes/DialogAttributeString.java 2013-11-23 13:33:30 UTC (rev 9499) @@ -77,4 +77,4 @@ addLine(doc, style, "", " = " + value); } -} // DialogAttributeString +} Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapPathParameterView.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapPathParameterView.java 2013-11-23 13:32:53 UTC (rev 9498) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapPathParameterView.java 2013-11-23 13:33:30 UTC (rev 9499) @@ -93,4 +93,4 @@ return config; } -} // class MapPathParameterView +} Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/map/AbstractPerMapDialogManager.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/map/AbstractPerMapDialogManager.java 2013-11-23 13:32:53 UTC (rev 9498) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/map/AbstractPerMapDialogManager.java 2013-11-23 13:33:30 UTC (rev 9499) @@ -127,4 +127,4 @@ */ protected abstract void dispose(@NotNull final D dialog); -} // class AbstractPerMapDialogManager +} Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/mapfiles/DuplicateMapFolderException.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/mapfiles/DuplicateMapFolderException.java 2013-11-23 13:32:53 UTC (rev 9498) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/mapfiles/DuplicateMapFolderException.java 2013-11-23 13:33:30 UTC (rev 9499) @@ -40,4 +40,4 @@ super("duplicate folder: " + folderName); } -} // DuplicateMapFolderException +} Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/mapfiles/DuplicatePickmapException.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/mapfiles/DuplicatePickmapException.java 2013-11-23 13:32:53 UTC (rev 9498) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/mapfiles/DuplicatePickmapException.java 2013-11-23 13:33:30 UTC (rev 9499) @@ -40,4 +40,4 @@ super("duplicate folder: " + pickmapName); } -} // DuplicatePickmapException +} Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/mapfiles/InvalidNameException.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/mapfiles/InvalidNameException.java 2013-11-23 13:32:53 UTC (rev 9498) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/mapfiles/InvalidNameException.java 2013-11-23 13:33:30 UTC (rev 9499) @@ -40,4 +40,4 @@ super(name); } -} // InvalidNameException +} Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/mapfiles/MapFolderNotEmptyException.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/mapfiles/MapFolderNotEmptyException.java 2013-11-23 13:32:53 UTC (rev 9498) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/mapfiles/MapFolderNotEmptyException.java 2013-11-23 13:33:30 UTC (rev 9499) @@ -40,4 +40,4 @@ super("folder contains sub-folders: " + folderName); } -} // MapFolderNotEmptyException +} Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/undo/UndoControl.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/undo/UndoControl.java 2013-11-23 13:32:53 UTC (rev 9498) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/undo/UndoControl.java 2013-11-23 13:33:30 UTC (rev 9499) @@ -335,4 +335,4 @@ } } -} // UndoControl +} Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/utils/AsynchronousProgress.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/utils/AsynchronousProgress.java 2013-11-23 13:32:53 UTC (rev 9498) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/utils/AsynchronousProgress.java 2013-11-23 13:33:30 UTC (rev 9499) @@ -105,4 +105,4 @@ }); } -} // AsynchronousProgress +} Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPathParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPathParameter.java 2013-11-23 13:32:53 UTC (rev 9498) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPathParameter.java 2013-11-23 13:33:30 UTC (rev 9499) @@ -74,4 +74,4 @@ setValue(PathManager.getMapPath(file.getAbsolutePath(), baseDir)); } -} // class AbstractPathParameter +} Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java 2013-11-23 13:32:53 UTC (rev 9498) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/AbstractPluginParameter.java 2013-11-23 13:33:30 UTC (rev 9499) @@ -32,18 +32,33 @@ */ public abstract class AbstractPluginParameter<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>, V> implements PluginParameter<G, A, R> { + /** + * The current value. + */ @Nullable private V value; + /** + * The description of the value for the user interface. + */ @NotNull private String description = "[description]"; + /** + * The name of the parameter for the plugin script. + */ @NotNull private String name = "[name]"; + /** + * The listeners to be notified about changes. + */ @NotNull private final EventListenerList2<PluginParameterListener<G, A, R>> listeners = new EventListenerList2<PluginParameterListener<G, A, R>>(PluginParameterListener.class); + /** + * Creates a new instance. + */ protected AbstractPluginParameter() { } @@ -90,6 +105,11 @@ return value; } + /** + * Updates the parameter value. + * @param value the new value + * @return whether the value has changed + */ public boolean setValue(@Nullable final V value) { if (this.value == null ? value == null : this.value.equals(value)) { return false; @@ -115,6 +135,9 @@ listeners.remove(listener); } + /** + * Notifies all listeners about a state change. + */ protected void fireDataChanged() { for (final PluginParameterListener<G, A, R> listener : listeners.getListeners()) { listener.stateChanged(this); Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/BooleanParameter.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/BooleanParameter.java 2013-11-23 13:32:53 UTC (rev 9498) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/BooleanParameter.java 2013-11-23 13:33:30 UTC (rev 9499) @@ -35,9 +35,15 @@ @NotNull public static final String PARAMETER_TYPE = Boolean.class.getName(); + /** + * The string representation of the "true" value. + */ @NotNull private String trueText = "Yes"; + /** + * The string representation of the "false" value. + */ @NotNull private String falseText = "No"; @@ -75,20 +81,36 @@ return PARAMETER_TYPE; } + /** + * Returns the string representation of the "false" value. + * @return the string representation + */ @NotNull public String getFalseText() { return falseText; } + /** + * Returns the string representation of the "true" value. + * @return the string representation + */ @NotNull public String getTrueText() { return trueText; } + /** + * Sets the string representation of the "false" value. + * @param falseText the string representation + */ public void setFalseText(@NotNull final String falseText) { this.falseText = falseText; } + /** + * Sets the string representation of the "true" value. + * @param trueText the string representation + */ public void setTrueText(@NotNull final String trueText) { this.trueText = trueText; } Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterListener.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterListener.java 2013-11-23 13:32:53 UTC (rev 9498) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterListener.java 2013-11-23 13:33:30 UTC (rev 9499) @@ -32,6 +32,10 @@ */ public interface PluginParameterListener<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends EventListener { + /** + * Called whenever a plugin parameter's value has changed. + * @param pluginParameter the plugin parameter that has changed + */ void stateChanged(@NotNull PluginParameter<G, A, R> pluginParameter); } Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterVisitor.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterVisitor.java 2013-11-23 13:32:53 UTC (rev 9498) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterVisitor.java 2013-11-23 13:33:30 UTC (rev 9499) @@ -26,31 +26,72 @@ /** * Interface for visitors of {@link PluginParameter} instances. + * @param <T> an implementation-specific type for visitor return values * @author Andreas Kirschbaum */ public interface PluginParameterVisitor<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>, T> { + /** + * Called for {@link ArchParameter} instances. + * @param parameter the parameter instance + * @return an implementation-specific return value + */ @NotNull T visit(@NotNull ArchParameter<G, A, R> parameter); + /** + * Called for {@link BooleanParameter} instances. + * @param parameter the parameter instance + * @return an implementation-specific return value + */ @NotNull T visit(@NotNull BooleanParameter<G, A, R> parameter); + /** + * Called for {@link DoubleParameter} instances. + * @param parameter the parameter instance + * @return an implementation-specific return value + */ @NotNull T visit(@NotNull DoubleParameter<G, A, R> parameter); + /** + * Called for {@link FilterParameter} instances. + * @param parameter the parameter instance + * @return an implementation-specific return value + */ @NotNull T visit(@NotNull FilterParameter<G, A, R> parameter); + /** + * Called for {@link IntegerParameter} instances. + * @param parameter the parameter instance + * @return an implementation-specific return value + */ @NotNull T visit(@NotNull IntegerParameter<G, A, R> parameter); + /** + * Called for {@link MapParameter} instances. + * @param parameter the parameter instance + * @return an implementation-specific return value + */ @NotNull T visit(@NotNull MapParameter<G, A, R> parameter); + /** + * Called for {@link MapPathParameter} instances. + * @param parameter the parameter instance + * @return an implementation-specific return value + */ @NotNull T visit(@NotNull MapPathParameter<G, A, R> parameter); + /** + * Called for {@link StringParameter} instances. + * @param parameter the parameter instance + * @return an implementation-specific return value + */ @NotNull T visit(@NotNull StringParameter<G, A, R> parameter); Modified: trunk/src/textedit/src/main/java/net/sf/gridarta/textedit/textarea/tokenmarker/TokenMarkerFactory.java =================================================================== --- trunk/src/textedit/src/main/java/net/sf/gridarta/textedit/textarea/tokenmarker/TokenMarkerFactory.java 2013-11-23 13:32:53 UTC (rev 9498) +++ trunk/src/textedit/src/main/java/net/sf/gridarta/textedit/textarea/tokenmarker/TokenMarkerFactory.java 2013-11-23 13:33:30 UTC (rev 9499) @@ -111,4 +111,4 @@ } } -} // TokenMarkerFactory +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 13:33:00
|
Revision: 9498 http://sourceforge.net/p/gridarta/code/9498 Author: akirschbaum Date: 2013-11-23 13:32:53 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Disable warning about missing @author Javadoc comment. Modified Paths: -------------- trunk/gridarta.ipr Modified: trunk/gridarta.ipr =================================================================== --- trunk/gridarta.ipr 2013-11-23 12:34:52 UTC (rev 9497) +++ trunk/gridarta.ipr 2013-11-23 13:32:53 UTC (rev 9498) @@ -549,7 +549,7 @@ <option name="TOP_LEVEL_CLASS_OPTIONS"> <value> <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="package" /> - <option name="REQUIRED_TAGS" value="@author" /> + <option name="REQUIRED_TAGS" value="" /> </value> </option> <option name="INNER_CLASS_OPTIONS"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 12:34:59
|
Revision: 9497 http://sourceforge.net/p/gridarta/code/9497 Author: akirschbaum Date: 2013-11-23 12:34:52 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Remove unused code. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 12:34:15 UTC (rev 9496) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 12:34:52 UTC (rev 9497) @@ -173,7 +173,7 @@ final JTabbedPane tabs = new JTabbedPane(); tabs.addTab(ActionBuilderUtils.getString(ACTION_BUILDER, "pluginEditorTabOptions"), createOptionsTab(resourceIcons)); tabs.addTab(ActionBuilderUtils.getString(ACTION_BUILDER, "pluginEditorTabParameters"), createParameterTab()); - tabs.addTab(ActionBuilderUtils.getString(ACTION_BUILDER, "pluginEditorTabCode"), createCodePanel(pluginController)); + tabs.addTab(ActionBuilderUtils.getString(ACTION_BUILDER, "pluginEditorTabCode"), createCodePanel()); panel.add(tabs); } @@ -305,7 +305,7 @@ } @NotNull - private Component createCodePanel(@NotNull final PluginController<G, A, R> pluginController) { + private Component createCodePanel() { final Container codeBottom = new JPanel(new FlowLayout()); codeBottom.add(new JButton(ACTION_BUILDER.createAction(false, "pluginEditorRunScript", this))); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 12:34:21
|
Revision: 9496 http://sourceforge.net/p/gridarta/code/9496 Author: akirschbaum Date: 2013-11-23 12:34:15 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Weaken type. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 12:30:53 UTC (rev 9495) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 12:34:15 UTC (rev 9496) @@ -90,7 +90,7 @@ private final PluginController<G, A, R> pluginController; @NotNull - private final JPanel panel = new JPanel(new BorderLayout()); + private final Container panel = new JPanel(new BorderLayout()); @NotNull private final PluginParameterViewFactory<G, A, R> pluginParameterViewFactory; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 12:30:57
|
Revision: 9495 http://sourceforge.net/p/gridarta/code/9495 Author: akirschbaum Date: 2013-11-23 12:30:53 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Make plugin editor resources translatable. Add tooltips. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages.properties trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_de.properties trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_fr.properties trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_sv.properties Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 12:27:53 UTC (rev 9494) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 12:30:53 UTC (rev 9495) @@ -27,15 +27,12 @@ import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.HashMap; import java.util.Map; -import javax.swing.AbstractButton; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JLabel; @@ -60,7 +57,11 @@ import net.sf.gridarta.plugin.PluginModel; import net.sf.gridarta.plugin.parameter.NoSuchParameterException; import net.sf.gridarta.plugin.parameter.PluginParameter; +import net.sf.gridarta.utils.ActionBuilderUtils; import net.sf.gridarta.utils.ResourceIcons; +import net.sf.japi.swing.action.ActionBuilder; +import net.sf.japi.swing.action.ActionBuilderFactory; +import net.sf.japi.swing.action.ActionMethod; import org.apache.log4j.Category; import org.apache.log4j.Logger; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; @@ -76,7 +77,19 @@ @NotNull private static final Category log = Logger.getLogger(PluginEditor.class); + /** + * Action Builder. + */ @NotNull + private static final ActionBuilder ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder("net.sf.gridarta"); + + /** + * The associated {@link PluginController} instance. + */ + @NotNull + private final PluginController<G, A, R> pluginController; + + @NotNull private final JPanel panel = new JPanel(new BorderLayout()); @NotNull @@ -86,9 +99,6 @@ private final JPanel paramTable = new JPanel(new GridBagLayout()); @NotNull - private final AbstractButton removeParameter = new JButton("Remove parameter"); - - @NotNull private final PluginModel<G, A, R> pluginModel; @NotNull @@ -148,15 +158,6 @@ } }; - @NotNull - private final AbstractButton typeAutoRun = new JCheckBox("auto-run at application startup"); - - @NotNull - private final AbstractButton typeFilter = new JCheckBox("reference in the filters list"); - - @NotNull - private final AbstractButton typeBash = new JCheckBox("reference in the manual run list"); - /** * Create a visual JComponent used to edit the given script. * @param plugin the script object to edit @@ -164,73 +165,27 @@ * @param resourceIcons the resource icons for creating icons */ public PluginEditor(@NotNull final Plugin<G, A, R> plugin, @NotNull final PluginController<G, A, R> pluginController, @NotNull final PluginModel<G, A, R> pluginModel, @NotNull final PluginParameterViewFactory<G, A, R> pluginParameterViewFactory, @NotNull final ResourceIcons resourceIcons) { + this.pluginController = pluginController; this.pluginModel = pluginModel; this.plugin = plugin; this.pluginParameterViewFactory = pluginParameterViewFactory; final JTabbedPane tabs = new JTabbedPane(); - tabs.addTab("Options", createOptionsTab(pluginController, resourceIcons)); - tabs.addTab("Manual run parameters", createParameterTab()); - tabs.addTab("Code", createCodePanel(pluginController)); + tabs.addTab(ActionBuilderUtils.getString(ACTION_BUILDER, "pluginEditorTabOptions"), createOptionsTab(resourceIcons)); + tabs.addTab(ActionBuilderUtils.getString(ACTION_BUILDER, "pluginEditorTabParameters"), createParameterTab()); + tabs.addTab(ActionBuilderUtils.getString(ACTION_BUILDER, "pluginEditorTabCode"), createCodePanel(pluginController)); panel.add(tabs); } @NotNull - private Component createOptionsTab(@NotNull final PluginController<G, A, R> pluginController, @NotNull final ResourceIcons resourceIcons) { - typeAutoRun.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(final ActionEvent e) { - plugin.setAutoBoot(typeAutoRun.isSelected()); - } - }); - typeAutoRun.setSelected(plugin.isAutoBoot()); - - typeFilter.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(final ActionEvent e) { - plugin.setFilter(typeFilter.isSelected()); - } - }); - typeFilter.setSelected(plugin.isFilter()); - - typeBash.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(final ActionEvent e) { - plugin.setScript(typeBash.isSelected()); - } - }); - typeBash.setSelected(plugin.isScript()); - - final AbstractButton registerButton = new JButton("Re-register script"); - registerButton.setToolTipText("Force plugin manager to unregister this plugin from filter list, launch the auto-run (if plugin is auto-start) and re-register it (if filter plugin)"); - registerButton.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(final ActionEvent e) { - pluginModel.reRegister(plugin); - } - }); - - final AbstractButton exportButton = new JButton("Export script..."); - exportButton.setToolTipText("Export the specified plugin as XML (for distribution)"); - exportButton.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(final ActionEvent e) { - pluginController.savePluginAs(plugin, false); - } - }); - + private Component createOptionsTab(@NotNull final ResourceIcons resourceIcons) { final Container optionsTab = new JPanel(new GridBagLayout()); final GridBagConstraints gbc = new GridBagConstraints(); final Container paramButtons = new JPanel(); paramButtons.setLayout(new StackLayout(5)); - paramButtons.add(registerButton); - paramButtons.add(exportButton); + paramButtons.add(new JButton(ACTION_BUILDER.createAction(false, "pluginEditorReRegister", this))); + paramButtons.add(new JButton(ACTION_BUILDER.createAction(false, "pluginEditorExport", this))); gbc.fill = GridBagConstraints.HORIZONTAL; gbc.gridx = 0; @@ -238,7 +193,7 @@ gbc.gridwidth = 2; gbc.weightx = 1.0; gbc.anchor = GridBagConstraints.CENTER; - optionsTab.add(new JLabel("Plugin run mode", SwingConstants.LEFT), gbc); + optionsTab.add(new JLabel(ActionBuilderUtils.getString(ACTION_BUILDER, "pluginEditorRunMode"), SwingConstants.LEFT), gbc); gbc.gridx = 0; gbc.gridwidth = 1; @@ -258,11 +213,11 @@ gbc.anchor = GridBagConstraints.WEST; gbc.gridy = 1; - optionsTab.add(typeAutoRun, gbc); + optionsTab.add(new JCheckBox(ACTION_BUILDER.createToggle(false, "pluginEditorIsAutoRun", this)), gbc); gbc.gridy = 2; - optionsTab.add(typeFilter, gbc); + optionsTab.add(new JCheckBox(ACTION_BUILDER.createToggle(false, "pluginEditorIsFilter", this)), gbc); gbc.gridy = 3; - optionsTab.add(typeBash, gbc); + optionsTab.add(new JCheckBox(ACTION_BUILDER.createToggle(false, "pluginEditorIsScript", this)), gbc); gbc.gridx = 0; gbc.gridwidth = 2; @@ -294,40 +249,10 @@ } }); - final AbstractButton addParameter = new JButton("Add parameter"); - addParameter.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(final ActionEvent e) { - plugin.newParameter(); - } - }); - - removeParameter.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(final ActionEvent e) { - if (selectedRow < 0) { - return; - } - - final PluginParameter<G, A, R> parameter; - try { - parameter = plugin.getParameter(selectedRow); - } catch (final NoSuchParameterException ignored) { - return; - } - final String name = parameter.getName(); - if (JOptionPane.showConfirmDialog(removeParameter, "Delete " + name + "?", "Delete?", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { - plugin.removeParameter(selectedRow); - } - } - }); - final Container paramButtons = new JPanel(); paramButtons.setLayout(new StackLayout(5)); - paramButtons.add(addParameter); - paramButtons.add(removeParameter); + paramButtons.add(new JButton(ACTION_BUILDER.createAction(false, "pluginEditorAddParameter", this))); + paramButtons.add(new JButton(ACTION_BUILDER.createAction(false, "pluginEditorRemoveParameter", this))); final GridBagConstraints gbc = new GridBagConstraints(); @@ -381,19 +306,13 @@ @NotNull private Component createCodePanel(@NotNull final PluginController<G, A, R> pluginController) { + final Container codeBottom = new JPanel(new FlowLayout()); + codeBottom.add(new JButton(ACTION_BUILDER.createAction(false, "pluginEditorRunScript", this))); + final Container codePanel = new JPanel(new BorderLayout()); codePanel.add(createCode(), BorderLayout.CENTER); - final Container codeBottom = new JPanel(new FlowLayout()); - final AbstractButton test = new JButton("Run Script..."); - test.addActionListener(new ActionListener() { + codePanel.add(codeBottom, BorderLayout.SOUTH); - @Override - public void actionPerformed(final ActionEvent e) { - pluginController.runPlugin(plugin); - } - }); - codeBottom.add(test); - codePanel.add(codeBottom, BorderLayout.SOUTH); return codePanel; } @@ -408,15 +327,15 @@ private void redrawTable() { final GridBagConstraints gbc = new GridBagConstraints(0, 0, 1, 1, 0.1, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 5, 0); paramTable.removeAll(); - paramTable.add(new JLabel("Name"), gbc); + paramTable.add(ActionBuilderUtils.newLabel(ACTION_BUILDER, "pluginEditorTitleName.text"), gbc); gbc.gridx = 1; - paramTable.add(new JLabel("Description"), gbc); + paramTable.add(ActionBuilderUtils.newLabel(ACTION_BUILDER, "pluginEditorTitleDescription.text"), gbc); gbc.gridx = 2; - paramTable.add(new JLabel("Type"), gbc); + paramTable.add(ActionBuilderUtils.newLabel(ACTION_BUILDER, "pluginEditorTitleType.text"), gbc); gbc.gridx = 3; - paramTable.add(new JLabel("Config"), gbc); + paramTable.add(ActionBuilderUtils.newLabel(ACTION_BUILDER, "pluginEditorTitleConfig.text"), gbc); gbc.gridx = 4; - paramTable.add(new JLabel("Default"), gbc); + paramTable.add(ActionBuilderUtils.newLabel(ACTION_BUILDER, "pluginEditorTitleDefault.text"), gbc); int i = 0; for (final PluginParameter<G, A, R> parameter : plugin) { gbc.gridy = i + 1; @@ -510,4 +429,115 @@ return panel; } + /** + * Action method for option to run the editor script automatically. + * @return whether auto-run is enabled + */ + @ActionMethod + public boolean isPluginEditorIsAutoRun() { + return plugin.isAutoBoot(); + } + + /** + * Action method for option to run the editor script automatically. + * @param autoRun whether auto-run is enabled + */ + @ActionMethod + public void setPluginEditorIsAutoRun(final boolean autoRun) { + plugin.setAutoBoot(autoRun); + } + + /** + * Action method for option to make an editor script a map filter. + * @return whether the editor script is a map filter + */ + @ActionMethod + public boolean isPluginIsEditorFilter() { + return plugin.isFilter(); + } + + /** + * Action method for option to run the editor script automatically. + * @param filter whether the editor script is a filter + */ + @ActionMethod + public void setPluginIsEditorFilter(final boolean filter) { + plugin.setFilter(filter); + } + + /** + * Action method for option to add an editor script to the plugins menu. + * @return whether the editor script should be added to the plugins menu + */ + @ActionMethod + public boolean isPluginIsScript() { + return plugin.isScript(); + } + + /** + * Action method for option to add the script to the plugins menu. + * @param script whether the editor script should be added to the plugins + * menu + */ + @ActionMethod + public void setPluginIsScript(final boolean script) { + plugin.setScript(script); + } + + /** + * Action method to re-register the current plugin. + */ + @ActionMethod + public void pluginEditorReRegister() { + pluginModel.reRegister(plugin); + } + + /** + * Action method to export the current plugin as an XML file. + */ + @ActionMethod + public void pluginEditorExport() { + pluginController.savePluginAs(plugin, false); + } + + /** + * Action method to add a parameter to the current plugin script. + */ + @ActionMethod + public void pluginEditorAddParameter() { + plugin.newParameter(); + } + + /** + * Action method to remove the selected parameter from the current plugin + * script. + */ + @ActionMethod + public void pluginEditorRemoveParameter() { + if (selectedRow < 0) { + return; + } + + final PluginParameter<G, A, R> parameter; + try { + parameter = plugin.getParameter(selectedRow); + } catch (final NoSuchParameterException ignored) { + return; + } + final String name = parameter.getName(); + final String title = ActionBuilderUtils.getString(ACTION_BUILDER, "pluginEditorRemoveParameterConfirm.title"); + final String message = ActionBuilderUtils.format(ACTION_BUILDER, "pluginEditorRemoveParameterConfirm.message", name); + if (JOptionPane.showConfirmDialog(panel, message, title, JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { + plugin.removeParameter(selectedRow); + } + } + + /** + * Action method to execute the selected plugin script. + */ + @ActionMethod + public void pluginEditorRunScript() { + pluginController.runPlugin(plugin); + } + } Modified: trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages.properties =================================================================== --- trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages.properties 2013-11-23 12:27:53 UTC (rev 9494) +++ trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages.properties 2013-11-23 12:30:53 UTC (rev 9495) @@ -1798,3 +1798,36 @@ pluginManagerNewScriptExists.message=The plugin script ''{0}'' already exists. pluginManagerRemoveScriptConfirm.title=Remove plugin script pluginManagerRemoveScriptConfirm.message=Really remove the plugin script ''{0}''? + + +# The plugin editor +pluginEditorTabOptions=Options +pluginEditorTabParameters=Manual run parameters +pluginEditorTabCode=Code + +pluginEditorRunMode=Plugin run mode +pluginEditorIsAutoRun.text=Auto-run at application startup +pluginEditorIsAutoRun.shortdescription=If checked, this plugin script is run automatically each time the editor is started. +pluginEditorIsFilter.text=Add to list of map filters +pluginEditorIsFilter.shortdescription=If checked, this plugin script is added to the list of map filters. +pluginEditorIsScript.text=Add to plugins menu +pluginEditorIsScript.shortdescription=If checked, this plugin script is added to the plugins menu in the main window. +pluginEditorReRegister.text=Re-register plugin script +pluginEditorReRegister.shortdescription=Force plugin manager to unregister this plugin from filter list, launch the auto-run (if plugin is auto-start) and re-register it (if filter plugin). +pluginEditorExport.text=Export plugin script... +pluginEditorExport.shortdescription=Export the specified plugin as XML (for distribution). + +pluginEditorTitleName.text=Name +pluginEditorTitleDescription.text=Description +pluginEditorTitleType.text=Type +pluginEditorTitleConfig.text=Config +pluginEditorTitleDefault.text=Default +pluginEditorAddParameter.text=Add parameter +pluginEditorAddParameter.shortdescription=Adds a new parameter to the selected plugin script. +pluginEditorRemoveParameter.text=Remove parameter +pluginEditorRemoveParameter.shortdescription=Removes the selected parameter from the plugin script. +pluginEditorRemoveParameterConfirm.title=Remove parameter +pluginEditorRemoveParameterConfirm.message=Really remove the parameter ''{0}''? + +pluginEditorRunScript.text=Run plugin script... +pluginEditorRunScript.shortdescription=Executes the plugin script. Modified: trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_de.properties =================================================================== --- trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_de.properties 2013-11-23 12:27:53 UTC (rev 9494) +++ trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_de.properties 2013-11-23 12:30:53 UTC (rev 9495) @@ -1536,8 +1536,43 @@ pluginManagerTitle=Editor-Plugins verwalten pluginManagerNewScript.text=Neu... pluginManagerNewScript.shortdescription=Erzeugt ein neues Editor-Plugin. +pluginManagerRemoveScript.text=L\xF6schen +pluginManagerRemoveScript.shortdescription=L\xF6scht das ausgew\xE4hlte Editor-Plugin. pluginManagerNewScriptTitle=Name des neuen Editor-Plugins? pluginManagerNewScriptExists.title=Doppeltes Editor-Plugin pluginManagerNewScriptExists.message=Das Editor-Plugin ''{0}'' existiert bereits. pluginManagerRemoveScriptConfirm.title=Editor-Plugin l\xF6schen pluginManagerRemoveScriptConfirm.message=Wollen Sie das Editor-Plugin ''{0}'' wirklich l\xF6schen? + + +# The plugin editor +pluginEditorTabOptions=Optionen +pluginEditorTabParameters=Plugin-Parameter +pluginEditorTabCode=Quelltext + +pluginEditorRunMode=Startmodus des Editor-Plugins +pluginEditorIsAutoRun.text=Automatisch starten +pluginEditorIsAutoRun.shortdescription=Falls ausgew\xE4hlt wird das Editor-Plugin bei jedem Start von Gridarta automatisch ausgef\xFChrt. +pluginEditorIsFilter.text=Als Karten-Filter aufnehmen +pluginEditorIsFilter.shortdescription=Falls ausgew\xE4hlt wird das Editor-Plugin in the Liste der Karten-Filter aufgenommen. +pluginEditorIsScript.text=In Men\xFCleiste aufnehmen +pluginEditorIsScript.shortdescription=Falls ausgew\xE4hlt wird das Editor-Plugin in die Men\xFCleiste des Hauptfensters aufgenommen. +pluginEditorReRegister.text=Editor-Plugin neu registrieren +pluginEditorReRegister.shortdescription=Aktualisiert die Optionen im Plugin-Manager. +pluginEditorExport.text=Editor-Plugin exportieren... +pluginEditorExport.shortdescription=Exportiert das ausgew\xE4hlte Editor-Plugin in eine XML-Datei. + +pluginEditorTitleName.text=Name +pluginEditorTitleDescription.text=Beschreibung +pluginEditorTitleType.text=Typ +pluginEditorTitleConfig.text=Konfiguration +pluginEditorTitleDefault.text=Voreinstellung +pluginEditorAddParameter.text=Parameter hinzuf\xFCgen +pluginEditorAddParameter.shortdescription=F\xFCgt einen weiteren Parameter zum ausgew\xE4hlten Editor-Plugin hinzu. +pluginEditorRemoveParameter.text=Parameter l\xF6schen +pluginEditorRemoveParameter.shortdescription=L\xF6scht den ausgew\xE4hlten Parameter des Editor-Plugins. +pluginEditorRemoveParameterConfirm.title=Parameter l\xF6schen +pluginEditorRemoveParameterConfirm.message=Wollen Sie den Parameter ''{0}'' wirklich l\xF6schen? + +pluginEditorRunScript.text=Editor-Script starten +pluginEditorRunScript.shortdescription=F\xFChrt das Editor-Script aus. Modified: trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_fr.properties =================================================================== --- trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_fr.properties 2013-11-23 12:27:53 UTC (rev 9494) +++ trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_fr.properties 2013-11-23 12:30:53 UTC (rev 9495) @@ -1521,8 +1521,43 @@ #pluginManagerTitle= #pluginManagerNewScript.text= #pluginManagerNewScript.shortdescription= +#pluginManagerRemoveScript.text= +#pluginManagerRemoveScript.shortdescription= #pluginManagerNewScriptTitle= #pluginManagerNewScriptExists.title= #pluginManagerNewScriptExists.message= #pluginManagerRemoveScriptConfirm.title= #pluginManagerRemoveScriptConfirm.message= + + +# The plugin editor +#pluginEditorTabOptions=Options +#pluginEditorTabParameters= +#pluginEditorTabCode= + +#pluginEditorRunMode= +#pluginEditorIsAutoRun.text= +#pluginEditorIsAutoRun.shortdescription= +#pluginEditorIsFilter.text= +#pluginEditorIsFilter.shortdescription= +#pluginEditorIsScript.text= +#pluginEditorIsScript.shortdescription= +#pluginEditorReRegister.text= +#pluginEditorReRegister.shortdescription= +#pluginEditorExport.text= +#pluginEditorExport.shortdescription= + +#pluginEditorTitleName.text= +#pluginEditorTitleDescription.text= +#pluginEditorTitleType.text= +#pluginEditorTitleConfig.text= +#pluginEditorTitleDefault.text= +#pluginEditorAddParameter.text= +#pluginEditorAddParameter.shortdescription= +#pluginEditorRemoveParameter.text= +#pluginEditorRemoveParameter.shortdescription= +#pluginEditorRemoveParameterConfirm.title= +#pluginEditorRemoveParameterConfirm.message= + +#pluginEditorRunScript.text= +#pluginEditorRunScript.shortdescription= Modified: trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_sv.properties =================================================================== --- trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_sv.properties 2013-11-23 12:27:53 UTC (rev 9494) +++ trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_sv.properties 2013-11-23 12:30:53 UTC (rev 9495) @@ -1522,8 +1522,43 @@ #pluginManagerTitle= #pluginManagerNewScript.text= #pluginManagerNewScript.shortdescription= +#pluginManagerRemoveScript.text= +#pluginManagerRemoveScript.shortdescription= #pluginManagerNewScriptTitle= #pluginManagerNewScriptExists.title= #pluginManagerNewScriptExists.message= #pluginManagerRemoveScriptConfirm.title= #pluginManagerRemoveScriptConfirm.message= + + +# The plugin editor +#pluginEditorTabOptions=Options +#pluginEditorTabParameters= +#pluginEditorTabCode= + +#pluginEditorRunMode= +#pluginEditorIsAutoRun.text= +#pluginEditorIsAutoRun.shortdescription= +#pluginEditorIsFilter.text= +#pluginEditorIsFilter.shortdescription= +#pluginEditorIsScript.text= +#pluginEditorIsScript.shortdescription= +#pluginEditorReRegister.text= +#pluginEditorReRegister.shortdescription= +#pluginEditorExport.text= +#pluginEditorExport.shortdescription= + +#pluginEditorTitleName.text= +#pluginEditorTitleDescription.text= +#pluginEditorTitleType.text= +#pluginEditorTitleConfig.text= +#pluginEditorTitleDefault.text= +#pluginEditorAddParameter.text= +#pluginEditorAddParameter.shortdescription= +#pluginEditorRemoveParameter.text= +#pluginEditorRemoveParameter.shortdescription= +#pluginEditorRemoveParameterConfirm.title= +#pluginEditorRemoveParameterConfirm.message= + +#pluginEditorRunScript.text= +#pluginEditorRunScript.shortdescription= This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 12:28:02
|
Revision: 9494 http://sourceforge.net/p/gridarta/code/9494 Author: akirschbaum Date: 2013-11-23 12:27:53 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Add missing annotation. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/newmap/NewMapDialog.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/newmap/NewMapDialog.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/newmap/NewMapDialog.java 2013-11-23 10:44:26 UTC (rev 9493) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/newmap/NewMapDialog.java 2013-11-23 12:27:53 UTC (rev 9494) @@ -37,6 +37,7 @@ import net.sf.gridarta.utils.Size2D; import net.sf.japi.swing.action.ActionBuilder; import net.sf.japi.swing.action.ActionBuilderFactory; +import net.sf.japi.swing.action.ActionMethod; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -271,6 +272,7 @@ * @return mapSizeDefault <code>true</code> if the user wants to specify her * own map size, otherwise <code>false</code> */ + @ActionMethod public boolean isMapSizeDefault() { return mapSizeDefault; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 10:44:34
|
Revision: 9493 http://sourceforge.net/p/gridarta/code/9493 Author: akirschbaum Date: 2013-11-23 10:44:26 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Make plugin manager resources translatable. Add tooltips. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManager.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManagerFactory.java trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages.properties trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_de.properties trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_fr.properties trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_sv.properties Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManager.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManager.java 2013-11-23 10:17:02 UTC (rev 9492) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManager.java 2013-11-23 10:44:26 UTC (rev 9493) @@ -25,11 +25,8 @@ import java.awt.Component; import java.awt.Container; import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.util.HashMap; import java.util.Map; -import javax.swing.AbstractButton; import javax.swing.AbstractListModel; import javax.swing.JButton; import javax.swing.JFrame; @@ -48,16 +45,26 @@ import net.sf.gridarta.plugin.Plugin; import net.sf.gridarta.plugin.PluginModel; import net.sf.gridarta.plugin.PluginModelListener; +import net.sf.gridarta.utils.ActionBuilderUtils; import net.sf.gridarta.utils.ResourceIcons; +import net.sf.japi.swing.action.ActionBuilder; +import net.sf.japi.swing.action.ActionBuilderFactory; +import net.sf.japi.swing.action.ActionMethod; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class PluginManager<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> { + /** + * Action Builder to create Actions. + */ @NotNull - private final JFrame frame = new JFrame("Editor plugins management"); + private static final ActionBuilder ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder("net.sf.gridarta"); @NotNull + private final JFrame frame = new JFrame(ActionBuilderUtils.getString(ACTION_BUILDER, "pluginManagerTitle")); + + @NotNull private final JList scripts; @NotNull @@ -99,9 +106,6 @@ this.pluginParameterViewFactory = pluginParameterViewFactory; this.resourceIcons = resourceIcons; frame.getContentPane().setLayout(new BorderLayout()); - final Container left = new JPanel(new BorderLayout()); - frame.getContentPane().add(left, BorderLayout.WEST); - frame.getContentPane().add(scriptPanel, BorderLayout.CENTER); final ListModel listModel = new AbstractListModel() { /** @@ -152,6 +156,7 @@ return PluginManager.this.pluginModel.getPluginCount(); } }; + scripts = new JList(listModel); scripts.addListSelectionListener(new ListSelectionListener() { @@ -167,47 +172,18 @@ }); scripts.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); scripts.setBorder(new LineBorder(Color.black, 1)); - left.add(scripts, BorderLayout.CENTER); - final AbstractButton addScriptBtn = new JButton("New..."); - addScriptBtn.addActionListener(new ActionListener() { + scripts.setSelectedIndex(0); - @Override - public void actionPerformed(final ActionEvent e) { - final String name = JOptionPane.showInputDialog(scripts, "Name of the new Beanshell plugin?"); - if (name != null) { - final Plugin<G, A, R> plugin = PluginManager.this.pluginModel.newPlugin(name, "//input your beanshell Code"); - if (plugin == null) { - JOptionPane.showMessageDialog(scripts, "The script " + name + " already exists.", "Error", JOptionPane.WARNING_MESSAGE); - } else { - showScript(plugin); - } - } - } - }); - final AbstractButton removeScriptBtn = new JButton("Remove"); - removeScriptBtn.addActionListener(new ActionListener() { + final Container bottomLeft = new JPanel(new GridLayout(2, 1)); + bottomLeft.add(new JButton(ACTION_BUILDER.createAction(false, "pluginManagerNewScript", this))); + bottomLeft.add(new JButton(ACTION_BUILDER.createAction(false, "pluginManagerRemoveScript", this))); - @Override - public void actionPerformed(final ActionEvent e) { - //JList does not use type parameters - @SuppressWarnings("unchecked") - final Plugin<G, A, R> plugin = (Plugin<G, A, R>) scripts.getSelectedValue(); - if (plugin == null) { - return; - } + final Container left = new JPanel(new BorderLayout()); + left.add(scripts, BorderLayout.CENTER); + left.add(bottomLeft, BorderLayout.SOUTH); - if (JOptionPane.showConfirmDialog(scripts, "remove script name " + plugin.getName(), "remove", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { - PluginManager.this.pluginModel.removePlugin(plugin); - scripts.setSelectedIndex(0); - removeScript(plugin); - } - } - }); - final Container bottomLeft = new JPanel(new GridLayout(2, 1)); - bottomLeft.add(addScriptBtn); - bottomLeft.add(removeScriptBtn); - left.add(bottomLeft, BorderLayout.SOUTH); - scripts.setSelectedIndex(0); + frame.getContentPane().add(left, BorderLayout.WEST); + frame.getContentPane().add(scriptPanel, BorderLayout.CENTER); frame.pack(); frame.setLocationRelativeTo(parent); } @@ -248,4 +224,48 @@ frame.setVisible(true); } + /** + * Action method to create a new plugin script. + */ + @ActionMethod + public void pluginManagerNewScript() { + final String name = JOptionPane.showInputDialog(scripts, ActionBuilderUtils.getString(ACTION_BUILDER, "pluginManagerNewScriptTitle")); + if (name == null) { + return; + } + + final Plugin<G, A, R> plugin = pluginModel.newPlugin(name, "//input your beanshell Code"); + if (plugin == null) { + final String title = ActionBuilderUtils.getString(ACTION_BUILDER, "pluginManagerNewScriptExists.title"); + final String message = ActionBuilderUtils.format(ACTION_BUILDER, "pluginManagerNewScriptExists.message", name); + JOptionPane.showMessageDialog(scripts, message, title, JOptionPane.WARNING_MESSAGE); + return; + } + + showScript(plugin); + } + + /** + * Action method to remove the selected plugin script. + */ + @ActionMethod + public void pluginManagerRemoveScript() { + //JList does not use type parameters + @SuppressWarnings("unchecked") + final Plugin<G, A, R> plugin = (Plugin<G, A, R>) scripts.getSelectedValue(); + if (plugin == null) { + return; + } + + final String title = ActionBuilderUtils.getString(ACTION_BUILDER, "pluginManagerRemoveScriptConfirm.title"); + final String message = ActionBuilderUtils.format(ACTION_BUILDER, "pluginManagerRemoveScriptConfirm.message", plugin.getName()); + if (JOptionPane.showConfirmDialog(scripts, message, title, JOptionPane.YES_NO_OPTION) != JOptionPane.YES_OPTION) { + return; + } + + pluginModel.removePlugin(plugin); + scripts.setSelectedIndex(0); + removeScript(plugin); + } + } Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManagerFactory.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManagerFactory.java 2013-11-23 10:17:02 UTC (rev 9492) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManagerFactory.java 2013-11-23 10:44:26 UTC (rev 9493) @@ -28,6 +28,8 @@ import net.sf.gridarta.plugin.PluginModel; import net.sf.gridarta.utils.EditorAction; import net.sf.gridarta.utils.ResourceIcons; +import net.sf.japi.swing.action.ActionBuilder; +import net.sf.japi.swing.action.ActionBuilderFactory; import net.sf.japi.swing.action.ActionMethod; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; Modified: trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages.properties =================================================================== --- trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages.properties 2013-11-23 10:17:02 UTC (rev 9492) +++ trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages.properties 2013-11-23 10:44:26 UTC (rev 9493) @@ -1785,3 +1785,16 @@ # Tooltip text for entries in recent and bookmarks menus. mapItem.shortdescriptionformat=Opens map {0} ({1}). + + +# The plugin manager +pluginManagerTitle=Editor plugins management +pluginManagerNewScript.text=New... +pluginManagerNewScript.shortdescription=Creates a new plugin script. +pluginManagerRemoveScript.text=Remove +pluginManagerRemoveScript.shortdescription=Removes the selected plugin script. +pluginManagerNewScriptTitle=Name of the new Beanshell plugin? +pluginManagerNewScriptExists.title=Duplicate plugin script +pluginManagerNewScriptExists.message=The plugin script ''{0}'' already exists. +pluginManagerRemoveScriptConfirm.title=Remove plugin script +pluginManagerRemoveScriptConfirm.message=Really remove the plugin script ''{0}''? Modified: trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_de.properties =================================================================== --- trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_de.properties 2013-11-23 10:17:02 UTC (rev 9492) +++ trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_de.properties 2013-11-23 10:44:26 UTC (rev 9493) @@ -1530,3 +1530,14 @@ # Tooltip text for entries in recent and bookmarks menus. mapItem.shortdescriptionformat=\u00d6ffnet Karte {0} ({1}). + + +# The plugin manager +pluginManagerTitle=Editor-Plugins verwalten +pluginManagerNewScript.text=Neu... +pluginManagerNewScript.shortdescription=Erzeugt ein neues Editor-Plugin. +pluginManagerNewScriptTitle=Name des neuen Editor-Plugins? +pluginManagerNewScriptExists.title=Doppeltes Editor-Plugin +pluginManagerNewScriptExists.message=Das Editor-Plugin ''{0}'' existiert bereits. +pluginManagerRemoveScriptConfirm.title=Editor-Plugin l\xF6schen +pluginManagerRemoveScriptConfirm.message=Wollen Sie das Editor-Plugin ''{0}'' wirklich l\xF6schen? Modified: trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_fr.properties =================================================================== --- trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_fr.properties 2013-11-23 10:17:02 UTC (rev 9492) +++ trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_fr.properties 2013-11-23 10:44:26 UTC (rev 9493) @@ -1515,3 +1515,14 @@ # Tooltip text for entries in recent and bookmarks menus. #mapItem.shortdescriptionformat= + + +# The plugin manager +#pluginManagerTitle= +#pluginManagerNewScript.text= +#pluginManagerNewScript.shortdescription= +#pluginManagerNewScriptTitle= +#pluginManagerNewScriptExists.title= +#pluginManagerNewScriptExists.message= +#pluginManagerRemoveScriptConfirm.title= +#pluginManagerRemoveScriptConfirm.message= Modified: trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_sv.properties =================================================================== --- trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_sv.properties 2013-11-23 10:17:02 UTC (rev 9492) +++ trunk/src/gridarta/src/main/resources/net/sf/gridarta/messages_sv.properties 2013-11-23 10:44:26 UTC (rev 9493) @@ -1516,3 +1516,14 @@ # Tooltip text for entries in recent and bookmarks menus. mapItem.shortdescriptionformat=\u00d6ppnar karta {0} ({1}) + + +# The plugin manager +#pluginManagerTitle= +#pluginManagerNewScript.text= +#pluginManagerNewScript.shortdescription= +#pluginManagerNewScriptTitle= +#pluginManagerNewScriptExists.title= +#pluginManagerNewScriptExists.message= +#pluginManagerRemoveScriptConfirm.title= +#pluginManagerRemoveScriptConfirm.message= This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 10:17:07
|
Revision: 9492 http://sourceforge.net/p/gridarta/code/9492 Author: akirschbaum Date: 2013-11-23 10:17:02 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Remove unused code. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManagerFactory.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManagerFactory.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManagerFactory.java 2013-11-23 10:16:18 UTC (rev 9491) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManagerFactory.java 2013-11-23 10:17:02 UTC (rev 9492) @@ -28,8 +28,6 @@ import net.sf.gridarta.plugin.PluginModel; import net.sf.gridarta.utils.EditorAction; import net.sf.gridarta.utils.ResourceIcons; -import net.sf.japi.swing.action.ActionBuilder; -import net.sf.japi.swing.action.ActionBuilderFactory; import net.sf.japi.swing.action.ActionMethod; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -37,12 +35,6 @@ public class PluginManagerFactory<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements EditorAction { /** - * Action Builder to create Actions. - */ - @NotNull - private static final ActionBuilder ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder("net.sf.gridarta"); - - /** * The parent {@link Component} to center the editor window on. */ @NotNull This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 10:16:25
|
Revision: 9491 http://sourceforge.net/p/gridarta/code/9491 Author: akirschbaum Date: 2013-11-23 10:16:18 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Fix layout issues in plugin manager dialog. Modified Paths: -------------- trunk/src/atrinik/ChangeLog trunk/src/crossfire/ChangeLog trunk/src/daimonin/ChangeLog trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManager.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManagerFactory.java trunk/src/gridarta/src/main/java/net/sf/gridarta/maincontrol/GUIMainControl.java Modified: trunk/src/atrinik/ChangeLog =================================================================== --- trunk/src/atrinik/ChangeLog 2013-11-23 09:39:17 UTC (rev 9490) +++ trunk/src/atrinik/ChangeLog 2013-11-23 10:16:18 UTC (rev 9491) @@ -1,3 +1,7 @@ +2013-11-23 Andreas Kirschbaum + + * Fix layout issues in plugin manager dialog. + 2013-10-05 Andreas Kirschbaum * Do not automatically open the help dialog when the editor is Modified: trunk/src/crossfire/ChangeLog =================================================================== --- trunk/src/crossfire/ChangeLog 2013-11-23 09:39:17 UTC (rev 9490) +++ trunk/src/crossfire/ChangeLog 2013-11-23 10:16:18 UTC (rev 9491) @@ -1,3 +1,7 @@ +2013-11-23 Andreas Kirschbaum + + * Fix layout issues in plugin manager dialog. + 2013-10-05 Andreas Kirschbaum * Do not automatically open the help dialog when the editor is Modified: trunk/src/daimonin/ChangeLog =================================================================== --- trunk/src/daimonin/ChangeLog 2013-11-23 09:39:17 UTC (rev 9490) +++ trunk/src/daimonin/ChangeLog 2013-11-23 10:16:18 UTC (rev 9491) @@ -1,3 +1,7 @@ +2013-11-23 Andreas Kirschbaum + + * Fix layout issues in plugin manager dialog. + 2013-10-05 Andreas Kirschbaum * Do not automatically open the help dialog when the editor is Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 09:39:17 UTC (rev 9490) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 10:16:18 UTC (rev 9491) @@ -177,31 +177,6 @@ @NotNull private Component createOptionsTab(@NotNull final PluginController<G, A, R> pluginController, @NotNull final ResourceIcons resourceIcons) { - final Container optionsTab = new JPanel(new GridBagLayout()); - final GridBagConstraints gbc = new GridBagConstraints(); - gbc.fill = GridBagConstraints.HORIZONTAL; - gbc.weightx = 1.0; - gbc.gridwidth = 2; - optionsTab.add(new JLabel("Plugin run mode", SwingConstants.LEFT), gbc); - gbc.gridwidth = 1; - gbc.gridy = 1; - gbc.weightx = 0.1; - optionsTab.add(new JPanel(), gbc); - gbc.gridx = 1; - gbc.weightx = 0.02; - final Component autoRunIcon = new JLabel(resourceIcons.getResourceIcon(ResourceIcons.AUTO_RUN_SMALL_ICON)); - optionsTab.add(autoRunIcon, gbc); - gbc.gridy = 2; - final Component filterIcon = new JLabel(resourceIcons.getResourceIcon(ResourceIcons.FILTER_SMALL_ICON)); - optionsTab.add(filterIcon, gbc); - gbc.gridy = 3; - final Component runPluginIcon = new JLabel(resourceIcons.getResourceIcon(ResourceIcons.RUN_PLUGIN_SMALL_ICON)); - optionsTab.add(runPluginIcon, gbc); - gbc.gridx = 2; - gbc.gridy = 1; - gbc.weightx = 0.9; - gbc.fill = GridBagConstraints.NONE; - gbc.anchor = GridBagConstraints.WEST; typeAutoRun.addActionListener(new ActionListener() { @Override @@ -210,8 +185,7 @@ } }); typeAutoRun.setSelected(plugin.isAutoBoot()); - optionsTab.add(typeAutoRun, gbc); - gbc.gridy = 2; + typeFilter.addActionListener(new ActionListener() { @Override @@ -220,8 +194,7 @@ } }); typeFilter.setSelected(plugin.isFilter()); - optionsTab.add(typeFilter, gbc); - gbc.gridy = 3; + typeBash.addActionListener(new ActionListener() { @Override @@ -230,10 +203,8 @@ } }); typeBash.setSelected(plugin.isScript()); - optionsTab.add(typeBash, gbc); - gbc.gridx = 0; - gbc.gridy = 4; - final AbstractButton registerButton = new JButton("re-register script"); + + final AbstractButton registerButton = new JButton("Re-register script"); registerButton.setToolTipText("Force plugin manager to unregister this plugin from filter list, launch the auto-run (if plugin is auto-start) and re-register it (if filter plugin)"); registerButton.addActionListener(new ActionListener() { @@ -242,8 +213,7 @@ pluginModel.reRegister(plugin); } }); - optionsTab.add(registerButton, gbc); - gbc.gridy = 5; + final AbstractButton exportButton = new JButton("Export script..."); exportButton.setToolTipText("Export the specified plugin as XML (for distribution)"); exportButton.addActionListener(new ActionListener() { @@ -253,14 +223,69 @@ pluginController.savePluginAs(plugin, false); } }); - optionsTab.add(exportButton, gbc); + + final Container optionsTab = new JPanel(new GridBagLayout()); + final GridBagConstraints gbc = new GridBagConstraints(); + + final Container paramButtons = new JPanel(); + paramButtons.setLayout(new StackLayout(5)); + paramButtons.add(registerButton); + paramButtons.add(exportButton); + + gbc.fill = GridBagConstraints.HORIZONTAL; + gbc.gridx = 0; + gbc.gridy = 0; + gbc.gridwidth = 2; + gbc.weightx = 1.0; + gbc.anchor = GridBagConstraints.CENTER; + optionsTab.add(new JLabel("Plugin run mode", SwingConstants.LEFT), gbc); + + gbc.gridx = 0; + gbc.gridwidth = 1; + gbc.weightx = 0.0; + gbc.anchor = GridBagConstraints.CENTER; + + gbc.gridy = 1; + optionsTab.add(new JLabel(resourceIcons.getResourceIcon(ResourceIcons.AUTO_RUN_SMALL_ICON)), gbc); + gbc.gridy = 2; + optionsTab.add(new JLabel(resourceIcons.getResourceIcon(ResourceIcons.FILTER_SMALL_ICON)), gbc); + gbc.gridy = 3; + optionsTab.add(new JLabel(resourceIcons.getResourceIcon(ResourceIcons.RUN_PLUGIN_SMALL_ICON)), gbc); + + gbc.gridx = 1; + gbc.gridwidth = 1; + gbc.weightx = 1.0; + gbc.anchor = GridBagConstraints.WEST; + + gbc.gridy = 1; + optionsTab.add(typeAutoRun, gbc); + gbc.gridy = 2; + optionsTab.add(typeFilter, gbc); + gbc.gridy = 3; + optionsTab.add(typeBash, gbc); + + gbc.gridx = 0; + gbc.gridwidth = 2; + gbc.weightx = 1.0; + gbc.anchor = GridBagConstraints.WEST; + gbc.fill = GridBagConstraints.NONE; + + gbc.gridy = 4; + optionsTab.add(paramButtons, gbc); + + gbc.gridx = 0; + gbc.gridy = 5; + gbc.gridwidth = 2; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = GridBagConstraints.BOTH; + optionsTab.add(new JPanel(), gbc); + return optionsTab; } @NotNull private Component createParameterTab() { - final Container parameterTab = new JPanel(new BorderLayout()); - redrawTable(); plugin.addChangeListener(new ChangeListener() { @Override @@ -268,10 +293,7 @@ redrawTable(); } }); - final Component scrollPane1 = new JScrollPane(paramTable); - parameterTab.add(scrollPane1, BorderLayout.CENTER); - final Container paramButtons = new JPanel(); - paramButtons.setLayout(new StackLayout(5)); + final AbstractButton addParameter = new JButton("Add parameter"); addParameter.addActionListener(new ActionListener() { @@ -280,6 +302,7 @@ plugin.newParameter(); } }); + removeParameter.addActionListener(new ActionListener() { @Override @@ -300,9 +323,31 @@ } } }); + + final Container paramButtons = new JPanel(); + paramButtons.setLayout(new StackLayout(5)); paramButtons.add(addParameter); paramButtons.add(removeParameter); - parameterTab.add(paramButtons, BorderLayout.EAST); + + final GridBagConstraints gbc = new GridBagConstraints(); + + gbc.gridx = 0; + gbc.gridy = 0; + gbc.gridwidth = 1; + gbc.weightx = 1.0; + gbc.fill = GridBagConstraints.HORIZONTAL; + gbc.anchor = GridBagConstraints.WEST; + + final Container parameterTab = new JPanel(new GridBagLayout()); + parameterTab.add(new JScrollPane(paramTable), gbc); + gbc.gridy++; + parameterTab.add(paramButtons, gbc); + gbc.gridy++; + gbc.weighty = 1.0; + gbc.fill = GridBagConstraints.BOTH; + parameterTab.add(new JPanel(), gbc); + + redrawTable(); return parameterTab; } @@ -310,6 +355,7 @@ private Component createCode() { final RSyntaxTextArea code = new RSyntaxTextArea(); code.setText(plugin.getCode()); + code.setCaretPosition(0); code.setFont(new Font("Monospaced", Font.PLAIN, 14)); code.getDocument().addDocumentListener(new DocumentListener() { @@ -329,6 +375,7 @@ } }); code.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA); + code.setRows(40); return new RTextScrollPane(code); } Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManager.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManager.java 2013-11-23 09:39:17 UTC (rev 9490) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManager.java 2013-11-23 10:16:18 UTC (rev 9491) @@ -22,6 +22,7 @@ import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Color; +import java.awt.Component; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; @@ -87,11 +88,12 @@ /** * Creates a PluginManager. + * @param parent the parent component to center this window on * @param pluginController the script controller to base this script manager * on * @param resourceIcons the resource icons for creating icons */ - public PluginManager(@NotNull final PluginController<G, A, R> pluginController, @NotNull final PluginModel<G, A, R> pluginModel, @NotNull final PluginParameterViewFactory<G, A, R> pluginParameterViewFactory, @NotNull final ResourceIcons resourceIcons) { + public PluginManager(@NotNull final Component parent, @NotNull final PluginController<G, A, R> pluginController, @NotNull final PluginModel<G, A, R> pluginModel, @NotNull final PluginParameterViewFactory<G, A, R> pluginParameterViewFactory, @NotNull final ResourceIcons resourceIcons) { this.pluginController = pluginController; this.pluginModel = pluginModel; this.pluginParameterViewFactory = pluginParameterViewFactory; @@ -207,7 +209,7 @@ left.add(bottomLeft, BorderLayout.SOUTH); scripts.setSelectedIndex(0); frame.pack(); - frame.setVisible(true); + frame.setLocationRelativeTo(parent); } private void showScript(final Plugin<G, A, R> plugin) { @@ -243,7 +245,6 @@ * Shows the plugin manager window. */ public void show() { - frame.pack(); frame.setVisible(true); } Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManagerFactory.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManagerFactory.java 2013-11-23 09:39:17 UTC (rev 9490) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManagerFactory.java 2013-11-23 10:16:18 UTC (rev 9491) @@ -19,6 +19,7 @@ package net.sf.gridarta.gui.dialog.plugin; +import java.awt.Component; import javax.swing.Action; import net.sf.gridarta.gui.dialog.plugin.parameter.PluginParameterViewFactory; import net.sf.gridarta.model.archetype.Archetype; @@ -42,6 +43,12 @@ private static final ActionBuilder ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder("net.sf.gridarta"); /** + * The parent {@link Component} to center the editor window on. + */ + @NotNull + private final Component parent; + + /** * The synchronization object. */ @NotNull @@ -67,9 +74,11 @@ /** * Creates a new instance. + * @param parent the parent component to center the editor window on * @param resourceIcons the resource icons for creating icons */ - public PluginManagerFactory(@NotNull final PluginController<G, A, R> pluginController, @NotNull final PluginModel<G, A, R> pluginModel, @NotNull final PluginParameterViewFactory<G, A, R> pluginParameterViewFactory, @NotNull final ResourceIcons resourceIcons) { + public PluginManagerFactory(@NotNull final Component parent, @NotNull final PluginController<G, A, R> pluginController, @NotNull final PluginModel<G, A, R> pluginModel, @NotNull final PluginParameterViewFactory<G, A, R> pluginParameterViewFactory, @NotNull final ResourceIcons resourceIcons) { + this.parent = parent; this.pluginController = pluginController; this.pluginModel = pluginModel; this.pluginParameterViewFactory = pluginParameterViewFactory; @@ -80,7 +89,7 @@ public void editPlugins() { synchronized (sync) { if (pluginManager == null) { - pluginManager = new PluginManager<G, A, R>(pluginController, pluginModel, pluginParameterViewFactory, resourceIcons); + pluginManager = new PluginManager<G, A, R>(parent, pluginController, pluginModel, pluginParameterViewFactory, resourceIcons); } pluginManager.show(); Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/maincontrol/GUIMainControl.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/maincontrol/GUIMainControl.java 2013-11-23 09:39:17 UTC (rev 9490) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/maincontrol/GUIMainControl.java 2013-11-23 10:16:18 UTC (rev 9491) @@ -440,7 +440,7 @@ createToggleAction("smoothing", "Map Navigation", mapActions); createToggleAction("doubleFaces", "Map Navigation", mapActions); createToggleAction("tileShow", "Map Navigation", mapActions); - createAction("editPlugins", "Plugin", new PluginManagerFactory<G, A, R>(pluginControl, projectModel.getPluginModel(), pluginParameterViewFactory, resourceIcons)); + createAction("editPlugins", "Plugin", new PluginManagerFactory<G, A, R>(mainViewFrame, pluginControl, projectModel.getPluginModel(), pluginParameterViewFactory, resourceIcons)); createAction("savePlugins", "Plugin", pluginControl); createAction("importPlugin", "Plugin", pluginControl); createAction("update", "Tool", updaterManager); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 09:39:20
|
Revision: 9490 http://sourceforge.net/p/gridarta/code/9490 Author: akirschbaum Date: 2013-11-23 09:39:17 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Clean up code. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 09:38:15 UTC (rev 9489) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 09:39:17 UTC (rev 9490) @@ -307,7 +307,7 @@ } @NotNull - private RSyntaxTextArea createCode() { + private Component createCode() { final RSyntaxTextArea code = new RSyntaxTextArea(); code.setText(plugin.getCode()); code.setFont(new Font("Monospaced", Font.PLAIN, 14)); @@ -329,14 +329,13 @@ } }); code.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA); - return code; + return new RTextScrollPane(code); } @NotNull private Component createCodePanel(@NotNull final PluginController<G, A, R> pluginController) { - final Component scrollPane2 = new RTextScrollPane(createCode()); final Container codePanel = new JPanel(new BorderLayout()); - codePanel.add(scrollPane2, BorderLayout.CENTER); + codePanel.add(createCode(), BorderLayout.CENTER); final Container codeBottom = new JPanel(new FlowLayout()); final AbstractButton test = new JButton("Run Script..."); test.addActionListener(new ActionListener() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 09:38:18
|
Revision: 9489 http://sourceforge.net/p/gridarta/code/9489 Author: akirschbaum Date: 2013-11-23 09:38:15 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Clean up code. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 09:36:38 UTC (rev 9488) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 09:38:15 UTC (rev 9489) @@ -77,7 +77,7 @@ private static final Category log = Logger.getLogger(PluginEditor.class); @NotNull - private final JPanel panel = new JPanel(); + private final JPanel panel = new JPanel(new BorderLayout()); @NotNull private final PluginParameterViewFactory<G, A, R> pluginParameterViewFactory; @@ -167,12 +167,12 @@ this.pluginModel = pluginModel; this.plugin = plugin; this.pluginParameterViewFactory = pluginParameterViewFactory; + final JTabbedPane tabs = new JTabbedPane(); - panel.setLayout(new BorderLayout()); - panel.add(tabs); - tabs.add("Options", createOptionsTab(pluginController, resourceIcons)); + tabs.addTab("Options", createOptionsTab(pluginController, resourceIcons)); tabs.addTab("Manual run parameters", createParameterTab()); tabs.addTab("Code", createCodePanel(pluginController)); + panel.add(tabs); } @NotNull This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 09:36:46
|
Revision: 9488 http://sourceforge.net/p/gridarta/code/9488 Author: akirschbaum Date: 2013-11-23 09:36:38 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Extract code into functions. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 09:26:02 UTC (rev 9487) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 09:36:38 UTC (rev 9488) @@ -83,15 +83,12 @@ private final PluginParameterViewFactory<G, A, R> pluginParameterViewFactory; @NotNull - private final JPanel paramTable; + private final JPanel paramTable = new JPanel(new GridBagLayout()); @NotNull - private final AbstractButton removeParameter; + private final AbstractButton removeParameter = new JButton("Remove parameter"); @NotNull - private final RSyntaxTextArea code; - - @NotNull private final PluginModel<G, A, R> pluginModel; @NotNull @@ -152,13 +149,13 @@ }; @NotNull - private final AbstractButton typeAutoRun; + private final AbstractButton typeAutoRun = new JCheckBox("auto-run at application startup"); @NotNull - private final AbstractButton typeFilter; + private final AbstractButton typeFilter = new JCheckBox("reference in the filters list"); @NotNull - private final AbstractButton typeBash; + private final AbstractButton typeBash = new JCheckBox("reference in the manual run list"); /** * Create a visual JComponent used to edit the given script. @@ -173,6 +170,13 @@ final JTabbedPane tabs = new JTabbedPane(); panel.setLayout(new BorderLayout()); panel.add(tabs); + tabs.add("Options", createOptionsTab(pluginController, resourceIcons)); + tabs.addTab("Manual run parameters", createParameterTab()); + tabs.addTab("Code", createCodePanel(pluginController)); + } + + @NotNull + private Component createOptionsTab(@NotNull final PluginController<G, A, R> pluginController, @NotNull final ResourceIcons resourceIcons) { final Container optionsTab = new JPanel(new GridBagLayout()); final GridBagConstraints gbc = new GridBagConstraints(); gbc.fill = GridBagConstraints.HORIZONTAL; @@ -198,7 +202,6 @@ gbc.weightx = 0.9; gbc.fill = GridBagConstraints.NONE; gbc.anchor = GridBagConstraints.WEST; - typeAutoRun = new JCheckBox("auto-run at application startup"); typeAutoRun.addActionListener(new ActionListener() { @Override @@ -209,7 +212,6 @@ typeAutoRun.setSelected(plugin.isAutoBoot()); optionsTab.add(typeAutoRun, gbc); gbc.gridy = 2; - typeFilter = new JCheckBox("reference in the filters list"); typeFilter.addActionListener(new ActionListener() { @Override @@ -220,7 +222,6 @@ typeFilter.setSelected(plugin.isFilter()); optionsTab.add(typeFilter, gbc); gbc.gridy = 3; - typeBash = new JCheckBox("reference in the manual run list"); typeBash.addActionListener(new ActionListener() { @Override @@ -253,9 +254,12 @@ } }); optionsTab.add(exportButton, gbc); - tabs.add("Options", optionsTab); + return optionsTab; + } + + @NotNull + private Component createParameterTab() { final Container parameterTab = new JPanel(new BorderLayout()); - paramTable = new JPanel(new GridBagLayout()); redrawTable(); plugin.addChangeListener(new ChangeListener() { @@ -266,7 +270,6 @@ }); final Component scrollPane1 = new JScrollPane(paramTable); parameterTab.add(scrollPane1, BorderLayout.CENTER); - //parameterTab.add(paramTable, BorderLayout.CENTER); final Container paramButtons = new JPanel(); paramButtons.setLayout(new StackLayout(5)); final AbstractButton addParameter = new JButton("Add parameter"); @@ -277,7 +280,6 @@ plugin.newParameter(); } }); - removeParameter = new JButton("Remove parameter"); removeParameter.addActionListener(new ActionListener() { @Override @@ -301,8 +303,12 @@ paramButtons.add(addParameter); paramButtons.add(removeParameter); parameterTab.add(paramButtons, BorderLayout.EAST); - tabs.addTab("Manual run parameters", parameterTab); - code = new RSyntaxTextArea(); + return parameterTab; + } + + @NotNull + private RSyntaxTextArea createCode() { + final RSyntaxTextArea code = new RSyntaxTextArea(); code.setText(plugin.getCode()); code.setFont(new Font("Monospaced", Font.PLAIN, 14)); code.getDocument().addDocumentListener(new DocumentListener() { @@ -323,7 +329,12 @@ } }); code.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA); - final Component scrollPane2 = new RTextScrollPane(code); + return code; + } + + @NotNull + private Component createCodePanel(@NotNull final PluginController<G, A, R> pluginController) { + final Component scrollPane2 = new RTextScrollPane(createCode()); final Container codePanel = new JPanel(new BorderLayout()); codePanel.add(scrollPane2, BorderLayout.CENTER); final Container codeBottom = new JPanel(new FlowLayout()); @@ -337,7 +348,7 @@ }); codeBottom.add(test); codePanel.add(codeBottom, BorderLayout.SOUTH); - tabs.addTab("Code", codePanel); + return codePanel; } public void selectTableComponent(@NotNull final Component c) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 09:26:09
|
Revision: 9487 http://sourceforge.net/p/gridarta/code/9487 Author: akirschbaum Date: 2013-11-23 09:26:02 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Remove duplicated code. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 08:52:58 UTC (rev 9486) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 09:26:02 UTC (rev 9487) @@ -242,7 +242,6 @@ } }); optionsTab.add(registerButton, gbc); - tabs.add("Options", optionsTab); gbc.gridy = 5; final AbstractButton exportButton = new JButton("Export script..."); exportButton.setToolTipText("Export the specified plugin as XML (for distribution)"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2013-11-23 08:53:06
|
Revision: 9486 http://sourceforge.net/p/gridarta/code/9486 Author: akirschbaum Date: 2013-11-23 08:52:58 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Remove incorrect serialVersionUID fields. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManager.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 08:50:24 UTC (rev 9485) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2013-11-23 08:52:58 UTC (rev 9486) @@ -70,8 +70,6 @@ public class PluginEditor<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> { - private static final long serialVersionUID = 1L; - /** * The Logger for printing log messages. */ Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManager.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManager.java 2013-11-23 08:50:24 UTC (rev 9485) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginManager.java 2013-11-23 08:52:58 UTC (rev 9486) @@ -85,8 +85,6 @@ @NotNull private final Map<Plugin<G, A, R>, PluginEditor<G, A, R>> components = new HashMap<Plugin<G, A, R>, PluginEditor<G, A, R>>(); - private static final long serialVersionUID = 1L; - /** * Creates a PluginManager. * @param pluginController the script controller to base this script manager This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |