![JAR search and dependency download from the Maven repository](/logo.png)
org.abego.treelayout.demo.svg.SVGDemo Maven / Gradle / Ivy
/*
* [The "BSD license"]
* Copyright (c) 2011, abego Software GmbH, Germany (http://www.abego.org)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of the abego Software GmbH nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
package org.abego.treelayout.demo.svg;
import org.abego.treelayout.TreeForTreeLayout;
import org.abego.treelayout.TreeLayout;
import org.abego.treelayout.demo.SampleTreeFactory;
import org.abego.treelayout.demo.TextInBox;
import org.abego.treelayout.demo.TextInBoxNodeExtentProvider;
import org.abego.treelayout.util.DefaultConfiguration;
/**
* Demonstrates how to use the {@link TreeLayout} to create a tree diagram with
* SVG (Scalable Vector Graphic)
*
* The rendered SVG looks like this:
*
*
*
* Link: The SVG file (only viewable in SVG aware
* browsers)
*
* @author Udo Borkowski ([email protected])
*/
public class SVGDemo {
/**
* Returns an SVG text displaying a tree with nodes placed according to a
* layout created by {@link TreeLayout}.
*
* @param args [unused]
*/
public static void main(String[] args) {
// get the sample tree
TreeForTreeLayout tree = SampleTreeFactory
.createSampleTree();
// setup the tree layout configuration
double gapBetweenLevels = 50;
double gapBetweenNodes = 10;
DefaultConfiguration configuration = new DefaultConfiguration(
gapBetweenLevels, gapBetweenNodes);
// create the NodeExtentProvider for TextInBox nodes
TextInBoxNodeExtentProvider nodeExtentProvider = new TextInBoxNodeExtentProvider();
// create the layout
TreeLayout treeLayout = new TreeLayout(tree,
nodeExtentProvider, configuration);
// Generate the SVG and write it to System.out
SVGForTextInBoxTree generator = new SVGForTextInBoxTree(treeLayout);
System.out.println(generator.getSVG());
}
}