diff --git a/src/com/gpl/rpg/atcontentstudio/model/maps/ReplaceArea.java b/src/com/gpl/rpg/atcontentstudio/model/maps/ReplaceArea.java index 20a9d4d..eaea296 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/maps/ReplaceArea.java +++ b/src/com/gpl/rpg/atcontentstudio/model/maps/ReplaceArea.java @@ -65,26 +65,12 @@ public class ReplaceArea extends MapObject { public void elementChanged(GameDataElement oldOne, GameDataElement newOne) { requirement.elementChanged(oldOne, newOne); } - - public ReplaceArea.Replacement addReplacement(String source, String target) { - Replacement repl = new Replacement(source, target); - addReplacement(repl); + + public ReplaceArea.Replacement createReplacement(String source, String target) { + Replacement repl = new Replacement(source, target); return repl; } - - public void addReplacement(ReplaceArea.Replacement repl) { - if (replacements == null) replacements = new ArrayList(); - replacements.add(repl); - } - -// public void removeReplacement(String source, String target) { -// replacedLayers.remove(source); -// } - - public void removeReplacement(Replacement repl) { - replacements.remove(repl); - } - + @Override public void savePropertiesInTmxObject(tiled.core.MapObject tmxObject) { if (replacements != null) { diff --git a/src/com/gpl/rpg/atcontentstudio/ui/map/TMXMapEditor.java b/src/com/gpl/rpg/atcontentstudio/ui/map/TMXMapEditor.java index 47e03d8..d24adf3 100644 --- a/src/com/gpl/rpg/atcontentstudio/ui/map/TMXMapEditor.java +++ b/src/com/gpl/rpg/atcontentstudio/ui/map/TMXMapEditor.java @@ -1147,61 +1147,23 @@ public class TMXMapEditor extends Editor implements TMXMap.MapChangedOnDiskListe } } - public class ReplacementsListModel implements ListModel { - - public ReplaceArea area; - + public class ReplacementsListModel extends CustomListModel { public ReplacementsListModel(ReplaceArea area) { - this.area = area; + super(area); } - @Override - public int getSize() { - if (area.replacements == null) return 0; - return area.replacements.size(); + protected List getItems() { + return source.replacements; } @Override - public ReplaceArea.Replacement getElementAt(int index) { - if (index < 0 || index > getSize()) return null; - if (area.replacements == null) return null; - return area.replacements.get(index); + protected void setItems(List items) { + source.replacements = items; } - - public void objectChanged(ReplaceArea.Replacement repl) { - int index = area.replacements.indexOf(repl); - for (ListDataListener l : listeners) { - l.contentsChanged(new ListDataEvent(this, ListDataEvent.CONTENTS_CHANGED, index, index)); - } - } - public void addObject(String source, String target) { - ReplaceArea.Replacement repl = area.addReplacement(source, target); - int index = area.replacements.indexOf(repl); - for (ListDataListener l : listeners) { - l.intervalAdded(new ListDataEvent(this, ListDataEvent.INTERVAL_ADDED, index, index)); - } - } - - public void removeObject(ReplaceArea.Replacement repl) { - int index = area.replacements.indexOf(repl); - area.removeReplacement(repl); - for (ListDataListener l : listeners) { - l.intervalRemoved(new ListDataEvent(this, ListDataEvent.INTERVAL_REMOVED, index, index)); - } - } - - List listeners = new CopyOnWriteArrayList(); - - @Override - public void addListDataListener(ListDataListener l) { - listeners.add(l); - } - - @Override - public void removeListDataListener(ListDataListener l) { - listeners.remove(l); + ReplaceArea.Replacement repl = this.source.createReplacement(source, target); + addObject(repl); } } @@ -1308,37 +1270,22 @@ public class TMXMapEditor extends Editor implements TMXMap.MapChangedOnDiskListe return c; } } - - public class SpawnGroupNpcListModel implements ListModel { - - public SpawnArea area; - + + + public class SpawnGroupNpcListModel extends CustomListModel { public SpawnGroupNpcListModel(SpawnArea area) { - this.area = area; - } - - @Override - public int getSize() { - return area.spawnGroup.size(); + super(area); } @Override - public NPC getElementAt(int index) { - return area.spawnGroup.get(index); - } - - List listeners = new CopyOnWriteArrayList(); - - @Override - public void addListDataListener(ListDataListener l) { - listeners.add(l); + protected List getItems() { + return source.spawnGroup; } @Override - public void removeListDataListener(ListDataListener l) { - listeners.remove(l); + protected void setItems(List items) { + source.spawnGroup = items; } - } @@ -1588,13 +1535,13 @@ public class TMXMapEditor extends Editor implements TMXMap.MapChangedOnDiskListe } public static class TMXMapSpritesheetsListModel implements ListModel { - + + TMXMap map; - + public TMXMapSpritesheetsListModel(TMXMap map) { this.map = map; } - @Override public int getSize() { return map.usedSpritesheets.size();