From: <aki...@us...> - 2008-09-25 21:12:26
|
Revision: 5233 http://gridarta.svn.sourceforge.net/gridarta/?rev=5233&view=rev Author: akirschbaum Date: 2008-09-25 21:12:19 +0000 (Thu, 25 Sep 2008) Log Message: ----------- Rename CFilterControl to FilterControl. Modified Paths: -------------- trunk/crossfire/src/cfeditor/CMainControl.java trunk/crossfire/src/cfeditor/CrossfireObjectsFactory.java trunk/crossfire/src/cfeditor/gui/map/CMapViewBasic.java trunk/crossfire/src/cfeditor/gui/map/MapRenderer.java trunk/crossfire/src/cfeditor/script/ScriptController.java trunk/src/app/net/sf/gridarta/filter/FilterState.java Added Paths: ----------- trunk/src/app/net/sf/gridarta/filter/FilterControl.java Removed Paths: ------------- trunk/src/app/net/sf/gridarta/filter/CFilterControl.java Modified: trunk/crossfire/src/cfeditor/CMainControl.java =================================================================== --- trunk/crossfire/src/cfeditor/CMainControl.java 2008-09-25 21:06:34 UTC (rev 5232) +++ trunk/crossfire/src/cfeditor/CMainControl.java 2008-09-25 21:12:19 UTC (rev 5233) @@ -48,7 +48,7 @@ import net.sf.gridarta.GridartaObjectsFactory; import net.sf.gridarta.MapManager; import net.sf.gridarta.archtype.ArchetypeTypeSet; -import net.sf.gridarta.filter.CFilterControl; +import net.sf.gridarta.filter.FilterControl; import net.sf.gridarta.filter.NamedFilterList; import net.sf.gridarta.gameobject.AbstractArchetypeParser; import net.sf.gridarta.gameobject.GameObjectFactory; @@ -101,7 +101,7 @@ /** The current script controller. */ private ScriptController scriptControl; - private CFilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl; + private FilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl; /** Preferences default for auto validation. */ private static final boolean PREFS_VALIDATOR_AUTO_DEFAULT = true; @@ -182,7 +182,7 @@ protected void init2(@NotNull final GridartaObjectsFactory<GameObject, MapArchObject, Archetype, CMapViewBasic> gridartaObjectsFactory, @NotNull final GlobalSettings globalSettings, @NotNull final MapManager<GameObject, MapArchObject, Archetype, CMapViewBasic> mapManager, @NotNull final net.sf.gridarta.gameobject.ArchetypeSet<GameObject, MapArchObject, Archetype> archetypeSet, @NotNull final DelegatingMapValidator<GameObject, MapArchObject, Archetype> validators, @NotNull final GameObjectMatchers gameObjectMatchers, @NotNull final GameObjectAttributesModel<GameObject, MapArchObject, Archetype> gameObjectAttributesModel, @NotNull final ObjectChooser<GameObject, MapArchObject, Archetype> objectChooser) { PluginParameterFactory.init(archetypeSet, gameObjectAttributesModel, objectChooser, mapManager); final NamedFilterList defaultNamedFilterList = new NamedFilterList(gameObjectMatchers.getFilters()); - filterControl = new CFilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic>(mapManager, defaultNamedFilterList); + filterControl = new FilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic>(mapManager, defaultNamedFilterList); ((CrossfireObjectsFactory) gridartaObjectsFactory).setFilterControl(filterControl); final ScriptParameters scriptParameters = new ScriptParameters(archetypeSet, globalSettings, mapManager, validators); scriptControl = new ScriptController(filterControl, scriptParameters, getMainView()); Modified: trunk/crossfire/src/cfeditor/CrossfireObjectsFactory.java =================================================================== --- trunk/crossfire/src/cfeditor/CrossfireObjectsFactory.java 2008-09-25 21:06:34 UTC (rev 5232) +++ trunk/crossfire/src/cfeditor/CrossfireObjectsFactory.java 2008-09-25 21:12:19 UTC (rev 5233) @@ -36,7 +36,7 @@ import net.sf.gridarta.GridartaObjectsFactory; import net.sf.gridarta.MainControl; import net.sf.gridarta.MapImageCache; -import net.sf.gridarta.filter.CFilterControl; +import net.sf.gridarta.filter.FilterControl; import net.sf.gridarta.gameobject.ArchetypeSet; import net.sf.gridarta.gameobject.face.FaceObjects; import net.sf.gridarta.gui.MainView; @@ -83,7 +83,7 @@ private ArchetypeSet<GameObject, MapArchObject, Archetype> archetypeSet = null; @NotNull - private CFilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl; + private FilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl; /** The tool palette instance. */ @NotNull @@ -132,7 +132,7 @@ this.toolPalette = toolPalette; } - public void setFilterControl(@NotNull final CFilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl) { + public void setFilterControl(@NotNull final FilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl) { this.filterControl = filterControl; } Modified: trunk/crossfire/src/cfeditor/gui/map/CMapViewBasic.java =================================================================== --- trunk/crossfire/src/cfeditor/gui/map/CMapViewBasic.java 2008-09-25 21:06:34 UTC (rev 5232) +++ trunk/crossfire/src/cfeditor/gui/map/CMapViewBasic.java 2008-09-25 21:12:19 UTC (rev 5233) @@ -25,7 +25,7 @@ import java.awt.Point; import java.awt.Rectangle; import net.sf.gridarta.EditTypes; -import net.sf.gridarta.filter.CFilterControl; +import net.sf.gridarta.filter.FilterControl; import net.sf.gridarta.gui.map.MapCursor; import net.sf.gridarta.gui.map.MapCursorEvent; import net.sf.gridarta.gui.map.MapCursorListener; @@ -125,7 +125,7 @@ * @param yScrollDistance the y distance when scrolling * @param selectedSquareView the selected square view */ - public CMapViewBasic(@NotNull final CFilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl, @NotNull final EditTypes<GameObject, MapArchObject, Archetype, CMapViewBasic> editTypes, @NotNull final MapControl<GameObject, MapArchObject, Archetype, CMapViewBasic> mapControl, @Nullable final Point initial, @NotNull final ToolPalette<GameObject, MapArchObject, Archetype, CMapViewBasic> toolPalette, final int xScrollDistance, final int yScrollDistance, @NotNull final SelectedSquareView<GameObject, MapArchObject, Archetype, CMapViewBasic> selectedSquareView) { + public CMapViewBasic(@NotNull final FilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl, @NotNull final EditTypes<GameObject, MapArchObject, Archetype, CMapViewBasic> editTypes, @NotNull final MapControl<GameObject, MapArchObject, Archetype, CMapViewBasic> mapControl, @Nullable final Point initial, @NotNull final ToolPalette<GameObject, MapArchObject, Archetype, CMapViewBasic> toolPalette, final int xScrollDistance, final int yScrollDistance, @NotNull final SelectedSquareView<GameObject, MapArchObject, Archetype, CMapViewBasic> selectedSquareView) { super(mapControl, xScrollDistance, yScrollDistance, selectedSquareView); getMapCursor().addMapCursorListener(mapCursorListener); Modified: trunk/crossfire/src/cfeditor/gui/map/MapRenderer.java =================================================================== --- trunk/crossfire/src/cfeditor/gui/map/MapRenderer.java 2008-09-25 21:06:34 UTC (rev 5232) +++ trunk/crossfire/src/cfeditor/gui/map/MapRenderer.java 2008-09-25 21:12:19 UTC (rev 5233) @@ -31,7 +31,7 @@ import java.lang.ref.SoftReference; import javax.swing.ImageIcon; import net.sf.gridarta.EditTypes; -import net.sf.gridarta.filter.CFilterControl; +import net.sf.gridarta.filter.FilterControl; import net.sf.gridarta.filter.FilterState; import net.sf.gridarta.gui.SystemIcons; import net.sf.gridarta.gui.map.MapGrid; @@ -53,7 +53,7 @@ private static final long serialVersionUID = 1L; @NotNull - private final CFilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl; + private final FilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl; private final Color[] highLightMask = new Color[] { new Color(1.0f, 0.0f, 0.0f, 0.33f), @@ -87,7 +87,7 @@ * @param mapControl MapControl of the map to render * @param mapGrid Grid to render */ - public MapRenderer(@NotNull final CFilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl, @NotNull final EditTypes<GameObject, MapArchObject, Archetype, CMapViewBasic> editTypes, final MapControl<GameObject, MapArchObject, Archetype, CMapViewBasic> mapControl, final MapGrid mapGrid) { + public MapRenderer(@NotNull final FilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl, @NotNull final EditTypes<GameObject, MapArchObject, Archetype, CMapViewBasic> editTypes, final MapControl<GameObject, MapArchObject, Archetype, CMapViewBasic> mapControl, final MapGrid mapGrid) { super(mapControl, mapGrid, 32); this.filterControl = filterControl; this.editTypes = editTypes; @@ -194,7 +194,7 @@ } } } - for (int i = 0; i < CFilterControl.MAX_HIGHLIGHT; i++) { + for (int i = 0; i < FilterControl.MAX_HIGHLIGHT; i++) { if (filterControl.isHighlightedSquare(filterState, i)) { final Color c = grfx.getColor(); grfx.setColor(highLightMask[i]); Modified: trunk/crossfire/src/cfeditor/script/ScriptController.java =================================================================== --- trunk/crossfire/src/cfeditor/script/ScriptController.java 2008-09-25 21:06:34 UTC (rev 5232) +++ trunk/crossfire/src/cfeditor/script/ScriptController.java 2008-09-25 21:12:19 UTC (rev 5233) @@ -46,8 +46,8 @@ import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.event.EventListenerList; -import net.sf.gridarta.filter.CFilterControl; import net.sf.gridarta.filter.Filter; +import net.sf.gridarta.filter.FilterControl; import net.sf.japi.swing.ActionFactory; import org.apache.log4j.Logger; import org.jdom.Document; @@ -94,13 +94,13 @@ private final Component parent; @NotNull - private final CFilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl; + private final FilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl; /** The default directory for saving scripts. */ @Nullable private File scriptsDir = null; - public ScriptController(@NotNull final CFilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl, @NotNull final ScriptParameters scriptParameters, @NotNull final Component parent) { + public ScriptController(@NotNull final FilterControl<GameObject, MapArchObject, Archetype, CMapViewBasic> filterControl, @NotNull final ScriptParameters scriptParameters, @NotNull final Component parent) { this.parent = parent; this.filterControl = filterControl; this.scriptParameters = scriptParameters; Deleted: trunk/src/app/net/sf/gridarta/filter/CFilterControl.java =================================================================== --- trunk/src/app/net/sf/gridarta/filter/CFilterControl.java 2008-09-25 21:06:34 UTC (rev 5232) +++ trunk/src/app/net/sf/gridarta/filter/CFilterControl.java 2008-09-25 21:12:19 UTC (rev 5233) @@ -1,138 +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 net.sf.gridarta.filter; - -import javax.swing.JMenu; -import javax.swing.JMenuItem; -import net.sf.gridarta.MapManager; -import net.sf.gridarta.gameobject.Archetype; -import net.sf.gridarta.gameobject.GameObject; -import net.sf.gridarta.gui.map.MapViewBasic; -import net.sf.gridarta.map.MapArchObject; -import net.sf.gridarta.map.MapControl; -import org.jetbrains.annotations.NotNull; - -/** - * Control for filters. - * <p/> - * Control to check if 1) a specific GameObject can be shown (filter out of view - * part) 2) a specific MapSquare must be highlighted (analysis part) It provides - * only one filterOut path (and so elements are visible or not, they can't be - * twice visible or such). It provides 3 highlight paths. each of them can be - * (dis)enabled. So you can, e.g., highlight walls in a specific color, - * teleporters in another and monsters in a third. highlight and filterOut - * filters works all the same. You can activate specific predefined filters or - * you can provide your own If several predefined Filters are activated for a - * path, they are combined in an OR way. For example, if you enable the - * filterOut path, activate in this path the wall and the floor filters, only - * walls and floors will be shown. - * @author tchize - */ -//TODO allow implementation of own filter -public final class CFilterControl<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>, V extends MapViewBasic<G, A, R, V>> { - - public static final int MAX_HIGHLIGHT = 3; - - private final NamedFilterList filterList; - - private final NamedFilterConfig filterOutConfig; - - private final NamedFilterConfig[] highlightConfig; - - @NotNull - private final MapManager<G, A, R, V> mapManager; - - private final ConfigListener configListener = new ConfigListener() { - - /** {@inheritDoc} */ - public void configChanged(final ConfigEvent event) { - for (final MapControl<G, A, R, V> mapControl : mapManager.getOpenedMaps()) { - mapControl.repaint(); - } - } - - }; - - /** - * Create a new FilterControl. Do not highlight anything and does not - * filterOut anything - * @param mapManager the map manager instance - * @param filterList the filter list instance to use - */ - public CFilterControl(@NotNull final MapManager<G, A, R, V> mapManager, final NamedFilterList filterList) { - this.filterList = filterList; - this.mapManager = mapManager; - filterOutConfig = (NamedFilterConfig) filterList.createConfig(); - highlightConfig = new NamedFilterConfig[MAX_HIGHLIGHT]; - for (int i = 0; i < MAX_HIGHLIGHT; i++) { - highlightConfig[i] = (NamedFilterConfig) filterList.createConfig(); - } - filterOutConfig.addConfigChangeListener(configListener); - for (int i = 0; i < MAX_HIGHLIGHT; i++) { - highlightConfig[i].addConfigChangeListener(configListener); - } - } - - public void createMenuEntries(final JMenu menu) { - final JMenuItem menuItem = filterList.createMenuEntry(filterOutConfig); - menuItem.setText("Filter view"); - menu.add(menuItem); - menu.addSeparator(); - for (int i = 0; i < MAX_HIGHLIGHT; i++) { - final JMenuItem menuItem2 = filterList.createMenuEntry(highlightConfig[i]); - menuItem2.setText("Highlight " + i); - menu.add(menuItem2); - } - } - - public void newSquare(@NotNull final FilterState filterState) { - for (int i = 0; i < MAX_HIGHLIGHT; i++) { - filterList.reset(highlightConfig[i]); - } - filterState.reset(); - } - - public boolean isHighlightedSquare(@NotNull final FilterState filterState, final int path) { - return highlightConfig[path].isEnabled() && filterState.isHighlightedSquare(path); - } - - public void objectInSquare(@NotNull final FilterState filterState, @NotNull final GameObject<?, ?, ?> gameObject) { - for (int i = 0; i < MAX_HIGHLIGHT; i++) { - if (highlightConfig[i].isEnabled()) { - if(!filterState.isHighlightedSquare(i)) { - filterState.setHighlightedSquare(i, filterList.match(highlightConfig[i], gameObject)); - } - } - } - } - - public boolean canShow(final G gameObject) { - return !filterOutConfig.isEnabled() || filterList.canShow(gameObject, filterOutConfig); - } - - public void addFilter(final String name, final Filter filter) { - filterList.addFilter(name, filter); - } - - public void removeFilter(final String name) { - filterList.removeFilter(name); - } - -} // class CFilterControl Copied: trunk/src/app/net/sf/gridarta/filter/FilterControl.java (from rev 5232, trunk/src/app/net/sf/gridarta/filter/CFilterControl.java) =================================================================== --- trunk/src/app/net/sf/gridarta/filter/FilterControl.java (rev 0) +++ trunk/src/app/net/sf/gridarta/filter/FilterControl.java 2008-09-25 21:12:19 UTC (rev 5233) @@ -0,0 +1,138 @@ +/* + * 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.filter; + +import javax.swing.JMenu; +import javax.swing.JMenuItem; +import net.sf.gridarta.MapManager; +import net.sf.gridarta.gameobject.Archetype; +import net.sf.gridarta.gameobject.GameObject; +import net.sf.gridarta.gui.map.MapViewBasic; +import net.sf.gridarta.map.MapArchObject; +import net.sf.gridarta.map.MapControl; +import org.jetbrains.annotations.NotNull; + +/** + * Control for filters. + * <p/> + * Control to check if 1) a specific GameObject can be shown (filter out of view + * part) 2) a specific MapSquare must be highlighted (analysis part) It provides + * only one filterOut path (and so elements are visible or not, they can't be + * twice visible or such). It provides 3 highlight paths. each of them can be + * (dis)enabled. So you can, e.g., highlight walls in a specific color, + * teleporters in another and monsters in a third. highlight and filterOut + * filters works all the same. You can activate specific predefined filters or + * you can provide your own If several predefined Filters are activated for a + * path, they are combined in an OR way. For example, if you enable the + * filterOut path, activate in this path the wall and the floor filters, only + * walls and floors will be shown. + * @author tchize + */ +//TODO allow implementation of own filter +public final class FilterControl<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>, V extends MapViewBasic<G, A, R, V>> { + + public static final int MAX_HIGHLIGHT = 3; + + private final NamedFilterList filterList; + + private final NamedFilterConfig filterOutConfig; + + private final NamedFilterConfig[] highlightConfig; + + @NotNull + private final MapManager<G, A, R, V> mapManager; + + private final ConfigListener configListener = new ConfigListener() { + + /** {@inheritDoc} */ + public void configChanged(final ConfigEvent event) { + for (final MapControl<G, A, R, V> mapControl : mapManager.getOpenedMaps()) { + mapControl.repaint(); + } + } + + }; + + /** + * Create a new FilterControl. Do not highlight anything and does not + * filterOut anything + * @param mapManager the map manager instance + * @param filterList the filter list instance to use + */ + public FilterControl(@NotNull final MapManager<G, A, R, V> mapManager, final NamedFilterList filterList) { + this.filterList = filterList; + this.mapManager = mapManager; + filterOutConfig = (NamedFilterConfig) filterList.createConfig(); + highlightConfig = new NamedFilterConfig[MAX_HIGHLIGHT]; + for (int i = 0; i < MAX_HIGHLIGHT; i++) { + highlightConfig[i] = (NamedFilterConfig) filterList.createConfig(); + } + filterOutConfig.addConfigChangeListener(configListener); + for (int i = 0; i < MAX_HIGHLIGHT; i++) { + highlightConfig[i].addConfigChangeListener(configListener); + } + } + + public void createMenuEntries(final JMenu menu) { + final JMenuItem menuItem = filterList.createMenuEntry(filterOutConfig); + menuItem.setText("Filter view"); + menu.add(menuItem); + menu.addSeparator(); + for (int i = 0; i < MAX_HIGHLIGHT; i++) { + final JMenuItem menuItem2 = filterList.createMenuEntry(highlightConfig[i]); + menuItem2.setText("Highlight " + i); + menu.add(menuItem2); + } + } + + public void newSquare(@NotNull final FilterState filterState) { + for (int i = 0; i < MAX_HIGHLIGHT; i++) { + filterList.reset(highlightConfig[i]); + } + filterState.reset(); + } + + public boolean isHighlightedSquare(@NotNull final FilterState filterState, final int path) { + return highlightConfig[path].isEnabled() && filterState.isHighlightedSquare(path); + } + + public void objectInSquare(@NotNull final FilterState filterState, @NotNull final GameObject<?, ?, ?> gameObject) { + for (int i = 0; i < MAX_HIGHLIGHT; i++) { + if (highlightConfig[i].isEnabled()) { + if(!filterState.isHighlightedSquare(i)) { + filterState.setHighlightedSquare(i, filterList.match(highlightConfig[i], gameObject)); + } + } + } + } + + public boolean canShow(final G gameObject) { + return !filterOutConfig.isEnabled() || filterList.canShow(gameObject, filterOutConfig); + } + + public void addFilter(final String name, final Filter filter) { + filterList.addFilter(name, filter); + } + + public void removeFilter(final String name) { + filterList.removeFilter(name); + } + +} // class FilterControl Modified: trunk/src/app/net/sf/gridarta/filter/FilterState.java =================================================================== --- trunk/src/app/net/sf/gridarta/filter/FilterState.java 2008-09-25 21:06:34 UTC (rev 5232) +++ trunk/src/app/net/sf/gridarta/filter/FilterState.java 2008-09-25 21:12:19 UTC (rev 5233) @@ -22,7 +22,7 @@ import java.util.Arrays; /** - * The highlighted state while using a {@link CFilterControl} instance. + * The highlighted state while using a {@link FilterControl} instance. * @author Andreas Kirschbaum */ public class FilterState { @@ -30,7 +30,7 @@ /** * The current hightlight state. */ - private final boolean[] highlightedSquare = new boolean[CFilterControl.MAX_HIGHLIGHT]; + private final boolean[] highlightedSquare = new boolean[FilterControl.MAX_HIGHLIGHT]; /** * Resets the state to no highlights. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |