mirror of
https://github.com/badvision/lawless-legends.git
synced 2024-07-04 09:29:28 +00:00
Major refactoring of code completed! This will make future UI expansion much easier. Also, fixed the redraw logic when switching platforms. Many bugs still remain but this is on-par (both features and bugs-wise) with the last revision checked in.
This commit is contained in:
parent
2f4eb4843c
commit
fecfb0a477
@ -8,8 +8,8 @@ import javafx.scene.canvas.Canvas;
|
||||
import javafx.scene.layout.AnchorPane;
|
||||
import javafx.stage.Stage;
|
||||
import javafx.stage.WindowEvent;
|
||||
import static org.badvision.outlaweditor.UIAction.*;
|
||||
import org.badvision.outlaweditor.data.xml.GameData;
|
||||
import org.badvision.outlaweditor.ui.ApplicationUIController;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -20,10 +20,18 @@ public class Application extends javafx.application.Application {
|
||||
public static GameData gameData = new GameData();
|
||||
public static Platform currentPlatform = Platform.AppleII;
|
||||
static Application instance;
|
||||
public Stage primaryStage;
|
||||
ApplicationUIControllerImpl controller;
|
||||
|
||||
public static Application getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
private ApplicationUIController controller;
|
||||
public ApplicationUIController getController() {
|
||||
return controller;
|
||||
}
|
||||
|
||||
public static Stage getPrimaryStage() {
|
||||
public Stage primaryStage;
|
||||
public static Stage getPrimaryStage() {
|
||||
return instance.primaryStage;
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,7 @@ package org.badvision.outlaweditor;
|
||||
import javafx.scene.layout.AnchorPane;
|
||||
import org.badvision.outlaweditor.data.DataObserver;
|
||||
import org.badvision.outlaweditor.data.DataProducer;
|
||||
import org.badvision.outlaweditor.data.xml.Script;
|
||||
|
||||
/**
|
||||
* Extremely generic editor abstraction -- useful for uniform edit features across application
|
||||
@ -52,5 +53,10 @@ public abstract class Editor<T,D> implements DataObserver<T> {
|
||||
}
|
||||
return selectInfo;
|
||||
};
|
||||
|
||||
|
||||
public void addScript(Script script) {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
abstract public void redraw();
|
||||
}
|
||||
|
@ -60,6 +60,10 @@ public class MapEditor extends Editor<Map, MapEditor.DrawMode> implements EventH
|
||||
super.setEntity(t);
|
||||
currentMap = new TileMap(t);
|
||||
}
|
||||
public TileMap getCurrentMap() {
|
||||
return currentMap;
|
||||
}
|
||||
|
||||
EventHandler<ScrollEvent> scrollHandler = new EventHandler<ScrollEvent>() {
|
||||
@Override
|
||||
public void handle(ScrollEvent t) {
|
||||
@ -125,6 +129,14 @@ public class MapEditor extends Editor<Map, MapEditor.DrawMode> implements EventH
|
||||
anchorPane.getChildren().add(0, drawCanvas);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addScript(Script script) {
|
||||
if (getCurrentMap().getBackingMap().getScripts() == null) {
|
||||
getCurrentMap().getBackingMap().setScripts(new Map.Scripts());
|
||||
}
|
||||
getCurrentMap().getBackingMap().getScripts().getScript().add(script);
|
||||
}
|
||||
|
||||
public void assignScript(Script script, double x, double y) {
|
||||
System.out.println("Dropped " + script.getName() + " at " + x + "," + y);
|
||||
}
|
||||
|
@ -23,6 +23,8 @@ import javax.xml.parsers.DocumentBuilderFactory;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import org.badvision.outlaweditor.data.xml.Block;
|
||||
import org.badvision.outlaweditor.data.xml.Script;
|
||||
import org.badvision.outlaweditor.ui.ApplicationUIController;
|
||||
import org.badvision.outlaweditor.ui.MythosScriptEditorController;
|
||||
import org.w3c.dom.Document;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
@ -135,6 +137,6 @@ public class MythosEditor {
|
||||
}
|
||||
script.setName(name);
|
||||
System.out.println("Function title changed! >> "+name);
|
||||
Application.instance.controller.mapController.redrawMapScripts();
|
||||
ApplicationUIController.getController().redrawScripts();
|
||||
}
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ import org.badvision.outlaweditor.Application;
|
||||
import org.badvision.outlaweditor.FileUtils;
|
||||
import org.badvision.outlaweditor.ImageEditor;
|
||||
import org.badvision.outlaweditor.Platform;
|
||||
import org.badvision.outlaweditor.UIAction;
|
||||
import org.badvision.outlaweditor.ui.UIAction;
|
||||
import org.badvision.outlaweditor.data.DataObserver;
|
||||
import org.badvision.outlaweditor.data.TileMap;
|
||||
import org.badvision.outlaweditor.data.xml.Image;
|
||||
|
@ -80,13 +80,14 @@ public class AppleTileEditor extends TileEditor {
|
||||
}
|
||||
int lastActionX = -1;
|
||||
int lastActionY = -1;
|
||||
|
||||
public void performDragAction(int x, int y) {
|
||||
performAction(false, x, y);
|
||||
}
|
||||
|
||||
private void performAction(boolean alt, int x, int y) {
|
||||
y = Math.min(Math.max(y,0), 15);
|
||||
x = Math.min(Math.max(x,0), 13);
|
||||
y = Math.min(Math.max(y, 0), 15);
|
||||
x = Math.min(Math.max(x, 0), 13);
|
||||
if (lastActionX == x && lastActionY == y) {
|
||||
return;
|
||||
}
|
||||
@ -108,8 +109,10 @@ public class AppleTileEditor extends TileEditor {
|
||||
}
|
||||
break;
|
||||
case Pencil3px:
|
||||
for (int xx = x-1; xx <= x+1; xx++) {
|
||||
if (xx < 0 || xx >= 14) continue;
|
||||
for (int xx = x - 1; xx <= x + 1; xx++) {
|
||||
if (xx < 0 || xx >= 14) {
|
||||
continue;
|
||||
}
|
||||
pat = currentPattern.getBytePattern()[y * 4 + (xx / 7)];
|
||||
set((pat & (1 << (xx % 7))) != 0, xx, y);
|
||||
if (currentPattern.hiBitMatters) {
|
||||
@ -168,7 +171,7 @@ public class AppleTileEditor extends TileEditor {
|
||||
byte[] data = TileUtils.getPlatformData(getEntity(), Platform.AppleII);
|
||||
data[y * 2 + (x / 7)] ^= 128;
|
||||
TileUtils.setPlatformData(getEntity(), Platform.AppleII, data);
|
||||
TileUtils.redrawTile(getEntity());
|
||||
redraw();
|
||||
}
|
||||
|
||||
public void setHiBit(boolean on, int x, int y) {
|
||||
@ -179,14 +182,14 @@ public class AppleTileEditor extends TileEditor {
|
||||
data[y * 2 + (x / 7)] &= 127;
|
||||
}
|
||||
TileUtils.setPlatformData(getEntity(), Platform.AppleII, data);
|
||||
TileUtils.redrawTile(getEntity());
|
||||
redraw();
|
||||
}
|
||||
|
||||
public void toggle(int x, int y) {
|
||||
byte[] data = TileUtils.getPlatformData(getEntity(), Platform.AppleII);
|
||||
data[y * 2 + (x / 7)] ^= (1 << (x % 7));
|
||||
TileUtils.setPlatformData(getEntity(), Platform.AppleII, data);
|
||||
TileUtils.redrawTile(getEntity());
|
||||
redraw();
|
||||
}
|
||||
|
||||
public void set(boolean on, int x, int y) {
|
||||
@ -196,7 +199,7 @@ public class AppleTileEditor extends TileEditor {
|
||||
data[y * 2 + (x / 7)] ^= (1 << (x % 7));
|
||||
}
|
||||
TileUtils.setPlatformData(getEntity(), Platform.AppleII, data);
|
||||
TileUtils.redrawTile(getEntity());
|
||||
redraw();
|
||||
}
|
||||
|
||||
public void recolorGrid(byte[] spriteData, Shape[][] grid, WritableImage img) {
|
||||
@ -235,4 +238,11 @@ public class AppleTileEditor extends TileEditor {
|
||||
public void selectNone() {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void redraw() {
|
||||
if (getEntity() != null) {
|
||||
TileUtils.redrawTile(getEntity());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -171,7 +171,7 @@ public class AppleDHGRTileEditor extends TileEditor {
|
||||
byte[] data = TileUtils.getPlatformData(getEntity(), Platform.AppleII_DHGR);
|
||||
data[y * 4 + (x / 7)] ^= 128;
|
||||
TileUtils.setPlatformData(getEntity(), Platform.AppleII_DHGR, data);
|
||||
TileUtils.redrawTile(getEntity());
|
||||
redraw();
|
||||
}
|
||||
|
||||
public void setHiBit(boolean on, int x, int y) {
|
||||
@ -182,14 +182,14 @@ public class AppleDHGRTileEditor extends TileEditor {
|
||||
data[y * 4 + (x / 7)] &= 127;
|
||||
}
|
||||
TileUtils.setPlatformData(getEntity(), Platform.AppleII_DHGR, data);
|
||||
TileUtils.redrawTile(getEntity());
|
||||
redraw();
|
||||
}
|
||||
|
||||
public void toggle(int x, int y) {
|
||||
byte[] data = TileUtils.getPlatformData(getEntity(), Platform.AppleII_DHGR);
|
||||
data[y * 4 + (x / 7)] ^= (1 << (x % 7));
|
||||
TileUtils.setPlatformData(getEntity(), Platform.AppleII_DHGR, data);
|
||||
TileUtils.redrawTile(getEntity());
|
||||
redraw();
|
||||
}
|
||||
|
||||
public void set(boolean on, int x, int y) {
|
||||
@ -199,7 +199,7 @@ public class AppleDHGRTileEditor extends TileEditor {
|
||||
data[y * 4 + (x / 7)] ^= (1 << (x % 7));
|
||||
}
|
||||
TileUtils.setPlatformData(getEntity(), Platform.AppleII_DHGR, data);
|
||||
TileUtils.redrawTile(getEntity());
|
||||
redraw();
|
||||
}
|
||||
|
||||
public void recolorGrid(byte[] spriteData, Shape[][] grid, WritableImage img) {
|
||||
@ -245,4 +245,11 @@ public class AppleDHGRTileEditor extends TileEditor {
|
||||
public void selectNone() {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void redraw() {
|
||||
if (getEntity() != null) {
|
||||
TileUtils.redrawTile(getEntity());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ import javafx.beans.property.adapter.JavaBeanIntegerProperty;
|
||||
import javafx.beans.property.adapter.JavaBeanIntegerPropertyBuilder;
|
||||
import javafx.beans.property.adapter.JavaBeanStringProperty;
|
||||
import javafx.beans.property.adapter.JavaBeanStringPropertyBuilder;
|
||||
import org.badvision.outlaweditor.ApplicationUIController;
|
||||
import org.badvision.outlaweditor.ui.ApplicationUIController;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -10,7 +10,7 @@ import javafx.scene.image.WritableImage;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.xml.bind.JAXBElement;
|
||||
import org.badvision.outlaweditor.Application;
|
||||
import org.badvision.outlaweditor.UIAction;
|
||||
import org.badvision.outlaweditor.ui.UIAction;
|
||||
import org.badvision.outlaweditor.data.xml.Map;
|
||||
import org.badvision.outlaweditor.data.xml.Map.Chunk;
|
||||
import org.badvision.outlaweditor.data.xml.ObjectFactory;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package org.badvision.outlaweditor;
|
||||
package org.badvision.outlaweditor.ui;
|
||||
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXML;
|
@ -0,0 +1,56 @@
|
||||
package org.badvision.outlaweditor.ui;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.ResourceBundle;
|
||||
import javafx.event.Event;
|
||||
import javafx.fxml.FXML;
|
||||
import org.badvision.outlaweditor.Application;
|
||||
import org.badvision.outlaweditor.Editor;
|
||||
|
||||
public abstract class ApplicationUIController {
|
||||
|
||||
public static ApplicationUIController getController() {
|
||||
return Application.getInstance().getController();
|
||||
}
|
||||
|
||||
abstract public void rebuildTileSelectors();
|
||||
abstract public void rebuildMapSelectors();
|
||||
abstract public void rebuildImageSelectors();
|
||||
|
||||
public abstract Editor getVisibleEditor();
|
||||
|
||||
@FXML // ResourceBundle that was given to the FXMLLoader
|
||||
protected ResourceBundle resources;
|
||||
@FXML
|
||||
protected ApplicationMenuController menuController;
|
||||
@FXML
|
||||
protected TileEditorTabController tileController;
|
||||
@FXML
|
||||
protected MapEditorTabController mapController;
|
||||
@FXML
|
||||
protected ImageEditorTabController imageController;
|
||||
|
||||
@FXML // URL location of the FXML file that was given to the FXMLLoader
|
||||
protected URL location;
|
||||
|
||||
abstract public void platformChange();
|
||||
|
||||
@FXML
|
||||
abstract public void tileTabActivated(Event event);
|
||||
|
||||
@FXML
|
||||
abstract public void mapTabActivated(Event event);
|
||||
|
||||
@FXML
|
||||
abstract public void imageTabActivated(Event event);
|
||||
|
||||
@FXML // This method is called by the FXMLLoader when initialization is complete
|
||||
public void initialize() {
|
||||
}
|
||||
|
||||
abstract public void completeInflightOperations();
|
||||
|
||||
abstract public void clearData();
|
||||
abstract public void updateSelectors();
|
||||
abstract public void redrawScripts();
|
||||
}
|
@ -1,39 +1,20 @@
|
||||
package org.badvision.outlaweditor;
|
||||
package org.badvision.outlaweditor.ui;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.ResourceBundle;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.event.Event;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.ComboBox;
|
||||
import javafx.scene.control.Menu;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.layout.AnchorPane;
|
||||
import org.badvision.outlaweditor.Editor;
|
||||
import org.badvision.outlaweditor.data.xml.Image;
|
||||
|
||||
public abstract class ApplicationUIController {
|
||||
/**
|
||||
*
|
||||
* @author blurry
|
||||
*/
|
||||
public abstract class ImageEditorTabController {
|
||||
|
||||
public static ApplicationUIController getController() {
|
||||
return Application.instance.controller;
|
||||
}
|
||||
|
||||
abstract void rebuildTileSelectors();
|
||||
|
||||
abstract void rebuildImageSelector();
|
||||
|
||||
abstract Editor getVisibleEditor();
|
||||
|
||||
@FXML // ResourceBundle that was given to the FXMLLoader
|
||||
protected ResourceBundle resources;
|
||||
@FXML
|
||||
ApplicationMenuController menuController;
|
||||
@FXML
|
||||
TileEditorTabController tileController;
|
||||
@FXML
|
||||
MapEditorTabController mapController;
|
||||
|
||||
@FXML // URL location of the FXML file that was given to the FXMLLoader
|
||||
protected URL location;
|
||||
@FXML // fx:id="imageCategoryField"
|
||||
protected TextField imageCategoryField; // Value injected by FXMLLoader
|
||||
@FXML // fx:id="imageEditorAnchorPane"
|
||||
@ -50,6 +31,19 @@ public abstract class ApplicationUIController {
|
||||
protected TextField imageWidthField; // Value injected by FXMLLoader
|
||||
// Handler for MenuItem[javafx.scene.control.MenuItem@3a4bc91a] onAction
|
||||
|
||||
@FXML
|
||||
public void initalize() {
|
||||
assert imageCategoryField != null : "fx:id=\"imageCategoryField\" was not injected: check your FXML file 'ApplicationUI.fxml'.";
|
||||
assert imageEditorAnchorPane != null : "fx:id=\"imageEditorAnchorPane\" was not injected: check your FXML file 'ApplicationUI.fxml'.";
|
||||
assert imageHeightField != null : "fx:id=\"imageHeightField\" was not injected: check your FXML file 'ApplicationUI.fxml'.";
|
||||
assert imageNameField != null : "fx:id=\"imageNameField\" was not injected: check your FXML file 'ApplicationUI.fxml'.";
|
||||
assert imagePatternMenu != null : "fx:id=\"imagePatternMenu\" was not injected: check your FXML file 'ApplicationUI.fxml'.";
|
||||
assert imageSelector != null : "fx:id=\"imageSelector\" was not injected: check your FXML file 'ApplicationUI.fxml'.";
|
||||
assert imageWidthField != null : "fx:id=\"imageWidthField\" was not injected: check your FXML file 'ApplicationUI.fxml'.";
|
||||
}
|
||||
|
||||
abstract public void rebuildImageSelector();
|
||||
|
||||
@FXML
|
||||
abstract public void imageBitMode(ActionEvent event);
|
||||
|
||||
@ -101,8 +95,6 @@ public abstract class ApplicationUIController {
|
||||
@FXML
|
||||
abstract public void onImageSelected(ActionEvent event);
|
||||
|
||||
abstract public void platformChange();
|
||||
|
||||
// Handler for Button[Button[id=null, styleClass=button moveButton]] onAction
|
||||
@FXML
|
||||
abstract public void scrollImageDown(ActionEvent event);
|
||||
@ -122,27 +114,5 @@ public abstract class ApplicationUIController {
|
||||
@FXML
|
||||
abstract public void imageDraw5BitMode(ActionEvent event);
|
||||
|
||||
@FXML
|
||||
abstract public void tileTabActivated(Event event);
|
||||
|
||||
@FXML
|
||||
abstract public void mapTabActivated(Event event);
|
||||
|
||||
@FXML
|
||||
abstract public void imageTabActivated(Event event);
|
||||
|
||||
@FXML // This method is called by the FXMLLoader when initialization is complete
|
||||
public void initialize() {
|
||||
assert imageCategoryField != null : "fx:id=\"imageCategoryField\" was not injected: check your FXML file 'ApplicationUI.fxml'.";
|
||||
assert imageEditorAnchorPane != null : "fx:id=\"imageEditorAnchorPane\" was not injected: check your FXML file 'ApplicationUI.fxml'.";
|
||||
assert imageHeightField != null : "fx:id=\"imageHeightField\" was not injected: check your FXML file 'ApplicationUI.fxml'.";
|
||||
assert imageNameField != null : "fx:id=\"imageNameField\" was not injected: check your FXML file 'ApplicationUI.fxml'.";
|
||||
assert imagePatternMenu != null : "fx:id=\"imagePatternMenu\" was not injected: check your FXML file 'ApplicationUI.fxml'.";
|
||||
assert imageSelector != null : "fx:id=\"imageSelector\" was not injected: check your FXML file 'ApplicationUI.fxml'.";
|
||||
assert imageWidthField != null : "fx:id=\"imageWidthField\" was not injected: check your FXML file 'ApplicationUI.fxml'.";
|
||||
|
||||
// Initialize your logic here: all @FXML variables will have been injected
|
||||
}
|
||||
|
||||
abstract void completeInflightOperations();
|
||||
abstract public Editor getCurrentEditor();
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package org.badvision.outlaweditor;
|
||||
package org.badvision.outlaweditor.ui;
|
||||
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXML;
|
||||
@ -8,6 +8,7 @@ import javafx.scene.control.ListView;
|
||||
import javafx.scene.control.Menu;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.layout.AnchorPane;
|
||||
import org.badvision.outlaweditor.MapEditor;
|
||||
import org.badvision.outlaweditor.data.xml.Map;
|
||||
import org.badvision.outlaweditor.data.xml.Script;
|
||||
|
||||
@ -130,5 +131,9 @@ public abstract class MapEditorTabController {
|
||||
assert mapWrapAround != null : "fx:id=\"mapWrapAround\" was not injected: check your FXML file 'mapEditorTab.fxml'.";
|
||||
}
|
||||
|
||||
abstract void rebuildTileSelectors();
|
||||
abstract public void rebuildTileSelectors();
|
||||
|
||||
public void completeInflightOperations() {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package org.badvision.outlaweditor;
|
||||
package org.badvision.outlaweditor.ui;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.ListResourceBundle;
|
||||
@ -14,6 +14,7 @@ import javafx.fxml.Initializable;
|
||||
import javafx.scene.control.MenuItem;
|
||||
import javafx.scene.web.WebView;
|
||||
import netscape.javascript.JSObject;
|
||||
import org.badvision.outlaweditor.MythosEditor;
|
||||
|
||||
public class MythosScriptEditorController
|
||||
implements Initializable {
|
@ -4,7 +4,7 @@
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
package org.badvision.outlaweditor;
|
||||
package org.badvision.outlaweditor.ui;
|
||||
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXML;
|
||||
@ -13,6 +13,7 @@ import javafx.scene.control.ComboBox;
|
||||
import javafx.scene.control.Menu;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.layout.AnchorPane;
|
||||
import org.badvision.outlaweditor.TileEditor;
|
||||
import org.badvision.outlaweditor.data.xml.Tile;
|
||||
|
||||
/**
|
@ -2,7 +2,7 @@
|
||||
* To change this template, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package org.badvision.outlaweditor;
|
||||
package org.badvision.outlaweditor.ui;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
@ -28,9 +28,11 @@ import javafx.scene.text.Text;
|
||||
import javafx.stage.Modality;
|
||||
import javafx.stage.Stage;
|
||||
import javax.xml.bind.JAXB;
|
||||
import org.badvision.outlaweditor.Application;
|
||||
import org.badvision.outlaweditor.FileUtils;
|
||||
import org.badvision.outlaweditor.MythosEditor;
|
||||
import org.badvision.outlaweditor.data.TilesetUtils;
|
||||
import org.badvision.outlaweditor.data.xml.GameData;
|
||||
import org.badvision.outlaweditor.data.xml.Map;
|
||||
import org.badvision.outlaweditor.data.xml.Script;
|
||||
|
||||
/**
|
||||
@ -81,12 +83,10 @@ public class UIAction {
|
||||
}
|
||||
currentSaveFile = f;
|
||||
GameData newData = JAXB.unmarshal(currentSaveFile, GameData.class);
|
||||
Application.instance.controller.mapController.setCurrentMap(null);
|
||||
Application.instance.controller.tileController.setCurrentTile(null);
|
||||
ApplicationUIController.getController().clearData();
|
||||
TilesetUtils.clear();
|
||||
Application.gameData = newData;
|
||||
Application.instance.controller.rebuildTileSelectors();
|
||||
Application.instance.controller.mapController.rebuildMapSelectors();
|
||||
ApplicationUIController.getController().updateSelectors();
|
||||
break;
|
||||
case Quit:
|
||||
quit();
|
||||
@ -201,10 +201,7 @@ public class UIAction {
|
||||
public static Script createAndEditScript() {
|
||||
Script script = new Script();
|
||||
script.setName("New Script");
|
||||
if (Application.instance.controller.mapController.getCurrentMap().getScripts() == null) {
|
||||
Application.instance.controller.mapController.getCurrentMap().setScripts(new Map.Scripts());
|
||||
}
|
||||
Application.instance.controller.mapController.getCurrentMap().getScripts().getScript().add(script);
|
||||
ApplicationUIController.getController().getVisibleEditor().addScript(script);
|
||||
return editScript(script);
|
||||
}
|
||||
|
@ -1,10 +1,15 @@
|
||||
package org.badvision.outlaweditor;
|
||||
package org.badvision.outlaweditor.ui.impl;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import javafx.event.ActionEvent;
|
||||
import org.badvision.outlaweditor.Application;
|
||||
import org.badvision.outlaweditor.Platform;
|
||||
import org.badvision.outlaweditor.apple.AppleTileRenderer;
|
||||
import org.badvision.outlaweditor.ui.ApplicationMenuController;
|
||||
import org.badvision.outlaweditor.ui.ApplicationUIController;
|
||||
import org.badvision.outlaweditor.ui.UIAction;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -74,8 +79,8 @@ public class ApplicationMenuControllerImpl extends ApplicationMenuController {
|
||||
ApplicationUIController mainController = ApplicationUIController.getController();
|
||||
try {
|
||||
UIAction.actionPerformed(UIAction.MAIN_ACTIONS.Load);
|
||||
mainController.rebuildImageSelector();
|
||||
mainController.mapController.rebuildMapSelectors();
|
||||
mainController.rebuildImageSelectors();
|
||||
mainController.rebuildMapSelectors();
|
||||
mainController.rebuildTileSelectors();
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(ApplicationUIControllerImpl.class.getName()).log(Level.SEVERE, null, ex);
|
@ -0,0 +1,182 @@
|
||||
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;
|
||||
import org.badvision.outlaweditor.ui.ApplicationUIController;
|
||||
|
||||
/**
|
||||
* Actual implementation of Application UI, isolated from auto-generated code
|
||||
*
|
||||
* @author brobert
|
||||
*/
|
||||
public class ApplicationUIControllerImpl extends ApplicationUIController {
|
||||
|
||||
@Override
|
||||
public void initialize() {
|
||||
super.initialize();
|
||||
|
||||
TilesetUtils.addObserver(new org.badvision.outlaweditor.data.DataObserver() {
|
||||
@Override
|
||||
public void observedObjectChanged(Object object) {
|
||||
rebuildTileSelectors();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void platformChange() {
|
||||
for (Tile t : Application.gameData.getTile()) {
|
||||
TileUtils.redrawTile(t);
|
||||
}
|
||||
Tile tile = tileController.getCurrentTile();
|
||||
rebuildTileSelectors();
|
||||
tileController.setCurrentTile(tile);
|
||||
rebuildImageSelectors();
|
||||
redrawAllTabs();
|
||||
}
|
||||
|
||||
public void redrawAllTabs() {
|
||||
if (mapController.getCurrentEditor() != null) {
|
||||
mapController.getCurrentEditor().redraw();
|
||||
}
|
||||
if (imageController.getCurrentEditor() != null) {
|
||||
imageController.getCurrentEditor().redraw();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSelectors() {
|
||||
rebuildImageSelectors();
|
||||
rebuildMapSelectors();
|
||||
rebuildTileSelectors();
|
||||
redrawScripts();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rebuildTileSelectors() {
|
||||
tileController.rebuildTileSelectors();
|
||||
mapController.rebuildTileSelectors();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void redrawScripts() {
|
||||
mapController.redrawMapScripts();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rebuildMapSelectors() {
|
||||
mapController.rebuildMapSelectors();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rebuildImageSelectors() {
|
||||
imageController.rebuildImageSelector();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void completeInflightOperations() {
|
||||
mapController.completeInflightOperations();
|
||||
}
|
||||
|
||||
public static enum TABS {
|
||||
|
||||
image, map, tile
|
||||
};
|
||||
TABS currentTab;
|
||||
|
||||
@Override
|
||||
public void imageTabActivated(Event event) {
|
||||
currentTab = TABS.image;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mapTabActivated(Event event) {
|
||||
currentTab = TABS.map;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tileTabActivated(Event event) {
|
||||
currentTab = TABS.tile;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Editor getVisibleEditor() {
|
||||
switch (currentTab) {
|
||||
case image:
|
||||
return imageController.getCurrentEditor();
|
||||
case map:
|
||||
return mapController.getCurrentEditor();
|
||||
case tile:
|
||||
return tileController.getCurrentTileEditor();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static final DataFormat SCRIPT_DATA_FORMAT = new DataFormat("MythosScript");
|
||||
|
||||
abstract public static class EntitySelectorCell<T> extends ComboBoxListCell<T> {
|
||||
|
||||
static Map<TextField, Object> 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);
|
||||
mapController.setCurrentMap(null);
|
||||
tileController.setCurrentTile(null);
|
||||
}
|
||||
|
||||
}
|
@ -1,46 +1,37 @@
|
||||
package org.badvision.outlaweditor;
|
||||
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.ActionEvent;
|
||||
import javafx.event.Event;
|
||||
import javafx.scene.control.ListCell;
|
||||
import javafx.scene.control.ListView;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.control.cell.ComboBoxListCell;
|
||||
import javafx.scene.input.DataFormat;
|
||||
import javafx.util.Callback;
|
||||
import org.badvision.outlaweditor.Application;
|
||||
import org.badvision.outlaweditor.Editor;
|
||||
import org.badvision.outlaweditor.ImageEditor;
|
||||
import static org.badvision.outlaweditor.Application.currentPlatform;
|
||||
import static org.badvision.outlaweditor.UIAction.*;
|
||||
import static org.badvision.outlaweditor.data.PropertyHelper.*;
|
||||
import org.badvision.outlaweditor.data.TileUtils;
|
||||
import org.badvision.outlaweditor.data.TilesetUtils;
|
||||
import static org.badvision.outlaweditor.ui.UIAction.confirm;
|
||||
import static org.badvision.outlaweditor.data.PropertyHelper.bind;
|
||||
import static org.badvision.outlaweditor.data.PropertyHelper.categoryProp;
|
||||
import static org.badvision.outlaweditor.data.PropertyHelper.stringProp;
|
||||
import org.badvision.outlaweditor.data.xml.Image;
|
||||
import org.badvision.outlaweditor.data.xml.Tile;
|
||||
import org.badvision.outlaweditor.ui.ImageEditorTabController;
|
||||
|
||||
/**
|
||||
* Actual implementation of Application UI, isolated from auto-generated code
|
||||
* FXML Controller class
|
||||
*
|
||||
* @author brobert
|
||||
* @author blurry
|
||||
*/
|
||||
public class ApplicationUIControllerImpl extends ApplicationUIController {
|
||||
public class ImageEditorTabControllerImpl extends ImageEditorTabController {
|
||||
|
||||
public Image currentImage = null;
|
||||
public ImageEditor currentImageEditor = null;
|
||||
|
||||
@Override
|
||||
/**
|
||||
* Initializes the controller class.
|
||||
*/
|
||||
public void initialize() {
|
||||
super.initialize();
|
||||
|
||||
TilesetUtils.addObserver(new org.badvision.outlaweditor.data.DataObserver() {
|
||||
@Override
|
||||
public void observedObjectChanged(Object object) {
|
||||
rebuildTileSelectors();
|
||||
}
|
||||
});
|
||||
|
||||
super.initalize();
|
||||
imageSelector.setButtonCell(new ComboBoxListCell<Image>() {
|
||||
{
|
||||
super.setPrefWidth(125);
|
||||
@ -60,13 +51,18 @@ public class ApplicationUIControllerImpl extends ApplicationUIController {
|
||||
imageSelector.setCellFactory(new Callback<ListView<Image>, ListCell<Image>>() {
|
||||
@Override
|
||||
public ListCell<Image> call(ListView<Image> param) {
|
||||
return new EntitySelectorCell<Image>(imageNameField) {
|
||||
return new ApplicationUIControllerImpl.EntitySelectorCell<Image>(imageNameField) {
|
||||
@Override
|
||||
public void finishUpdate(Image item) {
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public Editor getCurrentEditor() {
|
||||
return currentImageEditor;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -174,20 +170,7 @@ public class ApplicationUIControllerImpl extends ApplicationUIController {
|
||||
setCurrentImage(imageSelector.getSelectionModel().getSelectedItem());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void platformChange() {
|
||||
for (Tile t : Application.gameData.getTile()) {
|
||||
TileUtils.redrawTile(t);
|
||||
}
|
||||
Tile tile = tileController.getCurrentTile();
|
||||
rebuildTileSelectors();
|
||||
tileController.setCurrentTile(tile);
|
||||
if (mapController.getCurrentEditor() != null) {
|
||||
mapController.getCurrentEditor().redraw();
|
||||
}
|
||||
rebuildImageSelector();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void scrollImageDown(ActionEvent event) {
|
||||
if (currentImageEditor != null) {
|
||||
@ -215,13 +198,6 @@ public class ApplicationUIControllerImpl extends ApplicationUIController {
|
||||
currentImageEditor.scrollBy(0, -1);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rebuildTileSelectors() {
|
||||
tileController.rebuildTileSelectors();
|
||||
mapController.rebuildTileSelectors();
|
||||
}
|
||||
|
||||
private void setCurrentImage(Image i) {
|
||||
if (currentImage != null && currentImage.equals(i)) {
|
||||
return;
|
||||
@ -277,93 +253,4 @@ public class ApplicationUIControllerImpl extends ApplicationUIController {
|
||||
imageSelector.getItems().addAll(Application.gameData.getImage());
|
||||
imageSelector.getSelectionModel().select(i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void completeInflightOperations() {
|
||||
if (mapController.getCurrentEditor() != null) {
|
||||
mapController.getCurrentEditor().currentMap.updateBackingMap();
|
||||
}
|
||||
}
|
||||
|
||||
public static enum TABS {
|
||||
|
||||
image, map, tile
|
||||
};
|
||||
TABS currentTab;
|
||||
|
||||
@Override
|
||||
public void imageTabActivated(Event event) {
|
||||
currentTab = TABS.image;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mapTabActivated(Event event) {
|
||||
currentTab = TABS.map;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tileTabActivated(Event event) {
|
||||
currentTab = TABS.tile;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Editor getVisibleEditor() {
|
||||
switch (currentTab) {
|
||||
case image:
|
||||
return currentImageEditor;
|
||||
case map:
|
||||
return mapController.getCurrentEditor();
|
||||
case tile:
|
||||
return tileController.getCurrentTileEditor();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static final DataFormat SCRIPT_DATA_FORMAT = new DataFormat("MythosScript");
|
||||
|
||||
abstract public static class EntitySelectorCell<T> extends ComboBoxListCell<T> {
|
||||
|
||||
static Map<TextField, Object> 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) {
|
||||
}
|
||||
};
|
||||
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package org.badvision.outlaweditor;
|
||||
package org.badvision.outlaweditor.ui.impl;
|
||||
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
@ -11,16 +11,21 @@ import javafx.scene.control.cell.ComboBoxListCell;
|
||||
import javafx.scene.image.ImageView;
|
||||
import javafx.scene.image.WritableImage;
|
||||
import javafx.util.Callback;
|
||||
import org.badvision.outlaweditor.Application;
|
||||
import org.badvision.outlaweditor.MapEditor;
|
||||
import org.badvision.outlaweditor.TransferHelper;
|
||||
import static org.badvision.outlaweditor.Application.currentPlatform;
|
||||
import static org.badvision.outlaweditor.Application.gameData;
|
||||
import static org.badvision.outlaweditor.UIAction.confirm;
|
||||
import static org.badvision.outlaweditor.UIAction.createAndEditScript;
|
||||
import static org.badvision.outlaweditor.ui.UIAction.confirm;
|
||||
import static org.badvision.outlaweditor.ui.UIAction.createAndEditScript;
|
||||
import static org.badvision.outlaweditor.data.PropertyHelper.bind;
|
||||
import static org.badvision.outlaweditor.data.PropertyHelper.stringProp;
|
||||
import org.badvision.outlaweditor.data.TileUtils;
|
||||
import org.badvision.outlaweditor.data.xml.Script;
|
||||
import org.badvision.outlaweditor.data.xml.Tile;
|
||||
import org.badvision.outlaweditor.data.xml.Map;
|
||||
import org.badvision.outlaweditor.ui.MapEditorTabController;
|
||||
import org.badvision.outlaweditor.ui.UIAction;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -176,10 +181,16 @@ public class MapEditorTabControllerImpl extends MapEditorTabController {
|
||||
if (getCurrentEditor() == null) {
|
||||
return null;
|
||||
} else {
|
||||
return getCurrentEditor().currentMap.getBackingMap();
|
||||
return getCurrentEditor().getCurrentMap().getBackingMap();
|
||||
}
|
||||
}
|
||||
|
||||
public void completeInflightOperations() {
|
||||
if (getCurrentEditor() != null) {
|
||||
getCurrentEditor().getCurrentMap().updateBackingMap();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCurrentMap(Map m) {
|
||||
if (getCurrentMap() != null && getCurrentMap().equals(m)) {
|
||||
@ -268,7 +279,7 @@ public class MapEditorTabControllerImpl extends MapEditorTabController {
|
||||
}
|
||||
|
||||
@Override
|
||||
void rebuildTileSelectors() {
|
||||
public void rebuildTileSelectors() {
|
||||
mapSelectTile.getItems().clear();
|
||||
for (final Tile t : Application.gameData.getTile()) {
|
||||
WritableImage img = TileUtils.getImage(t, currentPlatform);
|
@ -1,4 +1,4 @@
|
||||
package org.badvision.outlaweditor;
|
||||
package org.badvision.outlaweditor.ui.impl;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.logging.Level;
|
||||
@ -9,7 +9,9 @@ import javafx.scene.control.ListView;
|
||||
import javafx.scene.control.cell.ComboBoxListCell;
|
||||
import javafx.scene.image.ImageView;
|
||||
import javafx.util.Callback;
|
||||
import static org.badvision.outlaweditor.UIAction.confirm;
|
||||
import org.badvision.outlaweditor.Application;
|
||||
import org.badvision.outlaweditor.TileEditor;
|
||||
import static org.badvision.outlaweditor.ui.UIAction.confirm;
|
||||
import static org.badvision.outlaweditor.data.PropertyHelper.bind;
|
||||
import static org.badvision.outlaweditor.data.PropertyHelper.boolProp;
|
||||
import static org.badvision.outlaweditor.data.PropertyHelper.categoryProp;
|
||||
@ -18,6 +20,8 @@ import org.badvision.outlaweditor.data.TileUtils;
|
||||
import org.badvision.outlaweditor.data.TilesetUtils;
|
||||
import org.badvision.outlaweditor.data.xml.PlatformData;
|
||||
import org.badvision.outlaweditor.data.xml.Tile;
|
||||
import org.badvision.outlaweditor.ui.ApplicationUIController;
|
||||
import org.badvision.outlaweditor.ui.TileEditorTabController;
|
||||
|
||||
/**
|
||||
* FXML Controller class for tile editor tab
|
@ -6,7 +6,7 @@
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
|
||||
<AnchorPane id="AnchorPane" prefHeight="575.0" prefWidth="1000.0" styleClass="outlawApp" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.badvision.outlaweditor.ApplicationUIControllerImpl">
|
||||
<AnchorPane id="AnchorPane" prefHeight="575.0" prefWidth="1000.0" styleClass="outlawApp" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.badvision.outlaweditor.ui.impl.ApplicationUIControllerImpl">
|
||||
<children>
|
||||
<VBox prefHeight="500.0" prefWidth="800.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<children>
|
||||
@ -25,74 +25,7 @@
|
||||
</Tab>
|
||||
<Tab onSelectionChanged="#imageTabActivated" text="Images">
|
||||
<content>
|
||||
<AnchorPane id="tilesTab" minHeight="0.0" minWidth="0.0" prefHeight="420.0" prefWidth="677.0">
|
||||
<children>
|
||||
<VBox prefHeight="420.0000999999975" prefWidth="677.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<children>
|
||||
<ToolBar prefWidth="686.0">
|
||||
<items>
|
||||
<Label text="Image:" />
|
||||
<ComboBox id="tileSelect" fx:id="imageSelector" onAction="#onImageSelected">
|
||||
<items>
|
||||
<FXCollections fx:factory="observableArrayList">
|
||||
<String fx:value="Item 1" />
|
||||
<String fx:value="Item 2" />
|
||||
<String fx:value="Item 3" />
|
||||
</FXCollections>
|
||||
</items>
|
||||
</ComboBox>
|
||||
<Button mnemonicParsing="false" onAction="#onImageCreatePressed" text="Create new" />
|
||||
<Button mnemonicParsing="false" onAction="#onImageClonePressed" text="Clone" />
|
||||
<Button mnemonicParsing="false" onAction="#onImageExportPressed" text="Export" />
|
||||
<Button mnemonicParsing="false" onAction="#onImageDeletePressed" text="Delete" />
|
||||
<MenuButton mnemonicParsing="false" text="Tools">
|
||||
<items>
|
||||
<Menu fx:id="imagePatternMenu" mnemonicParsing="false" text="Pattern" />
|
||||
<Menu mnemonicParsing="false" text="Draw mode">
|
||||
<items>
|
||||
<MenuItem mnemonicParsing="false" onAction="#imageBitMode" text="Bit Toggle mode" />
|
||||
<MenuItem mnemonicParsing="false" onAction="#imageDraw1BitMode" text="1 bit-wide" />
|
||||
<MenuItem mnemonicParsing="false" onAction="#imageDraw3BitMode" text="3 bit wide" />
|
||||
<MenuItem mnemonicParsing="false" onAction="#imageDraw5BitMode" text="5 bit wide" />
|
||||
<MenuItem mnemonicParsing="false" onAction="#imageDrawFilledRectMode" text="Filled Rectangle" />
|
||||
</items>
|
||||
</Menu>
|
||||
<MenuItem mnemonicParsing="false" onAction="#imageTogglePanZoom" text="Toggle pan/zoom controls" />
|
||||
<MenuItem mnemonicParsing="false" onAction="#imageShift" text="Shift..." />
|
||||
</items>
|
||||
</MenuButton>
|
||||
</items>
|
||||
</ToolBar>
|
||||
<HBox prefHeight="387.0" prefWidth="677.0" VBox.vgrow="ALWAYS">
|
||||
<children>
|
||||
<AnchorPane id="imageDetailsPane" prefHeight="200.0" prefWidth="200.0">
|
||||
<children>
|
||||
<Label layoutX="4.0" layoutY="14.0" text="Name" />
|
||||
<TextField id="" fx:id="imageNameField" layoutX="53.0" layoutY="11.0" prefWidth="147.0" />
|
||||
<Label layoutX="4.0" layoutY="36.0" text="Category" />
|
||||
<TextField id="tileCategoryField" fx:id="imageCategoryField" layoutX="74.0" layoutY="33.0" prefWidth="126.0" />
|
||||
<TextField fx:id="imageWidthField" layoutY="55.0" prefWidth="145.0" AnchorPane.leftAnchor="53.0" AnchorPane.rightAnchor="0.0" />
|
||||
<Label layoutX="4.0" layoutY="58.0" text="Width" />
|
||||
<TextField id="imageWidthField" fx:id="imageHeightField" layoutX="53.0" layoutY="77.0" prefWidth="147.0" />
|
||||
<Label layoutX="4.0" layoutY="83.0" text="Height" />
|
||||
</children>
|
||||
</AnchorPane>
|
||||
<AnchorPane id="mapEditorAnchorPane" fx:id="imageEditorAnchorPane" prefHeight="389.0" prefWidth="477.0" HBox.hgrow="ALWAYS">
|
||||
<children>
|
||||
<Button layoutX="236.0" mnemonicParsing="false" onAction="#scrollImageUp" styleClass="moveButton" text="Up" AnchorPane.topAnchor="5.0" />
|
||||
<Button layoutY="185.0" mnemonicParsing="false" onAction="#scrollImageLeft" rotate="270.0" styleClass="moveButton" text="Left" AnchorPane.leftAnchor="-20.0" />
|
||||
<Button layoutX="236.0" mnemonicParsing="false" onAction="#scrollImageDown" rotate="180.0" styleClass="moveButton" text="Down" AnchorPane.bottomAnchor="5.0" />
|
||||
<Button layoutY="175.0" mnemonicParsing="false" onAction="#scrollImageRight" rotate="90.0" styleClass="moveButton" text="Right" AnchorPane.rightAnchor="-15.0" />
|
||||
<Button mnemonicParsing="false" onAction="#imageZoomIn" styleClass="zoomInButton" text="+" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="5.0" />
|
||||
<Button mnemonicParsing="false" onAction="#imageZoomOut" prefHeight="23.999908447265625" styleClass="zoomOutButton" text="-" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="30.0" />
|
||||
</children>
|
||||
</AnchorPane>
|
||||
</children>
|
||||
</HBox>
|
||||
</children>
|
||||
</VBox>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
<fx:include fx:id="image" source="imageEditorTab.fxml"/>
|
||||
</content>
|
||||
</Tab>
|
||||
</tabs>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
|
||||
<MenuBar styleClass="menu" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.badvision.outlaweditor.ApplicationMenuControllerImpl">
|
||||
<MenuBar styleClass="menu" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.badvision.outlaweditor.ui.impl.ApplicationMenuControllerImpl">
|
||||
<menus>
|
||||
<Menu mnemonicParsing="false" text="File">
|
||||
<items>
|
||||
|
68
OutlawEditor/src/main/resources/imageEditorTab.fxml
Normal file
68
OutlawEditor/src/main/resources/imageEditorTab.fxml
Normal file
@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import java.lang.*?>
|
||||
<?import java.util.*?>
|
||||
<?import javafx.scene.*?>
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
|
||||
<AnchorPane id="tilesTab" minHeight="0.0" minWidth="0.0" prefHeight="420.0" prefWidth="677.0" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.badvision.outlaweditor.ui.impl.ImageEditorTabControllerImpl">
|
||||
<children>
|
||||
<VBox prefHeight="420.0000999999975" prefWidth="677.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<children>
|
||||
<ToolBar prefWidth="686.0">
|
||||
<items>
|
||||
<Label text="Image:" />
|
||||
<ComboBox id="tileSelect" fx:id="imageSelector" onAction="#onImageSelected"/>
|
||||
<Button mnemonicParsing="false" onAction="#onImageCreatePressed" text="Create new" />
|
||||
<Button mnemonicParsing="false" onAction="#onImageClonePressed" text="Clone" />
|
||||
<Button mnemonicParsing="false" onAction="#onImageExportPressed" text="Export" />
|
||||
<Button mnemonicParsing="false" onAction="#onImageDeletePressed" text="Delete" />
|
||||
<MenuButton mnemonicParsing="false" text="Tools">
|
||||
<items>
|
||||
<Menu fx:id="imagePatternMenu" mnemonicParsing="false" text="Pattern" />
|
||||
<Menu mnemonicParsing="false" text="Draw mode">
|
||||
<items>
|
||||
<MenuItem mnemonicParsing="false" onAction="#imageBitMode" text="Bit Toggle mode" />
|
||||
<MenuItem mnemonicParsing="false" onAction="#imageDraw1BitMode" text="1 bit-wide" />
|
||||
<MenuItem mnemonicParsing="false" onAction="#imageDraw3BitMode" text="3 bit wide" />
|
||||
<MenuItem mnemonicParsing="false" onAction="#imageDraw5BitMode" text="5 bit wide" />
|
||||
<MenuItem mnemonicParsing="false" onAction="#imageDrawFilledRectMode" text="Filled Rectangle" />
|
||||
</items>
|
||||
</Menu>
|
||||
<MenuItem mnemonicParsing="false" onAction="#imageTogglePanZoom" text="Toggle pan/zoom controls" />
|
||||
<MenuItem mnemonicParsing="false" onAction="#imageShift" text="Shift..." />
|
||||
</items>
|
||||
</MenuButton>
|
||||
</items>
|
||||
</ToolBar>
|
||||
<HBox prefHeight="387.0" prefWidth="677.0" VBox.vgrow="ALWAYS">
|
||||
<children>
|
||||
<AnchorPane id="imageDetailsPane" prefHeight="200.0" prefWidth="200.0">
|
||||
<children>
|
||||
<Label layoutX="4.0" layoutY="14.0" text="Name" />
|
||||
<TextField id="" fx:id="imageNameField" layoutX="53.0" layoutY="11.0" prefWidth="147.0" />
|
||||
<Label layoutX="4.0" layoutY="36.0" text="Category" />
|
||||
<TextField id="tileCategoryField" fx:id="imageCategoryField" layoutX="74.0" layoutY="33.0" prefWidth="126.0" />
|
||||
<TextField fx:id="imageWidthField" layoutY="55.0" prefWidth="145.0" AnchorPane.leftAnchor="53.0" AnchorPane.rightAnchor="0.0" />
|
||||
<Label layoutX="4.0" layoutY="58.0" text="Width" />
|
||||
<TextField id="imageWidthField" fx:id="imageHeightField" layoutX="53.0" layoutY="77.0" prefWidth="147.0" />
|
||||
<Label layoutX="4.0" layoutY="83.0" text="Height" />
|
||||
</children>
|
||||
</AnchorPane>
|
||||
<AnchorPane id="mapEditorAnchorPane" fx:id="imageEditorAnchorPane" prefHeight="389.0" prefWidth="477.0" HBox.hgrow="ALWAYS">
|
||||
<children>
|
||||
<Button layoutX="236.0" mnemonicParsing="false" onAction="#scrollImageUp" styleClass="moveButton" text="Up" AnchorPane.topAnchor="5.0" />
|
||||
<Button layoutY="185.0" mnemonicParsing="false" onAction="#scrollImageLeft" rotate="270.0" styleClass="moveButton" text="Left" AnchorPane.leftAnchor="-20.0" />
|
||||
<Button layoutX="236.0" mnemonicParsing="false" onAction="#scrollImageDown" rotate="180.0" styleClass="moveButton" text="Down" AnchorPane.bottomAnchor="5.0" />
|
||||
<Button layoutY="175.0" mnemonicParsing="false" onAction="#scrollImageRight" rotate="90.0" styleClass="moveButton" text="Right" AnchorPane.rightAnchor="-15.0" />
|
||||
<Button mnemonicParsing="false" onAction="#imageZoomIn" styleClass="zoomInButton" text="+" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="5.0" />
|
||||
<Button mnemonicParsing="false" onAction="#imageZoomOut" prefHeight="23.999908447265625" styleClass="zoomOutButton" text="-" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="30.0" />
|
||||
</children>
|
||||
</AnchorPane>
|
||||
</children>
|
||||
</HBox>
|
||||
</children>
|
||||
</VBox>
|
||||
</children>
|
||||
</AnchorPane>
|
@ -6,7 +6,7 @@
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
|
||||
<AnchorPane id="mapsTab" minHeight="0.0" minWidth="0.0" prefHeight="420.0000999999975" prefWidth="677.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.badvision.outlaweditor.MapEditorTabControllerImpl">
|
||||
<AnchorPane id="mapsTab" minHeight="0.0" minWidth="0.0" prefHeight="420.0000999999975" prefWidth="677.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.badvision.outlaweditor.ui.impl.MapEditorTabControllerImpl">
|
||||
<children>
|
||||
<VBox prefHeight="200.0" prefWidth="100.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<children>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
|
||||
<AnchorPane id="tilesTab" minHeight="0.0" minWidth="0.0" prefHeight="420.0000999999975" prefWidth="677.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.badvision.outlaweditor.TileEditorTabControllerImpl">
|
||||
<AnchorPane id="tilesTab" minHeight="0.0" minWidth="0.0" prefHeight="420.0000999999975" prefWidth="677.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.badvision.outlaweditor.ui.impl.TileEditorTabControllerImpl">
|
||||
<children>
|
||||
<VBox prefHeight="420.0000999999975" prefWidth="677.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<children>
|
||||
|
Loading…
Reference in New Issue
Block a user