Browse Source

Old load files fix.

Tom Troppmann 2 years ago
parent
commit
ed94dffe3b

+ 3 - 1
src/TypeAdapter/AbstractCpsObjectAdapter.java

@@ -37,7 +37,9 @@ public class AbstractCpsObjectAdapter
 			String packageName = "classes.";
 			return arg2.deserialize(element, Class.forName(packageName + type));
 		} catch (ClassNotFoundException cnfe) {
-			throw new JsonParseException("Unknown element type: " + type, cnfe);
+			//throw new JsonParseException("Unknown element type: " + type, cnfe);
+			System.err.println("Unknown Class with Type:" + type);
+			return null;
 		}
 
 	}

+ 4 - 0
src/ui/controller/CanvasController.java

@@ -8,6 +8,7 @@ import java.util.ListIterator;
 import classes.Edge;
 import classes.Node;
 import classes.GroupNode;
+import classes.Holon;
 import classes.AbstractCanvasObject;
 import classes.HolonObject;
 import classes.HolonSwitch;
@@ -48,6 +49,9 @@ public class CanvasController {
 	public void addObject(AbstractCanvasObject object, boolean replace) {
 		model.getCvsObjIdx().put(object.getId(), model.getObjectsOnCanvas().size());
 		model.getObjectsOnCanvas().add(object);
+		if(object instanceof HolonObject) {
+			model.getStateHolon().addHolonObject(((HolonObject) object));
+		}
 		/**
 		 * check if we should drag & drop replace
 		 */

+ 3 - 0
src/ui/controller/LoadController.java

@@ -225,6 +225,9 @@ public class LoadController {
      */
     private void loadCategoryObject(JsonElement jsonElement) {
         AbstractCanvasObject temp = model.getGson().fromJson(jsonElement.getAsJsonObject(), AbstractCanvasObject.class);
+        if(temp == null) {
+        	return;
+        }
         temp.setImage(checkOS(temp.getImage()));
         initObjects(temp);
         if (mpC.searchCatObj(mpC.searchCat(temp.getSav()), temp.getObjName()) != null)

+ 16 - 44
src/ui/view/Outliner.java → src/ui/view/outliner/Outliner.java

@@ -1,4 +1,4 @@
-package ui.view;
+package ui.view.outliner;
 
 import java.awt.BorderLayout;
 import java.awt.Color;
@@ -27,27 +27,34 @@ import ui.model.MinimumNetwork;
 import ui.model.Model;
 import ui.model.Passiv;
 import ui.model.Supplier;
+import utility.Event;
 import utility.ImageImport;
 
 
 
 
 
+//Combines High Level views on the Network
+
+//TODO seperate ListPanel and StatePanel in self-contained classes
+
 
 public class Outliner extends JFrame {
-	private static final long serialVersionUID = 1L;
 	JTabbedPane tabbedPane = new JTabbedPane();
 	JPanel listPanel = new JPanel(new BorderLayout());
 	JPanel statePanel = new JPanel(new BorderLayout());
+	Event outlinerUpdate = new Event();
+	
+	HolonView holonView;
 	public boolean isClosed = false;
 	ArrayList<MinimumNetwork> list;
-	Outliner(JFrame parentFrame, Model model, Control controller){ 
+	public Outliner(JFrame parentFrame, Model model, Control control){ 
 		setBounds(0, 0, 400, parentFrame.getHeight());
 		this.setIconImage(ImageImport.loadImage("/Images/Holeg.png", 30, 30));
 		this.setTitle("Outliner");
 		setLocationRelativeTo(parentFrame);
 		this.setVisible(true);
-		repaintWithDecoratedState(controller.getSimManager().getActualDecorState());
+		repaintWithDecoratedState(control.getSimManager().getActualDecorState());
 		this.getContentPane().add(tabbedPane);
 		this.addWindowListener(new java.awt.event.WindowAdapter() {
 		    @Override
@@ -57,10 +64,11 @@ public class Outliner extends JFrame {
 		});
 		tabbedPane.addTab("List", listPanel);
 		tabbedPane.addTab("State", statePanel);
+		tabbedPane.addTab("Holon", holonView = new HolonView(this, control));
 	}
 
 	public void repaintWithDecoratedState(DecoratedState decoratedState) {
-		//tabbedPane.removeAll();
+		outlinerUpdate.broadcast();
 		listPanel.removeAll();
 		statePanel.removeAll();
 		DefaultMutableTreeNode topListPanel = new DefaultMutableTreeNode();
@@ -78,10 +86,6 @@ public class Outliner extends JFrame {
 			switches.add(new DefaultMutableTreeNode(dSwitch.getModel().getName()));
 		}
 		
-		/*for(CpsNode node: decoratedState.getNodeList()) {
-			nodes.add(new DefaultMutableTreeNode(node.getName()));
-		}*/
-		
 		for(DecoratedNetwork dNet: decoratedState.getNetworkList()) {
 			DefaultMutableTreeNode network = new DefaultMutableTreeNode("Network");
 			if(!dNet.getConsumerList().isEmpty() || !dNet.getConsumerSelfSuppliedList().isEmpty()) {
@@ -119,47 +123,15 @@ public class Outliner extends JFrame {
 			cables.add(new DefaultMutableTreeNode(cable.getModel().toString()));
 		}
 		
+		listPanel.add(TreeUtils.makePanelFromNode(topListPanel));
+		statePanel.add(TreeUtils.makePanelFromNode(topStatePanel));
 		
-		JTree listTree = new JTree(topListPanel);
-		signIconsForTree(listTree);
-		listTree.setRootVisible(false);
-		for (int i = 0; i < listTree.getRowCount(); i++) {
-			listTree.expandRow(i);
-		}
-		JScrollPane listScroller = new JScrollPane(listTree);
-		listPanel.add(listScroller);
-		
-		JTree stateTree = new JTree(topStatePanel);
-		signIconsForTree(stateTree);
-		stateTree.setRootVisible(false);
-		for (int i = 0; i < stateTree.getRowCount(); i++) {
-			stateTree.expandRow(i);
-		}
-		statePanel.add(new JScrollPane(stateTree));
-		
-		listPanel.revalidate();;
+		listPanel.revalidate();
 		statePanel.revalidate();
 		listPanel.repaint();
 	}
 
 
-
-
-
-
-	private void signIconsForTree(JTree t) {
-		ImageIcon ClosedIcon = new ImageIcon(ImageImport.loadImage("/Button_Images/Close.png",9,9));
-		ImageIcon OpenIcon = new ImageIcon(ImageImport.loadImage("/Button_Images/Open.png",9,9));
-		ImageIcon LeafIcon = new ImageIcon(ImageImport.loadImage("/Button_Images/Leaf.png",9,9));
-		if (ClosedIcon != null && OpenIcon != null && LeafIcon!= null) {
-		    DefaultTreeCellRenderer renderer = 
-		        new DefaultTreeCellRenderer();
-		    renderer.setClosedIcon(ClosedIcon);
-		    renderer.setOpenIcon(OpenIcon);
-		    renderer.setLeafIcon(LeafIcon);
-		    t.setCellRenderer(renderer);
-		}
-	}
 	
 	class MyTreeModelListener implements TreeModelListener {