Changeset 7789 for trunk/projects
- Timestamp:
- 10/13/11 15:54:01 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/projects/visbio-plugins/src/main/java/loci/visbio/OrthoStack.java
r7788 r7789 39 39 import ij.ImageStack; 40 40 import ij.WindowManager; 41 import ij.io.FileSaver; 42 import ij.io.SaveDialog; 41 43 import ij.plugin.PlugIn; 42 44 import ij.process.ImageProcessor; … … 48 50 import java.awt.MediaTracker; 49 51 import java.awt.Toolkit; 52 import java.awt.event.ActionEvent; 53 import java.awt.event.ActionListener; 50 54 import java.awt.event.AdjustmentEvent; 51 55 import java.awt.event.AdjustmentListener; … … 53 57 import java.awt.event.WindowListener; 54 58 import java.awt.image.BufferedImage; 59 import java.io.File; 55 60 import java.rmi.RemoteException; 56 61 62 import javax.swing.JButton; 63 import javax.swing.JCheckBox; 57 64 import javax.swing.JFrame; 58 65 import javax.swing.JLabel; … … 80 87 * @author Curtis Rueden 81 88 */ 82 public class OrthoStack extends JPanel implements PlugIn, A djustmentListener,83 WindowListener89 public class OrthoStack extends JPanel implements PlugIn, ActionListener, 90 AdjustmentListener, WindowListener 84 91 { 85 92 … … 108 115 private DoubleSlider angleSlider; 109 116 private DoubleSlider zoomSlider; 117 private JCheckBox boundingBoxToggle; 118 private JButton snapshotButton; 110 119 111 120 public ImagePlus getImagePlus() { … … 194 203 zoomSlider.addAdjustmentListener(this); 195 204 205 // create bounding box checkbox 206 boundingBoxToggle = new JCheckBox("Show bounding box", true); 207 boundingBoxToggle.addActionListener(this); 208 209 snapshotButton = new JButton("Take snapshot"); 210 snapshotButton.addActionListener(this); 211 196 212 // build a panel to house the sliders 197 213 final JPanel sliderPanel = new JPanel(); 198 214 final String layout = "fillx,wrap 2"; 199 215 final String cols = "[pref|200px,fill,grow]"; 200 final String rows = "[pref|pref|pref ]";216 final String rows = "[pref|pref|pref|pref|pref]"; 201 217 sliderPanel.setLayout(new MigLayout(layout, cols, rows)); 202 218 sliderPanel.add(stretchLabel); … … 206 222 sliderPanel.add(zoomLabel); 207 223 sliderPanel.add(zoomSlider); 224 sliderPanel.add(boundingBoxToggle, "span 2"); 225 sliderPanel.add(snapshotButton, "span 2"); 208 226 209 227 // add components to main panel … … 213 231 214 232 updateProjection(); 233 } 234 235 public void setBoundingBox(final boolean selected) { 236 try { 237 display.getDisplayRenderer().setBoxOn(selected); 238 } 239 catch (final RemoteException exc) { 240 IJ.handleException(exc); 241 } 242 catch (final VisADException exc) { 243 IJ.handleException(exc); 244 } 245 } 246 247 public BufferedImage getSnapshot() { 248 return display.getImage(); 249 } 250 251 public void saveSnapshot() { 252 // prompt for filename to save 253 final SaveDialog saveDialog = 254 new SaveDialog("Save Snapshot", imp.getTitle(), ".png"); 255 final String directory = saveDialog.getDirectory(); 256 final String fileName = saveDialog.getFileName(); 257 final File file = new File(directory, fileName); 258 259 // save snapshot 260 final BufferedImage snapshot = getSnapshot(); 261 final ImagePlus impSnapshot = new ImagePlus(fileName, snapshot); 262 final FileSaver fileSaver = new FileSaver(impSnapshot); 263 fileSaver.saveAsPng(file.getPath()); 215 264 } 216 265 … … 236 285 237 286 // add ortho stack to a window frame 238 final JFrame frame = new JFrame(getImagePlus().getTitle()); 287 final String title = "Ortho Stack - " + getImagePlus().getTitle(); 288 final JFrame frame = new JFrame(title); 239 289 frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); 240 290 frame.addWindowListener(this); … … 246 296 frame.setSize(frame.getWidth(), 9 * screenSize.height / 10); 247 297 frame.setVisible(true); 298 } 299 300 // -- ActionListener methods -- 301 302 @Override 303 public void actionPerformed(final ActionEvent e) { 304 final Object src = e.getSource(); 305 if (src == boundingBoxToggle) { 306 setBoundingBox(boundingBoxToggle.isSelected()); 307 } 308 else if (src == snapshotButton) { 309 saveSnapshot(); 310 } 248 311 } 249 312
Note: See TracChangeset
for help on using the changeset viewer.