/** * 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); }