/**
  * Construct a dialog for setting the eye 3D view options.
  *
  * @param view A view whose display will be the parent of the dialog. This view is redrawn (if it
  *     is showing a stereo view) to show the new eye separation, and anaglyph is turned on or off
  *     if the setting of apply anaglyph is never or always.
  */
 private Set3DViewOptionsDialog(View3D view) {
   super(view.getDisplay(), I18n.tr("vmm.core3D.commands.SetEyeSep"));
   this.view = view;
   originalVal = Prefs.getDouble("eyeSeparationMultiplier", 1);
   multiplier = new RealParam(I18n.tr("vmm.core3D.SetEyeSepDialog.EyeSep"), originalVal);
   multiplier.setDefaultValue(1);
   multiplier.setMinimumValueForInput(0.1);
   multiplier.setMaximumValueForInput(10);
   input = new ParameterInput(multiplier);
   input.setColumns(5);
   Box inputPanel = Box.createVerticalBox();
   inputPanel.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
   Box eyeSepInput = Box.createVerticalBox();
   Box viewModeInput = Box.createVerticalBox();
   Box anaglyphPositioningInput = Box.createVerticalBox();
   eyeSepInput.setAlignmentX(0);
   viewModeInput.setAlignmentX(0);
   inputPanel.add(eyeSepInput);
   inputPanel.add(Box.createVerticalStrut(12));
   inputPanel.add(viewModeInput);
   inputPanel.add(Box.createVerticalStrut(12));
   inputPanel.add(anaglyphPositioningInput);
   eyeSepInput.setBorder(
       BorderFactory.createCompoundBorder(
           BorderFactory.createTitledBorder(
               I18n.tr("vmm.core3D.Set3DViewOptionsDialog.SetEyeSepMul")),
           BorderFactory.createEmptyBorder(8, 8, 8, 8)));
   viewModeInput.setBorder(
       BorderFactory.createCompoundBorder(
           BorderFactory.createTitledBorder(
               I18n.tr("vmm.core3D.Set3DViewOptionsDialog.SetViewModePref")),
           BorderFactory.createEmptyBorder(8, 8, 8, 8)));
   anaglyphPositioningInput.setBorder(
       BorderFactory.createCompoundBorder(
           BorderFactory.createTitledBorder(
               I18n.tr("vmm.core3D.Set3DViewOptionsDialog.SetAnaglyphObjectPosition")),
           BorderFactory.createEmptyBorder(8, 8, 8, 8)));
   JLabel labl = new JLabel(I18n.tr("vmm.core3D.Set3DViewOptionsDialog.EyeSep.info"));
   labl.setAlignmentX(0);
   eyeSepInput.add(labl);
   viewModeInput.add(Box.createVerticalStrut(18));
   JPanel temp = new JPanel();
   labl = new JLabel(I18n.tr("vmm.core3D.Set3DViewOptionsDialog.EyeSepMul") + " = ");
   labl.setAlignmentX(0);
   temp.add(labl);
   eyeSepInput.add(temp);
   temp.add(input);
   temp.setAlignmentX(0);
   originalAnaglyph = Prefs.get("view3d.initialAnaglyphMode", "default");
   alwaysAnaglyphButton = new JRadioButton(I18n.tr("vmm.core3D.SetAnaglyphDefaultMode.always"));
   neverAnaglyphButton = new JRadioButton(I18n.tr("vmm.core3D.SetAnaglyphDefaultMode.never"));
   defaultAnaglyphButton = new JRadioButton(I18n.tr("vmm.core3D.SetAnaglyphDefaultMode.default"));
   ButtonGroup group = new ButtonGroup();
   group.add(alwaysAnaglyphButton);
   group.add(neverAnaglyphButton);
   group.add(defaultAnaglyphButton);
   if (originalAnaglyph.equalsIgnoreCase("always")) alwaysAnaglyphButton.setSelected(true);
   else if (originalAnaglyph.equalsIgnoreCase("never")) neverAnaglyphButton.setSelected(true);
   else defaultAnaglyphButton.setSelected(true);
   labl = new JLabel(I18n.tr("vmm.core3D.Set3DViewOptionsDialog.AnaglyphPref.info"));
   viewModeInput.add(labl);
   viewModeInput.add(Box.createVerticalStrut(12));
   viewModeInput.add(defaultAnaglyphButton);
   viewModeInput.add(alwaysAnaglyphButton);
   viewModeInput.add(neverAnaglyphButton);
   moveObjectsForwardInAnaglyphToggle =
       new JCheckBox(I18n.tr("vmm.core3D.Set3DViewOptionsDialog.AnaglyphPositionOption"));
   originalMoveObjectsForwardInAnaglyph =
       "yes".equals(Prefs.get("view3d.moveObjectsForwardInAnaglyph"));
   moveObjectsForwardInAnaglyphToggle.setSelected(originalMoveObjectsForwardInAnaglyph);
   anaglyphPositioningInput.add(Box.createVerticalStrut(2));
   anaglyphPositioningInput.add(moveObjectsForwardInAnaglyphToggle);
   addInfoLabel(I18n.tr("vmm.core3D.Set3DViewOptionsDialog.info"));
   addInputPanel(inputPanel);
 }