瀏覽代碼

7.0.0 release

David Benson 8 年之前
父節點
當前提交
af7bdab90a

+ 6 - 0
ChangeLog

@@ -1,3 +1,9 @@
+03-AUG-2017: 7.0.0
+
+- Improvements to Gliffy import
+- Improvements to Lucidchart import 
+- Sent semantic versioning on holiday
+
 02-AUG-2017: 6.9.9
 
 - Fixes paste from Lucidchart

+ 1 - 1
VERSION

@@ -1 +1 @@
-6.9.9
+7.0.0

+ 14 - 9
src/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java

@@ -345,17 +345,18 @@ public class GliffyDiagramConverter
 		GliffyObject textObject = null;
 		String link = null;
 
-		Graphic graphic = null;
+		Graphic graphic = gliffyObject.getGraphic();
+		String mxShapeName = StencilTranslator.translate(gliffyObject.uid, graphic != null && graphic.getShape() != null ? graphic.getShape().tid : null);
 
 		if (gliffyObject.isGroup())
 		{
-			style.append("group;");
+			if (graphic == null || mxShapeName == null)
+				style.append("group;");
+			
 			cell.setVertex(true);
 		}
 		else
 		{
-			// groups don't have graphic
-			graphic = gliffyObject.getGraphic();
 			textObject = gliffyObject.getTextObject();
 		}
 
@@ -368,8 +369,12 @@ public class GliffyDiagramConverter
 				GliffyShape shape = graphic.Shape;
 				
 				cell.setVertex(true);
-				style.append("shape=" + StencilTranslator.translate(gliffyObject.uid)).append(";");
-				style.append("shadow=" + (shape.dropShadow ? 1 : 0)).append(";");
+				
+				if (mxShapeName != null)
+					style.append("shape=").append(mxShapeName).append(";");
+				
+				if(style.lastIndexOf("shadow=") == -1)
+					style.append("shadow=" + (shape.dropShadow ? 1 : 0)).append(";");
 				
 				if(style.lastIndexOf("strokeWidth") == -1)
 				{
@@ -463,7 +468,7 @@ public class GliffyDiagramConverter
 			{
 				GliffyImage image = graphic.getImage();
 				cell.setVertex(true);
-				style.append("shape=" + StencilTranslator.translate(gliffyObject.uid)).append(";");
+				style.append("shape=" + StencilTranslator.translate(gliffyObject.uid, null)).append(";");
 				style.append("image=" + image.getUrl()).append(";");
 			}
 			else if (gliffyObject.isSvg())
@@ -480,7 +485,7 @@ public class GliffyDiagramConverter
 		else if (gliffyObject.isSwimlane())
 		{
 			cell.setVertex(true);
-			style.append(StencilTranslator.translate(gliffyObject.uid)).append(";");
+			style.append(StencilTranslator.translate(gliffyObject.uid, null)).append(";");
 
 			GliffyObject header = gliffyObject.children.get(0);// first child is the header of the swimlane
 			
@@ -535,7 +540,7 @@ public class GliffyDiagramConverter
 			
 			GliffyMindmap mindmap = rectangle.graphic.Mindmap;
 			
-			style.append("shape=" + StencilTranslator.translate(gliffyObject.uid)).append(";");
+			style.append("shape=" + StencilTranslator.translate(gliffyObject.uid, null)).append(";");
 			style.append("shadow=" + (mindmap.dropShadow ? 1 : 0)).append(";");
 			style.append("strokeWidth=" + mindmap.strokeWidth).append(";");
 			style.append("fillColor=" + mindmap.fillColor).append(";");

+ 6 - 1
src/com/mxgraph/io/gliffy/importer/StencilTranslator.java

@@ -27,10 +27,15 @@ public class StencilTranslator
 		}
 	}
 
-	public static String translate(String gliffyShapeKey)
+	public static String translate(String gliffyShapeKey, String tid)
 	{
 		String shape = translationTable.get(gliffyShapeKey);
+		
+		if (shape == null && tid != null)
+			shape = translationTable.get(tid);
+		
 		logger.info(gliffyShapeKey + " -> " + shape);
+		
 		return shape;
 	}
 }

+ 51 - 35
src/com/mxgraph/io/gliffy/importer/gliffyTranslation.properties

@@ -103,16 +103,16 @@ com.gliffy.shape.swimlanes.swimlanes_v1.default.horizontal_four_lane_pool=swimla
 # UML v2
 #
 # UML V2 CLASS
-com.gliffy.shape.uml.uml_v2.class.object=verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
-com.gliffy.shape.uml.uml_v2.class.data_type=verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
-com.gliffy.shape.uml.uml_v2.class.enumeration=verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
-com.gliffy.shape.uml.uml_v2.class.interface=verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
-com.gliffy.shape.uml.uml_v2.class.class2=verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
-com.gliffy.shape.uml.uml_v2.class.class=verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
-com.gliffy.shape.uml.uml_v2.class.package=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left
+com.gliffy.shape.uml.uml_v2.class.object=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
+com.gliffy.shape.uml.uml_v2.class.data_type=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
+com.gliffy.shape.uml.uml_v2.class.enumeration=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
+com.gliffy.shape.uml.uml_v2.class.interface=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
+com.gliffy.shape.uml.uml_v2.class.class2=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
+com.gliffy.shape.uml.uml_v2.class.class=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
+com.gliffy.shape.uml.uml_v2.class.package=rect;strokeColor=none;shadow=0;fillColor=none
 com.gliffy.shape.uml.uml_v2.class.simple_class=rect
 com.gliffy.shape.uml.uml_v2.class.primitive=rect
-com.gliffy.shape.uml.uml_v2.class.stereotype=verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
+com.gliffy.shape.uml.uml_v2.class.stereotype=rect
 com.gliffy.shape.uml.uml_v2.class.generalization=endArrow=block;endFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=top;endSize=12
 com.gliffy.shape.uml.uml_v2.class.implements=endArrow=block;endFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=top;dashed=1;endSize=12
 com.gliffy.shape.uml.uml_v2.class.association=endArrow=none;edgeStyle=orthogonalEdgeStyle
@@ -130,10 +130,10 @@ com.gliffy.shape.uml.uml_v2.class.note=note;size=10
 com.gliffy.shape.uml.uml_v2.class.anchor_line=endArrow=none;endSize=12;dashed=1
 # UML v1
 com.gliffy.shape.uml.uml_v1.default.package=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left
-com.gliffy.shape.uml.uml_v1.default.class=verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
+com.gliffy.shape.uml.uml_v1.default.class=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
 com.gliffy.shape.uml.uml_v1.default.simple_class=rect
 com.gliffy.shape.uml.uml_v1.default.note=note;size=10
-com.gliffy.shape.uml.uml_v1.default.object=verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
+com.gliffy.shape.uml.uml_v1.default.object=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
 com.gliffy.shape.uml.uml_v1.default.interface=ellipse
 com.gliffy.shape.uml.uml_v1.default.node=cube;size=10;direction=south
 com.gliffy.shape.uml.uml_v1.default.component=component;align=left;spacingLeft=36
@@ -151,19 +151,19 @@ com.gliffy.shape.uml.uml_v1.default.self_message=curved=1
 com.gliffy.shape.uml.uml_v1.default.actor=umlActor;verticalLabelPosition=bottom;verticalAlign=bottom
 com.gliffy.shape.uml.uml_v1.default.use_case=ellipse
 # UML v2 SEQUENCE
-com.gliffy.shape.uml.uml_v2.sequence.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill
-com.gliffy.shape.uml.uml_v2.sequence.interaction_use=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill
-com.gliffy.shape.uml.uml_v2.sequence.opt_combined_fragment=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill
-com.gliffy.shape.uml.uml_v2.sequence.loop_combined_fragment=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill
-com.gliffy.shape.uml.uml_v2.sequence.alt_combined_fragment=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill
+com.gliffy.shape.uml.uml_v2.sequence.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill;labelX=26
+com.gliffy.shape.uml.uml_v2.sequence.interaction_use=stencil(rVNbDsIgEDwN/wjxAMbHPWi7taQIDWCtt5dmsVI0aqw/hBkmwyy7EL51jeiAMNoQviOMrSgNa8CXDAvXQemR7IWVolCAJ85b08JFVj56SN2AlX485XtCN4RvC1G2R2vOuiLsMLG1sRDZO9WJ0SWCk+nHaAPaxiDXFD28lNSJli8Qr9hbdZaDrd+qF4jz0KUyDlIi7GfPVUulsBmp6k8vOg3CT+o7/q7yZ/XH2p/r9jB4nE40tVDjJcOszVnXqVDyqJEqQXuwSPcJf5JVFYd/FujFOAcWPxjf3wA=);xSize=90;align=left;spacingLeft=10;overflow=fill
+com.gliffy.shape.uml.uml_v2.sequence.opt_combined_fragment=stencil(rVPREoIgEPwa3gmmD2jM/gP1TEYCB0nt78M5MtSmmuyFYZedZY87CE/aSjRAGK0IPxLGdpT61eN+gUXbQO6Q7ISVIlOAJ62zpoZeFi54SF2BlW485SmhB8KTTOT12ZqrLgg7TWxpLAT2QTVidAngYrox2oC2IcgtRk8vJXWk5RvEO/ZWvcjB9m/VG8TL0LkyLcSE38+eq5RKYTNi1Z9edBqEn9QP/F3la/XH2td1OxgcTieamsbhJcOszYuuU6HkWSOVg3Zgke4i/iKLIgz/LNCLcfYsfjCe3gE=);xSize=90;align=left;spacingLeft=10;overflow=fill
+com.gliffy.shape.uml.uml_v2.sequence.loop_combined_fragment=stencil(rVNbDoMgEDwN/xTSAzStvQeFVYkUDFJtb1/NokX7jOkPYYbJMLsshO+bUtRAGC0JPxDGNpT2a4+7BRZNDTIg2QqvxckAnjTBuwo6rUL00LYEr8NwyjNCd4TvT0JWhXcXqwg7TmzuPER2pGoxuERwdu0Q7Yq2McgtRQ8vo22i5dv14g37qGZzdYTv1HS9eBlaGtdASvT7WbtybQw+Rqr6U0enQVilHvFvlT+rv9b+XHeAa8DpRFPjXI23jBlfPjsVRhcWKQk2gEe6TfizVipO/yzRi3nuWfxhPLsD);xSize=90;align=left;spacingLeft=10;overflow=fill
+com.gliffy.shape.uml.uml_v2.sequence.alt_combined_fragment=stencil(rVNbDsIgEDwN/wjxAMbHPWi7WlKEBrCtt5dmsVI0aqw/hBkmwyy7EL51tWiBMFoTviOMrSgNa8B9hoVrofRIdsJKUSjAE+etaaCXlY8eUtdgpR9P+Z7QDeHbQpTNyZqLrgg7TOzRWIjsnWrF6BLB2XRjtAFtY5Brih5eSupEyxeIV+ytOsvB1m/VC8R56FIZBykR9rPnOkqlsBmp6k8vOg3CT+o7/q7yZ/XH2p/r9jB4nE40FcrjJcOszVnXqVDypJEqQXuwSHcJf5ZVFYd/FujFOAcWPxjf3wA=);xSize=90;align=left;spacingLeft=10;overflow=fill
 com.gliffy.shape.basic.basic_v1.default.line=edgeStyle=none;endArrow=none
 #composite
-com.gliffy.shape.uml.uml_v2.sequence.entity_lifeline=umlEntity
+com.gliffy.shape.uml.uml_v2.sequence.entity_lifeline=rect;fillColor=none;strokeColor=none
 #composite
-com.gliffy.shape.uml.uml_v2.sequence.control_lifeline=umlControl
+com.gliffy.shape.uml.uml_v2.sequence.control_lifeline=rect;fillColor=none;strokeColor=none
 #composite
-com.gliffy.shape.uml.uml_v2.sequence.boundary_lifeline=umlBoundary
-com.gliffy.shape.uml.uml_v2.sequence.lifeline=umlLifeline;perimeter=lifelinePerimeter
+com.gliffy.shape.uml.uml_v2.sequence.boundary_lifeline=rect;fillColor=none;strokeColor=none
+com.gliffy.shape.uml.uml_v2.sequence.lifeline=rect;fillColor=none;strokeColor=none
 com.gliffy.shape.uml.uml_v2.sequence.activation=rect
 com.gliffy.shape.uml.uml_v2.sequence.destruction=mxgraph.sysml.x
 com.gliffy.shape.uml.uml_v2.sequence.init_message=endArrow=open;endSize=12;startArrow=none;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;dashed=1
@@ -173,7 +173,7 @@ com.gliffy.shape.uml.uml_v2.sequence.async_message=endArrow=open;endSize=12;star
 com.gliffy.shape.uml.uml_v2.sequence.return_message=endArrow=none;startSize=12;startArrow=open;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;dashed=1
 com.gliffy.shape.uml.uml_v2.sequence.self_message=curved=1
 com.gliffy.shape.uml.uml_v2.sequence.actor=umlActor;verticalLabelPosition=bottom;verticalAlign=top
-#com.gliffy.shape.uml.uml_v2.sequence.concurrent=
+com.gliffy.shape.uml.uml_v2.sequence.concurrent=stencil(nZFNDsIgEIVPwx6ZjS4NtveYtkRIKxDAVm8vP5qA3RgTNrw330zmDQHuJVpBGEVvxRgIXAhjKzqFwxJlFh0fnJnFpqYgi620FE6F5EJH6JkAH3Ccr87c9fSW6Ck94BYTVUlZvZk1zXyUfrTMeda/fg8tSlfQgbbYv9zxR66lPl36r3WjUm0c083ZNXW5aJdXVsstoHsB);dashed=1
 com.gliffy.shape.uml.uml_v2.sequence.continuation=rect;rounded=1
 com.gliffy.shape.uml.uml_v2.sequence.gate=rect
 com.gliffy.shape.uml.uml_v2.sequence.constraint=edgeStyle=none;endArrow=none;dashed=1
@@ -195,19 +195,19 @@ com.gliffy.shape.uml.uml_v2.activity.jump_node=ellipse
 com.gliffy.shape.uml.uml_v2.activity.control_flow=edgeStyle=none;endArrow=open;endSize=12
 com.gliffy.shape.uml.uml_v2.activity.object_flow=edgeStyle=none;endArrow=open;dashed=1;endSize=12
 #com.gliffy.shape.uml.uml_v2.activity.exception_flow=
-com.gliffy.shape.uml.uml_v2.activity.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill
+com.gliffy.shape.uml.uml_v2.activity.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill;labelX=32
 com.gliffy.shape.uml.uml_v2.activity.object_node=rect
-com.gliffy.shape.uml.uml_v2.activity.structured_node=rounded=1;dashed=1
-com.gliffy.shape.uml.uml_v2.activity.region=rounded=1;dashed=1
+com.gliffy.shape.uml.uml_v2.activity.structured_node=rect;rounded=1;dashed=1
+com.gliffy.shape.uml.uml_v2.activity.region=rect;rounded=1;dashed=1
 com.gliffy.shape.uml.uml_v2.activity.note=note;size=10
 com.gliffy.shape.uml.uml_v2.activity.anchor_line=edgeStyle=none;endArrow=none;dashed=1
 # UML v2 STATE MACHINE 
-com.gliffy.shape.uml.uml_v2.state_machine.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill
-com.gliffy.shape.uml.uml_v2.state_machine.orthoganal_state=swimlane;rounded=1;startSize=30;arcSize=10
-com.gliffy.shape.uml.uml_v2.state_machine.composite_state=swimlane;rounded=1;startSize=30;arcSize=10
+com.gliffy.shape.uml.uml_v2.state_machine.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill;labelX=32
+com.gliffy.shape.uml.uml_v2.state_machine.orthoganal_state=rect;rounded=1;startSize=30;arcSize=10
+com.gliffy.shape.uml.uml_v2.state_machine.composite_state=rect;rounded=1;startSize=30;arcSize=10
 com.gliffy.shape.uml.uml_v2.state_machine.state=rect;rounded=1
 # temporary
-com.gliffy.shape.uml.uml_v2.state_machine.submachine_state=rect;rounded=1
+com.gliffy.shape.uml.uml_v2.state_machine.submachine_state=ext;symbol0=ellipse;symbol0Width=10;symbol0Height=10;symbol0Align=right;symbol0VerticalAlign=bottom;symbol0Spacing=5;symbol0VSpacing=5;symbol1=ellipse;symbol1Width=10;symbol1Height=10;symbol1Align=right;symbol1VerticalAlign=bottom;symbol1Spacing=25;symbol1VSpacing=5;symbol2=line;symbol2Width=10;symbol2Height=10;symbol2Align=right;symbol2VerticalAlign=bottom;symbol2Spacing=15;symbol2VSpacing=5;rounded=1;arcSize=10
 com.gliffy.shape.uml.uml_v2.state_machine.final_state=mxgraph.bpmn.shape;verticalLabelPosition=bottom;verticalAlign=top;perimeter=ellipsePerimeter;outline=end;symbol=terminate
 com.gliffy.shape.uml.uml_v2.state_machine.initial_state=ellipse
 com.gliffy.shape.uml.uml_v2.state_machine.entry_point=ellipse
@@ -231,8 +231,8 @@ com.gliffy.shape.uml.uml_v2.deployment.artifact=note;size=10
 com.gliffy.shape.uml.uml_v2.deployment.component1=component;align=left;spacingLeft=36
 com.gliffy.shape.uml.uml_v2.deployment.component2=ext;symbol0=component;symbol0Width=20;symbol0Height=20;symbol0Align=right;symbol0VerticalAlign=top;symbol0Spacing=4;symbol0ArcSpacing=0.25;jettyWidth=8;jettyHeight=4;overflow=fill
 com.gliffy.shape.uml.uml_v2.deployment.interface=ellipse
-#com.gliffy.shape.uml.uml_v2.deployment.simple_interface=
-#com.gliffy.shape.uml.uml_v2.deployment.required_interface=
+com.gliffy.shape.uml.uml_v2.deployment.simple_interface=stencil(bVHRDsIgDPwaHpewERN9NFP/o5s4yHCQgm7+vWydBqYJL3dXer2WidorcJJVHLyTbWDixKrqCaihMZGuouID2l6O+hoUyXpQEnWYVXFm/MhE3UDbd2gfw3Wl+GF+onYw/0qohb3b5+w5Ub8dJ6MXwZITvny7A7ZRxk85VeMrg/97rWgqYNK+QBsgaDtkmgHsZBEtipuBLpP8KKVL6DKbK0kZySRoXOqysjSCNEY7n4Qut6EJjgT3K1Q5TDvetDFbHxppmefnIgtL1xbnNw==)
+com.gliffy.shape.uml.uml_v2.deployment.required_interface=stencil(bZDNDoMgEISfhiMJQnrosbH2PValSrRCFurP25cfbSRtwmW+GXZhiChtD0YSzsAa2Tgi7oTzGVBBPXrMvWMd6kEuqnV9stXUS1QuuKIi7EZEWUMzdKjfU7sjdg1HlAbCrROK9KXnsHNN8y4sLdqSLFjSj+90wMbbeMRTGrdM/p+1q5XCqixF7cApPWXeCNhJ6lfQ5whdZtlFSnPCRfau4zOenH7pG419ZbkY+uko0tS/qD4=)
 com.gliffy.shape.uml.uml_v2.deployment.port=rect;verticalLabelPosition=bottom;verticalAlign=top
 com.gliffy.shape.uml.uml_v2.deployment.instance=rect
 com.gliffy.shape.uml.uml_v2.deployment.instance_specification=ext;symbol0=note;symbol0Width=20;symbol0Height=20;symbol0Align=right;symbol0VerticalAlign=top;symbol0Spacing=4;symbol0ArcSpacing=0.25;jettyWidth=8;jettyHeight=4;overflow=fill;align=center;verticalAlign=bottom;size=5
@@ -268,7 +268,7 @@ com.gliffy.shape.uml.uml_v2.use_case.use_case=ellipse
 com.gliffy.shape.uml.uml_v2.use_case.actor=umlActor;verticalLabelPosition=bottom;verticalAlign=bottom
 com.gliffy.shape.uml.uml_v2.use_case.association=edgeStyle=none
 com.gliffy.shape.uml.uml_v2.use_case.system=rect
-com.gliffy.shape.uml.uml_v2.use_case.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill
+com.gliffy.shape.uml.uml_v2.use_case.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill;labelX=26
 com.gliffy.shape.uml.uml_v2.use_case.include=edgeStyle=none;dashed=1
 com.gliffy.shape.uml.uml_v2.use_case.extend=edgeStyle=none;dashed=1
 com.gliffy.shape.uml.uml_v2.use_case.dependency=edgeStyle=none;dashed=1
@@ -303,7 +303,7 @@ com.gliffy.shape.erd.erd_v1.default.many_optional_many_mandatory=edgeStyle=ortho
 # BPMN v1
 #
 # BPMN v1 EVENTS
-com.gliffy.shape.bpmn.bpmn_v1.events.general_start=mxgraph.bpmn.shape;perimeter=ellipsePerimeter;outline=standard;symbol=general
+com.gliffy.shape.bpmn.bpmn_v1.events.general_start=mxgraph.bpmn.shape;perimeter=ellipsePerimeter;outline=standard;symbol=general;strokeWidth=1
 com.gliffy.shape.bpmn.bpmn_v1.events.general_intermediate=mxgraph.bpmn.shape;perimeter=ellipsePerimeter;outline=throwing;symbol=general
 com.gliffy.shape.bpmn.bpmn_v1.events.general_end=mxgraph.bpmn.shape;perimeter=ellipsePerimeter;outline=end;symbol=general
 com.gliffy.shape.bpmn.bpmn_v1.events.message_start=mxgraph.bpmn.shape;perimeter=ellipsePerimeter;outline=standard;symbol=message
@@ -330,7 +330,7 @@ com.gliffy.shape.bpmn.bpmn_v1.events.multiple_end=mxgraph.bpmn.shape;perimeter=e
 com.gliffy.shape.bpmn.bpmn_v1.activities.multiple_instances=mxgraph.ios7.icons.pause;fillColor=#000000
 com.gliffy.shape.bpmn.bpmn_v1.activities.compensation=mxgraph.bpmn.compensation;html=1;fillColor=#000000;verticalLabelPosition=bottom;verticalAlign=top
 com.gliffy.shape.bpmn.bpmn_v1.activities.ad_hoc=mxgraph.bpmn.ad_hoc;fillColor=#000000;verticalLabelPosition=bottom;verticalAlign=top
-com.gliffy.shape.bpmn.bpmn_v1.activities.looping=mxgraph.bpmn.loop;verticalLabelPosition=bottom;verticalAlign=top
+com.gliffy.shape.bpmn.bpmn_v1.activities.looping=mxgraph.bpmn.loop;verticalLabelPosition=bottom;verticalAlign=top;strokeWidth=5
 com.gliffy.shape.bpmn.bpmn_v1.activities.process=ext;rounded=1
 com.gliffy.shape.bpmn.bpmn_v1.activities.transaction=ext;rounded=1;double=1
 com.gliffy.shape.bpmn.bpmn_v1.activities.expanded_sub_process=ext;rounded=1
@@ -1309,10 +1309,10 @@ com.gliffy.shape.ui.ui_v3.containers_content.graph_line=mxgraph.mockup.graphics.
 com.gliffy.shape.ui.ui_v3.containers_content.transparent_rect=rect
 com.gliffy.shape.ui.ui_v3.containers_content.map=mxgraph.mockup.misc.map
 com.gliffy.shape.ui.ui_v3.containers_content.graph_pie=mxgraph.mockup.graphics.pieChart;strokeColor=#008cff;parts=10,20,35;partColors=#e0e0e0,#d0d0d0,#c0c0c0,#b0b0b0,#a0a0a0
-com.gliffy.shape.ui.ui_v3.containers_content.note=rect
+com.gliffy.shape.ui.ui_v3.containers_content.note=rect;fillColor=#fff0ab;strokeColor=none;gradientColor=#ffe77c;shadow=1
 #com.gliffy.shape.ui.ui_v3.containers_content.table_three_by_three=
 # UI v3 TABLES
-#needs custom code
+#Treated as groups
 #com.gliffy.shape.table.table_v2.default.table_horizontal_and_vertical_title_three_by_two=
 #com.gliffy.shape.table.table_v2.default.table_horizontal_title_three_by_two=
 #com.gliffy.shape.table.table_v2.default.table_three_by_three=
@@ -1564,4 +1564,20 @@ com.gliffy.shape.floorplan.floorplan_v2.miscellaneous.piano=mxgraph.floorplan.pi
 #
 com.gliffy.shape.mindmap.mindmap_v1.default.main_topic=rect;rounded=1
 com.gliffy.shape.mindmap.mindmap_v1.default.subtopic=rect;rounded=1
-com.gliffy.shape.mindmap.mindmap_v1.default.child_node=rect;rounded=1;dashed=1
+com.gliffy.shape.mindmap.mindmap_v1.default.child_node=rect;rounded=1;dashed=1
+
+#
+# Child shape TID
+#
+com.gliffy.stencil.alt_combined_fragment.alt_area_v1=rect;shadow=0;fillColor=none;strokeColor=none;opacity=0
+com.gliffy.stencil.loop_combined_fragment.uml_v2=rect;shadow=0;fillColor=none;strokeColor=none;opacity=0
+com.gliffy.stencil.opt_combined_fragment.uml_v2=rect;shadow=0;fillColor=none;strokeColor=none;opacity=0
+com.gliffy.stencil.interaction_use.uml_v2=rect;shadow=0;fillColor=none;strokeColor=none;opacity=0
+com.gliffy.stencil.rectangle.no_fill_no_line_v1=rect;fillColor=none;strokeColor=none
+com.gliffy.stencil.alt_combined_fragment.dotted_line_area_v1=partialRectangle;top=0;right=0;left=0;fillColor=none;dashed=1;dashPattern=10 4;shadow=0
+com.gliffy.stencil.rectangle.no_fill_line_bottom_v1=partialRectangle;top=0;right=0;left=0;fillColor=none
+com.gliffy.stencil.rectangle.no_fill_line_bottom_dashed_v1=partialRectangle;top=0;right=0;left=0;fillColor=none;dashed=1;dashPattern=10 4;shadow=0
+com.gliffy.stencil.boundary_lifeline.uml_v2=umlBoundary
+com.gliffy.stencil.object_timeline.uml_v1=line;direction=south;dashed=1
+com.gliffy.stencil.control_lifeline.uml_v2=umlControl
+com.gliffy.stencil.entity_lifeline.uml_v2=umlEntity

+ 12 - 8
src/com/mxgraph/io/gliffy/model/GliffyObject.java

@@ -114,11 +114,10 @@ public class GliffyObject implements PostDeserializable
 		GROUP_SHAPES.add("com.gliffy.shape.basic.basic_v1.default.group");
 		GROUP_SHAPES.add("com.gliffy.shape.erd.erd_v1.default.entity_with_attributes");
 		GROUP_SHAPES.add("com.gliffy.shape.erd.erd_v1.default.entity_with_multiple_attributes");
-//		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.sequence.frame");//
-//		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.sequence.interaction_use");//
-//		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.sequence.opt_combined_fragment");//
-//		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.sequence.loop_combined_fragment");//
-//		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.sequence.alt_combined_fragment");//
+		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.sequence.interaction_use");
+		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.sequence.opt_combined_fragment");
+		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.sequence.loop_combined_fragment");
+		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.sequence.alt_combined_fragment");
 		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.class.object");
 		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.class.enumeration");
 		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.class.interface");
@@ -127,8 +126,11 @@ public class GliffyObject implements PostDeserializable
 		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.class.data_type");
 		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.state_machine.composite_state");
 		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.state_machine.orthoganal_state");
-		//GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.use_case.frame");//???
-		//GROUP_SHAPES.add("");
+		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.class.package");
+		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.sequence.boundary_lifeline");
+		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.sequence.lifeline");
+		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.sequence.entity_lifeline");
+		GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v2.sequence.control_lifeline");
 		
 		MINDMAP_SHAPES.add("com.gliffy.shape.mindmap.mindmap_v1.default.main_topic");
 		MINDMAP_SHAPES.add("com.gliffy.shape.mindmap.mindmap_v1.default.subtopic");
@@ -215,7 +217,9 @@ public class GliffyObject implements PostDeserializable
 
 	public boolean isGroup()
 	{
-		return uid != null && GROUP_SHAPES.contains(uid);
+		return (uid != null && (GROUP_SHAPES.contains(uid) || uid.startsWith("com.gliffy.shape.table")))
+				//Since we treat text in a different way (added as cell value instead of another child cell, this is probably the best way to detect groups when uid is null)
+				|| (uid == null && hasChildren() && !children.get(0).isText());
 	}
 
 	public boolean isMindmap()

+ 1 - 1
war/cache.manifest

@@ -1,7 +1,7 @@
 CACHE MANIFEST
 
 # THIS FILE WAS GENERATED. DO NOT MODIFY!
-# 08/02/2017 07:37 AM
+# 08/03/2017 04:40 PM
 
 app.html
 index.html?offline=1

文件差異過大導致無法顯示
+ 42 - 42
war/js/app.min.js


文件差異過大導致無法顯示
+ 22 - 22
war/js/atlas-viewer.min.js


文件差異過大導致無法顯示
+ 113 - 98
war/js/atlas.min.js


文件差異過大導致無法顯示
+ 1047 - 904
war/js/diagramly/Extensions.js


文件差異過大導致無法顯示
+ 16 - 16
war/js/embed-static.min.js


文件差異過大導致無法顯示
+ 71 - 56
war/js/extensions.min.js


+ 6 - 3
war/js/mxgraph/Shapes.js

@@ -915,11 +915,14 @@
 					var width = this.style['symbol' + counter + 'Width'];
 					var height = this.style['symbol' + counter + 'Height'];
 					var spacing = this.style['symbol' + counter + 'Spacing'] || 0;
+					var vspacing = this.style['symbol' + counter + 'VSpacing'] || spacing;
 					var arcspacing = this.style['symbol' + counter + 'ArcSpacing'];
 					
 					if (arcspacing != null)
 					{
-						spacing += this.getArcSize(w + this.strokewidth, h + this.strokewidth) * arcspacing;
+						var arcSize = this.getArcSize(w + this.strokewidth, h + this.strokewidth) * arcspacing;
+						spacing += arcSize;
+						vspacing += arcSize;
 					}
 					
 					var x2 = x;
@@ -944,11 +947,11 @@
 					}
 					else if (valign == mxConstants.ALIGN_BOTTOM)
 					{
-						y2 += h - height - spacing;
+						y2 += h - height - vspacing;
 					}
 					else
 					{
-						y2 += spacing;
+						y2 += vspacing;
 					}
 					
 					c.save();

文件差異過大導致無法顯示
+ 16 - 16
war/js/reader.min.js


文件差異過大導致無法顯示
+ 22 - 22
war/js/viewer.min.js