From ec1f8f7fea261fb9e7ea209121e756599b8c2681 Mon Sep 17 00:00:00 2001 From: zyno1 <olivierzeyen@gmail.com> Date: Mon, 8 Apr 2019 11:32:20 +0200 Subject: [PATCH] base --- src/main/java/complexityparser/Model.java | 20 +++++++---- src/main/java/view/EditorView.java | 42 +++++++++++++++++++++++ src/main/java/view/MainFrame.java | 8 ++++- 3 files changed, 63 insertions(+), 7 deletions(-) create mode 100644 src/main/java/view/EditorView.java diff --git a/src/main/java/complexityparser/Model.java b/src/main/java/complexityparser/Model.java index fdf46f8..305e323 100644 --- a/src/main/java/complexityparser/Model.java +++ b/src/main/java/complexityparser/Model.java @@ -22,12 +22,7 @@ public class Model extends Observable { public Model() { code = "class MainClass {public static void main(String[] arg) {System.out.println(\"Hello World\");int i = 0;}}"; - CharStream input = CharStreams.fromString(code); - - lexer = new Java8Lexer(input); - token = new CommonTokenStream(lexer); - parser = new Java8Parser(token); - context = parser.compilationUnit(); + setCode(code); } public TreeViewer getTreeComponent() { @@ -38,4 +33,17 @@ public class Model extends Observable { return viewer; } + + public void setCode(String code) { + this.code = code; + + CharStream input = CharStreams.fromString(code); + + lexer = new Java8Lexer(input); + token = new CommonTokenStream(lexer); + parser = new Java8Parser(token); + context = parser.compilationUnit(); + + update(); + } } diff --git a/src/main/java/view/EditorView.java b/src/main/java/view/EditorView.java new file mode 100644 index 0000000..9e32adf --- /dev/null +++ b/src/main/java/view/EditorView.java @@ -0,0 +1,42 @@ +package view; + +import complexityparser.Model; + +import javax.swing.*; +import java.awt.*; + +public class EditorView extends JPanel { + + private JScrollPane panel; + private JTextArea area; + private JButton updateButton; + + private Model m; + + public EditorView(Model m) { + this.m = m; + area = new JTextArea(); + + area.setCaretColor(Color.WHITE); + area.getCaret().setBlinkRate(0); + area.setTabSize(3); + area.setFont(new Font("monospaced", Font.PLAIN, 12)); + + panel = new JScrollPane(area); + + updateButton = new JButton("update"); + updateButton.addActionListener((e) -> { + String code = area.getText(); + m.setCode(code); + }); + + BorderLayout layout = new BorderLayout(); + setLayout(layout); + + add(panel, BorderLayout.CENTER); + add(updateButton, BorderLayout.SOUTH); + + + setPreferredSize(new Dimension(600, 600)); + } +} diff --git a/src/main/java/view/MainFrame.java b/src/main/java/view/MainFrame.java index 1f9ce33..c9f6e01 100644 --- a/src/main/java/view/MainFrame.java +++ b/src/main/java/view/MainFrame.java @@ -3,6 +3,7 @@ package view; import complexityparser.Model; import javax.swing.*; +import java.awt.*; public class MainFrame extends JFrame { public MainFrame(Model m) { @@ -11,7 +12,12 @@ public class MainFrame extends JFrame { setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setTitle("ComplexityParser"); - add(new TreePanel(m)); + + BorderLayout layout = new BorderLayout(); + setLayout(layout); + + add(new EditorView(m), BorderLayout.WEST); + add(new TreePanel(m), BorderLayout.CENTER); pack(); //setSize(600,600); -- GitLab