Search in sources :

Example 1 with CyCustomGraphics2ManagerImpl

use of org.cytoscape.ding.customgraphics.CyCustomGraphics2ManagerImpl in project cytoscape-impl by cytoscape.

the class CustomGraphicsVisualProperty method parseSerializableString.

// Parse the string associated with our visual property.  Note that we depend on the first
// part of the string being the class name that was registered with the CyCustomGraphicsManager
@Override
@SuppressWarnings("unchecked")
public CyCustomGraphics<CustomGraphicLayer> parseSerializableString(String value) {
    CyCustomGraphics<CustomGraphicLayer> cg = null;
    if (value != null && !NullCustomGraphics.getNullObject().toString().equals(value) && !value.contains("NullCustomGraphics")) {
        String[] parts = value.split(":");
        // Skip over the chart/gradient factory id
        int offset = value.indexOf(":");
        // First check if it's a CyCustomGraphics2
        // ------------------------------
        // This is hack, but we've got no other way to get our hands on the
        // CyCustomGraphics2Manager this way, because the DVisualLexicon is created statically
        final CyCustomGraphics2ManagerImpl cfMgr = CyCustomGraphics2ManagerImpl.getInstance();
        final CyCustomGraphics2Factory<? extends CustomGraphicLayer> chartFactory = cfMgr.getCyCustomGraphics2Factory(parts[0]);
        if (chartFactory != null) {
            cg = (CyCustomGraphics<CustomGraphicLayer>) chartFactory.getInstance(value.substring(offset + 1));
        } else {
            // Then check if it's a CyCustomGraphics2
            // -------------------------------
            final CyCustomGraphics2ManagerImpl cgMgr = CyCustomGraphics2ManagerImpl.getInstance();
            final CyCustomGraphics2Factory<? extends CustomGraphicLayer> gradFactory = cgMgr.getCyCustomGraphics2Factory(parts[0]);
            if (gradFactory != null)
                cg = (CyCustomGraphics<CustomGraphicLayer>) gradFactory.getInstance(value.substring(offset + 1));
        }
        if (cg == null) {
            // Try to parse it as a regular custom graphics then
            // -------------------------------------------------
            // This is hack, but we've got no other way to get our hands on the
            // CyCustomGraphicsManager since the DVisualLexicon is created statically
            final CustomGraphicsManager cgMgr = CustomGraphicsManagerImpl.getInstance();
            parts = value.split(",");
            final CyCustomGraphicsFactory factory = cgMgr.getCustomGraphicsFactory(parts[0]);
            if (factory != null) {
                // Skip over the class name
                offset = value.indexOf(",");
                cg = factory.parseSerializableString(value.substring(offset + 1));
            }
        }
    }
    return cg != null ? cg : NullCustomGraphics.getNullObject();
}
Also used : CyCustomGraphics2ManagerImpl(org.cytoscape.ding.customgraphics.CyCustomGraphics2ManagerImpl) CyCustomGraphicsFactory(org.cytoscape.view.presentation.customgraphics.CyCustomGraphicsFactory) CyCustomGraphics(org.cytoscape.view.presentation.customgraphics.CyCustomGraphics) CustomGraphicLayer(org.cytoscape.view.presentation.customgraphics.CustomGraphicLayer) CustomGraphicsManager(org.cytoscape.ding.customgraphics.CustomGraphicsManager)

Aggregations

CustomGraphicsManager (org.cytoscape.ding.customgraphics.CustomGraphicsManager)1 CyCustomGraphics2ManagerImpl (org.cytoscape.ding.customgraphics.CyCustomGraphics2ManagerImpl)1 CustomGraphicLayer (org.cytoscape.view.presentation.customgraphics.CustomGraphicLayer)1 CyCustomGraphics (org.cytoscape.view.presentation.customgraphics.CyCustomGraphics)1 CyCustomGraphicsFactory (org.cytoscape.view.presentation.customgraphics.CyCustomGraphicsFactory)1