diff --git a/pom.xml b/pom.xml
index f7961a7..75ac318 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,6 +1,6 @@
-
4.0.0
@@ -28,5 +28,12 @@
jfreechart
1.0.14
+
+
+
+ junit
+ junit
+ 4.12
+
\ No newline at end of file
diff --git a/src/main/java/App.java b/src/main/java/App.java
index 97db8e7..3c4f6eb 100644
--- a/src/main/java/App.java
+++ b/src/main/java/App.java
@@ -14,13 +14,13 @@ import javax.swing.*;
public class App {
- public static void main(String[] args) {
+ public static void main(String[] args) {
- SwingUtilities.invokeLater(() -> {
- MainFrame view = new MainFrame();
- view.setPresenter(new Presenter(new Arrangement(), view));
- });
+ SwingUtilities.invokeLater(() -> {
+ MainFrame view = new MainFrame();
+ view.setPresenter(new Presenter(new Arrangement(), view));
+ });
- }
+ }
}
diff --git a/src/main/java/Model/Arrangement.java b/src/main/java/Model/Arrangement.java
index 7069c61..2741119 100644
--- a/src/main/java/Model/Arrangement.java
+++ b/src/main/java/Model/Arrangement.java
@@ -14,16 +14,16 @@ public class Arrangement {
private LinkedList nodes;
private LinkedList lines;
- public Arrangement(){
+ public Arrangement() {
nodes = new LinkedList<>();
lines = new LinkedList<>();
}
- public void addNode(Coordinates node){
+ public void addNode(Coordinates node) {
this.nodes.add(node);
}
- public void addLine(Coordinates line){
+ public void addLine(Coordinates line) {
this.lines.add(line);
}
@@ -40,5 +40,4 @@ public class Arrangement {
}
-
}
diff --git a/src/main/java/Model/Coordinates.java b/src/main/java/Model/Coordinates.java
index c320dde..dd47482 100644
--- a/src/main/java/Model/Coordinates.java
+++ b/src/main/java/Model/Coordinates.java
@@ -35,13 +35,13 @@ public class Coordinates implements Comparable {
@Override
public int compareTo(Coordinates o) {
- if(this.getX() == o.getX()){
- if (this.getY() <= o.getY()){
+ if (this.getX() == o.getX()) {
+ if (this.getY() <= o.getY()) {
return -1;
} else {
return 1;
}
- } else if (this.getX() < o.getX()){
+ } else if (this.getX() < o.getX()) {
return -1;
} else {
return 1;
diff --git a/src/main/java/Model/DoublyConnectedEdgeList.java b/src/main/java/Model/DoublyConnectedEdgeList.java
index da54dd6..6ca29cd 100644
--- a/src/main/java/Model/DoublyConnectedEdgeList.java
+++ b/src/main/java/Model/DoublyConnectedEdgeList.java
@@ -15,13 +15,13 @@ public class DoublyConnectedEdgeList {
private LinkedList edges;
private LinkedList faces;
- public DoublyConnectedEdgeList(){
+ public DoublyConnectedEdgeList() {
this.nodes = new LinkedList<>();
this.edges = new LinkedList<>();
this.faces = new LinkedList<>();
}
- public Node createNode(Coordinates point, String id){
+ public Node createNode(Coordinates point, String id) {
Node node = new Node();
node.setCoordinates(point);
@@ -30,15 +30,17 @@ public class DoublyConnectedEdgeList {
return node;
}
- public Edge createEdge(Node source, Node destination, String id){
+ public Edge createEdge(Node source, Node destination, String id) {
Edge edge = new Edge();
Edge twin = new Edge();
edge.setOrigin(source);
edge.setID(id);
+ edge.setTwin(twin);
twin.setOrigin(destination);
- twin.setID("#"+id);
+ twin.setID("#" + id);
+ twin.setTwin(edge);
source.setIncidentEdge(edge);
destination.setIncidentEdge(twin);
@@ -46,14 +48,14 @@ public class DoublyConnectedEdgeList {
return edge;
}
- public Face createFace(Edge outerComponent, Edge innerComponent, String id){
+ public Face createFace(Edge outerComponent, Edge innerComponent, String id) {
Face face = new Face();
face.setOuterComponent(outerComponent);
face.setID(id);
Edge tempEdge;
- if (!outerComponent.equals(null)){
+ if (outerComponent != null) {
tempEdge = outerComponent;
do {
tempEdge.setIncidentFace(face);
@@ -61,8 +63,9 @@ public class DoublyConnectedEdgeList {
} while (!tempEdge.equals(outerComponent));
}
- if (!innerComponent.equals(null)){
- LinkedList componentlist = face.getInnerComponents();
+ if (innerComponent != null) {
+ LinkedList componentlist;
+ componentlist = face.getInnerComponents();
componentlist.add(innerComponent);
tempEdge = innerComponent;
do {
@@ -74,12 +77,32 @@ public class DoublyConnectedEdgeList {
return null;
}
- public void createConnection(Edge edge, Edge pred){
- edge.setPrev(pred);
- pred.setNext(edge);
+ public void createConnection(Edge edge, Edge succ) {
+ edge.setNext(succ);
+ succ.setPrev(edge);
}
+ public LinkedList getNodes() {
+ return nodes;
+ }
+ public void setNodes(LinkedList nodes) {
+ this.nodes = nodes;
+ }
+ public LinkedList getEdges() {
+ return edges;
+ }
+ public void setEdges(LinkedList edges) {
+ this.edges = edges;
+ }
+
+ public LinkedList getFaces() {
+ return faces;
+ }
+
+ public void setFaces(LinkedList faces) {
+ this.faces = faces;
+ }
}
diff --git a/src/main/java/Model/Edge.java b/src/main/java/Model/Edge.java
index 61f907d..2a8edd2 100644
--- a/src/main/java/Model/Edge.java
+++ b/src/main/java/Model/Edge.java
@@ -16,11 +16,11 @@ public class Edge {
private Edge prev;
private String id;
- public Edge(){
+ public Edge() {
new Edge(null, null, null, null, null);
}
- public Edge(Node origin, Edge twin, Edge next, Edge prev, Face incidentFace){
+ public Edge(Node origin, Edge twin, Edge next, Edge prev, Face incidentFace) {
this.origin = origin;
this.twin = twin;
this.next = next;
@@ -68,8 +68,8 @@ public class Edge {
this.prev = prev;
}
- public boolean hasNext(){
- if (getNext() == null){
+ public boolean hasNext() {
+ if (getNext() == null) {
return false;
} else {
return true;
@@ -77,7 +77,7 @@ public class Edge {
}
- public Edge insertNode(Node node){
+ public Edge insertNode(Node node) {
Edge edge = new Edge();
Edge twin = new Edge();
@@ -107,11 +107,11 @@ public class Edge {
return edge;
}
- public String getID(){
+ public String getID() {
return this.id;
}
- public void setID(String id){
+ public void setID(String id) {
this.id = id;
}
}
diff --git a/src/main/java/Model/Face.java b/src/main/java/Model/Face.java
index 7a96e73..8fe3502 100644
--- a/src/main/java/Model/Face.java
+++ b/src/main/java/Model/Face.java
@@ -1,6 +1,5 @@
package Model;
-import java.util.Iterator;
import java.util.LinkedList;
/**
@@ -16,11 +15,12 @@ public class Face {
private Edge outerComponent;
private String id;
- public Face(){
+ public Face() {
new Face(null, null);
+ this.innerComponents = new LinkedList<>();
}
- public Face(Edge outerComponent, LinkedList innerComponents){
+ public Face(Edge outerComponent, LinkedList innerComponents) {
this.outerComponent = outerComponent;
this.innerComponents = innerComponents;
}
@@ -41,9 +41,9 @@ public class Face {
this.outerComponent = outerComponent;
}
- public Face insertEdge(Edge edgeWithSameDestination, Edge edgeToMySource){
+ public Face insertEdge(Edge edgeWithSameDestination, Edge edgeToMySource) {
- if (edgeWithSameDestination.getIncidentFace().equals(this) || edgeToMySource.getIncidentFace().equals(this)){
+ if (edgeWithSameDestination.getIncidentFace().equals(this) || edgeToMySource.getIncidentFace().equals(this)) {
LinkedList components = new LinkedList();
for (Edge e : innerComponents) {
components.add(e);
@@ -65,12 +65,12 @@ public class Face {
Edge tempEdge = edge.getNext();
Edge tempTwin = twin.getNext();
//kreis umlaufen um festzustellen welche fläche kleiner ist
- while ((tempEdge.equals(edge) == false) && (tempTwin.equals(twin) == false)){
+ while ((tempEdge.equals(edge) == false) && (tempTwin.equals(twin) == false)) {
tempEdge = tempEdge.getNext();
tempTwin = tempTwin.getNext();
}
- if (tempEdge.equals(edge)){
+ if (tempEdge.equals(edge)) {
setOuterComponent(twin);
twin.setIncidentFace(this);
face.setOuterComponent(edge);
@@ -80,18 +80,18 @@ public class Face {
face.setOuterComponent(twin);
}
- LinkedList bla = new LinkedList();
+ LinkedList bla = new LinkedList();
Edge iterEdge = face.getOuterComponent();
bla.add(face.getOuterComponent());
- while (iterEdge.hasNext()){
+ while (iterEdge.hasNext()) {
bla.add(iterEdge.getNext());
iterEdge = iterEdge.getNext();
}
for (Edge e : face.getInnerComponents()) {
iterEdge = e;
- while (iterEdge.hasNext()){
+ while (iterEdge.hasNext()) {
bla.add(iterEdge.getNext());
iterEdge = iterEdge.getNext();
}
@@ -107,11 +107,11 @@ public class Face {
}
- public String getID(){
+ public String getID() {
return this.id;
}
- public void setID(String id){
+ public void setID(String id) {
this.id = id;
}
}
diff --git a/src/main/java/Model/Node.java b/src/main/java/Model/Node.java
index ba90fcc..a4fbaf7 100644
--- a/src/main/java/Model/Node.java
+++ b/src/main/java/Model/Node.java
@@ -13,11 +13,11 @@ public class Node {
private Edge incidentEdge;
private String id;
- public Node(){
+ public Node() {
new Node(null, null);
}
- public Node(Coordinates coordinates, Edge incidentEdge){
+ public Node(Coordinates coordinates, Edge incidentEdge) {
this.coordinates = coordinates;
this.incidentEdge = incidentEdge;
}
@@ -38,11 +38,11 @@ public class Node {
this.incidentEdge = incidentEdge;
}
- public String getID(){
+ public String getID() {
return this.id;
}
- public void setID(String id){
+ public void setID(String id) {
this.id = id;
}
}
diff --git a/src/main/java/Presenter/Presenter.java b/src/main/java/Presenter/Presenter.java
index 20f658a..adf6102 100644
--- a/src/main/java/Presenter/Presenter.java
+++ b/src/main/java/Presenter/Presenter.java
@@ -2,7 +2,7 @@ package Presenter;
import Model.Arrangement;
import Model.Coordinates;
-import View.*;
+import View.MainFrame;
import java.util.Collections;
import java.util.LinkedList;
@@ -24,28 +24,28 @@ public class Presenter {
private Double max;
private Double min;
- public Presenter(Arrangement model, MainFrame view){
+ public Presenter(Arrangement model, MainFrame view) {
this.model = model;
- this.view = view;
+ this.view = view;
- Double[] x = {1d,2d,3d,4d,10d,12d,18d};
- Double[] y = {9d,15d,19d,20d,45d,55d,78d};
+ Double[] x = {1d, 2d, 3d, 4d, 10d, 12d, 18d};
+ Double[] y = {9d, 15d, 19d, 20d, 45d, 55d, 78d};
// Float[] x = {18f,24f,30f,34f,38f};
// 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++){
+ for (int j = 0; j < 7; j++) {
Coordinates p = new Coordinates(x[j], y[j]);
- view.log("f(x) = "+p.getX()+"* x + "+p.getY());
+ view.log("f(x) = " + p.getX() + "* x + " + p.getY());
this.model.addLine(p);
}
view.log("");
calcArrangementNodes();
//print
for (Coordinates p : model.getNodes()) {
- view.log(p.getX()+", "+p.getY());
+ view.log(p.getX() + ", " + p.getY());
}
extractBounds();
}
@@ -66,11 +66,11 @@ public class Presenter {
view.createArrangement();
}
- public void startScatterPlotVisualization(){
+ public void startScatterPlotVisualization() {
view.createPlot();
}
- private void extractBounds(){
+ private void extractBounds() {
Coordinates pmax = Collections.max(model.getLines());
Coordinates pmin = Collections.min(model.getLines());
@@ -78,11 +78,11 @@ public class Presenter {
min = pmin.getX() <= pmin.getY() ? pmin.getX() : pmin.getY();
}
- public Coordinates calcIntersection(Coordinates a, Coordinates b){
+ public Coordinates calcIntersection(Coordinates a, Coordinates b) {
Coordinates p1;
Coordinates p2;
- if (a.compareTo(b) > 0){
+ if (a.compareTo(b) > 0) {
p1 = a;
p2 = b;
} else {
@@ -92,17 +92,17 @@ public class Presenter {
Double x = (p1.getY() - p2.getY()) / (p2.getX() - p1.getX());
Double y = ((p1.getX() * p2.getY()) - (p2.getX() * p1.getY())) / (p1.getX() - p2.getX());
- System.out.printf("RESULT: (%3.3f, %3.3f)\n",x, y);
+ System.out.printf("RESULT: (%3.3f, %3.3f)\n", x, y);
- return new Coordinates(x,y);
+ return new Coordinates(x, y);
}
- public void calcArrangementNodes(){
+ public void calcArrangementNodes() {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
- for (int i=0;i lines, LinkedList points){
+ public void setPrameters(Double pmax, Double pmin, LinkedList lines, LinkedList points) {
this.max = pmax;
this.min = pmin;
this.lines = lines;
@@ -50,11 +49,11 @@ public class ArrangementDialog extends JPanel {
this.rangeMax = Double.MIN_VALUE;
}
- public void createArrangement(){
+ public void createArrangement() {
XYSeriesCollection dataset = new XYSeriesCollection();
for (Coordinates p : lines) {
- XYSeries series = new XYSeries(p.getX()+p.getY());
+ XYSeries series = new XYSeries(p.getX() + p.getY());
series.add((-1 * this.max), (((-1 * this.max) * p.getX()) + p.getY()));
series.add(this.max, ((this.max * p.getX()) + p.getY()));
dataset.addSeries(series);
@@ -72,14 +71,14 @@ public class ArrangementDialog extends JPanel {
chart = ChartFactory.createXYLineChart(
null, null, null, dataset,
- PlotOrientation.HORIZONTAL, false, false, false );
+ PlotOrientation.HORIZONTAL, false, false, false);
final XYPlot plot = chart.getXYPlot();
ValueAxis domain = plot.getDomainAxis();
- ValueAxis range = plot.getRangeAxis();
+ ValueAxis range = plot.getRangeAxis();
- domain.setRange(domainMin-1,domainMax+1);
- range.setRange(rangeMin-1,rangeMax+1);
+ domain.setRange(domainMin - 1, domainMax + 1);
+ range.setRange(rangeMin - 1, rangeMax + 1);
plot.setBackgroundPaint(Color.WHITE);
plot.setDomainGridlinePaint(Color.white);
plot.setRangeGridlinePaint(Color.white);
@@ -93,6 +92,4 @@ public class ArrangementDialog extends JPanel {
}
-
-
}
diff --git a/src/main/java/View/MainFrame.java b/src/main/java/View/MainFrame.java
index 9c5cbb8..5e52909 100644
--- a/src/main/java/View/MainFrame.java
+++ b/src/main/java/View/MainFrame.java
@@ -32,7 +32,7 @@ public class MainFrame extends JFrame {
private ArrangementDialog arrangement;
private PlotDialog plot;
- public MainFrame(){
+ public MainFrame() {
initGUI();
}
@@ -49,7 +49,7 @@ public class MainFrame extends JFrame {
*/
public void createArrangement() {
- if (arrangement == null){
+ if (arrangement == null) {
arrangement = new ArrangementDialog();
arrangement.setPrameters(getPresenter().getMax(), getPresenter().getMin(), getPresenter().getLines(), getPresenter().getModel().getNodes());
arrangement.createArrangement();
@@ -70,7 +70,7 @@ public class MainFrame extends JFrame {
}
public void createPlot() {
- if (plot == null){
+ if (plot == null) {
plot = new PlotDialog();
plot.createPlot(getPresenter().getLines());
SwingUtilities.invokeLater(new Runnable() {
@@ -90,7 +90,7 @@ public class MainFrame extends JFrame {
* log Methode
*/
- public void log(String s){
+ public void log(String s) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
@@ -102,9 +102,9 @@ public class MainFrame extends JFrame {
/**
* init GUI
*/
- protected void initGUI(){
+ protected void initGUI() {
this.setTitle("MainFrame");
- this.setSize(500,400);
+ this.setSize(500, 400);
this.setLayout(new BorderLayout());
pane = new JPanel();
pane.setLayout(new FlowLayout());
@@ -112,9 +112,9 @@ public class MainFrame extends JFrame {
menupanel = new MenuPanel();
arrangementDialog = new JDialog();
- plotDialog = new JDialog();
- arrangementDialog.setSize(new Dimension(700,470));
- plotDialog.setSize(new Dimension(700,470));
+ plotDialog = new JDialog();
+ arrangementDialog.setSize(new Dimension(700, 470));
+ plotDialog.setSize(new Dimension(700, 470));
arrangementDialog.setTitle("Arrangement Dialog");
plotDialog.setTitle("Scatter Plot Dialog");
arrangementDialog.setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);
diff --git a/src/main/java/View/MenuPanel.java b/src/main/java/View/MenuPanel.java
index 2347fa7..6cb22a5 100644
--- a/src/main/java/View/MenuPanel.java
+++ b/src/main/java/View/MenuPanel.java
@@ -1,7 +1,5 @@
package View;
-import org.jfree.ui.action.ActionMenuItem;
-
import javax.swing.*;
import java.awt.*;
@@ -12,17 +10,17 @@ import java.awt.*;
* @Email: a_wolf28@uni-muenster.de
* @Date: 29.05.2017.
*/
-public class MenuPanel extends JPanel{
+public class MenuPanel extends JPanel {
private JMenuBar menuBar;
private JMenu menu;
private JMenuItem item;
- public MenuPanel(){
+ public MenuPanel() {
this.setLayout(new BorderLayout());
this.menuBar = new JMenuBar();
- this.menu = new JMenu("File");
- this.item = new JMenuItem("Exit");
+ this.menu = new JMenu("File");
+ this.item = new JMenuItem("Exit");
menu.add(item);
diff --git a/src/main/java/View/PlotDialog.java b/src/main/java/View/PlotDialog.java
index d17495d..88f1190 100644
--- a/src/main/java/View/PlotDialog.java
+++ b/src/main/java/View/PlotDialog.java
@@ -39,7 +39,7 @@ public class PlotDialog extends JPanel {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
- convertData(points);
+ convertData(points);
}
});
thread.start();
diff --git a/src/test/java/Model/DoublyConnectedEdgeListTest.java b/src/test/java/Model/DoublyConnectedEdgeListTest.java
new file mode 100644
index 0000000..1e10b1f
--- /dev/null
+++ b/src/test/java/Model/DoublyConnectedEdgeListTest.java
@@ -0,0 +1,35 @@
+package Model;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden.
+ *
+ * @Author: Armin Wolf
+ * @Email: a_wolf28@uni-muenster.de
+ * @Date: 30.05.2017.
+ */
+public class DoublyConnectedEdgeListTest {
+
+ private static DoublyConnectedEdgeList dcel;
+ private static Node v1, v2, v3 ,v4, v5;
+ private static Edge e1, e2, e3, e4, e5, e6;
+ private static Face f1, f2, f3;
+
+ @Before
+ public void setUp() throws Exception {
+ dcel = new DoublyConnectedEdgeList();
+
+ }
+
+
+ @Test
+ public void testCases(){
+
+
+ }
+
+}
\ No newline at end of file