Author: antelder
Date: Fri May 13 06:03:58 2011
New Revision: 1102569

URL: http://svn.apache.org/viewvc?rev=1102569&view=rev
Log:
TUSCANY-3496: Add Nirmal's prototype code for the composite diagram GSoC 
project to the collaboration area

Added:
    tuscany/collaboration/GSoC-2011-Nirmal/   (with props)
    tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/ 
  (with props)
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/pom.xml
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Artifact.java
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Component.java
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Composite.java
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Property.java
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Reference.java
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Service.java
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Text.java
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Wire.java
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/
    
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/SVGDiagramGenerator.java

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Fri May 13 06:03:58 2011
@@ -0,0 +1,20 @@
+target
+work
+dojo
+*.iws
+*.ipr
+*.iml
+derby.log
+maven.log
+maven-eclipse.xml
+build.xml
+build-dependency.xml
+velocity.log*
+junit*.properties
+surefire*.properties
+.project
+.classpath
+.settings
+.deployables
+.wtpmodules
+.externalToolBuilders

Propchange: 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Fri May 13 06:03:58 2011
@@ -0,0 +1,20 @@
+target
+work
+dojo
+*.iws
+*.ipr
+*.iml
+derby.log
+maven.log
+maven-eclipse.xml
+build.xml
+build-dependency.xml
+velocity.log*
+junit*.properties
+surefire*.properties
+.project
+.classpath
+.settings
+.deployables
+.wtpmodules
+.externalToolBuilders

Added: 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/pom.xml
URL: 
http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/pom.xml?rev=1102569&view=auto
==============================================================================
--- 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/pom.xml
 (added)
+++ 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/pom.xml
 Fri May 13 06:03:58 2011
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * Licensed to the Apache Software Foundation (ASF) under one
+    * or more contributor license agreements.  See the NOTICE file
+    * distributed with this work for additional information
+    * regarding copyright ownership.  The ASF licenses this file
+    * to you under the Apache License, Version 2.0 (the
+    * "License"); you may not use this file except in compliance
+    * with the License.  You may obtain a copy of the License at
+    * 
+    *   http://www.apache.org/licenses/LICENSE-2.0
+    * 
+    * Unless required by applicable law or agreed to in writing,
+    * software distributed under the License is distributed on an
+    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    * KIND, either express or implied.  See the License for the
+    * specific language governing permissions and limitations
+    * under the License.    <groupId>org.apache.tuscany.sca</groupId>
+-->
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.apache.tuscany.sca</groupId>
+    <artifactId>tuscany-composite-diagram</artifactId>
+    <version>0.0.1</version>
+    <name>Apache Tuscany SCA Composite Diagram Generator Application</name>
+
+    <dependencies>
+        <dependency>
+           <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-anim</artifactId>
+           <version>1.7</version>
+           </dependency>
+
+           <dependency>
+           <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-awt-util</artifactId>
+            <version>1.7</version>
+        </dependency>
+
+           <dependency>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-css</artifactId>
+            <version>1.7</version>
+        </dependency>
+
+           <dependency>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-dom</artifactId>
+            <version>1.7</version>
+        </dependency>
+
+           <dependency>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-ext</artifactId>
+            <version>1.7</version>
+        </dependency>
+
+           <dependency>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-parser</artifactId>
+            <version>1.7</version>
+        </dependency>
+
+           <dependency>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-svg-dom</artifactId>
+            <version>1.7</version>
+        </dependency>
+
+           <dependency>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-svggen</artifactId>
+            <version>1.7</version>
+        </dependency>
+
+           <dependency>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-util</artifactId>
+            <version>1.7</version>
+        </dependency>
+
+           <dependency>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-xml</artifactId>
+            <version>1.7</version>
+        </dependency>
+
+           <dependency>
+            <groupId>xml-apis</groupId>
+            <artifactId>xml-apis-ext</artifactId>
+            <version>1.3.04</version>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.5</version>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+
+
+    <build>
+        <defaultGoal>install</defaultGoal>
+        <directory>${basedir}/target</directory>
+        <finalName>${artifactId}-${version}</finalName>
+    </build>
+
+</project>

Added: 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Artifact.java
URL: 
http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Artifact.java?rev=1102569&view=auto
==============================================================================
--- 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Artifact.java
 (added)
+++ 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Artifact.java
 Fri May 13 06:03:58 2011
@@ -0,0 +1,62 @@
+package org.apache.tuscany.sca.impl.artifacts;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public abstract class Artifact {
+
+       private int height;
+       private int width;
+       private int xCoordinate;
+       private int yCoordinate;
+       private Document doc;
+       private String svgNs;
+       private static final String ROUND_CORNER = "20" ;       
+       
+       public abstract Element addElement(Document document, String svgNs, 
+                       int x, int y, int height, int width);
+       
+       public int getHeight() {
+               return height;
+       }
+       public void setHeight(int height) {
+               this.height = height;
+       }
+       public int getWidth() {
+               return width;
+       }
+       public void setWidth(int width) {
+               this.width = width;
+       }
+       public int getxCoordinate() {
+               return xCoordinate;
+       }
+       public void setxCoordinate(int xCoordinate) {
+               this.xCoordinate = xCoordinate;
+       }
+       public int getyCoordinate() {
+               return yCoordinate;
+       }
+       public void setyCoordinate(int yCoordinate) {
+               this.yCoordinate = yCoordinate;
+       }
+       public Document getDoc() {
+               return doc;
+       }
+       public void setDoc(Document doc) {
+               this.doc = doc;
+       }
+       public String getSvgNs() {
+               return svgNs;
+       }
+       public void setSvgNs(String svgNs) {
+               this.svgNs = svgNs;
+       }
+
+       public static String getRoundCorner() {
+               return ROUND_CORNER;
+       }
+       
+       
+       
+}

Added: 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Component.java
URL: 
http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Component.java?rev=1102569&view=auto
==============================================================================
--- 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Component.java
 (added)
+++ 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Component.java
 Fri May 13 06:03:58 2011
@@ -0,0 +1,67 @@
+package org.apache.tuscany.sca.impl.artifacts;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class Component extends Artifact{
+       
+//     private static final String WIDTH = "200" ;
+//     private static final String HEIGHT = "130" ;
+       
+       
+//     public  Element addElement(Document document, 
+//                     String svgNs, int x, int y) {
+//             
+//             
+//             //Element g = document.createElementNS(svgNs, "g");
+//             //g.setAttributeNS(null, "transform", "translate(100 100)");
+//             // Create the rectangle.
+//             Element rectangle = document.createElementNS(svgNs, "rect");
+//             rectangle.setAttributeNS(null, "x", x+"");
+//             rectangle.setAttributeNS(null, "y", y+"");
+//             rectangle.setAttributeNS(null, "rx", ROUND_CORNER);
+//             rectangle.setAttributeNS(null, "ry", ROUND_CORNER);
+//             rectangle.setAttributeNS(null, "width", WIDTH);
+//             rectangle.setAttributeNS(null, "height", HEIGHT);
+//             rectangle.setAttributeNS(null, "fill", "#3D59AB");
+//             rectangle.setAttributeNS(null, "stroke", "#104E8B");
+//             rectangle.setAttributeNS(null, "fill-opacity", "0.75");
+//                             
+//             
+////           Element text = document.createElementNS(svgNs, "text");
+////           text.setAttributeNS(null, "text-anchor", "middle");
+////           text.setAttributeNS(null, "dominant-baseline", "mathematical");
+////           text.setAttributeNS(null, "font-size", "30");
+////           text.setTextContent("A Component");
+//             
+//             //document.appendChild(rectangle);
+//             //g.appendChild(text);
+//
+//             
+//             return rectangle;
+//     }
+
+       
+       public Element addElement(Document document, String svgNs, int x, int y,
+                       int height, int width) {
+               
+               this.setHeight(height);
+               this.setWidth(width);
+               this.setxCoordinate(x);
+               this.setyCoordinate(y);
+               
+               Element rectangle = document.createElementNS(svgNs, "rect");
+               rectangle.setAttributeNS(null, "x", x+"");
+               rectangle.setAttributeNS(null, "y", y+"");
+               rectangle.setAttributeNS(null, "rx", getRoundCorner());
+               rectangle.setAttributeNS(null, "ry", getRoundCorner());
+               rectangle.setAttributeNS(null, "width", width+"");
+               rectangle.setAttributeNS(null, "height", height+"");
+               rectangle.setAttributeNS(null, "fill", "#3D59AB");
+               rectangle.setAttributeNS(null, "stroke", "#104E8B");
+               rectangle.setAttributeNS(null, "fill-opacity", "0.75");
+               return rectangle;
+       }
+       
+
+}

Added: 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Composite.java
URL: 
http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Composite.java?rev=1102569&view=auto
==============================================================================
--- 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Composite.java
 (added)
+++ 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Composite.java
 Fri May 13 06:03:58 2011
@@ -0,0 +1,64 @@
+package org.apache.tuscany.sca.impl.artifacts;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+/**
+ * Structure of a "Composite" element in SCA, as a SVG element
+ * @author nirmal
+ *
+ */
+public class Composite extends Artifact{
+//     
+//     private Document document;
+//     private String svgNs;
+//     
+//     public Composite(Document doc, String uri){
+//             document = doc;
+//             svgNs = uri;
+//     }
+//
+       
+       
+//     public static Element addCompositeElement(Document document, String 
svgNs, 
+//                     int x, int y, int width, int height) {
+//             // Create the rectangle.
+//             Element rectangle = document.createElementNS(svgNs, "rect");
+//             rectangle.setAttributeNS(null, "x", x+"");
+//             rectangle.setAttributeNS(null, "y", y+"");
+//             rectangle.setAttributeNS(null, "rx", ROUND_CORNER);
+//             rectangle.setAttributeNS(null, "ry", ROUND_CORNER);
+//             rectangle.setAttributeNS(null, "width", width+"");
+//             rectangle.setAttributeNS(null, "height", height+"");
+//             rectangle.setAttributeNS(null, "fill", "#E5E5E5");
+//             rectangle.setAttributeNS(null, "stroke", "#919191");
+//             rectangle.setAttributeNS(null, "alignment-baseline", "central");
+//             
+//             return rectangle;
+//     }
+
+       public Element addElement(Document document, String svgNs, int x, int y,
+                       int height, int width) {
+               
+               this.setHeight(height);
+               this.setWidth(width);
+               this.setxCoordinate(x);
+               this.setyCoordinate(y);
+               
+               Element rectangle = document.createElementNS(svgNs, "rect");
+               rectangle.setAttributeNS(null, "x", x+"");
+               rectangle.setAttributeNS(null, "y", y+"");
+               rectangle.setAttributeNS(null, "rx", getRoundCorner());
+               rectangle.setAttributeNS(null, "ry", getRoundCorner());
+               rectangle.setAttributeNS(null, "width", width+"");
+               rectangle.setAttributeNS(null, "height", height+"");
+               rectangle.setAttributeNS(null, "fill", "#E5E5E5");
+               rectangle.setAttributeNS(null, "stroke", "#919191");
+               rectangle.setAttributeNS(null, "alignment-baseline", "central");
+               
+               return rectangle;
+       }
+       
+       
+
+}

Added: 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Property.java
URL: 
http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Property.java?rev=1102569&view=auto
==============================================================================
--- 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Property.java
 (added)
+++ 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Property.java
 Fri May 13 06:03:58 2011
@@ -0,0 +1,50 @@
+package org.apache.tuscany.sca.impl.artifacts;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class Property extends Artifact{
+       
+//     private static final String WIDTH = "20" ;
+       
+//     public static Element addPropertyElement(Document document, 
+//                     String svgNs, int x, int y) {
+//             Element rectangle = document.createElementNS(svgNs, "rect");
+//             rectangle.setAttributeNS(null, "x", x+"");
+//             rectangle.setAttributeNS(null, "y", y+"");
+//             rectangle.setAttributeNS(null, "width", WIDTH);
+//             rectangle.setAttributeNS(null, "height", WIDTH);
+//             rectangle.setAttributeNS(null, "fill", "#EEEE00");
+//             rectangle.setAttributeNS(null, "stroke", "#EEC900");
+//             //rectangle.setAttributeNS(null, "fill-opacity", "0.75");
+//             
+//             return rectangle;
+//     }
+
+       
+       public Element addElement(Document document, String svgNs, int x, int y,
+                       int height, int width) {
+               return this.addElement(document, svgNs, x, y, height);
+       }
+       
+       public Element addElement(Document document, String svgNs, int x, int y,
+                       int height) {
+               
+               this.setHeight(height);
+               this.setWidth(height);
+               this.setxCoordinate(x);
+               this.setyCoordinate(y);
+               
+               Element rectangle = document.createElementNS(svgNs, "rect");
+               rectangle.setAttributeNS(null, "x", x+"");
+               rectangle.setAttributeNS(null, "y", y+"");
+               rectangle.setAttributeNS(null, "width", height+"");
+               rectangle.setAttributeNS(null, "height", height+"");
+               rectangle.setAttributeNS(null, "fill", "#EEEE00");
+               rectangle.setAttributeNS(null, "stroke", "#EEC900");
+               //rectangle.setAttributeNS(null, "fill-opacity", "0.75");
+               
+               return rectangle;
+       }
+
+}

Added: 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Reference.java
URL: 
http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Reference.java?rev=1102569&view=auto
==============================================================================
--- 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Reference.java
 (added)
+++ 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Reference.java
 Fri May 13 06:03:58 2011
@@ -0,0 +1,77 @@
+package org.apache.tuscany.sca.impl.artifacts;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class Reference extends Artifact {
+       
+//private static final int COMMON_LENGTH = 20 ;        
+       
+//     public static Element addReferenceElement(Document document, String 
svgNs, int midX, int midY) {
+//             
+//             // Create the rectangle.
+//             Element polygon = document.createElementNS(svgNs, "polygon");
+//             polygon.setAttributeNS(null, "points", 
+//                             ""+ (midX-COMMON_LENGTH) +","+midY+" " +
+//                             ""+ (midX+(COMMON_LENGTH/2)) +","+midY+" " +
+//                             ""+ (midX+COMMON_LENGTH) 
+","+(midY-COMMON_LENGTH)+" " +
+//                             ""+ (midX+(COMMON_LENGTH/2)) 
+","+(midY-COMMON_LENGTH*2)+" " +
+//                             ""+ (midX-COMMON_LENGTH) 
+","+(midY-COMMON_LENGTH*2)+" " +
+//                             ""+ (midX-(COMMON_LENGTH/2)) 
+","+(midY-COMMON_LENGTH)+" "
+//                     );
+//             polygon.setAttributeNS(null, "fill", "#BF3EFF");
+//             polygon.setAttributeNS(null, "stroke", "#68228B");
+//             //rectangle.setAttributeNS(null, "alignment-baseline", 
"central");
+//             
+//             return polygon;
+//     }
+//     
+
+       
+       public Element addElement(Document document, String svgNs, int x, int y,
+                       int height, int width) {
+               return this.addElement(document, svgNs, x, y, height);
+       }
+       
+       /**
+        * In a Reference the (x,y) coordinates refers to the outer edge of the 
polygon
+        *              ______
+        *              \     \ 
+        *               \     \ ___ outer edge
+        *               /     /
+        *              /____ /
+        * 
+        * @param document
+        * @param svgNs
+        * @param x
+        * @param y
+        * @param height
+        * @return
+        */
+       public Element addElement(Document document, String svgNs, int x, int y,
+                       int height) {
+               
+               this.setHeight(height);
+               this.setWidth(height);
+               this.setxCoordinate(x);
+               this.setyCoordinate(y);
+               
+               int length = height/2;
+               
+               Element polygon = document.createElementNS(svgNs, "polygon");
+               polygon.setAttributeNS(null, "points", 
+                               ""+ x +","+y+" " +
+                               ""+ (x-length) +","+(y+length)+" " +
+                               ""+ (x-length*3) +","+(y+length)+" " +
+                               ""+ (x-length*2) +","+(y)+" " +
+                               ""+ (x-length*3) +","+(y-length)+" " +
+                               ""+ (x-length) +","+(y-length)+" "
+                       );
+               
+               polygon.setAttributeNS(null, "fill", "#BF3EFF");
+               polygon.setAttributeNS(null, "stroke", "#68228B");
+               
+               return polygon;
+       }
+
+}

Added: 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Service.java
URL: 
http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Service.java?rev=1102569&view=auto
==============================================================================
--- 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Service.java
 (added)
+++ 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Service.java
 Fri May 13 06:03:58 2011
@@ -0,0 +1,75 @@
+package org.apache.tuscany.sca.impl.artifacts;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class Service extends Artifact{
+
+//     private static final int COMMON_LENGTH = 20 ;   
+       
+//     public static Element addServiceElement(Document document, String 
svgNs, int midX, int midY) {
+//             // Create the rectangle.
+//             Element polygon = document.createElementNS(svgNs, "polygon");
+//             polygon.setAttributeNS(null, "points", 
+//                             ""+ (midX-COMMON_LENGTH) +","+midY+" " +
+//                             ""+ (midX+(COMMON_LENGTH/2)) +","+midY+" " +
+//                             ""+ (midX+COMMON_LENGTH) 
+","+(midY-COMMON_LENGTH)+" " +
+//                             ""+ (midX+(COMMON_LENGTH/2)) 
+","+(midY-COMMON_LENGTH*2)+" " +
+//                             ""+ (midX-COMMON_LENGTH) 
+","+(midY-COMMON_LENGTH*2)+" " +
+//                             ""+ (midX-(COMMON_LENGTH/2)) 
+","+(midY-COMMON_LENGTH)+" "
+//                     );
+//             polygon.setAttributeNS(null, "fill", "#00CD66");
+//             polygon.setAttributeNS(null, "stroke", "#008B45");
+//             
+//             return polygon;
+//     }
+
+       
+       public Element addElement(Document document, String svgNs, int x, int y,
+                       int height, int width) {
+               return this.addElement(document, svgNs, x, y, height);
+       }
+       
+       /**
+        *  In a Service the (x,y) coordinates refers to the inner edge of the 
polygon
+        *                                      ______
+        *                                      \     \ 
+        *      inner edge      ____ \     \
+        *                                       /     /
+        *                                      /____ /
+        * 
+        * @param document
+        * @param svgNs
+        * @param x
+        * @param y
+        * @param height
+        * @return
+        */
+       public Element addElement(Document document, String svgNs, int x, int y,
+                       int height) {
+               
+               this.setHeight(height);
+               this.setWidth(height);
+               this.setxCoordinate(x);
+               this.setyCoordinate(y);
+               
+               int length = height/2;
+               
+               Element polygon = document.createElementNS(svgNs, "polygon");
+               polygon.setAttributeNS(null, "points", 
+                               ""+ x +","+y+" " +
+                               ""+ (x-length) +","+(y-length)+" " +
+                               ""+ (x+length) +","+(y-length)+" " +
+                               ""+ (x+(length*2)) +","+y+" " +
+                               ""+ (x+length) +","+(y+length)+" " +
+                               ""+ (x-length) +","+(y+length)+" "
+                       );
+               
+               polygon.setAttributeNS(null, "fill", "#00CD66");
+               polygon.setAttributeNS(null, "stroke", "#008B45");
+               
+               return polygon;
+       }
+       
+       
+}

Added: 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Text.java
URL: 
http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Text.java?rev=1102569&view=auto
==============================================================================
--- 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Text.java
 (added)
+++ 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Text.java
 Fri May 13 06:03:58 2011
@@ -0,0 +1,20 @@
+package org.apache.tuscany.sca.impl.artifacts;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class Text {
+
+       public static Element addTextElement(Document document, 
+                       String svgNs, int x, int y, String content) {
+               Element text = document.createElementNS(svgNs, "text");
+               text.setAttributeNS(null, "x", x+"");
+               text.setAttributeNS(null, "y", y+"");
+               text.setAttributeNS(null, "text-anchor", "middle");
+               text.setAttributeNS(null, "dominant-baseline", "mathematical");
+               text.setAttributeNS(null, "font-size", "20");
+               text.setTextContent(content);
+               
+               return text;
+       }
+}

Added: 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Wire.java
URL: 
http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Wire.java?rev=1102569&view=auto
==============================================================================
--- 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Wire.java
 (added)
+++ 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/artifacts/Wire.java
 Fri May 13 06:03:58 2011
@@ -0,0 +1,48 @@
+package org.apache.tuscany.sca.impl.artifacts;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class Wire {
+       
+//     <path d="M 100 100 L 300 100 L 200 300 z"
+//        fill="red" stroke="blue" stroke-width="3" />
+       
+//     public static Element addWireElement(Document document, String svgNs, 
int x1, int y1,
+//                     int x2, int y2) {
+//             // Create the rectangle.
+//             Element polyline = document.createElementNS(svgNs, "polyline");
+//             //polyline.setAttributeNS(null,"class", "Connect");
+//             polyline.setAttributeNS(null, "points", x1+","+y1+" 
"+x2+","+y2);
+//             polyline.setAttributeNS(null, "stroke", "black");
+//             polyline.setAttributeNS(null, "stroke-width", "2");
+////           polygon.setAttributeNS(null, "points", 
+////                           ""+ (midX-COMMON_LENGTH) +","+midY+" " +
+////                           ""+ (midX+(COMMON_LENGTH/2)) +","+midY+" " +
+////                           ""+ (midX+COMMON_LENGTH) 
+","+(midY-COMMON_LENGTH)+" " +
+////                           ""+ (midX+(COMMON_LENGTH/2)) 
+","+(midY-COMMON_LENGTH*2)+" " +
+////                           ""+ (midX-COMMON_LENGTH) 
+","+(midY-COMMON_LENGTH*2)+" " +
+////                           ""+ (midX-(COMMON_LENGTH/2)) 
+","+(midY-COMMON_LENGTH)+" "
+////                   );
+//             //polyline.setAttributeNS(null, "fill", "purple");
+//             //rectangle.setAttributeNS(null, "alignment-baseline", 
"central");
+//             
+//             return polyline;
+//     }
+       
+       public Element addElement(Document document, String svgNs, 
+                       Reference aReference, Service aService){
+               
+               Element polyline = document.createElementNS(svgNs, "polyline");
+               //polyline.setAttributeNS(null,"class", "Connect");
+               polyline.setAttributeNS(null, "points", 
aReference.getxCoordinate()+","+
+                               aReference.getyCoordinate()+" 
"+aService.getxCoordinate()+","+
+                               aService.getyCoordinate());
+               polyline.setAttributeNS(null, "stroke", "black");
+               polyline.setAttributeNS(null, "stroke-width", "2");
+               
+               return polyline;
+       }
+
+
+}

Added: 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/SVGDiagramGenerator.java
URL: 
http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/SVGDiagramGenerator.java?rev=1102569&view=auto
==============================================================================
--- 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/SVGDiagramGenerator.java
 (added)
+++ 
tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/SVGDiagramGenerator.java
 Fri May 13 06:03:58 2011
@@ -0,0 +1,142 @@
+package org.apache.tuscany.sca.main;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.w3c.dom.DOMImplementation;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.apache.batik.dom.svg.SVGDOMImplementation;
+import org.apache.tuscany.sca.impl.artifacts.Component;
+import org.apache.tuscany.sca.impl.artifacts.Composite;
+import org.apache.tuscany.sca.impl.artifacts.Property;
+import org.apache.tuscany.sca.impl.artifacts.Reference;
+import org.apache.tuscany.sca.impl.artifacts.Service;
+import org.apache.tuscany.sca.impl.artifacts.Text;
+import org.apache.tuscany.sca.impl.artifacts.Wire;
+
+
+
+public class SVGDiagramGenerator {
+       
+       private static final File outFile = new 
File(System.getProperty("user.dir")
+                       + "/output/test.svg");
+       
+       /**
+        * @param args
+        * @throws Exception 
+        */
+       public static void main(String[] args) throws Exception {
+               fileWriter(buildSVGDocument());
+
+       }
+
+       
+       public static Document buildSVGDocument(){
+               DOMImplementation impl = 
SVGDOMImplementation.getDOMImplementation();
+               String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
+               Document doc = impl.createDocument(svgNS, "svg", null);
+
+               // Get the root element (the 'svg' element).
+               Element svgRoot = doc.getDocumentElement();
+
+               Composite composite = new Composite();
+               
+               Component comp1 = new Component();
+               Component comp2 = new Component();
+               Component comp3 = new Component();
+               
+               Property prop1 = new Property();
+               Property prop2 = new Property();
+               
+               Service ser1 = new Service();
+               Service ser2 = new Service();
+               Service ser3 = new Service();
+               
+               Reference ref1 = new Reference();
+               Reference ref2 = new Reference();
+               
+               Wire edge1 = new Wire();
+               Wire edge2 = new Wire();
+               
+               Element rectangle1 = comp1.addElement(doc, svgNS, 50, 20, 130, 
200);    
+               Element text1 = Text.addTextElement(doc, svgNS, 150, 90, "SCA 
Component");
+               
+               Element property1 = prop1.addElement(doc, svgNS, 120, 10, 20);
+               Element property2 = prop2.addElement(doc, svgNS, 160, 10, 20);
+               
+               Element polygon1 = ser1.addElement(doc, svgNS, 50, 85, 30);
+               
+               Element polygon2 = ref1.addElement(doc, svgNS, 270, 60, 30);
+               Element polygon3 = ref2.addElement(doc, svgNS, 270, 110, 30);
+               
+               //Element wire1 = edge1.addElement(doc, svgNS, 270, 60, 390, 
85);
+               
+               Element rectangle2 = comp2.addElement(doc, svgNS, 400, 20, 130, 
200);
+               Element text2 = Text.addTextElement(doc, svgNS, 500, 90, "SCA 
Component");
+               
+               Element polygon4 = ser2.addElement(doc, svgNS, 400, 90, 30);
+               //Element polygon3 = Reference.addReferenceElement(doc, svgNS, 
600, 105);
+               
+               Element rectangle3 = comp3.addElement(doc, svgNS, 400, 200, 
130, 200);
+               Element text3 = Text.addTextElement(doc, svgNS, 500, 270, "SCA 
Component");
+               
+               Element polygon5 = ser3.addElement(doc, svgNS, 400, 270, 30);
+               
+               Element wire1 = edge1.addElement(doc, svgNS, ref1, ser2);
+               Element wire2 = edge2.addElement(doc, svgNS, ref2, ser3);
+               //Element wire2 = Wire.addWireElement(doc, svgNS, 270, 110, 
390, 265);
+
+               // Set the width and height attributes on the root 'svg' 
element.
+               svgRoot.setAttributeNS(null, "width", "650");
+               svgRoot.setAttributeNS(null, "height", "450");
+               
+               Element composi = composite.addElement(doc, svgNS, 0, 0, 350, 
650);
+               Element text4 = Text.addTextElement(doc, svgNS, 75, 320, 
"Composite");
+               
+               svgRoot.appendChild(composi);
+               svgRoot.appendChild(text4);
+               
+               // Attach the rectangle to the root 'svg' element.
+               svgRoot.appendChild(rectangle1);
+               svgRoot.appendChild(text1);
+               svgRoot.appendChild(property1);
+               svgRoot.appendChild(property2);
+               svgRoot.appendChild(polygon1);
+               svgRoot.appendChild(polygon2);
+               svgRoot.appendChild(polygon3);
+               
+               svgRoot.appendChild(rectangle2);
+               svgRoot.appendChild(text2);
+               svgRoot.appendChild(polygon4);
+               //svgRoot.appendChild(polygon3);
+               
+               svgRoot.appendChild(rectangle3);
+               svgRoot.appendChild(text3);
+               svgRoot.appendChild(polygon5);
+               
+               svgRoot.appendChild(wire1);
+               svgRoot.appendChild(wire2);
+               //svgRoot.setAttributeNS(null, "fill", "#CAE1FF");
+               
//System.out.println(doc.getDocumentElement().getAttribute("width"));
+               
+               return doc;
+       }
+       
+       public static void fileWriter(Document doc) throws Exception{
+               
+               FileWriter fileWriter = new FileWriter(outFile);
+               BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
+               TransformerFactory transformerFactory = 
TransformerFactory.newInstance();
+        Transformer transformer = transformerFactory.newTransformer();
+               DOMSource source = new DOMSource(doc);
+        StreamResult result =  new StreamResult(bufferedWriter);
+        transformer.transform(source, result);
+        
+       }
+}


Reply via email to