ソースを参照

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

jess 8 年 前
コミット
c7140e70be

+ 1 - 1
src/ui/controller/CanvasController.java

@@ -102,7 +102,7 @@ public class CanvasController {
 		mpC.decIdx(obj.getId(), model.getCvsObjIdx());
 		model.getCvsObjIdx().remove(obj.getId());
 		model.getObjectsOnCanvas().remove(obj);
-
+		notifyObjListeners();
 	}
 
 	/**

+ 2 - 0
src/ui/controller/Control.java

@@ -343,6 +343,7 @@ public class Control {
 	 */
 	public void addObjectCanvas(AbstractCpsObject object) {
 		canvasController.addNewObject(object);
+		simulationManager.calculateStateForTimeStep(model.getCurIteration());
 		if (!(object instanceof CpsNode)) {
 			try {
 				autoSave();
@@ -372,6 +373,7 @@ public class Control {
 	 */
 	public void delCanvasObject(AbstractCpsObject obj, boolean save) {
 		canvasController.deleteObjectOnCanvas(obj);
+		calculateStateForCurrentTimeStep();
 		if (obj instanceof CpsUpperNode)
 			canvasController.bfsNodeCleaner((CpsUpperNode) obj);
 		if (save)

+ 2 - 2
src/ui/view/FlexibleData.java

@@ -27,7 +27,7 @@ public class FlexibleData extends JPanel {
 		add(name_lbl);
 		
 		JLabel lblFlProd = new JLabel("Flex. Prod.:");
-		lblFlProd.setForeground(new Color(0, 128, 0));
+		lblFlProd.setForeground(new Color(0, 204, 51));
 		lblFlProd.setBounds(31, 46, 64, 27);
 		add(lblFlProd);
 		
@@ -46,7 +46,7 @@ public class FlexibleData extends JPanel {
 		prodVal.setBounds(94, 46, 85, 24);
 		prodVal.setBorder(new EmptyBorder(0, 0, 0, 0));
 		prodVal.setStringPainted(true);
-		prodVal.setForeground(new Color(0, 128, 0));
+		prodVal.setForeground(new Color(0, 204, 51));
 		add(prodVal);
 		
 		consVal = new JProgressBar();

+ 19 - 4
src/ui/view/FlexiblePane.java

@@ -6,16 +6,19 @@ import java.awt.Font;
 import java.awt.event.ComponentAdapter;
 import java.awt.event.ComponentEvent;
 import java.util.ArrayList;
+import java.util.LinkedList;
 
 import javax.swing.BoxLayout;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 
+import classes.AbstractCpsObject;
 import classes.HolonObject;
 import classes.SubNet;
+import interfaces.ObjectListener;
 import ui.controller.Control;
 
-public class FlexiblePane extends JScrollPane {
+public class FlexiblePane extends JScrollPane implements ObjectListener {
 	private JPanel flexPanel;
 	private Control controller;
 	
@@ -33,6 +36,7 @@ public class FlexiblePane extends JScrollPane {
 	}
 	
 	public void recalculate(){
+		LinkedList<Color> netColors = controller.getModel().getSubNetColors();
 		flexPanel.removeAll();
 		ArrayList<Float> maxVals = calcMax(controller.getSimManager().getSubNets());
 		float gridProd = maxVals.get(0);
@@ -41,14 +45,19 @@ public class FlexiblePane extends JScrollPane {
 		maingrid.getColorPanel().setVisible(false);
 		maingrid.getNamelbl().setFont(new Font("Tahoma", Font.BOLD, 11));
 		flexPanel.add(maingrid);
-		int counter = 1;
-		for(SubNet sn: controller.getSimManager().getSubNets()){
+		int counter = 0;
+		int colorCounter = 0;
+		ArrayList<SubNet> subnets = controller.getSimManager().getSubNets(); 
+		for(SubNet sn: subnets){
+			if(netColors.size() < subnets.size()){
+				netColors.add(new Color((int)(Math.random()*255), (int)(Math.random()*255), (int)(Math.random()*255)));
+			}
 			JPanel objects = new JPanel();
 			objects.setLayout(new BoxLayout(objects, BoxLayout.Y_AXIS));
 			int index = flexPanel.getComponentCount();
 			float subProd = 0;
 			float subCons = 0;
-			Color subColor = sn.getObjects().get(0).getBorderColor();
+			Color subColor = netColors.get(colorCounter);
 			for(HolonObject hl: sn.getObjects()){
 				subProd += hl.getFlexProd();
 				subCons += hl.getFlexCons();
@@ -65,6 +74,7 @@ public class FlexiblePane extends JScrollPane {
 			wholeSubnet.setListener(this);
 			flexPanel.add(wholeSubnet, index);
 			counter++;
+			colorCounter++;
 		}
 		flexPanel.revalidate();
 		flexPanel.repaint();
@@ -96,4 +106,9 @@ public class FlexiblePane extends JScrollPane {
 		}
 	}
 
+	@Override
+	public void onChange(ArrayList<AbstractCpsObject> objects) {
+		recalculate();
+	}
+
 }

+ 1 - 0
src/ui/view/GUI.java

@@ -1906,6 +1906,7 @@ public class GUI<E> implements CategoryListener {
 		tabbedPane.addTab("Holon", holonCanvas);
 		flexPane = new FlexiblePane(controller);
 		controller.setFlexiblePane(flexPane);
+		controller.getModel().getObjectListeners().add(flexPane);
 		tabbedPane.addTab("Flexibility", flexPane);
 
 		splitPaneCanvasConsole.setRightComponent(console);

+ 6 - 5
src/ui/view/TimePanel.java

@@ -11,18 +11,14 @@ import java.awt.event.KeyEvent;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
-import java.io.IOException;
-
 import javax.swing.AbstractAction;
 import javax.swing.Box;
 import javax.swing.ImageIcon;
 import javax.swing.JButton;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
-import javax.swing.JSeparator;
 import javax.swing.JSlider;
 import javax.swing.KeyStroke;
-import javax.swing.SwingConstants;
 import javax.swing.Timer;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
@@ -44,6 +40,11 @@ public class TimePanel extends JPanel {
 	private Control controller;
 
 	JSlider timeSlider = new JSlider() {
+		/**
+		 * 
+		 */
+		private static final long serialVersionUID = 1L;
+
 		{
 			// Make the slider jump to mouse position on left click
 			MouseListener[] listeners = getMouseListeners();
@@ -228,7 +229,7 @@ public class TimePanel extends JPanel {
 		timeBtnPanel.add(Box.createRigidArea(new Dimension(10,0)));
 		timeBtnPanel.add(timeResetBtn);
 		timeBtnPanel.add(Box.createRigidArea(new Dimension(10,0)));
-		timeBtnPanel.add(timeForwardBtn);		
+		timeBtnPanel.add(timeForwardBtn);	
 
 		// Speed Panel
 		speedPanel.add(simSpeedLabel);