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...> - 2014-02-22 20:00:14
|
Revision: 9635 http://sourceforge.net/p/gridarta/code/9635 Author: akirschbaum Date: 2014-02-22 20:00:05 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Weaken types. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginView.java trunk/src/model/src/main/java/net/sf/gridarta/model/mapcursor/MapCursor.java 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 2014-02-22 19:22:28 UTC (rev 9634) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginView.java 2014-02-22 20:00:05 UTC (rev 9635) @@ -21,6 +21,7 @@ import java.awt.BorderLayout; import java.awt.Component; +import java.awt.Container; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; @@ -218,7 +219,7 @@ p.setMessageType(JOptionPane.QUESTION_MESSAGE); p.setMessage(ActionBuilderUtils.format(ACTION_BUILDER, "pluginViewProvideParameters", plugin.getName())); final GridBagLayout layout = new GridBagLayout(); - final JComponent panel = new JPanel(layout); + final Container panel = new JPanel(layout); final JDialog dialog = p.createDialog(parent, plugin.getName()); dialog.setModal(true); dialog.getContentPane().removeAll(); Modified: trunk/src/model/src/main/java/net/sf/gridarta/model/mapcursor/MapCursor.java =================================================================== --- trunk/src/model/src/main/java/net/sf/gridarta/model/mapcursor/MapCursor.java 2014-02-22 19:22:28 UTC (rev 9634) +++ trunk/src/model/src/main/java/net/sf/gridarta/model/mapcursor/MapCursor.java 2014-02-22 20:00:05 UTC (rev 9635) @@ -22,6 +22,7 @@ import java.awt.Dimension; import java.awt.Point; import java.awt.Rectangle; +import java.awt.geom.Rectangle2D; import net.sf.gridarta.model.archetype.Archetype; import net.sf.gridarta.model.baseobject.BaseObject; import net.sf.gridarta.model.direction.Direction; @@ -148,7 +149,7 @@ * transaction. */ @NotNull - private final Rectangle transactionMapRec = new Rectangle(); + private final Rectangle2D transactionMapRec = new Rectangle(); /** * The MapCursorListeners to inform of changes. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 19:22:32
|
Revision: 9634 http://sourceforge.net/p/gridarta/code/9634 Author: akirschbaum Date: 2014-02-22 19:22:28 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Replace if statements with guards. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginView.java 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 2014-02-22 18:56:19 UTC (rev 9633) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginView.java 2014-02-22 19:22:28 UTC (rev 9634) @@ -241,12 +241,10 @@ dialog.pack(); dialog.setVisible(true); final Object result = p.getValue(); - if (result instanceof Integer) { - if ((Integer) result == JOptionPane.YES_OPTION) { - return true; - } + if (!(result instanceof Integer) || (Integer) result != JOptionPane.YES_OPTION) { + return false; } - return false; + return true; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 18:56:25
|
Revision: 9633 http://sourceforge.net/p/gridarta/code/9633 Author: akirschbaum Date: 2014-02-22 18:56:19 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Add nullable annotations. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/help/Help.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/help/Help.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/help/Help.java 2014-02-22 18:05:24 UTC (rev 9632) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/help/Help.java 2014-02-22 18:56:19 UTC (rev 9633) @@ -24,6 +24,7 @@ import java.awt.Rectangle; import javax.swing.JDialog; import net.sf.japi.swing.action.DisposeAction; +import org.jetbrains.annotations.NotNull; /** * Implements the Help Window is a separate frame with html content. @@ -55,7 +56,7 @@ * @todo always creating new help windows is a Bad Thing as well, make this * constructor private */ - public Help(final Frame parent, final String fileName) { + public Help(@NotNull final Frame parent, @NotNull final String fileName) { super(parent, "Help", false); // super constructor setResizable(true); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 18:05:27
|
Revision: 9632 http://sourceforge.net/p/gridarta/code/9632 Author: akirschbaum Date: 2014-02-22 18:05:24 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Remove unused code. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxCellRenderer.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchetypeParameterView.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxCellRenderer.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxCellRenderer.java 2014-02-22 17:58:50 UTC (rev 9631) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxCellRenderer.java 2014-02-22 18:05:24 UTC (rev 9632) @@ -20,7 +20,6 @@ package net.sf.gridarta.gui.dialog.plugin.parameter.archetype; import java.awt.Component; -import javax.swing.ComboBoxEditor; import javax.swing.DefaultListCellRenderer; import javax.swing.JList; import net.sf.gridarta.model.baseobject.BaseObject; @@ -30,14 +29,8 @@ public class ArchComboBoxCellRenderer extends DefaultListCellRenderer { - @NotNull - private static final String SIZE_TESTER = "**SizeTester**"; - private static final long serialVersionUID = 1L; - @NotNull - private final ComboBoxEditor archComboBoxEditor; - /** * The {@link FaceObjectProviders} for looking up faces. */ @@ -46,12 +39,10 @@ /** * Creates a new instance. - * @param archComboBoxEditor the instance to use * @param faceObjectProviders the face object providers for looking up * faces */ - public ArchComboBoxCellRenderer(@NotNull final ComboBoxEditor archComboBoxEditor, @NotNull final FaceObjectProviders faceObjectProviders) { - this.archComboBoxEditor = archComboBoxEditor; + public ArchComboBoxCellRenderer(@NotNull final FaceObjectProviders faceObjectProviders) { this.faceObjectProviders = faceObjectProviders; } @@ -62,9 +53,6 @@ @NotNull @Override public Component getListCellRendererComponent(@NotNull final JList list, @Nullable final Object value, final int index, final boolean isSelected, final boolean cellHasFocus) { - if (SIZE_TESTER.equals(value)) { - return archComboBoxEditor.getEditorComponent(); - } /* The DefaultListCellRenderer class will take care of * the JLabels text property, it's foreground and background *colors, and so on. Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchetypeParameterView.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchetypeParameterView.java 2014-02-22 17:58:50 UTC (rev 9631) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchetypeParameterView.java 2014-02-22 18:05:24 UTC (rev 9632) @@ -70,7 +70,7 @@ final ArchComboBoxModel<G, A, R> archComboBoxModel = new ArchComboBoxModel<G, A, R>(archetypeSet); final ArchComboBoxEditor<G, A, R> archComboBoxEditor = new ArchComboBoxEditor<G, A, R>(value, archComboBoxModel, objectChooser, gameObjectAttributesModel, faceObjectProviders); value.setMaximumRowCount(4); - value.setRenderer(new ArchComboBoxCellRenderer(archComboBoxEditor, faceObjectProviders)); + value.setRenderer(new ArchComboBoxCellRenderer(faceObjectProviders)); value.setModel(archComboBoxModel); value.setEditable(true); value.setEditor(archComboBoxEditor); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 17:58:53
|
Revision: 9631 http://sourceforge.net/p/gridarta/code/9631 Author: akirschbaum Date: 2014-02-22 17:58:50 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Rename variable name. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxCellRenderer.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxCellRenderer.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxCellRenderer.java 2014-02-22 17:55:50 UTC (rev 9630) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxCellRenderer.java 2014-02-22 17:58:50 UTC (rev 9631) @@ -73,15 +73,15 @@ /* We additionally set the JLabels icon property here. */ - final BaseObject<?, ?, ?, ?> arch = (BaseObject<?, ?, ?, ?>) value; - if (arch == null) { + final BaseObject<?, ?, ?, ?> archetype = (BaseObject<?, ?, ?, ?>) value; + if (archetype == null) { setText(""); setIcon(null); return this; } - setText(arch.getArchetype().getArchetypeName()); + setText(archetype.getArchetype().getArchetypeName()); - setIcon(faceObjectProviders.getFace(arch)); + setIcon(faceObjectProviders.getFace(archetype)); return this; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 17:55:53
|
Revision: 9630 http://sourceforge.net/p/gridarta/code/9630 Author: akirschbaum Date: 2014-02-22 17:55:50 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Move MapParameterView and related classes to separate package. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java Added Paths: ----------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/map/ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/map/MapParameterCellRenderer.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/map/MapParameterComboBoxModel.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/map/MapParameterView.java Removed Paths: ------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapParameterCellRenderer.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapParameterComboBoxModel.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapParameterView.java Deleted: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapParameterCellRenderer.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapParameterCellRenderer.java 2014-02-22 17:54:13 UTC (rev 9629) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapParameterCellRenderer.java 2014-02-22 17:55:50 UTC (rev 9630) @@ -1,67 +0,0 @@ -/* - * 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.gui.dialog.plugin.parameter; - -import java.awt.Component; -import javax.swing.DefaultListCellRenderer; -import javax.swing.JList; -import net.sf.gridarta.model.mapcontrol.MapControl; -import net.sf.gridarta.model.mapmanager.MapManager; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public class MapParameterCellRenderer extends DefaultListCellRenderer { - - /** - * The serial version UID. - */ - private static final long serialVersionUID = 1L; - - /** - * The map manager to use. - */ - @NotNull - private final MapManager<?, ?, ?> mapManager; - - /** - * Create a new instance. - * @param mapManager the map manager to use - */ - public MapParameterCellRenderer(@NotNull final MapManager<?, ?, ?> mapManager) { - this.mapManager = mapManager; - } - - /** - * {@inheritDoc} - */ - @Override - public Component getListCellRendererComponent(@NotNull final JList list, @Nullable final Object value, final int index, final boolean isSelected, final boolean cellHasFocus) { - final String newVal; - if (value instanceof MapControl) { - newVal = ((MapControl<?, ?, ?>) value).getMapModel().getMapArchObject().getMapName(); - } else { - final MapControl<?, ?, ?> mapControl = mapManager.getCurrentMap(); - final String mapName = mapControl != null ? mapControl.getMapModel().getMapArchObject().getMapName() : ""; - newVal = "Current - " + mapName; - } - return super.getListCellRendererComponent(list, newVal, index, isSelected, cellHasFocus); - } - -} Deleted: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapParameterComboBoxModel.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapParameterComboBoxModel.java 2014-02-22 17:54:13 UTC (rev 9629) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapParameterComboBoxModel.java 2014-02-22 17:55:50 UTC (rev 9630) @@ -1,113 +0,0 @@ -/* - * 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.gui.dialog.plugin.parameter; - -import java.util.List; -import javax.swing.DefaultComboBoxModel; -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 org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public class MapParameterComboBoxModel<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends DefaultComboBoxModel { - - @NotNull - private final Object currentMap = new Object(); - - @Nullable - private Object selected; - - private static final long serialVersionUID = 1L; - - /** - * The map manager to use. - */ - @NotNull - private final MapManager<G, A, R> mapManager; - - /** - * Creates a new instance. - * @param mapManager the map manager to use - */ - public MapParameterComboBoxModel(@NotNull final MapManager<G, A, R> mapManager) { - this.mapManager = mapManager; - } - - /** - * {@inheritDoc} - */ - @NotNull - @Override - public Object getElementAt(final int index) { - if (index == 0) { - return currentMap; - } - - return mapManager.getOpenedMaps().get(index - 1); - } - - /** - * {@inheritDoc} - */ - @Override - public int getIndexOf(@NotNull final Object anObject) { - final List<MapControl<G, A, R>> maps = mapManager.getOpenedMaps(); - if (anObject == currentMap) { - return 0; - } - - for (int i = 0; i < maps.size(); i++) { - if (maps.get(i) == anObject) { - return i + 1; - } - } - - return -1; - } - - /** - * {@inheritDoc} - */ - @Nullable - @Override - public Object getSelectedItem() { - return selected; - } - - /** - * {@inheritDoc} - */ - @Override - public int getSize() { - return mapManager.getOpenedMaps().size() + 1; - } - - /** - * {@inheritDoc} - */ - @Override - public void setSelectedItem(@Nullable final Object anObject) { - selected = anObject; - } - -} Deleted: 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 2014-02-22 17:54:13 UTC (rev 9629) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapParameterView.java 2014-02-22 17:55:50 UTC (rev 9630) @@ -1,104 +0,0 @@ -/* - * 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.gui.dialog.plugin.parameter; - -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JPanel; -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.model.mapmodel.MapFile; -import net.sf.gridarta.plugin.parameter.MapParameter; -import org.jetbrains.annotations.NotNull; - -/** - * A {@link PluginParameterView} for a {@link MapParameter}. - */ -public class MapParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView { - - /** - * The component for editing the parameter's value. - */ - @NotNull - private final JComboBox value = new JComboBox(); - - /** - * The component for editing the parameter's configuration. A {@link - * MapParameter} does not support configuration. - */ - @NotNull - private final JComponent config = new JPanel(); - - /** - * Creates a new instance. - * @param parameter the map parameter that is shown - * @param mapManager the map manager for selecting maps - */ - public MapParameterView(@NotNull final MapParameter<G, A, R> parameter, @NotNull final MapManager<G, A, R> mapManager) { - value.setModel(new MapParameterComboBoxModel<G, A, R>(mapManager)); - value.setRenderer(new MapParameterCellRenderer(mapManager)); - value.addItemListener(new ItemListener() { - - @Override - public void itemStateChanged(final ItemEvent e) { - if (e.getStateChange() == ItemEvent.SELECTED) { - if (value.getSelectedIndex() == 0) { - parameter.setValueToCurrent(); - } else { - final MapControl<?, ?, ?> mapControl = (MapControl<?, ?, ?>) value.getSelectedItem(); - final String stringValue; - if (mapControl == null) { - stringValue = ""; - } else { - final MapFile mapFile = mapControl.getMapModel().getMapFile(); - stringValue = mapFile == null ? "" : mapFile.getMapPath().getPath(); - } - parameter.setStringValue(stringValue); - } - } - } - }); - value.setSelectedItem(parameter.getValue()); - } - - /** - * {@inheritDoc} - */ - @NotNull - @Override - public JComponent getValueComponent() { - return value; - } - - /** - * {@inheritDoc} - */ - @NotNull - @Override - public JComponent getConfigComponent() { - return config; - } - -} 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 2014-02-22 17:54:13 UTC (rev 9629) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java 2014-02-22 17:55:50 UTC (rev 9630) @@ -21,6 +21,7 @@ import java.awt.Component; import net.sf.gridarta.gui.dialog.plugin.parameter.archetype.ArchetypeParameterView; +import net.sf.gridarta.gui.dialog.plugin.parameter.map.MapParameterView; import net.sf.gridarta.gui.panel.gameobjectattributes.GameObjectAttributesModel; import net.sf.gridarta.gui.panel.objectchooser.ObjectChooser; import net.sf.gridarta.model.archetype.Archetype; Copied: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/map/MapParameterCellRenderer.java (from rev 9623, trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapParameterCellRenderer.java) =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/map/MapParameterCellRenderer.java (rev 0) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/map/MapParameterCellRenderer.java 2014-02-22 17:55:50 UTC (rev 9630) @@ -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.gui.dialog.plugin.parameter.map; + +import java.awt.Component; +import javax.swing.DefaultListCellRenderer; +import javax.swing.JList; +import net.sf.gridarta.model.mapcontrol.MapControl; +import net.sf.gridarta.model.mapmanager.MapManager; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class MapParameterCellRenderer extends DefaultListCellRenderer { + + /** + * The serial version UID. + */ + private static final long serialVersionUID = 1L; + + /** + * The map manager to use. + */ + @NotNull + private final MapManager<?, ?, ?> mapManager; + + /** + * Create a new instance. + * @param mapManager the map manager to use + */ + public MapParameterCellRenderer(@NotNull final MapManager<?, ?, ?> mapManager) { + this.mapManager = mapManager; + } + + /** + * {@inheritDoc} + */ + @Override + public Component getListCellRendererComponent(@NotNull final JList list, @Nullable final Object value, final int index, final boolean isSelected, final boolean cellHasFocus) { + final String newVal; + if (value instanceof MapControl) { + newVal = ((MapControl<?, ?, ?>) value).getMapModel().getMapArchObject().getMapName(); + } else { + final MapControl<?, ?, ?> mapControl = mapManager.getCurrentMap(); + final String mapName = mapControl != null ? mapControl.getMapModel().getMapArchObject().getMapName() : ""; + newVal = "Current - " + mapName; + } + return super.getListCellRendererComponent(list, newVal, index, isSelected, cellHasFocus); + } + +} Property changes on: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/map/MapParameterCellRenderer.java ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:mergeinfo ## -0,0 +1 ## +/streams/cher-japi-update/src/app/net/sf/gridarta/gui/script/parameter/MapParameterCellRenderer.java:5966-5991 \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +LF \ No newline at end of property Copied: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/map/MapParameterComboBoxModel.java (from rev 9623, trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapParameterComboBoxModel.java) =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/map/MapParameterComboBoxModel.java (rev 0) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/map/MapParameterComboBoxModel.java 2014-02-22 17:55:50 UTC (rev 9630) @@ -0,0 +1,113 @@ +/* + * 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.gui.dialog.plugin.parameter.map; + +import java.util.List; +import javax.swing.DefaultComboBoxModel; +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 org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class MapParameterComboBoxModel<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends DefaultComboBoxModel { + + @NotNull + private final Object currentMap = new Object(); + + @Nullable + private Object selected; + + private static final long serialVersionUID = 1L; + + /** + * The map manager to use. + */ + @NotNull + private final MapManager<G, A, R> mapManager; + + /** + * Creates a new instance. + * @param mapManager the map manager to use + */ + public MapParameterComboBoxModel(@NotNull final MapManager<G, A, R> mapManager) { + this.mapManager = mapManager; + } + + /** + * {@inheritDoc} + */ + @NotNull + @Override + public Object getElementAt(final int index) { + if (index == 0) { + return currentMap; + } + + return mapManager.getOpenedMaps().get(index - 1); + } + + /** + * {@inheritDoc} + */ + @Override + public int getIndexOf(@NotNull final Object anObject) { + final List<MapControl<G, A, R>> maps = mapManager.getOpenedMaps(); + if (anObject == currentMap) { + return 0; + } + + for (int i = 0; i < maps.size(); i++) { + if (maps.get(i) == anObject) { + return i + 1; + } + } + + return -1; + } + + /** + * {@inheritDoc} + */ + @Nullable + @Override + public Object getSelectedItem() { + return selected; + } + + /** + * {@inheritDoc} + */ + @Override + public int getSize() { + return mapManager.getOpenedMaps().size() + 1; + } + + /** + * {@inheritDoc} + */ + @Override + public void setSelectedItem(@Nullable final Object anObject) { + selected = anObject; + } + +} Property changes on: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/map/MapParameterComboBoxModel.java ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:mergeinfo ## -0,0 +1 ## +/streams/cher-japi-update/src/app/net/sf/gridarta/gui/script/parameter/MapParameterComboBoxModel.java:5966-5991 \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +LF \ No newline at end of property Copied: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/map/MapParameterView.java (from rev 9623, 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/map/MapParameterView.java (rev 0) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/map/MapParameterView.java 2014-02-22 17:55:50 UTC (rev 9630) @@ -0,0 +1,105 @@ +/* + * 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.gui.dialog.plugin.parameter.map; + +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JPanel; +import net.sf.gridarta.gui.dialog.plugin.parameter.PluginParameterView; +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.model.mapmodel.MapFile; +import net.sf.gridarta.plugin.parameter.MapParameter; +import org.jetbrains.annotations.NotNull; + +/** + * A {@link PluginParameterView} for a {@link MapParameter}. + */ +public class MapParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView { + + /** + * The component for editing the parameter's value. + */ + @NotNull + private final JComboBox value = new JComboBox(); + + /** + * The component for editing the parameter's configuration. A {@link + * MapParameter} does not support configuration. + */ + @NotNull + private final JComponent config = new JPanel(); + + /** + * Creates a new instance. + * @param parameter the map parameter that is shown + * @param mapManager the map manager for selecting maps + */ + public MapParameterView(@NotNull final MapParameter<G, A, R> parameter, @NotNull final MapManager<G, A, R> mapManager) { + value.setModel(new MapParameterComboBoxModel<G, A, R>(mapManager)); + value.setRenderer(new MapParameterCellRenderer(mapManager)); + value.addItemListener(new ItemListener() { + + @Override + public void itemStateChanged(final ItemEvent e) { + if (e.getStateChange() == ItemEvent.SELECTED) { + if (value.getSelectedIndex() == 0) { + parameter.setValueToCurrent(); + } else { + final MapControl<?, ?, ?> mapControl = (MapControl<?, ?, ?>) value.getSelectedItem(); + final String stringValue; + if (mapControl == null) { + stringValue = ""; + } else { + final MapFile mapFile = mapControl.getMapModel().getMapFile(); + stringValue = mapFile == null ? "" : mapFile.getMapPath().getPath(); + } + parameter.setStringValue(stringValue); + } + } + } + }); + value.setSelectedItem(parameter.getValue()); + } + + /** + * {@inheritDoc} + */ + @NotNull + @Override + public JComponent getValueComponent() { + return value; + } + + /** + * {@inheritDoc} + */ + @NotNull + @Override + public JComponent getConfigComponent() { + return config; + } + +} Property changes on: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/map/MapParameterView.java ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:mergeinfo ## -0,0 +1 ## +/streams/cher-japi-update/src/app/net/sf/gridarta/gui/script/parameter/MapParameterView.java:5966-5991 \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +LF \ 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...> - 2014-02-22 17:54:16
|
Revision: 9629 http://sourceforge.net/p/gridarta/code/9629 Author: akirschbaum Date: 2014-02-22 17:54:13 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Move ArchetypeParameterView and related classes to separate package. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java Added Paths: ----------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxCellRenderer.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxEditor.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxModel.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchetypeParameterView.java Removed Paths: ------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchComboBoxCellRenderer.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchComboBoxEditor.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchComboBoxModel.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchetypeParameterView.java Deleted: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchComboBoxCellRenderer.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchComboBoxCellRenderer.java 2014-02-22 17:50:09 UTC (rev 9628) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchComboBoxCellRenderer.java 2014-02-22 17:54:13 UTC (rev 9629) @@ -1,89 +0,0 @@ -/* - * 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.gui.dialog.plugin.parameter; - -import java.awt.Component; -import javax.swing.ComboBoxEditor; -import javax.swing.DefaultListCellRenderer; -import javax.swing.JList; -import net.sf.gridarta.model.baseobject.BaseObject; -import net.sf.gridarta.model.face.FaceObjectProviders; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public class ArchComboBoxCellRenderer extends DefaultListCellRenderer { - - @NotNull - private static final String SIZE_TESTER = "**SizeTester**"; - - private static final long serialVersionUID = 1L; - - @NotNull - private final ComboBoxEditor archComboBoxEditor; - - /** - * The {@link FaceObjectProviders} for looking up faces. - */ - @NotNull - private final FaceObjectProviders faceObjectProviders; - - /** - * Creates a new instance. - * @param archComboBoxEditor the instance to use - * @param faceObjectProviders the face object providers for looking up - * faces - */ - public ArchComboBoxCellRenderer(@NotNull final ComboBoxEditor archComboBoxEditor, @NotNull final FaceObjectProviders faceObjectProviders) { - this.archComboBoxEditor = archComboBoxEditor; - this.faceObjectProviders = faceObjectProviders; - } - - /* This is the only method defined by ListCellRenderer. We just - * reconfigure the label each time we're called. - */ - - @NotNull - @Override - public Component getListCellRendererComponent(@NotNull final JList list, @Nullable final Object value, final int index, final boolean isSelected, final boolean cellHasFocus) { - if (SIZE_TESTER.equals(value)) { - return archComboBoxEditor.getEditorComponent(); - } - /* The DefaultListCellRenderer class will take care of - * the JLabels text property, it's foreground and background - *colors, and so on. - */ - super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); - - /* We additionally set the JLabels icon property here. - */ - final BaseObject<?, ?, ?, ?> arch = (BaseObject<?, ?, ?, ?>) value; - if (arch == null) { - setText(""); - setIcon(null); - return this; - } - setText(arch.getArchetype().getArchetypeName()); - - setIcon(faceObjectProviders.getFace(arch)); - - return this; - } - -} Deleted: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchComboBoxEditor.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchComboBoxEditor.java 2014-02-22 17:50:09 UTC (rev 9628) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchComboBoxEditor.java 2014-02-22 17:54:13 UTC (rev 9629) @@ -1,273 +0,0 @@ -/* - * 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.gui.dialog.plugin.parameter; - -import java.awt.Color; -import java.awt.Component; -import java.awt.Container; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; -import javax.swing.AbstractButton; -import javax.swing.ComboBoxEditor; -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JPopupMenu; -import javax.swing.JTextField; -import javax.swing.border.LineBorder; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; -import javax.swing.text.JTextComponent; -import net.sf.gridarta.gui.panel.gameobjectattributes.GameObjectAttributesModel; -import net.sf.gridarta.gui.panel.objectchooser.ObjectChooser; -import net.sf.gridarta.model.archetype.Archetype; -import net.sf.gridarta.model.baseobject.BaseObject; -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.utils.CommonConstants; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public class ArchComboBoxEditor<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements ComboBoxEditor { - - @NotNull - private final JComboBox comboBox; - - @NotNull - private final ArchComboBoxModel<G, A, R> archComboBoxModel; - - @NotNull - private final Container editorPanel = new JPanel(new GridBagLayout()); - - @NotNull - private final JLabel icon = new JLabel(); - - @NotNull - private final JTextComponent editor = new JTextField(); - - @NotNull - private final JPopupMenu popup = new JPopupMenu(); - - private volatile boolean locked; - - /** - * The {@link FaceObjectProviders} for looking up faces. - */ - @NotNull - private final FaceObjectProviders faceObjectProviders; - - /** - * Creates a new instance. - * @param objectChooser the object chooser for selecting archetypes from - * opened maps - * @param gameObjectAttributesModel the game object attributes model for - * selecting archetypes from opened maps - * @param faceObjectProviders the face object providers for looking up - * faces - */ - public ArchComboBoxEditor(@NotNull final JComboBox comboBox, @NotNull final ArchComboBoxModel<G, A, R> archComboBoxModel, @NotNull final ObjectChooser<G, A, R> objectChooser, @NotNull final GameObjectAttributesModel<G, A, R> gameObjectAttributesModel, @NotNull final FaceObjectProviders faceObjectProviders) { - this.comboBox = comboBox; - this.archComboBoxModel = archComboBoxModel; - this.faceObjectProviders = faceObjectProviders; - final GridBagConstraints gbc = new GridBagConstraints(); - gbc.gridx = 0; - gbc.gridy = 0; - gbc.weightx = 1.0; - gbc.gridwidth = 4; - gbc.fill = GridBagConstraints.HORIZONTAL; - editorPanel.add(editor, gbc); - gbc.gridy = 1; - gbc.gridwidth = 1; - gbc.weightx = 0.0; - gbc.gridx = 1; - final AbstractButton fromSelect = new JButton("From tile selection"); - fromSelect.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(final ActionEvent e) { - final BaseObject<G, A, R, ?> gameObject = objectChooser.getSelection(); - if (gameObject != null) { - final Archetype<G, A, R> ao = archComboBoxModel.getNearestMatch(gameObject.getArchetype().getArchetypeName()); - comboBox.setSelectedItem(ao); - setItem(ao); - } - } - }); - editorPanel.add(fromSelect, gbc); - final AbstractButton fromActive = new JButton("From map selection"); - fromActive.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(final ActionEvent e) { - final BaseObject<G, A, R, ?> gameObject = gameObjectAttributesModel.getSelectedGameObject(); - if (gameObject != null) { - final Archetype<G, A, R> ao = archComboBoxModel.getNearestMatch(gameObject.getArchetype().getArchetypeName()); - comboBox.setSelectedItem(ao); - setItem(ao); - } - } - }); - gbc.gridx = 2; - editorPanel.add(fromActive, gbc); - editor.addMouseListener(new MouseListener() { - - @Override - public void mouseClicked(final MouseEvent e) { - } - - @Override - public void mouseEntered(final MouseEvent e) { - //popup.setLocation(p.x, p.y+archComboBoxEditor.getHeight()+5); - popup.setPreferredSize(null); - final Dimension d = popup.getPreferredSize(); - final Dimension p = editorPanel.getSize(); - if (d.width < p.width) { - d.width = p.width; - } - if (d.height < p.height) { - d.height = p.height; - } - popup.setPreferredSize(d); - popup.show(editorPanel, 0, editorPanel.getHeight() + 5); - } - - @Override - public void mouseExited(final MouseEvent e) { - popup.setVisible(false); - } - - @Override - public void mousePressed(final MouseEvent e) { - } - - @Override - public void mouseReleased(final MouseEvent e) { - } - }); - editor.setEditable(true); - editor.getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void changedUpdate(final DocumentEvent e) { - editorEntryChange(); - } - - @Override - public void insertUpdate(final DocumentEvent e) { - editorEntryChange(); - } - - @Override - public void removeUpdate(final DocumentEvent e) { - editorEntryChange(); - } - }); - popup.setLayout(new FlowLayout()); - popup.setBackground(CommonConstants.BG_COLOR); - popup.setBorder(new LineBorder(Color.black)); - popup.add(icon); - popup.setFocusable(false); - comboBox.setBackground(CommonConstants.BG_COLOR); - } - - public void lockEditor() { - locked = true; - } - - public void unlockEditor() { - locked = false; - } - - @Override - public void selectAll() { - // TODO Auto-generated method stub - - } - - @NotNull - @Override - public Component getEditorComponent() { - return editorPanel; - } - - @Override - public void addActionListener(@NotNull final ActionListener l) { - // TODO Auto-generated method stub - - } - - @Override - public void removeActionListener(@NotNull final ActionListener l) { - // TODO Auto-generated method stub - - } - - @Nullable - @Override - public Object getItem() { - // TODO Auto-generated method stub - return null; - } - - @Override - public void setItem(@Nullable final Object anObject) { - final BaseObject<?, ?, ?, ?> arch = (BaseObject<?, ?, ?, ?>) anObject; - if (anObject == null) { - icon.setIcon(null); - icon.setText("No item selected"); - } else { - icon.setIcon(faceObjectProviders.getFace(arch)); - } - - if (arch == null) { - icon.setText(""); - if (!locked) { - editor.setText(""); - } - } else { - if (!locked) { - editor.setText(arch.getArchetype().getArchetypeName()); - } - icon.setText(arch.getArchetype().getArchetypeName()); - } - } - - @Nullable - public JTextComponent getEditor() { - return editor; - } - - public void editorEntryChange() { - lockEditor(); - final Archetype<G, A, R> nearestMatch = archComboBoxModel.getNearestMatch(editor.getText()); - comboBox.setSelectedItem(nearestMatch); - setItem(nearestMatch); - unlockEditor(); - } - -} Deleted: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchComboBoxModel.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchComboBoxModel.java 2014-02-22 17:50:09 UTC (rev 9628) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchComboBoxModel.java 2014-02-22 17:54:13 UTC (rev 9629) @@ -1,150 +0,0 @@ -/* - * 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.gui.dialog.plugin.parameter; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import javax.swing.AbstractListModel; -import javax.swing.ComboBoxModel; -import net.sf.gridarta.model.archetype.Archetype; -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; - -public class ArchComboBoxModel<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractListModel implements ComboBoxModel { - - @Nullable - private Object value; - - @NotNull - private final List<Archetype<G, A, R>> archList; - - // FIXME: This constant looks pretty pointless. - - @NotNull - private static final String CURRENT_FILTER = ""; - - private static final long serialVersionUID = 1L; - - public ArchComboBoxModel(@NotNull final ArchetypeSet<G, A, R> archetypeSet) { - final Collection<R> archetypes = archetypeSet.getArchetypes(); - archList = new ArrayList<Archetype<G, A, R>>(archetypes); - Collections.sort(archList, new Comparator<Archetype<G, A, R>>() { - - @Override - public int compare(final Archetype<G, A, R> o1, final Archetype<G, A, R> o2) { - return o1.getArchetypeName().toLowerCase().compareTo(o2.getArchetypeName().toLowerCase()); - } - }); - } - - @Nullable - @Override - public Object getSelectedItem() { - return value; - } - - @Override - public void setSelectedItem(@Nullable final Object anItem) { - value = anItem; - } - - @Override - public int getSize() { - return archList.size(); - } - - @NotNull - @Override - public Object getElementAt(final int index) { - return archList.get(index); - } - - public void setFilter(@NotNull final String filter) { - if (filter.startsWith(CURRENT_FILTER)) { - narrowFilter(filter); - } else if (CURRENT_FILTER.startsWith(filter)) { - enlargeFilter(filter); - } else { - final int p = getCommonPrefix(CURRENT_FILTER, filter); - enlargeFilter(filter.substring(0, p)); - narrowFilter(filter); - } - fireContentsChanged(this, 0, archList.size()); - } - - private static int getCommonPrefix(@NotNull final CharSequence s1, @NotNull final CharSequence s2) { - int i = 0; - while (s1.length() > i && s2.length() > i && s1.charAt(i) == s2.charAt(i)) { - i++; - } - return i; - } - - private void enlargeFilter(@NotNull final String filter) { - // "abcd" -> "abc" - } - - private void narrowFilter(@NotNull final String filter) { - // "abc" -> "abcd" - } - - /** - * @noinspection TypeMayBeWeakened - */ - @NotNull - public Archetype<G, A, R> getNearestMatch(@NotNull final String name) { - int pos = Collections.binarySearch(archList, name, new Comparator<Object>() { - - @Override - public int compare(final Object o1, final Object o2) { - final String s1; - if (o1 instanceof Archetype) { - s1 = ((Archetype<?, ?, ?>) o1).getArchetypeName(); - } else { - s1 = o1.toString(); - } - final String s2; - if (o2 instanceof Archetype) { - s2 = ((Archetype<?, ?, ?>) o2).getArchetypeName(); - } else { - s2 = o2.toString(); - } - return s1.compareToIgnoreCase(s2); - } - }); - if (pos < 0) { - pos = -(pos + 1); - } - if (pos >= archList.size()) { - pos = archList.size() - 1; - } - if (pos < 0) { - pos = 0; - } - return archList.get(pos); - } - -} Deleted: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchetypeParameterView.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchetypeParameterView.java 2014-02-22 17:50:09 UTC (rev 9628) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchetypeParameterView.java 2014-02-22 17:54:13 UTC (rev 9629) @@ -1,108 +0,0 @@ -/* - * 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.gui.dialog.plugin.parameter; - -import java.awt.Dimension; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JPanel; -import net.sf.gridarta.gui.panel.gameobjectattributes.GameObjectAttributesModel; -import net.sf.gridarta.gui.panel.objectchooser.ObjectChooser; -import net.sf.gridarta.model.archetype.Archetype; -import net.sf.gridarta.model.archetypeset.ArchetypeSet; -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.ArchetypeParameter; -import org.jetbrains.annotations.NotNull; - -/** - * A {@link PluginParameterView} for an {@link ArchetypeParameter}. - */ -public class ArchetypeParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView { - - /** - * The component for editing the parameter's value. - */ - @NotNull - private final JComboBox value = new JComboBox(); - - /** - * The component for editing the parameter's configuration. An {@link - * ArchetypeParameter} does not support configuration. - */ - @NotNull - private final JComponent config = new JPanel(); - - /** - * Creates a new instance. - * @param parameter the archetype parameter that is shown - * @param gameObjectAttributesModel the game object attributes model for - * selecting archetypes from opened maps - * @param archetypeSet the archetype from which archetypes can be chosen - * @param objectChooser the object chooser for selecting archetypes from - * opened maps - * @param faceObjectProviders the face object providers for looking up - * faces - * @noinspection TypeMayBeWeakened - */ - public ArchetypeParameterView(@NotNull final ArchetypeParameter<G, A, R> parameter, @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) { - final ArchComboBoxModel<G, A, R> archComboBoxModel = new ArchComboBoxModel<G, A, R>(archetypeSet); - final ArchComboBoxEditor<G, A, R> archComboBoxEditor = new ArchComboBoxEditor<G, A, R>(value, archComboBoxModel, objectChooser, gameObjectAttributesModel, faceObjectProviders); - value.setMaximumRowCount(4); - value.setRenderer(new ArchComboBoxCellRenderer(archComboBoxEditor, faceObjectProviders)); - value.setModel(archComboBoxModel); - value.setEditable(true); - value.setEditor(archComboBoxEditor); - value.setPreferredSize(new Dimension(value.getPreferredSize().width, archComboBoxEditor.getEditorComponent().getPreferredSize().height)); - value.setSelectedItem(parameter.getValue()); - value.addItemListener(new ItemListener() { - - @Override - public void itemStateChanged(final ItemEvent e) { - if (e.getStateChange() == ItemEvent.SELECTED) { - final Archetype<?, ?, ?> archetype = (Archetype<?, ?, ?>) value.getSelectedItem(); - parameter.setStringValue(archetype.getArchetypeName()); - } - } - }); - } - - /** - * {@inheritDoc} - */ - @NotNull - @Override - public JComponent getConfigComponent() { - return config; - } - - /** - * {@inheritDoc} - */ - @NotNull - @Override - public JComponent getValueComponent() { - return value; - } - -} 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 2014-02-22 17:50:09 UTC (rev 9628) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java 2014-02-22 17:54:13 UTC (rev 9629) @@ -20,6 +20,7 @@ package net.sf.gridarta.gui.dialog.plugin.parameter; import java.awt.Component; +import net.sf.gridarta.gui.dialog.plugin.parameter.archetype.ArchetypeParameterView; import net.sf.gridarta.gui.panel.gameobjectattributes.GameObjectAttributesModel; import net.sf.gridarta.gui.panel.objectchooser.ObjectChooser; import net.sf.gridarta.model.archetype.Archetype; Copied: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxCellRenderer.java (from rev 9623, trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchComboBoxCellRenderer.java) =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxCellRenderer.java (rev 0) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxCellRenderer.java 2014-02-22 17:54:13 UTC (rev 9629) @@ -0,0 +1,89 @@ +/* + * 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.gui.dialog.plugin.parameter.archetype; + +import java.awt.Component; +import javax.swing.ComboBoxEditor; +import javax.swing.DefaultListCellRenderer; +import javax.swing.JList; +import net.sf.gridarta.model.baseobject.BaseObject; +import net.sf.gridarta.model.face.FaceObjectProviders; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class ArchComboBoxCellRenderer extends DefaultListCellRenderer { + + @NotNull + private static final String SIZE_TESTER = "**SizeTester**"; + + private static final long serialVersionUID = 1L; + + @NotNull + private final ComboBoxEditor archComboBoxEditor; + + /** + * The {@link FaceObjectProviders} for looking up faces. + */ + @NotNull + private final FaceObjectProviders faceObjectProviders; + + /** + * Creates a new instance. + * @param archComboBoxEditor the instance to use + * @param faceObjectProviders the face object providers for looking up + * faces + */ + public ArchComboBoxCellRenderer(@NotNull final ComboBoxEditor archComboBoxEditor, @NotNull final FaceObjectProviders faceObjectProviders) { + this.archComboBoxEditor = archComboBoxEditor; + this.faceObjectProviders = faceObjectProviders; + } + + /* This is the only method defined by ListCellRenderer. We just + * reconfigure the label each time we're called. + */ + + @NotNull + @Override + public Component getListCellRendererComponent(@NotNull final JList list, @Nullable final Object value, final int index, final boolean isSelected, final boolean cellHasFocus) { + if (SIZE_TESTER.equals(value)) { + return archComboBoxEditor.getEditorComponent(); + } + /* The DefaultListCellRenderer class will take care of + * the JLabels text property, it's foreground and background + *colors, and so on. + */ + super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + + /* We additionally set the JLabels icon property here. + */ + final BaseObject<?, ?, ?, ?> arch = (BaseObject<?, ?, ?, ?>) value; + if (arch == null) { + setText(""); + setIcon(null); + return this; + } + setText(arch.getArchetype().getArchetypeName()); + + setIcon(faceObjectProviders.getFace(arch)); + + return this; + } + +} Property changes on: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxCellRenderer.java ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:mergeinfo ## -0,0 +1 ## +/streams/cher-japi-update/src/app/net/sf/gridarta/gui/script/parameter/ArchComboBoxCellRenderer.java:5966-5991 \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +LF \ No newline at end of property Copied: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxEditor.java (from rev 9623, trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchComboBoxEditor.java) =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxEditor.java (rev 0) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxEditor.java 2014-02-22 17:54:13 UTC (rev 9629) @@ -0,0 +1,273 @@ +/* + * 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.gui.dialog.plugin.parameter.archetype; + +import java.awt.Color; +import java.awt.Component; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import javax.swing.AbstractButton; +import javax.swing.ComboBoxEditor; +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JPopupMenu; +import javax.swing.JTextField; +import javax.swing.border.LineBorder; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.text.JTextComponent; +import net.sf.gridarta.gui.panel.gameobjectattributes.GameObjectAttributesModel; +import net.sf.gridarta.gui.panel.objectchooser.ObjectChooser; +import net.sf.gridarta.model.archetype.Archetype; +import net.sf.gridarta.model.baseobject.BaseObject; +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.utils.CommonConstants; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class ArchComboBoxEditor<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements ComboBoxEditor { + + @NotNull + private final JComboBox comboBox; + + @NotNull + private final ArchComboBoxModel<G, A, R> archComboBoxModel; + + @NotNull + private final Container editorPanel = new JPanel(new GridBagLayout()); + + @NotNull + private final JLabel icon = new JLabel(); + + @NotNull + private final JTextComponent editor = new JTextField(); + + @NotNull + private final JPopupMenu popup = new JPopupMenu(); + + private volatile boolean locked; + + /** + * The {@link FaceObjectProviders} for looking up faces. + */ + @NotNull + private final FaceObjectProviders faceObjectProviders; + + /** + * Creates a new instance. + * @param objectChooser the object chooser for selecting archetypes from + * opened maps + * @param gameObjectAttributesModel the game object attributes model for + * selecting archetypes from opened maps + * @param faceObjectProviders the face object providers for looking up + * faces + */ + public ArchComboBoxEditor(@NotNull final JComboBox comboBox, @NotNull final ArchComboBoxModel<G, A, R> archComboBoxModel, @NotNull final ObjectChooser<G, A, R> objectChooser, @NotNull final GameObjectAttributesModel<G, A, R> gameObjectAttributesModel, @NotNull final FaceObjectProviders faceObjectProviders) { + this.comboBox = comboBox; + this.archComboBoxModel = archComboBoxModel; + this.faceObjectProviders = faceObjectProviders; + final GridBagConstraints gbc = new GridBagConstraints(); + gbc.gridx = 0; + gbc.gridy = 0; + gbc.weightx = 1.0; + gbc.gridwidth = 4; + gbc.fill = GridBagConstraints.HORIZONTAL; + editorPanel.add(editor, gbc); + gbc.gridy = 1; + gbc.gridwidth = 1; + gbc.weightx = 0.0; + gbc.gridx = 1; + final AbstractButton fromSelect = new JButton("From tile selection"); + fromSelect.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(final ActionEvent e) { + final BaseObject<G, A, R, ?> gameObject = objectChooser.getSelection(); + if (gameObject != null) { + final Archetype<G, A, R> ao = archComboBoxModel.getNearestMatch(gameObject.getArchetype().getArchetypeName()); + comboBox.setSelectedItem(ao); + setItem(ao); + } + } + }); + editorPanel.add(fromSelect, gbc); + final AbstractButton fromActive = new JButton("From map selection"); + fromActive.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(final ActionEvent e) { + final BaseObject<G, A, R, ?> gameObject = gameObjectAttributesModel.getSelectedGameObject(); + if (gameObject != null) { + final Archetype<G, A, R> ao = archComboBoxModel.getNearestMatch(gameObject.getArchetype().getArchetypeName()); + comboBox.setSelectedItem(ao); + setItem(ao); + } + } + }); + gbc.gridx = 2; + editorPanel.add(fromActive, gbc); + editor.addMouseListener(new MouseListener() { + + @Override + public void mouseClicked(final MouseEvent e) { + } + + @Override + public void mouseEntered(final MouseEvent e) { + //popup.setLocation(p.x, p.y+archComboBoxEditor.getHeight()+5); + popup.setPreferredSize(null); + final Dimension d = popup.getPreferredSize(); + final Dimension p = editorPanel.getSize(); + if (d.width < p.width) { + d.width = p.width; + } + if (d.height < p.height) { + d.height = p.height; + } + popup.setPreferredSize(d); + popup.show(editorPanel, 0, editorPanel.getHeight() + 5); + } + + @Override + public void mouseExited(final MouseEvent e) { + popup.setVisible(false); + } + + @Override + public void mousePressed(final MouseEvent e) { + } + + @Override + public void mouseReleased(final MouseEvent e) { + } + }); + editor.setEditable(true); + editor.getDocument().addDocumentListener(new DocumentListener() { + + @Override + public void changedUpdate(final DocumentEvent e) { + editorEntryChange(); + } + + @Override + public void insertUpdate(final DocumentEvent e) { + editorEntryChange(); + } + + @Override + public void removeUpdate(final DocumentEvent e) { + editorEntryChange(); + } + }); + popup.setLayout(new FlowLayout()); + popup.setBackground(CommonConstants.BG_COLOR); + popup.setBorder(new LineBorder(Color.black)); + popup.add(icon); + popup.setFocusable(false); + comboBox.setBackground(CommonConstants.BG_COLOR); + } + + public void lockEditor() { + locked = true; + } + + public void unlockEditor() { + locked = false; + } + + @Override + public void selectAll() { + // TODO Auto-generated method stub + + } + + @NotNull + @Override + public Component getEditorComponent() { + return editorPanel; + } + + @Override + public void addActionListener(@NotNull final ActionListener l) { + // TODO Auto-generated method stub + + } + + @Override + public void removeActionListener(@NotNull final ActionListener l) { + // TODO Auto-generated method stub + + } + + @Nullable + @Override + public Object getItem() { + // TODO Auto-generated method stub + return null; + } + + @Override + public void setItem(@Nullable final Object anObject) { + final BaseObject<?, ?, ?, ?> arch = (BaseObject<?, ?, ?, ?>) anObject; + if (anObject == null) { + icon.setIcon(null); + icon.setText("No item selected"); + } else { + icon.setIcon(faceObjectProviders.getFace(arch)); + } + + if (arch == null) { + icon.setText(""); + if (!locked) { + editor.setText(""); + } + } else { + if (!locked) { + editor.setText(arch.getArchetype().getArchetypeName()); + } + icon.setText(arch.getArchetype().getArchetypeName()); + } + } + + @Nullable + public JTextComponent getEditor() { + return editor; + } + + public void editorEntryChange() { + lockEditor(); + final Archetype<G, A, R> nearestMatch = archComboBoxModel.getNearestMatch(editor.getText()); + comboBox.setSelectedItem(nearestMatch); + setItem(nearestMatch); + unlockEditor(); + } + +} Property changes on: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxEditor.java ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:mergeinfo ## -0,0 +1 ## +/streams/cher-japi-update/src/app/net/sf/gridarta/gui/script/parameter/ArchComboBoxEditor.java:5966-5991 \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +LF \ No newline at end of property Copied: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxModel.java (from rev 9623, trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchComboBoxModel.java) =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxModel.java (rev 0) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxModel.java 2014-02-22 17:54:13 UTC (rev 9629) @@ -0,0 +1,150 @@ +/* + * 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.gui.dialog.plugin.parameter.archetype; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import javax.swing.AbstractListModel; +import javax.swing.ComboBoxModel; +import net.sf.gridarta.model.archetype.Archetype; +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; + +public class ArchComboBoxModel<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractListModel implements ComboBoxModel { + + @Nullable + private Object value; + + @NotNull + private final List<Archetype<G, A, R>> archList; + + // FIXME: This constant looks pretty pointless. + + @NotNull + private static final String CURRENT_FILTER = ""; + + private static final long serialVersionUID = 1L; + + public ArchComboBoxModel(@NotNull final ArchetypeSet<G, A, R> archetypeSet) { + final Collection<R> archetypes = archetypeSet.getArchetypes(); + archList = new ArrayList<Archetype<G, A, R>>(archetypes); + Collections.sort(archList, new Comparator<Archetype<G, A, R>>() { + + @Override + public int compare(final Archetype<G, A, R> o1, final Archetype<G, A, R> o2) { + return o1.getArchetypeName().toLowerCase().compareTo(o2.getArchetypeName().toLowerCase()); + } + }); + } + + @Nullable + @Override + public Object getSelectedItem() { + return value; + } + + @Override + public void setSelectedItem(@Nullable final Object anItem) { + value = anItem; + } + + @Override + public int getSize() { + return archList.size(); + } + + @NotNull + @Override + public Object getElementAt(final int index) { + return archList.get(index); + } + + public void setFilter(@NotNull final String filter) { + if (filter.startsWith(CURRENT_FILTER)) { + narrowFilter(filter); + } else if (CURRENT_FILTER.startsWith(filter)) { + enlargeFilter(filter); + } else { + final int p = getCommonPrefix(CURRENT_FILTER, filter); + enlargeFilter(filter.substring(0, p)); + narrowFilter(filter); + } + fireContentsChanged(this, 0, archList.size()); + } + + private static int getCommonPrefix(@NotNull final CharSequence s1, @NotNull final CharSequence s2) { + int i = 0; + while (s1.length() > i && s2.length() > i && s1.charAt(i) == s2.charAt(i)) { + i++; + } + return i; + } + + private void enlargeFilter(@NotNull final String filter) { + // "abcd" -> "abc" + } + + private void narrowFilter(@NotNull final String filter) { + // "abc" -> "abcd" + } + + /** + * @noinspection TypeMayBeWeakened + */ + @NotNull + public Archetype<G, A, R> getNearestMatch(@NotNull final String name) { + int pos = Collections.binarySearch(archList, name, new Comparator<Object>() { + + @Override + public int compare(final Object o1, final Object o2) { + final String s1; + if (o1 instanceof Archetype) { + s1 = ((Archetype<?, ?, ?>) o1).getArchetypeName(); + } else { + s1 = o1.toString(); + } + final String s2; + if (o2 instanceof Archetype) { + s2 = ((Archetype<?, ?, ?>) o2).getArchetypeName(); + } else { + s2 = o2.toString(); + } + return s1.compareToIgnoreCase(s2); + } + }); + if (pos < 0) { + pos = -(pos + 1); + } + if (pos >= archList.size()) { + pos = archList.size() - 1; + } + if (pos < 0) { + pos = 0; + } + return archList.get(pos); + } + +} Property changes on: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchComboBoxModel.java ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:mergeinfo ## -0,0 +1 ## +/streams/cher-japi-update/src/app/net/sf/gridarta/gui/script/parameter/ArchComboBoxModel.java:5966-5991 \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +LF \ No newline at end of property Copied: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchetypeParameterView.java (from rev 9628, trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchetypeParameterView.java) =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchetypeParameterView.java (rev 0) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchetypeParameterView.java 2014-02-22 17:54:13 UTC (rev 9629) @@ -0,0 +1,109 @@ +/* + * 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.gui.dialog.plugin.parameter.archetype; + +import java.awt.Dimension; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JPanel; +import net.sf.gridarta.gui.dialog.plugin.parameter.PluginParameterView; +import net.sf.gridarta.gui.panel.gameobjectattributes.GameObjectAttributesModel; +import net.sf.gridarta.gui.panel.objectchooser.ObjectChooser; +import net.sf.gridarta.model.archetype.Archetype; +import net.sf.gridarta.model.archetypeset.ArchetypeSet; +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.ArchetypeParameter; +import org.jetbrains.annotations.NotNull; + +/** + * A {@link PluginParameterView} for an {@link ArchetypeParameter}. + */ +public class ArchetypeParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView { + + /** + * The component for editing the parameter's value. + */ + @NotNull + private final JComboBox value = new JComboBox(); + + /** + * The component for editing the parameter's configuration. An {@link + * ArchetypeParameter} does not support configuration. + */ + @NotNull + private final JComponent config = new JPanel(); + + /** + * Creates a new instance. + * @param parameter the archetype parameter that is shown + * @param gameObjectAttributesModel the game object attributes model for + * selecting archetypes from opened maps + * @param archetypeSet the archetype from which archetypes can be chosen + * @param objectChooser the object chooser for selecting archetypes from + * opened maps + * @param faceObjectProviders the face object providers for looking up + * faces + * @noinspection TypeMayBeWeakened + */ + public ArchetypeParameterView(@NotNull final ArchetypeParameter<G, A, R> parameter, @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) { + final ArchComboBoxModel<G, A, R> archComboBoxModel = new ArchComboBoxModel<G, A, R>(archetypeSet); + final ArchComboBoxEditor<G, A, R> archComboBoxEditor = new ArchComboBoxEditor<G, A, R>(value, archComboBoxModel, objectChooser, gameObjectAttributesModel, faceObjectProviders); + value.setMaximumRowCount(4); + value.setRenderer(new ArchComboBoxCellRenderer(archComboBoxEditor, faceObjectProviders)); + value.setModel(archComboBoxModel); + value.setEditable(true); + value.setEditor(archComboBoxEditor); + value.setPreferredSize(new Dimension(value.getPreferredSize().width, archComboBoxEditor.getEditorComponent().getPreferredSize().height)); + value.setSelectedItem(parameter.getValue()); + value.addItemListener(new ItemListener() { + + @Override + public void itemStateChanged(final ItemEvent e) { + if (e.getStateChange() == ItemEvent.SELECTED) { + final Archetype<?, ?, ?> archetype = (Archetype<?, ?, ?>) value.getSelectedItem(); + parameter.setStringValue(archetype.getArchetypeName()); + } + } + }); + } + + /** + * {@inheritDoc} + */ + @NotNull + @Override + public JComponent getConfigComponent() { + return config; + } + + /** + * {@inheritDoc} + */ + @NotNull + @Override + public JComponent getValueComponent() { + return value; + } + +} Property changes on: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/archetype/ArchetypeParameterView.java ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:mergeinfo ## -0,0 +1 ## +/streams/cher-japi-update/src/app/net/sf/gridarta/gui/script/parameter/ArchParameterView.java:5966-5991 \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +LF \ 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...> - 2014-02-22 17:50:15
|
Revision: 9628 http://sourceforge.net/p/gridarta/code/9628 Author: akirschbaum Date: 2014-02-22 17:50:09 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Rename class name. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java Added Paths: ----------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchetypeParameterView.java Removed Paths: ------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchParameterView.java Deleted: 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 2014-02-22 17:02:36 UTC (rev 9627) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchParameterView.java 2014-02-22 17:50:09 UTC (rev 9628) @@ -1,108 +0,0 @@ -/* - * 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.gui.dialog.plugin.parameter; - -import java.awt.Dimension; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JPanel; -import net.sf.gridarta.gui.panel.gameobjectattributes.GameObjectAttributesModel; -import net.sf.gridarta.gui.panel.objectchooser.ObjectChooser; -import net.sf.gridarta.model.archetype.Archetype; -import net.sf.gridarta.model.archetypeset.ArchetypeSet; -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.ArchetypeParameter; -import org.jetbrains.annotations.NotNull; - -/** - * A {@link PluginParameterView} for an {@link ArchetypeParameter}. - */ -public class ArchParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView { - - /** - * The component for editing the parameter's value. - */ - @NotNull - private final JComboBox value = new JComboBox(); - - /** - * The component for editing the parameter's configuration. An {@link - * ArchetypeParameter} does not support configuration. - */ - @NotNull - private final JComponent config = new JPanel(); - - /** - * Creates a new instance. - * @param parameter the archetype parameter that is shown - * @param gameObjectAttributesModel the game object attributes model for - * selecting archetypes from opened maps - * @param archetypeSet the archetype from which archetypes can be chosen - * @param objectChooser the object chooser for selecting archetypes from - * opened maps - * @param faceObjectProviders the face object providers for looking up - * faces - * @noinspection TypeMayBeWeakened - */ - public ArchParameterView(@NotNull final ArchetypeParameter<G, A, R> parameter, @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) { - final ArchComboBoxModel<G, A, R> archComboBoxModel = new ArchComboBoxModel<G, A, R>(archetypeSet); - final ArchComboBoxEditor<G, A, R> archComboBoxEditor = new ArchComboBoxEditor<G, A, R>(value, archComboBoxModel, objectChooser, gameObjectAttributesModel, faceObjectProviders); - value.setMaximumRowCount(4); - value.setRenderer(new ArchComboBoxCellRenderer(archComboBoxEditor, faceObjectProviders)); - value.setModel(archComboBoxModel); - value.setEditable(true); - value.setEditor(archComboBoxEditor); - value.setPreferredSize(new Dimension(value.getPreferredSize().width, archComboBoxEditor.getEditorComponent().getPreferredSize().height)); - value.setSelectedItem(parameter.getValue()); - value.addItemListener(new ItemListener() { - - @Override - public void itemStateChanged(final ItemEvent e) { - if (e.getStateChange() == ItemEvent.SELECTED) { - final Archetype<?, ?, ?> archetype = (Archetype<?, ?, ?>) value.getSelectedItem(); - parameter.setStringValue(archetype.getArchetypeName()); - } - } - }); - } - - /** - * {@inheritDoc} - */ - @NotNull - @Override - public JComponent getConfigComponent() { - return config; - } - - /** - * {@inheritDoc} - */ - @NotNull - @Override - public JComponent getValueComponent() { - return value; - } - -} Copied: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchetypeParameterView.java (from rev 9623, 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/ArchetypeParameterView.java (rev 0) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchetypeParameterView.java 2014-02-22 17:50:09 UTC (rev 9628) @@ -0,0 +1,108 @@ +/* + * 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.gui.dialog.plugin.parameter; + +import java.awt.Dimension; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JPanel; +import net.sf.gridarta.gui.panel.gameobjectattributes.GameObjectAttributesModel; +import net.sf.gridarta.gui.panel.objectchooser.ObjectChooser; +import net.sf.gridarta.model.archetype.Archetype; +import net.sf.gridarta.model.archetypeset.ArchetypeSet; +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.ArchetypeParameter; +import org.jetbrains.annotations.NotNull; + +/** + * A {@link PluginParameterView} for an {@link ArchetypeParameter}. + */ +public class ArchetypeParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView { + + /** + * The component for editing the parameter's value. + */ + @NotNull + private final JComboBox value = new JComboBox(); + + /** + * The component for editing the parameter's configuration. An {@link + * ArchetypeParameter} does not support configuration. + */ + @NotNull + private final JComponent config = new JPanel(); + + /** + * Creates a new instance. + * @param parameter the archetype parameter that is shown + * @param gameObjectAttributesModel the game object attributes model for + * selecting archetypes from opened maps + * @param archetypeSet the archetype from which archetypes can be chosen + * @param objectChooser the object chooser for selecting archetypes from + * opened maps + * @param faceObjectProviders the face object providers for looking up + * faces + * @noinspection TypeMayBeWeakened + */ + public ArchetypeParameterView(@NotNull final ArchetypeParameter<G, A, R> parameter, @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) { + final ArchComboBoxModel<G, A, R> archComboBoxModel = new ArchComboBoxModel<G, A, R>(archetypeSet); + final ArchComboBoxEditor<G, A, R> archComboBoxEditor = new ArchComboBoxEditor<G, A, R>(value, archComboBoxModel, objectChooser, gameObjectAttributesModel, faceObjectProviders); + value.setMaximumRowCount(4); + value.setRenderer(new ArchComboBoxCellRenderer(archComboBoxEditor, faceObjectProviders)); + value.setModel(archComboBoxModel); + value.setEditable(true); + value.setEditor(archComboBoxEditor); + value.setPreferredSize(new Dimension(value.getPreferredSize().width, archComboBoxEditor.getEditorComponent().getPreferredSize().height)); + value.setSelectedItem(parameter.getValue()); + value.addItemListener(new ItemListener() { + + @Override + public void itemStateChanged(final ItemEvent e) { + if (e.getStateChange() == ItemEvent.SELECTED) { + final Archetype<?, ?, ?> archetype = (Archetype<?, ?, ?>) value.getSelectedItem(); + parameter.setStringValue(archetype.getArchetypeName()); + } + } + }); + } + + /** + * {@inheritDoc} + */ + @NotNull + @Override + public JComponent getConfigComponent() { + return config; + } + + /** + * {@inheritDoc} + */ + @NotNull + @Override + public JComponent getValueComponent() { + return value; + } + +} Property changes on: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchetypeParameterView.java ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:mergeinfo ## -0,0 +1 ## +/streams/cher-japi-update/src/app/net/sf/gridarta/gui/script/parameter/ArchParameterView.java:5966-5991 \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +LF \ No newline at end of property 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 2014-02-22 17:02:36 UTC (rev 9627) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java 2014-02-22 17:50:09 UTC (rev 9628) @@ -86,7 +86,7 @@ @NotNull @Override public PluginParameterView visit(@NotNull final ArchetypeParameter<G, A, R> parameter) { - return new ArchParameterView<G, A, R>(parameter, gameObjectAttributesModel, archetypeSet, objectChooser, faceObjectProviders); + return new ArchetypeParameterView<G, A, R>(parameter, gameObjectAttributesModel, archetypeSet, objectChooser, faceObjectProviders); } @NotNull This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 17:02:42
|
Revision: 9627 http://sourceforge.net/p/gridarta/code/9627 Author: akirschbaum Date: 2014-02-22 17:02:36 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Do not retain configuration of plugin parameters when changing parameter types. Modified Paths: -------------- trunk/src/atrinik/ChangeLog trunk/src/crossfire/ChangeLog trunk/src/daimonin/ChangeLog trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/Plugin.java Modified: trunk/src/atrinik/ChangeLog =================================================================== --- trunk/src/atrinik/ChangeLog 2014-02-22 15:02:21 UTC (rev 9626) +++ trunk/src/atrinik/ChangeLog 2014-02-22 17:02:36 UTC (rev 9627) @@ -1,5 +1,8 @@ 2014-02-22 Andreas Kirschbaum + * Do not retain configuration of plugin parameters when changing + parameter types. + * Fix configuration dialogs for Boolean, Integer, and Double plugin parameter types. Modified: trunk/src/crossfire/ChangeLog =================================================================== --- trunk/src/crossfire/ChangeLog 2014-02-22 15:02:21 UTC (rev 9626) +++ trunk/src/crossfire/ChangeLog 2014-02-22 17:02:36 UTC (rev 9627) @@ -1,5 +1,8 @@ 2014-02-22 Andreas Kirschbaum + * Do not retain configuration of plugin parameters when changing + parameter types. + * Fix configuration dialogs for Boolean, Integer, and Double plugin parameter types. Modified: trunk/src/daimonin/ChangeLog =================================================================== --- trunk/src/daimonin/ChangeLog 2014-02-22 15:02:21 UTC (rev 9626) +++ trunk/src/daimonin/ChangeLog 2014-02-22 17:02:36 UTC (rev 9627) @@ -1,5 +1,8 @@ 2014-02-22 Andreas Kirschbaum + * Do not retain configuration of plugin parameters when changing + parameter types. + * Fix configuration dialogs for Boolean, Integer, and Double plugin parameter types. 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 2014-02-22 15:02:21 UTC (rev 9626) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/Plugin.java 2014-02-22 17:02:36 UTC (rev 9627) @@ -389,7 +389,7 @@ if (index == -1) { throw new NoSuchParameterException(pluginParameter); } - final PluginParameter<G, A, R, ?> newParameter = pluginParameterFactory.createParameter(newType, codec.toXML(parameters.get(index))); + final PluginParameter<G, A, R, ?> newParameter = pluginParameterFactory.createParameter(newType); final PluginParameter<G, A, R, ?> oldParameter = parameters.set(index, newParameter); oldParameter.removePluginParameterListener(pluginParameterListener); newParameter.addPluginParameterListener(pluginParameterListener); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 15:02:27
|
Revision: 9626 http://sourceforge.net/p/gridarta/code/9626 Author: akirschbaum Date: 2014-02-22 15:02:21 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Fix configuration dialogs for Boolean, Integer, and Double plugin parameter types. 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/parameter/BooleanParameterView.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/DoubleParameterView.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/IntegerParameterView.java Modified: trunk/src/atrinik/ChangeLog =================================================================== --- trunk/src/atrinik/ChangeLog 2014-02-22 13:00:48 UTC (rev 9625) +++ trunk/src/atrinik/ChangeLog 2014-02-22 15:02:21 UTC (rev 9626) @@ -1,5 +1,8 @@ 2014-02-22 Andreas Kirschbaum + * Fix configuration dialogs for Boolean, Integer, and Double + plugin parameter types. + * Fix type combo box in parameter tab in plugin editor. 2014-02-19 Andreas Kirschbaum Modified: trunk/src/crossfire/ChangeLog =================================================================== --- trunk/src/crossfire/ChangeLog 2014-02-22 13:00:48 UTC (rev 9625) +++ trunk/src/crossfire/ChangeLog 2014-02-22 15:02:21 UTC (rev 9626) @@ -1,5 +1,8 @@ 2014-02-22 Andreas Kirschbaum + * Fix configuration dialogs for Boolean, Integer, and Double + plugin parameter types. + * Fix type combo box in parameter tab in plugin editor. 2014-02-19 Andreas Kirschbaum Modified: trunk/src/daimonin/ChangeLog =================================================================== --- trunk/src/daimonin/ChangeLog 2014-02-22 13:00:48 UTC (rev 9625) +++ trunk/src/daimonin/ChangeLog 2014-02-22 15:02:21 UTC (rev 9626) @@ -1,5 +1,8 @@ 2014-02-22 Andreas Kirschbaum + * Fix configuration dialogs for Boolean, Integer, and Double + plugin parameter types. + * Fix type combo box in parameter tab in plugin editor. 2014-02-19 Andreas Kirschbaum Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/BooleanParameterView.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/BooleanParameterView.java 2014-02-22 13:00:48 UTC (rev 9625) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/BooleanParameterView.java 2014-02-22 15:02:21 UTC (rev 9626) @@ -77,8 +77,15 @@ @Override public void actionPerformed(@NotNull final ActionEvent e) { final String yes = JOptionPane.showInputDialog(parent, "Checked text", parameter.getTrueText()); + if (yes == null) { + return; + } + parameter.setTrueText(yes); + final String no = JOptionPane.showInputDialog(parent, "Unchecked text", parameter.getFalseText()); - parameter.setTrueText(yes); + if (no == null) { + return; + } parameter.setFalseText(no); } Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/DoubleParameterView.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/DoubleParameterView.java 2014-02-22 13:00:48 UTC (rev 9625) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/DoubleParameterView.java 2014-02-22 15:02:21 UTC (rev 9626) @@ -66,16 +66,17 @@ */ public DoubleParameterView(@NotNull final Component parent, @NotNull final DoubleParameter<G, A, R> parameter) { this.parameter = parameter; - value = new JSpinner(new SpinnerNumberModel(0.0, parameter.getMin(), parameter.getMax(), (parameter.getMax() - parameter.getMin()) / 100.0)); - try { - value.setValue(parameter.getValue()); - } catch (final IllegalArgumentException e) { - } + final SpinnerNumberModel model = new SpinnerNumberModel(0.0, 0.0, 0.0, 0.0); + model.setMinimum(parameter.getMin()); + model.setMaximum(parameter.getMax()); + model.setValue(parameter.getValue()); + model.setStepSize((parameter.getMax() - parameter.getMin()) / 100.0); + value = new JSpinner(model); value.addChangeListener(new ChangeListener() { @Override public void stateChanged(final ChangeEvent e) { - parameter.setValue((Double) ((SpinnerNumberModel) value.getModel()).getNumber()); + parameter.setValue((Double) model.getNumber()); } }); config.setBorderPainted(false); @@ -84,16 +85,36 @@ @Override public void actionPerformed(final ActionEvent e) { final String min = JOptionPane.showInputDialog(parent, "Minimum value:", parameter.getMin()); + if (min == null) { + return; + } + final double min1; + try { + min1 = Double.parseDouble(min); + } catch (final NumberFormatException ignored) { + JOptionPane.showMessageDialog(parent, "Invalid minimum value: " + min); + return; + } + parameter.setMin(min1); + model.setMinimum(min1); + model.setStepSize(((Double) model.getMaximum() - min1) / 100.0); + updateTooltip(); + final String max = JOptionPane.showInputDialog(parent, "Maximum value:", parameter.getMax()); + if (max == null) { + return; + } + final double max1; try { - parameter.setMax(Double.parseDouble(max)); - parameter.setMin(Double.parseDouble(min)); - ((SpinnerNumberModel) value.getModel()).setMinimum(parameter.getMin()); - ((SpinnerNumberModel) value.getModel()).setMaximum(parameter.getMax()); - updateTooltip(); - } catch (final Exception ex) { - JOptionPane.showMessageDialog(null, "Could not change Double configuration"); + max1 = Double.parseDouble(max); + } catch (final NumberFormatException ignored) { + JOptionPane.showMessageDialog(parent, "Invalid maximum value: " + max); + return; } + parameter.setMax(max1); + model.setMaximum(max1); + model.setStepSize((max1 - min1) / 100.0); + updateTooltip(); } }); 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 2014-02-22 13:00:48 UTC (rev 9625) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/IntegerParameterView.java 2014-02-22 15:02:21 UTC (rev 9626) @@ -66,12 +66,16 @@ */ public IntegerParameterView(@NotNull final Component parent, @NotNull final IntegerParameter<G, A, R> parameter) { this.parameter = parameter; - value = new JSpinner(new SpinnerNumberModel((int) parameter.getValue(), parameter.getMin(), parameter.getMax(), 1)); + final SpinnerNumberModel model = new SpinnerNumberModel((int) parameter.getValue(), parameter.getMin(), parameter.getMax(), 1); + model.setMinimum(parameter.getMin()); + model.setMaximum(parameter.getMax()); + model.setValue(parameter.getValue()); + value = new JSpinner(model); value.addChangeListener(new ChangeListener() { @Override public void stateChanged(final ChangeEvent e) { - parameter.setValue((Integer) ((SpinnerNumberModel) value.getModel()).getNumber()); + parameter.setValue((Integer) model.getNumber()); } }); config.setBorderPainted(false); @@ -80,16 +84,34 @@ @Override public void actionPerformed(final ActionEvent e) { final String min = JOptionPane.showInputDialog(parent, "Minimum value:", parameter.getMin()); + if (min == null) { + return; + } + final int min1; + try { + min1 = Integer.parseInt(min); + } catch (final NumberFormatException ignored) { + JOptionPane.showMessageDialog(parent, "Invalid minimum value: " + min); + return; + } + parameter.setMin(min1); + model.setMinimum(min1); + updateTooltip(); + final String max = JOptionPane.showInputDialog(parent, "Maximum value:", parameter.getMax()); + if (max == null) { + return; + } + final int max1; try { - parameter.setMax(Integer.parseInt(max)); - parameter.setMin(Integer.parseInt(min)); - ((SpinnerNumberModel) value.getModel()).setMinimum(parameter.getMin()); - ((SpinnerNumberModel) value.getModel()).setMaximum(parameter.getMax()); - updateTooltip(); - } catch (final Exception ex) { - JOptionPane.showMessageDialog(null, "Could not change integer configuration"); + max1 = Integer.parseInt(max); + } catch (final NumberFormatException ignored) { + JOptionPane.showMessageDialog(parent, "Invalid maximum value: " + max); + return; } + parameter.setMax(max1); + model.setMaximum(max1); + updateTooltip(); } }); @@ -115,7 +137,8 @@ } /** - * Updates the tooltip text of {@link #config} and {@link #value} to reflect the current parameters. + * Updates the tooltip text of {@link #config} and {@link #value} to reflect + * the current parameters. */ private void updateTooltip() { final String toolTip = "[" + Integer.toString(parameter.getMin()) + "," + Integer.toString(parameter.getMax()) + "]"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 13:00:51
|
Revision: 9625 http://sourceforge.net/p/gridarta/code/9625 Author: akirschbaum Date: 2014-02-22 13:00:48 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Simplify 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 2014-02-22 12:59:26 UTC (rev 9624) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2014-02-22 13:00:48 UTC (rev 9625) @@ -315,10 +315,9 @@ parameterTable.add(ActionBuilderUtils.newLabel(ACTION_BUILDER, "pluginEditorTitleConfig.text"), gbc); gbc.gridx = 4; parameterTable.add(ActionBuilderUtils.newLabel(ACTION_BUILDER, "pluginEditorTitleDefault.text"), gbc); - int i = 0; for (final PluginParameter<G, A, R, ?> parameter : plugin) { final PluginEditorRow row = getOrCreateRow(parameter); - gbc.gridy = i + 1; + gbc.gridy++; gbc.gridx = 0; parameterTable.add(row.getParameterNameEditor(), gbc); gbc.gridx = 1; @@ -331,7 +330,6 @@ parameterTable.add(row.getConfigComponent(), gbc); gbc.gridx = 4; parameterTable.add(row.getValueComponent(), gbc); - i++; } panel.repaint(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 12:59:31
|
Revision: 9624 http://sourceforge.net/p/gridarta/code/9624 Author: akirschbaum Date: 2014-02-22 12:59:26 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Fix type combo box in parameter tab in plugin editor. 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/plugin/src/main/java/net/sf/gridarta/plugin/Plugin.java Added Paths: ----------- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/PluginListener.java Modified: trunk/src/atrinik/ChangeLog =================================================================== --- trunk/src/atrinik/ChangeLog 2014-02-22 11:12:07 UTC (rev 9623) +++ trunk/src/atrinik/ChangeLog 2014-02-22 12:59:26 UTC (rev 9624) @@ -1,3 +1,7 @@ +2014-02-22 Andreas Kirschbaum + + * Fix type combo box in parameter tab in plugin editor. + 2014-02-19 Andreas Kirschbaum * Remove implementation for plugin parameters of type Modified: trunk/src/crossfire/ChangeLog =================================================================== --- trunk/src/crossfire/ChangeLog 2014-02-22 11:12:07 UTC (rev 9623) +++ trunk/src/crossfire/ChangeLog 2014-02-22 12:59:26 UTC (rev 9624) @@ -1,3 +1,7 @@ +2014-02-22 Andreas Kirschbaum + + * Fix type combo box in parameter tab in plugin editor. + 2014-02-19 Andreas Kirschbaum * Remove implementation for plugin parameters of type Modified: trunk/src/daimonin/ChangeLog =================================================================== --- trunk/src/daimonin/ChangeLog 2014-02-22 11:12:07 UTC (rev 9623) +++ trunk/src/daimonin/ChangeLog 2014-02-22 12:59:26 UTC (rev 9624) @@ -1,3 +1,7 @@ +2014-02-22 Andreas Kirschbaum + + * Fix type combo box in parameter tab in plugin editor. + 2014-02-19 Andreas Kirschbaum * Remove implementation for plugin parameters of type 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 2014-02-22 11:12:07 UTC (rev 9623) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2014-02-22 12:59:26 UTC (rev 9624) @@ -41,8 +41,6 @@ import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.SwingConstants; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import net.sf.gridarta.gui.dialog.plugin.parameter.PluginParameterViewFactory; @@ -50,6 +48,7 @@ import net.sf.gridarta.model.gameobject.GameObject; import net.sf.gridarta.model.maparchobject.MapArchObject; import net.sf.gridarta.plugin.Plugin; +import net.sf.gridarta.plugin.PluginListener; import net.sf.gridarta.plugin.PluginModel; import net.sf.gridarta.plugin.parameter.NoSuchParameterException; import net.sf.gridarta.plugin.parameter.PluginParameter; @@ -220,12 +219,13 @@ @NotNull private Component createParameterTab() { - plugin.addChangeListener(new ChangeListener() { + plugin.addPluginListener(new PluginListener() { @Override - public void stateChanged(final ChangeEvent e) { + public void parametersChanged() { redrawTable(); } + }); final Container parameterButtons = new JPanel(); 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 2014-02-22 11:12:07 UTC (rev 9623) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/Plugin.java 2014-02-22 12:59:26 UTC (rev 9624) @@ -23,13 +23,9 @@ import bsh.Interpreter; import java.io.File; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; -import java.util.HashSet; import java.util.Iterator; import java.util.List; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; import net.sf.gridarta.model.archetype.Archetype; import net.sf.gridarta.model.filter.Filter; import net.sf.gridarta.model.gameobject.GameObject; @@ -40,6 +36,7 @@ import net.sf.gridarta.plugin.parameter.PluginParameterFactory; import net.sf.gridarta.plugin.parameter.PluginParameterListener; import net.sf.gridarta.plugin.parameter.StringParameter; +import net.sf.gridarta.utils.EventListenerList2; import org.apache.log4j.Category; import org.apache.log4j.Logger; import org.jdom.Content; @@ -107,10 +104,10 @@ private boolean script; /** - * The {@link ChangeListener ChangeListeners} to inform about changes. + * The {@link PluginListener PluginListeners} to inform about changes. */ @NotNull - private final Collection<ChangeListener> listeners = new HashSet<ChangeListener>(); + private final EventListenerList2<PluginListener> listeners = new EventListenerList2<PluginListener>(PluginListener.class); /** * The location to save this plugin to; set to {@code null} if the plugin @@ -227,6 +224,7 @@ parameters.add(pluginParameter); pluginParameter.addPluginParameterListener(pluginParameterListener); setModified(); + notifyParametersChangedListeners(); } /** @@ -236,32 +234,32 @@ public void removeParameter(final int index) { parameters.remove(index).removePluginParameterListener(pluginParameterListener); setModified(); + notifyParametersChangedListeners(); } /** - * Adds a {@link ChangeListener} to be notified about changes. + * Adds a {@link PluginListener} to be notified about changes. * @param listener the change listener */ - public void addChangeListener(@NotNull final ChangeListener listener) { + public void addPluginListener(@NotNull final PluginListener listener) { listeners.add(listener); } /** - * Removes a {@link ChangeListener} to be notified about changes. + * Removes a {@link PluginListener} to be notified about changes. * @param listener the change listener */ - public void removeListener(@NotNull final ChangeListener listener) { + public void removePluginListener(@NotNull final PluginListener listener) { listeners.remove(listener); } /** - * Notifies all registered {@link ChangeListener ChangeListeners} that this - * plugin has changed. + * Notifies all registered {@link PluginListener PluginListeners} that the + * parameters have changed. */ - private void notifyListeners() { - final ChangeEvent e = new ChangeEvent(this); - for (final ChangeListener listener : listeners) { - listener.stateChanged(e); + private void notifyParametersChangedListeners() { + for (final PluginListener listener : listeners.getListeners()) { + listener.parametersChanged(); } } @@ -301,6 +299,7 @@ parameters.add(pluginParameter); pluginParameter.addPluginParameterListener(pluginParameterListener); setModified(); + notifyParametersChangedListeners(); } /** @@ -395,6 +394,7 @@ oldParameter.removePluginParameterListener(pluginParameterListener); newParameter.addPluginParameterListener(pluginParameterListener); setModified(); + notifyParametersChangedListeners(); } /** @@ -409,23 +409,14 @@ * Marks the plugin as unmodified since last save. */ public void resetModified() { - if (!modified) { - return; - } - modified = false; - notifyListeners(); } /** * Marks this plugin a modified since last save. */ private void setModified() { - if (modified) { - return; - } modified = true; - notifyListeners(); } /** Added: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/PluginListener.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/PluginListener.java (rev 0) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/PluginListener.java 2014-02-22 12:59:26 UTC (rev 9624) @@ -0,0 +1,35 @@ +/* + * 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; + +import java.util.EventListener; + +/** + * Interface for listeners interested in {@link Plugin} related events. + * @author Andreas Kirschbaum + */ +public interface PluginListener extends EventListener { + + /** + * Called whenever a parameter has been added, removed, or replaced. + */ + void parametersChanged(); + +} Property changes on: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/PluginListener.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...> - 2014-02-22 11:12:10
|
Revision: 9623 http://sourceforge.net/p/gridarta/code/9623 Author: akirschbaum Date: 2014-02-22 11:12:07 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Extract code into functions. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditorRow.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditorRow.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditorRow.java 2014-02-22 10:49:04 UTC (rev 9622) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditorRow.java 2014-02-22 11:12:07 UTC (rev 9623) @@ -71,19 +71,19 @@ * The editor component for editing the parameter's name. */ @NotNull - private final JTextComponent parameterNameEditor; + private final Component parameterNameEditor; /** * The editor component for editing the parameter's description. */ @NotNull - private final JTextComponent parameterDescriptionEditor; + private final Component parameterDescriptionEditor; /** * The editor component for editing the parameter's type. */ @NotNull - private final JComboBox parameterTypeEditor; + private final Component parameterTypeEditor; /** * The {@link PluginParameterView} instance for the parameter being edited. @@ -107,9 +107,22 @@ this.mouseListener = mouseListener; this.focusListener = focusListener; - parameterNameEditor = new JTextField(parameter.getName()); - parameterNameEditor.getDocument().addDocumentListener(new DocumentListener() { + parameterNameEditor = createNameEditor(parameter); + parameterDescriptionEditor = createDescriptionEditor(parameter); + parameterTypeEditor = createTypeEditor(plugin, parameter); + pluginParameterView = createView(parameter, pluginParameterViewFactory, parent); + } + /** + * Creates an editor component for a plugin parameter's name. + * @param parameter the parameter + * @return the editor component + */ + @NotNull + private <G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> Component createNameEditor(final PluginParameter<G, A, R, ?> parameter) { + final JTextComponent textField = new JTextField(parameter.getName()); + textField.getDocument().addDocumentListener(new DocumentListener() { + @Override public void insertUpdate(@NotNull final DocumentEvent e) { change(); @@ -129,14 +142,23 @@ * Updates the {@code parameter}'s name from the text input field. */ private void change() { - parameter.setName(parameterNameEditor.getText()); + parameter.setName(textField.getText()); } }); - attachListeners(parameterNameEditor); + attachListeners(textField); + return textField; + } - parameterDescriptionEditor = new JTextField(parameter.getDescription()); - parameterDescriptionEditor.getDocument().addDocumentListener(new DocumentListener() { + /** + * Creates an editor component for a plugin parameter's description. + * @param parameter the parameter + * @return the editor component + */ + @NotNull + private <G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> Component createDescriptionEditor(final PluginParameter<G, A, R, ?> parameter) { + final JTextComponent textField = new JTextField(parameter.getDescription()); + textField.getDocument().addDocumentListener(new DocumentListener() { @Override public void changedUpdate(@NotNull final DocumentEvent e) { @@ -157,14 +179,24 @@ * Updates the {@code parameter}'s description from the text input field. */ private void change() { - parameter.setDescription(parameterDescriptionEditor.getText()); + parameter.setDescription(textField.getText()); } }); - attachListeners(parameterDescriptionEditor); + attachListeners(textField); + return textField; + } - parameterTypeEditor = new JComboBox(PluginParameterFactory.getTypes()); - parameterTypeEditor.setSelectedItem(parameter.getParameterType()); - parameterTypeEditor.addItemListener(new ItemListener() { + /** + * Creates an editor component for a plugin parameter's type. + * @param plugin the plugin {@code parameter} is part of + * @param parameter the parameter + * @return the editor component + */ + @NotNull + private <G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> Component createTypeEditor(final Plugin<G, A, R> plugin, final PluginParameter<G, A, R, ?> parameter) { + final JComboBox comboBox = new JComboBox(PluginParameterFactory.getTypes()); + comboBox.setSelectedItem(parameter.getParameterType()); + comboBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(@NotNull final ItemEvent e) { @@ -185,11 +217,24 @@ } }); - attachListeners(parameterTypeEditor); + attachListeners(comboBox); + return comboBox; + } - pluginParameterView = pluginParameterViewFactory.newPluginParameterView(parent, parameter); + /** + * Creates a {@link PluginParameterView} instance for a parameter. + * @param parameter the parameter + * @param pluginParameterViewFactory the plugin parameter view factory to + * use + * @param parent the parent component for config dialogs + * @return the plugin parameter view instance + */ + @NotNull + private <G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> PluginParameterView createView(final PluginParameter<G, A, R, ?> parameter, final PluginParameterViewFactory<G, A, R> pluginParameterViewFactory, final Component parent) { + final PluginParameterView pluginParameterView = pluginParameterViewFactory.newPluginParameterView(parent, parameter); attachListeners(pluginParameterView.getConfigComponent()); attachListeners(pluginParameterView.getValueComponent()); + return pluginParameterView; } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 10:49:09
|
Revision: 9622 http://sourceforge.net/p/gridarta/code/9622 Author: akirschbaum Date: 2014-02-22 10:49:04 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Reorganize 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 2014-02-22 10:38:50 UTC (rev 9621) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2014-02-22 10:49:04 UTC (rev 9622) @@ -317,31 +317,41 @@ parameterTable.add(ActionBuilderUtils.newLabel(ACTION_BUILDER, "pluginEditorTitleDefault.text"), gbc); int i = 0; for (final PluginParameter<G, A, R, ?> parameter : plugin) { + final PluginEditorRow row = getOrCreateRow(parameter); gbc.gridy = i + 1; - putRow(gbc, parameter); + gbc.gridx = 0; + parameterTable.add(row.getParameterNameEditor(), gbc); + gbc.gridx = 1; + gbc.weightx = 0.5; + parameterTable.add(row.getParameterDescriptionEditor(), gbc); + gbc.gridx = 2; + gbc.weightx = 0.1; + parameterTable.add(row.getParameterTypeEditor(), gbc); + gbc.gridx = 3; + parameterTable.add(row.getConfigComponent(), gbc); + gbc.gridx = 4; + parameterTable.add(row.getValueComponent(), gbc); i++; } panel.repaint(); } - private void putRow(@NotNull final GridBagConstraints gbc, @NotNull final PluginParameter<G, A, R, ?> parameter) { - PluginEditorRow row = rows.get(parameter); - if (row == null) { - row = new PluginEditorRow(plugin, parameter, pluginParameterViewFactory, cellMouseListener, cellFocusListener, panel); - rows.put(parameter, row); + /** + * Returns the {@link PluginEditorRow} instance for a {@link + * PluginParameter}. Returned instances are cached. + * @param parameter the plugin parameter + * @return the plugin editor row instance + */ + @NotNull + private PluginEditorRow getOrCreateRow(@NotNull final PluginParameter<G, A, R, ?> parameter) { + final PluginEditorRow existingRow = rows.get(parameter); + if (existingRow != null) { + return existingRow; } - gbc.gridx = 0; - parameterTable.add(row.getParameterNameEditor(), gbc); - gbc.gridx = 1; - gbc.weightx = 0.5; - parameterTable.add(row.getParameterDescriptionEditor(), gbc); - gbc.gridx = 2; - gbc.weightx = 0.1; - parameterTable.add(row.getParameterTypeEditor(), gbc); - gbc.gridx = 3; - parameterTable.add(row.getConfigComponent(), gbc); - gbc.gridx = 4; - parameterTable.add(row.getValueComponent(), gbc); + + final PluginEditorRow row = new PluginEditorRow(plugin, parameter, pluginParameterViewFactory, cellMouseListener, cellFocusListener, panel); + rows.put(parameter, row); + return row; } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 10:38:54
|
Revision: 9621 http://sourceforge.net/p/gridarta/code/9621 Author: akirschbaum Date: 2014-02-22 10:38:50 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Extract PluginEditorRow from PluginEditor. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java Added Paths: ----------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditorRow.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 2014-02-22 10:24:59 UTC (rev 9620) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2014-02-22 10:38:50 UTC (rev 9621) @@ -29,28 +29,22 @@ import java.awt.Insets; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.IdentityHashMap; import java.util.Map; import javax.swing.JButton; import javax.swing.JCheckBox; -import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; -import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -import javax.swing.text.JTextComponent; -import net.sf.gridarta.gui.dialog.plugin.parameter.PluginParameterView; import net.sf.gridarta.gui.dialog.plugin.parameter.PluginParameterViewFactory; import net.sf.gridarta.model.archetype.Archetype; import net.sf.gridarta.model.gameobject.GameObject; @@ -59,14 +53,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.plugin.parameter.PluginParameterFactory; 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; import org.fife.ui.rsyntaxtextarea.SyntaxConstants; import org.fife.ui.rtextarea.RTextScrollPane; @@ -75,12 +66,6 @@ public class PluginEditor<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> { /** - * The Logger for printing log messages. - */ - @NotNull - private static final Category LOG = Logger.getLogger(PluginEditor.class); - - /** * Action Builder. */ @NotNull @@ -108,17 +93,8 @@ private final Plugin<G, A, R> plugin; @NotNull - private final Map<PluginParameter<G, A, R, ?>, Component> parameterNameEditors = new IdentityHashMap<PluginParameter<G, A, R, ?>, Component>(); + private final Map<PluginParameter<G, A, R, ?>, PluginEditorRow> rows = new IdentityHashMap<PluginParameter<G, A, R, ?>, PluginEditorRow>(); - @NotNull - private final Map<PluginParameter<G, A, R, ?>, Component> parameterDescriptionEditors = new IdentityHashMap<PluginParameter<G, A, R, ?>, Component>(); - - @NotNull - private final Map<PluginParameter<G, A, R, ?>, Component> parameterTypeEditors = new IdentityHashMap<PluginParameter<G, A, R, ?>, Component>(); - - @NotNull - private final Map<PluginParameter<G, A, R, ?>, PluginParameterView> parameterViews = new IdentityHashMap<PluginParameter<G, A, R, ?>, PluginParameterView>(); - private int selectedRow = -1; @NotNull @@ -348,150 +324,24 @@ panel.repaint(); } - private void newTableComponent(@NotNull final Component c) { - c.addFocusListener(cellFocusListener); - c.addMouseListener(cellMouseListener); - } - - @NotNull - private Component getParameterNameEditor(@NotNull final PluginParameter<G, A, R, ?> parameter) { - final Component existingParameterNameEditor = parameterNameEditors.get(parameter); - if (existingParameterNameEditor != null) { - return existingParameterNameEditor; + private void putRow(@NotNull final GridBagConstraints gbc, @NotNull final PluginParameter<G, A, R, ?> parameter) { + PluginEditorRow row = rows.get(parameter); + if (row == null) { + row = new PluginEditorRow(plugin, parameter, pluginParameterViewFactory, cellMouseListener, cellFocusListener, panel); + rows.put(parameter, row); } - - final JTextComponent newParameterNameEditor = new JTextField(parameter.getName()); - newParameterNameEditor.getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void insertUpdate(@NotNull final DocumentEvent e) { - change(); - } - - @Override - public void removeUpdate(@NotNull final DocumentEvent e) { - change(); - } - - @Override - public void changedUpdate(@NotNull final DocumentEvent e) { - change(); - } - - /** - * Updates the {@code parameter}'s name from the text input field. - */ - private void change() { - parameter.setName(newParameterNameEditor.getText()); - } - - }); - parameterNameEditors.put(parameter, newParameterNameEditor); - newTableComponent(newParameterNameEditor); - return newParameterNameEditor; - } - - @NotNull - private Component getParameterDescriptionEditor(@NotNull final PluginParameter<G, A, R, ?> parameter) { - final Component existingParameterDescriptionEditor = parameterDescriptionEditors.get(parameter); - if (existingParameterDescriptionEditor != null) { - return existingParameterDescriptionEditor; - } - - final JTextComponent newParameterDescriptionEditor = new JTextField(parameter.getDescription()); - newParameterDescriptionEditor.getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void changedUpdate(@NotNull final DocumentEvent e) { - change(); - } - - @Override - public void insertUpdate(@NotNull final DocumentEvent e) { - change(); - } - - @Override - public void removeUpdate(@NotNull final DocumentEvent e) { - change(); - } - - /** - * Updates the {@code parameter}'s description from the text input field. - */ - private void change() { - parameter.setDescription(newParameterDescriptionEditor.getText()); - } - }); - newTableComponent(newParameterDescriptionEditor); - parameterDescriptionEditors.put(parameter, newParameterDescriptionEditor); - return newParameterDescriptionEditor; - } - - @NotNull - private Component getParameterTypeEditor(@NotNull final PluginParameter<G, A, R, ?> parameter) { - final Component existingParameterTypeEditor = parameterTypeEditors.get(parameter); - if (existingParameterTypeEditor != null) { - return existingParameterTypeEditor; - } - - final JComboBox newParameterTypeEditor = new JComboBox(PluginParameterFactory.getTypes()); - newParameterTypeEditor.setSelectedItem(parameter.getParameterType()); - newParameterTypeEditor.addItemListener(new ItemListener() { - - @Override - public void itemStateChanged(@NotNull final ItemEvent e) { - if (e.getStateChange() != ItemEvent.SELECTED) { - return; - } - - final String newParameterType = (String) e.getItem(); - if (parameter.getParameterType().equals(newParameterType)) { - return; - } - - try { - plugin.convertType(parameter, newParameterType); - } catch (final NoSuchParameterException ex) { - LOG.warn("Cannot create parameter for " + ex.getMessage()); - } - } - - }); - parameterTypeEditors.put(parameter, newParameterTypeEditor); - newTableComponent(newParameterTypeEditor); - return newParameterTypeEditor; - } - - @NotNull - private PluginParameterView getParameterView(@NotNull final PluginParameter<G, A, R, ?> parameter) { - final PluginParameterView existingPluginParameterView = parameterViews.get(parameter); - if (existingPluginParameterView != null) { - return existingPluginParameterView; - } - - final PluginParameterView newPluginParameterView = pluginParameterViewFactory.newPluginParameterView(parameterTable, parameter); - - newTableComponent(newPluginParameterView.getConfigComponent()); - newTableComponent(newPluginParameterView.getValueComponent()); - - parameterViews.put(parameter, newPluginParameterView); - return newPluginParameterView; - } - - private void putRow(@NotNull final GridBagConstraints gbc, @NotNull final PluginParameter<G, A, R, ?> parameter) { gbc.gridx = 0; - parameterTable.add(getParameterNameEditor(parameter), gbc); + parameterTable.add(row.getParameterNameEditor(), gbc); gbc.gridx = 1; gbc.weightx = 0.5; - parameterTable.add(getParameterDescriptionEditor(parameter), gbc); + parameterTable.add(row.getParameterDescriptionEditor(), gbc); gbc.gridx = 2; gbc.weightx = 0.1; - parameterTable.add(getParameterTypeEditor(parameter), gbc); + parameterTable.add(row.getParameterTypeEditor(), gbc); gbc.gridx = 3; - parameterTable.add(getParameterView(parameter).getConfigComponent(), gbc); + parameterTable.add(row.getConfigComponent(), gbc); gbc.gridx = 4; - parameterTable.add(getParameterView(parameter).getValueComponent(), gbc); + parameterTable.add(row.getValueComponent(), gbc); } /** Added: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditorRow.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditorRow.java (rev 0) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditorRow.java 2014-02-22 10:38:50 UTC (rev 9621) @@ -0,0 +1,251 @@ +/* + * 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.gui.dialog.plugin; + +import java.awt.Component; +import java.awt.event.FocusListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.awt.event.MouseListener; +import javax.swing.JComboBox; +import javax.swing.JTextField; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.text.JTextComponent; +import net.sf.gridarta.gui.dialog.plugin.parameter.PluginParameterView; +import net.sf.gridarta.gui.dialog.plugin.parameter.PluginParameterViewFactory; +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.Plugin; +import net.sf.gridarta.plugin.parameter.NoSuchParameterException; +import net.sf.gridarta.plugin.parameter.PluginParameter; +import net.sf.gridarta.plugin.parameter.PluginParameterFactory; +import org.apache.log4j.Category; +import org.apache.log4j.Logger; +import org.jetbrains.annotations.NotNull; + +/** + * A set of components for editing a {@link PluginParameter} and its + * configuration. + * @author Andreas Kirschbaum + */ +public class PluginEditorRow { + + /** + * The Logger for printing log messages. + */ + @NotNull + private static final Category LOG = Logger.getLogger(PluginEditorRow.class); + + /** + * The {@link MouseListener} that is attached to all editor components. + */ + @NotNull + private final MouseListener mouseListener; + + /** + * The {@link FocusListener} that is attached to all editor components. + */ + @NotNull + private final FocusListener focusListener; + + /** + * The editor component for editing the parameter's name. + */ + @NotNull + private final JTextComponent parameterNameEditor; + + /** + * The editor component for editing the parameter's description. + */ + @NotNull + private final JTextComponent parameterDescriptionEditor; + + /** + * The editor component for editing the parameter's type. + */ + @NotNull + private final JComboBox parameterTypeEditor; + + /** + * The {@link PluginParameterView} instance for the parameter being edited. + */ + @NotNull + private final PluginParameterView pluginParameterView; + + /** + * Creates a new instance. + * @param plugin the plugin the plugin parameter is part of + * @param parameter the parameter to edit + * @param pluginParameterViewFactory the plugin parameter view factory for + * creating plugin parameter view instances + * @param mouseListener the mouse listener that is attached to all editor + * components + * @param focusListener the focus listener that is attached to all editor + * components + * @param parent the parent component for config dialogs + */ + public <G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> PluginEditorRow(@NotNull final Plugin<G, A, R> plugin, @NotNull final PluginParameter<G, A, R, ?> parameter, @NotNull final PluginParameterViewFactory<G, A, R> pluginParameterViewFactory, @NotNull final MouseListener mouseListener, @NotNull final FocusListener focusListener, @NotNull final Component parent) { + this.mouseListener = mouseListener; + this.focusListener = focusListener; + + parameterNameEditor = new JTextField(parameter.getName()); + parameterNameEditor.getDocument().addDocumentListener(new DocumentListener() { + + @Override + public void insertUpdate(@NotNull final DocumentEvent e) { + change(); + } + + @Override + public void removeUpdate(@NotNull final DocumentEvent e) { + change(); + } + + @Override + public void changedUpdate(@NotNull final DocumentEvent e) { + change(); + } + + /** + * Updates the {@code parameter}'s name from the text input field. + */ + private void change() { + parameter.setName(parameterNameEditor.getText()); + } + + }); + attachListeners(parameterNameEditor); + + parameterDescriptionEditor = new JTextField(parameter.getDescription()); + parameterDescriptionEditor.getDocument().addDocumentListener(new DocumentListener() { + + @Override + public void changedUpdate(@NotNull final DocumentEvent e) { + change(); + } + + @Override + public void insertUpdate(@NotNull final DocumentEvent e) { + change(); + } + + @Override + public void removeUpdate(@NotNull final DocumentEvent e) { + change(); + } + + /** + * Updates the {@code parameter}'s description from the text input field. + */ + private void change() { + parameter.setDescription(parameterDescriptionEditor.getText()); + } + }); + attachListeners(parameterDescriptionEditor); + + parameterTypeEditor = new JComboBox(PluginParameterFactory.getTypes()); + parameterTypeEditor.setSelectedItem(parameter.getParameterType()); + parameterTypeEditor.addItemListener(new ItemListener() { + + @Override + public void itemStateChanged(@NotNull final ItemEvent e) { + if (e.getStateChange() != ItemEvent.SELECTED) { + return; + } + + final String newParameterType = (String) e.getItem(); + if (parameter.getParameterType().equals(newParameterType)) { + return; + } + + try { + plugin.convertType(parameter, newParameterType); + } catch (final NoSuchParameterException ex) { + LOG.warn("Cannot create parameter for " + ex.getMessage()); + } + } + + }); + attachListeners(parameterTypeEditor); + + pluginParameterView = pluginParameterViewFactory.newPluginParameterView(parent, parameter); + attachListeners(pluginParameterView.getConfigComponent()); + attachListeners(pluginParameterView.getValueComponent()); + } + + /** + * Returns the editor component for editing the parameter's name. + * @return the editor component + */ + @NotNull + public Component getParameterNameEditor() { + return parameterNameEditor; + } + + /** + * Returns the editor component for editing the parameter's description. + * @return the editor component + */ + @NotNull + public Component getParameterDescriptionEditor() { + return parameterDescriptionEditor; + } + + /** + * Returns the editor component for editing the parameter's type. + * @return the editor component + */ + @NotNull + public Component getParameterTypeEditor() { + return parameterTypeEditor; + } + + /** + * Returns the editor component for editing the parameter's configuration + * parameters. + * @return the editor component + */ + @NotNull + public Component getConfigComponent() { + return pluginParameterView.getConfigComponent(); + } + + /** + * Returns the editor component for editing the parameter's value. + * @return the editor component + */ + @NotNull + public Component getValueComponent() { + return pluginParameterView.getValueComponent(); + } + + /** + * Attaches {@link #focusListener} and {@link #mouseListener} to a {@link + * Component}. + * @param component the component + */ + private void attachListeners(@NotNull final Component component) { + component.addFocusListener(focusListener); + component.addMouseListener(mouseListener); + } + +} Property changes on: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditorRow.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...> - 2014-02-22 10:25:04
|
Revision: 9620 http://sourceforge.net/p/gridarta/code/9620 Author: akirschbaum Date: 2014-02-22 10:24:59 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Weaken types. Modified Paths: -------------- 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/PluginParameterViewFactory.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/utils/JFileField.java 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 2014-02-22 10:13:34 UTC (rev 9619) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapPathParameterView.java 2014-02-22 10:24:59 UTC (rev 9620) @@ -19,6 +19,7 @@ package net.sf.gridarta.gui.dialog.plugin.parameter; +import java.awt.Component; import java.io.File; import javax.swing.JComponent; import javax.swing.JFileChooser; @@ -58,7 +59,7 @@ * @param parent the parent component for the file chooser * @param parameter the parameter to affect */ - public MapPathParameterView(@NotNull final JComponent parent, @NotNull final AbstractPathParameter<G, A, R> parameter) { + public MapPathParameterView(@NotNull final Component parent, @NotNull final AbstractPathParameter<G, A, R> parameter) { final File value = parameter.getValue(); this.value = new JFileField(parent, null, parameter.getBaseDir(), value == null ? new File("") : value, JFileChooser.FILES_AND_DIRECTORIES); this.value.addDocumentListener(new DocumentListener() { 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 2014-02-22 10:13:34 UTC (rev 9619) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java 2014-02-22 10:24:59 UTC (rev 9620) @@ -19,7 +19,7 @@ package net.sf.gridarta.gui.dialog.plugin.parameter; -import javax.swing.JComponent; +import java.awt.Component; import net.sf.gridarta.gui.panel.gameobjectattributes.GameObjectAttributesModel; import net.sf.gridarta.gui.panel.objectchooser.ObjectChooser; import net.sf.gridarta.model.archetype.Archetype; @@ -80,7 +80,7 @@ * @param parent the parent component for showing dialogs */ @NotNull - public PluginParameterView newPluginParameterView(@NotNull final JComponent parent, @NotNull final PluginParameter<G, A, R, ?> parameter) { + public PluginParameterView newPluginParameterView(@NotNull final Component parent, @NotNull final PluginParameter<G, A, R, ?> parameter) { final PluginParameterVisitor<G, A, R, PluginParameterView> visitor = new PluginParameterVisitor<G, A, R, PluginParameterView>() { @NotNull Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/utils/JFileField.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/utils/JFileField.java 2014-02-22 10:13:34 UTC (rev 9619) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/utils/JFileField.java 2014-02-22 10:24:59 UTC (rev 9620) @@ -20,6 +20,7 @@ package net.sf.gridarta.gui.utils; import java.awt.BorderLayout; +import java.awt.Component; import java.awt.Insets; import java.io.File; import javax.swing.AbstractButton; @@ -57,7 +58,7 @@ * The parent component. */ @NotNull - private final JComponent parent; + private final Component parent; /** * The base directory. When non-{@code null}, the contents of {@link @@ -88,7 +89,7 @@ * @param file the currently selected file * @param fileSelectionMode the file selection mode for the file chooser */ - public JFileField(@NotNull final JComponent parent, @Nullable final String key, @Nullable final File baseDir, @NotNull final File file, final int fileSelectionMode) { + public JFileField(@NotNull final Component parent, @Nullable final String key, @Nullable final File baseDir, @NotNull final File file, final int fileSelectionMode) { this.parent = parent; this.baseDir = baseDir; textField = new JTextField(getRelativeFile(file), 20); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 10:13:39
|
Revision: 9619 http://sourceforge.net/p/gridarta/code/9619 Author: akirschbaum Date: 2014-02-22 10:13:34 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Remove PluginModel.getTypes(). Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/PluginModel.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterFactory.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 2014-02-22 09:58:19 UTC (rev 9618) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2014-02-22 10:13:34 UTC (rev 9619) @@ -59,6 +59,7 @@ import net.sf.gridarta.plugin.PluginModel; import net.sf.gridarta.plugin.parameter.NoSuchParameterException; import net.sf.gridarta.plugin.parameter.PluginParameter; +import net.sf.gridarta.plugin.parameter.PluginParameterFactory; import net.sf.gridarta.utils.ActionBuilderUtils; import net.sf.gridarta.utils.ResourceIcons; import net.sf.japi.swing.action.ActionBuilder; @@ -434,7 +435,7 @@ return existingParameterTypeEditor; } - final JComboBox newParameterTypeEditor = new JComboBox(pluginModel.getTypes()); + final JComboBox newParameterTypeEditor = new JComboBox(PluginParameterFactory.getTypes()); newParameterTypeEditor.setSelectedItem(parameter.getParameterType()); newParameterTypeEditor.addItemListener(new ItemListener() { Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/PluginModel.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/PluginModel.java 2014-02-22 09:58:19 UTC (rev 9618) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/PluginModel.java 2014-02-22 10:13:34 UTC (rev 9619) @@ -220,11 +220,6 @@ firePluginRegisteredEvent(plugin); } - @NotNull - public String[] getTypes() { - return pluginParameterFactory.getTypes(); - } - @Nullable public Plugin<G, A, R> newPlugin(@NotNull final String name, @NotNull final String code) { final Plugin<G, A, R> plugin = new Plugin<G, A, R>(name, pluginParameterFactory); 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 2014-02-22 09:58:19 UTC (rev 9618) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/PluginParameterFactory.java 2014-02-22 10:13:34 UTC (rev 9619) @@ -106,8 +106,12 @@ return p; } + /** + * Returns all available plugin parameter type names. + * @return the type names types + */ @NotNull - public String[] getTypes() { + public static String[] getTypes() { return new String[] { StringParameter.PARAMETER_TYPE, IntegerParameter.PARAMETER_TYPE, DoubleParameter.PARAMETER_TYPE, BooleanParameter.PARAMETER_TYPE, ArchetypeParameter.PARAMETER_TYPE, MapParameter.PARAMETER_TYPE, MapPathParameter.PARAMETER_TYPE, }; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 09:58:24
|
Revision: 9618 http://sourceforge.net/p/gridarta/code/9618 Author: akirschbaum Date: 2014-02-22 09:58:19 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Properly set parent components for plugin parameter configuration dialogs. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/BooleanParameterView.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/DoubleParameterView.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/PluginParameterViewFactory.java Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/BooleanParameterView.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/BooleanParameterView.java 2014-02-22 09:41:38 UTC (rev 9617) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/BooleanParameterView.java 2014-02-22 09:58:19 UTC (rev 9618) @@ -19,6 +19,7 @@ package net.sf.gridarta.gui.dialog.plugin.parameter; +import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.AbstractButton; @@ -51,9 +52,10 @@ /** * Creates a new instance. + * @param parent the parent component for config dialogs * @param parameter the boolean parameter that is shown */ - public BooleanParameterView(@NotNull final BooleanParameter<G, A, R> parameter) { + public BooleanParameterView(@NotNull final Component parent, @NotNull final BooleanParameter<G, A, R> parameter) { value.addActionListener(new ActionListener() { @Override @@ -74,8 +76,8 @@ @Override public void actionPerformed(@NotNull final ActionEvent e) { - final String yes = JOptionPane.showInputDialog("Checked text", parameter.getTrueText()); - final String no = JOptionPane.showInputDialog("Unchecked text", parameter.getFalseText()); + final String yes = JOptionPane.showInputDialog(parent, "Checked text", parameter.getTrueText()); + final String no = JOptionPane.showInputDialog(parent, "Unchecked text", parameter.getFalseText()); parameter.setTrueText(yes); parameter.setFalseText(no); } Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/DoubleParameterView.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/DoubleParameterView.java 2014-02-22 09:41:38 UTC (rev 9617) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/DoubleParameterView.java 2014-02-22 09:58:19 UTC (rev 9618) @@ -19,6 +19,7 @@ package net.sf.gridarta.gui.dialog.plugin.parameter; +import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.AbstractButton; @@ -60,9 +61,10 @@ /** * Creates a new instance. + * @param parent the parent component for config dialogs * @param parameter the double parameter that is shown */ - public DoubleParameterView(@NotNull final DoubleParameter<G, A, R> parameter) { + public DoubleParameterView(@NotNull final Component parent, @NotNull final DoubleParameter<G, A, R> parameter) { this.parameter = parameter; value = new JSpinner(new SpinnerNumberModel(0.0, parameter.getMin(), parameter.getMax(), (parameter.getMax() - parameter.getMin()) / 100.0)); try { @@ -81,8 +83,8 @@ @Override public void actionPerformed(final ActionEvent e) { - final String min = JOptionPane.showInputDialog("Minimum value:", parameter.getMin()); - final String max = JOptionPane.showInputDialog("Maximum value:", parameter.getMax()); + final String min = JOptionPane.showInputDialog(parent, "Minimum value:", parameter.getMin()); + final String max = JOptionPane.showInputDialog(parent, "Maximum value:", parameter.getMax()); try { parameter.setMax(Double.parseDouble(max)); parameter.setMin(Double.parseDouble(min)); 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 2014-02-22 09:41:38 UTC (rev 9617) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/IntegerParameterView.java 2014-02-22 09:58:19 UTC (rev 9618) @@ -19,6 +19,7 @@ package net.sf.gridarta.gui.dialog.plugin.parameter; +import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.AbstractButton; @@ -60,9 +61,10 @@ /** * Creates a new instance. + * @param parent the parent dialog for config dialogs * @param parameter the integer parameter that is shown */ - public IntegerParameterView(@NotNull final IntegerParameter<G, A, R> parameter) { + public IntegerParameterView(@NotNull final Component parent, @NotNull final IntegerParameter<G, A, R> parameter) { this.parameter = parameter; value = new JSpinner(new SpinnerNumberModel((int) parameter.getValue(), parameter.getMin(), parameter.getMax(), 1)); value.addChangeListener(new ChangeListener() { @@ -77,8 +79,8 @@ @Override public void actionPerformed(final ActionEvent e) { - final String min = JOptionPane.showInputDialog("Minimum value:", parameter.getMin()); - final String max = JOptionPane.showInputDialog("Maximum value:", parameter.getMax()); + final String min = JOptionPane.showInputDialog(parent, "Minimum value:", parameter.getMin()); + final String max = JOptionPane.showInputDialog(parent, "Maximum value:", parameter.getMax()); try { parameter.setMax(Integer.parseInt(max)); parameter.setMin(Integer.parseInt(min)); 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 2014-02-22 09:41:38 UTC (rev 9617) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java 2014-02-22 09:58:19 UTC (rev 9618) @@ -92,19 +92,19 @@ @NotNull @Override public PluginParameterView visit(@NotNull final BooleanParameter<G, A, R> parameter) { - return new BooleanParameterView<G, A, R>(parameter); + return new BooleanParameterView<G, A, R>(parent, parameter); } @NotNull @Override public PluginParameterView visit(@NotNull final DoubleParameter<G, A, R> parameter) { - return new DoubleParameterView<G, A, R>(parameter); + return new DoubleParameterView<G, A, R>(parent, parameter); } @NotNull @Override public PluginParameterView visit(@NotNull final IntegerParameter<G, A, R> parameter) { - return new IntegerParameterView<G, A, R>(parameter); + return new IntegerParameterView<G, A, R>(parent, parameter); } @NotNull This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 09:41:42
|
Revision: 9617 http://sourceforge.net/p/gridarta/code/9617 Author: akirschbaum Date: 2014-02-22 09:41:38 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Inline field. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.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 2014-02-22 09:26:52 UTC (rev 9616) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java 2014-02-22 09:41:38 UTC (rev 9617) @@ -38,7 +38,6 @@ import net.sf.gridarta.plugin.parameter.PluginParameterVisitor; import net.sf.gridarta.plugin.parameter.StringParameter; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; /** * Factory for creating {@link PluginParameterView} instances. @@ -65,60 +64,6 @@ private final FaceObjectProviders faceObjectProviders; /** - * The parent component for showing dialogs. - */ - @Nullable - private JComponent parent; - - @NotNull - private final PluginParameterVisitor<G, A, R, PluginParameterView> visitor = new PluginParameterVisitor<G, A, R, PluginParameterView>() { - - @NotNull - @Override - public PluginParameterView visit(@NotNull final ArchetypeParameter<G, A, R> parameter) { - return new ArchParameterView<G, A, R>(parameter, gameObjectAttributesModel, archetypeSet, objectChooser, faceObjectProviders); - } - - @NotNull - @Override - public PluginParameterView visit(@NotNull final BooleanParameter<G, A, R> parameter) { - return new BooleanParameterView<G, A, R>(parameter); - } - - @NotNull - @Override - public PluginParameterView visit(@NotNull final DoubleParameter<G, A, R> parameter) { - return new DoubleParameterView<G, A, R>(parameter); - } - - @NotNull - @Override - public PluginParameterView visit(@NotNull final IntegerParameter<G, A, R> parameter) { - return new IntegerParameterView<G, A, R>(parameter); - } - - @NotNull - @Override - public PluginParameterView visit(@NotNull final MapParameter<G, A, R> parameter) { - return new MapParameterView<G, A, R>(parameter, mapManager); - } - - @NotNull - @Override - public PluginParameterView visit(@NotNull final MapPathParameter<G, A, R> parameter) { - assert parent != null; - return new MapPathParameterView<G, A, R>(parent, parameter); - } - - @NotNull - @Override - public PluginParameterView visit(@NotNull final StringParameter<G, A, R> parameter) { - return new StringParameterView<G, A, R>(parameter); - } - - }; - - /** * Creates a new instance. * @param faceObjectProviders the face object providers for looking up * faces @@ -136,12 +81,52 @@ */ @NotNull public PluginParameterView newPluginParameterView(@NotNull final JComponent parent, @NotNull final PluginParameter<G, A, R, ?> parameter) { - this.parent = parent; - try { - return parameter.visit(visitor); - } finally { - this.parent = null; - } + final PluginParameterVisitor<G, A, R, PluginParameterView> visitor = new PluginParameterVisitor<G, A, R, PluginParameterView>() { + + @NotNull + @Override + public PluginParameterView visit(@NotNull final ArchetypeParameter<G, A, R> parameter) { + return new ArchParameterView<G, A, R>(parameter, gameObjectAttributesModel, archetypeSet, objectChooser, faceObjectProviders); + } + + @NotNull + @Override + public PluginParameterView visit(@NotNull final BooleanParameter<G, A, R> parameter) { + return new BooleanParameterView<G, A, R>(parameter); + } + + @NotNull + @Override + public PluginParameterView visit(@NotNull final DoubleParameter<G, A, R> parameter) { + return new DoubleParameterView<G, A, R>(parameter); + } + + @NotNull + @Override + public PluginParameterView visit(@NotNull final IntegerParameter<G, A, R> parameter) { + return new IntegerParameterView<G, A, R>(parameter); + } + + @NotNull + @Override + public PluginParameterView visit(@NotNull final MapParameter<G, A, R> parameter) { + return new MapParameterView<G, A, R>(parameter, mapManager); + } + + @NotNull + @Override + public PluginParameterView visit(@NotNull final MapPathParameter<G, A, R> parameter) { + return new MapPathParameterView<G, A, R>(parent, parameter); + } + + @NotNull + @Override + public PluginParameterView visit(@NotNull final StringParameter<G, A, R> parameter) { + return new StringParameterView<G, A, R>(parameter); + } + + }; + return parameter.visit(visitor); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 09:26:58
|
Revision: 9616 http://sourceforge.net/p/gridarta/code/9616 Author: akirschbaum Date: 2014-02-22 09:26:52 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Rename function name, 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/PluginParameterViewFactory.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 2014-02-22 09:15:47 UTC (rev 9615) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2014-02-22 09:26:52 UTC (rev 9616) @@ -469,7 +469,7 @@ return existingPluginParameterView; } - final PluginParameterView newPluginParameterView = pluginParameterViewFactory.getView(parameterTable, parameter); + final PluginParameterView newPluginParameterView = pluginParameterViewFactory.newPluginParameterView(parameterTable, parameter); newTableComponent(newPluginParameterView.getConfigComponent()); newTableComponent(newPluginParameterView.getValueComponent()); 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 2014-02-22 09:15:47 UTC (rev 9615) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginView.java 2014-02-22 09:26:52 UTC (rev 9616) @@ -225,7 +225,7 @@ int i = 0; for (final PluginParameter<G, A, R, ?> parameter : plugin) { final Component name = new JLabel(parameter.getName()); - final PluginParameterView view = pluginParameterViewFactory.getView(panel, parameter); + final PluginParameterView view = pluginParameterViewFactory.newPluginParameterView(panel, parameter); final JComponent val = view.getValueComponent(); val.setToolTipText(parameter.getDescription()); final GridBagConstraints gn = new GridBagConstraints(0, i, 1, 1, 0.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 5, 5); 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 2014-02-22 09:15:47 UTC (rev 9615) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java 2014-02-22 09:26:52 UTC (rev 9616) @@ -135,7 +135,7 @@ * @param parent the parent component for showing dialogs */ @NotNull - public PluginParameterView getView(@NotNull final JComponent parent, @NotNull final PluginParameter<G, A, R, ?> parameter) { + public PluginParameterView newPluginParameterView(@NotNull final JComponent parent, @NotNull final PluginParameter<G, A, R, ?> parameter) { this.parent = parent; try { return parameter.visit(visitor); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 09:15:53
|
Revision: 9615 http://sourceforge.net/p/gridarta/code/9615 Author: akirschbaum Date: 2014-02-22 09:15:47 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Remove type parameters from PluginParameterView. 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/BooleanParameterView.java trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/DoubleParameterView.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/PluginParameterView.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 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 2014-02-22 08:59:46 UTC (rev 9614) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2014-02-22 09:15:47 UTC (rev 9615) @@ -116,7 +116,7 @@ private final Map<PluginParameter<G, A, R, ?>, Component> parameterTypeEditors = new IdentityHashMap<PluginParameter<G, A, R, ?>, Component>(); @NotNull - private final Map<PluginParameter<G, A, R, ?>, PluginParameterView<G, A, R>> parameterViews = new IdentityHashMap<PluginParameter<G, A, R, ?>, PluginParameterView<G, A, R>>(); + private final Map<PluginParameter<G, A, R, ?>, PluginParameterView> parameterViews = new IdentityHashMap<PluginParameter<G, A, R, ?>, PluginParameterView>(); private int selectedRow = -1; @@ -463,13 +463,13 @@ } @NotNull - private PluginParameterView<G, A, R> getParameterView(@NotNull final PluginParameter<G, A, R, ?> parameter) { - final PluginParameterView<G, A, R> existingPluginParameterView = parameterViews.get(parameter); + private PluginParameterView getParameterView(@NotNull final PluginParameter<G, A, R, ?> parameter) { + final PluginParameterView existingPluginParameterView = parameterViews.get(parameter); if (existingPluginParameterView != null) { return existingPluginParameterView; } - final PluginParameterView<G, A, R> newPluginParameterView = pluginParameterViewFactory.getView(parameterTable, parameter); + final PluginParameterView newPluginParameterView = pluginParameterViewFactory.getView(parameterTable, parameter); newTableComponent(newPluginParameterView.getConfigComponent()); newTableComponent(newPluginParameterView.getValueComponent()); 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 2014-02-22 08:59:46 UTC (rev 9614) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginView.java 2014-02-22 09:15:47 UTC (rev 9615) @@ -225,7 +225,7 @@ int i = 0; for (final PluginParameter<G, A, R, ?> parameter : plugin) { final Component name = new JLabel(parameter.getName()); - final PluginParameterView<G, A, R> view = pluginParameterViewFactory.getView(panel, parameter); + final PluginParameterView view = pluginParameterViewFactory.getView(panel, parameter); final JComponent val = view.getValueComponent(); val.setToolTipText(parameter.getDescription()); final GridBagConstraints gn = new GridBagConstraints(0, i, 1, 1, 0.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 5, 5); 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 2014-02-22 08:59:46 UTC (rev 9614) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ArchParameterView.java 2014-02-22 09:15:47 UTC (rev 9615) @@ -38,7 +38,7 @@ /** * A {@link PluginParameterView} for an {@link ArchetypeParameter}. */ -public class ArchParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView<G, A, R> { +public class ArchParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView { /** * The component for editing the parameter's value. Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/BooleanParameterView.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/BooleanParameterView.java 2014-02-22 08:59:46 UTC (rev 9614) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/BooleanParameterView.java 2014-02-22 09:15:47 UTC (rev 9615) @@ -35,7 +35,7 @@ /** * A {@link PluginParameterView} for an {@link BooleanParameter}. */ -public class BooleanParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView<G, A, R> { +public class BooleanParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView { /** * The component for editing the parameter's value. Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/DoubleParameterView.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/DoubleParameterView.java 2014-02-22 08:59:46 UTC (rev 9614) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/DoubleParameterView.java 2014-02-22 09:15:47 UTC (rev 9615) @@ -38,7 +38,7 @@ /** * A {@link PluginParameterView} for a {@link DoubleParameter}. */ -public class DoubleParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView<G, A, R> { +public class DoubleParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView { /** * The {@link DoubleParameter} that is shown. 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 2014-02-22 08:59:46 UTC (rev 9614) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/IntegerParameterView.java 2014-02-22 09:15:47 UTC (rev 9615) @@ -38,7 +38,7 @@ /** * A {@link PluginParameterView} for an {@link IntegerParameter}. */ -public class IntegerParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView<G, A, R> { +public class IntegerParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView { /** * The {@link IntegerParameter} that is shown. 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 2014-02-22 08:59:46 UTC (rev 9614) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapParameterView.java 2014-02-22 09:15:47 UTC (rev 9615) @@ -36,7 +36,7 @@ /** * A {@link PluginParameterView} for a {@link MapParameter}. */ -public class MapParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView<G, A, R> { +public class MapParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView { /** * The component for editing the parameter's value. 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 2014-02-22 08:59:46 UTC (rev 9614) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/MapPathParameterView.java 2014-02-22 09:15:47 UTC (rev 9615) @@ -37,7 +37,7 @@ * 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> { +public class MapPathParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView { /** * The component for editing the parameter's value. Modified: trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterView.java =================================================================== --- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterView.java 2014-02-22 08:59:46 UTC (rev 9614) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterView.java 2014-02-22 09:15:47 UTC (rev 9615) @@ -20,16 +20,13 @@ package net.sf.gridarta.gui.dialog.plugin.parameter; import javax.swing.JComponent; -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 views that display plugin parameters. * @author tchize */ -public interface PluginParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> { +public interface PluginParameterView { /** * Returns a {@link JComponent} for editing the parameter value. In the "run 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 2014-02-22 08:59:46 UTC (rev 9614) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/PluginParameterViewFactory.java 2014-02-22 09:15:47 UTC (rev 9615) @@ -71,48 +71,48 @@ private JComponent parent; @NotNull - private final PluginParameterVisitor<G, A, R, PluginParameterView<G, A, R>> visitor = new PluginParameterVisitor<G, A, R, PluginParameterView<G, A, R>>() { + private final PluginParameterVisitor<G, A, R, PluginParameterView> visitor = new PluginParameterVisitor<G, A, R, PluginParameterView>() { @NotNull @Override - public PluginParameterView<G, A, R> visit(@NotNull final ArchetypeParameter<G, A, R> parameter) { + public PluginParameterView visit(@NotNull final ArchetypeParameter<G, A, R> parameter) { return new ArchParameterView<G, A, R>(parameter, gameObjectAttributesModel, archetypeSet, objectChooser, faceObjectProviders); } @NotNull @Override - public PluginParameterView<G, A, R> visit(@NotNull final BooleanParameter<G, A, R> parameter) { + public PluginParameterView visit(@NotNull final BooleanParameter<G, A, R> parameter) { return new BooleanParameterView<G, A, R>(parameter); } @NotNull @Override - public PluginParameterView<G, A, R> visit(@NotNull final DoubleParameter<G, A, R> parameter) { + public PluginParameterView visit(@NotNull final DoubleParameter<G, A, R> parameter) { return new DoubleParameterView<G, A, R>(parameter); } @NotNull @Override - public PluginParameterView<G, A, R> visit(@NotNull final IntegerParameter<G, A, R> parameter) { + public PluginParameterView visit(@NotNull final IntegerParameter<G, A, R> parameter) { return new IntegerParameterView<G, A, R>(parameter); } @NotNull @Override - public PluginParameterView<G, A, R> visit(@NotNull final MapParameter<G, A, R> parameter) { + public PluginParameterView visit(@NotNull final MapParameter<G, A, R> parameter) { return new MapParameterView<G, A, R>(parameter, mapManager); } @NotNull @Override - public PluginParameterView<G, A, R> visit(@NotNull final MapPathParameter<G, A, R> parameter) { + public PluginParameterView visit(@NotNull final MapPathParameter<G, A, R> parameter) { assert parent != null; return new MapPathParameterView<G, A, R>(parent, parameter); } @NotNull @Override - public PluginParameterView<G, A, R> visit(@NotNull final StringParameter<G, A, R> parameter) { + public PluginParameterView visit(@NotNull final StringParameter<G, A, R> parameter) { return new StringParameterView<G, A, R>(parameter); } @@ -135,7 +135,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 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 2014-02-22 08:59:46 UTC (rev 9614) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/StringParameterView.java 2014-02-22 09:15:47 UTC (rev 9615) @@ -34,7 +34,7 @@ /** * A {@link PluginParameterView} for a {@link StringParameter}. */ -public class StringParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView<G, A, R> { +public class StringParameterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements PluginParameterView { /** * The component for editing the parameter's value. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 08:59:52
|
Revision: 9614 http://sourceforge.net/p/gridarta/code/9614 Author: akirschbaum Date: 2014-02-22 08:59:46 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Do not extend JTextField. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java Removed Paths: ------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ParameterDescriptionEditor.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 2014-02-22 08:53:58 UTC (rev 9613) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2014-02-22 08:59:46 UTC (rev 9614) @@ -50,7 +50,6 @@ import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.JTextComponent; -import net.sf.gridarta.gui.dialog.plugin.parameter.ParameterDescriptionEditor; import net.sf.gridarta.gui.dialog.plugin.parameter.PluginParameterView; import net.sf.gridarta.gui.dialog.plugin.parameter.PluginParameterViewFactory; import net.sf.gridarta.model.archetype.Archetype; @@ -111,7 +110,7 @@ private final Map<PluginParameter<G, A, R, ?>, Component> parameterNameEditors = new IdentityHashMap<PluginParameter<G, A, R, ?>, Component>(); @NotNull - private final Map<PluginParameter<G, A, R, ?>, ParameterDescriptionEditor<G, A, R>> parameterDescriptionEditors = new IdentityHashMap<PluginParameter<G, A, R, ?>, ParameterDescriptionEditor<G, A, R>>(); + private final Map<PluginParameter<G, A, R, ?>, Component> parameterDescriptionEditors = new IdentityHashMap<PluginParameter<G, A, R, ?>, Component>(); @NotNull private final Map<PluginParameter<G, A, R, ?>, Component> parameterTypeEditors = new IdentityHashMap<PluginParameter<G, A, R, ?>, Component>(); @@ -398,7 +397,31 @@ return existingParameterDescriptionEditor; } - final ParameterDescriptionEditor<G, A, R> newParameterDescriptionEditor = new ParameterDescriptionEditor<G, A, R>(parameter); + final JTextComponent newParameterDescriptionEditor = new JTextField(parameter.getDescription()); + newParameterDescriptionEditor.getDocument().addDocumentListener(new DocumentListener() { + + @Override + public void changedUpdate(@NotNull final DocumentEvent e) { + change(); + } + + @Override + public void insertUpdate(@NotNull final DocumentEvent e) { + change(); + } + + @Override + public void removeUpdate(@NotNull final DocumentEvent e) { + change(); + } + + /** + * Updates the {@code parameter}'s description from the text input field. + */ + private void change() { + parameter.setDescription(newParameterDescriptionEditor.getText()); + } + }); newTableComponent(newParameterDescriptionEditor); parameterDescriptionEditors.put(parameter, newParameterDescriptionEditor); return newParameterDescriptionEditor; Deleted: 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 2014-02-22 08:53:58 UTC (rev 9613) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ParameterDescriptionEditor.java 2014-02-22 08:59:46 UTC (rev 9614) @@ -1,60 +0,0 @@ -/* - * 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.gui.dialog.plugin.parameter; - -import javax.swing.JTextField; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; -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.PluginParameter; -import org.jetbrains.annotations.NotNull; - -public class ParameterDescriptionEditor<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends JTextField { - - private static final long serialVersionUID = 1L; - - public ParameterDescriptionEditor(@NotNull final PluginParameter<G, A, R, ?> parameter) { - setText(parameter.getDescription()); - getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void changedUpdate(@NotNull final DocumentEvent e) { - change(); - } - - @Override - public void insertUpdate(@NotNull final DocumentEvent e) { - change(); - } - - @Override - public void removeUpdate(@NotNull final DocumentEvent e) { - change(); - } - - private void change() { - parameter.setDescription(getText()); - } - }); - } - -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 08:54:04
|
Revision: 9613 http://sourceforge.net/p/gridarta/code/9613 Author: akirschbaum Date: 2014-02-22 08:53:58 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Do not extend JTextField. Modified Paths: -------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java Removed Paths: ------------- trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ParameterNameEditor.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 2014-02-22 07:47:03 UTC (rev 9612) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2014-02-22 08:53:58 UTC (rev 9613) @@ -43,13 +43,14 @@ import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; +import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; +import javax.swing.text.JTextComponent; import net.sf.gridarta.gui.dialog.plugin.parameter.ParameterDescriptionEditor; -import net.sf.gridarta.gui.dialog.plugin.parameter.ParameterNameEditor; import net.sf.gridarta.gui.dialog.plugin.parameter.PluginParameterView; import net.sf.gridarta.gui.dialog.plugin.parameter.PluginParameterViewFactory; import net.sf.gridarta.model.archetype.Archetype; @@ -107,7 +108,7 @@ private final Plugin<G, A, R> plugin; @NotNull - private final Map<PluginParameter<G, A, R, ?>, ParameterNameEditor<G, A, R>> parameterNameEditors = new IdentityHashMap<PluginParameter<G, A, R, ?>, ParameterNameEditor<G, A, R>>(); + private final Map<PluginParameter<G, A, R, ?>, Component> parameterNameEditors = new IdentityHashMap<PluginParameter<G, A, R, ?>, Component>(); @NotNull private final Map<PluginParameter<G, A, R, ?>, ParameterDescriptionEditor<G, A, R>> parameterDescriptionEditors = new IdentityHashMap<PluginParameter<G, A, R, ?>, ParameterDescriptionEditor<G, A, R>>(); @@ -359,7 +360,32 @@ return existingParameterNameEditor; } - final ParameterNameEditor<G, A, R> newParameterNameEditor = new ParameterNameEditor<G, A, R>(parameter); + final JTextComponent newParameterNameEditor = new JTextField(parameter.getName()); + newParameterNameEditor.getDocument().addDocumentListener(new DocumentListener() { + + @Override + public void insertUpdate(@NotNull final DocumentEvent e) { + change(); + } + + @Override + public void removeUpdate(@NotNull final DocumentEvent e) { + change(); + } + + @Override + public void changedUpdate(@NotNull final DocumentEvent e) { + change(); + } + + /** + * Updates the {@code parameter}'s name from the text input field. + */ + private void change() { + parameter.setName(newParameterNameEditor.getText()); + } + + }); parameterNameEditors.put(parameter, newParameterNameEditor); newTableComponent(newParameterNameEditor); return newParameterNameEditor; Deleted: 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 2014-02-22 07:47:03 UTC (rev 9612) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/parameter/ParameterNameEditor.java 2014-02-22 08:53:58 UTC (rev 9613) @@ -1,61 +0,0 @@ -/* - * 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.gui.dialog.plugin.parameter; - -import javax.swing.JTextField; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; -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.PluginParameter; -import org.jetbrains.annotations.NotNull; - -public class ParameterNameEditor<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends JTextField { - - private static final long serialVersionUID = 1L; - - public ParameterNameEditor(@NotNull final PluginParameter<G, A, R, ?> parameter) { - setText(parameter.getName()); - getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void insertUpdate(@NotNull final DocumentEvent e) { - change(); - } - - @Override - public void removeUpdate(@NotNull final DocumentEvent e) { - change(); - } - - @Override - public void changedUpdate(@NotNull final DocumentEvent e) { - change(); - } - - private void change() { - parameter.setName(getText()); - } - - }); - } - -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 07:47:06
|
Revision: 9612 http://sourceforge.net/p/gridarta/code/9612 Author: akirschbaum Date: 2014-02-22 07:47:03 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Do not call PluginParameter.equals(). 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 2014-02-22 07:46:21 UTC (rev 9611) +++ trunk/src/gridarta/src/main/java/net/sf/gridarta/gui/dialog/plugin/PluginEditor.java 2014-02-22 07:47:03 UTC (rev 9612) @@ -33,7 +33,7 @@ import java.awt.event.ItemListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; -import java.util.HashMap; +import java.util.IdentityHashMap; import java.util.Map; import javax.swing.JButton; import javax.swing.JCheckBox; @@ -107,16 +107,16 @@ private final Plugin<G, A, R> plugin; @NotNull - private final Map<PluginParameter<G, A, R, ?>, ParameterNameEditor<G, A, R>> parameterNameEditors = new HashMap<PluginParameter<G, A, R, ?>, ParameterNameEditor<G, A, R>>(); + private final Map<PluginParameter<G, A, R, ?>, ParameterNameEditor<G, A, R>> parameterNameEditors = new IdentityHashMap<PluginParameter<G, A, R, ?>, ParameterNameEditor<G, A, R>>(); @NotNull - private final Map<PluginParameter<G, A, R, ?>, ParameterDescriptionEditor<G, A, R>> parameterDescriptionEditors = new HashMap<PluginParameter<G, A, R, ?>, ParameterDescriptionEditor<G, A, R>>(); + private final Map<PluginParameter<G, A, R, ?>, ParameterDescriptionEditor<G, A, R>> parameterDescriptionEditors = new IdentityHashMap<PluginParameter<G, A, R, ?>, ParameterDescriptionEditor<G, A, R>>(); @NotNull - private final Map<PluginParameter<G, A, R, ?>, Component> parameterTypeEditors = new HashMap<PluginParameter<G, A, R, ?>, Component>(); + private final Map<PluginParameter<G, A, R, ?>, Component> parameterTypeEditors = new IdentityHashMap<PluginParameter<G, A, R, ?>, Component>(); @NotNull - private final Map<PluginParameter<G, A, R, ?>, PluginParameterView<G, A, R>> parameterViews = new HashMap<PluginParameter<G, A, R, ?>, PluginParameterView<G, A, R>>(); + private final Map<PluginParameter<G, A, R, ?>, PluginParameterView<G, A, R>> parameterViews = new IdentityHashMap<PluginParameter<G, A, R, ?>, PluginParameterView<G, A, R>>(); private int selectedRow = -1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2014-02-22 07:46:25
|
Revision: 9611 http://sourceforge.net/p/gridarta/code/9611 Author: akirschbaum Date: 2014-02-22 07:46:21 +0000 (Sat, 22 Feb 2014) Log Message: ----------- Fix possible IndexOutOfBoundsException. Modified Paths: -------------- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/Plugin.java trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/NoSuchParameterException.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 2014-02-22 07:37:38 UTC (rev 9610) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/Plugin.java 2014-02-22 07:46:21 UTC (rev 9611) @@ -387,6 +387,9 @@ */ public void convertType(@NotNull final PluginParameter<G, A, R, ?> pluginParameter, @NotNull final String newType) throws NoSuchParameterException { final int index = parameters.indexOf(pluginParameter); + if (index == -1) { + throw new NoSuchParameterException(pluginParameter); + } final PluginParameter<G, A, R, ?> newParameter = pluginParameterFactory.createParameter(newType, codec.toXML(parameters.get(index))); final PluginParameter<G, A, R, ?> oldParameter = parameters.set(index, newParameter); oldParameter.removePluginParameterListener(pluginParameterListener); Modified: trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/NoSuchParameterException.java =================================================================== --- trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/NoSuchParameterException.java 2014-02-22 07:37:38 UTC (rev 9610) +++ trunk/src/plugin/src/main/java/net/sf/gridarta/plugin/parameter/NoSuchParameterException.java 2014-02-22 07:46:21 UTC (rev 9611) @@ -48,4 +48,12 @@ super("#" + index); } + /** + * Creates a new instance. + * @param pluginParameter the missing parameter instance + */ + public NoSuchParameterException(@NotNull final PluginParameter<?, ?, ?, ?> pluginParameter) { + super(pluginParameter.toString()); + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |