瀏覽代碼

new class for statisticgraph

Kevin Trometer 8 年之前
父節點
當前提交
3a4759f57e
共有 3 個文件被更改,包括 80 次插入6 次删除
  1. 44 0
      src/classes/TrackedDataSet.java
  2. 4 2
      src/ui/view/StatisticGraph.java
  3. 32 4
      src/ui/view/UpperNodeCanvas.java

+ 44 - 0
src/classes/TrackedDataSet.java

@@ -0,0 +1,44 @@
+package classes;
+
+import java.awt.Color;
+
+public class TrackedDataSet {
+
+	//Property Integers
+	public final int CONSUMPTION = 0;
+	public final int PRODUCTION = 1;
+	public final int ACTIVATED_ELEMENTS = 2;
+
+	//Variables of the Data Set
+	private AbstractCpsObject cps;
+	private int property;
+	private Color color;
+
+	/**
+	 * Data Set for the StatisticGraoh
+	 * 
+	 * @param cps
+	 *            the cps Object
+	 * @param property
+	 *            which value should be tracked
+	 * @param color
+	 *            color of the line in the graph
+	 */
+	public TrackedDataSet(AbstractCpsObject cps, int property, Color color) {
+		this.cps = cps;
+		this.property = property;
+		this.color = color;
+	}
+
+	public AbstractCpsObject getCpsObject() {
+		return this.cps;
+	}
+
+	public int getProperty() {
+		return this.property;
+	}
+
+	public Color getColor() {
+		return this.color;
+	}
+}

+ 4 - 2
src/ui/view/StatisticGraph.java

@@ -10,8 +10,10 @@ import java.util.ArrayList;
 
 import javax.swing.JPanel;
 
+import classes.AbstractCpsObject;
 import classes.HolonElement;
 import classes.HolonObject;
+import javafx.util.Pair;
 import ui.controller.Control;
 import ui.model.Model;
 
@@ -21,7 +23,7 @@ public class StatisticGraph extends JPanel {
 	 * 
 	 */
 	private static final long serialVersionUID = 1L;
-
+	
 	// Max Objects
 	final int MAX_OBJECTS = 8;
 
@@ -43,7 +45,7 @@ public class StatisticGraph extends JPanel {
 	GeneralPath path = new GeneralPath();
 
 	// Data
-	private ArrayList<HolonObject> objects = new ArrayList<>();
+	private ArrayList<Pair> objects = new ArrayList<>();
 	private ArrayList<GeneralPath> objPaths = new ArrayList<>();
 
 	/**

+ 32 - 4
src/ui/view/UpperNodeCanvas.java

@@ -114,7 +114,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 		// this.add(breadCrumb);
 		scalediv20 = model.getScale() / 20;
 
-		//Cps objecte aus dem border links schieben
+		// Cps objecte aus dem border links schieben
 		borderPos = (int) (model.getScale() + scalediv20 + scalediv20 + 10);
 		for (AbstractCpsObject cps : upperNode.getNodes()) {
 			if (cps.getPosition().x < model.getScaleDiv2() + borderPos + 5) {
@@ -815,7 +815,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 							y = (int) (cps.getPosition().y + yDist);
 
 							// Make sure its in bounds
-							if (x <borderPos + 5)
+							if (x < borderPos + 5)
 								x = borderPos + 5;
 							else if (x > this.getWidth() - controller.getScale())
 								x = this.getWidth() - controller.getScale();
@@ -855,6 +855,34 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 
 				}
 			}
+			int count = 0;
+			for (CpsEdge ed : upperNode.getConnections()) {
+				AbstractCpsObject cps = null;
+				if (ed.getA().equals(upperNode)) {
+					cps = ed.getB();
+				} else {
+					cps = ed.getA();
+				}
+
+				int x1 = sx, x2 = x, y1 = sy, y2 = y;
+
+				if (sx >= x) {
+					x1 = x;
+					x2 = sx;
+				}
+				if (sy >= y) {
+					y1 = y;
+					y2 = sy;
+				}
+
+				if (x1 <= borderPos >> 1
+						&& y1 <= (int) (5 + (model.getScale() + scalediv20 + 10) * count) + model.getScaleDiv2()
+						&& x2 >= borderPos >> 1 && y2 >= (int) (5 + (model.getScale() + scalediv20 + 10) * count)) {
+					tempSelected.add(cps);
+
+				}
+				count++;
+			}
 		}
 
 		repaint();
@@ -913,7 +941,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 	 * Draws or Deletes an Edge.
 	 */
 	private void drawDeleteEdge() {
-		boolean node = true;
+		boolean node = true; // new node?
 		boolean newEdge = true;
 		boolean onEdge = true;
 		boolean deleteNode = false;
@@ -1057,7 +1085,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 		}
 
 		// ins leere Gedragged
-		if (node) {
+		if (node && x > borderPos) {
 			CpsNode n = new CpsNode("Node");
 
 			n.setPosition(x - model.getScaleDiv2(), y - model.getScaleDiv2());