From 141dae537980b648e9459c385338c8b7b7ae183e Mon Sep 17 00:00:00 2001 From: Victor Date: Wed, 6 Sep 2017 11:30:21 +0300 Subject: [PATCH] Ability to create new document, fix opening files --- .../ui/controller/EditorController.java | 31 +++++++++++++++++-- app/src/main/resources/fxml/Editor.fxml | 1 + 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/annimon/hotarufx/ui/controller/EditorController.java b/app/src/main/java/com/annimon/hotarufx/ui/controller/EditorController.java index 3952b63..7ed035b 100644 --- a/app/src/main/java/com/annimon/hotarufx/ui/controller/EditorController.java +++ b/app/src/main/java/com/annimon/hotarufx/ui/controller/EditorController.java @@ -44,10 +44,16 @@ public class EditorController implements Initializable, DocumentListener { private SyntaxHighlighter syntaxHighlighter; private DocumentManager documentManager; + @FXML + private void handleMenuNew(ActionEvent event) { + documentManager.newDocument(); + openSample(); + updateTitle(); + } + @FXML private void handleMenuOpen(ActionEvent event) { - val isOpened = documentManager.open(primaryStage, - s -> editor.replaceText(0, 0, s)); + val isOpened = documentManager.open(primaryStage, editor::replaceText); if (isOpened) { updateTitle(); } @@ -72,6 +78,7 @@ public class EditorController implements Initializable, DocumentListener { private void handleMenuPlay(ActionEvent event) { log.setText(""); val input = editor.getText(); + logError(input); val context = new Context(); BundleLoader.load(context, Arrays.asList( @@ -101,7 +108,7 @@ public class EditorController implements Initializable, DocumentListener { syntaxHighlighter = new SyntaxHighlighter(editor, Executors.newSingleThreadExecutor()); syntaxHighlighter.init(); documentManager = new FileManager(); - editor.replaceText(0, 0, readProgram("/main.hfx")); + openSample(); } public void setPrimaryStage(Stage primaryStage) { @@ -117,6 +124,24 @@ public class EditorController implements Initializable, DocumentListener { log.insertText(0, message + System.lineSeparator()); } + private void openSample() { + editor.replaceText( + "composition(1280, 720, 30)\n" + + "\n" + + "A = circle({\n" + + " cx: 0,\n" + + " cy: 0,\n" + + " radius: 100,\n" + + " fill: '#9bc747'\n" + + "})\n" + + "\n" + + "A@radius\n" + + " .add(300 ms, 200)\n" + + " .add(1 sec, 50)\n" + + "\n" + + "render(A)"); + } + private String readProgram(String path) { val fallbackProgram = "composition(640, 480, 25)"; try (InputStream is = Main.class.getResourceAsStream(path)) { diff --git a/app/src/main/resources/fxml/Editor.fxml b/app/src/main/resources/fxml/Editor.fxml index 1d091f6..13427eb 100644 --- a/app/src/main/resources/fxml/Editor.fxml +++ b/app/src/main/resources/fxml/Editor.fxml @@ -21,6 +21,7 @@ +