summaryrefslogtreecommitdiffhomepage
path: root/IDE/src/main/java
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-01-15 22:35:29 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-01-15 22:35:29 +0100
commitad548cf57ae5d729c4186ec8f710b0df2e6f24b4 (patch)
tree515826b0d36eab32395abe09c1727011cdf151ed /IDE/src/main/java
parentb876a9ffb37882d1bc3b50b815a5b45af21735dc (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.java33
-rw-r--r--IDE/src/main/java/org/elmahrouss/CodeEditor.java74
-rw-r--r--IDE/src/main/java/org/elmahrouss/CodeEditorTheme.java4
-rw-r--r--IDE/src/main/java/org/elmahrouss/CodeEditorView.java92
-rw-r--r--IDE/src/main/java/org/elmahrouss/ConsoleWindow.java11
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();
+ }
}