类org.w3c.dom.svg.SVGDocument源码实例Demo

下面列出了怎么用org.w3c.dom.svg.SVGDocument的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: PDV   文件: Export.java
/**
 * Export component to pdf format
 * @param component Component
 * @param bounds Rectangle
 * @param exportFile Export file
 * @throws IOException
 * @throws TranscoderException
 */
private static void exportSVG(Component component, Rectangle bounds, File exportFile) throws IOException, TranscoderException {

    DOMImplementation domImplementation = SVGDOMImplementation.getDOMImplementation();
    String svgNS = "http://www.w3.org/2000/svg";
    SVGDocument svgDocument = (SVGDocument) domImplementation.createDocument(svgNS, "svg", null);

    SVGGraphics2D svgGraphics2D = new SVGGraphics2D(svgDocument);
    svgGraphics2D.setSVGCanvasSize(bounds.getSize());

    component.paintAll(svgGraphics2D);

    if (new File(exportFile.getAbsolutePath() + ".temp").exists()) {
        new File(exportFile.getAbsolutePath() + ".temp").delete();
    }

    OutputStream outputStream = new FileOutputStream(exportFile);
    BufferedOutputStream bos = new BufferedOutputStream(outputStream);
    Writer out = new OutputStreamWriter(bos, "UTF-8");

    svgGraphics2D.stream(out, true);
    outputStream.flush();
    outputStream.close();
    out.close();
    bos.close();
}
 
源代码2 项目: Knowage-Server   文件: InteractiveMapRenderer.java
/**
 * Adds the href elements and click events
 *
 * @param targetMap
 *            the target svg
 * @param featureElement
 *            the svg element to manage
 * @param elementId
 *            the svg element id
 * @param drillId
 *            the drill id
 * @param linkUrl
 *            the link url
 * @param linkType
 *            the link type ('cross' or 'drill')
 *
 */
private void addHRefLinksCross(SVGDocument targetMap, Element featureElement, JSONArray JSONValues, JSONArray JSONCross,
		IDataMartProvider datamatProvider) {
	logger.debug("IN");
	Element linkCrossElement = targetMap.createElement("a");
	linkCrossElement.setAttribute("xlink:href", "javascript:void(0)");

	if (featureElement.hasAttribute("style")) {
		String elementStyle = featureElement.getAttribute("style");
		elementStyle = elementStyle + ";cursor:pointer";
		featureElement.setAttribute("style", elementStyle);
	} else {
		featureElement.setAttribute("style", "cursor:pointer");
	}

	featureElement.setAttribute("onclick", "javascript:clickedElementCrossNavigation('" + JSONValues.toString() + "', '" + JSONCross.toString() + "')");

	logger.debug("OUT");
}
 
源代码3 项目: Knowage-Server   文件: InteractiveMapRenderer.java
/**
 * Import scripts.
 *
 * @param doc
 *            the doc
 */
private void importScripts(SVGDocument doc) {
	importScipt(doc, "helper_functions.js");
	importScipt(doc, "timer.js");
	importScipt(doc, "mapApp.js");
	importScipt(doc, "timer.js");
	importScipt(doc, "slider.js");
	importScipt(doc, "button.js");
	importScipt(doc, "Window.js");
	importScipt(doc, "checkbox_and_radiobutton.js");
	importScipt(doc, "navigation.js");
	importScipt(doc, "tabgroup.js");
	importScipt(doc, "colourPicker.js");

	importScipt(doc, "custom/Utils.js");
	importScipt(doc, "custom/BarChart.js");
	importScipt(doc, "custom/NavigationWindow.js");
	importScipt(doc, "custom/LayersWindow.js");
	importScipt(doc, "custom/ThematicWindow.js");
	importScipt(doc, "custom/DetailsWindow.js");
	importScipt(doc, "custom/LegendWindow.js");
	importScipt(doc, "custom/ColourPickerWindow.js");
	importScipt(doc, "custom/ThresholdsFactory.js");
	importScipt(doc, "custom/ColourRangesFactory.js");

}
 
源代码4 项目: Knowage-Server   文件: SVGMapMerger.java
/**
 * Merge map.
 *
 * @param srcMap
 *            the src map
 * @param dstMap
 *            the dst map
 * @param srcId
 *            the src id
 * @param dstId
 *            the dst id
 */
public static void mergeMap(SVGDocument srcMap, SVGDocument dstMap, String srcId, String dstId) {
	SVGElement srcMapRoot;
	Element srcElement;
	Element dstElement;

	srcMapRoot = srcMap.getRootElement();
	srcElement = (srcId == null ? srcMapRoot : srcMap.getElementById(srcId));

	dstElement = dstMap.getElementById(dstId);

	NodeList nodeList = srcElement.getChildNodes();
	for (int i = 0; i < nodeList.getLength(); i++) {
		Node node = nodeList.item(i);
		Node importedNode = dstMap.importNode(node, true);
		dstElement.appendChild(importedNode);
	}
}
 
@Override
protected SVGDocument getSvgDocument(
	JasperReportsContext jasperReportsContext,
	SVGDocumentFactory documentFactory
	) throws JRException
{
	try
	{
		return 
			documentFactory.createSVGDocument(
				null, 
				new ByteArrayInputStream(
					dataRenderer.getData(jasperReportsContext)
					)
				);
	}
	catch (IOException e)
	{
		throw new JRRuntimeException(e);
	}
}
 
源代码6 项目: jasperreports   文件: SvgDataSniffer.java
/**
 * 
 */
public SvgInfo getSvgInfo(byte[] data)
{
	try
	{
		SVGDocument document = 
			documentFactory.createSVGDocument(
				null,
				new ByteArrayInputStream(data)
				);
		
		return new SvgInfo(document.getInputEncoding());
	}
	catch (IOException e)
	{
		return null;
	}
}
 
源代码7 项目: geomajas-project-server   文件: SvgLayerFactory.java
private GraphicsNode createNode(String svgContent) throws GeomajasException {
	// batik magic
	String parser = XMLResourceDescriptor.getXMLParserClassName();
	SAXSVGDocumentFactory f = new SAXSVGDocumentFactory(parser);
	SVGDocument document;
	try {
		document = f.createSVGDocument("", new StringReader(svgContent));
	} catch (IOException e) {
		throw new RasterException(e, RasterException.BAD_SVG, "Cannot parse SVG");
	}
	UserAgent userAgent = new UserAgentAdapter();
	DocumentLoader loader = new DocumentLoader(userAgent);
	BridgeContext bridgeContext = new BridgeContext(userAgent, loader);
	bridgeContext.setDynamic(true);
	GVTBuilder builder = new GVTBuilder();
	return builder.build(bridgeContext, document);
}
 
源代码8 项目: hop   文件: SvgCache.java
public synchronized static SvgCacheEntry loadSvg( SvgFile svgFile ) throws HopException {

    SvgCacheEntry cacheEntry = findSvg( svgFile.getFilename() );
    if (cacheEntry!=null) {
      return cacheEntry;
    }

    try {
      String parser = XMLResourceDescriptor.getXMLParserClassName();
      SAXSVGDocumentFactory factory = new SAXSVGDocumentFactory( parser );
      InputStream svgStream = svgFile.getClassLoader().getResourceAsStream( svgFile.getFilename() );

      if ( svgStream == null ) {
        throw new HopException( "Unable to find file '" + svgFile.getFilename() + "'" );
      }
      SVGDocument svgDocument = factory.createSVGDocument( svgFile.getFilename(), svgStream );

      Element elSVG = svgDocument.getRootElement();
      String widthString = elSVG.getAttribute( "width" );
      String heightString = elSVG.getAttribute( "height" );
      double width = Const.toDouble( widthString.replace( "px", "" ), -1 );
      double height = Const.toDouble( heightString.replace( "px", "" ), -1 );
      if ( width < 0 || height < 0 ) {
        throw new HopException( "Unable to find valid width or height in SVG document " + svgFile.getFilename() );
      }
      cacheEntry = new SvgCacheEntry( svgFile.getFilename(), svgDocument, (int)Math.round(width), (int)Math.round(height) );
      getInstance().fileDocumentMap.put( svgFile.getFilename(), cacheEntry );
      return cacheEntry;
    } catch ( Exception e ) {
      throw new HopException( "Error loading SVG file " + svgFile.getFilename(), e );
    }
  }
 
源代码9 项目: PDV   文件: Export.java
/**
 * Constructor
 * @param chart JFreeChart to export
 * @param bounds Dimensions of the viewport
 * @param exportFile Output file
 * @param imageType Image type
 */
public static void exportPic(JFreeChart chart, Rectangle bounds, File exportFile, ImageType imageType)
        throws IOException, TranscoderException {

    DOMImplementation domImplementation = SVGDOMImplementation.getDOMImplementation();
    String svgNS = "http://www.w3.org/2000/svg";
    SVGDocument svgDocument = (SVGDocument) domImplementation.createDocument(svgNS, "svg", null);

    SVGGraphics2D svgGraphics2D = new SVGGraphics2D(svgDocument);
    svgGraphics2D.setSVGCanvasSize(bounds.getSize());

    chart.draw(svgGraphics2D, bounds);

    exportExceptedFormatPic(exportFile, imageType, svgGraphics2D);
}
 
源代码10 项目: Knowage-Server   文件: InteractiveMapRenderer.java
private void addHRefLinksDrill(SVGDocument targetMap, Element featureElement, String elementId, String drillId, String linkUrl) {
	logger.debug("IN");
	Element linkCrossElement = targetMap.createElement("a");
	linkCrossElement.setAttribute("xlink:href", linkUrl);

	if (featureElement.hasAttribute("style")) {
		String elementStyle = featureElement.getAttribute("style");
		elementStyle = elementStyle + ";cursor:pointer";
		featureElement.setAttribute("style", elementStyle);
	} else {
		featureElement.setAttribute("style", "cursor:pointer");
	}

	// get document_id
	String documentId = (String) this.getEnv().get("DOCUMENT_ID");

	JSONObject jsonOEnv = new JSONObject();
	String strEnv = "";
	try {
		jsonOEnv = JSONUtils.getJsonFromMap(this.getEnv());
		jsonOEnv.remove("ENV_USER_PROFILE"); // clean profile info for correct url
		jsonOEnv.remove("level");
		jsonOEnv.remove("DOCUMENT_OUTPUT_PARAMETERS");
		strEnv = "&" + JSONUtils.getQueryString(jsonOEnv);
		// strEnv = SpagoBIUtilities.encode(strEnv.substring(0, strEnv.length() - 1)); //2017-29-30 commented because changes the parameter values
	} catch (JSONException je) {
		logger.error("An error occured while convert map [env] to json object: " + je);
	}
	// String strEnv = StringUtils.mapToString(this.getEnv());

	if (drillId == null) {
		// featureElement.setAttribute("onclick", "javascript:clickedElement('" + documentId + "','" + elementId + "')");
		featureElement.setAttribute("onclick", "javascript:clickedElement('" + strEnv + "','" + documentId + "','" + elementId + "')");
	} else {
		// featureElement.setAttribute("onclick", "javascript:clickedElement('" + documentId + "','" + elementId + "','" + drillId + "')");
		featureElement.setAttribute("onclick", "javascript:clickedElement('" + strEnv + "','" + documentId + "','" + elementId + "','" + drillId + "')");
	}

	logger.debug("OUT");
}
 
源代码11 项目: Knowage-Server   文件: InteractiveMapRenderer.java
/**
 * Include scripts.
 *
 * @param doc
 *            the doc
 */
private void includeScripts(SVGDocument doc) {
	Element scriptInit = doc.getElementById("included_scripts");
	Node scriptText = scriptInit.getFirstChild();
	StringBuffer buffer = new StringBuffer();
	includeScript(buffer, "helper_functions.js");
	includeScript(buffer, "timer.js");
	includeScript(buffer, "mapApp.js");
	includeScript(buffer, "timer.js");
	includeScript(buffer, "slider.js");
	includeScript(buffer, "button.js");
	includeScript(buffer, "Window.js");
	includeScript(buffer, "checkbox_and_radiobutton.js");
	includeScript(buffer, "navigation.js");
	includeScript(buffer, "tabgroup.js");
	includeScript(buffer, "colourPicker.js");

	includeScript(buffer, "custom/Utils.js");
	includeScript(buffer, "custom/BarChart.js");
	includeScript(buffer, "custom/NavigationWindow.js");
	includeScript(buffer, "custom/LayersWindow.js");
	includeScript(buffer, "custom/ThematicWindow.js");
	includeScript(buffer, "custom/DetailsWindow.js");
	includeScript(buffer, "custom/LegendWindow.js");
	includeScript(buffer, "custom/ColourPickerWindow.js");
	includeScript(buffer, "custom/ThresholdsFactory.js");
	includeScript(buffer, "custom/ColourRangesFactory.js");

	scriptText.setNodeValue(buffer.toString());
}
 
源代码12 项目: Knowage-Server   文件: InteractiveMapRenderer.java
private void importScipt(SVGDocument map, String scriptName) {
	Element script = map.createElement("script");
	script.setAttribute("type", "text/ecmascript");
	script.setAttribute("xlink:href", (String) getEnv().get(SvgViewerEngineConstants.ENV_CONTEXT_URL) + "/js/lib/svg-widgets/" + scriptName);
	Element importsBlock = map.getElementById("imported_scripts");
	importsBlock.appendChild(script);
	Node lf = map.createTextNode("\n");
	importsBlock.appendChild(lf);
}
 
源代码13 项目: Knowage-Server   文件: InteractiveMapRenderer.java
/**
 * Sets the main map bkg rect dimension.
 *
 * @param masterMap
 *            the master map
 * @param targetMap
 *            the target map
 */
public void setMainMapBkgRectDimension(SVGDocument masterMap, SVGDocument targetMap) {
	String viewBox = targetMap.getRootElement().getAttribute("viewBox");
	String[] chunks = viewBox.split(" ");
	String x = chunks[0];
	String y = chunks[1];
	String width = chunks[2];
	String height = chunks[3];
	Element mapBackgroundRect = masterMap.getElementById("mapBackgroundRect");
	mapBackgroundRect.setAttribute("x", x);
	mapBackgroundRect.setAttribute("y", y);
	mapBackgroundRect.setAttribute("width", width);
	mapBackgroundRect.setAttribute("height", height);
}
 
源代码14 项目: Knowage-Server   文件: SVGMapLoader.java
public SVGDocument loadMapAsDocument(Content map) throws IOException {
	String mapContent;

	mapContent = new String(DECODER.decodeBuffer(map.getContent()));
	documentFactory = new SAXSVGDocumentFactory(parser);
	return (SVGDocument) documentFactory.createDocument(null, new StringReader(mapContent));
}
 
源代码15 项目: mars-sim   文件: SVGLoader.java
/**
 * Load the SVG image with the specified name. This operation may either
 * create a new graphics node of returned a previously created one.
 * @param name Name of the SVG file to load.
 * @return GraphicsNode containing SVG image or null if none found.
 */
public static GraphicsNode getSVGImage(String name) {
	if (svgCache == null) svgCache = new HashMap<String, GraphicsNode>();

	GraphicsNode found = svgCache.get(name);
	if (found == null) {
		String fileName = SVG_DIR + name;
		URL resource = SVGLoader.class.getResource(fileName);

		try {
			String xmlParser = XMLResourceDescriptor.getXMLParserClassName();
			SAXSVGDocumentFactory df = new SAXSVGDocumentFactory(xmlParser);
			SVGDocument doc = df.createSVGDocument(resource.toString());
			UserAgent userAgent = new UserAgentAdapter();
			DocumentLoader loader = new DocumentLoader(userAgent);
			BridgeContext ctx = new BridgeContext(userAgent, loader);
			ctx.setDynamicState(BridgeContext.DYNAMIC);
			GVTBuilder builder = new GVTBuilder();
			found = builder.build(ctx, doc);

			svgCache.put(name, found);
		}
		catch (Exception e) {
			System.err.println("getSVGImage error: " + fileName);
			e.printStackTrace(System.err);
		}
	}

	return found;
}
 
源代码16 项目: zap-extensions   文件: WappalyzerJsonParser.java
private static ImageIcon createSvgIcon(URL url) throws Exception {
    if (url == null) {
        return null;
    }
    String xmlParser = XMLResourceDescriptor.getXMLParserClassName();
    SAXSVGDocumentFactory df = new SAXSVGDocumentFactory(xmlParser);
    SVGDocument doc = null;
    GraphicsNode svgIcon = null;
    try {
        doc = df.createSVGDocument(url.toString());
    } catch (RuntimeException re) {
        // v1 SVGs are unsupported
        return null;
    }
    doc.getRootElement().setAttribute("width", String.valueOf(SIZE));
    doc.getRootElement().setAttribute("height", String.valueOf(SIZE));
    UserAgent userAgent = new UserAgentAdapter();
    DocumentLoader loader = new DocumentLoader(userAgent);
    GVTBuilder builder = new GVTBuilder();
    try {
        svgIcon = builder.build(new BridgeContext(userAgent, loader), doc);
    } catch (BridgeException | StringIndexOutOfBoundsException ex) {
        logger.debug("Failed to parse SVG. " + ex.getMessage());
        return null;
    }

    AffineTransform transform = new AffineTransform(1, 0.0, 0.0, 1, 0, 0);
    BufferedImage image = new BufferedImage(SIZE, SIZE, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g2d = addRenderingHints(image);
    svgIcon.setTransform(transform);
    svgIcon.paint(g2d);
    g2d.dispose();
    return new ImageIcon(image);
}
 
/**
 * Extract the viewbox of the input SVG
 * @return
 * @throws MalformedURLException
 * @throws IOException
 */
private Rectangle extractSVGBounds(QualifiedSVGResource svg) throws IOException {
    // check <svg> attributes first : x, y, width, height
    SVGDocument svgDocument = getSVGDocument(svg);
    SVGSVGElement svgElement = svgDocument.getRootElement();
    if (svgElement.getAttributeNode("width") != null && svgElement.getAttribute("height") != null) {

        UserAgent userAgent = new DensityAwareUserAgent(svg.getDensity().getDpi());
        UnitProcessor.Context context = org.apache.batik.bridge.UnitProcessor.createContext(
                new BridgeContext(userAgent), svgElement);

        float width = svgLengthInPixels(svgElement.getWidth().getBaseVal(), context);
        float height = svgLengthInPixels(svgElement.getHeight().getBaseVal(), context);
        float x = 0;
        float y = 0;
        // check x and y attributes
        if (svgElement.getX() != null && svgElement.getX().getBaseVal() != null) {
            x = svgLengthInPixels(svgElement.getX().getBaseVal(), context);
        }
        if (svgElement.getY() != null && svgElement.getY().getBaseVal() != null) {
            y = svgLengthInPixels(svgElement.getY().getBaseVal(), context);
        }

        return new Rectangle((int) floor(x), (int) floor(y), (int) ceil(width), (int) ceil(height));
    }

    // use computed bounds
    log.warn("Take time to fix desired width and height attributes of the root <svg> node for this file... " +
            "ROI will be computed by magic using Batik " + boundsType.name() + " bounds");
    return boundsType.getBounds(getGraphicsNode(svgDocument, svg.getDensity().getDpi()));
}
 
private GraphicsNode getGraphicsNode(SVGDocument svgDocument, int dpi) throws IOException {
    UserAgent userAgent = new DensityAwareUserAgent(dpi);
    DocumentLoader loader = new DocumentLoader(userAgent);
    BridgeContext ctx = new BridgeContext(userAgent, loader);
    ctx.setDynamicState(BridgeContext.DYNAMIC);
    GVTBuilder builder = new GVTBuilder();
    GraphicsNode rootGN = builder.build(ctx, svgDocument);
    return rootGN;
}
 
源代码19 项目: hop   文件: SvgCacheEntry.java
public SvgCacheEntry( String filename, SVGDocument svgDocument, int width, int height ) {
  this.filename = filename;
  this.svgDocument = svgDocument;
  this.width = width;
  this.height = height;
}
 
源代码20 项目: hop   文件: SvgCacheEntry.java
/**
 * @param svgDocument The svgDocument to set
 */
public void setSvgDocument( SVGDocument svgDocument ) {
  this.svgDocument = svgDocument;
}
 
源代码21 项目: hop   文件: SvgCache.java
public synchronized static void addSvg( String filename, SVGDocument svgDocument, int width, int height ) {
  getInstance().fileDocumentMap.put( filename, new SvgCacheEntry( filename, svgDocument, width, height ) );
}
 
源代码22 项目: PDV   文件: Export.java
/**
 * Export component to pdf format
 * @param component Component
 * @param bounds Rectangle
 * @param exportFile Export file
 * @throws IOException
 * @throws TranscoderException
 */
private static void exportPDF(Component component, Rectangle bounds, File exportFile) throws IOException, TranscoderException {

    DOMImplementation domImplementation = SVGDOMImplementation.getDOMImplementation();
    String svgNS = "http://www.w3.org/2000/svg";
    SVGDocument svgDocument = (SVGDocument) domImplementation.createDocument(svgNS, "svg", null);

    SVGGraphics2D svgGraphics2D = new SVGGraphics2D(svgDocument);
    svgGraphics2D.setSVGCanvasSize(bounds.getSize());

    component.paintAll(svgGraphics2D);

    if (new File(exportFile.getAbsolutePath() + ".temp").exists()) {
        new File(exportFile.getAbsolutePath() + ".temp").delete();
    }

    File svgFile = new File(exportFile.getAbsolutePath() + ".temp");

    OutputStream outputStream = new FileOutputStream(svgFile);
    BufferedOutputStream bos = new BufferedOutputStream(outputStream);
    Writer out = new OutputStreamWriter(bos, "UTF-8");

    svgGraphics2D.stream(out, true);
    outputStream.flush();
    outputStream.close();
    out.close();
    bos.close();

    String svgURI = svgFile.toURI().toString();
    TranscoderInput svgInputFile = new TranscoderInput(svgURI);

    OutputStream outstream = new FileOutputStream(exportFile);
    bos = new BufferedOutputStream(outstream);
    TranscoderOutput output = new TranscoderOutput(bos);

    Transcoder pdfTranscoder = new PDFTranscoder();
    pdfTranscoder.addTranscodingHint(PDFTranscoder.KEY_DEVICE_RESOLUTION, (float) Toolkit.getDefaultToolkit().getScreenResolution());
    pdfTranscoder.transcode(svgInputFile, output);

    outstream.flush();
    outstream.close();
    bos.close();

    if (svgFile.exists()) {
        svgFile.delete();
    }

}
 
源代码23 项目: Knowage-Server   文件: InteractiveMapRenderer.java
/**
 * Add label to the centroide
 *
 * @param masterMap
 *            the svg content
 * @param centroide
 *            the centroide svg element
 * @param labelGroup
 *            the svg label group element
 * @param aRecord
 *            the record with values
 * @param labelField
 *            the label field
 */
private void addLabels(SVGDocument masterMap, Element centroide, Element labelGroup, IRecord aRecord, IField labelField) {
	logger.debug("IN");
	labelGroup.setAttribute("transform", "translate(" + centroide.getAttribute("cx") + "," + centroide.getAttribute("cy") + ") scale(1)");
	labelGroup.setAttribute("display", "inherit");

	Element label = masterMap.createElement("text");
	label.setAttribute("x", "0");
	label.setAttribute("y", "0");

	label.setAttribute("font-family", "Arial,Helvetica");
	label.setAttribute("font-size", "12px");
	label.setAttribute("font-style", "normal");
	label.setAttribute("fill", "black");
	// label.setAttribute("text-anchor", "middle");
	// get text-anchor property:
	// 1. throught text-anchor property
	// 2. throught style property
	// 3. if it isn't found force 'middle' as default
	String anchor = "middle";
	String anchorProperty = centroide.getAttribute("text-anchor");
	if (anchorProperty != null && anchorProperty.equals("start") || anchorProperty.equals("middle") || anchorProperty.equals("end")) {
		anchor = anchorProperty;
	} else {
		String styleProperty = centroide.getAttribute("style");
		int anchorPropertyPosStart = styleProperty.indexOf("text-anchor:");
		int anchorPropertyPosEnd = styleProperty.indexOf(";", anchorPropertyPosStart);
		if (null != styleProperty && anchorPropertyPosStart >= 0) {
			anchorProperty = styleProperty.substring(anchorPropertyPosStart + 12, anchorPropertyPosEnd);
			anchor = anchorProperty;
			// clean the style from the anchor information
			styleProperty = styleProperty.replace(styleProperty.substring(anchorPropertyPosStart, anchorPropertyPosEnd + 1), "");
			centroide.setAttribute("style", styleProperty);
		}
	}
	label.setAttribute("text-anchor", anchor);
	Node labelText = masterMap.createTextNode((String) labelField.getValue());
	label.appendChild(labelText);
	labelGroup.appendChild(label);
	if (labelGroup != null) {
		// append labels to default layer "valori"
		Element valuesLayer = masterMap.getElementById("_labels_layer");
		valuesLayer.appendChild(labelGroup);
	}

}
 
源代码24 项目: Knowage-Server   文件: InteractiveMapRenderer.java
/**
 * Show or hide elements through the specific column value
 *
 * @param masterMap
 *            the svg content
 *
 * @param geoIdField
 *            the element id field
 * @param visibilityIdField
 *            the visibility field
 */
private void showElements(SVGDocument masterMap, IField geoIdField, IField visibilityIdField) {
	logger.debug("IN");

	String id_element = (String) geoIdField.getValue();
	String elementVisibility = (String) visibilityIdField.getValue();
	try {
		Element element = masterMap.getElementById(id_element);
		if (element != null) {
			String displayStyle = "";
			String elementStyle = element.getAttribute("style");
			// clean style from ;;
			if (elementStyle.indexOf(";;") >= 0) {
				elementStyle = elementStyle.replaceAll(";;", ";");
			}
			// get original display option if present
			int displayStyleStart = elementStyle.indexOf("display:");
			String displayStyleValue = "";

			// if (displayStyleStart >= 0) {
			// int displayStyleEnd = -1;
			// try {
			// displayStyleEnd = elementStyle.indexOf(";", displayStyleStart);
			// displayStyleValue = elementStyle.substring(displayStyleStart, displayStyleEnd + 1);
			// } catch (StringIndexOutOfBoundsException se) {
			// logger.error("An error occured while getting style content of element with id [" + id_element
			// + "]. Please, check that ALL the style elements into the SVG have the final [;] char. Ex: [display:none;]");
			// throw se;
			// }
			// elementStyle = elementStyle.replace(displayStyleValue, ""); // clean old style
			// }

			// Manage 'display:none' or 'display:none;' properties
			if (displayStyleStart >= 0) {
				int displayStyleEnd = -1;
				String displayContent = "";
				try {
					// case with ; or other properties
					if (elementStyle.length() >= displayStyleStart + 13) {
						displayContent = elementStyle.substring(displayStyleStart, displayStyleStart + 13);
					} else {
						// case without ';'. Style value is : style="display:none"
						displayContent = elementStyle.substring(displayStyleStart, displayStyleStart + 12);
					}
					displayContent = displayContent.trim();
					if (displayContent.indexOf("none") >= 0) {
						displayStyleEnd = displayStyleStart + 12;
						if (displayContent.indexOf(";") > 0)
							displayStyleEnd = displayStyleEnd + 1;
					}
					displayStyleValue = elementStyle.substring(displayStyleStart, displayStyleEnd);
				} catch (StringIndexOutOfBoundsException se) {
					logger.error("An error occured while getting style content of element with id [" + id_element
							+ "]. Please, check that ALL the style elements into the SVG have the final [;] char. Ex: [display:none;]");
					throw se;
				}
				elementStyle = elementStyle.replace(displayStyleValue, ""); // clean old style
			}

			if (elementVisibility.equalsIgnoreCase("false")) {
				displayStyle = elementStyle + ";display:none;";
			} else {
				displayStyle = elementStyle;
			}
			// sets new visibility style for the element
			element.setAttribute("style", displayStyle);
		}
	} catch (Exception e) {
		logger.error("An error occured while managing show property for the element [" + id_element + "]");
		throw e;
	}
	logger.debug("OUT");
}
 
源代码25 项目: Knowage-Server   文件: AbstractMapProvider.java
@Override
public SVGDocument getSVGMapDOMDocument() throws SvgViewerEngineRuntimeException {
	return getSVGMapDOMDocument(selectedMapName);
}
 
源代码26 项目: Knowage-Server   文件: AbstractMapProvider.java
@Override
public SVGDocument getSVGMapDOMDocument(String mapName) throws SvgViewerEngineRuntimeException {
	return null;
}
 
源代码27 项目: Knowage-Server   文件: AbstractMapProvider.java
@Override
public SVGDocument getSVGMapDOMDocument(HierarchyMember member) throws SvgViewerEngineRuntimeException {
	return getSVGMapDOMDocument(member);
}
 
protected synchronized GraphicsNode getRootNode(JasperReportsContext jasperReportsContext) throws JRException
{
	if (rootNodeRef == null || rootNodeRef.get() == null)
	{
		FontFamilyResolver fontFamilyResolver = BatikFontFamilyResolver.getInstance(jasperReportsContext);
		
		UserAgent userAgentForDoc = 
			new BatikUserAgent(
				fontFamilyResolver,
				BatikUserAgent.PIXEL_TO_MM_72_DPI
				);
		
		SVGDocumentFactory documentFactory =
			new SAXSVGDocumentFactory(userAgentForDoc.getXMLParserClassName(), true);
		documentFactory.setValidating(userAgentForDoc.isXMLParserValidating());

		SVGDocument document = getSvgDocument(jasperReportsContext, documentFactory);

		Node svgNode = document.getElementsByTagName("svg").item(0);
		Node svgWidthNode = svgNode.getAttributes().getNamedItem("width");
		Node svgHeightNode = svgNode.getAttributes().getNamedItem("height");
		String strSvgWidth = svgWidthNode == null ? null : svgWidthNode.getNodeValue().trim();
		String strSvgHeight = svgHeightNode == null ? null : svgHeightNode.getNodeValue().trim();
		
		float pixel2mm = BatikUserAgent.PIXEL_TO_MM_72_DPI;
		if (
			(strSvgWidth != null && strSvgWidth.endsWith("mm"))
			|| (strSvgHeight != null && strSvgHeight.endsWith("mm"))
			)
		{
			pixel2mm = BatikUserAgent.PIXEL_TO_MM_96_DPI;
		}
		
		UserAgent userAgentForCtx = 
			new BatikUserAgent(
				fontFamilyResolver,
				pixel2mm
				);
			
		BridgeContext ctx = new BridgeContext(userAgentForCtx);
		ctx.setDynamic(true);
		GVTBuilder builder = new GVTBuilder();
		GraphicsNode rootNode = builder.build(ctx, document);
		rootNodeRef = new SoftReference<GraphicsNode>(rootNode);
		
		//copying the document size object because it has a reference to SVGSVGElementBridge,
		//which prevents rootNodeRef from being cleared by the garbage collector
		Dimension2D svgSize = ctx.getDocumentSize();
		documentSize = new SimpleDimension2D(svgSize.getWidth(), svgSize.getHeight());
	}
	
	return rootNodeRef.get();
}
 
/**
 * 
 */
protected abstract SVGDocument getSvgDocument(
	JasperReportsContext jasperReportsContext,
	SVGDocumentFactory documentFactory
	) throws JRException;
 
源代码30 项目: jasperreports   文件: BatikRenderer.java
protected synchronized void ensureSvg(JasperReportsContext jasperReportsContext) throws JRException
{
	if (rootNode != null)
	{
		// already loaded
		return;
	}

	ensureData(jasperReportsContext);
	
	try
	{
		UserAgent userAgent = new BatikUserAgent(jasperReportsContext);
		
		SVGDocumentFactory documentFactory =
			new SAXSVGDocumentFactory(userAgent.getXMLParserClassName(), true);
		documentFactory.setValidating(userAgent.isXMLParserValidating());

		SVGDocument document;
		if (svgText != null)
		{
			document = documentFactory.createSVGDocument(null,
					new StringReader(svgText));
		}
		else
		{
			document = documentFactory.createSVGDocument(null,
					new ByteArrayInputStream(svgData));
		}

		BridgeContext ctx = new BridgeContext(userAgent);
		ctx.setDynamic(true);
		GVTBuilder builder = new GVTBuilder();
		rootNode = builder.build(ctx, document);
		documentSize = ctx.getDocumentSize();
	}
	catch (IOException e)
	{
		throw new JRRuntimeException(e);
	}
}
 
 类所在包
 同包方法