diff --git a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/EntitySelectorCell.java b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/EntitySelectorCell.java new file mode 100644 index 00000000..01814ea7 --- /dev/null +++ b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/EntitySelectorCell.java @@ -0,0 +1,66 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package org.badvision.outlaweditor.ui; + +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; +import javafx.scene.control.ListCell; +import javafx.scene.control.TextField; +import javafx.scene.control.cell.ComboBoxListCell; +import org.badvision.outlaweditor.data.PropertyHelper; +import org.badvision.outlaweditor.ui.impl.ApplicationUIControllerImpl; + +/** + * + * @author blurry + */ +public abstract class EntitySelectorCell extends ComboBoxListCell { + static Map lastSelected = new HashMap<>(); + TextField nameField; + + public EntitySelectorCell(TextField tileNameField) { + super.setPrefWidth(125); + nameField = tileNameField; + } + + @Override + public void updateSelected(boolean sel) { + if (sel) { + Object o = lastSelected.get(nameField); + if (o != null && !o.equals(getItem())) { + ((ListCell) o).updateSelected(false); + } + textProperty().unbind(); + textProperty().bind(nameField.textProperty()); + lastSelected.put(nameField, this); + } else { + updateItem(getItem(), false); + } + } + + @Override + public void updateItem(T item, boolean empty) { + textProperty().unbind(); + super.updateItem(item, empty); + if (item != null && !(item instanceof String)) { + try { + textProperty().bind(PropertyHelper.stringProp(item, "name")); + } catch (NoSuchMethodException ex) { + Logger.getLogger(ApplicationUIControllerImpl.class.getName()).log(Level.SEVERE, null, ex); + } + finishUpdate(item); + } else { + setText(null); + } + } + + public void finishUpdate(T item) { + } + +} diff --git a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/MapEditorTabController.java b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/MapEditorTabController.java index e059de64..36e9d7e1 100644 --- a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/MapEditorTabController.java +++ b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/MapEditorTabController.java @@ -127,7 +127,7 @@ public abstract class MapEditorTabController { @FXML abstract public void scrollMapUp(ActionEvent event); - protected void initalize() { + public void initalize() { assert mapEditorAnchorPane != null : "fx:id=\"mapEditorAnchorPane\" was not injected: check your FXML file 'mapEditorTab.fxml'."; assert mapHeightField != null : "fx:id=\"mapHeightField\" was not injected: check your FXML file 'mapEditorTab.fxml'."; assert mapNameField != null : "fx:id=\"mapNameField\" was not injected: check your FXML file 'mapEditorTab.fxml'."; diff --git a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/TileEditorTabController.java b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/TileEditorTabController.java index f2398019..685a7f0b 100644 --- a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/TileEditorTabController.java +++ b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/TileEditorTabController.java @@ -85,4 +85,7 @@ public abstract class TileEditorTabController { abstract public void rebuildTileSelectors(); + public void initalize() { + + } } diff --git a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/ApplicationUIControllerImpl.java b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/ApplicationUIControllerImpl.java index b1327c06..4895f5d9 100644 --- a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/ApplicationUIControllerImpl.java +++ b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/ApplicationUIControllerImpl.java @@ -1,17 +1,9 @@ package org.badvision.outlaweditor.ui.impl; -import java.util.HashMap; -import java.util.Map; -import java.util.logging.Level; -import java.util.logging.Logger; import javafx.event.Event; -import javafx.scene.control.ListCell; -import javafx.scene.control.TextField; -import javafx.scene.control.cell.ComboBoxListCell; import javafx.scene.input.DataFormat; import org.badvision.outlaweditor.Application; import org.badvision.outlaweditor.Editor; -import static org.badvision.outlaweditor.data.PropertyHelper.*; import org.badvision.outlaweditor.data.TileUtils; import org.badvision.outlaweditor.data.TilesetUtils; import org.badvision.outlaweditor.data.xml.Tile; @@ -34,6 +26,9 @@ public class ApplicationUIControllerImpl extends ApplicationUIController { rebuildTileSelectors(); } }); + tileController.initalize(); + mapController.initalize(); + imageController.initalize(); } @Override @@ -127,51 +122,6 @@ public class ApplicationUIControllerImpl extends ApplicationUIController { public static final DataFormat SCRIPT_DATA_FORMAT = new DataFormat("MythosScript"); - abstract public static class EntitySelectorCell extends ComboBoxListCell { - - static Map lastSelected = new HashMap<>(); - TextField nameField; - - public EntitySelectorCell(TextField tileNameField) { - super.setPrefWidth(125); - nameField = tileNameField; - } - - @Override - public void updateSelected(boolean sel) { - if (sel) { - Object o = lastSelected.get(nameField); - if (o != null && !o.equals(getItem())) { - ((ListCell) o).updateSelected(false); - } - textProperty().unbind(); - textProperty().bind(nameField.textProperty()); - lastSelected.put(nameField, this); - } else { - updateItem(getItem(), false); - } - } - - @Override - public void updateItem(T item, boolean empty) { - textProperty().unbind(); - super.updateItem(item, empty); - if (item != null && !(item instanceof String)) { - try { - textProperty().bind(stringProp(item, "name")); - } catch (NoSuchMethodException ex) { - Logger.getLogger(ApplicationUIControllerImpl.class.getName()).log(Level.SEVERE, null, ex); - } - finishUpdate(item); - } else { - setText(null); - } - } - - public void finishUpdate(T item) { - } - }; - @Override public void clearData() { tileController.setCurrentTile(null); diff --git a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/ImageEditorTabControllerImpl.java b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/ImageEditorTabControllerImpl.java index 4985b50b..abd8a8a2 100644 --- a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/ImageEditorTabControllerImpl.java +++ b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/ImageEditorTabControllerImpl.java @@ -1,5 +1,6 @@ package org.badvision.outlaweditor.ui.impl; +import org.badvision.outlaweditor.ui.EntitySelectorCell; import java.util.logging.Level; import java.util.logging.Logger; import javafx.event.ActionEvent; @@ -52,7 +53,7 @@ public class ImageEditorTabControllerImpl extends ImageEditorTabController { imageSelector.setCellFactory(new Callback, ListCell>() { @Override public ListCell call(ListView param) { - return new ApplicationUIControllerImpl.EntitySelectorCell(imageNameField) { + return new EntitySelectorCell(imageNameField) { @Override public void finishUpdate(Image item) { } diff --git a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/MapEditorTabControllerImpl.java b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/MapEditorTabControllerImpl.java index 5a4b0cda..9da4a41d 100644 --- a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/MapEditorTabControllerImpl.java +++ b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/MapEditorTabControllerImpl.java @@ -1,5 +1,6 @@ package org.badvision.outlaweditor.ui.impl; +import org.badvision.outlaweditor.ui.EntitySelectorCell; import java.util.logging.Level; import java.util.logging.Logger; import javafx.event.ActionEvent; @@ -185,6 +186,7 @@ public class MapEditorTabControllerImpl extends MapEditorTabController { } } + @Override public void completeInflightOperations() { if (getCurrentEditor() != null) { getCurrentEditor().getCurrentMap().updateBackingMap(); @@ -248,7 +250,7 @@ public class MapEditorTabControllerImpl extends MapEditorTabController { } @Override - protected void initalize() { + public void initalize() { super.initalize(); mapSelect.setButtonCell(new ComboBoxListCell() { { @@ -256,7 +258,7 @@ public class MapEditorTabControllerImpl extends MapEditorTabController { } @Override - public void updateItem(org.badvision.outlaweditor.data.xml.Map item, boolean empty) { + public void updateItem(Map item, boolean empty) { textProperty().unbind(); super.updateItem(item, empty); if (item != null) { @@ -266,13 +268,13 @@ public class MapEditorTabControllerImpl extends MapEditorTabController { } } }); - mapSelect.setCellFactory(new Callback, ListCell>() { + mapSelect.setCellFactory(new Callback, ListCell>() { @Override - public ListCell call(ListView param) { - return new ApplicationUIControllerImpl.EntitySelectorCell(mapNameField) { + public ListCell call(ListView param) { + return new EntitySelectorCell(mapNameField) { @Override - public void finishUpdate(org.badvision.outlaweditor.data.xml.Map item) { - } + public void finishUpdate(Map item) { + } }; } }); diff --git a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/TileEditorTabControllerImpl.java b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/TileEditorTabControllerImpl.java index 0004ea94..3ac9f942 100644 --- a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/TileEditorTabControllerImpl.java +++ b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/TileEditorTabControllerImpl.java @@ -1,5 +1,6 @@ package org.badvision.outlaweditor.ui.impl; +import org.badvision.outlaweditor.ui.EntitySelectorCell; import java.util.Arrays; import java.util.logging.Level; import java.util.logging.Logger; @@ -156,7 +157,7 @@ public class TileEditorTabControllerImpl extends TileEditorTabController { tileSelector.setCellFactory(new Callback, ListCell>() { @Override public ListCell call(ListView param) { - return new ApplicationUIControllerImpl.EntitySelectorCell(tileNameField) { + return new EntitySelectorCell(tileNameField) { @Override public void finishUpdate(Tile item) { setGraphic(new ImageView(TileUtils.getImage(item, Application.currentPlatform))); diff --git a/OutlawEditor/src/main/resources/MythosScriptEditor.fxml b/OutlawEditor/src/main/resources/MythosScriptEditor.fxml index db283b69..0e40c5bd 100644 --- a/OutlawEditor/src/main/resources/MythosScriptEditor.fxml +++ b/OutlawEditor/src/main/resources/MythosScriptEditor.fxml @@ -5,7 +5,7 @@ - + diff --git a/OutlawEditor/src/main/resources/mapEditorTab.fxml b/OutlawEditor/src/main/resources/mapEditorTab.fxml index 01aa1742..36b720d4 100644 --- a/OutlawEditor/src/main/resources/mapEditorTab.fxml +++ b/OutlawEditor/src/main/resources/mapEditorTab.fxml @@ -1,19 +1,17 @@ - - - +