summaryrefslogtreecommitdiffstats
path: root/collaboration/GSoC-2011-Nirmal/CompositeDiagramShellPlugin/src/main/java/org/apache/tuscany/sca/diagram/shell/SVGViewer.java
diff options
context:
space:
mode:
Diffstat (limited to 'collaboration/GSoC-2011-Nirmal/CompositeDiagramShellPlugin/src/main/java/org/apache/tuscany/sca/diagram/shell/SVGViewer.java')
-rw-r--r--collaboration/GSoC-2011-Nirmal/CompositeDiagramShellPlugin/src/main/java/org/apache/tuscany/sca/diagram/shell/SVGViewer.java104
1 files changed, 104 insertions, 0 deletions
diff --git a/collaboration/GSoC-2011-Nirmal/CompositeDiagramShellPlugin/src/main/java/org/apache/tuscany/sca/diagram/shell/SVGViewer.java b/collaboration/GSoC-2011-Nirmal/CompositeDiagramShellPlugin/src/main/java/org/apache/tuscany/sca/diagram/shell/SVGViewer.java
new file mode 100644
index 0000000000..e0d3b39fa5
--- /dev/null
+++ b/collaboration/GSoC-2011-Nirmal/CompositeDiagramShellPlugin/src/main/java/org/apache/tuscany/sca/diagram/shell/SVGViewer.java
@@ -0,0 +1,104 @@
+/*
+ * 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.
+ */
+
+package org.apache.tuscany.sca.diagram.shell;
+
+import java.awt.BorderLayout;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.File;
+import java.net.MalformedURLException;
+
+import javax.swing.JComponent;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.apache.batik.swing.JSVGCanvas;
+import org.apache.batik.swing.gvt.GVTTreeRendererAdapter;
+import org.apache.batik.swing.gvt.GVTTreeRendererEvent;
+import org.apache.batik.swing.svg.GVTTreeBuilderAdapter;
+import org.apache.batik.swing.svg.GVTTreeBuilderEvent;
+import org.apache.batik.swing.svg.SVGDocumentLoaderAdapter;
+import org.apache.batik.swing.svg.SVGDocumentLoaderEvent;
+
+public class SVGViewer {
+
+ public static void main(String[] args) {
+ new SVGViewer("../CompositeDiagramGeneratorUsingBatik/output/Calculator_diagram.svg");
+ }
+
+ protected JFrame frame;
+ protected JLabel label = new JLabel();
+ protected JSVGCanvas svgCanvas = new JSVGCanvas();
+ protected String svgFile;
+
+ public SVGViewer(String svgFile) {
+ this.svgFile = svgFile;
+ this.frame = new JFrame("Batik");
+ frame.getContentPane().add(createComponents());
+ frame.addWindowListener(new WindowAdapter() {
+ public void windowClosing(WindowEvent e) {
+// System.exit(0);
+ }
+ });
+ frame.setSize(1000, 1000);
+ frame.setVisible(true);
+ }
+
+ public JComponent createComponents() {
+ final JPanel panel = new JPanel(new BorderLayout());
+ panel.add("Center", svgCanvas);
+ try {
+ svgCanvas.setURI(new File(svgFile).toURI().toURL().toString());
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ }
+
+ svgCanvas.addSVGDocumentLoaderListener(new SVGDocumentLoaderAdapter() {
+ public void documentLoadingStarted(SVGDocumentLoaderEvent e) {
+ label.setText("Document Loading...");
+ }
+ public void documentLoadingCompleted(SVGDocumentLoaderEvent e) {
+ label.setText("Document Loaded.");
+ }
+ });
+
+ svgCanvas.addGVTTreeBuilderListener(new GVTTreeBuilderAdapter() {
+ public void gvtBuildStarted(GVTTreeBuilderEvent e) {
+ label.setText("Build Started...");
+ }
+ public void gvtBuildCompleted(GVTTreeBuilderEvent e) {
+ label.setText("Build Done.");
+ frame.pack();
+ }
+ });
+
+ svgCanvas.addGVTTreeRendererListener(new GVTTreeRendererAdapter() {
+ public void gvtRenderingPrepare(GVTTreeRendererEvent e) {
+ label.setText("Rendering Started...");
+ }
+ public void gvtRenderingCompleted(GVTTreeRendererEvent e) {
+ label.setText("");
+ }
+ });
+
+ return panel;
+ }
+ } \ No newline at end of file