Changeset 2534

Show
Ignore:
Timestamp:
10/22/08 12:40:47 (3 months ago)
Author:
huangb
Message:

Add an export button for exporting visualization image to .eps file. But Can not put the button on the top of the frame, although the code has specified to put it at BorderLayout?.NORTH

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/plugins/visualization/edu.iu.nwb.visualization.prefuse.beta/src/edu/iu/nwb/visualization/prefuse/beta/common/AbstractVisualization.java

    r1975 r2534  
    44import java.awt.Component; 
    55import java.awt.Dimension; 
     6import java.awt.event.ActionEvent; 
     7import java.awt.event.ActionListener; 
    68import java.awt.event.KeyAdapter; 
    79import java.awt.event.KeyEvent; 
     10import java.awt.BorderLayout; 
    811import java.io.FileNotFoundException; 
    912import java.util.ArrayList; 
     
    2023import javax.swing.JFileChooser; 
    2124import javax.swing.JFrame; 
     25import javax.swing.JMenu; 
     26import javax.swing.JMenuBar; 
     27import javax.swing.JPanel; 
    2228import javax.swing.JScrollPane; 
    2329import javax.swing.JSeparator; 
     30import javax.swing.JButton; 
     31 
    2432 
    2533import org.freehep.graphics2d.VectorGraphics; 
     
    354362                 
    355363                //start things going 
    356                 visualization.run(DRAW); 
    357                  
    358                  
    359                  
     364                visualization.run(DRAW);         
    360365                 
    361366                //create a frame to stick everything in 
    362367        final JFrame frame = new JFrame(); 
    363         KeyAdapter keyAdapter = new KeyAdapter() { 
     368 
     369       KeyAdapter keyAdapter = new KeyAdapter() { 
    364370                                 
    365371 
     
    402408                                } 
    403409                        }; 
     410 
    404411                frame.addKeyListener(keyAdapter); 
    405412                display.addKeyListener(keyAdapter); 
    406          
     413 
     414        JButton exportButton = new JButton ("Export Image to .eps File"); 
     415        exportButton.setMnemonic(KeyEvent.VK_E); 
     416        exportButton.setActionCommand("export"); 
     417 
     418        exportButton.addActionListener(new ActionListener() { 
     419                public void actionPerformed(ActionEvent e) { 
     420                        if ("export".equals(e.getActionCommand())) { 
     421                                int option = chooser.showSaveDialog(frame); 
     422                                if(option == JFileChooser.APPROVE_OPTION) { 
     423                                        Properties properties = new Properties(); 
     424                                        properties.setProperty("PageSize", "A5"); 
     425                                         
     426                                        try {                                            
     427                                                 
     428                                                 
     429                                                //display.saveImage(new FileOutputStream(chooser.getSelectedFile()), "eps", 1.0); 
     430                                                 
     431                                                 
     432                                                        //Rectangle2D bounds = visualization.getBounds(all); 
     433                                                 
     434                                                        VectorGraphics graphics = new PSGraphics2D(chooser.getSelectedFile(), display.getSize()); 
     435                                                        graphics.setProperties(properties); 
     436                                                        graphics.startExport(); 
     437                                                        display.printAll(graphics); 
     438                                                        graphics.endExport(); 
     439                                                } catch (FileNotFoundException e1) { 
     440                                                        // TODO Auto-generated catch block 
     441                                                        e1.printStackTrace(); 
     442                                                } 
     443                                } 
     444 
     445                        } 
     446 
     447                } 
     448 
     449        }); 
     450 
    407451        JScrollPane scrollPane = new JScrollPane(legends); 
    408452        scrollPane.setPreferredSize(new Dimension(100, Math.min(180, maxHeight * 2))); 
    409453        display.setOpaque(true); 
    410         //JPanel wrapper = new JPanel(new BorderLayout()); 
    411         //wrapper.add(scrollPane, BorderLayout.CENTER); 
    412          
    413                 //let the given visualization layout the frame as desired 
    414                 this.arrangeComponents(frame, display, scrollPane); 
    415                  
     454        JPanel wrapper = new JPanel(new BorderLayout()); 
     455        wrapper.add(exportButton, BorderLayout.NORTH); 
     456        wrapper.add(scrollPane, BorderLayout.CENTER);  
     457        wrapper.addKeyListener(keyAdapter);   
     458 
     459        //let the given visualization layout the frame as desired 
     460//              this.arrangeComponents(frame, display, scrollPane); 
     461        this.arrangeComponents(frame, display, wrapper); 
    416462                 
    417463                //standard boilerplate