ソースを参照

Merge branch 'master' of https://git.tk.informatik.tu-darmstadt.de/carlos.garcia/praktikum-holons

Teh-Hai Julian Zheng 8 年 前
コミット
9ce34dc519
3 ファイル変更23 行追加11 行削除
  1. 15 4
      src/ui/view/GUI.java
  2. 4 3
      src/ui/view/MyCanvas.java
  3. 4 4
      src/ui/view/UpperNodeCanvas.java

+ 15 - 4
src/ui/view/GUI.java

@@ -578,6 +578,11 @@ public class GUI<E> implements CategoryListener {
 				JOptionPane.showMessageDialog(null, myPanel);
 				controller.setCanvasX(Integer.parseInt(field1.getText()));
 				controller.setCanvasY(Integer.parseInt(field2.getText()));
+				for (int i = 2; i < tabbedPane.getTabCount(); i++) {
+					tabbedPane.getComponentAt(i)
+							.setPreferredSize(new Dimension(model.getCanvasX(), model.getCanvasY()));
+					tabbedPane.getComponentAt(i).repaint();
+				}
 				canvas.setPreferredSize(new Dimension(model.getCanvasX(), model.getCanvasY()));
 				canvas.repaint();
 			}
@@ -1174,10 +1179,6 @@ public class GUI<E> implements CategoryListener {
 		canvas.addMouseListener(new MouseAdapter() {
 			@Override
 			public void mousePressed(MouseEvent e) {
-				if (canvas.click && temp instanceof CpsUpperNode) {
-					tabbedPane.add("Test Tab", new UpperNodeCanvas(model, controller, (CpsUpperNode)temp));
-				}
-				
 				selectedElements.clear();
 				holonEleNamesDisplayed = Languages.getLanguage()[25];
 				// If any empty space is clicked
@@ -1305,6 +1306,16 @@ public class GUI<E> implements CategoryListener {
 				} else if (model.getSelectedCpsObjects().size() == 1) {
 					tableHolonElement.setModel(tableModelHolonElementSingle);
 				}
+				// New Tab with NodeOfNode
+				if (canvas.click && temp instanceof CpsUpperNode) {
+					UpperNodeCanvas unc = new UpperNodeCanvas(model, controller, (CpsUpperNode) temp);
+					unc.setBorder(null);
+					unc.setBackground(Color.WHITE);
+					unc.setPreferredSize(new Dimension(model.getCanvasX(), model.getCanvasY()));
+					JScrollPane sp = new JScrollPane(unc);
+					sp.setBorder(null);
+					tabbedPane.add(temp.getName(), sp);
+				}
 			}
 
 			@Override

+ 4 - 3
src/ui/view/MyCanvas.java

@@ -6,7 +6,6 @@ import java.awt.Graphics;
 import java.awt.Graphics2D;
 import java.awt.Image;
 import java.awt.Point;
-import java.awt.Rectangle;
 import java.awt.RenderingHints;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
@@ -26,9 +25,9 @@ import javax.swing.JPanel;
 import javax.swing.JPopupMenu;
 import javax.swing.JToolTip;
 
-import api.CpsAPI;
 import classes.CpsEdge;
 import classes.CpsNode;
+import classes.CpsUpperNode;
 import classes.AbstractCpsObject;
 import classes.HolonElement;
 import classes.HolonObject;
@@ -404,6 +403,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 					img = new ImageIcon(this.getClass().getResource(cps.getImage())).getImage();
 				}
 			}
+
 			g2.drawImage(img, cps.getPosition().x, cps.getPosition().y, controller.getScale(), controller.getScale(),
 					null);
 		}
@@ -806,7 +806,8 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 
 	/**
 	 * Checks if a double click was made.
-	 * @return 
+	 * 
+	 * @return
 	 * 
 	 * @return true if doublecklick, false if not
 	 */

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

@@ -130,7 +130,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 		itemCollapse.addActionListener(new ActionListener() {
 			@Override
 			public void actionPerformed(ActionEvent e) {
-
+				control.addUpperNode("NodeOfNode");
 				repaint();
 			}
 		});
@@ -266,7 +266,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 					tempCps.getPosition().y + controller.getScaleDiv2(), x, y);
 		}
 
-		for (CpsEdge con : model.getEdgesOnCanvas()) {
+		for (CpsEdge con : upperNode.getNodeEdges()) {
 			if (con.getA().getID() != model.getSelectedObjectID() && con.getB().getID() != model.getSelectedObjectID()
 					&& con != edgeHighlight) {
 				if (con.getState()) {
@@ -299,7 +299,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 		// Highlighted Edge
 		if (model.getSelectedObjectID() > 0 || !model.getSelectedCpsObjects().isEmpty() || !tempSelected.isEmpty()) {
 			g2.setColor(Color.BLUE);
-			for (CpsEdge con : model.getEdgesOnCanvas()) {
+			for (CpsEdge con : upperNode.getNodeEdges()) {
 				if (con.getFlow() <= con.getCapacity()) {
 					g2.setStroke(new BasicStroke(Math.min((con.getFlow() / con.getCapacity() * 4), 4)));
 				} else {
@@ -783,7 +783,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 	 */
 	public CpsEdge mousePositionOnEdge(int x, int y) {
 		int lx, ly, hx, hy;
-		for (CpsEdge p : model.getEdgesOnCanvas()) {
+		for (CpsEdge p : upperNode.getNodeEdges()) {
 			Line2D l = new Line2D.Float(p.getA().getPosition().x, p.getA().getPosition().y, p.getB().getPosition().x,
 					p.getB().getPosition().y);
 			if (p.getA().getPosition().x > p.getB().getPosition().x) {