From: <aki...@us...> - 2008-10-01 19:59:37
|
Revision: 5339 http://gridarta.svn.sourceforge.net/gridarta/?rev=5339&view=rev Author: akirschbaum Date: 2008-10-01 19:59:25 +0000 (Wed, 01 Oct 2008) Log Message: ----------- Move PluginParameterViewFactory to common code base. Modified Paths: -------------- trunk/crossfire/src/cfeditor/CMainControl.java trunk/crossfire/src/cfeditor/gui/script/ScriptEditor.java trunk/crossfire/src/cfeditor/gui/script/ScriptManager.java trunk/crossfire/src/cfeditor/gui/script/ScriptView.java trunk/crossfire/src/cfeditor/script/ScriptController.java Added Paths: ----------- trunk/src/app/net/sf/gridarta/gui/script/parameter/PluginParameterViewFactory.java Removed Paths: ------------- trunk/crossfire/src/cfeditor/gui/script/parameter/PluginParameterViewFactory.java Modified: trunk/crossfire/src/cfeditor/CMainControl.java =================================================================== --- trunk/crossfire/src/cfeditor/CMainControl.java 2008-10-01 19:50:48 UTC (rev 5338) +++ trunk/crossfire/src/cfeditor/CMainControl.java 2008-10-01 19:59:25 UTC (rev 5339) @@ -32,7 +32,6 @@ import cfeditor.gui.map.DefaultMapPropertiesDialogFactory; import cfeditor.gui.map.DefaultRendererFactory; import cfeditor.gui.prefs.ResPrefs; -import cfeditor.gui.script.parameter.PluginParameterViewFactory; import cfeditor.map.DefaultMapControlFactory; import cfeditor.map.MapArchObject; import cfeditor.script.ScriptController; @@ -72,6 +71,7 @@ import net.sf.gridarta.gui.prefs.MapValidatorPrefs; import net.sf.gridarta.gui.prefs.MiscPrefs; import net.sf.gridarta.gui.prefs.UpdatePrefs; +import net.sf.gridarta.gui.script.parameter.PluginParameterViewFactory; import net.sf.gridarta.gui.selectedsquare.SelectedSquareView; import net.sf.gridarta.io.ConfigFileUtils; import net.sf.gridarta.io.GameObjectParser; @@ -217,7 +217,7 @@ ((DefaultGridartaObjectsFactory) gridartaObjectsFactory).setFilterControl(filterControl); final ScriptParameters scriptParameters = new ScriptParameters(archetypeSet, globalSettings, mapManager, validators); final NamedFilterList defaultFilterList = new NamedFilterList(Collections.<NamedGameObjectMatcher>emptyList()); - final PluginParameterViewFactory pluginParameterViewFactory = new PluginParameterViewFactory(archetypeSet, gameObjectAttributesModel, objectChooser, defaultFilterList, mapManager); + final PluginParameterViewFactory<GameObject, MapArchObject, Archetype, CMapViewBasic> pluginParameterViewFactory = new PluginParameterViewFactory<GameObject, MapArchObject, Archetype, CMapViewBasic>(archetypeSet, gameObjectAttributesModel, objectChooser, defaultFilterList, mapManager); scriptControl = new ScriptController(filterControl, scriptParameters, getMainView(), pluginParameterViewFactory); } Modified: trunk/crossfire/src/cfeditor/gui/script/ScriptEditor.java =================================================================== --- trunk/crossfire/src/cfeditor/gui/script/ScriptEditor.java 2008-10-01 19:50:48 UTC (rev 5338) +++ trunk/crossfire/src/cfeditor/gui/script/ScriptEditor.java 2008-10-01 19:59:25 UTC (rev 5339) @@ -20,7 +20,10 @@ package cfeditor.gui.script; import cfeditor.IGUIConstants; -import cfeditor.gui.script.parameter.PluginParameterViewFactory; +import cfeditor.gameobject.Archetype; +import cfeditor.gameobject.GameObject; +import cfeditor.gui.map.CMapViewBasic; +import cfeditor.map.MapArchObject; import cfeditor.script.ScriptController; import java.awt.BorderLayout; import java.awt.Component; @@ -54,6 +57,7 @@ import net.sf.gridarta.gui.script.parameter.ParameterNameEditor; import net.sf.gridarta.gui.script.parameter.ParameterTypeEditor; import net.sf.gridarta.gui.script.parameter.PluginParameterView; +import net.sf.gridarta.gui.script.parameter.PluginParameterViewFactory; import net.sf.gridarta.gui.utils.GUIUtils; import net.sf.gridarta.script.ScriptModel; import net.sf.gridarta.script.parameter.NoSuchParameterException; @@ -67,7 +71,7 @@ private static final Logger log = Logger.getLogger(ScriptEditor.class); @NotNull - private final PluginParameterViewFactory pluginParameterViewFactory; + private final PluginParameterViewFactory<GameObject, MapArchObject, Archetype, CMapViewBasic> pluginParameterViewFactory; private final JPanel paramTable; @@ -129,7 +133,7 @@ * @param script the script object to edit * @param control the associated script control instance */ - public ScriptEditor(final ScriptModel script, final ScriptController control, final PluginParameterViewFactory pluginParameterViewFactory) { + public ScriptEditor(final ScriptModel script, final ScriptController control, final PluginParameterViewFactory<GameObject, MapArchObject, Archetype, CMapViewBasic> pluginParameterViewFactory) { this.script = script; this.pluginParameterViewFactory = pluginParameterViewFactory; final JTabbedPane tabs = new JTabbedPane(); Modified: trunk/crossfire/src/cfeditor/gui/script/ScriptManager.java =================================================================== --- trunk/crossfire/src/cfeditor/gui/script/ScriptManager.java 2008-10-01 19:50:48 UTC (rev 5338) +++ trunk/crossfire/src/cfeditor/gui/script/ScriptManager.java 2008-10-01 19:59:25 UTC (rev 5339) @@ -19,7 +19,10 @@ package cfeditor.gui.script; -import cfeditor.gui.script.parameter.PluginParameterViewFactory; +import cfeditor.gameobject.Archetype; +import cfeditor.gameobject.GameObject; +import cfeditor.gui.map.CMapViewBasic; +import cfeditor.map.MapArchObject; import cfeditor.script.ScriptControlListener; import cfeditor.script.ScriptController; import java.awt.BorderLayout; @@ -41,6 +44,7 @@ import javax.swing.border.LineBorder; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; +import net.sf.gridarta.gui.script.parameter.PluginParameterViewFactory; import net.sf.gridarta.script.ScriptModel; import org.apache.log4j.Logger; import org.jetbrains.annotations.NotNull; @@ -60,7 +64,7 @@ private final ScriptController scriptController; - private final PluginParameterViewFactory pluginParameterViewFactory; + private final PluginParameterViewFactory<GameObject, MapArchObject, Archetype, CMapViewBasic> pluginParameterViewFactory; private final Map<ScriptModel, ScriptEditor> components = new HashMap<ScriptModel, ScriptEditor>(); @@ -70,7 +74,7 @@ * Creates a ScriptManager. * @param scriptController ScriptController to base this ScriptManager on. */ - public ScriptManager(final ScriptController scriptController, @NotNull final PluginParameterViewFactory pluginParameterViewFactory) { + public ScriptManager(final ScriptController scriptController, @NotNull final PluginParameterViewFactory<GameObject, MapArchObject, Archetype, CMapViewBasic> pluginParameterViewFactory) { super("Editor plugins management"); this.scriptController = scriptController; this.pluginParameterViewFactory = pluginParameterViewFactory; Modified: trunk/crossfire/src/cfeditor/gui/script/ScriptView.java =================================================================== --- trunk/crossfire/src/cfeditor/gui/script/ScriptView.java 2008-10-01 19:50:48 UTC (rev 5338) +++ trunk/crossfire/src/cfeditor/gui/script/ScriptView.java 2008-10-01 19:59:25 UTC (rev 5339) @@ -21,7 +21,10 @@ import bsh.ConsoleInterface; import bsh.util.JConsole; -import cfeditor.gui.script.parameter.PluginParameterViewFactory; +import cfeditor.gameobject.Archetype; +import cfeditor.gameobject.GameObject; +import cfeditor.gui.map.CMapViewBasic; +import cfeditor.map.MapArchObject; import cfeditor.script.ScriptControlListener; import cfeditor.script.ScriptController; import java.awt.BorderLayout; @@ -40,6 +43,7 @@ import javax.swing.JOptionPane; import javax.swing.JPanel; import net.sf.gridarta.gui.script.parameter.PluginParameterView; +import net.sf.gridarta.gui.script.parameter.PluginParameterViewFactory; import net.sf.gridarta.gui.utils.MenuUtils; import net.sf.gridarta.script.ScriptModel; import net.sf.gridarta.script.parameter.PluginParameter; @@ -70,7 +74,7 @@ private final Component parent; @NotNull - private final PluginParameterViewFactory pluginParameterViewFactory; + private final PluginParameterViewFactory<GameObject, MapArchObject, Archetype, CMapViewBasic> pluginParameterViewFactory; /** The menu to add script commands to. */ @Nullable @@ -112,7 +116,7 @@ * @warning Creating a view from a controller instead of a model is error * prone. */ - public ScriptView(final ScriptController control, @NotNull final Component parent, @NotNull final PluginParameterViewFactory pluginParameterViewFactory) { + public ScriptView(final ScriptController control, @NotNull final Component parent, @NotNull final PluginParameterViewFactory<GameObject, MapArchObject, Archetype, CMapViewBasic> pluginParameterViewFactory) { this.control = control; this.parent = parent; this.pluginParameterViewFactory = pluginParameterViewFactory; Deleted: trunk/crossfire/src/cfeditor/gui/script/parameter/PluginParameterViewFactory.java =================================================================== --- trunk/crossfire/src/cfeditor/gui/script/parameter/PluginParameterViewFactory.java 2008-10-01 19:50:48 UTC (rev 5338) +++ trunk/crossfire/src/cfeditor/gui/script/parameter/PluginParameterViewFactory.java 2008-10-01 19:59:25 UTC (rev 5339) @@ -1,133 +0,0 @@ -/* - * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games. - * Copyright (C) 2000-2007 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 cfeditor.gui.script.parameter; - -import cfeditor.gameobject.Archetype; -import cfeditor.gameobject.GameObject; -import cfeditor.gui.map.CMapViewBasic; -import cfeditor.map.MapArchObject; -import net.sf.gridarta.MapManager; -import net.sf.gridarta.filter.NamedFilterList; -import net.sf.gridarta.gameobject.ArchetypeSet; -import net.sf.gridarta.gui.gameobjectattributespanel.GameObjectAttributesModel; -import net.sf.gridarta.gui.objectchooser.ObjectChooser; -import net.sf.gridarta.gui.script.parameter.ArchParameterView; -import net.sf.gridarta.gui.script.parameter.BooleanParameterView; -import net.sf.gridarta.gui.script.parameter.DoubleParameterView; -import net.sf.gridarta.gui.script.parameter.FilterParameterView; -import net.sf.gridarta.gui.script.parameter.IntegerParameterView; -import net.sf.gridarta.gui.script.parameter.MapParameterView; -import net.sf.gridarta.gui.script.parameter.PluginParameterView; -import net.sf.gridarta.gui.script.parameter.StringParameterView; -import net.sf.gridarta.script.parameter.ArchParameter; -import net.sf.gridarta.script.parameter.BooleanParameter; -import net.sf.gridarta.script.parameter.DoubleParameter; -import net.sf.gridarta.script.parameter.FilterParameter; -import net.sf.gridarta.script.parameter.IntegerParameter; -import net.sf.gridarta.script.parameter.MapParameter; -import net.sf.gridarta.script.parameter.PluginParameter; -import net.sf.gridarta.script.parameter.PluginParameterVisitor; -import net.sf.gridarta.script.parameter.StringParameter; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * Factory for creating {@link PluginParameterView} instances. - * @author Andreas Kirschbaum - */ -public class PluginParameterViewFactory { - - @NotNull - private final ArchetypeSet<GameObject, MapArchObject, Archetype> archetypeSet; - - @NotNull - private final GameObjectAttributesModel<GameObject, MapArchObject, Archetype> gameObjectAttributesModel; - - @NotNull - private final ObjectChooser<GameObject, MapArchObject, Archetype> objectChooser; - - @NotNull - private final NamedFilterList defaultFilterList; - - @NotNull - private final MapManager<GameObject, MapArchObject, Archetype, CMapViewBasic> mapManager; - - @Nullable - private PluginParameterView view = null; - - private final PluginParameterVisitor<GameObject, MapArchObject, Archetype, CMapViewBasic> visitor = new PluginParameterVisitor<GameObject, MapArchObject, Archetype, CMapViewBasic>() { - - /** {@inheritDoc} */ - public void visit(final ArchParameter<GameObject, MapArchObject, Archetype> parameter) { - view = new ArchParameterView<GameObject, MapArchObject, Archetype>(parameter, gameObjectAttributesModel, archetypeSet, objectChooser); - } - - /** {@inheritDoc} */ - public void visit(final BooleanParameter parameter) { - view = new BooleanParameterView(parameter); - } - - /** {@inheritDoc} */ - public void visit(final DoubleParameter parameter) { - view = new DoubleParameterView(parameter); - } - - /** {@inheritDoc} */ - public void visit(final FilterParameter parameter) { - view = new FilterParameterView(defaultFilterList); // XXX: does not use "parameter"? - } - - /** {@inheritDoc} */ - public void visit(final IntegerParameter parameter) { - view = new IntegerParameterView(parameter); - } - - /** {@inheritDoc} */ - public void visit(final MapParameter<GameObject, MapArchObject, Archetype, CMapViewBasic> parameter) { - view = new MapParameterView<GameObject, MapArchObject, Archetype, CMapViewBasic>(parameter, mapManager); - } - - /** {@inheritDoc} */ - public void visit(final StringParameter parameter) { - view = new StringParameterView(parameter); - } - - }; - - /** - * Creates a new instance. - */ - public PluginParameterViewFactory(@NotNull final ArchetypeSet<GameObject, MapArchObject, Archetype> archetypeSet, @NotNull final GameObjectAttributesModel<GameObject, MapArchObject, Archetype> gameObjectAttributesModel, @NotNull final ObjectChooser<GameObject, MapArchObject, Archetype> objectChooser, @NotNull final NamedFilterList defaultFilterList, @NotNull final MapManager<GameObject, MapArchObject, Archetype, CMapViewBasic> mapManager) { - this.archetypeSet = archetypeSet; - this.gameObjectAttributesModel = gameObjectAttributesModel; - this.objectChooser = objectChooser; - this.defaultFilterList = defaultFilterList; - this.mapManager = mapManager; - } - - @NotNull - public PluginParameterView getView(@NotNull final PluginParameter<?, ?> parameter) { - view = null; - parameter.visit(visitor); - assert view != null; - return view; - } - -} // class PluginParameterViewFactory Modified: trunk/crossfire/src/cfeditor/script/ScriptController.java =================================================================== --- trunk/crossfire/src/cfeditor/script/ScriptController.java 2008-10-01 19:50:48 UTC (rev 5338) +++ trunk/crossfire/src/cfeditor/script/ScriptController.java 2008-10-01 19:59:25 UTC (rev 5339) @@ -27,7 +27,6 @@ import cfeditor.gameobject.GameObject; import cfeditor.gui.map.CMapViewBasic; import cfeditor.gui.script.ScriptView; -import cfeditor.gui.script.parameter.PluginParameterViewFactory; import cfeditor.map.MapArchObject; import java.awt.Component; import java.io.CharArrayWriter; @@ -49,6 +48,7 @@ import javax.swing.event.EventListenerList; import net.sf.gridarta.filter.Filter; import net.sf.gridarta.filter.FilterControl; +import net.sf.gridarta.gui.script.parameter.PluginParameterViewFactory; import net.sf.gridarta.script.BshThread; import net.sf.gridarta.script.ScriptExecException; import net.sf.gridarta.script.ScriptModel; @@ -110,9 +110,9 @@ private File scriptsDir = null; @NotNull - private final PluginParameterViewFactory pluginParameterViewFactory; + private final PluginParameterViewFactory<GameObject, MapArchObject, Archetype, CMapViewBasic> pluginParameterViewFactory; - public ScriptController(@NotNull final FilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl, @NotNull final ScriptParameters scriptParameters, @NotNull final Component parent, @NotNull final PluginParameterViewFactory pluginParameterViewFactory) { + public ScriptController(@NotNull final FilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl, @NotNull final ScriptParameters scriptParameters, @NotNull final Component parent, @NotNull final PluginParameterViewFactory<GameObject, MapArchObject, Archetype, CMapViewBasic> pluginParameterViewFactory) { this.parent = parent; this.filterControl = filterControl; this.scriptParameters = scriptParameters; Copied: trunk/src/app/net/sf/gridarta/gui/script/parameter/PluginParameterViewFactory.java (from rev 5338, trunk/crossfire/src/cfeditor/gui/script/parameter/PluginParameterViewFactory.java) =================================================================== --- trunk/src/app/net/sf/gridarta/gui/script/parameter/PluginParameterViewFactory.java (rev 0) +++ trunk/src/app/net/sf/gridarta/gui/script/parameter/PluginParameterViewFactory.java 2008-10-01 19:59:25 UTC (rev 5339) @@ -0,0 +1,125 @@ +/* + * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games. + * Copyright (C) 2000-2007 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.script.parameter; + +import net.sf.gridarta.MapManager; +import net.sf.gridarta.filter.NamedFilterList; +import net.sf.gridarta.gameobject.Archetype; +import net.sf.gridarta.gameobject.ArchetypeSet; +import net.sf.gridarta.gameobject.GameObject; +import net.sf.gridarta.gui.gameobjectattributespanel.GameObjectAttributesModel; +import net.sf.gridarta.gui.map.MapViewBasic; +import net.sf.gridarta.gui.objectchooser.ObjectChooser; +import net.sf.gridarta.map.MapArchObject; +import net.sf.gridarta.script.parameter.ArchParameter; +import net.sf.gridarta.script.parameter.BooleanParameter; +import net.sf.gridarta.script.parameter.DoubleParameter; +import net.sf.gridarta.script.parameter.FilterParameter; +import net.sf.gridarta.script.parameter.IntegerParameter; +import net.sf.gridarta.script.parameter.MapParameter; +import net.sf.gridarta.script.parameter.PluginParameter; +import net.sf.gridarta.script.parameter.PluginParameterVisitor; +import net.sf.gridarta.script.parameter.StringParameter; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Factory for creating {@link PluginParameterView} instances. + * @author Andreas Kirschbaum + */ +public class PluginParameterViewFactory<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>, V extends MapViewBasic<G, A, R, V>> { + + @NotNull + private final ArchetypeSet<G, A, R> archetypeSet; + + @NotNull + private final GameObjectAttributesModel<G, A, R> gameObjectAttributesModel; + + @NotNull + private final ObjectChooser<G, A, R> objectChooser; + + @NotNull + private final NamedFilterList defaultFilterList; + + @NotNull + private final MapManager<G, A, R, V> mapManager; + + @Nullable + private PluginParameterView view = null; + + private final PluginParameterVisitor<G, A, R, V> visitor = new PluginParameterVisitor<G, A, R, V>() { + + /** {@inheritDoc} */ + public void visit(final ArchParameter<G, A, R> parameter) { + view = new ArchParameterView<G, A, R>(parameter, gameObjectAttributesModel, archetypeSet, objectChooser); + } + + /** {@inheritDoc} */ + public void visit(final BooleanParameter parameter) { + view = new BooleanParameterView(parameter); + } + + /** {@inheritDoc} */ + public void visit(final DoubleParameter parameter) { + view = new DoubleParameterView(parameter); + } + + /** {@inheritDoc} */ + public void visit(final FilterParameter parameter) { + view = new FilterParameterView(defaultFilterList); // XXX: does not use "parameter"? + } + + /** {@inheritDoc} */ + public void visit(final IntegerParameter parameter) { + view = new IntegerParameterView(parameter); + } + + /** {@inheritDoc} */ + public void visit(final MapParameter<G, A, R, V> parameter) { + view = new MapParameterView<G, A, R, V>(parameter, mapManager); + } + + /** {@inheritDoc} */ + public void visit(final StringParameter parameter) { + view = new StringParameterView(parameter); + } + + }; + + /** + * Creates a new instance. + */ + public PluginParameterViewFactory(@NotNull final ArchetypeSet<G, A, R> archetypeSet, @NotNull final GameObjectAttributesModel<G, A, R> gameObjectAttributesModel, @NotNull final ObjectChooser<G, A, R> objectChooser, @NotNull final NamedFilterList defaultFilterList, @NotNull final MapManager<G, A, R, V> mapManager) { + this.archetypeSet = archetypeSet; + this.gameObjectAttributesModel = gameObjectAttributesModel; + this.objectChooser = objectChooser; + this.defaultFilterList = defaultFilterList; + this.mapManager = mapManager; + } + + @NotNull + public PluginParameterView getView(@NotNull final PluginParameter<?, ?> parameter) { + view = null; + parameter.visit(visitor); + assert view != null; + return view; + } + +} // class PluginParameterViewFactory This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |