From dfcc6a15cbe966b104d62e159753bddcc923154d Mon Sep 17 00:00:00 2001 From: Armin Wolf Date: Sun, 4 Jun 2017 08:55:27 +0200 Subject: [PATCH] WIP: alternative gui --- src/main/java/Presenter/Presenter.java | 46 +++++++++++++++++++--- src/main/java/View/ArrangementDialog2.java | 17 +++----- src/main/java/View/MainFrame.java | 2 +- 3 files changed, 47 insertions(+), 18 deletions(-) diff --git a/src/main/java/Presenter/Presenter.java b/src/main/java/Presenter/Presenter.java index 15a8322..4f9e00d 100644 --- a/src/main/java/Presenter/Presenter.java +++ b/src/main/java/Presenter/Presenter.java @@ -57,7 +57,6 @@ public class Presenter { view.logHeading("Koordinaten der Punkte"); view.createTable(heading, rows); view.logSuccess("Berechnung wurde Erfolgreich durchgeführt"); - extractBounds(); } public void getDataFromModel() { @@ -81,11 +80,47 @@ public class Presenter { } private void extractBounds() { - Coordinates pmax = Collections.max(model.getLines()); - Coordinates pmin = Collections.min(model.getLines()); +// Coordinates pmax = Collections.max(model.getLines()); +// Coordinates pmin = Collections.min(model.getLines()); +// +// max = pmax.getX() >= pmax.getY() ? pmax.getX() : pmax.getY(); +// min = pmin.getX() <= pmin.getY() ? pmin.getX() : pmin.getY(); + LinkedList xCoordinates = new LinkedList<>(); + LinkedList yCoordinates = new LinkedList<>(); - max = pmax.getX() >= pmax.getY() ? pmax.getX() : pmax.getY(); - min = pmin.getX() <= pmin.getY() ? pmin.getX() : pmin.getY(); + for (Coordinates point : model.getNodes()) { + xCoordinates.add(point.getX()); + yCoordinates.add(point.getY()); + System.out.println(point.getX() + ", " + point.getY()); + } + + Collections.sort(xCoordinates); + Collections.sort(yCoordinates); + + double xmin, xmax; + double ymin, ymax; + + xmin = xCoordinates.getFirst(); + xmax = xCoordinates.getLast(); + ymin = yCoordinates.getFirst(); + ymax = yCoordinates.getLast(); + + System.out.println("x: "+xmin+", "+xmax+"\t"+ymin+", "+ymax); + + for (Coordinates p : model.getLines()) { + p.setX(scale(p.getX(), xmin, xmax, 0, 100)); + p.setY(scale(p.getY(), ymin, ymax, 0, 100)); + view.log(p.getX() + ", "+p.getY()); + } + } + + public double scale( + double x, + double old_min, double old_max, + double new_min, double new_max) { + double old_range = Math.abs(old_max - old_min); + double new_range = Math.abs(new_max - new_min); + return (new_min + x - old_min) * (new_range / old_range); } public Coordinates calcIntersection(Coordinates a, Coordinates b) { @@ -117,6 +152,7 @@ public class Presenter { model.addNode(calcIntersection(getLines().get(j), getLines().get(i))); } } + extractBounds(); } }); thread.start(); diff --git a/src/main/java/View/ArrangementDialog2.java b/src/main/java/View/ArrangementDialog2.java index 8e1dc8e..d753824 100644 --- a/src/main/java/View/ArrangementDialog2.java +++ b/src/main/java/View/ArrangementDialog2.java @@ -21,6 +21,9 @@ public class ArrangementDialog2 extends JPanel { private int max = 600; private int zero = max/2; + private int low; + private int high; + private Dimension dimension; private LinkedList lines; private LinkedList points; @@ -32,26 +35,16 @@ public class ArrangementDialog2 extends JPanel { this.setPreferredSize(dimension); } - public void setPrameters(Double pmax, Double pmin, LinkedList lines, LinkedList points) { - this.scale = max / (Math.abs(pmin) - Math.abs(pmax)); + public void setPrameters(LinkedList lines, LinkedList points) { this.lines = lines; this.points = points; - scalePoints(); + //scalePoints(); this.repaint(); } private void scalePoints(){ - for (Coordinates c : lines) { - c.setX(c.getX() * scale); - c.setY(c.getY() * scale); - } - JOptionPane.showMessageDialog(null,points.size()); - for (Coordinates c : points) { - c.setX((c.getX() * scale) + zero); - c.setY((c.getY()* scale) + zero); - } } diff --git a/src/main/java/View/MainFrame.java b/src/main/java/View/MainFrame.java index 6a13fa9..767acda 100644 --- a/src/main/java/View/MainFrame.java +++ b/src/main/java/View/MainFrame.java @@ -52,7 +52,7 @@ public class MainFrame extends JFrame { public void createArrangement() { if (arrangement == null) { arrangement = new ArrangementDialog2(); - arrangement.setPrameters(getPresenter().getMax(), getPresenter().getMin(), getPresenter().getLines(), getPresenter().getModel().getNodes()); + arrangement.setPrameters(getPresenter().getLines(), getPresenter().getModel().getNodes()); // arrangement.createArrangement(); SwingUtilities.invokeLater(new Runnable() { @Override