public class FileSinkTikZ extends FileSinkBase
writeAll(Graph,*)
is working, dynamics is not handle. If the
exported graph is a GraphicGraph, then CSS style of the graph will be used.
For a better rendering, it is strongly recommended to run previously a layout
algorithm that will add coordinates on nodes. Else, random coordinates will
be choosen for nodes. Layout can be run in this way :
Graph g;
...
SpringBox sbox = new SpringBox();
g.addSink(sbox);
sbox.addAttributeSink(g);
do sbox.compute(); while (sbox.getStabilization() < 0.9);
g.removeSink(sbox);
sbox.remoteAttributeSink(g);
TikZ pictures are scalable so pixel units is not handle here. The picture is
bounded in a box which width and height can be defined by adding attributes
to the graph:
Modifier and Type | Class and Description |
---|---|
protected class |
FileSinkTikZ.PointsWrapper |
Modifier and Type | Field and Description |
---|---|
protected GraphicGraph |
buffer |
protected HashMap<String,String> |
classes |
protected int |
classIndex |
protected HashMap<String,String> |
classNames |
protected int |
colorIndex |
protected HashMap<String,String> |
colors |
protected String |
css |
static double |
DEFAULT_HEIGHT |
static double |
DEFAULT_WIDTH |
static double |
DISPLAY_MAX_SIZE_IN_MM
Define the default maximum size of nodes when using a dynamic size.
|
static double |
DISPLAY_MIN_SIZE_IN_MM
Define the default minimum size of nodes when using a dynamic size.
|
protected double |
displayMaxSize |
protected double |
displayMinSize |
protected double |
height |
static String |
HEIGHT_ATTR
Graph attribute storing height of the TikZ picture.
|
private Locale |
l |
protected boolean |
layout |
protected double |
maxSize |
protected double |
minSize |
protected PrintWriter |
out |
private FileSinkTikZ.PointsWrapper |
points |
protected double |
width |
static String |
WIDTH_ATTR
Graph attribute storing width of the TikZ picture.
|
private double |
xmax |
private double |
xmin |
static String |
XYZ_ATTR
Node attribute storing coordinates.
|
private double |
ymax |
private double |
ymin |
output
Constructor and Description |
---|
FileSinkTikZ() |
Modifier and Type | Method and Description |
---|---|
private void |
checkAndOutputStyle() |
protected String |
checkColor(Color c) |
private void |
checkLayout() |
private void |
checkXYandSize() |
void |
edgeAdded(String sourceId,
long timeId,
String edgeId,
String fromNodeId,
String toNodeId,
boolean directed)
An edge was inserted in graph.
|
void |
edgeAttributeAdded(String sourceId,
long timeId,
String edgeId,
String attribute,
Object value)
A edge attribute was added.
|
void |
edgeAttributeChanged(String sourceId,
long timeId,
String edgeId,
String attribute,
Object oldValue,
Object newValue)
A edge attribute was changed.
|
void |
edgeAttributeRemoved(String sourceId,
long timeId,
String edgeId,
String attribute)
A edge attribute was removed.
|
void |
edgeRemoved(String sourceId,
long timeId,
String edgeId)
An edge of graph was removed.The nodes the edge connects may already have
been removed from the graph.
|
protected static String |
formatId(String id) |
protected String |
getEdgeStyle(Edge e) |
double |
getHeight() |
protected String |
getNodeStyle(Node n) |
protected double |
getNodeX(Node n) |
protected double |
getNodeY(Node n) |
protected String |
getTikzStyle(StyleGroup group)
Convert a StyleGroup to tikz style.
|
double |
getWidth() |
void |
graphAttributeAdded(String sourceId,
long timeId,
String attribute,
Object value)
A graph attribute was added.
|
void |
graphAttributeChanged(String sourceId,
long timeId,
String attribute,
Object oldValue,
Object newValue)
A graph attribute was changed.
|
void |
graphAttributeRemoved(String sourceId,
long timeId,
String attribute)
A graph attribute was removed.
|
void |
graphCleared(String sourceId,
long timeId)
The whole graph was cleared.
|
void |
nodeAdded(String sourceId,
long timeId,
String nodeId)
A node was inserted in the given graph.
|
void |
nodeAttributeAdded(String sourceId,
long timeId,
String nodeId,
String attribute,
Object value)
A node attribute was added.
|
void |
nodeAttributeChanged(String sourceId,
long timeId,
String nodeId,
String attribute,
Object oldValue,
Object newValue)
A node attribute was changed.
|
void |
nodeAttributeRemoved(String sourceId,
long timeId,
String nodeId,
String attribute)
A node attribute was removed.
|
void |
nodeRemoved(String sourceId,
long timeId,
String nodeId)
A node was removed from the graph.
|
private void |
outputEdge(Edge e) |
protected void |
outputEndOfFile()
Method called at the end just before the
FileSinkBase.output field is flushed
and closed. |
protected void |
outputHeader()
Method called at start just after the
FileSinkBase.output field is created. |
private void |
outputNode(Node n) |
void |
setCSS(String css) |
void |
setDisplaySize(double min,
double max) |
void |
setHeight(double height) |
void |
setLayout(boolean layout) |
void |
setWidth(double width) |
void |
stepBegins(String sourceId,
long timeId,
double step)
Since dynamic graphs are based on discrete event modifications, the
notion of step is defined to simulate elapsed time between events.
|
begin, begin, begin, createWriter, createWriter, createWriter, end, exportGraph, flush, writeAll, writeAll, writeAll
public static final String XYZ_ATTR
public static final String WIDTH_ATTR
public static final String HEIGHT_ATTR
public static final double DEFAULT_WIDTH
public static final double DEFAULT_HEIGHT
public static final double DISPLAY_MIN_SIZE_IN_MM
public static final double DISPLAY_MAX_SIZE_IN_MM
protected PrintWriter out
protected HashMap<String,String> classNames
protected int classIndex
protected int colorIndex
protected double width
protected double height
protected boolean layout
protected GraphicGraph buffer
protected double minSize
protected double maxSize
protected double displayMinSize
protected double displayMaxSize
private double xmin
private double ymin
private double xmax
private double ymax
private FileSinkTikZ.PointsWrapper points
public FileSinkTikZ()
public double getWidth()
public void setWidth(double width)
public double getHeight()
public void setHeight(double height)
public void setDisplaySize(double min, double max)
public void setLayout(boolean layout)
protected String getNodeStyle(Node n)
protected String getEdgeStyle(Edge e)
protected String checkColor(Color c)
protected String getTikzStyle(StyleGroup group)
group
- the style group to convertprotected void outputHeader() throws IOException
FileSinkBase
FileSinkBase.output
field is created.
Use it to output the header of the file.outputHeader
in class FileSinkBase
IOException
- If any I/O error occurs.protected void outputEndOfFile() throws IOException
FileSinkBase
FileSinkBase.output
field is flushed
and closed. Use it to output any information that closes the file.outputEndOfFile
in class FileSinkBase
IOException
- If any I/O error occurs.private void checkLayout()
private void checkXYandSize()
private void checkAndOutputStyle()
private void outputNode(Node n)
private void outputEdge(Edge e)
public void graphAttributeAdded(String sourceId, long timeId, String attribute, Object value)
AttributeSink
sourceId
- Identifier of the graph where the attribute changed.attribute
- The attribute name.value
- The attribute new value.public void graphAttributeChanged(String sourceId, long timeId, String attribute, Object oldValue, Object newValue)
AttributeSink
sourceId
- Identifier of the graph where the attribute changed.attribute
- The attribute name.oldValue
- The attribute old value.newValue
- The attribute new value.public void graphAttributeRemoved(String sourceId, long timeId, String attribute)
AttributeSink
sourceId
- Identifier of the graph where the attribute was removed.attribute
- The removed attribute name.public void nodeAttributeAdded(String sourceId, long timeId, String nodeId, String attribute, Object value)
AttributeSink
sourceId
- Identifier of the graph where the change occurred.nodeId
- Identifier of the node whose attribute changed.attribute
- The attribute name.value
- The attribute new value.public void nodeAttributeChanged(String sourceId, long timeId, String nodeId, String attribute, Object oldValue, Object newValue)
AttributeSink
sourceId
- Identifier of the graph where the change occurred.nodeId
- Identifier of the node whose attribute changed.attribute
- The attribute name.oldValue
- The attribute old value.newValue
- The attribute new value.public void nodeAttributeRemoved(String sourceId, long timeId, String nodeId, String attribute)
AttributeSink
sourceId
- Identifier of the graph where the attribute was removed.nodeId
- Identifier of the node whose attribute was removed.attribute
- The removed attribute name.public void edgeAttributeAdded(String sourceId, long timeId, String edgeId, String attribute, Object value)
AttributeSink
sourceId
- Identifier of the graph where the change occurred.edgeId
- Identifier of the edge whose attribute changed.attribute
- The attribute name.value
- The attribute new value.public void edgeAttributeChanged(String sourceId, long timeId, String edgeId, String attribute, Object oldValue, Object newValue)
AttributeSink
sourceId
- Identifier of the graph where the change occurred.edgeId
- Identifier of the edge whose attribute changed.attribute
- The attribute name.oldValue
- The attribute old value.newValue
- The attribute new value.public void edgeAttributeRemoved(String sourceId, long timeId, String edgeId, String attribute)
AttributeSink
sourceId
- Identifier of the graph where the attribute was removed.edgeId
- Identifier of the edge whose attribute was removed.attribute
- The removed attribute name.public void nodeAdded(String sourceId, long timeId, String nodeId)
ElementSink
sourceId
- Identifier of the graph where the node was added.nodeId
- Identifier of the added node.public void nodeRemoved(String sourceId, long timeId, String nodeId)
ElementSink
sourceId
- Identifier of the graph where the node will be removed.nodeId
- Identifier of the removed node.public void edgeAdded(String sourceId, long timeId, String edgeId, String fromNodeId, String toNodeId, boolean directed)
ElementSink
sourceId
- Identifier of the graph where the edge was added.edgeId
- Identifier of the added edge.fromNodeId
- Identifier of the first node of the edge.toNodeId
- Identifier of the second node of the edge.directed
- If true, the edge is directed.public void edgeRemoved(String sourceId, long timeId, String edgeId)
ElementSink
sourceId
- The graph where the edge will be removed.edgeId
- The edge that will be removed.public void graphCleared(String sourceId, long timeId)
ElementSink
sourceId
- The graph cleared.public void stepBegins(String sourceId, long timeId, double step)
ElementSink
Since dynamic graphs are based on discrete event modifications, the notion of step is defined to simulate elapsed time between events. So a step is a event that occurs in the graph, it does not modify it but it gives a kind of timestamp that allow the tracking of the progress of the graph over the time.
This kind of event is useful for dynamic algorithms that listen to the dynamic graph and need to measure the time in the graph's evolution.
sourceId
- Identifier of the graph where the step starts.timeId
- A numerical value that may give a timestamp to track the
evolution of the graph over the time.WebARTS Library Licensed Under the GNU - General Public License. Other Libraries licensed under their respective Open Source Licenses