mirror of
https://github.com/aNNiMON/HotaruFX.git
synced 2024-09-19 14:14:21 +03:00
Ability to create new document, fix opening files
This commit is contained in:
parent
00df10350a
commit
141dae5379
@ -44,10 +44,16 @@ public class EditorController implements Initializable, DocumentListener {
|
|||||||
private SyntaxHighlighter syntaxHighlighter;
|
private SyntaxHighlighter syntaxHighlighter;
|
||||||
private DocumentManager documentManager;
|
private DocumentManager documentManager;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private void handleMenuNew(ActionEvent event) {
|
||||||
|
documentManager.newDocument();
|
||||||
|
openSample();
|
||||||
|
updateTitle();
|
||||||
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private void handleMenuOpen(ActionEvent event) {
|
private void handleMenuOpen(ActionEvent event) {
|
||||||
val isOpened = documentManager.open(primaryStage,
|
val isOpened = documentManager.open(primaryStage, editor::replaceText);
|
||||||
s -> editor.replaceText(0, 0, s));
|
|
||||||
if (isOpened) {
|
if (isOpened) {
|
||||||
updateTitle();
|
updateTitle();
|
||||||
}
|
}
|
||||||
@ -72,6 +78,7 @@ public class EditorController implements Initializable, DocumentListener {
|
|||||||
private void handleMenuPlay(ActionEvent event) {
|
private void handleMenuPlay(ActionEvent event) {
|
||||||
log.setText("");
|
log.setText("");
|
||||||
val input = editor.getText();
|
val input = editor.getText();
|
||||||
|
logError(input);
|
||||||
|
|
||||||
val context = new Context();
|
val context = new Context();
|
||||||
BundleLoader.load(context, Arrays.asList(
|
BundleLoader.load(context, Arrays.asList(
|
||||||
@ -101,7 +108,7 @@ public class EditorController implements Initializable, DocumentListener {
|
|||||||
syntaxHighlighter = new SyntaxHighlighter(editor, Executors.newSingleThreadExecutor());
|
syntaxHighlighter = new SyntaxHighlighter(editor, Executors.newSingleThreadExecutor());
|
||||||
syntaxHighlighter.init();
|
syntaxHighlighter.init();
|
||||||
documentManager = new FileManager();
|
documentManager = new FileManager();
|
||||||
editor.replaceText(0, 0, readProgram("/main.hfx"));
|
openSample();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPrimaryStage(Stage primaryStage) {
|
public void setPrimaryStage(Stage primaryStage) {
|
||||||
@ -117,6 +124,24 @@ public class EditorController implements Initializable, DocumentListener {
|
|||||||
log.insertText(0, message + System.lineSeparator());
|
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) {
|
private String readProgram(String path) {
|
||||||
val fallbackProgram = "composition(640, 480, 25)";
|
val fallbackProgram = "composition(640, 480, 25)";
|
||||||
try (InputStream is = Main.class.getResourceAsStream(path)) {
|
try (InputStream is = Main.class.getResourceAsStream(path)) {
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
<VBox BorderPane.alignment="CENTER">
|
<VBox BorderPane.alignment="CENTER">
|
||||||
<MenuBar>
|
<MenuBar>
|
||||||
<Menu mnemonicParsing="false" text="File">
|
<Menu mnemonicParsing="false" text="File">
|
||||||
|
<MenuItem onAction="#handleMenuNew" text="New"/>
|
||||||
<MenuItem onAction="#handleMenuOpen" text="Open"/>
|
<MenuItem onAction="#handleMenuOpen" text="Open"/>
|
||||||
<MenuItem onAction="#handleMenuExit" text="Exit"/>
|
<MenuItem onAction="#handleMenuExit" text="Exit"/>
|
||||||
</Menu>
|
</Menu>
|
||||||
|
Loading…
Reference in New Issue
Block a user