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);
}
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();
}
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;
}
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);
}
}
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());
}
}
}
}
Aggregations