Author: scooter
Date: 2010-11-11 13:59:51 -0800 (Thu, 11 Nov 2010)
New Revision: 22821
Added:
csplugins/trunk/ucsf/scooter/chemViz/lib/cdk-1.3.1.jar.save
csplugins/trunk/ucsf/scooter/chemViz/lib/cdk-1.3.6.jar
Removed:
csplugins/trunk/ucsf/scooter/chemViz/lib/cdk-1.3.1.jar
Modified:
csplugins/trunk/ucsf/scooter/chemViz/resources/plugin.props
csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/ChemViz.java
csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/menus/AttributesMenu.java
csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/model/Compound.java
csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/tasks/CreateNodeGraphicsTask.java
csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/ui/CompoundPopup.java
csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/ui/CompoundTable.java
Log:
Moved to cdk-1.3.6 and cleaned up printing support a little.
Deleted: csplugins/trunk/ucsf/scooter/chemViz/lib/cdk-1.3.1.jar
===================================================================
(Binary files differ)
Copied: csplugins/trunk/ucsf/scooter/chemViz/lib/cdk-1.3.1.jar.save (from rev
22715, csplugins/trunk/ucsf/scooter/chemViz/lib/cdk-1.3.1.jar)
===================================================================
(Binary files differ)
Added: csplugins/trunk/ucsf/scooter/chemViz/lib/cdk-1.3.6.jar
===================================================================
(Binary files differ)
Property changes on: csplugins/trunk/ucsf/scooter/chemViz/lib/cdk-1.3.6.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: csplugins/trunk/ucsf/scooter/chemViz/resources/plugin.props
===================================================================
--- csplugins/trunk/ucsf/scooter/chemViz/resources/plugin.props 2010-11-11
19:21:08 UTC (rev 22820)
+++ csplugins/trunk/ucsf/scooter/chemViz/resources/plugin.props 2010-11-11
21:59:51 UTC (rev 22821)
@@ -13,10 +13,10 @@
pluginDescription=This plugin provides cheminformatics tools to cytoscape
# Plugin version number, this must be two numbers separated by a decimlal.
Ex. 0.2, 14.03
-pluginVersion=1.1
+pluginVersion=1.2
# Compatible Cytoscape version
-cytoscapeVersion=2.6.3,2.7
+cytoscapeVersion=2.7,2.8
# Category, use one of the categories listed on the website or create your own
pluginCategory=Analysis
@@ -31,4 +31,4 @@
pluginAuthorsIntsitutions=John "Scooter" Morris:UCSF;Dazhi Jiao:Indiana
University School of Informatics
# Date this plugin/plugin version was released
-releaseDate=February 4th, 2010
+releaseDate=December 1th, 2010
Modified: csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/ChemViz.java
===================================================================
--- csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/ChemViz.java
2010-11-11 19:21:08 UTC (rev 22820)
+++ csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/ChemViz.java
2010-11-11 21:59:51 UTC (rev 22821)
@@ -36,29 +36,17 @@
package chemViz;
import giny.model.Node;
-import giny.view.EdgeView;
-import giny.view.NodeView;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Properties;
-import java.util.Set;
import javax.swing.JMenu;
-import javax.swing.JMenuItem;
-import cytoscape.CyEdge;
-import cytoscape.CyNetwork;
-import cytoscape.CyNode;
import cytoscape.Cytoscape;
import cytoscape.logger.CyLogger;
import cytoscape.plugin.CytoscapePlugin;
-import cytoscape.task.Task;
import cytoscape.task.util.TaskManager;
import cytoscape.view.CyNetworkView;
import cytoscape.view.CytoscapeDesktop;
@@ -66,7 +54,6 @@
import chemViz.menus.ChemVizMenu;
import chemViz.menus.ChemVizContextMenu;
-import chemViz.model.Compound;
import chemViz.tasks.CreateNodeGraphicsTask;
import chemViz.ui.ChemInfoSettingsDialog;
Modified:
csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/menus/AttributesMenu.java
===================================================================
--- csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/menus/AttributesMenu.java
2010-11-11 19:21:08 UTC (rev 22820)
+++ csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/menus/AttributesMenu.java
2010-11-11 21:59:51 UTC (rev 22821)
@@ -48,7 +48,6 @@
import cytoscape.CyEdge;
import cytoscape.CyNode;
import cytoscape.Cytoscape;
-import cytoscape.data.CyAttributes;
import giny.view.EdgeView;
import giny.view.NodeView;
@@ -109,7 +108,7 @@
// Populating popup menu
JMenu thisNodeMenu = new
JMenu(systemProps.getProperty("chemViz.menu.createattributes.thisNode"));
- List<CyNode> thisNode = new ArrayList();
+ List<CyNode> thisNode = new ArrayList<CyNode>();
thisNode.add((CyNode)nodeContext.getNode());
addDescriptors(thisNodeMenu, thisNode, null);
if (!settingsDialog.hasNodeCompounds(thisNode)) {
@@ -158,7 +157,7 @@
// Populating popup menu
JMenu create = new
JMenu(systemProps.getProperty("chemViz.menu.createattributes"));
JMenu thisEdgeMenu = new
JMenu(systemProps.getProperty("chemViz.menu.createattributes.thisEdge"));
- List<CyEdge> thisEdge = new ArrayList();
+ List<CyEdge> thisEdge = new ArrayList<CyEdge>();
thisEdge.add((CyEdge)edgeContext.getEdge());
addDescriptors(thisEdgeMenu, null, thisEdge);
if (!settingsDialog.hasEdgeCompounds(thisEdge)) {
Modified: csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/model/Compound.java
===================================================================
--- csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/model/Compound.java
2010-11-11 19:21:08 UTC (rev 22820)
+++ csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/model/Compound.java
2010-11-11 21:59:51 UTC (rev 22821)
@@ -39,6 +39,7 @@
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
+import java.awt.Rectangle;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.awt.image.AffineTransformOp;
@@ -66,7 +67,9 @@
import cytoscape.logger.CyLogger;
import cytoscape.util.URLUtil;
+import org.openscience.cdk.ChemModel;
import org.openscience.cdk.Molecule;
+import org.openscience.cdk.MoleculeSet;
import org.openscience.cdk.aromaticity.CDKHueckelAromaticityDetector;
import org.openscience.cdk.atomtype.CDKAtomTypeMatcher;
import org.openscience.cdk.config.IsotopeFactory;
@@ -79,17 +82,23 @@
import org.openscience.cdk.inchi.InChIGeneratorFactory;
import org.openscience.cdk.inchi.InChIToStructure;
import org.openscience.cdk.interfaces.IAtom;
+import org.openscience.cdk.interfaces.IAtomContainer;
import org.openscience.cdk.interfaces.IAtomType;
+import org.openscience.cdk.interfaces.IChemModel;
import org.openscience.cdk.interfaces.IIsotope;
import org.openscience.cdk.interfaces.IMolecularFormula;
import org.openscience.cdk.interfaces.IMolecule;
+import org.openscience.cdk.interfaces.IMoleculeSet;
import org.openscience.cdk.layout.StructureDiagramGenerator;
import org.openscience.cdk.modeling.builder3d.ModelBuilder3D;
import org.openscience.cdk.modeling.builder3d.TemplateHandler3D;
-import org.openscience.cdk.renderer.Renderer;
+import org.openscience.cdk.renderer.AtomContainerRenderer;
+import org.openscience.cdk.renderer.ChemModelRenderer;
import org.openscience.cdk.renderer.RendererModel;
import org.openscience.cdk.renderer.font.AWTFontManager;
import org.openscience.cdk.renderer.generators.BasicAtomGenerator;
+import org.openscience.cdk.renderer.generators.BasicBondGenerator;
+import org.openscience.cdk.renderer.generators.BasicSceneGenerator;
import org.openscience.cdk.renderer.generators.RingGenerator;
import org.openscience.cdk.renderer.generators.IGenerator;
import org.openscience.cdk.renderer.visitor.AWTDrawVisitor;
@@ -103,6 +112,7 @@
import org.openscience.cdk.tools.CDKHydrogenAdder;
import org.openscience.cdk.tools.manipulator.AtomContainerManipulator;
import org.openscience.cdk.tools.manipulator.AtomTypeManipulator;
+import org.openscience.cdk.tools.manipulator.ChemModelManipulator;
import org.openscience.cdk.tools.manipulator.MolecularFormulaManipulator;
import net.sf.jniinchi.INCHI_RET;
@@ -717,6 +727,8 @@
public Image depictWithCDK(int width, int height, Color background) {
BufferedImage bufferedImage = null;
+ // System.out.println("depictWithCDK("+width+","+height+")");
+
if (iMolecule == null || width == 0 || height == 0) {
return null;
}
@@ -732,40 +744,41 @@
}
// generators make the image elements
- List<IGenerator> generators = new
ArrayList<IGenerator>();
+ List<IGenerator<IAtomContainer>> generators = new
ArrayList<IGenerator<IAtomContainer>>();
+ generators.add(new BasicSceneGenerator());
+ generators.add(new BasicBondGenerator());
generators.add(new RingGenerator());
generators.add(new BasicAtomGenerator());
// the renderer needs to have a toolkit-specific font
manager
- Renderer renderer = new Renderer(generators, new
AWTFontManager());
+ AtomContainerRenderer renderer = new
AtomContainerRenderer(generators, new AWTFontManager());
RendererModel model = renderer.getRenderer2DModel();
+
+ if (background == null)
+ background = new Color(255,255,255,255);
+
+ // Set up our rendering parameters
+ model.set(BasicSceneGenerator.UseAntiAliasing.class,
true);
+ model.set(BasicSceneGenerator.BackgroundColor.class,
background);
+ model.set(BasicBondGenerator.BondWidth.class, 2.0);
+ model.set(RingGenerator.BondWidth.class, 2.0);
+ model.set(BasicAtomGenerator.ColorByType.class, true);
+
model.set(BasicAtomGenerator.ShowExplicitHydrogens.class, true);
- model.setDrawNumbers(false);
- model.setUseAntiAliasing(true);
- // model.setColorAtomsByType(true);
- model.setShowExplicitHydrogens(true);
- model.setShowImplicitHydrogens(true);
- model.setShowAromaticity(true);
- model.setShowReactionBoxes(false);
- model.setKekuleStructure(false);
- // model.setShowAromaticityCDKStyle(true);
- model.setBondWidth(model.getBondWidth()*2);
-
int renderWidth = width;
if (renderWidth < 200) renderWidth = 200;
int renderHeight = height;
if (renderHeight < 200) renderHeight = 200;
Rectangle2D bbox = new
Rectangle2D.Double(0,0,renderWidth,renderHeight);
+ renderer.setup(iMolecule, new Rectangle(renderWidth,
renderHeight));
bufferedImage = new BufferedImage(renderWidth,
renderHeight, BufferedImage.TYPE_INT_ARGB);
Graphics2D graphics = bufferedImage.createGraphics();
- if (background == null)
- graphics.setColor(new Color(255, 255, 255, 0));
- else
- graphics.setColor(background);
+ graphics.setColor(background);
+ graphics.setBackground(background);
graphics.fillRect(0,0,renderWidth,renderHeight);
- renderer.paintMolecule(iMolecule, new
AWTDrawVisitor(graphics), bbox, true);
+ renderer.paint(iMolecule, new AWTDrawVisitor(graphics),
bbox, true);
if (renderWidth != width || renderHeight != height) {
AffineTransform tx = new AffineTransform();
Modified:
csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/tasks/CreateNodeGraphicsTask.java
===================================================================
---
csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/tasks/CreateNodeGraphicsTask.java
2010-11-11 19:21:08 UTC (rev 22820)
+++
csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/tasks/CreateNodeGraphicsTask.java
2010-11-11 21:59:51 UTC (rev 22821)
@@ -52,6 +52,7 @@
import giny.view.NodeView;
import ding.view.DGraphView;
import ding.view.DNodeView;
+import ding.view.InnerCanvas;
import ding.view.ViewportChangeListener;
import cytoscape.CyEdge;
@@ -164,6 +165,8 @@
}
public void viewportChanged(int w, int h, double xCenter, double
yCenter, double scale) {
+ zoom = scale;
+/*
// System.out.println("viewport: size="+w+"x"+h+", center =
"+xCenter+", "+yCenter+" scale = "+scale);
CyNetworkView view = Cytoscape.getCurrentNetworkView();
double lastScale = zoom;
@@ -186,6 +189,7 @@
}
}
if (needUpdate) view.updateView();
+*/
}
/**
@@ -312,14 +316,8 @@
x = 0.0; y = 0.0;
}
- BufferedImage image = (BufferedImage)
cmpd.getImage((int)(width*zoom), (int)(height*zoom));
- if (image == null) return null;
+ TexturePaint tp = new MyPaint(nv, cmpd, new
Rectangle2D.Double(x,y,width,height));
- // Create the image
- // TODO: Should we extend TexturePaint to get higher resolution
printing? How would
- // we know if we're printing or not???
- TexturePaint tp = new TexturePaint(image, new
Rectangle2D.Double(x,y,width,height));
-
// Add it to the view
return ((DNodeView)nv).addCustomGraphic(new
Rectangle2D.Double(x,y,width,height), tp,
anchor);
@@ -349,4 +347,34 @@
return true;
}
+
+ class MyPaint extends TexturePaint {
+ InnerCanvas canvas = null;
+ DGraphView view = null;
+ Compound compound = null;
+ int width;
+ int height;
+ double aspectRatio;
+
+ public MyPaint(NodeView nv, Compound compound, Rectangle2D
anchor) {
+ super(new BufferedImage((int)anchor.getWidth(),
(int)anchor.getHeight(), BufferedImage.TYPE_INT_RGB), anchor);
+ this.compound = compound;
+ this.view = (DGraphView)nv.getGraphView();
+ this.canvas = (InnerCanvas)view.getComponent();
+ this.width = (int) anchor.getWidth();
+ this.height = (int) anchor.getHeight();
+ this.aspectRatio = (double)width/(double)height;
+ }
+
+ public BufferedImage getImage() {
+ double zoom = view.getZoom();
+ if (canvas.isPrinting()) {
+ // System.out.println("Is printing");
+ return (BufferedImage)
compound.getImage((int)(512*aspectRatio), (int)(512/aspectRatio));
+ } else {
+ return (BufferedImage)
compound.getImage((int)(this.width*zoom), (int)(this.height*zoom));
+ }
+ }
+ }
+
}
Modified: csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/ui/CompoundPopup.java
===================================================================
--- csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/ui/CompoundPopup.java
2010-11-11 19:21:08 UTC (rev 22820)
+++ csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/ui/CompoundPopup.java
2010-11-11 21:59:51 UTC (rev 22821)
@@ -94,7 +94,7 @@
}
}
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
- setBackground(Color.WHITE);
+ setBackground(Color.BLACK);
addImages(400);
pack();
@@ -114,7 +114,7 @@
height = height - LABEL_HEIGHT;
// Is it in our map?
if (imageMap.containsKey(labelComponent)) {
- Image img =
imageMap.get(labelComponent).getImage(width,height);
+ Image img =
imageMap.get(labelComponent).getImage(width,height, Color.WHITE);
labelComponent.setIcon(new ImageIcon(img));
}
}
@@ -150,6 +150,7 @@
label.setVerticalTextPosition(JLabel.BOTTOM);
label.setHorizontalTextPosition(JLabel.CENTER);
}
+ label.setBackground(Color.WHITE);
label.addComponentListener(this);
imageMap.put(label, compound);
add (label);
Modified: csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/ui/CompoundTable.java
===================================================================
--- csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/ui/CompoundTable.java
2010-11-11 19:21:08 UTC (rev 22820)
+++ csplugins/trunk/ucsf/scooter/chemViz/src/chemViz/ui/CompoundTable.java
2010-11-11 21:59:51 UTC (rev 22821)
@@ -326,7 +326,7 @@
}
} else if (e.getActionCommand().equals("print")) {
try {
- table.print();
+ ((JTable)table).print();
} catch (Exception ePrint) {
logger.error("Unable to print table:
"+ePrint.getMessage(), ePrint);
}
--
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.