Author: kono
Date: 2010-07-16 13:24:41 -0700 (Fri, 16 Jul 2010)
New Revision: 20951
Modified:
cytoscape/trunk/src/cytoscape/actions/ExportAsGraphicsAction.java
cytoscape/trunk/src/cytoscape/dialogs/ExportAsGraphicsFileChooser.java
cytoscape/trunk/src/cytoscape/view/CyMenus.java
Log:
Export as Graphics dialog size and layouts are optimized.
Modified: cytoscape/trunk/src/cytoscape/actions/ExportAsGraphicsAction.java
===================================================================
--- cytoscape/trunk/src/cytoscape/actions/ExportAsGraphicsAction.java
2010-07-16 19:38:43 UTC (rev 20950)
+++ cytoscape/trunk/src/cytoscape/actions/ExportAsGraphicsAction.java
2010-07-16 20:24:41 UTC (rev 20951)
@@ -28,135 +28,126 @@
import cytoscape.view.CyNetworkView;
import cytoscape.view.InternalFrameComponent;
-
/**
* Action for exporting a network view to bitmap or vector graphics.
+ *
* @author Samad Lotia
*/
public class ExportAsGraphicsAction extends CytoscapeAction {
-
+
private static final long serialVersionUID = -5887102279435784342L;
-
- private static ExportFilter BMP_FILTER = new BitmapExportFilter("bmp",
"BMP");
- private static ExportFilter JPG_FILTER = new BitmapExportFilter("jpg",
"JPEG");
- private static ExportFilter PDF_FILTER = new PDFExportFilter();
- private static ExportFilter PNG_FILTER = new BitmapExportFilter("png",
"PNG");
- private static ExportFilter SVG_FILTER = new SVGExportFilter();
- private static ExportFilter EPS_FILTER = new PSExportFilter("eps",
"EPS");
- private static ExportFilter[] FILTERS = { PDF_FILTER, SVG_FILTER,
EPS_FILTER, JPG_FILTER, PNG_FILTER, BMP_FILTER };
-
- protected static CyLogger logger =
CyLogger.getLogger(ExportAsGraphicsAction.class);
- private static String TITLE = "Current Network View as Graphics";
+ private static final ExportFilter BMP_FILTER = new
BitmapExportFilter("bmp", "BMP");
+ private static final ExportFilter JPG_FILTER = new
BitmapExportFilter("jpg", "JPEG");
+ private static final ExportFilter PDF_FILTER = new PDFExportFilter();
+ private static final ExportFilter PNG_FILTER = new
BitmapExportFilter("png", "PNG");
+ private static final ExportFilter SVG_FILTER = new SVGExportFilter();
+ private static final ExportFilter EPS_FILTER = new
PSExportFilter("eps","EPS");
+ private final static ExportFilter[] FILTERS = { PDF_FILTER, SVG_FILTER,
+ EPS_FILTER, JPG_FILTER, PNG_FILTER, BMP_FILTER };
+
+ static final CyLogger logger =
CyLogger.getLogger(ExportAsGraphicsAction.class);
+
+ private static final String TITLE = "Current Network View as Graphics";
+
+ public static ExportFilter[] getFilters() {
+ return FILTERS;
+ }
+
public ExportAsGraphicsAction() {
super(TITLE + "...");
setPreferredMenu("File.Export");
- setAcceleratorCombo(KeyEvent.VK_P, ActionEvent.CTRL_MASK |
ActionEvent.SHIFT_MASK);
+ setAcceleratorCombo(KeyEvent.VK_P, ActionEvent.CTRL_MASK
+ | ActionEvent.SHIFT_MASK);
}
- public void menuSelected(MenuEvent e)
- {
+ public void menuSelected(MenuEvent e) {
enableForNetworkAndView();
}
- public void actionPerformed(ActionEvent e)
- {
+
+ public void actionPerformed(ActionEvent e) {
final CyNetworkView v = Cytoscape.getCurrentNetworkView();
- if ( v == null || v == Cytoscape.getNullNetworkView() ) {
+ if (v == null || v == Cytoscape.getNullNetworkView()) {
logger.error("No network view exists to export!");
return;
}
+ final ExportAsGraphicsFileChooser chooser = new
ExportAsGraphicsFileChooser(FILTERS, JPG_FILTER);
- final ExportAsGraphicsFileChooser chooser = new
ExportAsGraphicsFileChooser(FILTERS);
-
- ActionListener listener = new ActionListener()
- {
- public void actionPerformed(ActionEvent event)
- {
- ExportFilter filter = (ExportFilter)
chooser.getSelectedFormat();
+ final ActionListener listener = new ActionListener() {
+ public void actionPerformed(ActionEvent event) {
+ ExportFilter filter = (ExportFilter) chooser
+ .getSelectedFormat();
filter.setExportTextAsFont(chooser.getExportTextAsFont());
-
+
File file = chooser.getSelectedFile();
-
+
chooser.dispose();
FileOutputStream stream = null;
- try
- {
+ try {
stream = new FileOutputStream(file);
- }
- catch (Exception exp)
- {
- JOptionPane.showMessageDialog(
Cytoscape.getDesktop(),
-
"Could not create file " + file.getName()
-
+ "\n\nError: " + exp.getMessage());
+ } catch (Exception exp) {
+
JOptionPane.showMessageDialog(Cytoscape.getDesktop(),
+ "Could not create file
" + file.getName()
+ +
"\n\nError: " + exp.getMessage());
return;
}
- CyNetworkView view =
Cytoscape.getCurrentNetworkView();
+ final CyNetworkView view =
Cytoscape.getCurrentNetworkView();
filter.export(view, stream);
}
};
chooser.addActionListener(listener);
chooser.setVisible(true);
- }
+ }
}
-
-class ExportTask
-{
- public static void run( final String title,
- final Exporter exporter,
- final CyNetworkView view,
- final FileOutputStream stream)
- {
+class ExportTask {
+ public static void run(final String title, final Exporter exporter,
+ final CyNetworkView view, final FileOutputStream
stream) {
// Create the Task
- Task task = new Task()
- {
+ Task task = new Task() {
TaskMonitor monitor;
- public String getTitle()
- {
+ public String getTitle() {
return title;
}
- public void setTaskMonitor(TaskMonitor monitor)
- {
+ public void setTaskMonitor(TaskMonitor monitor) {
this.monitor = monitor;
}
- public void halt()
- {
+ public void halt() {
}
- public void run()
- {
- try {
- try {
- exporter.export(view, stream);
- }
- catch (Exception e) {
- monitor.setException(e, "Could not complete export of
network");
- }
- }
- finally {
- if (stream != null) {
- try {
- stream.close();
- }
- catch (IOException ioe) {
- ExportAsGraphicsAction.logger.warn("Unable to
close the stream: "+ioe.getMessage(), ioe);
- }
- }
- }
+ public void run() {
+ try {
+ try {
+ exporter.export(view, stream);
+ } catch (Exception e) {
+ monitor.setException(e,
+ "Could not
complete export of network");
+ }
+ } finally {
+ if (stream != null) {
+ try {
+ stream.close();
+ } catch (IOException ioe) {
+
ExportAsGraphicsAction.logger.warn(
+ "Unable
to close the stream: "
+
+ ioe.getMessage(), ioe);
+ }
+ }
+ }
}
};
-
+
// Execute the task
- JTaskConfig jTaskConfig = new JTaskConfig();
+ final JTaskConfig jTaskConfig = new JTaskConfig();
jTaskConfig.displayCancelButton(false);
jTaskConfig.displayCloseButton(false);
jTaskConfig.displayStatus(false);
@@ -169,70 +160,65 @@
}
}
-abstract class ExportFilter extends CyFileFilter
-{
+abstract class ExportFilter extends CyFileFilter {
+
protected boolean exportTextAsFont = false;
- public ExportFilter(String extension, String description)
- {
+
+ public ExportFilter(String extension, String description) {
super(extension, description);
}
- public boolean isExtensionListInDescription()
- {
+ public boolean isExtensionListInDescription() {
return true;
}
- public String toString()
- {
+ public String toString() {
return getDescription();
}
public void setExportTextAsFont(boolean pExportTextAsFont) {
exportTextAsFont = pExportTextAsFont;
}
-
+
public boolean getExportTextAsFont() {
return exportTextAsFont;
}
-
+
public abstract void export(CyNetworkView view, FileOutputStream
stream);
}
-class PDFExportFilter extends ExportFilter
-{
- public PDFExportFilter()
- {
+class PDFExportFilter extends ExportFilter {
+ public PDFExportFilter() {
super("pdf", "PDF");
}
- public void export(final CyNetworkView view, final FileOutputStream
stream)
- {
+
+ public void export(final CyNetworkView view, final FileOutputStream
stream) {
PDFExporter exporter = new PDFExporter();
exporter.setExportTextAsFont(this.getExportTextAsFont());
ExportTask.run("Exporting to PDF", exporter, view, stream);
}
}
-class BitmapExportFilter extends ExportFilter
-{
+class BitmapExportFilter extends ExportFilter {
private String extension;
- public BitmapExportFilter(String extension, String description)
- {
+ public BitmapExportFilter(String extension, String description) {
super(extension, description);
this.extension = extension;
}
- public void export(final CyNetworkView view, final FileOutputStream
stream)
- {
- final InternalFrameComponent ifc =
Cytoscape.getDesktop().getNetworkViewManager().getInternalFrameComponent(view);
- final ExportBitmapOptionsDialog dialog = new
ExportBitmapOptionsDialog(ifc.getWidth(), ifc.getHeight());
- ActionListener listener = new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- BitmapExporter exporter = new
BitmapExporter(extension, dialog.getZoom());
+ public void export(final CyNetworkView view, final FileOutputStream
stream) {
+ final InternalFrameComponent ifc = Cytoscape.getDesktop()
+
.getNetworkViewManager().getInternalFrameComponent(view);
+ final ExportBitmapOptionsDialog dialog = new
ExportBitmapOptionsDialog(
+ ifc.getWidth(), ifc.getHeight());
+ ActionListener listener = new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ BitmapExporter exporter = new
BitmapExporter(extension,
+ dialog.getZoom());
dialog.dispose();
- ExportTask.run("Exporting to " + extension,
exporter, view, stream);
+ ExportTask.run("Exporting to " + extension,
exporter, view,
+ stream);
}
};
dialog.addActionListener(listener);
@@ -240,33 +226,26 @@
}
}
-class SVGExportFilter extends ExportFilter
-{
- public SVGExportFilter()
- {
+class SVGExportFilter extends ExportFilter {
+ public SVGExportFilter() {
super("svg", "SVG");
}
- public void export(final CyNetworkView view, final FileOutputStream
stream)
- {
- SVGExporter exporter = new SVGExporter();
+ public void export(final CyNetworkView view, final FileOutputStream
stream) {
+ final SVGExporter exporter = new SVGExporter();
exporter.setExportTextAsFont(this.getExportTextAsFont());
ExportTask.run("Exporting to SVG", exporter, view, stream);
}
}
-class PSExportFilter extends ExportFilter
-{
- public PSExportFilter(String extension, String description)
- {
+class PSExportFilter extends ExportFilter {
+ public PSExportFilter(String extension, String description) {
super(extension, description);
}
- public void export(final CyNetworkView view, final FileOutputStream
stream)
- {
- PSExporter exporter = new PSExporter();
+ public void export(final CyNetworkView view, final FileOutputStream
stream) {
+ final PSExporter exporter = new PSExporter();
exporter.setExportTextAsFont(this.getExportTextAsFont());
ExportTask.run("Exporting to EPS", exporter, view, stream);
}
}
-
Modified: cytoscape/trunk/src/cytoscape/dialogs/ExportAsGraphicsFileChooser.java
===================================================================
--- cytoscape/trunk/src/cytoscape/dialogs/ExportAsGraphicsFileChooser.java
2010-07-16 19:38:43 UTC (rev 20950)
+++ cytoscape/trunk/src/cytoscape/dialogs/ExportAsGraphicsFileChooser.java
2010-07-16 20:24:41 UTC (rev 20951)
@@ -1,18 +1,28 @@
package cytoscape.dialogs;
-import javax.swing.*;
-
-import java.awt.*;
-import java.awt.event.*;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
import java.io.File;
import java.util.Enumeration;
import java.util.List;
import java.util.Properties;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JDialog;
+import javax.swing.JOptionPane;
+
+import com.lowagie.text.Font;
+
import cytoscape.Cytoscape;
import cytoscape.CytoscapeInit;
+import cytoscape.util.CyFileFilter;
import cytoscape.util.FileUtil;
-import cytoscape.util.CyFileFilter;
import cytoscape.visual.VisualStyle;
import cytoscape.visual.calculators.Calculator;
@@ -20,17 +30,28 @@
* Dialog that chooses file to export to.
* @author Samad Lotia
*/
-public class ExportAsGraphicsFileChooser extends JDialog implements
ActionListener
-{
- protected File selectedFile;
+public class ExportAsGraphicsFileChooser extends JDialog implements
ActionListener {
+
+ private static final long serialVersionUID = 4895622023575071394L;
+
+ private static final Dimension DIALOG_SIZE = new Dimension(650, 165);
- private boolean exportTextAsFont = !(new
Boolean(CytoscapeInit.getProperties().getProperty("exportTextAsShape")).booleanValue());
+ private File selectedFile;
+ private CyFileFilter selectedFilter;
- public ExportAsGraphicsFileChooser(CyFileFilter[] formats)
- {
+ private boolean exportTextAsFont =
!(Boolean.getBoolean(CytoscapeInit.getProperties().getProperty("exportTextAsShape")));
+
+ public ExportAsGraphicsFileChooser(final CyFileFilter[] formats) {
+ this(formats, null);
+ }
+
+ public ExportAsGraphicsFileChooser(final CyFileFilter[] formats, final
CyFileFilter defaultFilter) {
+
super(Cytoscape.getDesktop(), "Export Network View as
Graphics");
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
+ this.selectedFilter = defaultFilter;
+
initComponents();
setModal(true);
@@ -44,10 +65,15 @@
chkExportTextAsFont.setSelected(exportTextAsFont);
formatComboBox.setModel(new DefaultComboBoxModel(formats));
- formatComboBox.setSelectedIndex(0);
- formatComboBox.addItemListener(new MyItemListener());
+ if(selectedFilter == null) {
+ formatComboBox.setSelectedIndex(0);
+ this.selectedFilter = (CyFileFilter)
formatComboBox.getSelectedItem();
+ } else
+ formatComboBox.setSelectedItem(defaultFilter);
+ formatComboBox.addItemListener(new FormatItemListener());
+
removeFile();
setLocationRelativeTo(Cytoscape.getDesktop());
@@ -57,7 +83,7 @@
// This is a work-around, because ItemEvent is received twice in
MyItemListener.
private static int eventCount =0;
- private class MyItemListener implements ItemListener {
+ private class FormatItemListener implements ItemListener {
public void itemStateChanged(ItemEvent e) {
// Ignore double event
eventCount++;
@@ -68,7 +94,7 @@
if
(formatComboBox.getSelectedItem().toString().equalsIgnoreCase("EPS (*.eps)") &&
useTransparency()) {
JOptionPane.showMessageDialog(
Cytoscape.getDesktop(),
- "Could not export in
EPS format, because transparency is used in the visual style!");
+ "Could not export in
EPS format, because transparency is used in the Visual Style!");
okButton.setEnabled(false);
chooseFileButton.setEnabled(false);
}
@@ -139,21 +165,21 @@
return false;
}
- public CyFileFilter getSelectedFormat()
- {
+ public CyFileFilter getSelectedFormat() {
return (CyFileFilter) formatComboBox.getSelectedItem();
}
- public File getSelectedFile()
- {
+
+ public File getSelectedFile() {
return selectedFile;
}
- public void addActionListener(ActionListener l)
- {
+
+ public void addActionListener(ActionListener l) {
okButton.addActionListener(l);
}
+
protected void assignFile(File file)
{
selectedFile = file;
@@ -254,6 +280,9 @@
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">
private void initComponents() {
+ this.setMinimumSize(DIALOG_SIZE);
+ this.setPreferredSize(DIALOG_SIZE);
+
java.awt.GridBagConstraints gridBagConstraints;
selectFileLabel = new javax.swing.JLabel();
@@ -271,10 +300,11 @@
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
selectFileLabel.setText("File to export to:");
+ selectFileLabel.setFont(new java.awt.Font("SansSerif", Font.BOLD, 12));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
- gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 0);
+ gridBagConstraints.insets = new java.awt.Insets(20, 10, 10, 0);
getContentPane().add(selectFileLabel, gridBagConstraints);
filePathField.setEditable(false);
@@ -298,20 +328,23 @@
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
- gridBagConstraints.insets = new java.awt.Insets(0, 10, 10, 10);
+ gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 10);
getContentPane().add(formatLabel, gridBagConstraints);
formatComboBox.setPreferredSize(new java.awt.Dimension(120, 22));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
- gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 10);
+ gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 10);
getContentPane().add(formatComboBox, gridBagConstraints);
+ final Dimension buttonSize = new Dimension(100, 25);
okButton.setText("OK");
+ okButton.setPreferredSize(buttonSize);
btnPanel.add(okButton);
cancelButton.setText("Cancel");
+ cancelButton.setPreferredSize(buttonSize);
btnPanel.add(cancelButton);
gridBagConstraints = new java.awt.GridBagConstraints();
@@ -319,7 +352,7 @@
gridBagConstraints.gridy = 4;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
- gridBagConstraints.insets = new java.awt.Insets(15, 0, 15, 0);
+ gridBagConstraints.insets = new java.awt.Insets(0, 350, 15, 0);
getContentPane().add(btnPanel, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
@@ -336,10 +369,9 @@
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
- gridBagConstraints.insets = new java.awt.Insets(0, 20, 10, 0);
+ gridBagConstraints.insets = new java.awt.Insets(0, 20, 0, 0);
getContentPane().add(chkExportTextAsFont, gridBagConstraints);
- // pack();
}// </editor-fold>
// Variables declaration - do not modify
Modified: cytoscape/trunk/src/cytoscape/view/CyMenus.java
===================================================================
--- cytoscape/trunk/src/cytoscape/view/CyMenus.java 2010-07-16 19:38:43 UTC
(rev 20950)
+++ cytoscape/trunk/src/cytoscape/view/CyMenus.java 2010-07-16 20:24:41 UTC
(rev 20951)
@@ -609,7 +609,7 @@
toolBar.addSeparator();
- ExportAsGraphicsAction eag = new ExportAsGraphicsAction();
+ final ExportAsGraphicsAction eag = new ExportAsGraphicsAction();
eag.putValue(Action.NAME, null);
snapshotButton = toolBar.add(eag);
snapshotButton.setToolTipText("Export current network view as
graphics");
--
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.