|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.yworks.yfiles.server.graphml.support.AbstractGraphRoundtripSupport
com.yworks.yfiles.server.graphml.support.GraphRoundtripSupportBase
Utility class that helps during Graph roundtrips to the client. This instance can be used to create a temporary graph, receive it from a client's request and send it back to the client.
| Nested Class Summary | |
static class |
GraphRoundtripSupportBase.RoundtripGraphMLLayoutGraphIOHandler
A special GraphML I/O handler implementation that adds support for roundtrips with a yFiles FLEX client. |
| Field Summary | |
static java.lang.String |
EDGE_LABELS_DPKEY
The DataMap key that is used to bind Lists of yFiles FLEX client compatibility
Label instances. |
static java.lang.String |
EDGE_SOURCE_PORT_DPKEY
The DataMap key that is used to bind a yFiles FLEX client compatibility
Port instance for the source port of an edge. |
static java.lang.String |
EDGE_STYLE_DPKEY
The DataMap key that is used to bind the yFiles FLEX client compatibility IEdgeStyle instances. |
static java.lang.String |
EDGE_TARGET_PORT_DPKEY
The DataMap key that is used to bind a yFiles FLEX client compatibility
Port instance for the target port of an edge. |
static java.lang.String |
EDGE_Z_ORDER_DPKEY
The DataMap key that is used to bind the z-order for edges used on a yFiles FLEX client. |
static java.lang.String |
NODE_LABELS_DPKEY
The DataMap key that is used to bind Lists of yFiles FLEX client compatibility
Label instances. |
static java.lang.String |
NODE_PORTS_DPKEY
The DataMap key that is used to bind Lists of yFiles FLEX client compatibility
Port instances. |
static java.lang.String |
NODE_STYLE_DPKEY
The DataMap key that is used to bind the yFiles FLEX client compatibility INodeStyle instances. |
static java.lang.String |
NODE_Z_ORDER_DPKEY
The DataMap key that is used to bind the z-order for nodes used on a yFiles FLEX client. |
static java.lang.String |
SHARED_DATA_DPKEY
|
static java.lang.String |
TABLE_DPKEY
The DataMap key that is used to bind tables to nodes used on a yFiles FLEX client.
|
| Fields inherited from class com.yworks.yfiles.server.graphml.support.AbstractGraphRoundtripSupport |
EDGE_2_ID_DPKEY, mappers, NODE_2_ID_DPKEY, objectMappers, PARAM_GRAPH, RESPONSE_DOCUMENT_TAG, USERTAGS_DPKEY |
| Constructor Summary | |
GraphRoundtripSupportBase()
|
|
| Method Summary | |
void |
addDeserializer(DeserializationHandler deserializer)
Add a deserializer instance that will be registered with the GraphMLHandler in addRegisteredHandlers(y.io.graphml.GraphMLHandler). |
protected void |
addRegisteredHandlers(GraphMLHandler handler)
All default SerializationHandler and DeserializationHandler instances as well as those
added via addSerializer(y.io.graphml.output.SerializationHandler)
or addDeserializer(y.io.graphml.input.DeserializationHandler) are added to the handler for reading and
writing the yFiles FLEX client's GraphML format.
|
void |
addSerializer(SerializationHandler serializer)
Add a serializer instance that will be registered with the GraphMLHandler in addRegisteredHandlers(y.io.graphml.GraphMLHandler). |
protected void |
configureHandler(GraphMLLayoutGraphIOHandler handler)
Configures the provided handler. |
protected void |
configureRoundtripGraph(LayoutGraph layoutGraph)
Called by createRoundtripGraph() to configure the created graph instance.
|
protected GraphMLLayoutGraphIOHandler |
createHandler()
Creates the handler that will be used for the IO. |
LayoutGraph |
createRoundtripGraph()
Creates the graph that should be used for the roundtrip. |
protected SharedDataOutputHandler |
createSharedDataOutputHandler()
Create the output handler that writes shared elements. |
YDimension |
getDefaultNodeSize()
The default node size that will be used for newly created nodes of a layout graph that has been created using createRoundtripGraph(). |
GraphMLVersion |
getGraphMLVersion()
The version string that will be used for writing the version attribute of the GraphML element. |
ISharedInstanceProvider |
getSharedInstanceProvider()
|
boolean |
isAutoReadMapperData()
Whether mapped data contained in the GraphML data should be automatically deserialized to a data map and registered with the graph. |
boolean |
isAutoWriteMapperData()
Whether mapped data registered with the graph as a data provider should be automatically serialized. |
boolean |
isCommitPortLocations()
Whether the location of the edges' end points is committed to the edges' source and target ports when writing the graph. |
boolean |
isDocumentFragmentMode()
Whether the style and label elements sent from the client will be parsed into and written from DocumentFragments. |
boolean |
isFoldingEnabled()
Whether support for folded graphs is enabled. |
boolean |
isIgnoreMissingDeserializer()
Returns whether to ignore if no DeserializationHandler can be found during parsing.
|
boolean |
isLocalViewMode()
If folding is enabled, this property determines
whether only the current expanded/collapsed state is sent to the client,
instead of the complete model. |
boolean |
isMapLabelModels()
Whether client-side label models will be mapped to server-side label models when reading and vice-verse when writing the graph. |
boolean |
isParseGraphMLVersion()
Whether to set the graphMLVersionString property to the last parsed version String, thus always
writing the GraphML version string that was most recently parsed. |
boolean |
isSupportTables()
Whether to support tables. |
boolean |
isSupportZOrder()
Whether to support z-orders of graph elements automatically. |
void |
readGraph(java.io.InputStream is,
Graph graph)
Reads the graph from the given stream using the current handler. |
void |
readGraph(java.net.URL url,
Graph graph)
Reads the graph from the given url using the current handler. |
void |
sendGraph(Graph graph,
java.io.OutputStream os,
java.lang.String outputEncoding)
Writes the current graph to the stream in GraphML format using the provided encoding. |
void |
setAutoReadMapperData(boolean autoReadMapperData)
Set whether mapped data contained in the GraphML data should be automatically deserialized to a data map and registered with the graph. |
void |
setAutoWriteMapperData(boolean autoWriteMapperData)
Set whether mapped data registered with the graph as a data provider should be automatically serialized. |
void |
setCommitPortLocations(boolean commitPortLocations)
Whether the location of the edges' end points is committed to the edges' source and target ports when writing the graph. |
void |
setDefaultNodeSize(YDimension defaultNodeSize)
Deprecated. Use StyledLayoutGraph and it's
StyledLayoutGraph.setDefaultNodeSize(y.geom.YDimension)
method instead. |
void |
setDocumentFragmentMode(boolean documentFragmentMode)
Whether the style and label elements sent from the client will be parsed into and written from DocumentFragments. |
void |
setFoldingEnabled(boolean foldingEnabled)
Whether support for folded graphs is enabled. |
void |
setGraphMLVersion(GraphMLVersion graphMLVersion)
Set the version string that will be used for writing the version attribute of the GraphML element. |
void |
setIgnoreMissingDeserializer(boolean ignoreMissingDeserializer)
Sets whether to ignore if no DeserializationHandler can be found during parsing.
|
void |
setLocalViewMode(boolean localViewMode)
If folding is enabled, this property determines
whether only the current expanded/collapsed state is sent to the client,
instead of the complete model. |
void |
setMapLabelModels(boolean mapLabelModels)
Set whether the IO should be configured to map client-side label models to server-side label models. |
void |
setParseGraphMLVersion(boolean parseGraphMLVersion)
Whether to set the graphMLVersion property to the last parsed version String, thus always writing the
GraphML version string that was most recently parsed. |
void |
setSharedInstanceProvider(ISharedInstanceProvider sharedInstanceProvider)
|
void |
setSupportTables(boolean supportTables)
Whether to support tables. |
void |
setSupportZOrder(boolean supportZOrder)
Set whether to support z-orders of graph elements automatically. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static final java.lang.String NODE_STYLE_DPKEY
DataMap key that is used to bind the yFiles FLEX client compatibility INodeStyle instances. If isDocumentFragmentMode() is
true, xml document fragments will be contained in the data provider instead.
isDocumentFragmentMode(),
Constant Field Valuespublic static final java.lang.String EDGE_STYLE_DPKEY
DataMap key that is used to bind the yFiles FLEX client compatibility IEdgeStyle instances. If isDocumentFragmentMode() is
true, xml document fragments will be contained in the data provider instead.
isDocumentFragmentMode(),
Constant Field Valuespublic static final java.lang.String NODE_LABELS_DPKEY
DataMap key that is used to bind Lists of yFiles FLEX client compatibility
Label instances. If isDocumentFragmentMode() is
true, xml document fragments will be contained in the data provider instead.
isDocumentFragmentMode(),
Constant Field Valuespublic static final java.lang.String NODE_PORTS_DPKEY
DataMap key that is used to bind Lists of yFiles FLEX client compatibility
Port instances.
public static final java.lang.String EDGE_LABELS_DPKEY
DataMap key that is used to bind Lists of yFiles FLEX client compatibility
Label instances. If isDocumentFragmentMode() is
true, xml document fragments will be contained in the data provider instead.
isDocumentFragmentMode(),
Constant Field Valuespublic static final java.lang.String EDGE_SOURCE_PORT_DPKEY
DataMap key that is used to bind a yFiles FLEX client compatibility
Port instance for the source port of an edge.
public static final java.lang.String EDGE_TARGET_PORT_DPKEY
DataMap key that is used to bind a yFiles FLEX client compatibility
Port instance for the target port of an edge.
public static final java.lang.String NODE_Z_ORDER_DPKEY
DataMap key that is used to bind the z-order for nodes used on a yFiles FLEX client.
public static final java.lang.String EDGE_Z_ORDER_DPKEY
DataMap key that is used to bind the z-order for edges used on a yFiles FLEX client.
public static final java.lang.String TABLE_DPKEY
DataMap key that is used to bind tables to nodes used on a yFiles FLEX client.
This map is meant to handle tables if no styles are intended to be sent to the client.
If styles are sent to the client, too, and the tables are bound to the nodes via a style which
implements ITableProvider it is recommended
not to use this map but the table provider instead.
public static final java.lang.String SHARED_DATA_DPKEY
| Constructor Detail |
public GraphRoundtripSupportBase()
| Method Detail |
public boolean isFoldingEnabled()
If folding support is enabled, a FoldedLayoutGraph instance
will be created by createRoundtripGraph(), and the GraphML I/O
support will be configured accordingly.
public void setFoldingEnabled(boolean foldingEnabled)
If folding support is enabled, a FoldedLayoutGraph instance
will be created by createRoundtripGraph(), and the GraphML I/O
support will be configured accordingly.
public boolean isLocalViewMode()
folding is enabled, this property determines
whether only the current expanded/collapsed state is sent to the client,
instead of the complete model.
public void setLocalViewMode(boolean localViewMode)
folding is enabled, this property determines
whether only the current expanded/collapsed state is sent to the client,
instead of the complete model.
public boolean isAutoReadMapperData()
Note that deserialization of complex data will only work if an appropriate DeserializationHandler
instance is registered.
The default value is true.
public void setAutoReadMapperData(boolean autoReadMapperData)
Note that deserialization of complex data will only work if an appropriate DeserializationHandler
instance is registered.
public boolean isAutoWriteMapperData()
Note that serialization of complex data will only work if an appropriate SerializationHandler
instance is registered.
The default value is true.
public void setAutoWriteMapperData(boolean autoWriteMapperData)
Note that serialization of complex data will only work if an appropriate SerializationHandler
instance is registered.
public boolean isDocumentFragmentMode()
DocumentFragments. If false the container objects from package com.yworks.yfiles.server.graphml.flexio.data will be used. The default value is false.
FlexIOTools,
NODE_STYLE_DPKEY,
EDGE_STYLE_DPKEY,
NODE_LABELS_DPKEY,
EDGE_LABELS_DPKEYpublic void setDocumentFragmentMode(boolean documentFragmentMode)
DocumentFragments. If false the container objects from package com.yworks.yfiles.server.graphml.flexio.data will be used. The default value is false.
FlexIOTools,
NODE_STYLE_DPKEY,
EDGE_STYLE_DPKEY,
NODE_LABELS_DPKEY,
EDGE_LABELS_DPKEYpublic void setMapLabelModels(boolean mapLabelModels)
false, layout calculations won't change the client's label positions.
If this roundtrip support instance is not in document fragment mode,
the yFiles Java label position information will be committed to the label model parameters of yFiles FLEX client
Label instances when the graph is written back to the client.
Because the label positions have to be up to date before the shared data is written, class SharedDataOutputHandler takes care of copying the label layout data. This
behavior can be configured using SharedDataOutputHandler.setCommitLabelLayouts(boolean).
The SharedDataOutputHandler instance that is used by this roundtrip support instance can be configured using createSharedDataOutputHandler(). The position information can also be committed before, using FlexIOTools.copyLabelLayouts(y.layout.LayoutGraph).
In document fragment mode, a LabelCompatOutputHandler is
registered, which commits the label layouts to the DocumentFragments contained in the NODE_LABELS_DPKEY and
EDGE_LABELS_DPKEY data providers before the document fragments are written.
mapLabelModels - Whether to map client-side label models to yFiles Java label models. The default is
true.LabelCompatInputHandler,
LabelCompatOutputHandlerpublic boolean isMapLabelModels()
setMapLabelModels(boolean)public boolean isCommitPortLocations()
public void setCommitPortLocations(boolean commitPortLocations)
public boolean isSupportZOrder()
If enabled, z-order values for nodes, edges and ports are (de)serialized automatically if possible, by means of associated GraphML handlers.
public void setSupportZOrder(boolean supportZOrder)
If enabled, z-order values for nodes, edges and ports are (de)serialized automatically if possible, by means of associated GraphML handlers.
public boolean isSupportTables()
Default is false.
public void setSupportTables(boolean supportTables)
If enabled the styles are in a DataMap with the key TABLE_DPKEY.
This map is meant to handle tables if no styles are intended to be sent to the client.
If styles are sent to the client, too, and the tables are bound to the nodes via a style which
implements ITableProvider
(e.g. TableNodeStyle) it is
recommended to disable this property and use the table provider instead.
Default is false.
supportTables - true, if tables are supported.public boolean isIgnoreMissingDeserializer()
DeserializationHandler can be found during parsing.
If true a FallbackDeserializer is
used in the case of a missing deserializer that prevents a parse error by deserializing the element to null.
Otherwise, a DeserializationNotSupportedException is thrown.
public void setIgnoreMissingDeserializer(boolean ignoreMissingDeserializer)
DeserializationHandler can be found during parsing.
If true a FallbackDeserializer is
used in the case of a missing deserializer that prevents a parse error by deserializing the element to null.
Otherwise, a DeserializationNotSupportedException is thrown.
public void addSerializer(SerializationHandler serializer)
GraphMLHandler in addRegisteredHandlers(y.io.graphml.GraphMLHandler).
serializer - A serializer instance that will be used when the graph is written.public void addDeserializer(DeserializationHandler deserializer)
GraphMLHandler in addRegisteredHandlers(y.io.graphml.GraphMLHandler).
deserializer - A deserializer instance that will be used when the graph is read.protected void addRegisteredHandlers(GraphMLHandler handler)
SerializationHandler and DeserializationHandler instances as well as those
added via addSerializer(y.io.graphml.output.SerializationHandler)
or addDeserializer(y.io.graphml.input.DeserializationHandler) are added to the handler for reading and
writing the yFiles FLEX client's GraphML format.
This method is called by configureHandler(GraphMLLayoutGraphIOHandler).
handler - The handler to add the SerializationHandler and DeserializationHandler.
public void readGraph(java.io.InputStream is,
Graph graph)
throws java.io.IOException
RoundtripSupport
is - the stream to use - the encoding should be UTF-8graph - the graph to read the result in.
java.io.IOException - if an io exception occurred.
public void readGraph(java.net.URL url,
Graph graph)
throws java.io.IOException
RoundtripSupport
url - the URL to usegraph - the graph to read the result in.
java.io.IOException - if an io exception occurred.protected GraphMLLayoutGraphIOHandler createHandler()
node ids and edge ids.
This implementation creates the instance, calls configureHandler(GraphMLLayoutGraphIOHandler) and
finally adds an input handler provider that automatically reads mapped data contained in the GraphML data if
isAutoReadMapperData() is true.
createRoundtripGraph().protected void configureHandler(GraphMLLayoutGraphIOHandler handler)
createHandler() after the creation of the
handler instance. The default implementation adds input and output handlers for graph item layout and style
data and for custom mapper attributes.
handler - the handler to configuresetDocumentFragmentMode(boolean),
setMapLabelModels(boolean)protected SharedDataOutputHandler createSharedDataOutputHandler()
public void sendGraph(Graph graph,
java.io.OutputStream os,
java.lang.String outputEncoding)
throws java.io.IOException
RoundtripSupport
graph - The current graph.os - The stream to write the graph to.
java.io.IOException - If something goes wrong during GraphML export.public LayoutGraph createRoundtripGraph()
If isFoldingEnabled() returns true a new instance of
FoldedLayoutGraph is created otherwise a
StyledLayoutGraph instance is used.
As FoldedLayoutGraph is a subclass of StyledLayoutGraph the returned LayoutGraph
can usually be safely cast to StyledLayoutGraph.
Afterwards configureRoundtripGraph(LayoutGraph) is called to configure the created graph instance.
public YDimension getDefaultNodeSize()
createRoundtripGraph(). The default value is 30,30.
public void setDefaultNodeSize(YDimension defaultNodeSize)
StyledLayoutGraph and it's
StyledLayoutGraph.setDefaultNodeSize(y.geom.YDimension)
method instead.
createRoundtripGraph().
defaultNodeSize - The default size that will be sued for new nodes.protected void configureRoundtripGraph(LayoutGraph layoutGraph)
createRoundtripGraph() to configure the created graph instance.
This method registers various DataMap
instances with the graph instance using the key constants provided by this class.
configureRoundtripGraph in class AbstractGraphRoundtripSupportlayoutGraph - The layout graph instance that is used for round tripping.public GraphMLVersion getGraphMLVersion()
1.3.
setParseGraphMLVersion(boolean)public void setGraphMLVersion(GraphMLVersion graphMLVersion)
GraphMLVersion.ONE_POINT_THREE.
setParseGraphMLVersion(boolean)public boolean isParseGraphMLVersion()
graphMLVersionString property to the last parsed version String, thus always
writing the GraphML version string that was most recently parsed. The default value is true.
setGraphMLVersion(GraphMLVersion)public void setParseGraphMLVersion(boolean parseGraphMLVersion)
graphMLVersion property to the last parsed version String, thus always writing the
GraphML version string that was most recently parsed. The default value is true.
parseGraphMLVersion - Whether to parse the GraphML Version and set the graphMLVersion property to
the most recently parsed value.setGraphMLVersion(GraphMLVersion)public ISharedInstanceProvider getSharedInstanceProvider()
public void setSharedInstanceProvider(ISharedInstanceProvider sharedInstanceProvider)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||