use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.
the class HideCommandTask method getResults.
public Object getResults(Class type) {
List<CyIdentifiable> identifiables = new ArrayList<>();
if (nodes != null)
identifiables.addAll(nodes);
if (edges != null)
identifiables.addAll(edges);
if (type.equals(List.class)) {
return identifiables;
} else if (type.equals(String.class)) {
if (identifiables.size() == 0)
return "<none>";
String ret = "";
if (nodes != null && nodes.size() > 0) {
ret += "Nodes hidden: \n";
for (CyNode node : nodes) {
ret += " " + network.getRow(node).get(CyNetwork.NAME, String.class) + "\n";
}
}
if (edges != null && edges.size() > 0) {
ret += "Edges hidden: \n";
for (CyEdge edge : edges) {
ret += " " + network.getRow(edge).get(CyNetwork.NAME, String.class) + "\n";
}
}
return ret;
} else if (type.equals(JSONResult.class)) {
JSONResult res = () -> {
if (identifiables == null || identifiables.size() == 0)
return "{}";
else {
CyJSONUtil cyJSONUtil = serviceRegistrar.getService(CyJSONUtil.class);
String result = "{\"nodes\":";
if (nodes == null || nodes.size() == 0)
result += "[]";
else
result += cyJSONUtil.cyIdentifiablesToJson(nodes);
result += ", \"edges\":";
if (edges == null || edges.size() == 0)
result += "[]";
else
result += cyJSONUtil.cyIdentifiablesToJson(edges);
result += "}";
return result;
}
};
return res;
}
return identifiables;
}
use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.
the class HideUtils method setVisibleEdges.
static void setVisibleEdges(Collection<CyEdge> edges, boolean visible, CyNetworkView view) {
for (CyEdge e : edges) {
final View<CyEdge> ev = view.getEdgeView(e);
if (visible)
ev.clearValueLock(EDGE_VISIBLE);
else {
ev.setLockedValue(EDGE_VISIBLE, false);
view.getModel().getRow(ev.getModel()).set(CyNetwork.SELECTED, false);
}
}
}
use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.
the class HideUtils method setVisibleNodes.
static void setVisibleNodes(Collection<CyNode> nodes, boolean visible, CyNetworkView view) {
final CyNetwork net = view.getModel();
for (CyNode n : nodes) {
if (visible)
view.getNodeView(n).clearValueLock(NODE_VISIBLE);
else {
view.getModel().getRow(n).set(CyNetwork.SELECTED, false);
view.getNodeView(n).setLockedValue(NODE_VISIBLE, false);
}
for (CyNode n2 : net.getNeighborList(n, CyEdge.Type.ANY)) {
for (CyEdge e : net.getConnectingEdgeList(n, n2, CyEdge.Type.ANY)) {
final View<CyEdge> ev = view.getEdgeView(e);
if (visible)
ev.clearValueLock(EDGE_VISIBLE);
else {
view.getModel().getRow(ev.getModel()).set(CyNetwork.SELECTED, false);
ev.setLockedValue(EDGE_VISIBLE, false);
}
}
}
}
}
use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.
the class AdjacencyTransformer method apply.
@Override
public void apply(CyNetwork network, CyIdentifiable element, TransformerSink<CyIdentifiable> sink) {
if (action == Action.ADD)
sink.collect(element);
if (element instanceof CyNode) {
CyNode currentNode = (CyNode) element;
Iterable<CyEdge> adjacentEdges = network.getAdjacentEdgeIterable(currentNode, edgesAre.type());
Filter<CyNetwork, CyIdentifiable> memoizedFilter = super.getMemoizedFilter();
for (CyEdge edge : adjacentEdges) {
CyNode node = otherNode(currentNode, edge);
boolean pass;
if (filterTarget == What.NODES) {
pass = memoizedFilter.accepts(network, node);
} else if (filterTarget == What.EDGES) {
pass = memoizedFilter.accepts(network, edge);
} else {
// filterTarget == What.NODES_AND_EDGES
pass = memoizedFilter.accepts(network, node) && memoizedFilter.accepts(network, edge);
}
if (pass) {
if (output == What.NODES || output == What.NODES_AND_EDGES) {
sink.collect(node);
}
if (output == What.EDGES || output == What.NODES_AND_EDGES) {
sink.collect(edge);
}
}
}
}
}
use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.
the class RangeSelectionListener method onUserSelection.
/**
* Indicates that the user has selected a text item within the QuickFind
* Search Box.
*
* @param network the current CyNetwork.
* @param hit hit value chosen by the user.
*/
public void onUserSelection(final CyNetwork network, Hit hit) {
SelectUtil.unselectAllNodes(network);
SelectUtil.unselectAllEdges(network);
// Assemble Hit Objects
final Object[] graphObjects = hit.getAssociatedObjects();
final List list = new ArrayList();
for (int i = 0; i < graphObjects.length; i++) {
list.add(graphObjects[i]);
}
// Fit Selected Content
SwingUtilities.invokeLater(new Runnable() {
public void run() {
final CyNetwork cyNetwork = applicationManager.getCurrentNetwork();
CyNetworkView networkView = applicationManager.getCurrentNetworkView();
GenericIndex index = quickFind.getIndex(cyNetwork);
if (index.getIndexType() == QuickFind.INDEX_NODES) {
SelectUtil.setSelectedNodeState(network, list, true);
final CyNetworkView currentView = applicationManager.getCurrentNetworkView();
if (currentView != null)
currentView.fitSelected();
} else {
SelectUtil.setSelectedEdgeState(network, list, true);
List<CyNode> nodeList = new ArrayList<CyNode>();
for (int i = 0; i < list.size(); i++) {
CyEdge edge = (CyEdge) list.get(i);
CyNode sourceNode = edge.getSource();
CyNode targetNode = edge.getTarget();
nodeList.add(sourceNode);
nodeList.add(targetNode);
}
SelectUtil.setSelectedNodeState(network, nodeList, true);
networkView.fitSelected();
}
// so that node does not take up whole screen.
if (graphObjects.length == 1) {
if (graphObjects[0] instanceof CyNode) {
CyNode node = (CyNode) graphObjects[0];
// Obtain dimensions of current InnerCanvas
RenderingEngine<CyNetwork> engine = applicationManager.getCurrentRenderingEngine();
VisualLexicon lexicon = engine.getVisualLexicon();
Double networkWidth = VisualPropertyUtil.get(lexicon, networkView, "NETWORK_WIDTH", BasicVisualLexicon.NETWORK, Double.class);
Double networkHeight = VisualPropertyUtil.get(lexicon, networkView, "NETWORK_HEIGHT", BasicVisualLexicon.NETWORK, Double.class);
View<CyNode> nodeView = networkView.getNodeView(node);
Double nodeWidth = VisualPropertyUtil.get(lexicon, nodeView, "NODE_WIDTH", BasicVisualLexicon.NODE, Double.class);
Double nodeHeight = VisualPropertyUtil.get(lexicon, nodeView, "NODE_HEIGHT", BasicVisualLexicon.NODE, Double.class);
double width = nodeWidth * NODE_SIZE_MULTIPLER;
double height = nodeHeight * NODE_SIZE_MULTIPLER;
double scaleFactor = Math.min(networkWidth / width, (networkHeight / height));
// TODO: How do we set the zoom in the new API?
// networkView.setZoom(scaleFactor);
}
}
networkView.updateView();
}
});
}
Aggregations