Author: paperwing
Date: 2011-12-16 14:11:18 -0800 (Fri, 16 Dec 2011)
New Revision: 27815
Modified:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/Graphics.java
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/BirdsEyeViewCoordinator.java
Log:
coordinator class nearly completed
Modified:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/Graphics.java
===================================================================
---
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/Graphics.java
2011-12-16 21:37:10 UTC (rev 27814)
+++
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/Graphics.java
2011-12-16 22:11:18 UTC (rev 27815)
@@ -135,7 +135,7 @@
} else {
registry.get(networkView).add(this);
}
-
+
keys = new KeyboardMonitor();
mouse = new MouseMonitor();
Modified:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/BirdsEyeViewCoordinator.java
===================================================================
---
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/BirdsEyeViewCoordinator.java
2011-12-16 21:37:10 UTC (rev 27814)
+++
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/BirdsEyeViewCoordinator.java
2011-12-16 22:11:18 UTC (rev 27815)
@@ -1,36 +1,59 @@
package org.cytoscape.paperwing.internal.graphics;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
import org.cytoscape.paperwing.internal.SimpleCamera;
import org.cytoscape.paperwing.internal.Vector3;
+import org.cytoscape.view.model.CyNetworkView;
public class BirdsEyeViewCoordinator {
-
+
private SimpleCamera newMainCamera;
private SimpleCamera newBirdsEyeCamera;
-
+
private boolean mainCameraChanged = false;
private boolean birdsEyeCameraChanged = false;
-
+
private boolean mainClaimed = false;
private boolean birdsEyeClaimed = false;
+
+ private boolean mainToUnlink = false;
+ private boolean birdsEyeToUnlink = false;
- public BirdsEyeViewCoordinator() {
+ // Assumes 1 CyNetworkView object per main-bird pair
+ private static Map<CyNetworkView, BirdsEyeViewCoordinator> coordinators
= new LinkedHashMap<CyNetworkView, BirdsEyeViewCoordinator>();
+
+ // 1:1 relationship between coordinators and networkViews, can use this
to make an inverse map used to remove coordinators from
+ // the maps
+ private static Map<BirdsEyeViewCoordinator, CyNetworkView> networkViews
= new LinkedHashMap<BirdsEyeViewCoordinator, CyNetworkView>();
+
+ // This networkView is only used to differentiate between main camera
and
+ // birds eye camera pairs
+ public BirdsEyeViewCoordinator(CyNetworkView networkView) {
newMainCamera = new SimpleCamera();
newBirdsEyeCamera = new SimpleCamera();
+
+ coordinators.put(networkView, this);
+ networkViews.put(this, networkView);
}
+ public static BirdsEyeViewCoordinator getCoordinator(CyNetworkView
networkView) {
+ return coordinators.get(networkView);
+ }
+
// Update orientation
public void updateMainCamera(SimpleCamera mainCamera) {
newMainCamera.copyOrientation(mainCamera);
mainCameraChanged = true;
}
-
+
// Update orientation
public void updateBirdsEyeCamera(SimpleCamera birdsEyeCamera) {
newBirdsEyeCamera.copyOrientation(birdsEyeCamera);
birdsEyeCameraChanged = true;
}
-
+
// Get the updated camera
public SimpleCamera getNewMainCamera() {
return newMainCamera;
@@ -40,10 +63,10 @@
public SimpleCamera getNewBirdsEyeCamera() {
return newBirdsEyeCamera;
}
-
+
public boolean mainCameraChanged() {
return mainCameraChanged;
- }
+ }
public boolean birdsEyeCameraChanged() {
return birdsEyeCameraChanged;
@@ -52,18 +75,49 @@
public void updateMainCamera() {
mainCameraChanged = false;
}
-
+
public void updateBirdsEyeCamera() {
birdsEyeCameraChanged = false;
}
-
+
// Claim by a main window rendering object
public void claimMain() {
mainClaimed = true;
+ mainToUnlink = false;
}
-
+
// Claim by a birds eye view rendering object
public void claimBirdsEye() {
birdsEyeClaimed = true;
+ birdsEyeToUnlink = false;
}
+
+ // Notify that main will no longer look after this coordinator
+ public void unlinkMain() {
+ mainClaimed = false;
+ mainToUnlink = true;
+
+ // Both unlinked; prepare to remove this object
+ if (birdsEyeToUnlink) {
+ CyNetworkView networkView = networkViews.get(this);
+
+ coordinators.remove(networkView);
+ networkViews.remove(this);
+ }
+ }
+
+ // Notify that bird's eye view will no longer look after this
coordinator
+ public void unlinkBirdsEye() {
+ birdsEyeClaimed = false;
+ birdsEyeToUnlink = true;
+
+ // Both unlinked; prepare to remove this object
+ if (mainToUnlink) {
+ CyNetworkView networkView = networkViews.get(this);
+
+ coordinators.remove(networkView);
+ networkViews.remove(this);
+ }
+ }
+
}
--
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.