Created
December 17, 2013 19:14
-
-
Save heuermh/8010881 to your computer and use it in GitHub Desktop.
Cy3 task which updates the current visual style but has threading issues
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
final class MyTask extends AbstractTask | |
{ | |
private final CyNetworkView networkView; | |
private final VisualStyle style; | |
private boolean lockedNodeView = false; | |
private boolean lockedEdgeView = false; | |
@Override | |
public void run(final TaskMonitor taskMonitor) | |
{ | |
decorateNode(node); | |
decorateEdge(edge); | |
// ... | |
undecorateNode(node); | |
undecorateEdge(edge); | |
} | |
//... | |
private void decorateNode(final CyNode node) | |
{ | |
View<CyNode> nodeView = networkView.getNodeView(node); | |
if (!nodeView.isValueLocked(BasicVisualLexicon.NODE_FILL_COLOR)) | |
{ | |
lockedNodeView = true; | |
nodeView.setLockedValue(BasicVisualLexicon.NODE_FILL_COLOR, decorate); | |
style.apply(networkView); | |
networkView.updateView(); | |
} | |
} | |
private void undecorateNode(final CyNode node) | |
{ | |
View<CyNode> nodeView = networkView.getNodeView(node); | |
if (lockedNodeView && nodeView.isValueLocked(BasicVisualLexicon.NODE_FILL_COLOR)) | |
{ | |
lockedNodeView = false; | |
nodeView.clearValueLock(BasicVisualLexicon.NODE_FILL_COLOR); | |
style.apply(networkView); | |
networkView.updateView(); | |
} | |
} | |
private void decorateEdge(final CyEdge edge) | |
{ | |
View<CyEdge> edgeView = networkView.getEdgeView(edge); | |
if (!edgeView.isValueLocked(BasicVisualLexicon.EDGE_STROKE_UNSELECTED_PAINT)) | |
{ | |
lockedEdgeView = true; | |
edgeView.setLockedValue(BasicVisualLexicon.EDGE_STROKE_UNSELECTED_PAINT, decorate); | |
style.apply(networkView); | |
networkView.updateView(); | |
} | |
} | |
private void undecorateEdge(final CyEdge edge) | |
{ | |
View<CyEdge> edgeView = networkView.getEdgeView(edge); | |
if (lockedEdgeView && edgeView.isValueLocked(BasicVisualLexicon.EDGE_STROKE_UNSELECTED_PAINT)) | |
{ | |
lockedEdgeView = false; | |
edgeView.clearValueLock(BasicVisualLexicon.EDGE_STROKE_UNSELECTED_PAINT); | |
style.apply(networkView); | |
networkView.updateView(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment