From 7e02f156a1dd46d095b9a919d4a6a0b4dc84d31a Mon Sep 17 00:00:00 2001 From: Armin Wolf Date: Mon, 29 May 2017 17:08:58 +0200 Subject: [PATCH] =?UTF-8?q?refactoring,=20log=20eingef=C3=BCgt,=20menupane?= =?UTF-8?q?l?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/App.java | 3 +- src/main/java/Presenter/Presenter.java | 11 +- src/main/java/View/MainFrame.java | 141 +++++++++++++++++-------- src/main/java/View/MenuPanel.java | 33 ++++++ src/main/java/View/PlotDialog.java | 4 +- src/main/java/View/View.java | 36 ------- 6 files changed, 140 insertions(+), 88 deletions(-) create mode 100644 src/main/java/View/MenuPanel.java delete mode 100644 src/main/java/View/View.java diff --git a/src/main/java/App.java b/src/main/java/App.java index 0bbd0ba..97db8e7 100644 --- a/src/main/java/App.java +++ b/src/main/java/App.java @@ -1,7 +1,6 @@ import Model.Arrangement; import Presenter.Presenter; import View.MainFrame; -import View.View; import javax.swing.*; @@ -18,7 +17,7 @@ public class App { public static void main(String[] args) { SwingUtilities.invokeLater(() -> { - View view = new MainFrame(); + MainFrame view = new MainFrame(); view.setPresenter(new Presenter(new Arrangement(), view)); }); diff --git a/src/main/java/Presenter/Presenter.java b/src/main/java/Presenter/Presenter.java index 047a23f..7d204d8 100644 --- a/src/main/java/Presenter/Presenter.java +++ b/src/main/java/Presenter/Presenter.java @@ -19,14 +19,14 @@ import java.util.LinkedList; public class Presenter { private Arrangement model; - private View view; + private MainFrame view; private LinkedList lines; private Double max; private Double min; - public Presenter(Arrangement model, View view){ + public Presenter(Arrangement model, MainFrame view){ this.model = model; this.view = view; this.lines = new LinkedList<>(); @@ -37,10 +37,13 @@ public class Presenter { // Float[] y = {18f,26f,30f,40f,70f}; // Double[] x = {1d,3d,4d,5d,8d}; // Double[] y = {4d,2d,1d,0d,0d}; + view.log("Koordinaten der Punkte:"); for (int j=0;j<7;j++){ Pair p = new Pair(x[j], y[j]); + view.log("f(x) = "+p.getX()+"* x + "+p.getY()); lines.add(p); } + view.log(""); extractBounds(); } @@ -85,11 +88,11 @@ public class Presenter { this.model = model; } - public View getView() { + public MainFrame getView() { return view; } - public void setView(View view) { + public void setView(MainFrame view) { this.view = view; } diff --git a/src/main/java/View/MainFrame.java b/src/main/java/View/MainFrame.java index 7879178..8169896 100644 --- a/src/main/java/View/MainFrame.java +++ b/src/main/java/View/MainFrame.java @@ -1,6 +1,8 @@ package View; +import Presenter.Presenter; + import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; @@ -13,7 +15,9 @@ import java.awt.event.ActionListener; * @Email: a_wolf28@uni-muenster.de * @Date: 28.05.2017. */ -public class MainFrame extends View { +public class MainFrame extends JFrame { + + private Presenter presenter; //TODO refactoring private JButton arrangementButton; @@ -22,6 +26,9 @@ public class MainFrame extends View { private JPanel pane; private JDialog arrangementDialog; private JDialog plotDialog; + private JTextArea output; + private JPanel menupanel; + private JScrollPane scrollPane; private ArrangementDialog arrangement; private PlotDialog plot; @@ -29,13 +36,81 @@ public class MainFrame extends View { initGUI(); } + public Presenter getPresenter() { + return presenter; + } + public void setPresenter(Presenter presenter) { + this.presenter = presenter; + } + + /** + * visualisierungs methoden + */ + + public void createArrangement() { + if (arrangement == null){ + arrangement = new ArrangementDialog(); + arrangement.setPrameters(getPresenter().getMax(), getPresenter().getMin(), getPresenter().getLines()); + arrangement.createArrangement(); + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + arrangementDialog.add(arrangement); + arrangementDialog.setVisible(true); + } + }); + } else { + arrangementDialog.setVisible(true); + } + } + + public void createLine() { + //TODO + } + + public void createPlot() { + if (plot == null){ + plot = new PlotDialog(); + plot.createPlot(getPresenter().getLines()); + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + plotDialog.add(plot); + plotDialog.setVisible(true); + } + }); + } else { + plotDialog.setVisible(true); + } + } + + + /** + * log Methode + */ + + public void log(String s){ + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + output.append(s + "\n"); + } + }); + } + + /** + * init GUI + */ protected void initGUI(){ this.setTitle("MainFrame"); - this.setSize(800,800); + this.setSize(500,400); this.setLayout(new BorderLayout()); pane = new JPanel(); pane.setLayout(new FlowLayout()); + + menupanel = new MenuPanel(); + arrangementDialog = new JDialog(); plotDialog = new JDialog(); arrangementDialog.setSize(new Dimension(700,470)); @@ -44,6 +119,15 @@ public class MainFrame extends View { plotDialog.setTitle("Scatter Plot Dialog"); arrangementDialog.setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE); plotDialog.setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE); + + output = new JTextArea(); + output.setEditable(false); + output.setLineWrap(true); + output.setWrapStyleWord(true); + scrollPane = new JScrollPane(output); + scrollPane.setWheelScrollingEnabled(true); + + arrangementButton = new JButton("Arrangement"); plotButton = new JButton("Plot"); button3 = new JButton("Import"); @@ -62,51 +146,22 @@ public class MainFrame extends View { } }); + button3.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + log("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. \n" + + "\n" + + "Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet,"); + } + }); + pane.add(arrangementButton); pane.add(plotButton); pane.add(button3); - this.add(pane, BorderLayout.WEST); + this.add(menupanel, BorderLayout.NORTH); + this.add(pane, BorderLayout.SOUTH); + this.add(scrollPane, BorderLayout.CENTER); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } - - @Override - public void createArrangement() { - if (arrangement == null){ - arrangement = new ArrangementDialog(); - arrangement.setPrameters(getPresenter().getMax(), getPresenter().getMin(), getPresenter().getLines()); - arrangement.createArrangement(); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - arrangementDialog.add(arrangement); - arrangementDialog.setVisible(true); - } - }); - } else { - arrangementDialog.setVisible(true); - } - } - - @Override - public void createLine() { - //TODO - } - - @Override - public void createPlot() { - if (plot == null){ - plot = new PlotDialog(); - plot.createPlot(getPresenter().getLines()); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - plotDialog.add(plot); - plotDialog.setVisible(true); - } - }); - } else { - plotDialog.setVisible(true); - } - } } diff --git a/src/main/java/View/MenuPanel.java b/src/main/java/View/MenuPanel.java new file mode 100644 index 0000000..2347fa7 --- /dev/null +++ b/src/main/java/View/MenuPanel.java @@ -0,0 +1,33 @@ +package View; + +import org.jfree.ui.action.ActionMenuItem; + +import javax.swing.*; +import java.awt.*; + +/** + * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. + * + * @Author: Armin Wolf + * @Email: a_wolf28@uni-muenster.de + * @Date: 29.05.2017. + */ +public class MenuPanel extends JPanel{ + + private JMenuBar menuBar; + private JMenu menu; + private JMenuItem item; + + public MenuPanel(){ + this.setLayout(new BorderLayout()); + this.menuBar = new JMenuBar(); + this.menu = new JMenu("File"); + this.item = new JMenuItem("Exit"); + + + menu.add(item); + menuBar.add(menu); + this.add(menuBar, BorderLayout.WEST); + this.add(new JSeparator(SwingConstants.HORIZONTAL), BorderLayout.SOUTH); + } +} diff --git a/src/main/java/View/PlotDialog.java b/src/main/java/View/PlotDialog.java index b624723..e262ae8 100644 --- a/src/main/java/View/PlotDialog.java +++ b/src/main/java/View/PlotDialog.java @@ -39,9 +39,7 @@ public class PlotDialog extends JPanel { Thread thread = new Thread(new Runnable() { @Override public void run() { - System.out.println("start"); - - convertData(points); + convertData(points); } }); thread.start(); diff --git a/src/main/java/View/View.java b/src/main/java/View/View.java deleted file mode 100644 index 558ddf3..0000000 --- a/src/main/java/View/View.java +++ /dev/null @@ -1,36 +0,0 @@ -package View; - -import Model.Pair; -import Presenter.Presenter; - -import javax.swing.*; -import java.util.LinkedList; - -/** - * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. - * - * @Author: Armin Wolf - * @Email: a_wolf28@uni-muenster.de - * @Date: 28.05.2017. - */ -public abstract class View extends JFrame { - - private Presenter presenter; - - public View(){ - } - - public Presenter getPresenter() { - return presenter; - } - - public void setPresenter(Presenter presenter) { - this.presenter = presenter; - } - - public abstract void createArrangement(); - - public abstract void createLine(); - - public abstract void createPlot(); -}