change more ListModel implementations to CustomListModel

This commit is contained in:
OMGeeky
2025-06-21 16:22:50 +02:00
parent 333100b19b
commit d030e11019
2 changed files with 23 additions and 90 deletions

View File

@@ -65,26 +65,12 @@ public class ReplaceArea extends MapObject {
public void elementChanged(GameDataElement oldOne, GameDataElement newOne) { public void elementChanged(GameDataElement oldOne, GameDataElement newOne) {
requirement.elementChanged(oldOne, newOne); requirement.elementChanged(oldOne, newOne);
} }
public ReplaceArea.Replacement addReplacement(String source, String target) { public ReplaceArea.Replacement createReplacement(String source, String target) {
Replacement repl = new Replacement(source, target); Replacement repl = new Replacement(source, target);
addReplacement(repl);
return repl; return repl;
} }
public void addReplacement(ReplaceArea.Replacement repl) {
if (replacements == null) replacements = new ArrayList<ReplaceArea.Replacement>();
replacements.add(repl);
}
// public void removeReplacement(String source, String target) {
// replacedLayers.remove(source);
// }
public void removeReplacement(Replacement repl) {
replacements.remove(repl);
}
@Override @Override
public void savePropertiesInTmxObject(tiled.core.MapObject tmxObject) { public void savePropertiesInTmxObject(tiled.core.MapObject tmxObject) {
if (replacements != null) { if (replacements != null) {

View File

@@ -1147,61 +1147,23 @@ public class TMXMapEditor extends Editor implements TMXMap.MapChangedOnDiskListe
} }
} }
public class ReplacementsListModel implements ListModel<ReplaceArea.Replacement> { public class ReplacementsListModel extends CustomListModel<ReplaceArea, ReplaceArea.Replacement> {
public ReplaceArea area;
public ReplacementsListModel(ReplaceArea area) { public ReplacementsListModel(ReplaceArea area) {
this.area = area; super(area);
} }
@Override @Override
public int getSize() { protected List<ReplaceArea.Replacement> getItems() {
if (area.replacements == null) return 0; return source.replacements;
return area.replacements.size();
} }
@Override @Override
public ReplaceArea.Replacement getElementAt(int index) { protected void setItems(List<ReplaceArea.Replacement> items) {
if (index < 0 || index > getSize()) return null; source.replacements = items;
if (area.replacements == null) return null;
return area.replacements.get(index);
} }
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) { public void addObject(String source, String target) {
ReplaceArea.Replacement repl = area.addReplacement(source, target); ReplaceArea.Replacement repl = this.source.createReplacement(source, target);
int index = area.replacements.indexOf(repl); addObject(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<ListDataListener> listeners = new CopyOnWriteArrayList<ListDataListener>();
@Override
public void addListDataListener(ListDataListener l) {
listeners.add(l);
}
@Override
public void removeListDataListener(ListDataListener l) {
listeners.remove(l);
} }
} }
@@ -1308,37 +1270,22 @@ public class TMXMapEditor extends Editor implements TMXMap.MapChangedOnDiskListe
return c; return c;
} }
} }
public class SpawnGroupNpcListModel implements ListModel<NPC> {
public class SpawnGroupNpcListModel extends CustomListModel<SpawnArea, NPC> {
public SpawnArea area;
public SpawnGroupNpcListModel(SpawnArea area) { public SpawnGroupNpcListModel(SpawnArea area) {
this.area = area; super(area);
}
@Override
public int getSize() {
return area.spawnGroup.size();
} }
@Override @Override
public NPC getElementAt(int index) { protected List<NPC> getItems() {
return area.spawnGroup.get(index); return source.spawnGroup;
}
List<ListDataListener> listeners = new CopyOnWriteArrayList<ListDataListener>();
@Override
public void addListDataListener(ListDataListener l) {
listeners.add(l);
} }
@Override @Override
public void removeListDataListener(ListDataListener l) { protected void setItems(List<NPC> items) {
listeners.remove(l); source.spawnGroup = items;
} }
} }
@@ -1588,13 +1535,13 @@ public class TMXMapEditor extends Editor implements TMXMap.MapChangedOnDiskListe
} }
public static class TMXMapSpritesheetsListModel implements ListModel<Spritesheet> { public static class TMXMapSpritesheetsListModel implements ListModel<Spritesheet> {
TMXMap map; TMXMap map;
public TMXMapSpritesheetsListModel(TMXMap map) { public TMXMapSpritesheetsListModel(TMXMap map) {
this.map = map; this.map = map;
} }
@Override @Override
public int getSize() { public int getSize() {
return map.usedSpritesheets.size(); return map.usedSpritesheets.size();