Author: paperwing
Date: 2011-12-21 09:08:07 -0800 (Wed, 21 Dec 2011)
New Revision: 27852
Modified:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/InputProcessor.java
Log:
modified input processing class to use interfaces for input processing routines
Modified:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/InputProcessor.java
===================================================================
---
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/InputProcessor.java
2011-12-21 01:02:27 UTC (rev 27851)
+++
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/InputProcessor.java
2011-12-21 17:08:07 UTC (rev 27852)
@@ -81,233 +81,10 @@
// latch_1 = true;
}
- if (pressed.contains(KeyEvent.VK_L)) {
- // if (!lowerQuality) {
- // lowerQuality = true;
- //
- // QUADRATIC_EDGE_SEGMENTS = 3;
- // NODE_SLICES_DETAIL = 6;
- // NODE_STACKS_DETAIL = 6;
- // EDGE_SLICES_DETAIL = 3;
- // EDGE_STACKS_DETAIL = 1;
- //
- // createDisplayLists(gl);
- // } else {
- // lowerQuality = false;
- //
- // QUADRATIC_EDGE_SEGMENTS = 5;
- // NODE_SLICES_DETAIL = 10;
- // NODE_STACKS_DETAIL = 10;
- // EDGE_SLICES_DETAIL = 4;
- // EDGE_STACKS_DETAIL = 1;
- //
- // createDisplayLists(gl);
- // }
- }
-
if (pressed.contains(KeyEvent.VK_P)) {
// skipHover = !skipHover;
}
- // Roll camera clockwise
- if (held.contains(KeyEvent.VK_Z)) {
- camera.rollClockwise();
- }
-
- // Roll camera counter-clockwise
- if (held.contains(KeyEvent.VK_X)) {
- camera.rollCounterClockwise();
- }
-
- // Create edges between nodes
- if (pressed.contains(KeyEvent.VK_J)) {
- CyNode hoverNode =
networkView.getModel().getNode(
-
graphicsData.getHoverNodeIndex());
-
- if (hoverNode != null) {
-
- for (Integer index :
selectedNodeIndices) {
- networkView.getModel().addEdge(
-
networkView.getModel().getNode(index),
- hoverNode,
false);
-
- // TODO: Not sure if this call
is needed
- networkView.updateView();
- }
- }
- }
-
- // Delete selected edges/nodes
- if (pressed.contains(KeyEvent.VK_DELETE)) {
- Set<CyEdge> edgesToBeRemoved = new
LinkedHashSet<CyEdge>();
- Set<CyNode> nodesToBeRemoved = new
LinkedHashSet<CyNode>();
-
- // Remove nodes
- CyNode nodeToBeRemoved;
-
- for (Integer index : selectedNodeIndices) {
- nodeToBeRemoved =
networkView.getModel().getNode(index);
-
- if (nodeToBeRemoved != null ) {
-
nodesToBeRemoved.add(nodeToBeRemoved);
-
- // TODO: Check if use of
Type.ANY for any edge is correct
- // TODO: Check if this addAll
method properly skips adding
- // edges already in the
edgesToBeRemovedList
-
edgesToBeRemoved.addAll(networkView.getModel()
-
.getAdjacentEdgeList(nodeToBeRemoved,
-
Type.ANY));
- }
-
- }
-
- // Remove edges
- CyEdge edgeToBeRemoved;
-
- for (Integer index : selectedEdgeIndices) {
- edgeToBeRemoved =
networkView.getModel().getEdge(index);
-
- if (edgeToBeRemoved != null) {
-
edgesToBeRemoved.add(edgeToBeRemoved);
- }
- }
-
-
networkView.getModel().removeNodes(nodesToBeRemoved);
-
networkView.getModel().removeEdges(edgesToBeRemoved);
-
- // TODO: Not sure if this call is needed
- networkView.updateView();
- }
-
- // If shift is pressed, perform orbit camera movement
- if (held.contains(KeyEvent.VK_SHIFT)) {
-
- if (held.contains(KeyEvent.VK_LEFT)) {
- camera.orbitLeft();
- }
-
- if (held.contains(KeyEvent.VK_RIGHT)) {
- camera.orbitRight();
- }
-
- if (held.contains(KeyEvent.VK_UP)) {
- camera.orbitUp();
- }
-
- if (held.contains(KeyEvent.VK_DOWN)) {
- camera.orbitDown();
- }
-
- // Otherwise, turn camera in a first-person
like fashion
- } else {
-
- if (held.contains(KeyEvent.VK_LEFT)) {
- camera.turnLeft(4);
- }
-
- if (held.contains(KeyEvent.VK_RIGHT)) {
- camera.turnRight(4);
- }
-
- if (held.contains(KeyEvent.VK_UP)) {
- camera.turnUp(4);
- }
-
- if (held.contains(KeyEvent.VK_DOWN)) {
- camera.turnDown(4);
- }
-
- }
-
- // Create a new node
- if (pressed.contains(KeyEvent.VK_N)) {
- CyNode added = networkView.getModel().addNode();
- networkView.updateView();
-
- View<CyNode> viewAdded =
networkView.getNodeView(added);
-
- double distanceScale =
graphicsData.getDistanceScale();
-
- // TODO: Maybe throw an exception if viewAdded
is null
- if (viewAdded != null) {
- viewAdded.setVisualProperty(
-
RichVisualLexicon.NODE_X_LOCATION, projection.x()
- *
distanceScale);
- viewAdded.setVisualProperty(
-
RichVisualLexicon.NODE_Y_LOCATION, projection.y()
- *
distanceScale);
- viewAdded.setVisualProperty(
-
RichVisualLexicon.NODE_Z_LOCATION, projection.z()
- *
distanceScale);
-
- // Set the node to be hovered
- // TODO: This might not be needed if
the node were added
- // through some way other than the mouse
-
graphicsData.setHoverNodeIndex(added.getIndex());
- }
- }
-
- // Camera translational movement
- // -----------------------------
-
- if (held.contains(KeyEvent.VK_W)) {
- camera.moveUp();
- }
-
- if (held.contains(KeyEvent.VK_S)) {
- camera.moveDown();
- }
-
- if (held.contains(KeyEvent.VK_A)) {
- camera.moveLeft();
- }
-
- if (held.contains(KeyEvent.VK_D)) {
- camera.moveRight();
- }
-
- if (held.contains(KeyEvent.VK_Q)) {
- camera.moveBackward();
- }
-
- if (held.contains(KeyEvent.VK_E)) {
- camera.moveForward();
- }
-
- // Debug - display distance between 2 nodes
- if (pressed.contains(KeyEvent.VK_O)) {
-// CyNode hoverNode =
networkView.getModel().getNode(
-//
graphicsData.getHoverNodeIndex());
-//
-// if (hoverNode != null &&
selectedNodeIndices.size() == 1) {
-// View<CyNode> hoverView =
networkView.getNodeView(hoverNode);
-// View<CyNode> selectView = hoverView;
-// for (CyNode node : selectedNodes) {
-// selectView =
networkView.getNodeView(node);
-// }
-// ;
-//
-// Vector3 hover = new Vector3(
-// hoverView
-//
.getVisualProperty(RichVisualLexicon.NODE_X_LOCATION),
-// hoverView
-//
.getVisualProperty(RichVisualLexicon.NODE_Y_LOCATION),
-// hoverView
-//
.getVisualProperty(RichVisualLexicon.NODE_Z_LOCATION));
-//
-// Vector3 select = new Vector3(
-// selectView
-//
.getVisualProperty(RichVisualLexicon.NODE_X_LOCATION),
-// selectView
-//
.getVisualProperty(RichVisualLexicon.NODE_Y_LOCATION),
-// selectView
-//
.getVisualProperty(RichVisualLexicon.NODE_Z_LOCATION));
-//
-// System.out.println("Distance: " +
hover.distance(select)
-// / DISTANCE_SCALE);
-// }
- }
-
keys.update();
}
@@ -573,4 +350,98 @@
}
}
+
+
+
+ private void processNetworkChanges(Set<Integer> pressed, GraphicsData
graphicsData) {
+ CyNetworkView networkView = graphicsData.getNetworkView();
+
+ // Create edges between nodes
+ if (pressed.contains(KeyEvent.VK_J)) {
+ CyNode hoverNode = networkView.getModel().getNode(
+ graphicsData.getHoverNodeIndex());
+
+ if (hoverNode != null) {
+
+ for (Integer index : selectedNodeIndices) {
+ networkView.getModel().addEdge(
+
networkView.getModel().getNode(index),
+ hoverNode, false);
+
+ // TODO: Not sure if this call is needed
+ networkView.updateView();
+ }
+ }
+ }
+
+ // Delete selected edges/nodes
+ if (pressed.contains(KeyEvent.VK_DELETE)) {
+ Set<CyEdge> edgesToBeRemoved = new
LinkedHashSet<CyEdge>();
+ Set<CyNode> nodesToBeRemoved = new
LinkedHashSet<CyNode>();
+
+ // Remove nodes
+ CyNode nodeToBeRemoved;
+
+ for (Integer index : selectedNodeIndices) {
+ nodeToBeRemoved =
networkView.getModel().getNode(index);
+
+ if (nodeToBeRemoved != null ) {
+ nodesToBeRemoved.add(nodeToBeRemoved);
+
+ // TODO: Check if use of Type.ANY for
any edge is correct
+ // TODO: Check if this addAll method
properly skips adding
+ // edges already in the
edgesToBeRemovedList
+
edgesToBeRemoved.addAll(networkView.getModel()
+
.getAdjacentEdgeList(nodeToBeRemoved,
+
Type.ANY));
+ }
+
+ }
+
+ // Remove edges
+ CyEdge edgeToBeRemoved;
+
+ for (Integer index : selectedEdgeIndices) {
+ edgeToBeRemoved =
networkView.getModel().getEdge(index);
+
+ if (edgeToBeRemoved != null) {
+ edgesToBeRemoved.add(edgeToBeRemoved);
+ }
+ }
+
+ networkView.getModel().removeNodes(nodesToBeRemoved);
+ networkView.getModel().removeEdges(edgesToBeRemoved);
+
+ // TODO: Not sure if this call is needed
+ networkView.updateView();
+ }
+
+
+
+
+ }
+
+ private void processCreateNode(Set<Integer> pressed, GraphicsData
graphicsData) {
+ CyNetworkView networkView = graphicsData.getNetworkView();
+
+
+ }
+
+ private void processCreateEdge(Set<Integer> pressed, GraphicsData
graphicsData) {
+ CyNetworkView networkView = graphicsData.getNetworkView();
+
+
+ }
+
+ private void processDeleteNode(Set<Integer> pressed, GraphicsData
graphicsData) {
+ CyNetworkView networkView = graphicsData.getNetworkView();
+
+
+ }
+
+ private void processDeleteEdge(Set<Integer> pressed, GraphicsData
graphicsData) {
+ CyNetworkView networkView = graphicsData.getNetworkView();
+
+
+ }
}
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.