diff --git a/OutlawEditor/src/main/java/org/badvision/outlaweditor/MythosEditor.java b/OutlawEditor/src/main/java/org/badvision/outlaweditor/MythosEditor.java index 73219d61..2644c0d5 100644 --- a/OutlawEditor/src/main/java/org/badvision/outlaweditor/MythosEditor.java +++ b/OutlawEditor/src/main/java/org/badvision/outlaweditor/MythosEditor.java @@ -129,7 +129,6 @@ public class MythosEditor { return; } script.setName(name); - System.out.println("Function title changed! >> " + name); ApplicationUIController.getController().redrawScripts(); } } diff --git a/OutlawEditor/src/main/java/org/badvision/outlaweditor/TransferHelper.java b/OutlawEditor/src/main/java/org/badvision/outlaweditor/TransferHelper.java index 4dbaf913..e9fbde7d 100644 --- a/OutlawEditor/src/main/java/org/badvision/outlaweditor/TransferHelper.java +++ b/OutlawEditor/src/main/java/org/badvision/outlaweditor/TransferHelper.java @@ -11,6 +11,13 @@ import javafx.scene.input.DragEvent; import javafx.scene.input.Dragboard; import javafx.scene.input.MouseEvent; import javafx.scene.input.TransferMode; +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBElement; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import javax.xml.bind.util.JAXBSource; +import javax.xml.namespace.QName; +import org.badvision.outlaweditor.data.xml.Script; import org.badvision.outlaweditor.ui.ToolType; /** @@ -98,4 +105,17 @@ public class TransferHelper { }); }; } + + public static U cloneObject(U source, Class type, String nodeType) throws JAXBException { + JAXBContext sourceJAXBContext = JAXBContext.newInstance(source.getClass()); + Marshaller jaxbMarshaller = sourceJAXBContext.createMarshaller(); + + // format the XML output + jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + JAXBContext targetJAXBContext = JAXBContext.newInstance(source.getClass()); + QName qName = new QName("info.source4code.jaxb.model", nodeType); + JAXBElement root = new JAXBElement<>(qName, type, source); + JAXBElement cloneRoot = (JAXBElement) targetJAXBContext.createUnmarshaller().unmarshal(new JAXBSource(sourceJAXBContext, root), type); + return cloneRoot.getValue(); + } } diff --git a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/UIAction.java b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/UIAction.java index 0defe2cb..e47fcf96 100644 --- a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/UIAction.java +++ b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/UIAction.java @@ -193,6 +193,10 @@ public class UIAction { public static void confirm(String message, Runnable yes, Runnable no) { choose(message, new Choice("Yes", yes), new Choice("No", no)); } + + public static void alert(String message) { + choose(message, new Choice("Ok", null)); + } public static void choose(String message, Choice... choices) { final Stage dialogStage = new Stage(); 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 1f1d83b4..5447553c 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 @@ -14,6 +14,7 @@ import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.image.WritableImage; import javafx.util.Callback; +import javax.xml.bind.JAXBException; import org.badvision.outlaweditor.Application; import static org.badvision.outlaweditor.Application.currentPlatform; import static org.badvision.outlaweditor.Application.gameData; @@ -25,18 +26,21 @@ import org.badvision.outlaweditor.data.TileUtils; import org.badvision.outlaweditor.data.xml.Map; import org.badvision.outlaweditor.data.xml.Script; import org.badvision.outlaweditor.data.xml.Tile; +import org.badvision.outlaweditor.ui.ApplicationUIController; import org.badvision.outlaweditor.ui.EntitySelectorCell; import org.badvision.outlaweditor.ui.MapEditorTabController; import org.badvision.outlaweditor.ui.ToolType; import org.badvision.outlaweditor.ui.UIAction; import static org.badvision.outlaweditor.ui.UIAction.confirm; import static org.badvision.outlaweditor.ui.UIAction.createAndEditScript; +import static org.badvision.outlaweditor.ui.UIAction.editScript; /** * * @author blurry */ public class MapEditorTabControllerImpl extends MapEditorTabController { + final TransferHelper