[Top][All Lists]
[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("\"");
solveParserbugs.diff
Description: Binary data
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [CASHeW-s-editor-patches] rectify the wrong connection error in the diagram parser!,
Xianfeng Liu <=