saveassvg.java

来自「jawe的最新版本,基于Java的图形化工作流编辑器。图形化工作流编辑器 。使用」· Java 代码 · 共 76 行

JAVA
76
字号
package org.enhydra.jawe.components.graph.actions;import java.awt.event.ActionEvent;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStreamWriter;import java.io.Writer;import javax.swing.JOptionPane;import org.apache.batik.dom.GenericDOMImplementation;import org.apache.batik.svggen.SVGGraphics2D;import org.enhydra.jawe.ActionBase;import org.enhydra.jawe.JaWEComponent;import org.enhydra.jawe.JaWEManager;import org.enhydra.jawe.ResourceManager;import org.enhydra.jawe.components.graph.Graph;import org.enhydra.jawe.components.graph.GraphController;import org.w3c.dom.DOMImplementation;import org.w3c.dom.Document;public class SaveAsSVG extends ActionBase {   public SaveAsSVG(JaWEComponent jawecomponent) {      super(jawecomponent);   }   public void enableDisableAction() {          GraphController gc = (GraphController)jawecomponent;            if (gc.getSelectedGraph() != null)         setEnabled(true);      else               setEnabled(false);         }      public void actionPerformed(ActionEvent e) {      // Create file output stream      try {         String file = JaWEManager.getInstance().getJaWEController().getJaWEFrame().saveDialog(               ResourceManager.getLanguageDependentString("SaveAsSVGLabel"), 2,               JaWEManager.getInstance().getDisplayNameGenerator().getDisplayName(                     ((GraphController) jawecomponent).getSelectedGraph().getXPDLObject()));         if (file != null && file.length() > 0) {            saveGraphAsSVG(file, ((GraphController) jawecomponent).getSelectedGraph());         }      } catch (Exception ex) {         String msg = ResourceManager.getLanguageDependentString("ErrorSVGSavingFailed");         JaWEManager.getInstance().getJaWEController().getJaWEFrame().message(msg, JOptionPane.WARNING_MESSAGE);      }   }   public static void saveGraphAsSVG(String file, Graph graph)         throws Exception {      FileOutputStream fos = new FileOutputStream(new File(file));      // Created writer with UTF-8 encoding      Writer out = new OutputStreamWriter(fos, JaWEManager.getInstance().getJaWEController().getControllerSettings().getEncoding());      // Get a DOMImplementation      DOMImplementation domImpl = GenericDOMImplementation.getDOMImplementation();      // Create an instance of org.w3c.dom.Document      Document document = domImpl.createDocument(null, "svg", null);      // Create an instance of the SVG Generator      SVGGraphics2D svgGenerator = new SVGGraphics2D(document);      // Render into the SVG Graphics2D implementation      graph.paint(svgGenerator);      // Use CSS style attribute      boolean useCSS = true;      // Finally, stream out SVG to the writer      svgGenerator.stream(out, useCSS);      // Close the file output stream      fos.flush();      fos.close();   }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?