summaryrefslogtreecommitdiffhomepage
path: root/IDE/src/main/java/org/elmahrouss/App.java
blob: 0cb04934b5043acd4281c5587c37f54ac87b7cfe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/*
 *	========================================================
 *
 *	MPCC
 * 	Copyright 2024, Mahrouss Logic, all rights reserved.
 *
 * 	========================================================
 */

 package org.elmahrouss;

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;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.scene.control.Button;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;

/**
 * JavaFX App
 */
public class App extends Application 
{
    @Override
    public void start(Stage stage) 
    {
        stage.setTitle("MetroWorks - v1.00");
        stage.setResizable(false);

        var projectPane = new VBox();
        projectPane.setSpacing(10);

        TabPane tabPages = new TabPane();

        tabPages.setStyle("-fx-background-color: #" + CodeEditorTheme.LINE_THEME);

        Tab tabEditorWelcome = new Tab("Welcome!", new CodeEditorView());

        CodeEditorView editorView = (CodeEditorView)tabEditorWelcome.getContent();
        
        Button buttonNewPane = new Button("New File...");
        buttonNewPane.setStyle("-fx-background-color: #" + CodeEditorTheme.LINE_THEME + "; -fx-text-fill: #" + CodeEditorTheme.TEXT_THEME);

        buttonNewPane.onMouseClickedProperty().set((EventHandler<MouseEvent>) (MouseEvent c) -> {
            CodeEditorController view = new CodeEditorController();
            Tab tabCode = new Tab("Untitled", view.getView());

            view.getView().setController(view);

            tabCode.setText(view.getView().getFilename());

            tabPages.getTabs().add(tabCode);
        });

        buttonNewPane.setTranslateX(70);
        buttonNewPane.setTranslateY(100);

        editorView.getChildren().addAll(buttonNewPane);

        editorView.setContents("Welcome to MetroWorks!\nThe embedded code editor.");

        tabEditorWelcome.setClosable(false);

        tabPages.getTabs().add(tabEditorWelcome);

        projectPane.getChildren().addAll(tabPages);

        var scene = new Scene(projectPane, AppSettings.WIDTH, AppSettings.HEIGHT);

        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch();
    }

}