Search in sources :

Example 1 with Key

use of org.cytoscape.group.internal.LockedVisualPropertiesManager.Key in project cytoscape-impl by cytoscape.

the class GroupIO method writeLockedVisualPropertiesMap.

private void writeLockedVisualPropertiesMap(final File file, final Set<CyGroup> groups) throws JsonGenerationException, JsonMappingException, IOException {
    final CyNetworkViewManager netViewMgr = groupMgr.getService(CyNetworkViewManager.class);
    final Set<CyIdentifiable> grElements = new HashSet<>();
    for (final CyGroup gr : groups) {
        final Set<CyNetworkView> netViews = new HashSet<>();
        final Set<CyNetwork> networks = gr.getNetworkSet();
        for (final CyNetwork net : networks) {
            if (netViewMgr.viewExists(net))
                netViews.addAll(netViewMgr.getNetworkViews(net));
        }
        if (netViews.isEmpty())
            continue;
        grElements.add(gr.getGroupNode());
        grElements.addAll(gr.getRootNetwork().getAdjacentEdgeList(gr.getGroupNode(), CyEdge.Type.ANY));
        grElements.addAll(gr.getNodeList());
        grElements.addAll(gr.getExternalEdgeList());
        grElements.addAll(gr.getInternalEdgeList());
        for (final CyIdentifiable element : grElements) lvpMgr.saveLockedValues(element, netViews);
    }
    final Map<Key, Map<VisualProperty<?>, Object>> map = lvpMgr.getLockedVisualPropertiesMap();
    if (map != null)
        mapper.writeValue(file, map);
}
Also used : CyGroup(org.cytoscape.group.CyGroup) CyNetworkViewManager(org.cytoscape.view.model.CyNetworkViewManager) CyNetwork(org.cytoscape.model.CyNetwork) CyNetworkView(org.cytoscape.view.model.CyNetworkView) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map) Key(org.cytoscape.group.internal.LockedVisualPropertiesManager.Key) CyIdentifiable(org.cytoscape.model.CyIdentifiable) HashSet(java.util.HashSet) LinkedHashSet(java.util.LinkedHashSet)

Example 2 with Key

use of org.cytoscape.group.internal.LockedVisualPropertiesManager.Key in project cytoscape-impl by cytoscape.

the class GroupIO method handleEvent.

@Override
public void handleEvent(final SessionLoadedEvent event) {
    final List<File> files = event.getLoadedSession().getAppFileListMap().get(NAMESPACE);
    if (files == null)
        return;
    final CySession session = event.getLoadedSession();
    for (final File file : files) {
        try {
            if (file.getName().equals(FILENAME)) {
                final Map<Key, Map<VisualProperty<?>, Object>> map = readLockedVisualPropertiesMap(file, session);
                lvpMgr.addAll(map);
            }
        } catch (IOException e) {
            logger.error("Unexpected error", e);
        }
    }
    settingsMgr.loadProperties();
}
Also used : CySession(org.cytoscape.session.CySession) IOException(java.io.IOException) File(java.io.File) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map) Key(org.cytoscape.group.internal.LockedVisualPropertiesManager.Key)

Example 3 with Key

use of org.cytoscape.group.internal.LockedVisualPropertiesManager.Key in project cytoscape-impl by cytoscape.

the class GroupIO method readLockedVisualPropertiesMap.

private Map<Key, Map<VisualProperty<?>, Object>> readLockedVisualPropertiesMap(final File file, final CySession session) throws JsonParseException, JsonMappingException, IOException {
    final Map<Key, Map<VisualProperty<?>, Object>> map = new LinkedHashMap<>();
    final JsonFactory factory = mapper.getFactory();
    final JsonParser parser = factory.createParser(file);
    try {
        if (parser.nextToken() != JsonToken.START_ARRAY)
            return map;
        while (parser.nextToken() != JsonToken.END_ARRAY) {
            if (parser.getCurrentToken() != JsonToken.START_OBJECT)
                continue;
            CyNetworkView netView = null;
            Class<? extends CyIdentifiable> elementType = null;
            long elementId = -1;
            final Map<VisualProperty<?>, Object> lockedValues = new LinkedHashMap<>();
            while (parser.nextToken() != JsonToken.END_OBJECT) {
                if (parser.getCurrentToken() != JsonToken.FIELD_NAME)
                    continue;
                final String fieldName = parser.getCurrentName();
                final JsonToken valueToken = parser.nextToken();
                if ("networkView".equals(fieldName) && valueToken == JsonToken.VALUE_NUMBER_INT) {
                    final long suid = parser.getLongValue();
                    netView = session.getObject(suid, CyNetworkView.class);
                } else if ("element".equals(fieldName) && valueToken == JsonToken.VALUE_NUMBER_INT) {
                    elementId = parser.getLongValue();
                } else if ("elementType".equals(fieldName) && valueToken == JsonToken.VALUE_STRING) {
                    elementType = parser.getText().equalsIgnoreCase("CyNode") ? CyNode.class : CyEdge.class;
                } else if ("lockedValues".equals(fieldName) && valueToken == JsonToken.START_ARRAY) {
                    final VisualLexicon lexicon = getVisualLexicon(netView);
                    parseLockedValues(parser, lockedValues, lexicon, elementType);
                }
            }
            if (netView != null && elementId != -1 && elementType != null) {
                final CyIdentifiable element = session.getObject(elementId, elementType);
                if (element != null && !lockedValues.isEmpty()) {
                    final Key key = new Key(netView, element);
                    map.put(key, lockedValues);
                }
            }
        }
    } finally {
        parser.close();
    }
    return map;
}
Also used : VisualLexicon(org.cytoscape.view.model.VisualLexicon) JsonFactory(com.fasterxml.jackson.core.JsonFactory) CyEdge(org.cytoscape.model.CyEdge) LinkedHashMap(java.util.LinkedHashMap) VisualProperty(org.cytoscape.view.model.VisualProperty) JsonToken(com.fasterxml.jackson.core.JsonToken) CyNode(org.cytoscape.model.CyNode) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map) CyNetworkView(org.cytoscape.view.model.CyNetworkView) Key(org.cytoscape.group.internal.LockedVisualPropertiesManager.Key) JsonParser(com.fasterxml.jackson.core.JsonParser) CyIdentifiable(org.cytoscape.model.CyIdentifiable)

Example 4 with Key

use of org.cytoscape.group.internal.LockedVisualPropertiesManager.Key in project cytoscape-impl by cytoscape.

the class LockedVisualPropertiesManager method add.

public void add(final CyIdentifiable element, final CyNetworkView netView, final Map<VisualProperty<?>, Object> lockedValues) {
    if (element != null && netView != null) {
        final Key key = new Key(netView, element);
        add(key, lockedValues);
    }
}
Also used : Key(org.cytoscape.group.internal.LockedVisualPropertiesManager.Key)

Example 5 with Key

use of org.cytoscape.group.internal.LockedVisualPropertiesManager.Key in project cytoscape-impl by cytoscape.

the class LockedVisualPropertiesManager method setLockedValues.

public void setLockedValues(final Collection<CyNetworkView> netViewList, final Set<CyIdentifiable> elements) {
    for (final CyNetworkView netView : netViewList) {
        for (final CyIdentifiable element : elements) {
            final View<? extends CyIdentifiable> view = GroupUtil.getView(netView, element);
            if (view == null)
                continue;
            final Key key = new Key(netView, element);
            final Map<VisualProperty<?>, Object> lockedValues = bypassMap.get(key);
            if (lockedValues != null) {
                for (final Entry<VisualProperty<?>, Object> entry : lockedValues.entrySet()) view.setLockedValue(entry.getKey(), entry.getValue());
            }
        }
    }
}
Also used : VisualProperty(org.cytoscape.view.model.VisualProperty) CyNetworkView(org.cytoscape.view.model.CyNetworkView) Key(org.cytoscape.group.internal.LockedVisualPropertiesManager.Key) CyIdentifiable(org.cytoscape.model.CyIdentifiable)

Aggregations

Key (org.cytoscape.group.internal.LockedVisualPropertiesManager.Key)5 LinkedHashMap (java.util.LinkedHashMap)3 Map (java.util.Map)3 CyIdentifiable (org.cytoscape.model.CyIdentifiable)3 CyNetworkView (org.cytoscape.view.model.CyNetworkView)3 VisualProperty (org.cytoscape.view.model.VisualProperty)2 JsonFactory (com.fasterxml.jackson.core.JsonFactory)1 JsonParser (com.fasterxml.jackson.core.JsonParser)1 JsonToken (com.fasterxml.jackson.core.JsonToken)1 File (java.io.File)1 IOException (java.io.IOException)1 HashSet (java.util.HashSet)1 LinkedHashSet (java.util.LinkedHashSet)1 CyGroup (org.cytoscape.group.CyGroup)1 CyEdge (org.cytoscape.model.CyEdge)1 CyNetwork (org.cytoscape.model.CyNetwork)1 CyNode (org.cytoscape.model.CyNode)1 CySession (org.cytoscape.session.CySession)1 CyNetworkViewManager (org.cytoscape.view.model.CyNetworkViewManager)1 VisualLexicon (org.cytoscape.view.model.VisualLexicon)1