cashew-s-editor-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[CASHeW-s-editor-patches] rectify the wrong connection error in the diag


From: Xianfeng Liu
Subject: [CASHeW-s-editor-patches] rectify the wrong connection error in the diagram parser!
Date: Sun, 10 Apr 2005 18:22:53 +0100

Index: src/nongnu/cashews/eclipse/composer/model/DiagramParser.java
===================================================================
RCS file: 
/share/darwin/darwin4/cvs/java/src/nongnu/cashews/eclipse/composer/model/DiagramParser.java,v
retrieving revision 1.8
diff -u -r1.8 DiagramParser.java
--- src/nongnu/cashews/eclipse/composer/model/DiagramParser.java 2005/04/08 
02:07:17 1.8
+++ src/nongnu/cashews/eclipse/composer/model/DiagramParser.java 2005/04/10 
17:19:02
@@ -1,39 +1,39 @@
 /* DiagramParser.java -- Deserializer for diagrams.
- Copyright (C) 2005  The University of Sheffield.
+Copyright (C) 2005  The University of Sheffield.
 
- This file is part of the CASheW-s editor Eclipse plug-in.
+This file is part of the CASheW-s editor Eclipse plug-in.
 
- The CASheW-s editor Eclipse plug-in is free software; you may copy, modify,
- and redistribute it under the terms of the GNU General Public License
- version 2 (or, at your option, any later version), and/or the Eclipse
- Public License version 1.0.
-
- The CASheW-s editor is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with The CASheW-s editor; see the file COPYING.  If not, write to the
- Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA.
-
- The University of Sheffield makes available all content in this plug-in
- ("Content"). Unless otherwise indicated below, the Content is provided to
- you under the terms and conditions of the Eclipse Public License Version
- 1.0 ("EPL"). A copy of the EPL is available at
- http://www.eclipse.org/legal/epl-v10.html. For purposes of the EPL,
- "Program" will mean the Content.
-
- If you did not receive this Content directly from the University of Sheffield,
- the Content is being redistributed by another party ("Redistributor") and
- different terms and conditions may apply to your use of any object code in
- the Content. Check the Redistributor's license that was provided with the
- Content. If no such license exists, contact the Redistributor. Unless
- otherwise indicated below, the terms and conditions of the EPL still apply
- to any source code in the Content.
+The CASheW-s editor Eclipse plug-in is free software; you may copy, modify,
+and redistribute it under the terms of the GNU General Public License
+version 2 (or, at your option, any later version), and/or the Eclipse
+Public License version 1.0.
+
+The CASheW-s editor is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with The CASheW-s editor; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+The University of Sheffield makes available all content in this plug-in
+("Content"). Unless otherwise indicated below, the Content is provided to
+you under the terms and conditions of the Eclipse Public License Version
+1.0 ("EPL"). A copy of the EPL is available at
+http://www.eclipse.org/legal/epl-v10.html. For purposes of the EPL,
+"Program" will mean the Content.
+
+If you did not receive this Content directly from the University of Sheffield,
+the Content is being redistributed by another party ("Redistributor") and
+different terms and conditions may apply to your use of any object code in
+the Content. Check the Redistributor's license that was provided with the
+Content. If no such license exists, contact the Redistributor. Unless
+otherwise indicated below, the terms and conditions of the EPL still apply
+to any source code in the Content.
 
- */
+*/
 
 
 package nongnu.cashews.eclipse.composer.model;
@@ -48,134 +48,137 @@
 import org.xml.sax.helpers.DefaultHandler;
 
 /**
- * @author Ravish
- * @author Xianfeng Liu
- * 
- * 
- */
+* @author Ravish
+* @author Xianfeng Liu
+* 
+* 
+*/
 public class DiagramParser extends DefaultHandler
 {
-  private Diagram d;
+ private Diagram d;
 
-  private List<String> sourceList;
+ private List<String> sourceList;
 
-  private List<String> targetList;
+ private List<String> targetList;
 
-  // protected List<Node> nodes = new ArrayList<Node>();
-  public DiagramParser()
-  {
-    super();
-  }
-
-  public void startDocument()
-  {
-    d = new Diagram();
-    sourceList = new ArrayList<String>();
-    targetList = new ArrayList<String>();
-  }
-
-  public void endDocument()
-  {
-    if (d.nodes.size() <= 1)
-      {
-        return;
-      }
-    Iterator targetNames = targetList.iterator();
-
-    int diagramNodeCount = 0;
-    List diagramNodes = d.getNodes();
-    String targetNodeName;
-
-    while (targetNames.hasNext())
-      {
-        targetNodeName = (String) targetNames.next();
-
-        Node sourceNode = (Node) diagramNodes.get(diagramNodeCount);
-
-        Iterator j = d.getNodes().iterator();
-        Node targetNode;
-
-        while (j.hasNext())
-          {
-            targetNode = (Node) j.next();
-            if (targetNode.getName().equals(targetNodeName))
-              {
-                // if (sourceNode.outputs == null)
-
-                sourceNode.outputs = null;
-
-                sourceNode.outputs = new ArrayList<Connection>();
-
-                new Connection(sourceNode, targetNode);
-              }
-          }
-        diagramNodeCount++;
-      }
-    /*
-     * int max = 0; for (int k = 0; k < d.nodes.size(); k++) { Node cur = 
(Node)
-     * d.nodes.get(k); int tmp = Integer.parseInt(cur.getName().substring(8));
-     * if (cur.getName().startsWith("Untitled") && tmp > max) { max = tmp; } }
-     * NodeRegistrar.setMax(max);
-     */
-
-  }
-
-  public void startElement(String uri, String name, String qName,
-                           Attributes atts)
-  {
-    if (name.equals("WorkflowDiagram"))
-      {
-        return;
-      }
-    Node n;
-    Point p;
-    p = new Point();
-
-    if (name.equals("RectangleNode"))
-      {
-        p.setLocation(Integer.parseInt(atts.getValue(1)),
-                      Integer.parseInt(atts.getValue(2)));
-        RectangleNodeFactory rFactory = new RectangleNodeFactory(
-                                                                 
EllipseNode.class);
-        n = rFactory.getNewObject(atts.getValue(0));
-        n.setLocation(p);
-        n.outputs = null;
-        d.addNode(n);
-      }
-    else if (name.equals("EllipseNode"))
-      {
-        p.setLocation(Integer.parseInt(atts.getValue(1)),
-                      Integer.parseInt(atts.getValue(2)));
-        EllipseNodeFactory eFactory = new 
EllipseNodeFactory(EllipseNode.class);
-        n = eFactory.getNewObject(atts.getValue(0));
-        n.setLocation(p);
-        n.outputs = null;
-        d.addNode(n);
-      }
-    else if (name.equals("OutgoingEdge"))
-      {
-        List temp = d.getNodes();
-
-        Node s = (Node) temp.get(temp.size() - 1);
-        String source = s.getName();
-        String target = (String) atts.getValue(0);
-        sourceList.add(source);
-        System.out.println("Source node is: " + source);
-        System.out.println("Target node is: " + target);
-        targetList.add(target);
-        System.out.println("sourcr list are: " + sourceList);
-        System.out.println("target list are: " + targetList);
-
-      }
-  }
-
-  public void endElement(String uri, String name, String qName)
-  {
-
-  }
-
-  public Diagram getDiagram()
-  {
-    return d;
-  }
+ // protected List<Node> nodes = new ArrayList<Node>();
+ public DiagramParser()
+ {
+   super();
+ }
+
+ public void startDocument()
+ {
+   d = new Diagram();
+   sourceList = new ArrayList<String>();
+   targetList = new ArrayList<String>();
+ }
+
+ public void endDocument()
+ {
+   if (d.nodes.size() <= 1)
+     {
+       return;
+     }
+   Iterator targetNames = targetList.iterator();
+   Iterator sourceNames = sourceList.iterator();
+
+   int diagramNodeCount = 0;
+   List diagramNodes = d.getNodes();
+   String targetNodeName;
+   String sourceNodeName;
+
+   while (targetNames.hasNext())
+     {
+       targetNodeName = (String) targetNames.next();
+       sourceNodeName = (String) sourceNames.next();
+       Node sourceNode = (Node) diagramNodes.get(diagramNodeCount);
+       if (sourceNode.getName().equals(sourceNodeName)){
+       Iterator j = d.getNodes().iterator();
+       Node targetNode;
+
+       while (j.hasNext())
+         {
+           targetNode = (Node) j.next();
+           if (targetNode.getName().equals(targetNodeName))
+             {
+               // if (sourceNode.outputs == null)
+
+               sourceNode.outputs = null;
+
+               sourceNode.outputs = new ArrayList<Connection>();
+
+               new Connection(sourceNode, targetNode);
+             }
+         }
+       diagramNodeCount++;
+     }
+     }
+   /*
+    * int max = 0; for (int k = 0; k < d.nodes.size(); k++) { Node cur = (Node)
+    * d.nodes.get(k); int tmp = Integer.parseInt(cur.getName().substring(8));
+    * if (cur.getName().startsWith("Untitled") && tmp > max) { max = tmp; } }
+    * NodeRegistrar.setMax(max);
+    */
+
+ }
+
+ public void startElement(String uri, String name, String qName,
+                          Attributes atts)
+ {
+   if (name.equals("WorkflowDiagram"))
+     {
+       return;
+     }
+   Node n;
+   Point p;
+   p = new Point();
+
+   if (name.equals("RectangleNode"))
+     {
+       p.setLocation(Integer.parseInt(atts.getValue(1)),
+                     Integer.parseInt(atts.getValue(2)));
+       RectangleNodeFactory rFactory = new RectangleNodeFactory(
+                                                                
EllipseNode.class);
+       n = rFactory.getNewObject(atts.getValue(0));
+       n.setLocation(p);
+       n.outputs = null;
+       d.addNode(n);
+     }
+   else if (name.equals("EllipseNode"))
+     {
+       p.setLocation(Integer.parseInt(atts.getValue(1)),
+                     Integer.parseInt(atts.getValue(2)));
+       EllipseNodeFactory eFactory = new EllipseNodeFactory(EllipseNode.class);
+       n = eFactory.getNewObject(atts.getValue(0));
+       n.setLocation(p);
+       n.outputs = null;
+       d.addNode(n);
+     }
+   else if (name.equals("OutgoingEdge"))
+     {
+       List temp = d.getNodes();
+
+       Node s = (Node) temp.get(temp.size() - 1);
+       String source = s.getName();
+       String target = (String) atts.getValue(0);
+       sourceList.add(source);
+       System.out.println("Source node is: " + source);
+       System.out.println("Target node is: " + target);
+       targetList.add(target);
+       System.out.println("sourcr list are: " + sourceList);
+       System.out.println("target list are: " + targetList);
+
+     }
+ }
+
+ public void endElement(String uri, String name, String qName)
+ {
+
+ }
+
+ public Diagram getDiagram()
+ {
+   return d;
+ }
 }
Index: src/nongnu/cashews/eclipse/composer/model/EllipseNode.java
===================================================================
RCS file: 
/share/darwin/darwin4/cvs/java/src/nongnu/cashews/eclipse/composer/model/EllipseNode.java,v
retrieving revision 1.11
diff -u -r1.11 EllipseNode.java
--- src/nongnu/cashews/eclipse/composer/model/EllipseNode.java 2005/04/01 
21:19:10 1.11
+++ src/nongnu/cashews/eclipse/composer/model/EllipseNode.java 2005/04/10 
17:19:02
@@ -195,7 +195,7 @@
       {
           tempConnection = (Connection) i.next();
           tempNode = (Node) tempConnection.getTarget();
-          str.append("<OutgoingEdge destination=");
+          str.append("<OutgoingEdge Destination=");
           str.append("\"");
           str.append(tempNode.getName());
           str.append("\"");
Index: src/nongnu/cashews/eclipse/composer/model/NodeFactory.java
===================================================================
RCS file: 
/share/darwin/darwin4/cvs/java/src/nongnu/cashews/eclipse/composer/model/NodeFactory.java,v
retrieving revision 1.7
diff -u -r1.7 NodeFactory.java
--- src/nongnu/cashews/eclipse/composer/model/NodeFactory.java 2005/04/08 
02:07:17 1.7
+++ src/nongnu/cashews/eclipse/composer/model/NodeFactory.java 2005/04/10 
17:19:02
@@ -85,16 +85,20 @@
         autoId = serializedId + 1;
 
       }
+     System.out.println("Finish parsing " + name);
+   NodeRegistrar.registerNewNode(
+     name,
+     DiagramSingleton.getInstance().getDiagram());
     node = createNode(name);
-    System.out.println("Finish parsing " + name);
-    if (!NodeRegistrar.registerNewNode(
+   
+    /*if (!NodeRegistrar.registerNewNode(
                                        node.getName(),
                                        
DiagramSingleton.getInstance().getDiagram()))
       {
         throw new IllegalStateException("A node with one of the "
                                         + "deserialized names already "
                                         + "exists.");
-      }
+      }*/
     return node;
   }
 
Index: src/nongnu/cashews/eclipse/composer/model/RectangleNode.java
===================================================================
RCS file: 
/share/darwin/darwin4/cvs/java/src/nongnu/cashews/eclipse/composer/model/RectangleNode.java,v
retrieving revision 1.9
diff -u -r1.9 RectangleNode.java
--- src/nongnu/cashews/eclipse/composer/model/RectangleNode.java 2005/04/01 
21:19:10 1.9
+++ src/nongnu/cashews/eclipse/composer/model/RectangleNode.java 2005/04/10 
17:19:03
@@ -192,7 +192,7 @@
       {
         for (int i = 0; i < outputs.size(); i++)
           {
-            str.append("<OutgoingEdge destination=");
+            str.append("<OutgoingEdge Destination=");
             tempConnection = (Connection) outputs.get(i);
             tempNode = tempConnection.getTarget();
             str.append("\"");

Attachment: solveParserbugs.diff
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]