diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-01-15 22:35:29 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-01-15 22:35:29 +0100 |
| commit | ad548cf57ae5d729c4186ec8f710b0df2e6f24b4 (patch) | |
| tree | 515826b0d36eab32395abe09c1727011cdf151ed /IDE/src/main/java | |
| parent | b876a9ffb37882d1bc3b50b815a5b45af21735dc (diff) | |
64ld: Improved code and SDK.
IDE: Also did improve code.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'IDE/src/main/java')
| -rw-r--r-- | IDE/src/main/java/org/elmahrouss/App.java | 33 | ||||
| -rw-r--r-- | IDE/src/main/java/org/elmahrouss/CodeEditor.java | 74 | ||||
| -rw-r--r-- | IDE/src/main/java/org/elmahrouss/CodeEditorTheme.java | 4 | ||||
| -rw-r--r-- | IDE/src/main/java/org/elmahrouss/CodeEditorView.java | 92 | ||||
| -rw-r--r-- | IDE/src/main/java/org/elmahrouss/ConsoleWindow.java | 11 |
5 files changed, 120 insertions, 94 deletions
diff --git a/IDE/src/main/java/org/elmahrouss/App.java b/IDE/src/main/java/org/elmahrouss/App.java index 5fe6b32..d4e82d9 100644 --- a/IDE/src/main/java/org/elmahrouss/App.java +++ b/IDE/src/main/java/org/elmahrouss/App.java @@ -12,6 +12,7 @@ import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; +import javafx.event.EventTarget; import javafx.scene.Scene; import javafx.scene.input.KeyCombination; import javafx.scene.input.MouseEvent; @@ -24,10 +25,8 @@ import javafx.scene.control.TabPane; /** * JavaFX App */ -public class App extends Application { - - private static int COUNTER = 0; - +public class App extends Application +{ @Override public void start(Stage stage) { stage.setTitle("MetroWorks - Untitled"); @@ -36,33 +35,35 @@ public class App extends Application { var projectPane = new VBox(); projectPane.setSpacing(10); - TabPane tabePane = new TabPane(); + TabPane tabPages = new TabPane(); - Tab tabEditorWelcome = new Tab("Welcome!", new CodeEditor()); + Tab tabEditorWelcome = new Tab("Welcome!", new CodeEditorView(false)); - CodeEditor ed = ((CodeEditor) tabEditorWelcome.getContent()); + CodeEditorView editorView = ((CodeEditorView) tabEditorWelcome.getContent()); - Button buttonNewPane = new Button("New project..."); + Button buttonNewPane = new Button("Add source..."); buttonNewPane.onMouseClickedProperty().set((EventHandler<MouseEvent>) (MouseEvent c) -> { - ++COUNTER; - Tab tabCode = new Tab("Untitled (" + Integer.toString(COUNTER) + ")", new CodeEditor()); - tabePane.getTabs().add(tabCode); + CodeEditorView view = new CodeEditorView(true); + Tab tabCode = new Tab("Untitled", view); + + tabCode.setText("/tmp/metroworks/src/ (" + view.getFilename() + ")"); + tabPages.getTabs().add(tabCode); }); buttonNewPane.setTranslateX(70); buttonNewPane.setTranslateY(100); - ed.getChildren().addAll(buttonNewPane); + editorView.getChildren().addAll(buttonNewPane); - ed.setContents("Welcome to MetroWorks!\nThe embedded code editor."); - ed.getChildren().addAll(); + editorView.setContents("Welcome to MetroWorks!\nThe embedded code editor."); + editorView.getChildren().addAll(); tabEditorWelcome.setClosable(false); - tabePane.getTabs().add(tabEditorWelcome); + tabPages.getTabs().add(tabEditorWelcome); - projectPane.getChildren().addAll(tabePane); + projectPane.getChildren().addAll(tabPages); var scene = new Scene(projectPane, 1280, 720); diff --git a/IDE/src/main/java/org/elmahrouss/CodeEditor.java b/IDE/src/main/java/org/elmahrouss/CodeEditor.java deleted file mode 100644 index 3b00007..0000000 --- a/IDE/src/main/java/org/elmahrouss/CodeEditor.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * ======================================================== - * - * MPCC - * Copyright Mahrouss Logic, all rights reserved. - * - * ======================================================== - */ - - package org.elmahrouss; - -import javafx.beans.property.ObjectProperty; -import javafx.collections.ObservableList; -import javafx.event.EventHandler; -import javafx.scene.Node; -import javafx.scene.control.Label; -import javafx.scene.control.TextField; -import javafx.scene.input.KeyEvent; -import javafx.scene.layout.*; - -public class CodeEditor extends Pane { - private Pane linePane; - private Label lines; - private boolean readOnly; - - CodeEditor() - { - super(); - - readOnly = false; - lines = new Label(); - - lines.setStyle("-fx-font-size: 20"); - lines.setWrapText(true); - lines.setTranslateX(70); - lines.setTranslateY(30); - - linePane = new Pane(); - - linePane.setStyle("-fx-background-color: #" + CodeEditorTheme.lineTheme); - linePane.setMinSize(52, 720); - linePane.setMaxSize(52, 1080); - - this.getChildren().addAll(linePane, lines); - - this.setStyle("-fx-background-color: #" + CodeEditorTheme.backgroundTheme); - - this.setMinSize(1280, 720); - this.setMaxSize(1920, 1080); - - if (!readOnly) { - - } - } - - @Override - public ObservableList<Node> getChildren() { - return super.getChildren(); - } - - public boolean isReadOnly() { return readOnly; } - - public void setReadOnly(Boolean readOnly) { this.readOnly = readOnly; } - - public String getContents() { return lines.getText(); } - - public void setContents(String content) - { - if (readOnly) - return; - - lines.setText(content); - } -} diff --git a/IDE/src/main/java/org/elmahrouss/CodeEditorTheme.java b/IDE/src/main/java/org/elmahrouss/CodeEditorTheme.java index 532ba65..30dc5fb 100644 --- a/IDE/src/main/java/org/elmahrouss/CodeEditorTheme.java +++ b/IDE/src/main/java/org/elmahrouss/CodeEditorTheme.java @@ -10,7 +10,7 @@ package org.elmahrouss; public class CodeEditorTheme { - public static String backgroundTheme = "FFFFFF"; + public static String backgroundTheme = "202020"; public static String lineTheme = "1A1A1A"; - public static String lineClr = "white"; + public static String lineClr = "FFFFFF"; } diff --git a/IDE/src/main/java/org/elmahrouss/CodeEditorView.java b/IDE/src/main/java/org/elmahrouss/CodeEditorView.java new file mode 100644 index 0000000..e82fa59 --- /dev/null +++ b/IDE/src/main/java/org/elmahrouss/CodeEditorView.java @@ -0,0 +1,92 @@ +/* + * ======================================================== + * + * MPCC + * Copyright Mahrouss Logic, all rights reserved. + * + * ======================================================== + */ + + package org.elmahrouss; + +import java.io.Console; + +import javafx.collections.ObservableList; +import javafx.scene.Node; +import javafx.scene.control.Label; +import javafx.scene.layout.*; +import javafx.scene.paint.Color; + +/* + * Editor view class + */ +public class CodeEditorView extends Pane { + private Pane linePane; + private Label codeText; + private boolean readOnly; + private ConsoleWindow consoleWindow; + private HBox codeBox; + private String filename = "untitled.c"; + + CodeEditorView(boolean readOnly) + { + super(); + + this.readOnly = readOnly; + + codeText = new Label(); + + codeText.setStyle("-fx-font-size: 20"); + codeText.setTextFill(Color.color(1, 1, 1)); + + codeText.setWrapText(true); + codeText.setTranslateX(70); + codeText.setTranslateY(30); + + linePane = new Pane(); + + linePane.setStyle("-fx-background-color: #" + CodeEditorTheme.lineTheme); + linePane.setMinSize(52, 720); + linePane.setMaxSize(52, 1080); + + this.setStyle("-fx-background-color: #" + CodeEditorTheme.backgroundTheme); + + this.setMinSize(1280, 720); + this.setMaxSize(1920, 1080); + + codeBox = new HBox(); + + if (!this.readOnly) { + consoleWindow = new ConsoleWindow(); + + codeBox.getChildren().add(consoleWindow); + codeBox.getChildren().add(codeText); + } + + this.getChildren().addAll(linePane, codeBox); + } + + public boolean isReadOnly() { return readOnly; } + + public void setReadOnly(Boolean readOnly) { this.readOnly = readOnly; } + + public String getFilename() { return filename; } + + public void setFilename(String filename) + { + if (readOnly) + return; + + this.filename = filename; + } + + public String getContents() { return codeText.getText(); } + + public void setContents(String content) + { + if (readOnly) + return; + + this.codeText.setText(content); + } +} diff --git a/IDE/src/main/java/org/elmahrouss/ConsoleWindow.java b/IDE/src/main/java/org/elmahrouss/ConsoleWindow.java index c6e521c..ed378c9 100644 --- a/IDE/src/main/java/org/elmahrouss/ConsoleWindow.java +++ b/IDE/src/main/java/org/elmahrouss/ConsoleWindow.java @@ -9,6 +9,13 @@ package org.elmahrouss; -public class ConsoleWindow { - + import javafx.collections.ObservableList; + import javafx.scene.Node; + import javafx.scene.control.Label; + import javafx.scene.layout.*; + +public class ConsoleWindow extends Pane { + ConsoleWindow() { + super(); + } } |
