Author: kono
Date: 2009-11-30 15:39:19 -0800 (Mon, 30 Nov 2009)
New Revision: 18607
Modified:
corelibs/trunk/ding/lib/cytoscape-render-stateful.jar
corelibs/trunk/ding/lib/giny.jar
corelibs/trunk/ding/src/ding/view/DGraphView.java
corelibs/trunk/ding/src/ding/view/DNodeDetails.java
corelibs/trunk/ding/src/ding/view/DNodeView.java
Log:
Methods to create Nested Network Node texture has been added.
Modified: corelibs/trunk/ding/lib/cytoscape-render-stateful.jar
===================================================================
(Binary files differ)
Modified: corelibs/trunk/ding/lib/giny.jar
===================================================================
(Binary files differ)
Modified: corelibs/trunk/ding/src/ding/view/DGraphView.java
===================================================================
--- corelibs/trunk/ding/src/ding/view/DGraphView.java 2009-11-30 23:35:46 UTC
(rev 18606)
+++ corelibs/trunk/ding/src/ding/view/DGraphView.java 2009-11-30 23:39:19 UTC
(rev 18607)
@@ -53,6 +53,8 @@
import giny.model.Edge;
import giny.model.GraphPerspective;
+import giny.model.NestedNetworkChangeEvent;
+import giny.model.NestedNetworkChangeEventListener;
import giny.model.Node;
import giny.model.RootGraph;
@@ -69,11 +71,15 @@
import java.awt.Paint;
import java.awt.Shape;
import java.awt.Dimension;
+import java.awt.TexturePaint;
import java.awt.geom.GeneralPath;
import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
@@ -81,7 +87,9 @@
import java.util.List;
import java.util.Map;
+import javax.imageio.ImageIO;
+
/**
* DING implementation of the GINY view.
*
@@ -306,7 +314,7 @@
*
* This is used by a new nested network feature from 2.7.
*/
- private Image snapshotImage;
+ private TexturePaint snapshotImage;
/**
* Represents current snapshot is latest version or not.
@@ -2543,17 +2551,23 @@
* Returns the current snapshot image of this view.
*
* <p>
- * This will be used nested network manager.
* No unnecessary image object will be created if networks in the
current
* session does not contain any nested network, i.e., should not have
* performance/memory issue.
*
* @return Image of this view. It is always up-to-date.
*/
- public Image getSnapshot() {
- if(!latest) {
+ public TexturePaint getSnapshot(int width, int height) {
+ if (!latest) {
// Need to update snapshot.
- snapshotImage = createImage(DEF_SNAPSHOT_SIZE,
DEF_SNAPSHOT_SIZE, 1);
+ final Rectangle2D rect = new
Rectangle2D.Double(-width/2, -height/2, width, height);
+ snapshotImage = new TexturePaint((BufferedImage)
createImage(width, height, 1), rect);
+// try {
+// snapshotImage = new
TexturePaint(ImageIO.read(new
File("/Users/kono/Documents/workspace/cytoscape/images/default_network.png")),
rect);
+// } catch (IOException e) {
+// // TODO Auto-generated catch block
+// e.printStackTrace();
+// }
latest = true;
}
Modified: corelibs/trunk/ding/src/ding/view/DNodeDetails.java
===================================================================
--- corelibs/trunk/ding/src/ding/view/DNodeDetails.java 2009-11-30 23:35:46 UTC
(rev 18606)
+++ corelibs/trunk/ding/src/ding/view/DNodeDetails.java 2009-11-30 23:39:19 UTC
(rev 18607)
@@ -41,12 +41,16 @@
import cytoscape.util.intr.IntObjHash;
+import giny.model.GraphPerspective;
import giny.view.Label;
+import giny.view.NodeView;
import java.awt.Color;
import java.awt.Font;
+import java.awt.Image;
import java.awt.Paint;
import java.awt.Shape;
+import java.awt.TexturePaint;
import java.util.HashMap;
import java.util.Iterator;
@@ -570,6 +574,18 @@
return ((Double) o).doubleValue();
}
+
+
+ @Override
+ public TexturePaint getNestedNetworkTexturePaint(final int node) {
+ final DNodeView dNodeView = (DNodeView)
m_view.getNodeView(~node);
+ final GraphPerspective nestedNetwork =
dNodeView.getNode().getNestedNetwork();
+ if (nestedNetwork == null) {
+ return null;
+ }
+
+ return dNodeView.getNestedNetworkTexturePaint();
+ }
/*
* A negative width value has the special meaning to remove overridden
width.
Modified: corelibs/trunk/ding/src/ding/view/DNodeView.java
===================================================================
--- corelibs/trunk/ding/src/ding/view/DNodeView.java 2009-11-30 23:35:46 UTC
(rev 18606)
+++ corelibs/trunk/ding/src/ding/view/DNodeView.java 2009-11-30 23:39:19 UTC
(rev 18607)
@@ -36,12 +36,7 @@
package ding.view;
-import cytoscape.render.immed.GraphGraphics;
-import cytoscape.render.stateful.CustomGraphic;
-import cytoscape.render.stateful.NodeDetails;
-
import giny.model.Node;
-
import giny.view.GraphView;
import giny.view.GraphViewChangeListener;
import giny.view.Label;
@@ -59,14 +54,16 @@
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
-
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
+import cytoscape.render.immed.GraphGraphics;
+import cytoscape.render.stateful.CustomGraphic;
+
/**
* DOCUMENT ME!
*
@@ -113,6 +110,8 @@
private final static HashSet<CustomGraphic> EMPTY_CUSTOM_GRAPHICS = new
LinkedHashSet<CustomGraphic>(0);
// AJK: 04/26/06 for tooltip
String m_toolTipText = null;
+
+ private DGraphView nestedNetworkView;
/*
* @param inx the RootGraph index of node (a negative number).
@@ -126,6 +125,8 @@
m_borderPaint = m_view.m_nodeDetails.borderPaint(m_inx);
m_graphicShapes = null;
m_graphicPaints = null;
+
+ nestedNetworkView = null;
}
/**
@@ -1398,4 +1399,17 @@
m_view.m_contentChanged = true;
}
}
+
+ public TexturePaint getNestedNetworkTexturePaint() {
+ synchronized (m_view.m_lock) {
+ if (this.getNode().getNestedNetwork() != null &&
nestedNetworkView != null)
+ return
nestedNetworkView.getSnapshot((int)this.getWidth(), (int)this.getHeight());
+ else
+ return null;
+ }
+ }
+
+ public void setNestedNetworkView(final DGraphView nestedNetworkView) {
+ this.nestedNetworkView = nestedNetworkView;
+ }
}
--
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.