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.

Reply via email to