Changeset 7798 for trunk/projects


Ignore:
Timestamp:
10/31/11 13:34:02 (8 years ago)
Author:
curtis
Message:

Add checkbox for toggling parallel projection.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/projects/visbio-plugins/src/main/java/loci/visbio/OrthoStack.java

    r7792 r7798  
    7272import visad.DataReferenceImpl; 
    7373import visad.Display; 
    74 import visad.GraphicsModeControl; 
    7574import visad.ImageFlatField; 
    7675import visad.ProjectionControl; 
     
    114113        private DoubleSlider angleSlider; 
    115114        private DoubleSlider zoomSlider; 
     115        private JCheckBox parallelToggle; 
    116116        private JCheckBox boundingBoxToggle; 
    117117        private JButton snapshotButton; 
     
    144144                if (display != null) display.destroy(); 
    145145                display = new DisplayImplJ3D("display"); 
    146                 final GraphicsModeControl gmc = display.getGraphicsModeControl(); 
    147                 gmc.setProjectionPolicy(DisplayImplJ3D.PARALLEL_PROJECTION); 
     146                setParallelProjection(true); 
    148147 
    149148                // compute initial aspect ratio 
     
    202201                zoomSlider.addAdjustmentListener(this); 
    203202 
     203                // create parallel projection checkbox 
     204                parallelToggle = new JCheckBox("Parallel projection", true); 
     205                parallelToggle.addActionListener(this); 
     206 
    204207                // create bounding box checkbox 
    205208                boundingBoxToggle = new JCheckBox("Show bounding box", true); 
     
    213216                final String layout = "fillx,wrap 2"; 
    214217                final String cols = "[pref|200px,fill,grow]"; 
    215                 final String rows = "[pref|pref|pref|pref|pref]"; 
     218                final String rows = "[pref|pref|pref|pref|pref|pref]"; 
    216219                sliderPanel.setLayout(new MigLayout(layout, cols, rows)); 
    217220                sliderPanel.add(stretchLabel); 
     
    221224                sliderPanel.add(zoomLabel); 
    222225                sliderPanel.add(zoomSlider); 
     226                sliderPanel.add(parallelToggle, "span 2"); 
    223227                sliderPanel.add(boundingBoxToggle, "span 2"); 
    224228                sliderPanel.add(snapshotButton, "span 2"); 
     
    230234 
    231235                updateProjection(); 
     236        } 
     237 
     238        public void setParallelProjection(final boolean parallel) { 
     239                try { 
     240                        display.getGraphicsModeControl().setProjectionPolicy( 
     241                                parallel ? DisplayImplJ3D.PARALLEL_PROJECTION 
     242                                        : DisplayImplJ3D.PERSPECTIVE_PROJECTION); 
     243                } 
     244                catch (final RemoteException exc) { 
     245                        IJ.handleException(exc); 
     246                } 
     247                catch (final VisADException exc) { 
     248                        IJ.handleException(exc); 
     249                } 
    232250        } 
    233251 
     
    311329        public void actionPerformed(final ActionEvent e) { 
    312330                final Object src = e.getSource(); 
     331                if (src == parallelToggle) { 
     332                        setParallelProjection(parallelToggle.isSelected()); 
     333                } 
    313334                if (src == boundingBoxToggle) { 
    314335                        setBoundingBox(boundingBoxToggle.isSelected()); 
Note: See TracChangeset for help on using the changeset viewer.