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...> - 2010-10-18 16:54:56
|
Revision: 8735 http://gridarta.svn.sourceforge.net/gridarta/?rev=8735&view=rev Author: akirschbaum Date: 2010-10-18 16:54:49 +0000 (Mon, 18 Oct 2010) Log Message: ----------- Include monster levels in monster view. Modified Paths: -------------- trunk/atrinik/ChangeLog trunk/crossfire/ChangeLog trunk/daimonin/ChangeLog trunk/model/src/app/net/sf/gridarta/model/baseobject/AbstractBaseObject.java trunk/model/src/app/net/sf/gridarta/model/baseobject/BaseObject.java trunk/model/src/test/net/sf/gridarta/model/baseobject/AbstractBaseObjectTest.java trunk/src/app/net/sf/gridarta/gui/connectionview/CellRenderer.java trunk/src/app/net/sf/gridarta/gui/connectionview/ConnectionView.java trunk/src/app/net/sf/gridarta/gui/connectionview/LockedItemsView.java trunk/src/app/net/sf/gridarta/gui/connectionview/MonsterControl.java trunk/src/app/net/sf/gridarta/gui/connectionview/MonsterView.java trunk/src/app/net/sf/gridarta/gui/connectionview/View.java Added Paths: ----------- trunk/src/app/net/sf/gridarta/gui/connectionview/MonsterCellRenderer.java Modified: trunk/atrinik/ChangeLog =================================================================== --- trunk/atrinik/ChangeLog 2010-10-17 21:40:32 UTC (rev 8734) +++ trunk/atrinik/ChangeLog 2010-10-18 16:54:49 UTC (rev 8735) @@ -1,3 +1,7 @@ +2010-10-18 Andreas Kirschbaum + + * Include monster levels in monster view. + 2010-10-10 Andreas Kirschbaum * Fix incorrectly updated attribute for empty name field in game Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2010-10-17 21:40:32 UTC (rev 8734) +++ trunk/crossfire/ChangeLog 2010-10-18 16:54:49 UTC (rev 8735) @@ -1,3 +1,7 @@ +2010-10-18 Andreas Kirschbaum + + * Include monster levels in monster view. + 2010-10-10 Andreas Kirschbaum * Fix incorrectly updated attribute for empty name field in game Modified: trunk/daimonin/ChangeLog =================================================================== --- trunk/daimonin/ChangeLog 2010-10-17 21:40:32 UTC (rev 8734) +++ trunk/daimonin/ChangeLog 2010-10-18 16:54:49 UTC (rev 8735) @@ -1,3 +1,7 @@ +2010-10-18 Andreas Kirschbaum + + * Include monster levels in monster view. + 2010-10-10 Andreas Kirschbaum * Fix incorrectly updated attribute for empty name field in game Modified: trunk/model/src/app/net/sf/gridarta/model/baseobject/AbstractBaseObject.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/baseobject/AbstractBaseObject.java 2010-10-17 21:40:32 UTC (rev 8734) +++ trunk/model/src/app/net/sf/gridarta/model/baseobject/AbstractBaseObject.java 2010-10-18 16:54:49 UTC (rev 8735) @@ -1107,6 +1107,63 @@ } /** + * {@inheritDoc} + */ + @NotNull + @Override + public String toString(@NotNull final String format) { + final StringBuilder sb = new StringBuilder(); + final char[] chars = format.toCharArray(); + int pos = 0; + while (pos < chars.length) { + if (chars[pos] == '$' && pos + 2 < chars.length && chars[pos + 1] == '{') { + pos += 2; + final int startPos = pos; + int nesting = 1; + while (pos < chars.length) { + if (chars[pos] == '}') { + nesting--; + pos++; + if (nesting <= 0) { + break; + } + } else if (chars[pos] == '$' && pos + 1 < chars.length && chars[pos + 1] == '{') { + nesting++; + pos += 2; + } else { + pos++; + } + } + if (nesting > 0) { + sb.append("${"); + pos++; + } else { + final int endPos = pos - 1; + assert startPos <= endPos; + final String spec = new String(chars, startPos, endPos - startPos); + final String[] tmp = spec.split(":", 2); + if (tmp.length < 2) { + if (tmp[0].equals("NAME")) { + sb.append(getBestName()); + } else { + sb.append(getAttributeString(tmp[0])); + } + } else { + if (hasAttribute(tmp[0])) { + sb.append(toString(tmp[1])); + } + } + } + } else { + sb.append(chars[pos]); + pos++; + } + } + + return sb.toString(); + } + + /** * Returns <code>this</code> as its real type. * @return <code>this<c/code> */ Modified: trunk/model/src/app/net/sf/gridarta/model/baseobject/BaseObject.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/baseobject/BaseObject.java 2010-10-17 21:40:32 UTC (rev 8734) +++ trunk/model/src/app/net/sf/gridarta/model/baseobject/BaseObject.java 2010-10-18 16:54:49 UTC (rev 8735) @@ -551,4 +551,22 @@ */ void facesReloaded(); + /** + * Returns a string representation of this game object. The string + * representation is the given <code>format</code> string which supports the + * following replacements: + * <p/> + * <ul> + * <li>$$ - a string $ character + * <li>${NAME} - the in-game object name + * <li>${name} - the value of attribute "name" + * <li>${name:text} - text if the attribute name exists; empty otherwise. + * replacements within "text" are processed + * </ul> + * @param format the format to use + * @return the string representation + */ + @NotNull + String toString(@NotNull String format); + } // interface BaseObject Modified: trunk/model/src/test/net/sf/gridarta/model/baseobject/AbstractBaseObjectTest.java =================================================================== --- trunk/model/src/test/net/sf/gridarta/model/baseobject/AbstractBaseObjectTest.java 2010-10-17 21:40:32 UTC (rev 8734) +++ trunk/model/src/test/net/sf/gridarta/model/baseobject/AbstractBaseObjectTest.java 2010-10-18 16:54:49 UTC (rev 8735) @@ -417,6 +417,29 @@ } /** + * Checks that {@link AbstractBaseObject#toString(String)} works as + * expected. + */ + @Test + public void testToString1() { + final AnimationObjects<TestGameObject, TestMapArchObject, TestArchetype> animationObjects = new TestAnimationObjects(); + final FaceObjectProviders faceObjectProviders = newFaceObjectProviders(); + final TestArchetype archetype1 = newArchetype("arch", "level 10", faceObjectProviders, animationObjects); + final BaseObject<?, ?, ?, ?> gameObject = new TestGameObject(archetype1, faceObjectProviders, animationObjects); + gameObject.setAttributeString("name", "Name"); + gameObject.setAttributeString("title", "Title"); + + Assert.assertEquals("format", gameObject.toString("format")); + Assert.assertEquals("Name TitleNameName TitleTitle", gameObject.toString("${NAME}${name}${NAME}${title}${other}")); + Assert.assertEquals("", gameObject.toString("${other:abc}")); + Assert.assertEquals("abc", gameObject.toString("${name:abc}")); + Assert.assertEquals("abc", gameObject.toString("${level:abc}")); + Assert.assertEquals("test", gameObject.toString("te${other: 1${other}2 }st")); + Assert.assertEquals("te 1Name2 st", gameObject.toString("te${name: 1${name}2 }st")); + Assert.assertEquals("te 1102 st", gameObject.toString("te${level: 1${level}2 }st")); + } + + /** * Checks that the {@link BaseObject#NAME} attribute of an {@link * GameObject} contains the expected value. * @param gameObject the game object to check Modified: trunk/src/app/net/sf/gridarta/gui/connectionview/CellRenderer.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/connectionview/CellRenderer.java 2010-10-17 21:40:32 UTC (rev 8734) +++ trunk/src/app/net/sf/gridarta/gui/connectionview/CellRenderer.java 2010-10-18 16:54:49 UTC (rev 8735) @@ -25,13 +25,15 @@ import javax.swing.DefaultListCellRenderer; import javax.swing.JList; import net.sf.gridarta.model.baseobject.BaseObject; +import org.jetbrains.annotations.NotNull; /** * A {@link DefaultListCellRenderer} for rendering {@link Connection} objects in * a list. * @author Andreas Kirschbaum + * @noinspection AbstractClassExtendsConcreteClass */ -public class CellRenderer<K> extends DefaultListCellRenderer { +public abstract class CellRenderer<K> extends DefaultListCellRenderer { /** * Serial Version UID. @@ -49,6 +51,12 @@ private final Collection<String> names = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER); /** + * Creates a new instance. + */ + protected CellRenderer() { + } + + /** * {@inheritDoc} */ @Override @@ -60,12 +68,12 @@ final Connection<K> connection = (Connection<K>) value; sbForFormat.setLength(0); - sbForFormat.append(connection.getKey()); + sbForFormat.append(formatKey(connection.getKey())); sbForFormat.append(":"); names.clear(); for (final BaseObject<?, ?, ?, ?> gameObject : connection) { - names.add(gameObject.getBestName()); + names.add(formatValue(gameObject)); } for (final String name : names) { sbForFormat.append(" "); @@ -76,4 +84,20 @@ return this; } + /** + * Returns a string representation for a key. + * @param key the key + * @return the string representation + */ + @NotNull + protected abstract String formatKey(@NotNull final K key); + + /** + * Returns a string representation for a value. + * @param gameObject the value + * @return the string representation + */ + @NotNull + protected abstract String formatValue(@NotNull final BaseObject<?, ?, ?, ?> gameObject); + } // class CellRenderer Modified: trunk/src/app/net/sf/gridarta/gui/connectionview/ConnectionView.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/connectionview/ConnectionView.java 2010-10-17 21:40:32 UTC (rev 8734) +++ trunk/src/app/net/sf/gridarta/gui/connectionview/ConnectionView.java 2010-10-18 16:54:49 UTC (rev 8735) @@ -19,9 +19,11 @@ package net.sf.gridarta.gui.connectionview; +import java.util.Comparator; import net.sf.gridarta.delayedmapmodel.DelayedMapModelListenerManager; import net.sf.gridarta.gui.map.mapview.MapViewManager; import net.sf.gridarta.model.archetype.Archetype; +import net.sf.gridarta.model.baseobject.BaseObject; import net.sf.gridarta.model.connectionview.Connections; import net.sf.gridarta.model.gameobject.GameObject; import net.sf.gridarta.model.maparchobject.MapArchObject; @@ -47,7 +49,18 @@ * manager to use */ public ConnectionView(@NotNull final MapViewManager<G, A, R> mapViewManager, @NotNull final DelayedMapModelListenerManager<G, A, R> delayedMapModelListenerManager) { - super(mapViewManager, delayedMapModelListenerManager); + super(new Comparator<Integer>() { + @Override + public int compare(@NotNull final Integer o1, @NotNull final Integer o2) { + if (o1 < o2) { + return -1; + } + if (o1 > o2) { + return +1; + } + return 0; + } + }, new ConnectionCellRenderer(), mapViewManager, delayedMapModelListenerManager); } /** @@ -76,4 +89,35 @@ } } + /** + * A {@link CellRenderer} for the connection view. + * @author Andreas Kirschbaum + */ + private static class ConnectionCellRenderer extends CellRenderer<Integer> { + + /** + * The serial version UID. + */ + private static final long serialVersionUID = 1L; + + /** + * {@inheritDoc} + */ + @NotNull + @Override + protected String formatKey(@NotNull final Integer key) { + return key.toString(); + } + + /** + * {@inheritDoc} + */ + @NotNull + @Override + protected String formatValue(@NotNull final BaseObject<?, ?, ?, ?> gameObject) { + return gameObject.getBestName(); + } + + } + } // class ConnectionView Modified: trunk/src/app/net/sf/gridarta/gui/connectionview/LockedItemsView.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/connectionview/LockedItemsView.java 2010-10-17 21:40:32 UTC (rev 8734) +++ trunk/src/app/net/sf/gridarta/gui/connectionview/LockedItemsView.java 2010-10-18 16:54:49 UTC (rev 8735) @@ -24,6 +24,7 @@ import net.sf.gridarta.delayedmapmodel.DelayedMapModelListenerManager; import net.sf.gridarta.gui.map.mapview.MapViewManager; import net.sf.gridarta.model.archetype.Archetype; +import net.sf.gridarta.model.baseobject.BaseObject; import net.sf.gridarta.model.gameobject.GameObject; import net.sf.gridarta.model.maparchobject.MapArchObject; import org.jetbrains.annotations.NotNull; @@ -54,7 +55,7 @@ * @param typeNumbers the type numbers to consider */ public LockedItemsView(@NotNull final MapViewManager<G, A, R> mapViewManager, @NotNull final DelayedMapModelListenerManager<G, A, R> delayedMapModelListenerManager, @NotNull final int... typeNumbers) { - super(mapViewManager, delayedMapModelListenerManager); + super(String.CASE_INSENSITIVE_ORDER, new LockedItemsCellRenderer(), mapViewManager, delayedMapModelListenerManager); for (final int typeNumber : typeNumbers) { this.typeNumbers.add(typeNumber); } @@ -84,4 +85,35 @@ } } + /** + * A {@link CellRenderer} for the locked items view. + * @author Andreas Kirschbaum + */ + private static class LockedItemsCellRenderer extends CellRenderer<String> { + + /** + * The serial version UID. + */ + private static final long serialVersionUID = 1L; + + /** + * {@inheritDoc} + */ + @NotNull + @Override + protected String formatKey(@NotNull final String key) { + return key; + } + + /** + * {@inheritDoc} + */ + @NotNull + @Override + protected String formatValue(@NotNull final BaseObject<?, ?, ?, ?> gameObject) { + return gameObject.getBestName(); + } + + } + } // class LockedItemsView Added: trunk/src/app/net/sf/gridarta/gui/connectionview/MonsterCellRenderer.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/connectionview/MonsterCellRenderer.java (rev 0) +++ trunk/src/app/net/sf/gridarta/gui/connectionview/MonsterCellRenderer.java 2010-10-18 16:54:49 UTC (rev 8735) @@ -0,0 +1,57 @@ +/* + * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games. + * Copyright (C) 2000-2010 The Gridarta Developers. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +package net.sf.gridarta.gui.connectionview; + +import net.sf.gridarta.model.archetype.Archetype; +import net.sf.gridarta.model.baseobject.BaseObject; +import net.sf.gridarta.model.gameobject.GameObject; +import net.sf.gridarta.model.maparchobject.MapArchObject; +import org.jetbrains.annotations.NotNull; + +/** + * A {@link CellRenderer} for the monster view. + * @author Andreas Kirschbaum + */ +public class MonsterCellRenderer<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A,R>> extends CellRenderer<GameObject<G, A, R>> { + + /** + * The serial version UID. + */ + private static final long serialVersionUID = 1L; + + /** + * {@inheritDoc} + */ + @NotNull + @Override + protected String formatKey(@NotNull final GameObject<G, A, R> key) { + return key.toString("${NAME}${level: (lvl ${level})}"); + } + + /** + * {@inheritDoc} + */ + @NotNull + @Override + protected String formatValue(@NotNull final BaseObject<?, ?, ?, ?> gameObject) { + return gameObject.getBestName(); + } + +} // class MonsterCellRenderer Property changes on: trunk/src/app/net/sf/gridarta/gui/connectionview/MonsterCellRenderer.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + LF Modified: trunk/src/app/net/sf/gridarta/gui/connectionview/MonsterControl.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/connectionview/MonsterControl.java 2010-10-17 21:40:32 UTC (rev 8734) +++ trunk/src/app/net/sf/gridarta/gui/connectionview/MonsterControl.java 2010-10-18 16:54:49 UTC (rev 8735) @@ -31,7 +31,7 @@ * The controller of the monster view control. * @author Andreas Kirschbaum */ -public class MonsterControl<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends Control<String, G, A, R> { +public class MonsterControl<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends Control<GameObject<G, A, R>, G, A, R> { /** * Create a new instance. Modified: trunk/src/app/net/sf/gridarta/gui/connectionview/MonsterView.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/connectionview/MonsterView.java 2010-10-17 21:40:32 UTC (rev 8734) +++ trunk/src/app/net/sf/gridarta/gui/connectionview/MonsterView.java 2010-10-18 16:54:49 UTC (rev 8735) @@ -19,6 +19,8 @@ package net.sf.gridarta.gui.connectionview; +import java.io.Serializable; +import java.util.Comparator; import net.sf.gridarta.delayedmapmodel.DelayedMapModelListenerManager; import net.sf.gridarta.gui.map.mapview.MapViewManager; import net.sf.gridarta.model.archetype.Archetype; @@ -33,7 +35,7 @@ * @author <a href="mailto:ch...@ri...">Christian Hujer</a> * @author Andreas Kirschbaum */ -public class MonsterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends View<String, G, A, R> { +public class MonsterView<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends View<GameObject<G, A, R>, G, A, R> { /** * The serial version UID. @@ -55,7 +57,7 @@ * monster objects */ public MonsterView(@NotNull final MapViewManager<G, A, R> mapViewManager, @NotNull final DelayedMapModelListenerManager<G, A, R> delayedMapModelListenerManager, @NotNull final GameObjectMatcher monsterMatcher) { - super(mapViewManager, delayedMapModelListenerManager); + super(new MonsterComparator<G, A, R>(), new MonsterCellRenderer<G, A, R>(), mapViewManager, delayedMapModelListenerManager); this.monsterMatcher = monsterMatcher; } @@ -76,8 +78,38 @@ */ private void scanGameObject(@NotNull final GameObject<G, A, R> gameObject) { if (gameObject.isHead() && monsterMatcher.isMatching(gameObject)) { - addConnection(gameObject.getBestName(), gameObject); + addConnection(gameObject, gameObject); } } + /** + * A {@link Comparator} for ordering the values of this view. + */ + private static class MonsterComparator<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements Comparator<GameObject<G, A, R>>, Serializable { + + /** + * The serial version UID. + */ + private static final long serialVersionUID = 1L; + + /** + * {@inheritDoc} + */ + @Override + public int compare(@NotNull final GameObject<G, A, R> o1, @NotNull final GameObject<G, A, R> o2) { + final int level1 = o1.getAttributeInt("level"); + final int level2 = o2.getAttributeInt("level"); + if (level1 < level2) { + return +1; + } + if (level1 > level2) { + return -1; + } + + final String name1 = o1.getBestName(); + final String name2 = o2.getBestName(); + return String.CASE_INSENSITIVE_ORDER.compare(name1, name2); + } + + } } // class MonsterView Modified: trunk/src/app/net/sf/gridarta/gui/connectionview/View.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/connectionview/View.java 2010-10-17 21:40:32 UTC (rev 8734) +++ trunk/src/app/net/sf/gridarta/gui/connectionview/View.java 2010-10-18 16:54:49 UTC (rev 8735) @@ -23,6 +23,7 @@ import java.awt.event.MouseListener; import java.util.ArrayList; import java.util.Collection; +import java.util.Comparator; import java.util.Map; import java.util.TreeMap; import javax.swing.JList; @@ -65,7 +66,7 @@ * The connections. */ @NotNull - private final Map<K, Connection<K>> connections = new TreeMap<K, Connection<K>>(); + private final Map<K, Connection<K>> connections; /** * The List with the connections. @@ -124,13 +125,17 @@ /** * Create a panel. + * @param keyComparator the comparator for comparing <code>K</code> values + * @param cellRenderer the cell renderer for displayings key and values * @param mapViewManager the map view manager * @param delayedMapModelListenerManager the delayed map model listener * manager to use + * @noinspection TypeMayBeWeakened // JList does not use type parameters */ - protected View(@NotNull final MapViewManager<G, A, R> mapViewManager, @NotNull final DelayedMapModelListenerManager<G, A, R> delayedMapModelListenerManager) { + protected View(@NotNull final Comparator<K> keyComparator, @NotNull final CellRenderer<K> cellRenderer, @NotNull final MapViewManager<G, A, R> mapViewManager, @NotNull final DelayedMapModelListenerManager<G, A, R> delayedMapModelListenerManager) { + connections = new TreeMap<K, Connection<K>>(keyComparator); setLayout(new BorderLayout()); - connectionList.setCellRenderer(new CellRenderer<A>()); + connectionList.setCellRenderer(cellRenderer); add(new JScrollPane(connectionList)); delayedMapModelListenerManager.addDelayedMapModelListener(delayedMapModelListener); mapViewManager.addMapViewManagerListener(mapViewManagerListener); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-17 21:40:39
|
Revision: 8734 http://gridarta.svn.sourceforge.net/gridarta/?rev=8734&view=rev Author: akirschbaum Date: 2010-10-17 21:40:32 +0000 (Sun, 17 Oct 2010) Log Message: ----------- Add nullable annotations. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/connectionview/Connection.java trunk/src/app/net/sf/gridarta/gui/connectionview/View.java Modified: trunk/src/app/net/sf/gridarta/gui/connectionview/Connection.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/connectionview/Connection.java 2010-10-12 06:20:44 UTC (rev 8733) +++ trunk/src/app/net/sf/gridarta/gui/connectionview/Connection.java 2010-10-17 21:40:32 UTC (rev 8734) @@ -36,6 +36,7 @@ /** * The key. */ + @NotNull private final K key; /** @@ -44,13 +45,14 @@ * @note the initial capacity of 2 assumes that most connection values have * only two game objects: the triggering object and the triggered object */ + @NotNull private final List<GameObject<?, ?, ?>> gameObjects = new ArrayList<GameObject<?, ?, ?>>(2); /** * Create a new instance. * @param key the key */ - public Connection(final K key) { + public Connection(@NotNull final K key) { this.key = key; } @@ -58,6 +60,7 @@ * Return the key. * @return the key */ + @NotNull public K getKey() { return key; } @@ -75,6 +78,7 @@ /** * {@inheritDoc} */ + @NotNull @Override public Iterator<GameObject<?, ?, ?>> iterator() { return Collections.unmodifiableList(gameObjects).iterator(); Modified: trunk/src/app/net/sf/gridarta/gui/connectionview/View.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/connectionview/View.java 2010-10-12 06:20:44 UTC (rev 8733) +++ trunk/src/app/net/sf/gridarta/gui/connectionview/View.java 2010-10-17 21:40:32 UTC (rev 8734) @@ -64,21 +64,25 @@ /** * The connections. */ + @NotNull private final Map<K, Connection<K>> connections = new TreeMap<K, Connection<K>>(); /** * The List with the connections. */ + @NotNull private final JList connectionList = new JList(); /** * Map view corresponding to {@link #connectionList}. */ + @Nullable private MapView<G, A, R> mapView = null; /** * The map view listener to detect changed active maps. */ + @NotNull private final MapViewManagerListener<G, A, R> mapViewManagerListener = new MapViewManagerListener<G, A, R>() { /** {@inheritDoc} */ @@ -105,6 +109,7 @@ /** * The map model listener to detect map changes. */ + @NotNull private final DelayedMapModelListener<G, A, R> delayedMapModelListener = new DelayedMapModelListener<G, A, R>() { /** {@inheritDoc} */ @@ -196,6 +201,7 @@ * Return a list of all selected connections. * @return a list of all selected connections */ + @NotNull public Iterable<Connection<K>> getSelectedConnections() { final Collection<Connection<K>> result = new ArrayList<Connection<K>>(); for (final Object selection : connectionList.getSelectedValues()) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-12 06:20:51
|
Revision: 8733 http://gridarta.svn.sourceforge.net/gridarta/?rev=8733&view=rev Author: akirschbaum Date: 2010-10-12 06:20:44 +0000 (Tue, 12 Oct 2010) Log Message: ----------- Fix checkstyle issues. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/map/maptilepane/FlatMapTilePane.java trunk/src/app/net/sf/gridarta/gui/map/maptilepane/IsoMapTilePane.java Modified: trunk/src/app/net/sf/gridarta/gui/map/maptilepane/FlatMapTilePane.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/map/maptilepane/FlatMapTilePane.java 2010-10-11 07:20:15 UTC (rev 8732) +++ trunk/src/app/net/sf/gridarta/gui/map/maptilepane/FlatMapTilePane.java 2010-10-12 06:20:44 UTC (rev 8733) @@ -20,7 +20,6 @@ package net.sf.gridarta.gui.map.maptilepane; import javax.swing.filechooser.FileFilter; -import net.sf.gridarta.gui.utils.DirectionLayout; import net.sf.gridarta.mapmanager.MapManager; import net.sf.gridarta.model.archetype.Archetype; import net.sf.gridarta.model.direction.Direction; @@ -50,7 +49,8 @@ private static final MapLink[][] tileLink = new MapLink[8][0]; /** - * Maps map direction to {@link DirectionLayout} direction. + * Maps map direction to {@link net.sf.gridarta.gui.utils.DirectionLayout} + * direction. */ private static final Direction[] directionMapping = { Direction.NORTH_WEST, Direction.NORTH_EAST, Direction.SOUTH_EAST, Direction.SOUTH_WEST, }; Modified: trunk/src/app/net/sf/gridarta/gui/map/maptilepane/IsoMapTilePane.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/map/maptilepane/IsoMapTilePane.java 2010-10-11 07:20:15 UTC (rev 8732) +++ trunk/src/app/net/sf/gridarta/gui/map/maptilepane/IsoMapTilePane.java 2010-10-12 06:20:44 UTC (rev 8733) @@ -20,7 +20,6 @@ package net.sf.gridarta.gui.map.maptilepane; import javax.swing.filechooser.FileFilter; -import net.sf.gridarta.gui.utils.DirectionLayout; import net.sf.gridarta.mapmanager.MapManager; import net.sf.gridarta.model.archetype.Archetype; import net.sf.gridarta.model.direction.Direction; @@ -77,7 +76,8 @@ } /** - * Maps map direction to {@link DirectionLayout} direction. + * Maps map direction to {@link net.sf.gridarta.gui.utils.DirectionLayout} + * direction. */ private static final Direction[] directionMapping = { Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST, Direction.NORTH_EAST, Direction.SOUTH_EAST, Direction.SOUTH_WEST, Direction.NORTH_WEST, }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-11 07:20:21
|
Revision: 8732 http://gridarta.svn.sourceforge.net/gridarta/?rev=8732&view=rev Author: akirschbaum Date: 2010-10-11 07:20:15 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Merge duplicated code. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/utils/DirectionLayout.java Modified: trunk/src/app/net/sf/gridarta/gui/utils/DirectionLayout.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/utils/DirectionLayout.java 2010-10-11 07:16:14 UTC (rev 8731) +++ trunk/src/app/net/sf/gridarta/gui/utils/DirectionLayout.java 2010-10-11 07:20:15 UTC (rev 8732) @@ -272,15 +272,15 @@ public Dimension minimumLayoutSize(@NotNull final Container parent) { synchronized (parent.getTreeLock()) { final Dimension dim = new Dimension(0, 0); // return dimension - final Dimension dC = cC == null ? empty : cC.getMinimumSize(); - final Dimension dN = cN == null ? empty : cN.getMinimumSize(); - final Dimension dE = cE == null ? empty : cE.getMinimumSize(); - final Dimension dS = cS == null ? empty : cS.getMinimumSize(); - final Dimension dW = cW == null ? empty : cW.getMinimumSize(); - final Dimension dNE = cNE == null ? empty : cNE.getMinimumSize(); - final Dimension dSE = cSE == null ? empty : cSE.getMinimumSize(); - final Dimension dSW = cSW == null ? empty : cSW.getMinimumSize(); - final Dimension dNW = cNW == null ? empty : cNW.getMinimumSize(); + final Dimension dC = getMinimumSize(cC); + final Dimension dN = getMinimumSize(cN); + final Dimension dE = getMinimumSize(cE); + final Dimension dS = getMinimumSize(cS); + final Dimension dW = getMinimumSize(cW); + final Dimension dNE = getMinimumSize(cNE); + final Dimension dSE = getMinimumSize(cSE); + final Dimension dSW = getMinimumSize(cSW); + final Dimension dNW = getMinimumSize(cNW); dim.height = vGap * 4 + dNW.height + max(dW.height, dN.height) + max(dSW.height, dC.height, dNE.height) + max(dS.height, dE.height) + dSE.height; dim.width = max(hGap * 2 + dSW.width + max(dNW.width, dC.width, dSE.width) + dNE.width, hGap + max(dW.width, dS.width) + max(dN.width, dE.width), max(dNW.width, dSE.width)); final Insets insets = parent.getInsets(); @@ -291,6 +291,17 @@ } /** + * Returns the minimum size of a component or {@link #empty} for + * <code>null</code>. + * @param component the component or <code>null</code> + * @return the minimum size; must not be modified + */ + @NotNull + private static Dimension getMinimumSize(@Nullable final Component component) { + return component == null ? empty : component.getMinimumSize(); + } + + /** * {@inheritDoc} */ @NotNull @@ -298,15 +309,15 @@ public Dimension preferredLayoutSize(final Container parent) { synchronized (parent.getTreeLock()) { final Dimension dim = new Dimension(0, 0); // return dimension - final Dimension dC = cC == null ? empty : cC.getPreferredSize(); - final Dimension dN = cN == null ? empty : cN.getPreferredSize(); - final Dimension dE = cE == null ? empty : cE.getPreferredSize(); - final Dimension dS = cS == null ? empty : cS.getPreferredSize(); - final Dimension dW = cW == null ? empty : cW.getPreferredSize(); - final Dimension dNE = cNE == null ? empty : cNE.getPreferredSize(); - final Dimension dSE = cSE == null ? empty : cSE.getPreferredSize(); - final Dimension dSW = cSW == null ? empty : cSW.getPreferredSize(); - final Dimension dNW = cNW == null ? empty : cNW.getPreferredSize(); + final Dimension dC = getPreferredSize(cC); + final Dimension dN = getPreferredSize(cN); + final Dimension dE = getPreferredSize(cE); + final Dimension dS = getPreferredSize(cS); + final Dimension dW = getPreferredSize(cW); + final Dimension dNE = getPreferredSize(cNE); + final Dimension dSE = getPreferredSize(cSE); + final Dimension dSW = getPreferredSize(cSW); + final Dimension dNW = getPreferredSize(cNW); dim.height = vGap * 4 + dNW.height + max(dW.height, dN.height) + max(dSW.height, dC.height, dNE.height) + max(dS.height, dE.height) + dSE.height; dim.width = hGap * 2 + dSW.width + max(dNW.width, dC.width, dSE.width) + dNE.width; final Insets insets = parent.getInsets(); @@ -317,6 +328,17 @@ } /** + * Returns the preferred size of a component or {@link #empty} for + * <code>null</code>. + * @param component the component or <code>null</code> + * @return the preferred size; must not be modified + */ + @NotNull + private static Dimension getPreferredSize(@Nullable final Component component) { + return component == null ? empty : component.getMinimumSize(); + } + + /** * {@inheritDoc} */ @NotNull This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-11 07:16:20
|
Revision: 8731 http://gridarta.svn.sourceforge.net/gridarta/?rev=8731&view=rev Author: akirschbaum Date: 2010-10-11 07:16:14 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Merge duplicated code. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/utils/DirectionLayout.java Modified: trunk/src/app/net/sf/gridarta/gui/utils/DirectionLayout.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/utils/DirectionLayout.java 2010-10-11 07:13:52 UTC (rev 8730) +++ trunk/src/app/net/sf/gridarta/gui/utils/DirectionLayout.java 2010-10-11 07:16:14 UTC (rev 8731) @@ -67,6 +67,13 @@ } /** + * Empty dimension as fallback for <code>null</code> components. Will never + * be modified. + */ + @NotNull + private static final Dimension empty = new Dimension(0, 0); + + /** * Adds an entry to {@link #daimoninToDirectionMap}. * @param direction the entry to add */ @@ -265,7 +272,6 @@ public Dimension minimumLayoutSize(@NotNull final Container parent) { synchronized (parent.getTreeLock()) { final Dimension dim = new Dimension(0, 0); // return dimension - final Dimension empty = new Dimension(0, 0); // fallback if null component final Dimension dC = cC == null ? empty : cC.getMinimumSize(); final Dimension dN = cN == null ? empty : cN.getMinimumSize(); final Dimension dE = cE == null ? empty : cE.getMinimumSize(); @@ -292,7 +298,6 @@ public Dimension preferredLayoutSize(final Container parent) { synchronized (parent.getTreeLock()) { final Dimension dim = new Dimension(0, 0); // return dimension - final Dimension empty = new Dimension(0, 0); // fallback if null component final Dimension dC = cC == null ? empty : cC.getPreferredSize(); final Dimension dN = cN == null ? empty : cN.getPreferredSize(); final Dimension dE = cE == null ? empty : cE.getPreferredSize(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-11 07:13:58
|
Revision: 8730 http://gridarta.svn.sourceforge.net/gridarta/?rev=8730&view=rev Author: akirschbaum Date: 2010-10-11 07:13:52 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Remove unused code. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/utils/DirectionLayout.java Modified: trunk/src/app/net/sf/gridarta/gui/utils/DirectionLayout.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/utils/DirectionLayout.java 2010-10-11 07:13:19 UTC (rev 8729) +++ trunk/src/app/net/sf/gridarta/gui/utils/DirectionLayout.java 2010-10-11 07:13:52 UTC (rev 8730) @@ -167,38 +167,6 @@ } /** - * Returns the horizontal gap between components. - * @return the horizontal gap - */ - public int getHGap() { - return hGap; - } - - /** - * Returns the vertical gap between components. - * @return the vertical gap - */ - public int getVGap() { - return vGap; - } - - /** - * Sets the horizontal gap between components. - * @param hGap new horizontal gap between components - */ - public void setHGap(final int hGap) { - this.hGap = hGap; - } - - /** - * Sets the vertical gap between components. - * @param vGap new vertical gap between components - */ - public void setVGap(final int vGap) { - this.vGap = vGap; - } - - /** * {@inheritDoc} */ @SuppressWarnings({ "ChainOfInstanceofChecks" }) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-11 07:13:26
|
Revision: 8729 http://gridarta.svn.sourceforge.net/gridarta/?rev=8729&view=rev Author: akirschbaum Date: 2010-10-11 07:13:19 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Remove DirectionLayout.Direction. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/map/maptilepane/AbstractMapTilePane.java trunk/src/app/net/sf/gridarta/gui/map/maptilepane/FlatMapTilePane.java trunk/src/app/net/sf/gridarta/gui/map/maptilepane/IsoMapTilePane.java trunk/src/app/net/sf/gridarta/gui/utils/DirectionLayout.java Modified: trunk/src/app/net/sf/gridarta/gui/map/maptilepane/AbstractMapTilePane.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/map/maptilepane/AbstractMapTilePane.java 2010-10-11 07:02:25 UTC (rev 8728) +++ trunk/src/app/net/sf/gridarta/gui/map/maptilepane/AbstractMapTilePane.java 2010-10-11 07:13:19 UTC (rev 8729) @@ -137,7 +137,7 @@ * @param mapPathNormalizer the map path normalizer for converting map paths * to files */ - protected AbstractMapTilePane(@NotNull final MapManager<G, A, R> mapManager, @NotNull final GlobalSettings globalSettings, @NotNull final MapModel<G, A, R> mapModel, @NotNull final MapLink[][] tileLink, @NotNull final DirectionLayout.Direction[] directionMapping, @NotNull final int[] nextFocus, @NotNull final FileFilter mapFileFilter, @NotNull final MapPathNormalizer mapPathNormalizer) { + protected AbstractMapTilePane(@NotNull final MapManager<G, A, R> mapManager, @NotNull final GlobalSettings globalSettings, @NotNull final MapModel<G, A, R> mapModel, @NotNull final MapLink[][] tileLink, @NotNull final Direction[] directionMapping, @NotNull final int[] nextFocus, @NotNull final FileFilter mapFileFilter, @NotNull final MapPathNormalizer mapPathNormalizer) { this.globalSettings = globalSettings; this.mapModel = mapModel; this.nextFocus = nextFocus; @@ -166,7 +166,7 @@ * @param directionMapping maps direction to direction layout direction * @return the JTextFields with the tile paths */ - private MapTilePanel[] buildComponents(@NotNull final DirectionLayout.Direction[] directionMapping) { + private MapTilePanel[] buildComponents(@NotNull final Direction[] directionMapping) { setLayout(new GridBagLayout()); final GridBagConstraints gbc = new GridBagConstraints(); gbc.gridwidth = GridBagConstraints.REMAINDER; @@ -202,7 +202,7 @@ * @return the newly built tile panel */ @NotNull - private static Component buildTilePanels(@NotNull final MapTilePanel[] tilePanels, @NotNull final DirectionLayout.Direction[] directionMapping) { + private static Component buildTilePanels(@NotNull final MapTilePanel[] tilePanels, @NotNull final Direction[] directionMapping) { final JComponent panel = new JPanel(new DirectionLayout()); panel.setBorder(new CompoundBorder(BorderFactory.createTitledBorder(ActionBuilderUtils.getString(ACTION_BUILDER, "mapTiles")), GUIConstants.DIALOG_BORDER)); for (int index = 0; index < tilePanels.length; index++) { Modified: trunk/src/app/net/sf/gridarta/gui/map/maptilepane/FlatMapTilePane.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/map/maptilepane/FlatMapTilePane.java 2010-10-11 07:02:25 UTC (rev 8728) +++ trunk/src/app/net/sf/gridarta/gui/map/maptilepane/FlatMapTilePane.java 2010-10-11 07:13:19 UTC (rev 8729) @@ -23,6 +23,7 @@ import net.sf.gridarta.gui.utils.DirectionLayout; import net.sf.gridarta.mapmanager.MapManager; import net.sf.gridarta.model.archetype.Archetype; +import net.sf.gridarta.model.direction.Direction; import net.sf.gridarta.model.gameobject.GameObject; import net.sf.gridarta.model.maparchobject.MapArchObject; import net.sf.gridarta.model.mapmodel.MapModel; @@ -51,7 +52,7 @@ /** * Maps map direction to {@link DirectionLayout} direction. */ - private static final DirectionLayout.Direction[] directionMapping = { DirectionLayout.Direction.NW, DirectionLayout.Direction.NE, DirectionLayout.Direction.SE, DirectionLayout.Direction.SW, }; + private static final Direction[] directionMapping = { Direction.NORTH_WEST, Direction.NORTH_EAST, Direction.SOUTH_EAST, Direction.SOUTH_WEST, }; /** * Indices of next focus. Modified: trunk/src/app/net/sf/gridarta/gui/map/maptilepane/IsoMapTilePane.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/map/maptilepane/IsoMapTilePane.java 2010-10-11 07:02:25 UTC (rev 8728) +++ trunk/src/app/net/sf/gridarta/gui/map/maptilepane/IsoMapTilePane.java 2010-10-11 07:13:19 UTC (rev 8729) @@ -79,7 +79,7 @@ /** * Maps map direction to {@link DirectionLayout} direction. */ - private static final DirectionLayout.Direction[] directionMapping = { DirectionLayout.Direction.N, DirectionLayout.Direction.E, DirectionLayout.Direction.S, DirectionLayout.Direction.W, DirectionLayout.Direction.NE, DirectionLayout.Direction.SE, DirectionLayout.Direction.SW, DirectionLayout.Direction.NW, }; + private static final Direction[] directionMapping = { Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST, Direction.NORTH_EAST, Direction.SOUTH_EAST, Direction.SOUTH_WEST, Direction.NORTH_WEST, }; /** * Indices of next focus. Modified: trunk/src/app/net/sf/gridarta/gui/utils/DirectionLayout.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/utils/DirectionLayout.java 2010-10-11 07:02:25 UTC (rev 8728) +++ trunk/src/app/net/sf/gridarta/gui/utils/DirectionLayout.java 2010-10-11 07:13:19 UTC (rev 8729) @@ -25,6 +25,7 @@ import java.awt.Insets; import java.awt.LayoutManager2; import java.io.Serializable; +import net.sf.gridarta.model.direction.Direction; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -53,83 +54,26 @@ */ @NotNull private static final Direction[] daimoninToDirectionMap = new Direction[8]; - //private static Map<Integer,Direction> daimoninToDirectionMap = new HashMap<Integer,Direction>(); + static { + addDirection(Direction.NORTH); + addDirection(Direction.EAST); + addDirection(Direction.SOUTH); + addDirection(Direction.WEST); + addDirection(Direction.NORTH_EAST); + addDirection(Direction.SOUTH_EAST); + addDirection(Direction.SOUTH_WEST); + addDirection(Direction.NORTH_WEST); + } + /** - * The layout constraints. Variables with name <code>daimoninDirection</code> - * should be a valid direction for Daimonin: {@link #N}, {@link #E}, {@link - * #S}, {@link #W}, {@link #NE}, {@link #SE}, {@link #SW}, {@link #NW}. - * @todo this enum is somewhat generic, move it somewhere else + * Adds an entry to {@link #daimoninToDirectionMap}. + * @param direction the entry to add */ - @SuppressWarnings({ "PublicInnerClass" }) - public enum Direction { + private static void addDirection(@NotNull final Direction direction) { + daimoninToDirectionMap[direction.ordinal()] = direction; + } - /** - * North Layout Position. - */ - N(net.sf.gridarta.model.direction.Direction.NORTH), - - /** - * East Layout Position. - */ - E(net.sf.gridarta.model.direction.Direction.EAST), - - /** - * South Layout Position. - */ - S(net.sf.gridarta.model.direction.Direction.SOUTH), - - /** - * West Layout Position. - */ - W(net.sf.gridarta.model.direction.Direction.WEST), - - /** - * NorthEast Layout Position. - */ - NE(net.sf.gridarta.model.direction.Direction.NORTH_EAST), - - /** - * SouthEast Layout Position. - */ - SE(net.sf.gridarta.model.direction.Direction.SOUTH_EAST), - - /** - * SouthWest Layout Position. - */ - SW(net.sf.gridarta.model.direction.Direction.SOUTH_WEST), - - /** - * NorthWest Layout Position. - */ - NW(net.sf.gridarta.model.direction.Direction.NORTH_WEST); - - /** - * The direction number used in Daimonin. - */ - private final int daimoninDirection; - - /** - * Enum constructor. - * @param daimoninDirection direction from Daimonin - * @noinspection TypeMayBeWeakened - */ - Direction(@NotNull final net.sf.gridarta.model.direction.Direction daimoninDirection) { - this.daimoninDirection = daimoninDirection.ordinal(); - daimoninToDirectionMap[this.daimoninDirection] = this; - //daimoninToDirectionMap.put(daimoninDirection, this); - } - - /** - * Get the Daimonin Direction. - * @return DaimoninDirection - */ - public int getDaimoninDirection() { - return daimoninDirection; - } - - } // enum Direction - /** * Horizontal Gap. * @serial include @@ -277,28 +221,28 @@ } synchronized (comp.getTreeLock()) { switch (direction) { - case N: + case NORTH: cN = comp; break; - case E: + case EAST: cE = comp; break; - case S: + case SOUTH: cS = comp; break; - case W: + case WEST: cW = comp; break; - case NE: + case NORTH_EAST: cNE = comp; break; - case SE: + case SOUTH_EAST: cSE = comp; break; - case SW: + case SOUTH_WEST: cSW = comp; break; - case NW: + case NORTH_WEST: cNW = comp; break; default: @@ -540,7 +484,6 @@ @NotNull private static Direction getDirectionFromDaimonin(final int daimoninDirection) { return daimoninToDirectionMap[daimoninDirection]; - //return daimoninToDirectionMap.get(daimoninDirection); } } // class DirectionLayout This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-11 07:02:32
|
Revision: 8728 http://gridarta.svn.sourceforge.net/gridarta/?rev=8728&view=rev Author: akirschbaum Date: 2010-10-11 07:02:25 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Add comments. Modified Paths: -------------- trunk/model/src/app/net/sf/gridarta/model/validation/checks/ValidatorFactory.java trunk/src/app/net/sf/gridarta/gui/selectedsquare/SelectedSquareView.java trunk/src/app/net/sf/gridarta/gui/utils/GList.java Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/ValidatorFactory.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/ValidatorFactory.java 2010-10-11 06:56:20 UTC (rev 8727) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/ValidatorFactory.java 2010-10-11 07:02:25 UTC (rev 8728) @@ -124,6 +124,7 @@ } else if (constructors.length > 1) { throw new NoSuchValidatorException("class " + args[0] + " has more than one public constructor"); } + //Class.getConstructors() did return the wrong type @SuppressWarnings({ "unchecked" }) final Constructor<? extends Validator<G, A, R>> constructor = (Constructor<? extends Validator<G, A, R>>) constructors[0]; final Class<?>[] constructorParameterTypes = constructor.getParameterTypes(); final Object[] constructorArguments = new Object[constructorParameterTypes.length]; Modified: trunk/src/app/net/sf/gridarta/gui/selectedsquare/SelectedSquareView.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/selectedsquare/SelectedSquareView.java 2010-10-11 06:56:20 UTC (rev 8727) +++ trunk/src/app/net/sf/gridarta/gui/selectedsquare/SelectedSquareView.java 2010-10-11 07:02:25 UTC (rev 8728) @@ -504,6 +504,7 @@ return null; } + //DefaultListModel does not use type parameters @SuppressWarnings({ "unchecked" }) final G gameObject = (G) model.getElementAt(actualIndex); return gameObject; Modified: trunk/src/app/net/sf/gridarta/gui/utils/GList.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/utils/GList.java 2010-10-11 06:56:20 UTC (rev 8727) +++ trunk/src/app/net/sf/gridarta/gui/utils/GList.java 2010-10-11 07:02:25 UTC (rev 8728) @@ -93,6 +93,7 @@ */ @Override public T getSelectedValue() { + //JList does not use type parameters @SuppressWarnings({ "unchecked" }) final T selectedValue = (T) super.getSelectedValue(); return selectedValue; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-11 06:56:26
|
Revision: 8727 http://gridarta.svn.sourceforge.net/gridarta/?rev=8727&view=rev Author: akirschbaum Date: 2010-10-11 06:56:20 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Merge duplicated code. Modified Paths: -------------- trunk/model/src/app/net/sf/gridarta/model/mapmodel/MapSquareGrid.java Modified: trunk/model/src/app/net/sf/gridarta/model/mapmodel/MapSquareGrid.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/mapmodel/MapSquareGrid.java 2010-10-11 06:52:45 UTC (rev 8726) +++ trunk/model/src/app/net/sf/gridarta/model/mapmodel/MapSquareGrid.java 2010-10-11 06:56:20 UTC (rev 8727) @@ -67,7 +67,7 @@ public MapSquareGrid(@NotNull final MapModel<G, A, R> mapModel, @NotNull final Size2D mapSize) { this.mapModel = mapModel; this.mapSize = mapSize; - mapGrid = (MapSquare<G, A, R>[][]) new MapSquare<?, ?, ?>[mapSize.getWidth()][mapSize.getHeight()]; + mapGrid = newMapGrid(mapSize); for (int y = 0; y < mapSize.getHeight(); y++) { for (int x = 0; x < mapSize.getWidth(); x++) { mapGrid[x][y] = new MapSquare<G, A, R>(mapModel, x, y); @@ -76,6 +76,16 @@ } /** + * Allocates a new 2-dimensional {@link MapSquare} array of the given size. + * @param mapSize the size + * @return the array + */ + @NotNull + private MapSquare<G, A, R>[][] newMapGrid(@NotNull final Size2D mapSize) { + return (MapSquare<G, A, R>[][]) new MapSquare<?, ?, ?>[mapSize.getWidth()][mapSize.getHeight()]; + } + + /** * Returns the {@link MapSquare} at a given location. * @param x the location's x coordinate * @param y the location's y coordinate @@ -133,7 +143,7 @@ * @param newSize the new size */ public void resize(@NotNull final Size2D newSize) { - final MapSquare<G, A, R>[][] newGrid = (MapSquare<G, A, R>[][]) new MapSquare<?, ?, ?>[newSize.getWidth()][newSize.getHeight()]; + final MapSquare<G, A, R>[][] newGrid = newMapGrid(newSize); // relink all arches to the new grid for (int x = 0; x < newSize.getWidth(); x++) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-11 06:52:51
|
Revision: 8726 http://gridarta.svn.sourceforge.net/gridarta/?rev=8726&view=rev Author: akirschbaum Date: 2010-10-11 06:52:45 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Fix unchecked warning. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/actions/AttachTiledMaps.java Modified: trunk/src/app/net/sf/gridarta/actions/AttachTiledMaps.java =================================================================== --- trunk/src/app/net/sf/gridarta/actions/AttachTiledMaps.java 2010-10-11 06:45:25 UTC (rev 8725) +++ trunk/src/app/net/sf/gridarta/actions/AttachTiledMaps.java 2010-10-11 06:52:45 UTC (rev 8726) @@ -21,6 +21,9 @@ import java.io.File; import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; import java.util.regex.Matcher; import net.sf.gridarta.mapmanager.MapManager; import net.sf.gridarta.model.archetype.Archetype; @@ -97,7 +100,7 @@ } if (performAction) { - final MapControl<G, A, R>[] mapControls = (MapControl<G, A, R>[]) new MapControl<?, ?, ?>[tilePaths.length]; + final List<MapControl<G, A, R>> mapControls = new ArrayList<MapControl<G, A, R>>(tilePaths.length); try { // first action: we go around all links and try to load the maps loadAdjacentMaps(mapModel, mapControls, tilePaths); @@ -133,16 +136,20 @@ * @param tilePaths the new tile paths * @throws CannotLoadMapFileException if a map file cannot be loaded */ - private void loadAdjacentMaps(@NotNull final MapModel<G, A, R> mapModel, @NotNull final MapControl<G, A, R>[] mapControls, @NotNull final String[] tilePaths) throws CannotLoadMapFileException { - for (int i = 0; i < tilePaths.length; i++) { - final String path = tilePaths[i]; + private void loadAdjacentMaps(@NotNull final MapModel<G, A, R> mapModel, @NotNull final Collection<MapControl<G, A, R>> mapControls, @NotNull final String[] tilePaths) throws CannotLoadMapFileException { + for (@Nullable final String tilePath : tilePaths) { + @Nullable final MapControl<G, A, R> mapControl; + final String path = tilePath; if (path != null && path.length() != 0) { try { - mapControls[i] = loadMapControl(mapModel, path); + mapControl = loadMapControl(mapModel, path); } catch (final IOException ex) { throw new CannotLoadMapFileException(path, ex); } + } else { + mapControl = null; } + mapControls.add(mapControl); } } @@ -152,7 +159,7 @@ * @param mapControls the adjacent maps to save * @throws CannotSaveMapFileException if the map cannot be saved */ - private void saveAdjacentMaps(final MapControl<G, A, R>[] mapControls) throws CannotSaveMapFileException { + private void saveAdjacentMaps(@NotNull final Iterable<MapControl<G, A, R>> mapControls) throws CannotSaveMapFileException { for (final MapControl<G, A, R> mapControl : mapControls) { if (mapControl != null) { try { @@ -173,22 +180,22 @@ * @param mapControls the loaded maps; will be updated * @throws CannotLoadMapFileException if a map file cannot be loaded */ - private void fillAdjacentMaps(@NotNull final MapControl<G, A, R>[] mapControls) throws CannotLoadMapFileException { + private void fillAdjacentMaps(@NotNull final List<MapControl<G, A, R>> mapControls) throws CannotLoadMapFileException { boolean repeatFlag = true; while (repeatFlag) { repeatFlag = false; - for (int i = 0; i < mapControls.length; i++) { - final MapControl<G, A, R> mapControl = mapControls[i]; + for (int i = 0; i < mapControls.size(); i++) { + final MapControl<G, A, R> mapControl = mapControls.get(i); if (mapControl != null) { final TileLink tileLink = tileLinks[i]; final MapLink[] mapLinks = tileLink.getMapLinks(); for (final MapLink mapLink : mapLinks) { final Direction direction = mapLink.getMapDirection(); - if (mapControls[direction.ordinal()] == null) { + if (mapControls.get(direction.ordinal()) == null) { final String tilePath = mapControl.getMapModel().getMapArchObject().getTilePath(mapLink.getLinkDirection()); if (tilePath.length() > 0) { try { - mapControls[direction.ordinal()] = loadMapControl(mapControl.getMapModel(), tilePath); + mapControls.set(direction.ordinal(), loadMapControl(mapControl.getMapModel(), tilePath)); repeatFlag = true; } catch (final IOException ex) { throw new CannotLoadMapFileException(tilePath, ex); @@ -209,7 +216,7 @@ * @param mapControls the attached maps to check * @throws MapSizeMismatchException if a mismatched map size was detected */ - private void validateMapSizes(@NotNull final MapModel<G, A, R> mapModel, @NotNull final MapControl<G, A, R>[] mapControls) throws MapSizeMismatchException { + private void validateMapSizes(@NotNull final MapModel<G, A, R> mapModel, @NotNull final Iterable<MapControl<G, A, R>> mapControls) throws MapSizeMismatchException { final Size2D mapSize = mapModel.getMapArchObject().getMapSize(); for (final MapControl<G, A, R> mapControl : mapControls) { if (mapControl != null) { @@ -234,9 +241,9 @@ * @throws CannotSaveMapFileException if a map file cannot be saved * @throws InvalidPathNameException if a map path cannot be converted */ - private void updateTilePaths(@NotNull final MapModel<G, A, R> mapModel, @NotNull final MapControl<G, A, R>[] mapControls, @NotNull final String[] tilePaths, @NotNull final File mapsDirectory) throws CannotSaveMapFileException, InvalidPathNameException { + private void updateTilePaths(@NotNull final MapModel<G, A, R> mapModel, @NotNull final List<MapControl<G, A, R>> mapControls, @NotNull final String[] tilePaths, @NotNull final File mapsDirectory) throws CannotSaveMapFileException, InvalidPathNameException { for (int i = 0; i < tilePaths.length; i++) { - final MapControl<G, A, R> mapControl = mapControls[i]; + final MapControl<G, A, R> mapControl = mapControls.get(i); if (mapControl != null) { // generate a valid path relative to both map positions final File mapFile1 = mapModel.getMapFile(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-11 06:45:33
|
Revision: 8725 http://gridarta.svn.sourceforge.net/gridarta/?rev=8725&view=rev Author: akirschbaum Date: 2010-10-11 06:45:25 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Fix unchecked warning. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/script/parameter/ArchComboBoxModel.java Modified: trunk/src/app/net/sf/gridarta/gui/script/parameter/ArchComboBoxModel.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/script/parameter/ArchComboBoxModel.java 2010-10-11 06:42:11 UTC (rev 8724) +++ trunk/src/app/net/sf/gridarta/gui/script/parameter/ArchComboBoxModel.java 2010-10-11 06:45:25 UTC (rev 8725) @@ -19,9 +19,11 @@ package net.sf.gridarta.gui.script.parameter; -import java.util.Arrays; +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; @@ -37,7 +39,7 @@ private Object value = null; @NotNull - private final Archetype<G, A, R>[] archList; /*the current list*/ + private final List<Archetype<G, A, R>> archList; // FIXME: This constant looks pretty pointless. @@ -48,8 +50,8 @@ public ArchComboBoxModel(@NotNull final ArchetypeSet<G, A, R> archetypeSet) { final Collection<R> archetypes = archetypeSet.getArchetypes(); - archList = archetypes.toArray((Archetype<G, A, R>[]) new Archetype<?, ?, ?>[archetypes.size()]); - Arrays.sort(archList, new Comparator<Archetype<G, A, R>>() { + 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()); @@ -70,13 +72,13 @@ @Override public int getSize() { - return archList.length; + return archList.size(); } @NotNull @Override public Object getElementAt(final int index) { - return archList[index]; + return archList.get(index); } public void setFilter(@NotNull final String filter) { @@ -89,7 +91,7 @@ enlargeFilter(filter.substring(0, p)); narrowFilter(filter); } - fireContentsChanged(this, 0, archList.length); + fireContentsChanged(this, 0, archList.size()); } private static int getCommonPrefix(@NotNull final CharSequence s1, @NotNull final CharSequence s2) { @@ -113,7 +115,7 @@ */ @NotNull public Archetype<G, A, R> getNearestMatch(@NotNull final String name) { - int pos = Arrays.binarySearch(archList, name, new Comparator<Object>() { + int pos = Collections.binarySearch(archList, name, new Comparator<Object>() { @Override public int compare(final Object o1, final Object o2) { final String s1; @@ -134,13 +136,13 @@ if (pos < 0) { pos = -(pos + 1); } - if (pos >= archList.length) { - pos = archList.length - 1; + if (pos >= archList.size()) { + pos = archList.size() - 1; } if (pos < 0) { pos = 0; } - return archList[pos]; + return archList.get(pos); } } // class ArchComboBoxModel This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-11 06:42:18
|
Revision: 8724 http://gridarta.svn.sourceforge.net/gridarta/?rev=8724&view=rev Author: akirschbaum Date: 2010-10-11 06:42:11 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Add final modifier. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/prefs/MapValidatorPreferences.java Modified: trunk/src/app/net/sf/gridarta/gui/prefs/MapValidatorPreferences.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/prefs/MapValidatorPreferences.java 2010-10-11 06:40:12 UTC (rev 8723) +++ trunk/src/app/net/sf/gridarta/gui/prefs/MapValidatorPreferences.java 2010-10-11 06:42:11 UTC (rev 8724) @@ -80,7 +80,7 @@ * Check box to set whether map files should be really checked. */ @NotNull - private AbstractButton autoValidate; + private final AbstractButton autoValidate = new JCheckBox(ActionBuilderUtils.getString(ACTION_BUILDER, "autoValidate.text"), AutoValidator.isEnabled()); /** * Creates a new instance. @@ -163,7 +163,6 @@ final JComponent panel = new JPanel(new GridBagLayout()); final PreferencesHelper preferencesHelper = new PreferencesHelper(panel); panel.setBorder(createTitledBorder("optionsValidation")); - autoValidate = new JCheckBox(ActionBuilderUtils.getString(ACTION_BUILDER, "autoValidate.text"), AutoValidator.isEnabled()); preferencesHelper.addComponent(autoValidate); return panel; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-11 06:40:19
|
Revision: 8723 http://gridarta.svn.sourceforge.net/gridarta/?rev=8723&view=rev Author: akirschbaum Date: 2010-10-11 06:40:12 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Add @NotNull annotations. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/autovalidator/AutoValidator.java Modified: trunk/src/app/net/sf/gridarta/gui/autovalidator/AutoValidator.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/autovalidator/AutoValidator.java 2010-10-11 06:38:26 UTC (rev 8722) +++ trunk/src/app/net/sf/gridarta/gui/autovalidator/AutoValidator.java 2010-10-11 06:40:12 UTC (rev 8723) @@ -47,6 +47,7 @@ /** * Preferences. */ + @NotNull private static final Preferences preferences = Preferences.userNodeForPackage(MainControl.class); /** @@ -72,6 +73,7 @@ * was enabled, or a validator check was changed while the validator is * enabled. */ + @NotNull private final PreferenceChangeListener preferenceChangeListener = new PreferenceChangeListener() { /** {@inheritDoc} */ @@ -93,6 +95,7 @@ /** * The {@link DelayedMapModelListener} used to detect changed maps. */ + @NotNull private final DelayedMapModelListener<G, A, R> delayedMapModelListener = new DelayedMapModelListener<G, A, R>() { /** {@inheritDoc} */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-11 06:38:33
|
Revision: 8722 http://gridarta.svn.sourceforge.net/gridarta/?rev=8722&view=rev Author: akirschbaum Date: 2010-10-11 06:38:26 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Add @NotNull annotations. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/prefs/MapValidatorPreferences.java Modified: trunk/src/app/net/sf/gridarta/gui/prefs/MapValidatorPreferences.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/prefs/MapValidatorPreferences.java 2010-10-10 22:06:24 UTC (rev 8721) +++ trunk/src/app/net/sf/gridarta/gui/prefs/MapValidatorPreferences.java 2010-10-11 06:38:26 UTC (rev 8722) @@ -39,6 +39,7 @@ import net.sf.japi.swing.action.ActionBuilder; import net.sf.japi.swing.action.ActionBuilderFactory; import net.sf.japi.swing.prefs.AbstractPrefs; +import org.jetbrains.annotations.NotNull; /** * Preferences Module for map validator preferences. @@ -55,6 +56,7 @@ /** * Action Builder to create Actions. */ + @NotNull private static final ActionBuilder ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder("net.sf.gridarta"); /** @@ -65,16 +67,19 @@ /** * The delegating validator that contains all the validators. */ + @NotNull private final DelegatingMapValidator<?, ?, ?> validators; /** * Checkboxes to enabled the individual validator checks. */ + @NotNull private final Map<Validator<?, ?, ?>, JCheckBox> checkBoxes = new HashMap<Validator<?, ?, ?>, JCheckBox>(); /** * Check box to set whether map files should be really checked. */ + @NotNull private AbstractButton autoValidate; /** @@ -83,7 +88,7 @@ * validators * @param autoDefault Whether the auto-validator is enabled by default. */ - public MapValidatorPreferences(final DelegatingMapValidator<?, ?, ?> validators, final boolean autoDefault) { + public MapValidatorPreferences(@NotNull final DelegatingMapValidator<?, ?, ?> validators, final boolean autoDefault) { this.autoDefault = autoDefault; this.validators = validators; setListLabelText(ActionBuilderUtils.getString(ACTION_BUILDER, "prefsMapValidator.title")); @@ -153,6 +158,7 @@ * Create the Panel with the generic validation settings. * @return sub-panel */ + @NotNull private Component createValidationPanel() { final JComponent panel = new JPanel(new GridBagLayout()); final PreferencesHelper preferencesHelper = new PreferencesHelper(panel); @@ -166,6 +172,7 @@ * Create the Panel with the validators information. * @return sub-panel */ + @NotNull private Component createValidatorsPanel() { final JComponent panel = new JPanel(new GridBagLayout()); final PreferencesHelper preferencesHelper = new PreferencesHelper(panel); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-10 22:06:32
|
Revision: 8721 http://gridarta.svn.sourceforge.net/gridarta/?rev=8721&view=rev Author: akirschbaum Date: 2010-10-10 22:06:24 +0000 (Sun, 10 Oct 2010) Log Message: ----------- Fix some unchecked warnings. Modified Paths: -------------- trunk/crossfire/src/app/net/sf/gridarta/var/crossfire/model/validation/checks/NonAbsoluteExitPathChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/AbstractValidator.java trunk/model/src/app/net/sf/gridarta/model/validation/DelegatingMapValidator.java trunk/model/src/app/net/sf/gridarta/model/validation/GameObjectValidator.java trunk/model/src/app/net/sf/gridarta/model/validation/MapValidator.java trunk/model/src/app/net/sf/gridarta/model/validation/SquareValidator.java trunk/model/src/app/net/sf/gridarta/model/validation/Validator.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/AbstractShopSquareChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/AttributeRangeChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/BlockedMobOrSpawnPointChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/BlockedSpawnPointChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/BlockedSquareChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/ConnectedInsideContainerChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/ConnectedPickableChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/ConnectionChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/CustomTypeChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/DoubleLayerChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/DoubleTypeChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/EmptySpawnPointChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/ExitChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/MapCheckerScriptChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/MapDifficultyChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/MobOutsideSpawnPointChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/SlayingChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/SquareWithoutFloorChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/SysObjectNotOnLayerZeroChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/TilePathsChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/UndefinedArchetypeChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/UndefinedFaceChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/UnsetSlayingChecker.java trunk/model/src/app/net/sf/gridarta/model/validation/checks/ValidatorFactory.java trunk/model/src/test/net/sf/gridarta/validation/AbstractValidatorTest.java trunk/src/app/net/sf/gridarta/gui/prefs/MapValidatorPreferences.java trunk/src/app/net/sf/gridarta/maincontrol/DefaultMainControl.java Modified: trunk/crossfire/src/app/net/sf/gridarta/var/crossfire/model/validation/checks/NonAbsoluteExitPathChecker.java =================================================================== --- trunk/crossfire/src/app/net/sf/gridarta/var/crossfire/model/validation/checks/NonAbsoluteExitPathChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/crossfire/src/app/net/sf/gridarta/var/crossfire/model/validation/checks/NonAbsoluteExitPathChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -40,7 +40,7 @@ * Crossfire and Atrinik. * @author Andreas Kirschbaum */ -public class NonAbsoluteExitPathChecker extends AbstractValidator implements GameObjectValidator<GameObject, MapArchObject, Archetype> { +public class NonAbsoluteExitPathChecker extends AbstractValidator<GameObject, MapArchObject, Archetype> implements GameObjectValidator<GameObject, MapArchObject, Archetype> { /** * The {@link GameObjectMatcher} for matching exit objects. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/AbstractValidator.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/AbstractValidator.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/AbstractValidator.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -19,6 +19,9 @@ package net.sf.gridarta.model.validation; +import net.sf.gridarta.model.archetype.Archetype; +import net.sf.gridarta.model.gameobject.GameObject; +import net.sf.gridarta.model.maparchobject.MapArchObject; import net.sf.gridarta.utils.ActionBuilderUtils; import net.sf.japi.swing.action.ActionBuilder; import net.sf.japi.swing.action.ActionBuilderFactory; @@ -31,7 +34,7 @@ * but does not declare it to force subclasses to choose the interface to * implement. */ -public abstract class AbstractValidator implements Validator { +public abstract class AbstractValidator<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements Validator<G, A, R> { /** * The prefix for preference keys. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/DelegatingMapValidator.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/DelegatingMapValidator.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/DelegatingMapValidator.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -33,13 +33,13 @@ * A Map Validator that delegates to other MapValidators. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public class DelegatingMapValidator<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements GameObjectValidator<G, A, R>, SquareValidator<G, A, R>, MapValidator<G, A, R>, Iterable<Validator> { +public class DelegatingMapValidator<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements GameObjectValidator<G, A, R>, SquareValidator<G, A, R>, MapValidator<G, A, R>, Iterable<Validator<G, A, R>> { /** * Map Validators to validate against. */ @NotNull - private final List<Validator> validators = new ArrayList<Validator>(); + private final List<Validator<G, A, R>> validators = new ArrayList<Validator<G, A, R>>(); /** * The default key. @@ -88,7 +88,7 @@ */ @Override public void validateMap(@NotNull final MapModel<G, A, R> mapModel, @NotNull final ErrorCollector<G, A, R> errorCollector) { - for (final Validator validator : validators) { + for (final Validator<G, A, R> validator : validators) { if (validator.isEnabled()) { if (validator instanceof MapValidator) { ((MapValidator<G, A, R>) validator).validateMap(mapModel, errorCollector); @@ -102,7 +102,7 @@ */ @Override public void validateSquare(@NotNull final MapSquare<G, A, R> mapSquare, @NotNull final ErrorCollector<G, A, R> errorCollector) { - for (final Validator validator : validators) { + for (final Validator<G, A, R> validator : validators) { if (validator.isEnabled() && validator instanceof SquareValidator) { ((SquareValidator<G, A, R>) validator).validateSquare(mapSquare, errorCollector); } @@ -114,7 +114,7 @@ */ @Override public void validateGameObject(@NotNull final G gameObject, @NotNull final ErrorCollector<G, A, R> errorCollector) { - for (final Validator validator : validators) { + for (final Validator<G, A, R> validator : validators) { if (validator.isEnabled() && validator instanceof GameObjectValidator) { ((GameObjectValidator<G, A, R>) validator).validateGameObject(gameObject, errorCollector); } @@ -138,7 +138,7 @@ * should or shouldn't be active. * @param validator to be queried */ - public void addValidator(@NotNull final Validator validator) { + public void addValidator(@NotNull final Validator<G, A, R> validator) { validators.add(validator); } @@ -147,7 +147,7 @@ */ @NotNull @Override - public Iterator<Validator> iterator() { + public Iterator<Validator<G, A, R>> iterator() { return validators.iterator(); } Modified: trunk/model/src/app/net/sf/gridarta/model/validation/GameObjectValidator.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/GameObjectValidator.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/GameObjectValidator.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -29,7 +29,7 @@ * implement this interface. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public interface GameObjectValidator<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends Validator { +public interface GameObjectValidator<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends Validator<G, A, R> { /** * Validates a game object. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/MapValidator.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/MapValidator.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/MapValidator.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -30,7 +30,7 @@ * interface. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public interface MapValidator<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends Validator { +public interface MapValidator<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends Validator<G, A, R> { /** * Validate a map. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/SquareValidator.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/SquareValidator.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/SquareValidator.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -30,7 +30,7 @@ * interface. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public interface SquareValidator<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends Validator { +public interface SquareValidator<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends Validator<G, A, R> { /** * Validate a map square. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/Validator.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/Validator.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/Validator.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -19,13 +19,16 @@ package net.sf.gridarta.model.validation; +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; /** * Super-interface for validators. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public interface Validator { +public interface Validator<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> { /** * Get a Key that uniquely identifies this Validator. The key can then be Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/AbstractShopSquareChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/AbstractShopSquareChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/AbstractShopSquareChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -37,7 +37,7 @@ * @author Andreas Kirschbaum * @fixme this implementation does not take care of multi square objects. */ -public abstract class AbstractShopSquareChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements MapValidator<G, A, R> { +public abstract class AbstractShopSquareChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements MapValidator<G, A, R> { /** * Creates a new instance. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/AttributeRangeChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/AttributeRangeChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/AttributeRangeChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -36,7 +36,7 @@ * A validator that checks for suspicious attribute values. * @author Andreas Kirschbaum */ -public class AttributeRangeChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements GameObjectValidator<G, A, R> { +public class AttributeRangeChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements GameObjectValidator<G, A, R> { /** * Maps object type to {@link Type} instance. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/BlockedMobOrSpawnPointChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/BlockedMobOrSpawnPointChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/BlockedMobOrSpawnPointChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -40,7 +40,7 @@ * squares. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public class BlockedMobOrSpawnPointChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements SquareValidator<G, A, R> { +public class BlockedMobOrSpawnPointChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements SquareValidator<G, A, R> { /** * List with blocking objects. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/BlockedSpawnPointChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/BlockedSpawnPointChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/BlockedSpawnPointChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -41,7 +41,7 @@ * @author <a href="mailto:ch...@ri...">Christian Hujer</a> * @author Andreas Kirschbaum */ -public class BlockedSpawnPointChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements MapValidator<G, A, R> { +public class BlockedSpawnPointChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements MapValidator<G, A, R> { /** * The x offset for checking blocked squares. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/BlockedSquareChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/BlockedSquareChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/BlockedSquareChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -42,7 +42,7 @@ * @author <a href="mailto:ch...@ri...">Christian Hujer</a> * @fixme this implementation does not take care of multi square objects. */ -public class BlockedSquareChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements MapValidator<G, A, R> { +public class BlockedSquareChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements MapValidator<G, A, R> { /** * Creates a new instance. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/ConnectedInsideContainerChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/ConnectedInsideContainerChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/ConnectedInsideContainerChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -34,7 +34,7 @@ * objects. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public class ConnectedInsideContainerChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements GameObjectValidator<G, A, R> { +public class ConnectedInsideContainerChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements GameObjectValidator<G, A, R> { /** * Creates a new instance. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/ConnectedPickableChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/ConnectedPickableChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/ConnectedPickableChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -33,7 +33,7 @@ * A Validator to assert that connected objects cannot be picked up. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public class ConnectedPickableChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements GameObjectValidator<G, A, R> { +public class ConnectedPickableChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements GameObjectValidator<G, A, R> { /** * Creates a new instance. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/ConnectionChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/ConnectionChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/ConnectionChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -44,7 +44,7 @@ * sink exists. * @author Andreas Kirschbaum */ -public class ConnectionChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements MapValidator<G, A, R> { +public class ConnectionChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements MapValidator<G, A, R> { /** * The {@link GameObjectMatcher} for matching sources. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/CustomTypeChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/CustomTypeChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/CustomTypeChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -36,7 +36,7 @@ * Checks that a game object does not set a custom type. * @author Andreas Kirschbaum */ -public class CustomTypeChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements GameObjectValidator<G, A, R> { +public class CustomTypeChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements GameObjectValidator<G, A, R> { /** * The allowed type changes. Maps source type to destination type to Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/DoubleLayerChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/DoubleLayerChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/DoubleLayerChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -37,7 +37,7 @@ * layer. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public class DoubleLayerChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements SquareValidator<G, A, R> { +public class DoubleLayerChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements SquareValidator<G, A, R> { /** * Creates a new instance. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/DoubleTypeChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/DoubleTypeChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/DoubleTypeChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -37,7 +37,7 @@ * the same square. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public class DoubleTypeChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements SquareValidator<G, A, R> { +public class DoubleTypeChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements SquareValidator<G, A, R> { /** * Creates a new instance. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/EmptySpawnPointChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/EmptySpawnPointChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/EmptySpawnPointChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -36,7 +36,7 @@ * An GameObjectValidator to assert that spawn points are not empty. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public class EmptySpawnPointChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements GameObjectValidator<G, A, R> { +public class EmptySpawnPointChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements GameObjectValidator<G, A, R> { /** * The object types to check. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/ExitChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/ExitChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/ExitChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -36,7 +36,7 @@ * A Validator to assert that exits are connected to maps properly. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public class ExitChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements GameObjectValidator<G, A, R> { +public class ExitChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements GameObjectValidator<G, A, R> { /** * The {@link GlobalSettings} to use. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/MapCheckerScriptChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/MapCheckerScriptChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/MapCheckerScriptChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -52,7 +52,7 @@ * into validation errors. * @author Andreas Kirschbaum */ -public class MapCheckerScriptChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements MapValidator<G, A, R> { +public class MapCheckerScriptChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements MapValidator<G, A, R> { /** * The maximum execution time of the checker script in milliseconds. If the Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/MapDifficultyChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/MapDifficultyChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/MapDifficultyChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -34,7 +34,7 @@ * Validator that checks whether the map has a valid difficulty. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public class MapDifficultyChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements MapValidator<G, A, R> { +public class MapDifficultyChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements MapValidator<G, A, R> { /** * Creates a new instance. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/MobOutsideSpawnPointChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/MobOutsideSpawnPointChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/MobOutsideSpawnPointChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -36,7 +36,7 @@ * GameObjectValidator to assert that mobs are not outside spawn points. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public class MobOutsideSpawnPointChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements GameObjectValidator<G, A, R> { +public class MobOutsideSpawnPointChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements GameObjectValidator<G, A, R> { /** * The object types to check. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/SlayingChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/SlayingChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/SlayingChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -38,7 +38,7 @@ * slaying strings. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public class SlayingChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements GameObjectValidator<G, A, R> { +public class SlayingChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements GameObjectValidator<G, A, R> { /** * The regular expression for any "slaying" field not matching any specific Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/SquareWithoutFloorChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/SquareWithoutFloorChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/SquareWithoutFloorChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -38,7 +38,7 @@ * A SquareValidator to assert that squares have a floor. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public class SquareWithoutFloorChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements SquareValidator<G, A, R> { +public class SquareWithoutFloorChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements SquareValidator<G, A, R> { /** * The object types to check. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/SysObjectNotOnLayerZeroChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/SysObjectNotOnLayerZeroChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/SysObjectNotOnLayerZeroChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -33,7 +33,7 @@ * A GameObjectValidator to assert that sys objects are only in layer 0. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public class SysObjectNotOnLayerZeroChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements GameObjectValidator<G, A, R> { +public class SysObjectNotOnLayerZeroChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements GameObjectValidator<G, A, R> { /** * Creates a new instance. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/TilePathsChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/TilePathsChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/TilePathsChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -38,7 +38,7 @@ * Validator that checks whether all tile paths are valid. * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ -public class TilePathsChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements MapValidator<G, A, R> { +public class TilePathsChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements MapValidator<G, A, R> { /** * The {@link GlobalSettings} to use. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/UndefinedArchetypeChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/UndefinedArchetypeChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/UndefinedArchetypeChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -33,7 +33,7 @@ * Check that no game object references an undefined archetype. * @author Andreas Kirschbaum */ -public class UndefinedArchetypeChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements GameObjectValidator<G, A, R> { +public class UndefinedArchetypeChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements GameObjectValidator<G, A, R> { /** * Creates a new instance. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/UndefinedFaceChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/UndefinedFaceChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/UndefinedFaceChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -35,7 +35,7 @@ * Checks that a game object does not reference an undefined face. * @author Andreas Kirschbaum */ -public class UndefinedFaceChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements GameObjectValidator<G, A, R> { +public class UndefinedFaceChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements GameObjectValidator<G, A, R> { /** * Creates a new instance. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/UnsetSlayingChecker.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/UnsetSlayingChecker.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/UnsetSlayingChecker.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -36,7 +36,7 @@ * Checks that a game object does not set a custom type. * @author Andreas Kirschbaum */ -public class UnsetSlayingChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator implements GameObjectValidator<G, A, R> { +public class UnsetSlayingChecker<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractValidator<G, A, R> implements GameObjectValidator<G, A, R> { /** * The object types to check. Modified: trunk/model/src/app/net/sf/gridarta/model/validation/checks/ValidatorFactory.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/validation/checks/ValidatorFactory.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/app/net/sf/gridarta/model/validation/checks/ValidatorFactory.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -99,7 +99,7 @@ * @throws NoSuchValidatorException if the validator cannot be created */ @NotNull - public Validator newValidator(@NotNull final String spec) throws NoSuchValidatorException { + public Validator<G, A, R> newValidator(@NotNull final String spec) throws NoSuchValidatorException { final String[] args = StringUtils.PATTERN_WHITESPACE.split(spec); final Class<?> tmpClass; //noinspection ErrorNotRethrown @@ -112,7 +112,7 @@ } catch (final LinkageError ex) { throw new NoSuchValidatorException("class " + args[0] + " does not exist", ex); } - final Class<? extends Validator> classValidator; + final Class<?> classValidator; try { classValidator = tmpClass.asSubclass(Validator.class); } catch (final ClassCastException ex) { @@ -124,7 +124,7 @@ } else if (constructors.length > 1) { throw new NoSuchValidatorException("class " + args[0] + " has more than one public constructor"); } - @SuppressWarnings({ "unchecked" }) final Constructor<? extends Validator> constructor = (Constructor<? extends Validator>) constructors[0]; + @SuppressWarnings({ "unchecked" }) final Constructor<? extends Validator<G, A, R>> constructor = (Constructor<? extends Validator<G, A, R>>) constructors[0]; final Class<?>[] constructorParameterTypes = constructor.getParameterTypes(); final Object[] constructorArguments = new Object[constructorParameterTypes.length]; int pos = 1; @@ -157,7 +157,7 @@ } } } - final Validator validator; + final Validator<G, A, R> validator; //noinspection ErrorNotRethrown try { validator = constructor.newInstance(constructorArguments); Modified: trunk/model/src/test/net/sf/gridarta/validation/AbstractValidatorTest.java =================================================================== --- trunk/model/src/test/net/sf/gridarta/validation/AbstractValidatorTest.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/model/src/test/net/sf/gridarta/validation/AbstractValidatorTest.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -20,6 +20,9 @@ package net.sf.gridarta.validation; import junit.framework.TestCase; +import net.sf.gridarta.model.archetype.TestArchetype; +import net.sf.gridarta.model.gameobject.TestGameObject; +import net.sf.gridarta.model.maparchobject.TestMapArchObject; import net.sf.gridarta.model.validation.AbstractValidator; import net.sf.gridarta.model.validation.DelegatingMapValidator; import net.sf.gridarta.model.validation.Validator; @@ -37,7 +40,7 @@ * Object Under Test: A AbstractValidator. */ @Nullable - private Validator oUT; + private Validator<?, ?, ?> oUT; /** * {@inheritDoc} @@ -49,7 +52,7 @@ TestActionBuilder.initialize(); final ValidatorPreferences validatorPreferences = new TestValidatorPreferences(); //noinspection EmptyClass - oUT = new AbstractValidator(validatorPreferences, DelegatingMapValidator.DEFAULT_KEY) { + oUT = new AbstractValidator<TestGameObject, TestMapArchObject, TestArchetype>(validatorPreferences, DelegatingMapValidator.DEFAULT_KEY) { }; } Modified: trunk/src/app/net/sf/gridarta/gui/prefs/MapValidatorPreferences.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/prefs/MapValidatorPreferences.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/src/app/net/sf/gridarta/gui/prefs/MapValidatorPreferences.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -33,6 +33,7 @@ import javax.swing.border.TitledBorder; import net.sf.gridarta.gui.autovalidator.AutoValidator; import net.sf.gridarta.gui.utils.GUIConstants; +import net.sf.gridarta.model.validation.DelegatingMapValidator; import net.sf.gridarta.model.validation.Validator; import net.sf.gridarta.utils.ActionBuilderUtils; import net.sf.japi.swing.action.ActionBuilder; @@ -64,12 +65,12 @@ /** * The delegating validator that contains all the validators. */ - private final Iterable<Validator> validators; + private final DelegatingMapValidator<?, ?, ?> validators; /** * Checkboxes to enabled the individual validator checks. */ - private final Map<Validator, JCheckBox> checkBoxes = new HashMap<Validator, JCheckBox>(); + private final Map<Validator<?, ?, ?>, JCheckBox> checkBoxes = new HashMap<Validator<?, ?, ?>, JCheckBox>(); /** * Check box to set whether map files should be really checked. @@ -82,7 +83,7 @@ * validators * @param autoDefault Whether the auto-validator is enabled by default. */ - public MapValidatorPreferences(final Iterable<Validator> validators, final boolean autoDefault) { + public MapValidatorPreferences(final DelegatingMapValidator<?, ?, ?> validators, final boolean autoDefault) { this.autoDefault = autoDefault; this.validators = validators; setListLabelText(ActionBuilderUtils.getString(ACTION_BUILDER, "prefsMapValidator.title")); @@ -107,7 +108,7 @@ */ @Override public void apply() { - for (final Map.Entry<Validator, JCheckBox> entry : checkBoxes.entrySet()) { + for (final Map.Entry<Validator<?, ?, ?>, JCheckBox> entry : checkBoxes.entrySet()) { entry.getKey().setEnabled(entry.getValue().isSelected()); } AutoValidator.setEnabled(autoValidate.isSelected()); @@ -118,7 +119,7 @@ */ @Override public void revert() { - for (final Map.Entry<Validator, JCheckBox> entry : checkBoxes.entrySet()) { + for (final Map.Entry<Validator<?, ?, ?>, JCheckBox> entry : checkBoxes.entrySet()) { entry.getValue().setSelected(entry.getKey().isEnabled()); } autoValidate.setSelected(AutoValidator.isEnabled()); @@ -129,7 +130,7 @@ */ @Override public void defaults() { - for (final Map.Entry<Validator, JCheckBox> entry : checkBoxes.entrySet()) { + for (final Map.Entry<Validator<?, ?, ?>, JCheckBox> entry : checkBoxes.entrySet()) { entry.getValue().setSelected(entry.getKey().isDefaultEnabled()); } autoValidate.setSelected(autoDefault); @@ -140,7 +141,7 @@ */ @Override public boolean isChanged() { - for (final Map.Entry<Validator, JCheckBox> entry : checkBoxes.entrySet()) { + for (final Map.Entry<Validator<?, ?, ?>, JCheckBox> entry : checkBoxes.entrySet()) { if (entry.getValue().isSelected() != entry.getKey().isEnabled()) { return true; } @@ -169,7 +170,7 @@ final JComponent panel = new JPanel(new GridBagLayout()); final PreferencesHelper preferencesHelper = new PreferencesHelper(panel); panel.setBorder(createTitledBorder("optionsValidators")); - for (final Validator validator : validators) { + for (final Validator<?, ?, ?> validator : validators) { final JCheckBox checkBox = new JCheckBox(ActionBuilderUtils.getString(ACTION_BUILDER, validator.getKey() + ".title"), validator.isEnabled()); checkBoxes.put(validator, checkBox); preferencesHelper.addComponent(checkBox); Modified: trunk/src/app/net/sf/gridarta/maincontrol/DefaultMainControl.java =================================================================== --- trunk/src/app/net/sf/gridarta/maincontrol/DefaultMainControl.java 2010-10-10 21:40:58 UTC (rev 8720) +++ trunk/src/app/net/sf/gridarta/maincontrol/DefaultMainControl.java 2010-10-10 22:06:24 UTC (rev 8721) @@ -311,7 +311,7 @@ * validators * @param errorView the error view to add error messages to */ - private void loadValidators(@NotNull final DelegatingMapValidator<G, A, R> validators, @NotNull final ValidatorFactory validatorFactory, @NotNull final ErrorView errorView) { + private void loadValidators(@NotNull final DelegatingMapValidator<G, A, R> validators, @NotNull final ValidatorFactory<G, A, R> validatorFactory, @NotNull final ErrorView errorView) { final ActionBuilder actionBuilder = ActionBuilderFactory.getInstance().getActionBuilder("net.sf.gridarta"); int id = 0; while (true) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-10 21:41:05
|
Revision: 8720 http://gridarta.svn.sourceforge.net/gridarta/?rev=8720&view=rev Author: akirschbaum Date: 2010-10-10 21:40:58 +0000 (Sun, 10 Oct 2010) Log Message: ----------- Fix unchecked warning. Modified Paths: -------------- trunk/model/src/app/net/sf/gridarta/model/data/NamedTreeNode.java Modified: trunk/model/src/app/net/sf/gridarta/model/data/NamedTreeNode.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/data/NamedTreeNode.java 2010-10-10 21:29:30 UTC (rev 8719) +++ trunk/model/src/app/net/sf/gridarta/model/data/NamedTreeNode.java 2010-10-10 21:40:58 UTC (rev 8720) @@ -58,7 +58,7 @@ * @serial */ @Nullable - private NamedTreeNode<E>[] childNodeArray = null; + private NamedTreeNode<?>[] childNodeArray = null; /** * The parent node, which may be <code>null</code> for the root node. @@ -175,7 +175,7 @@ */ private void initLazyArray() { if (childNodeArray == null) { - childNodeArray = childNodes.values().toArray((NamedTreeNode<E>[]) new NamedTreeNode<?>[childNodes.size()]); + childNodeArray = childNodes.values().toArray(new NamedTreeNode<?>[childNodes.size()]); } } @@ -231,7 +231,7 @@ */ @NotNull @Override - public NamedTreeNode<E> getChildAt(final int childIndex) { + public TreeNode getChildAt(final int childIndex) { initLazyArray(); assert childNodeArray != null; return childNodeArray[childIndex]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-10 21:29:36
|
Revision: 8719 http://gridarta.svn.sourceforge.net/gridarta/?rev=8719&view=rev Author: akirschbaum Date: 2010-10-10 21:29:30 +0000 (Sun, 10 Oct 2010) Log Message: ----------- Fix incorrectly updated attribute for empty name field in game object attributes panel. Modified Paths: -------------- trunk/atrinik/ChangeLog trunk/crossfire/ChangeLog trunk/daimonin/ChangeLog trunk/model/src/app/net/sf/gridarta/model/baseobject/AbstractBaseObject.java trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/FaceTab.java Modified: trunk/atrinik/ChangeLog =================================================================== --- trunk/atrinik/ChangeLog 2010-10-10 21:05:21 UTC (rev 8718) +++ trunk/atrinik/ChangeLog 2010-10-10 21:29:30 UTC (rev 8719) @@ -1,5 +1,8 @@ 2010-10-10 Andreas Kirschbaum + * Fix incorrectly updated attribute for empty name field in game + object attributes panel. + * Correctly update game object type in undo/redo. * Add map-checker.py as a validator. Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2010-10-10 21:05:21 UTC (rev 8718) +++ trunk/crossfire/ChangeLog 2010-10-10 21:29:30 UTC (rev 8719) @@ -1,5 +1,8 @@ 2010-10-10 Andreas Kirschbaum + * Fix incorrectly updated attribute for empty name field in game + object attributes panel. + * Correctly update game object type in undo/redo. 2010-10-06 Andreas Kirschbaum Modified: trunk/daimonin/ChangeLog =================================================================== --- trunk/daimonin/ChangeLog 2010-10-10 21:05:21 UTC (rev 8718) +++ trunk/daimonin/ChangeLog 2010-10-10 21:29:30 UTC (rev 8719) @@ -1,5 +1,8 @@ 2010-10-10 Andreas Kirschbaum + * Fix incorrectly updated attribute for empty name field in game + object attributes panel. + * Correctly update game object type in undo/redo. 2010-10-06 Andreas Kirschbaum Modified: trunk/model/src/app/net/sf/gridarta/model/baseobject/AbstractBaseObject.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/baseobject/AbstractBaseObject.java 2010-10-10 21:05:21 UTC (rev 8718) +++ trunk/model/src/app/net/sf/gridarta/model/baseobject/AbstractBaseObject.java 2010-10-10 21:29:30 UTC (rev 8719) @@ -350,6 +350,11 @@ */ @Override public void setAttributeString(@NotNull final String attributeName, @NotNull final String value) { + if (value.isEmpty()) { + removeAttribute(attributeName); + return; + } + final String attributeNameWithSpace = attributeName.trim() + " "; // attributeName must be followed by space final boolean sameAsInArchetype = getArchetype().getAttributeString(attributeName).equals(value); boolean exists = false; Modified: trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/FaceTab.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/FaceTab.java 2010-10-10 21:05:21 UTC (rev 8718) +++ trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/FaceTab.java 2010-10-10 21:29:30 UTC (rev 8719) @@ -325,32 +325,24 @@ @Override protected void apply(@NotNull final G gameObject) { final String faceName = normalizeFace(faceComponent.getFaceName()); - @Nullable final String faceName2; + final String faceName2; if (faceName.equals("NONE")) { final String archFaceName = gameObject.getArchetype().getFaceName(); - faceName2 = archFaceName == null || archFaceName.isEmpty() ? null : "NONE"; + faceName2 = archFaceName == null || archFaceName.isEmpty() ? "" : "NONE"; } else { faceName2 = faceName; } - if (faceName2 == null) { - gameObject.removeAttribute(BaseObject.FACE); - } else { - gameObject.setAttributeString(BaseObject.FACE, faceName2); - } + gameObject.setAttributeString(BaseObject.FACE, faceName2); final String animName = normalizeFace(animationComponent.getAnimName()); - @Nullable final String animName2; + final String animName2; if (animName.equals("NONE")) { final String archAnimName = gameObject.getArchetype().getAnimName(); - animName2 = archAnimName == null || archAnimName.isEmpty() ? null : "NONE"; + animName2 = archAnimName == null || archAnimName.isEmpty() ? "" : "NONE"; } else { animName2 = animName; } - if (animName2 == null) { - gameObject.removeAttribute(BaseObject.ANIMATION); - } else { - gameObject.setAttributeString(BaseObject.ANIMATION, animName2); - } + gameObject.setAttributeString(BaseObject.ANIMATION, animName2); final boolean isAnimated = animatedCheckBox.isSelected(); if (isAnimated == (gameObject.getArchetype().getAttributeInt("is_animated") != 0)) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-10 21:05:28
|
Revision: 8718 http://gridarta.svn.sourceforge.net/gridarta/?rev=8718&view=rev Author: akirschbaum Date: 2010-10-10 21:05:21 +0000 (Sun, 10 Oct 2010) Log Message: ----------- Encapsulate edit type calculations into DefaultMapModel; remove MapModel.updateEditType(). Modified Paths: -------------- trunk/model/src/app/net/sf/gridarta/model/baseobject/GameObjectContainer.java trunk/model/src/app/net/sf/gridarta/model/gameobject/AbstractGameObject.java trunk/model/src/app/net/sf/gridarta/model/gameobject/GameObject.java trunk/model/src/app/net/sf/gridarta/model/mapmodel/DefaultMapModel.java trunk/model/src/app/net/sf/gridarta/model/mapmodel/MapModel.java trunk/model/src/app/net/sf/gridarta/model/mapmodel/SavedSquares.java trunk/model/src/test/net/sf/gridarta/model/mapmodel/DefaultMapModelTest.java trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/GameObjectAttributesDialog.java trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/TypesBoxItemListener.java trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/GameObjectAttributesControl.java Modified: trunk/model/src/app/net/sf/gridarta/model/baseobject/GameObjectContainer.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/baseobject/GameObjectContainer.java 2010-10-10 19:38:45 UTC (rev 8717) +++ trunk/model/src/app/net/sf/gridarta/model/baseobject/GameObjectContainer.java 2010-10-10 21:05:21 UTC (rev 8718) @@ -421,6 +421,7 @@ try { contents.add(gameObject); setThisContainer(gameObject); + gameObject.markModified(); } finally { notifyEndChange(); } @@ -445,6 +446,7 @@ } contents.add(0, gameObject); setThisContainer(gameObject); + gameObject.markModified(); } finally { notifyEndChange(); } @@ -493,6 +495,7 @@ throw new IllegalArgumentException("Can't add " + gameObject + " to " + this + " because " + previousGameObject + " is not inside"); } setThisContainer(gameObject); + gameObject.markModified(); } finally { notifyEndChange(); } @@ -528,6 +531,7 @@ } contents.add(insertIndex + 1, gameObject); setThisContainer(gameObject); + gameObject.markModified(); } finally { notifyEndChange(); } @@ -558,6 +562,7 @@ oldGameObject.setContainer(null, 0, 0); contents.add(insertIndex, newGameObject); setThisContainer(newGameObject); + newGameObject.markModified(); } finally { notifyEndChange(); } Modified: trunk/model/src/app/net/sf/gridarta/model/gameobject/AbstractGameObject.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/gameobject/AbstractGameObject.java 2010-10-10 19:38:45 UTC (rev 8717) +++ trunk/model/src/app/net/sf/gridarta/model/gameobject/AbstractGameObject.java 2010-10-10 21:05:21 UTC (rev 8718) @@ -397,4 +397,13 @@ return archetype.isUndefinedArchetype(); } + /** + * {@inheritDoc} + */ + @Override + public void markModified() { + beginGameObjectChange(); + endGameObjectChange(); + } + } // class AbstractGameObject Modified: trunk/model/src/app/net/sf/gridarta/model/gameobject/GameObject.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/gameobject/GameObject.java 2010-10-10 19:38:45 UTC (rev 8717) +++ trunk/model/src/app/net/sf/gridarta/model/gameobject/GameObject.java 2010-10-10 21:05:21 UTC (rev 8718) @@ -275,4 +275,9 @@ */ boolean hasUndefinedArchetype(); + /** + * Marks this game object as "modified". + */ + void markModified(); + } // interface GameObject Modified: trunk/model/src/app/net/sf/gridarta/model/mapmodel/DefaultMapModel.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/mapmodel/DefaultMapModel.java 2010-10-10 19:38:45 UTC (rev 8717) +++ trunk/model/src/app/net/sf/gridarta/model/mapmodel/DefaultMapModel.java 2010-10-10 21:05:21 UTC (rev 8718) @@ -504,6 +504,18 @@ private void fireEvents() { if (!changedGameObjects.isEmpty() || !transientChangedGameObjects.isEmpty()) { transientChangedGameObjects.removeAll(changedGameObjects); + transactionDepth++; // temporarily increase transaction depth because updating edit types causes transient changes + try { + for (final G gameObject : changedGameObjects) { + if (gameObject.isHead()) { + for (G env = gameObject; env != null; env = env.getContainerGameObject()) { + updateEditType(env, activeEditType); + } + } + } + } finally { + transactionDepth--; + } fireGameObjectsChangedEvent(Collections.unmodifiableSet(changedGameObjects), Collections.unmodifiableSet(transientChangedGameObjects)); changedGameObjects.clear(); } @@ -743,7 +755,6 @@ } } else { newGameObject = templateBaseObject.newInstance(gameObjectFactory); - updateEditType(newGameObject); nextGameObjectEnv.addLast(newGameObject); } @@ -795,9 +806,7 @@ if (direction != null) { part.setAttributeInt(BaseObject.DIRECTION, direction); } - if (parts.isEmpty()) { - updateEditType(part); - } else { + if (!parts.isEmpty()) { parts.get(0).addTailPart(part); } parts.add(part); @@ -827,9 +836,6 @@ return; } - if (gameObject.isHead()) { - updateEditType(gameObject); - } insertionMode.insert(gameObject, mapGrid.getMapSquare(pos.x, pos.y)); } @@ -1016,14 +1022,6 @@ } /** - * {@inheritDoc} - */ - @Override - public void updateEditType(@NotNull final GameObject<G, A, R> gameObject) { - updateEditType(gameObject, activeEditType); - } - - /** * Updates the edit type of a {@link GameObject}. These are determined by * various attributes of the game object. * @param gameObject the game object @@ -1031,13 +1029,13 @@ */ private void updateEditType(@NotNull final GameObject<G, A, R> gameObject, final int checkType) { assert gameObject.isHead(); - final int editType = gameObject.getEditType(); if (checkType == 0) { return; } // all flags from 'checkType' must be unset in this game object because // they get recalculated now + final int editType = gameObject.getEditType(); final int retainedEditType = editType == BaseObject.EDIT_TYPE_NONE ? 0 : editType & ~checkType; final int newEditType = retainedEditType | calculateEditType(gameObject, checkType); gameObject.setEditType(newEditType); Modified: trunk/model/src/app/net/sf/gridarta/model/mapmodel/MapModel.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/mapmodel/MapModel.java 2010-10-10 19:38:45 UTC (rev 8717) +++ trunk/model/src/app/net/sf/gridarta/model/mapmodel/MapModel.java 2010-10-10 21:05:21 UTC (rev 8718) @@ -427,11 +427,4 @@ */ void facesReloaded(); - /** - * Updates the edit type of a {@link GameObject}. These are determined by - * various attributes of the game object. - * @param gameObject the game object - */ - void updateEditType(@NotNull GameObject<G, A, R> gameObject); - } // interface MapModel Modified: trunk/model/src/app/net/sf/gridarta/model/mapmodel/SavedSquares.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/mapmodel/SavedSquares.java 2010-10-10 19:38:45 UTC (rev 8717) +++ trunk/model/src/app/net/sf/gridarta/model/mapmodel/SavedSquares.java 2010-10-10 21:05:21 UTC (rev 8718) @@ -196,7 +196,6 @@ objectsToDelete.clear(); for (final G gameObject : square) { mapSquare.addLast(gameObject); - mapModel.updateEditType(gameObject.getHead()); } } point.y++; Modified: trunk/model/src/test/net/sf/gridarta/model/mapmodel/DefaultMapModelTest.java =================================================================== --- trunk/model/src/test/net/sf/gridarta/model/mapmodel/DefaultMapModelTest.java 2010-10-10 19:38:45 UTC (rev 8717) +++ trunk/model/src/test/net/sf/gridarta/model/mapmodel/DefaultMapModelTest.java 2010-10-10 21:05:21 UTC (rev 8718) @@ -31,6 +31,9 @@ import net.sf.gridarta.model.gameobject.TestGameObject; import net.sf.gridarta.model.maparchobject.MapArchObjectListener; import net.sf.gridarta.model.maparchobject.TestMapArchObject; +import net.sf.gridarta.model.match.GameObjectMatchers; +import net.sf.gridarta.model.match.NamedGameObjectMatcher; +import net.sf.gridarta.model.match.TypeNrsGameObjectMatcher; import net.sf.gridarta.model.validation.ErrorCollector; import net.sf.gridarta.utils.Size2D; import org.jetbrains.annotations.NotNull; @@ -246,7 +249,7 @@ mapModel.beginTransaction("TEST"); mapModelCreator.addGameObjectToMap(mapModel, "1", 1, 2, mapModelCreator.getInsertionModeSet().getAutoInsertionMode()); mapModel.endTransaction(); - Assert.assertEquals("mapSquaresChanged:\n" + "square 1 2\n" + "no game objects\n", result.toString()); + Assert.assertEquals("mapObjectsChanged:\n" + "no squares\n" + "game object 1 2 1\n" + "mapSquaresChanged:\n" + "square 1 2\n" + "no game objects\n", result.toString()); } /** @@ -268,7 +271,7 @@ mapModelCreator.addGameObjectToMap(mapModel, "1", 1, 2, mapModelCreator.getInsertionModeSet().getAutoInsertionMode()); mapModelCreator.addGameObjectToMap(mapModel, "1", 2, 2, mapModelCreator.getInsertionModeSet().getAutoInsertionMode()); mapModel.endTransaction(); - Assert.assertEquals("mapSquaresChanged:\n" + "square 1 2\n" + "square 2 2\n" + "no game objects\n", result.toString()); + Assert.assertEquals("mapObjectsChanged:\n" + "no squares\n" + "game object 1 2 1\n" + "game object 2 2 1\n" + "mapSquaresChanged:\n" + "square 1 2\n" + "square 2 2\n" + "no game objects\n", result.toString()); } /** @@ -290,7 +293,7 @@ mapModelCreator.insertGameObject(gameObject, "2"); } mapModel.endTransaction(); - Assert.assertEquals("mapObjectsChanged:\n" + "no squares\n" + "game object 1 2 1\n", result.toString()); + Assert.assertEquals("mapObjectsChanged:\n" + "no squares\n" + "game object 0 0 2\n" + "game object 1 2 1\n", result.toString()); } /** @@ -367,6 +370,99 @@ } /** + * Checks that modifications correctly update edit types. + */ + @Test + public void testEditType1() { + final TestMapModelCreator mapModelCreator = new TestMapModelCreator(false); + final GameObjectMatchers gameObjectMatchers = mapModelCreator.getGameObjectMatchers(); + gameObjectMatchers.addGameObjectMatcher(new NamedGameObjectMatcher(1, "m1", "1", true, null, new TypeNrsGameObjectMatcher(1))); + gameObjectMatchers.addGameObjectMatcher(new NamedGameObjectMatcher(2, "m2", "2", true, null, new TypeNrsGameObjectMatcher(2))); + gameObjectMatchers.addGameObjectMatcher(new NamedGameObjectMatcher(4, "e3", "3", true, new TypeNrsGameObjectMatcher(3), new TypeNrsGameObjectMatcher(4))); + final MapModel<TestGameObject, TestMapArchObject, TestArchetype> mapModel = newMapModel(mapModelCreator); + final TestArchetype a1 = mapModelCreator.getArchetype("a1"); + a1.setAttributeInt(BaseObject.TYPE, 1); + final TestArchetype a4 = mapModelCreator.getArchetype("a4"); + a4.setAttributeInt(BaseObject.TYPE, 4); + + mapModel.addActiveEditType(7); + + mapModel.beginTransaction("TEST"); + final TestGameObject g1 = mapModel.insertBaseObject(a1, new Point(0, 0), true, false, mapModelCreator.getInsertionModeSet().getAutoInsertionMode()); + mapModel.endTransaction(); + Assert.assertNotNull(g1); + Assert.assertEquals(1, g1.getEditType()); + + mapModel.beginTransaction("TEST"); + g1.setAttributeInt(BaseObject.TYPE, 2); + mapModel.endTransaction(); + Assert.assertEquals(2, g1.getEditType()); + + mapModel.beginTransaction("TEST"); + g1.setAttributeInt(BaseObject.TYPE, 3); + mapModel.endTransaction(); + Assert.assertEquals(0, g1.getEditType()); + + final TestGameObject g2 = a4.newInstance(mapModelCreator.getGameObjectFactory()); + mapModel.beginTransaction("TEST"); + g1.addLast(g2); + mapModel.endTransaction(); + Assert.assertEquals(4, g1.getEditType()); + Assert.assertEquals(0, g2.getEditType()); + + final TestGameObject g3 = a4.newInstance(mapModelCreator.getGameObjectFactory()); + mapModel.beginTransaction("TEST"); + g2.addLast(g3); + mapModel.endTransaction(); + Assert.assertEquals(4, g1.getEditType()); + Assert.assertEquals(0, g2.getEditType()); + Assert.assertEquals(0, g3.getEditType()); + + mapModel.beginTransaction("TEST"); + g2.setAttributeInt(BaseObject.TYPE, 2); + mapModel.endTransaction(); + Assert.assertEquals(4, g1.getEditType()); + Assert.assertEquals(2, g2.getEditType()); + Assert.assertEquals(0, g3.getEditType()); + + mapModel.beginTransaction("TEST"); + g3.setAttributeInt(BaseObject.TYPE, 2); + mapModel.endTransaction(); + Assert.assertEquals(0, g1.getEditType()); + Assert.assertEquals(2, g2.getEditType()); + Assert.assertEquals(2, g3.getEditType()); + + mapModel.beginTransaction("TEST"); + g3.setAttributeInt(BaseObject.TYPE, 4); + mapModel.endTransaction(); + Assert.assertEquals(4, g1.getEditType()); + Assert.assertEquals(2, g2.getEditType()); + Assert.assertEquals(0, g3.getEditType()); + + mapModel.beginTransaction("TEST"); + g2.setAttributeInt(BaseObject.TYPE, 3); + mapModel.endTransaction(); + Assert.assertEquals(4, g1.getEditType()); + Assert.assertEquals(4, g2.getEditType()); + Assert.assertEquals(0, g3.getEditType()); + + mapModel.beginTransaction("TEST"); + mapModel.removeGameObject(g3, false); + mapModel.endTransaction(); + Assert.assertEquals(0, g1.getEditType()); + Assert.assertEquals(0, g2.getEditType()); + + mapModel.beginTransaction("TEST"); + mapModel.removeGameObject(g2, false); + mapModel.endTransaction(); + Assert.assertEquals(0, g1.getEditType()); + + mapModel.beginTransaction("TEST"); + mapModel.removeGameObject(g1, false); + mapModel.endTransaction(); + } + + /** * Records a change event. * @param name the event name * @param mapSquares the changed map squares Modified: trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/GameObjectAttributesDialog.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/GameObjectAttributesDialog.java 2010-10-10 19:38:45 UTC (rev 8717) +++ trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/GameObjectAttributesDialog.java 2010-10-10 21:05:21 UTC (rev 8718) @@ -1282,12 +1282,6 @@ } } - // recalculate the editType value; XXX: should use MVC - final MapSquare<G, A, R> mapSquare = gameObject.getMapSquare(); - if (mapSquare != null) { - mapSquare.getMapModel().updateEditType(gameObject); - } - return true; // apply succeeded } Modified: trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/TypesBoxItemListener.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/TypesBoxItemListener.java 2010-10-10 19:38:45 UTC (rev 8717) +++ trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/TypesBoxItemListener.java 2010-10-10 21:05:21 UTC (rev 8718) @@ -153,9 +153,6 @@ gameObjectAttributesDialog.buildAttribute(); gameObjectAttributesDialog.update(gameObjectAttributesDialog.getGraphics()); - - // recalculate the editType value; XXX: should use MVC - mapModel.updateEditType(gameObject); } else { ignoreEvent = true; typeComboBox.setSelectedIndex(type); Modified: trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/GameObjectAttributesControl.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/GameObjectAttributesControl.java 2010-10-10 19:38:45 UTC (rev 8717) +++ trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/GameObjectAttributesControl.java 2010-10-10 21:05:21 UTC (rev 8718) @@ -674,9 +674,6 @@ tab.apply(); } } - - // recalculate the editType value; XXX: should use MVC - mapModel.updateEditType(gameObject); } finally { mapModel.endTransaction(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-10 19:38:52
|
Revision: 8717 http://gridarta.svn.sourceforge.net/gridarta/?rev=8717&view=rev Author: akirschbaum Date: 2010-10-10 19:38:45 +0000 (Sun, 10 Oct 2010) Log Message: ----------- Make function private. Modified Paths: -------------- trunk/model/src/test/net/sf/gridarta/model/mapmodel/DefaultMapModelTest.java Modified: trunk/model/src/test/net/sf/gridarta/model/mapmodel/DefaultMapModelTest.java =================================================================== --- trunk/model/src/test/net/sf/gridarta/model/mapmodel/DefaultMapModelTest.java 2010-10-10 18:15:57 UTC (rev 8716) +++ trunk/model/src/test/net/sf/gridarta/model/mapmodel/DefaultMapModelTest.java 2010-10-10 19:38:45 UTC (rev 8717) @@ -405,7 +405,7 @@ * @return the new map model instance */ @NotNull - public MapModel<TestGameObject, TestMapArchObject, TestArchetype> newMapModel(@NotNull final TestMapModelCreator mapModelCreator) { + private MapModel<TestGameObject, TestMapArchObject, TestArchetype> newMapModel(@NotNull final TestMapModelCreator mapModelCreator) { final MapModel<TestGameObject, TestMapArchObject, TestArchetype> mapModel = mapModelCreator.newMapModel(1, 1); result.setLength(0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-10 18:16:04
|
Revision: 8716 http://gridarta.svn.sourceforge.net/gridarta/?rev=8716&view=rev Author: akirschbaum Date: 2010-10-10 18:15:57 +0000 (Sun, 10 Oct 2010) Log Message: ----------- Remove empty directories. Removed Paths: ------------- trunk/model/src/test/net/sf/gridarta/model/map/ trunk/model/src/test/net/sf/gridarta/model/validation/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-10 15:18:48
|
Revision: 8715 http://gridarta.svn.sourceforge.net/gridarta/?rev=8715&view=rev Author: akirschbaum Date: 2010-10-10 15:18:41 +0000 (Sun, 10 Oct 2010) Log Message: ----------- Remove unused code. Modified Paths: -------------- trunk/model/src/app/net/sf/gridarta/model/mapmodel/DefaultMapModel.java trunk/model/src/app/net/sf/gridarta/model/mapmodel/MapModel.java Modified: trunk/model/src/app/net/sf/gridarta/model/mapmodel/DefaultMapModel.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/mapmodel/DefaultMapModel.java 2010-10-10 15:13:00 UTC (rev 8714) +++ trunk/model/src/app/net/sf/gridarta/model/mapmodel/DefaultMapModel.java 2010-10-10 15:18:41 UTC (rev 8715) @@ -929,14 +929,6 @@ * {@inheritDoc} */ @Override - public int getActiveEditType() { - return activeEditType; - } - - /** - * {@inheritDoc} - */ - @Override public void setMapFile(@Nullable final File mapFile) { if (this.mapFile == null ? mapFile == null : this.mapFile.equals(mapFile)) { return; Modified: trunk/model/src/app/net/sf/gridarta/model/mapmodel/MapModel.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/mapmodel/MapModel.java 2010-10-10 15:13:00 UTC (rev 8714) +++ trunk/model/src/app/net/sf/gridarta/model/mapmodel/MapModel.java 2010-10-10 15:18:41 UTC (rev 8715) @@ -388,14 +388,6 @@ void addActiveEditType(int editType); /** - * Returns the edit types that have already been (requested and) calculated - * (edit types get calculated only when needed to save time). - * @return the edit types that have already been calculated - */ - @Deprecated - int getActiveEditType(); - - /** * Sets the map file. * @param mapFile the map file or <code>null</code> if the map has not yet * been saved This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-10 15:13:07
|
Revision: 8714 http://gridarta.svn.sourceforge.net/gridarta/?rev=8714&view=rev Author: akirschbaum Date: 2010-10-10 15:13:00 +0000 (Sun, 10 Oct 2010) Log Message: ----------- Move GUIConstants.EDIT_TYPE_NONE to BaseObject. Modified Paths: -------------- trunk/model/src/app/net/sf/gridarta/model/baseobject/AbstractBaseObject.java trunk/model/src/app/net/sf/gridarta/model/baseobject/BaseObject.java trunk/model/src/app/net/sf/gridarta/model/mapmodel/DefaultMapModel.java trunk/model/src/app/net/sf/gridarta/model/mapviewsettings/AbstractMapViewSettings.java trunk/utils/src/app/net/sf/gridarta/gui/utils/GUIConstants.java Modified: trunk/model/src/app/net/sf/gridarta/model/baseobject/AbstractBaseObject.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/baseobject/AbstractBaseObject.java 2010-10-10 15:06:19 UTC (rev 8713) +++ trunk/model/src/app/net/sf/gridarta/model/baseobject/AbstractBaseObject.java 2010-10-10 15:13:00 UTC (rev 8714) @@ -20,7 +20,6 @@ package net.sf.gridarta.model.baseobject; import javax.swing.ImageIcon; -import net.sf.gridarta.gui.utils.GUIConstants; import net.sf.gridarta.model.anim.AnimationObject; import net.sf.gridarta.model.anim.AnimationObjects; import net.sf.gridarta.model.archetype.Archetype; @@ -138,7 +137,7 @@ // default arches don't get an editType (not worth the time) // they get one assigned as soon as put on a map though. // TODO: This should be changed. - private int editType = GUIConstants.EDIT_TYPE_NONE; + private int editType = EDIT_TYPE_NONE; /** * The name of the face. Object face name <code>face Modified: trunk/model/src/app/net/sf/gridarta/model/baseobject/BaseObject.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/baseobject/BaseObject.java 2010-10-10 15:06:19 UTC (rev 8713) +++ trunk/model/src/app/net/sf/gridarta/model/baseobject/BaseObject.java 2010-10-10 15:13:00 UTC (rev 8714) @@ -32,6 +32,8 @@ public interface BaseObject<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>, T extends BaseObject<G, A, R, T>> extends Cloneable, Iterable<G>, Serializable { + int EDIT_TYPE_NONE = 0x10000; // special case + /** * The attribute name of the object's animation. */ Modified: trunk/model/src/app/net/sf/gridarta/model/mapmodel/DefaultMapModel.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/mapmodel/DefaultMapModel.java 2010-10-10 15:06:19 UTC (rev 8713) +++ trunk/model/src/app/net/sf/gridarta/model/mapmodel/DefaultMapModel.java 2010-10-10 15:13:00 UTC (rev 8714) @@ -28,7 +28,6 @@ import java.util.Iterator; import java.util.List; import java.util.Set; -import net.sf.gridarta.gui.utils.GUIConstants; import net.sf.gridarta.model.archetype.Archetype; import net.sf.gridarta.model.archetypechooser.ArchetypeChooserModel; import net.sf.gridarta.model.autojoin.AutojoinLists; @@ -1047,7 +1046,7 @@ // all flags from 'checkType' must be unset in this game object because // they get recalculated now - final int retainedEditType = editType == GUIConstants.EDIT_TYPE_NONE ? 0 : editType & ~checkType; + final int retainedEditType = editType == BaseObject.EDIT_TYPE_NONE ? 0 : editType & ~checkType; final int newEditType = retainedEditType | calculateEditType(gameObject, checkType); gameObject.setEditType(newEditType); } Modified: trunk/model/src/app/net/sf/gridarta/model/mapviewsettings/AbstractMapViewSettings.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/mapviewsettings/AbstractMapViewSettings.java 2010-10-10 15:06:19 UTC (rev 8713) +++ trunk/model/src/app/net/sf/gridarta/model/mapviewsettings/AbstractMapViewSettings.java 2010-10-10 15:13:00 UTC (rev 8714) @@ -19,7 +19,6 @@ package net.sf.gridarta.model.mapviewsettings; -import net.sf.gridarta.gui.utils.GUIConstants; import net.sf.gridarta.model.baseobject.BaseObject; import net.sf.gridarta.model.match.ViewGameObjectMatcherManager; import net.sf.gridarta.utils.EventListenerList2; @@ -238,7 +237,7 @@ */ @Override public boolean isEditType(final int editType) { - final int mask = editType == 0 ? GUIConstants.EDIT_TYPE_NONE : editType; + final int mask = editType == 0 ? BaseObject.EDIT_TYPE_NONE : editType; return (this.editType & mask) != 0; } @@ -255,7 +254,7 @@ */ @Override public boolean isEditTypeSet() { - return (editType & GUIConstants.EDIT_TYPE_NONE) == 0 && editType != 0; + return (editType & BaseObject.EDIT_TYPE_NONE) == 0 && editType != 0; } /** Modified: trunk/utils/src/app/net/sf/gridarta/gui/utils/GUIConstants.java =================================================================== --- trunk/utils/src/app/net/sf/gridarta/gui/utils/GUIConstants.java 2010-10-10 15:06:19 UTC (rev 8713) +++ trunk/utils/src/app/net/sf/gridarta/gui/utils/GUIConstants.java 2010-10-10 15:13:00 UTC (rev 8714) @@ -37,6 +37,4 @@ */ Border DIALOG_BORDER = new EmptyBorder(new Insets(4, 4, 4, 4)); - int EDIT_TYPE_NONE = 0x10000; // special case - } // interface GUIConstants This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-10 15:06:26
|
Revision: 8713 http://gridarta.svn.sourceforge.net/gridarta/?rev=8713&view=rev Author: akirschbaum Date: 2010-10-10 15:06:19 +0000 (Sun, 10 Oct 2010) Log Message: ----------- Encapsulate edit type calculations into DefaultMapModel. Modified Paths: -------------- trunk/model/src/app/net/sf/gridarta/model/io/AbstractGameObjectParser.java trunk/model/src/app/net/sf/gridarta/model/mapmodel/DefaultMapModel.java trunk/model/src/app/net/sf/gridarta/model/mapmodel/MapModel.java trunk/model/src/app/net/sf/gridarta/model/mapmodel/SavedSquares.java trunk/model/src/app/net/sf/gridarta/model/match/GameObjectMatchers.java trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/GameObjectAttributesDialog.java trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/GameObjectAttributesDialogFactory.java trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/TypesBoxItemListener.java trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/GameObjectAttributesControl.java trunk/src/app/net/sf/gridarta/maincontrol/GUIMainControl.java Modified: trunk/model/src/app/net/sf/gridarta/model/io/AbstractGameObjectParser.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/io/AbstractGameObjectParser.java 2010-10-10 14:29:37 UTC (rev 8712) +++ trunk/model/src/app/net/sf/gridarta/model/io/AbstractGameObjectParser.java 2010-10-10 15:06:19 UTC (rev 8713) @@ -204,10 +204,6 @@ final Collection<G> tailList = new ArrayList<G>(); for (final G gameObject : objects) { - if (gameObject.isHead()) { - gameObjectMatchers.updateEditType(gameObject, mapViewSettings.getEditType()); - } - if (!gameObject.isInContainer()) { expandMulti(gameObject, tailList); } Modified: trunk/model/src/app/net/sf/gridarta/model/mapmodel/DefaultMapModel.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/mapmodel/DefaultMapModel.java 2010-10-10 14:29:37 UTC (rev 8712) +++ trunk/model/src/app/net/sf/gridarta/model/mapmodel/DefaultMapModel.java 2010-10-10 15:06:19 UTC (rev 8713) @@ -28,6 +28,7 @@ import java.util.Iterator; import java.util.List; import java.util.Set; +import net.sf.gridarta.gui.utils.GUIConstants; import net.sf.gridarta.model.archetype.Archetype; import net.sf.gridarta.model.archetypechooser.ArchetypeChooserModel; import net.sf.gridarta.model.autojoin.AutojoinLists; @@ -39,6 +40,7 @@ import net.sf.gridarta.model.maparchobject.MapArchObject; import net.sf.gridarta.model.maparchobject.MapArchObjectListener; import net.sf.gridarta.model.match.GameObjectMatchers; +import net.sf.gridarta.model.match.NamedGameObjectMatcher; import net.sf.gridarta.model.validation.DefaultErrorCollector; import net.sf.gridarta.model.validation.ErrorCollector; import net.sf.gridarta.utils.EventListenerList2; @@ -742,7 +744,7 @@ } } else { newGameObject = templateBaseObject.newInstance(gameObjectFactory); - gameObjectMatchers.updateEditType(newGameObject, activeEditType); + updateEditType(newGameObject); nextGameObjectEnv.addLast(newGameObject); } @@ -795,7 +797,7 @@ part.setAttributeInt(BaseObject.DIRECTION, direction); } if (parts.isEmpty()) { - gameObjectMatchers.updateEditType(part, activeEditType); + updateEditType(part); } else { parts.get(0).addTailPart(part); } @@ -827,7 +829,7 @@ } if (gameObject.isHead()) { - gameObjectMatchers.updateEditType(gameObject, activeEditType); + updateEditType(gameObject); } insertionMode.insert(gameObject, mapGrid.getMapSquare(pos.x, pos.y)); } @@ -913,7 +915,7 @@ try { for (final Iterable<G> mapSquare : this) { for (final GameObject<G, A, R> gameObject : mapSquare) { - gameObjectMatchers.updateEditType(gameObject.getHead(), editType); + updateEditType(gameObject.getHead(), editType); } } } finally { @@ -1022,4 +1024,49 @@ fireModifiedChanged(); } + /** + * {@inheritDoc} + */ + @Override + public void updateEditType(@NotNull final GameObject<G, A, R> gameObject) { + updateEditType(gameObject, activeEditType); + } + + /** + * Updates the edit type of a {@link GameObject}. These are determined by + * various attributes of the game object. + * @param gameObject the game object + * @param checkType bitmask containing the edit type(s) to be calculated + */ + private void updateEditType(@NotNull final GameObject<G, A, R> gameObject, final int checkType) { + assert gameObject.isHead(); + final int editType = gameObject.getEditType(); + if (checkType == 0) { + return; + } + + // all flags from 'checkType' must be unset in this game object because + // they get recalculated now + final int retainedEditType = editType == GUIConstants.EDIT_TYPE_NONE ? 0 : editType & ~checkType; + final int newEditType = retainedEditType | calculateEditType(gameObject, checkType); + gameObject.setEditType(newEditType); + } + + /** + * Returns the edit type for a {@link GameObject}. + * @param gameObject the game object + * @param checkType the edit type to calculate + * @return the edit type + */ + private int calculateEditType(@NotNull final GameObject<?, ?, ?> gameObject, final int checkType) { + int editType = 0; + for (final NamedGameObjectMatcher matcher : gameObjectMatchers) { + final int matcherEditType = matcher.getEditType(); + if ((matcherEditType & checkType) != 0 && matcher.isMatching(gameObject)) { + editType |= matcherEditType; + } + } + return editType; + } + } // class DefaultMapModel Modified: trunk/model/src/app/net/sf/gridarta/model/mapmodel/MapModel.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/mapmodel/MapModel.java 2010-10-10 14:29:37 UTC (rev 8712) +++ trunk/model/src/app/net/sf/gridarta/model/mapmodel/MapModel.java 2010-10-10 15:06:19 UTC (rev 8713) @@ -435,4 +435,11 @@ */ void facesReloaded(); + /** + * Updates the edit type of a {@link GameObject}. These are determined by + * various attributes of the game object. + * @param gameObject the game object + */ + void updateEditType(@NotNull GameObject<G, A, R> gameObject); + } // interface MapModel Modified: trunk/model/src/app/net/sf/gridarta/model/mapmodel/SavedSquares.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/mapmodel/SavedSquares.java 2010-10-10 14:29:37 UTC (rev 8712) +++ trunk/model/src/app/net/sf/gridarta/model/mapmodel/SavedSquares.java 2010-10-10 15:06:19 UTC (rev 8713) @@ -177,7 +177,6 @@ public void applyChanges(@NotNull final MapModel<G, A, R> mapModel) { final Collection<G> objectsToDelete = new ArrayList<G>(); - final int activeEditType = mapModel.getActiveEditType(); final Point point = new Point(); point.x = 0; for (final Iterable<ArrayList<G>> col : savedSquares) { @@ -197,7 +196,7 @@ objectsToDelete.clear(); for (final G gameObject : square) { mapSquare.addLast(gameObject); - gameObjectMatchers.updateEditType(gameObject.getHead(), activeEditType); + mapModel.updateEditType(gameObject.getHead()); } } point.y++; Modified: trunk/model/src/app/net/sf/gridarta/model/match/GameObjectMatchers.java =================================================================== --- trunk/model/src/app/net/sf/gridarta/model/match/GameObjectMatchers.java 2010-10-10 14:29:37 UTC (rev 8712) +++ trunk/model/src/app/net/sf/gridarta/model/match/GameObjectMatchers.java 2010-10-10 15:06:19 UTC (rev 8713) @@ -22,13 +22,13 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.Map; -import net.sf.gridarta.gui.utils.GUIConstants; import net.sf.gridarta.model.errorview.ErrorViewCategory; import net.sf.gridarta.model.errorview.ErrorViewCollector; -import net.sf.gridarta.model.gameobject.GameObject; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -37,7 +37,7 @@ * @author <a href="mailto:ch...@ri...">Christian Hujer</a> * @author Andreas Kirschbaum */ -public class GameObjectMatchers implements Serializable { +public class GameObjectMatchers implements Iterable<NamedGameObjectMatcher>, Serializable { /** * The serial version UID. @@ -106,43 +106,6 @@ } /** - * Updates the edit type of a {@link GameObject}. These are determined by - * various attributes of the game object. - * @param gameObject the game object - * @param checkType bitmask containing the edit type(s) to be calculated - */ - public void updateEditType(@NotNull final GameObject<?, ?, ?> gameObject, final int checkType) { - assert gameObject.isHead(); - final int editType = gameObject.getEditType(); - if (checkType == 0) { - return; - } - - // all flags from 'checkType' must be unset in this game object because - // they get recalculated now - final int retainedEditType = editType == GUIConstants.EDIT_TYPE_NONE ? 0 : editType & ~checkType; - final int newEditType = retainedEditType | calculateEditType(gameObject, checkType); - gameObject.setEditType(newEditType); - } - - /** - * Returns the edit type for a {@link GameObject}. - * @param gameObject the game object - * @param checkType the edit type to calculate - * @return the edit type - */ - private int calculateEditType(@NotNull final GameObject<?, ?, ?> gameObject, final int checkType) { - int editType = 0; - for (final NamedGameObjectMatcher matcher : gameObjectMatchers) { - final int matcherEditType = matcher.getEditType(); - if ((matcherEditType & checkType) != 0 && matcher.isMatching(gameObject)) { - editType |= matcherEditType; - } - } - return editType; - } - - /** * Adds a new {@link GameObjectMatcher}. * @param gameObjectMatcher the game object matcher to add */ @@ -151,4 +114,12 @@ gameObjectMatchersByIds.put(gameObjectMatcher.getID(), gameObjectMatcher); } + /** + * {@inheritDoc} + */ + @Override + public Iterator<NamedGameObjectMatcher> iterator() { + return Collections.unmodifiableCollection(gameObjectMatchers).iterator(); + } + } // class GameObjectMatchers Modified: trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/GameObjectAttributesDialog.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/GameObjectAttributesDialog.java 2010-10-10 14:29:37 UTC (rev 8712) +++ trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/GameObjectAttributesDialog.java 2010-10-10 15:06:19 UTC (rev 8713) @@ -111,7 +111,6 @@ import net.sf.gridarta.model.mapmodel.MapModel; import net.sf.gridarta.model.mapmodel.MapModelListener; import net.sf.gridarta.model.mapmodel.MapSquare; -import net.sf.gridarta.model.match.GameObjectMatchers; import net.sf.gridarta.model.settings.GlobalSettings; import net.sf.gridarta.model.spells.GameObjectSpell; import net.sf.gridarta.model.spells.NumberSpell; @@ -272,13 +271,6 @@ private final ImageIcon unknownSquareIcon; /** - * The {@link GameObjectMatchers} to use. - * @serial - */ - @NotNull - private final GameObjectMatchers gameObjectMatchers; - - /** * The {@link TextAreaDefaults} for text fields. */ @NotNull @@ -800,11 +792,10 @@ * @param treasureTree the treasure tree to use * @param noFaceSquareIcon the image icon for no animations * @param unknownSquareIcon the image icon for undefined animations - * @param gameObjectMatchers the game object matchers to use * @param textAreaDefaults the text area defaults for text fields * @param mapManager the map manager instance */ - public GameObjectAttributesDialog(@NotNull final GameObjectAttributesDialogFactory<G, A, R> gameObjectAttributesDialogFactory, final ArchetypeTypeSet archetypeTypeSet, @NotNull final G gameObject, @NotNull final JFrame parent, @NotNull final CFTreasureListTree<G, A, R> treasureListTree, @NotNull final FaceObjectProviders faceObjectProviders, @NotNull final AnimationObjects<G, A, R> animationObjects, @NotNull final GlobalSettings globalSettings, @NotNull final FileFilter mapFileFilter, @NotNull final FileFilter scriptFileFilter, @NotNull final FaceObjects<G, A, R> faceObjects, @NotNull final Spells<GameObjectSpell<G, A, R>> gameObjectSpells, @NotNull final Spells<NumberSpell> numberSpells, final int undefinedSpellIndex, @NotNull final TreasureTree treasureTree, @NotNull final ImageIcon noFaceSquareIcon, @NotNull final ImageIcon unknownSquareIcon, @NotNull final GameObjectMatchers gameObjectMatchers, @NotNull final TextAreaDefaults textAreaDefaults, @NotNull final MapManager<G, A, R> mapManager) { + public GameObjectAttributesDialog(@NotNull final GameObjectAttributesDialogFactory<G, A, R> gameObjectAttributesDialogFactory, final ArchetypeTypeSet archetypeTypeSet, @NotNull final G gameObject, @NotNull final JFrame parent, @NotNull final CFTreasureListTree<G, A, R> treasureListTree, @NotNull final FaceObjectProviders faceObjectProviders, @NotNull final AnimationObjects<G, A, R> animationObjects, @NotNull final GlobalSettings globalSettings, @NotNull final FileFilter mapFileFilter, @NotNull final FileFilter scriptFileFilter, @NotNull final FaceObjects<G, A, R> faceObjects, @NotNull final Spells<GameObjectSpell<G, A, R>> gameObjectSpells, @NotNull final Spells<NumberSpell> numberSpells, final int undefinedSpellIndex, @NotNull final TreasureTree treasureTree, @NotNull final ImageIcon noFaceSquareIcon, @NotNull final ImageIcon unknownSquareIcon, @NotNull final TextAreaDefaults textAreaDefaults, @NotNull final MapManager<G, A, R> mapManager) { this.gameObjectAttributesDialogFactory = gameObjectAttributesDialogFactory; this.archetypeTypeSet = archetypeTypeSet; this.gameObject = gameObject; @@ -822,7 +813,6 @@ this.treasureTree = treasureTree; this.noFaceSquareIcon = noFaceSquareIcon; this.unknownSquareIcon = unknownSquareIcon; - this.gameObjectMatchers = gameObjectMatchers; this.textAreaDefaults = textAreaDefaults; this.mapManager = mapManager; archetype = gameObject.getArchetype(); @@ -928,7 +918,7 @@ typeComboBox.setName("Types"); // the listener: - typesBoxItemListener = new TypesBoxItemListener<G, A, R>(this, gameObject, type, archetypeTypeSet, dialogAttributes, gameObjectMatchers, typeComboBox, archetypeType); + typesBoxItemListener = new TypesBoxItemListener<G, A, R>(this, gameObject, type, archetypeTypeSet, dialogAttributes, typeComboBox, archetypeType); typeComboBox.addItemListener(typesBoxItemListener); return typeComboBox; } @@ -1295,7 +1285,7 @@ // recalculate the editType value; XXX: should use MVC final MapSquare<G, A, R> mapSquare = gameObject.getMapSquare(); if (mapSquare != null) { - gameObjectMatchers.updateEditType(gameObject, mapSquare.getMapModel().getActiveEditType()); + mapSquare.getMapModel().updateEditType(gameObject); } return true; // apply succeeded Modified: trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/GameObjectAttributesDialogFactory.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/GameObjectAttributesDialogFactory.java 2010-10-10 14:29:37 UTC (rev 8712) +++ trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/GameObjectAttributesDialogFactory.java 2010-10-10 15:06:19 UTC (rev 8713) @@ -35,7 +35,6 @@ import net.sf.gridarta.model.face.FaceObjects; import net.sf.gridarta.model.gameobject.GameObject; import net.sf.gridarta.model.maparchobject.MapArchObject; -import net.sf.gridarta.model.match.GameObjectMatchers; import net.sf.gridarta.model.settings.GlobalSettings; import net.sf.gridarta.model.spells.GameObjectSpell; import net.sf.gridarta.model.spells.NumberSpell; @@ -149,12 +148,6 @@ private final ImageIcon unknownSquareIcon; /** - * The {@link GameObjectMatchers} to use. - */ - @NotNull - private final GameObjectMatchers gameObjectMatchers; - - /** * The {@link TextAreaDefaults} for text fields. */ @NotNull @@ -185,10 +178,9 @@ * @param treasureTree the treasure tree to use * @param noFaceSquareIcon the image icon for no animations * @param unknownSquareIcon the image icon for undefined animations - * @param gameObjectMatchers the game object matchers to use * @param mapManager the map manager instance */ - public GameObjectAttributesDialogFactory(@NotNull final ArchetypeTypeSet archetypeTypeSet, @NotNull final JFrame parent, @NotNull final CFTreasureListTree<G, A, R> treasureListTree, @NotNull final FaceObjectProviders faceObjectProviders, @NotNull final AnimationObjects<G, A, R> animationObjects, @NotNull final GlobalSettings globalSettings, @NotNull final FileFilter mapFileFilter, @NotNull final FileFilter scriptFileFilter, @NotNull final FaceObjects<G, A, R> faceObjects, @NotNull final Spells<GameObjectSpell<G, A, R>> gameObjectSpells, @NotNull final Spells<NumberSpell> numberSpells, final int undefinedSpellIndex, @NotNull final TreasureTree treasureTree, @NotNull final ImageIcon noFaceSquareIcon, @NotNull final ImageIcon unknownSquareIcon, @NotNull final GameObjectMatchers gameObjectMatchers, @NotNull final MapManager<G, A, R> mapManager) { + public GameObjectAttributesDialogFactory(@NotNull final ArchetypeTypeSet archetypeTypeSet, @NotNull final JFrame parent, @NotNull final CFTreasureListTree<G, A, R> treasureListTree, @NotNull final FaceObjectProviders faceObjectProviders, @NotNull final AnimationObjects<G, A, R> animationObjects, @NotNull final GlobalSettings globalSettings, @NotNull final FileFilter mapFileFilter, @NotNull final FileFilter scriptFileFilter, @NotNull final FaceObjects<G, A, R> faceObjects, @NotNull final Spells<GameObjectSpell<G, A, R>> gameObjectSpells, @NotNull final Spells<NumberSpell> numberSpells, final int undefinedSpellIndex, @NotNull final TreasureTree treasureTree, @NotNull final ImageIcon noFaceSquareIcon, @NotNull final ImageIcon unknownSquareIcon, @NotNull final MapManager<G, A, R> mapManager) { this.archetypeTypeSet = archetypeTypeSet; this.parent = parent; this.treasureListTree = treasureListTree; @@ -204,7 +196,6 @@ this.treasureTree = treasureTree; this.unknownSquareIcon = unknownSquareIcon; this.noFaceSquareIcon = noFaceSquareIcon; - this.gameObjectMatchers = gameObjectMatchers; this.mapManager = mapManager; } @@ -230,7 +221,7 @@ if (dialogs.containsKey(head)) { dialogs.get(head).toFront(); } else { - final GameObjectAttributesDialog<G, A, R> pane = new GameObjectAttributesDialog<G, A, R>(this, archetypeTypeSet, head, parent, treasureListTree, faceObjectProviders, animationObjects, globalSettings, mapFileFilter, scriptFileFilter, faceObjects, gameObjectSpells, numberSpells, undefinedSpellIndex, treasureTree, noFaceSquareIcon, unknownSquareIcon, gameObjectMatchers, textAreaDefaults, mapManager); + final GameObjectAttributesDialog<G, A, R> pane = new GameObjectAttributesDialog<G, A, R>(this, archetypeTypeSet, head, parent, treasureListTree, faceObjectProviders, animationObjects, globalSettings, mapFileFilter, scriptFileFilter, faceObjects, gameObjectSpells, numberSpells, undefinedSpellIndex, treasureTree, noFaceSquareIcon, unknownSquareIcon, textAreaDefaults, mapManager); final JDialog dialog = pane.createDialog(); dialogs.put(head, dialog); } Modified: trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/TypesBoxItemListener.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/TypesBoxItemListener.java 2010-10-10 14:29:37 UTC (rev 8712) +++ trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/TypesBoxItemListener.java 2010-10-10 15:06:19 UTC (rev 8713) @@ -31,7 +31,6 @@ import net.sf.gridarta.model.gameobject.GameObject; import net.sf.gridarta.model.maparchobject.MapArchObject; import net.sf.gridarta.model.mapmodel.MapModel; -import net.sf.gridarta.model.match.GameObjectMatchers; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -67,13 +66,6 @@ private final Collection<DialogAttribute<G, A, R, ?>> dialogAttributes; /** - * The {@link GameObjectMatchers} to use. - * @serial - */ - @NotNull - private final GameObjectMatchers gameObjectMatchers; - - /** * The selection box for the type. */ @NotNull @@ -111,17 +103,15 @@ * @param type the initially selected type * @param archetypeTypeSet the archetype type set to display * @param dialogAttributes the dialog attributes to update - * @param gameObjectMatchers the game object matchers to use * @param typeComboBox the selection box for the type * @param archetypeType the references to the data type */ - public TypesBoxItemListener(@NotNull final GameObjectAttributesDialog<G, A, R> frameNew, @NotNull final GameObject<G, A, R> gameObject, final int type, @NotNull final ArchetypeTypeSet archetypeTypeSet, @NotNull final Collection<DialogAttribute<G, A, R, ?>> dialogAttributes, @NotNull final GameObjectMatchers gameObjectMatchers, @NotNull final JComboBox typeComboBox, @NotNull final ArchetypeType archetypeType) { + public TypesBoxItemListener(@NotNull final GameObjectAttributesDialog<G, A, R> frameNew, @NotNull final GameObject<G, A, R> gameObject, final int type, @NotNull final ArchetypeTypeSet archetypeTypeSet, @NotNull final Collection<DialogAttribute<G, A, R, ?>> dialogAttributes, @NotNull final JComboBox typeComboBox, @NotNull final ArchetypeType archetypeType) { gameObjectAttributesDialog = frameNew; this.gameObject = gameObject; this.type = type; this.archetypeTypeSet = archetypeTypeSet; this.dialogAttributes = dialogAttributes; - this.gameObjectMatchers = gameObjectMatchers; this.typeComboBox = typeComboBox; this.archetypeType = archetypeType; ignoreEvent = false; @@ -165,7 +155,7 @@ gameObjectAttributesDialog.update(gameObjectAttributesDialog.getGraphics()); // recalculate the editType value; XXX: should use MVC - gameObjectMatchers.updateEditType(gameObject, mapModel.getActiveEditType()); + mapModel.updateEditType(gameObject); } else { ignoreEvent = true; typeComboBox.setSelectedIndex(type); Modified: trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/GameObjectAttributesControl.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/GameObjectAttributesControl.java 2010-10-10 14:29:37 UTC (rev 8712) +++ trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/GameObjectAttributesControl.java 2010-10-10 15:06:19 UTC (rev 8713) @@ -676,7 +676,7 @@ } // recalculate the editType value; XXX: should use MVC - gameObjectMatchers.updateEditType(gameObject, gameObject.getMapSquare().getMapModel().getActiveEditType()); + mapModel.updateEditType(gameObject); } finally { mapModel.endTransaction(); } Modified: trunk/src/app/net/sf/gridarta/maincontrol/GUIMainControl.java =================================================================== --- trunk/src/app/net/sf/gridarta/maincontrol/GUIMainControl.java 2010-10-10 14:29:37 UTC (rev 8712) +++ trunk/src/app/net/sf/gridarta/maincontrol/GUIMainControl.java 2010-10-10 15:06:19 UTC (rev 8713) @@ -455,7 +455,7 @@ final CFTreasureListTree<G, A, R> treasureListTree = new CFTreasureListTree<G, A, R>(treasureTree, mainViewFrame, archetypeSet, faceObjectProviders, systemIcons); final ImageIcon noFaceSquareIcon = systemIcons.getNoFaceSquareIcon(); final ImageIcon unknownSquareIcon = systemIcons.getUnknownSquareIcon(); - final GameObjectAttributesDialogFactory<G, A, R> gameObjectAttributesDialogFactory = new GameObjectAttributesDialogFactory<G, A, R>(archetypeTypeSet, mainViewFrame, treasureListTree, faceObjectProviders, animationObjects, globalSettings, mapFileFilter, scriptFileFilter, faceObjects, gameObjectSpells, numberSpells, undefinedSpellIndex, treasureTree, noFaceSquareIcon, unknownSquareIcon, gameObjectMatchers, mapManager); + final GameObjectAttributesDialogFactory<G, A, R> gameObjectAttributesDialogFactory = new GameObjectAttributesDialogFactory<G, A, R>(archetypeTypeSet, mainViewFrame, treasureListTree, faceObjectProviders, animationObjects, globalSettings, mapFileFilter, scriptFileFilter, faceObjects, gameObjectSpells, numberSpells, undefinedSpellIndex, treasureTree, noFaceSquareIcon, unknownSquareIcon, mapManager); final DefaultObjectChooser<G, A, R> objectChooser = new DefaultObjectChooser<G, A, R>(archetypeChooserControl, pickmapChooserControl, archetypeChooserModel, pickmapChooserModel, archetypeTypeSet); newMapDialogFactory.setObjectChooser(objectChooser); final SelectedSquareModel<G, A, R> selectedSquareModel = new SelectedSquareModel<G, A, R>(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-10 14:29:43
|
Revision: 8712 http://gridarta.svn.sourceforge.net/gridarta/?rev=8712&view=rev Author: akirschbaum Date: 2010-10-10 14:29:37 +0000 (Sun, 10 Oct 2010) Log Message: ----------- Remove comments. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/TypesBoxItemListener.java Modified: trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/TypesBoxItemListener.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/TypesBoxItemListener.java 2010-10-10 14:28:05 UTC (rev 8711) +++ trunk/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/TypesBoxItemListener.java 2010-10-10 14:29:37 UTC (rev 8712) @@ -137,11 +137,8 @@ } if (e.getStateChange() == ItemEvent.DESELECTED) { - // remember the deselected type deselected = ((String) e.getItem()).trim(); } else if (e.getStateChange() == ItemEvent.SELECTED && !e.getItem().equals(deselected)) { - // new type was selected - // first, get new type structure final ArchetypeType newType = archetypeTypeSet.getTypeByName((String) e.getItem()); typeComboBox.hidePopup(); @@ -151,11 +148,8 @@ deselected = archetypeType.getTypeName(); } if (JOptionPane.showConfirmDialog(gameObjectAttributesDialog, "Do you really want to change the type of this\n" + "object from \"" + deselected + "\" to \"" + newType.getTypeName() + "\"?", "Confirm", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE) == JOptionPane.YES_OPTION) { - // change is confirmed, now get it on... archetypeType = newType; - // change the gameObject to be of the new type: - final MapModel<G, A, R> mapModel = gameObject.getMapSquare().getMapModel(); mapModel.beginTransaction("change type to " + newType.getTypeName()); try { @@ -167,15 +161,13 @@ type = typeComboBox.getSelectedIndex(); - // rebuild the dialog frame to show the new tabs gameObjectAttributesDialog.buildAttribute(); gameObjectAttributesDialog.update(gameObjectAttributesDialog.getGraphics()); // recalculate the editType value; XXX: should use MVC gameObjectMatchers.updateEditType(gameObject, mapModel.getActiveEditType()); } else { - // change not wanted -> reset the choose box - ignoreEvent = true; // ignore events thrown by the forced reset + ignoreEvent = true; typeComboBox.setSelectedIndex(type); ignoreEvent = false; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-10-10 14:28:11
|
Revision: 8711 http://gridarta.svn.sourceforge.net/gridarta/?rev=8711&view=rev Author: akirschbaum Date: 2010-10-10 14:28:05 +0000 (Sun, 10 Oct 2010) Log Message: ----------- Correctly update game object type in undo/redo. Modified Paths: -------------- branches/0.8/atrinik/ChangeLog branches/0.8/crossfire/ChangeLog branches/0.8/daimonin/ChangeLog branches/0.8/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/GameObjectAttributesDialog.java Modified: branches/0.8/atrinik/ChangeLog =================================================================== --- branches/0.8/atrinik/ChangeLog 2010-10-10 14:19:30 UTC (rev 8710) +++ branches/0.8/atrinik/ChangeLog 2010-10-10 14:28:05 UTC (rev 8711) @@ -1,3 +1,7 @@ +2010-10-10 Andreas Kirschbaum + + * Correctly update game object type in undo/redo. + 2010-09-25 Andreas Kirschbaum * Correctly update archetypes when undoing/redoing operations Modified: branches/0.8/crossfire/ChangeLog =================================================================== --- branches/0.8/crossfire/ChangeLog 2010-10-10 14:19:30 UTC (rev 8710) +++ branches/0.8/crossfire/ChangeLog 2010-10-10 14:28:05 UTC (rev 8711) @@ -1,3 +1,7 @@ +2010-10-10 Andreas Kirschbaum + + * Correctly update game object type in undo/redo. + 2010-09-25 Andreas Kirschbaum * Correctly update archetypes when undoing/redoing operations Modified: branches/0.8/daimonin/ChangeLog =================================================================== --- branches/0.8/daimonin/ChangeLog 2010-10-10 14:19:30 UTC (rev 8710) +++ branches/0.8/daimonin/ChangeLog 2010-10-10 14:28:05 UTC (rev 8711) @@ -1,3 +1,7 @@ +2010-10-10 Andreas Kirschbaum + + * Correctly update game object type in undo/redo. + 2010-09-25 Andreas Kirschbaum * Correctly update archetypes when undoing/redoing operations Modified: branches/0.8/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/GameObjectAttributesDialog.java =================================================================== --- branches/0.8/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/GameObjectAttributesDialog.java 2010-10-10 14:19:30 UTC (rev 8710) +++ branches/0.8/src/app/net/sf/gridarta/gui/gameobjectattributesdialog/GameObjectAttributesDialog.java 2010-10-10 14:28:05 UTC (rev 8711) @@ -1573,7 +1573,13 @@ gameObjectAttributesDialog.archetypeType = newType; // change the gameObject to be of the new type: - gameObject.setAttributeString(BaseObject.TYPE, Integer.toString(newType.getTypeNo())); + final MapModel<G, A, R> mapModel = gameObject.getMapSquare().getMapModel(); + mapModel.beginTransaction("change type to " + newType.getTypeName()); + try { + gameObject.setAttributeString(BaseObject.TYPE, Integer.toString(newType.getTypeNo())); + } finally { + mapModel.endTransaction(); + } dialogAttributes.clear(); type = gameObjectAttributesDialog.typeComboBox.getSelectedIndex(); @@ -1585,7 +1591,7 @@ gameObjectAttributesDialog.update(gameObjectAttributesDialog.getGraphics()); // recalculate the editType value; XXX: should use MVC - gameObjectMatchers.updateEditType(gameObject, gameObject.getMapSquare().getMapModel().getActiveEditType()); + gameObjectMatchers.updateEditType(gameObject, mapModel.getActiveEditType()); } else { // change not wanted -> reset the choose box ignoreEvent = true; // ignore events thrown by the forced reset This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |