(no commit message)
authormaroni <maroni@192.168.1.103>
Sun, 4 Dec 2011 19:02:14 +0000 (17:02 -0200)
committermaroni <maroni@192.168.1.103>
Sun, 4 Dec 2011 19:02:14 +0000 (17:02 -0200)
.gitignore
src/java/org/ufcspa/simdecs/diagram/DiagramManager.java
src/java/org/ufcspa/simdecs/diagram/elements/Empty.java [new file with mode: 0644]
src/java/org/ufcspa/simdecs/diagram/elements/Node.java
src/java/org/ufcspa/simdecs/diagram/elements/SwimLane.java
src/java/org/ufcspa/simdecs/diagram/mb/EditNode.java
web/editDiagram.xhtml

index 3197301..abc3c57 100644 (file)
@@ -1,2 +1,3 @@
 /build/
-/nbproject/private/
\ No newline at end of file
+/nbproject/private/
+/dist/
\ No newline at end of file
index ff3eb27..592956f 100755 (executable)
@@ -4,10 +4,9 @@
  */
 package org.ufcspa.simdecs.diagram;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.TreeMap;
+import java.util.LinkedList;
+import org.ufcspa.simdecs.diagram.elements.Empty;
+import org.ufcspa.simdecs.diagram.elements.Node;
 import org.ufcspa.simdecs.diagram.elements.SwimLane;
 
 /**
@@ -17,19 +16,25 @@ import org.ufcspa.simdecs.diagram.elements.SwimLane;
 public class DiagramManager {
     
     private String diagramName;
-    private Map<String, SwimLane> swimLanes;
-    
+    private LinkedList<SwimLane> swimLanes;
+
     public DiagramManager(String diagramName) {
         this.diagramName = diagramName;
-        swimLanes = new TreeMap<String, SwimLane>();
+        swimLanes = new LinkedList<SwimLane>();
     }
 
     public void addSwimLane(SwimLane swimLane) {
-        swimLanes.put(swimLane.getId(), swimLane);
+        if (!swimLanes.isEmpty()) {
+            while(swimLane.getNodes().size() < swimLanes.getFirst().getNodes().size()) {
+                swimLane.addNode(new Empty(swimLane.getMessageBundle(), swimLane.getLocale()));
+            }
+        }
+        
+        swimLanes.add(swimLane);
     }
     
     public final void clear() {
-        swimLanes = new HashMap<String, SwimLane>();
+        swimLanes = new LinkedList<SwimLane>();
     }
     
     public String getDiagramName() {
@@ -40,15 +45,37 @@ public class DiagramManager {
         this.diagramName = diagramName;
     }
 
-    public ArrayList<SwimLane> getSwimLanes() {
-        return new ArrayList(swimLanes.values());
+    public LinkedList<SwimLane> getSwimLanes() {
+        return swimLanes;
     }
     
     public SwimLane getSwimLane(String id) {
-        return swimLanes.get(id);
+        for(SwimLane swimLane : swimLanes) {
+            if (swimLane.getId().equals(id))
+                return swimLane;
+        }
+        
+        return null;
     }
     
     public void removeSwimLane(String id) {
-        swimLanes.remove(id);
+        for(SwimLane swimLane : swimLanes) {
+            if (swimLane.getId().equals(id))
+                swimLanes.remove(swimLane);
+        }
     }
+    
+    public void addNode(SwimLane swimLane, Node node) {
+        swimLane.addNode(node);
+        for(SwimLane sl : swimLanes) {
+            if (!sl.equals(swimLane)) {
+                if (sl.getNodes().size() < swimLane.getNodes().size()) {
+                    while(sl.getNodes().size() < swimLane.getNodes().size()) {
+                        sl.addNode(new Empty(swimLane.getMessageBundle(), swimLane.getLocale()));
+                    }
+                }
+            }
+        }
+    }
+    
 }
diff --git a/src/java/org/ufcspa/simdecs/diagram/elements/Empty.java b/src/java/org/ufcspa/simdecs/diagram/elements/Empty.java
new file mode 100644 (file)
index 0000000..d3303e2
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.diagram.elements;
+
+import java.util.List;
+import java.util.Locale;
+
+/**
+ *
+ * @author maroni
+ */
+public class Empty extends Node {
+
+    public Empty(String messageBundle, Locale locale) {
+        super(messageBundle, locale);
+    }    
+    
+    @Override
+    public List<Node> getGrantedPrevious() {
+        return null;
+    }
+
+    @Override
+    public List<SwimLane> getGrantedSwimLanes() {
+        return null;
+    }
+    
+    @Override
+    public String getImage() {
+        return null;
+    }
+
+    @Override
+    public String getImageWithLink() {
+        return null;
+    }
+
+    @Override
+    public String getName() {
+        return "";
+    }
+
+    @Override
+    public boolean isFirst() {
+        return false;
+    }
+    
+    @Override
+    public boolean isInternal() {
+        return true;
+    }
+
+    
+}
index 5b410e8..8c6798b 100755 (executable)
@@ -2,16 +2,20 @@ package org.ufcspa.simdecs.diagram.elements;
 \r
 import java.util.List;\r
 import java.util.Locale;\r
-import javax.print.attribute.Size2DSyntax;\r
 \r
 public abstract class Node extends Element {\r
 \r
     private String currentImage;\r
+    private int position;\r
     \r
     public Node(String messageBundle, Locale locale) {\r
         super(messageBundle, locale);\r
     }\r
 \r
+    public boolean isInternal() {\r
+        return false;\r
+    }\r
+    \r
     public abstract String getImage();\r
     public abstract String getImageWithLink();\r
     public abstract List<Node> getGrantedPrevious();\r
@@ -44,5 +48,13 @@ public abstract class Node extends Element {
     public void setCurrentImage(String currentImage) {\r
         this.currentImage = currentImage;\r
     }\r
+\r
+    public int getPosition() {\r
+        return position;\r
+    }\r
+\r
+    public void setPosition(int position) {\r
+        this.position = position;\r
+    }\r
     \r
 }\r
index af6b347..c6097c7 100755 (executable)
@@ -85,8 +85,10 @@ public abstract class SwimLane extends Element {
     }\r
     \r
     public void addNode(Node node) {\r
-        if (!nodes.contains(node))\r
+        if (!nodes.contains(node)) {\r
+            node.setPosition(nodes.size()+1);\r
             nodes.addLast(node);\r
+        }\r
         \r
         updateImages();\r
     }\r
index 505cd9e..ce68b79 100644 (file)
@@ -20,6 +20,7 @@ import org.primefaces.component.menu.Menu;
 import org.primefaces.component.menuitem.MenuItem;
 import org.primefaces.model.DefaultMenuModel;
 import org.primefaces.model.MenuModel;
+import org.ufcspa.simdecs.diagram.DiagramManager;
 import org.ufcspa.simdecs.diagram.elements.Node;
 import org.ufcspa.simdecs.diagram.elements.NodeElement;
 import org.ufcspa.simdecs.diagram.elements.NodeTextProperty;
@@ -137,7 +138,7 @@ public class EditNode extends DefaultManagedBean {
             acessor.invoke(node, property.getValue());
         }
         
-        currentSwimLane.addNode(node);
+        getEditDiagram().getDiagramManager().addNode(currentSwimLane, node);
         
     }
 
index 9a95440..2f5c456 100755 (executable)
@@ -53,8 +53,8 @@
                             </td>
                             <ui:repeat value="#{swimLane.nodes}" var="node">
                                 <td width="150">
-                                    <p:commandLink actionListener="#{editBeginNode.prepareWindowEditBeginNode}" oncomplete="dialogBeginNode.show();" update="fEditBeginNode">
-                                        <h:graphicImage id="node#{node.id}" value="#{node.currentImage}" width="150"/>
+                                    <p:commandLink rendered="#{!node.isInternal()}" actionListener="#{editBeginNode.prepareWindowEditBeginNode}" oncomplete="dialogBeginNode.show();" update="fEditBeginNode">
+                                        <h:graphicImage rendered="#{!node.isInternal()}" id="node#{node.id}" value="#{node.currentImage}" width="150"/>
                                         <f:param name="pActorID" value="#{swimLane.id}" />
                                         <f:param name="pNodeID" value="#{node.id}" />
                                     </p:commandLink>