Author: koen.aers(a)jboss.com
Date: 2009-02-06 16:08:32 -0500 (Fri, 06 Feb 2009)
New Revision: 13535
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSerializer.java
Log:
serialization / deserialization of label location
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlDeserializer.java 2009-02-06
18:37:52 UTC (rev 13534)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlDeserializer.java 2009-02-06
21:08:32 UTC (rev 13535)
@@ -234,24 +234,50 @@
private void addGraphics(ConnectionWrapper wrapper, Element element) {
String graphics = element.getAttribute("g");
if (graphics != null) {
- StringTokenizer bendpoints = new StringTokenizer(graphics, ";");
- int index = 0;
- while (bendpoints.hasMoreTokens()) {
- StringTokenizer bendpoint = new StringTokenizer(bendpoints.nextToken(),
",");
- if (bendpoint.countTokens() != 2) {
- Logger.logInfo(
- "Wrong info in attribute 'g' while determining bendpoints.");
- } else {
- int x = convertStringToInt(bendpoint.nextToken());
- int y = convertStringToInt(bendpoint.nextToken());
- wrapper.addBendpoint(index++, new Point(x, y));
- }
+ int pos = graphics.lastIndexOf(':');
+ String labelInfo, bendpointInfo = null;
+ if (pos != -1) {
+ labelInfo = graphics.substring(pos + 1);
+ bendpointInfo = graphics.substring(0, pos);
+ } else {
+ labelInfo = graphics;
+ }
+ if (labelInfo != null) {
+ addLabelInfo(wrapper, labelInfo);
+ }
+ if (bendpointInfo != null) {
+ addBendpointInfo(wrapper, bendpointInfo);
+ }
+ }
+ }
+ private void addBendpointInfo(ConnectionWrapper wrapper, String bendpointInfo) {
+ StringTokenizer bendpoints = new StringTokenizer(bendpointInfo, ";");
+ int index = 0;
+ while (bendpoints.hasMoreTokens()) {
+ StringTokenizer bendpoint = new StringTokenizer(bendpoints.nextToken(),
",");
+ if (bendpoint.countTokens() != 2) {
+ Logger.logInfo(
+ "Wrong info in attribute 'g' while determining bendpoints.");
+ } else {
+ int x = convertStringToInt(bendpoint.nextToken());
+ int y = convertStringToInt(bendpoint.nextToken());
+ wrapper.addBendpoint(index++, new Point(x, y));
}
}
-
}
+ private void addLabelInfo(ConnectionWrapper wrapper, String labelInfo) {
+ StringTokenizer label = new StringTokenizer(labelInfo, ",");
+ if (label.countTokens() != 2) {
+ Logger.logInfo("Wrong info in attribute 'g' while determining label
location.");
+ } else {
+ int x = convertStringToInt(label.nextToken());
+ int y = convertStringToInt(label.nextToken());
+ wrapper.getLabel().setLocation(new Point(x, y));
+ }
+ }
+
private void addGraphics(NodeWrapper wrapper, Element element) {
String graphics = element.getAttribute("g");
Rectangle constraint = new Rectangle(0, 0, 80, 40);
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSerializer.java 2009-02-06
18:37:52 UTC (rev 13534)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSerializer.java 2009-02-06
21:08:32 UTC (rev 13535)
@@ -24,6 +24,7 @@
import org.jboss.tools.flow.common.wrapper.ConnectionWrapper;
import org.jboss.tools.flow.common.wrapper.ContainerWrapper;
import org.jboss.tools.flow.common.wrapper.FlowWrapper;
+import org.jboss.tools.flow.common.wrapper.LabelWrapper;
import org.jboss.tools.flow.common.wrapper.NodeWrapper;
import org.jboss.tools.flow.common.wrapper.Wrapper;
import org.jboss.tools.flow.jpdl4.Logger;
@@ -212,15 +213,31 @@
buffer.append(" to=\"" + value + "\"");
}
protected void appendGraphics(StringBuffer buffer, ConnectionWrapper wrapper) {
+ StringBuffer bendPointBuffer = new StringBuffer();
List<Point> bendPoints = wrapper.getBendpoints();
- if (bendPoints == null || bendPoints.size() == 0) return;
+ if (bendPoints != null && bendPoints.size() > 0) {
+ for (int i = 0; i < bendPoints.size(); i++) {
+ bendPointBuffer.append(bendPoints.get(i).x);
+ bendPointBuffer.append(",");
+ bendPointBuffer.append(bendPoints.get(i).y);
+ if (i < bendPoints.size() - 1) bendPointBuffer.append(";");
+ }
+ }
+ StringBuffer labelBuffer = new StringBuffer();
+ LabelWrapper labelWrapper = wrapper.getLabel();
+ if (labelWrapper != null) {
+ Point location = labelWrapper.getLocation();
+ if (location != null) {
+ labelBuffer.append(location.x);
+ labelBuffer.append(',');
+ labelBuffer.append(location.y);
+ }
+ }
+ if (bendPointBuffer.length() + labelBuffer.length() == 0) return;
buffer.append(" g=\"");
- for (int i = 0; i < bendPoints.size(); i++) {
- buffer.append(bendPoints.get(i).x);
- buffer.append(",");
- buffer.append(bendPoints.get(i).y);
- if (i < bendPoints.size() - 1) buffer.append(";");
- }
+ buffer.append(bendPointBuffer);
+ if (bendPointBuffer.length() > 0) buffer.append(':');
+ buffer.append(labelBuffer);
buffer.append("\"");
}
}
Show replies by date