I10n for the GL preferences

This commit is contained in:
bkuker 2013-09-24 16:59:59 -04:00
parent 321761cf0f
commit de2e2e6bd5
2 changed files with 154 additions and 136 deletions

View File

@ -253,7 +253,15 @@ pref.dlg.tab.Materials = Materials
pref.dlg.tab.Custommaterials = Custom materials pref.dlg.tab.Custommaterials = Custom materials
pref.dlg.tab.Options = Options pref.dlg.tab.Options = Options
pref.dlg.tab.Miscellaneousoptions = Miscellaneous options pref.dlg.tab.Miscellaneousoptions = Miscellaneous options
pref.dlg.tab.DecalEditor = Graphics Editor
pref.dlg.tab.Graphics = Graphics
pref.dlg.lbl.DecalEditor = Graphics Editor
pref.dlg.opengl.lbl.title = 3D Graphics
pref.dlg.opengl.but.enableGL = Enable 3D Graphics
pref.dlg.opengl.but.enableAA = Enable Antialiasing
pref.dlg.opengl.lbl.useFBO = Use Off-screen Rendering
pref.dlg.lbl.Positiontoinsert = Position to insert new body components: pref.dlg.lbl.Positiontoinsert = Position to insert new body components:
pref.dlg.lbl.Confirmdeletion = Confirm deletion of simulations: pref.dlg.lbl.Confirmdeletion = Confirm deletion of simulations:
pref.dlg.lbl.User-definedthrust = User-defined thrust curves: pref.dlg.lbl.User-definedthrust = User-defined thrust curves:

View File

@ -16,6 +16,7 @@ import java.util.List;
import java.util.Locale; import java.util.Locale;
import javax.swing.AbstractListModel; import javax.swing.AbstractListModel;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup; import javax.swing.ButtonGroup;
import javax.swing.ComboBoxModel; import javax.swing.ComboBoxModel;
import javax.swing.JButton; import javax.swing.JButton;
@ -28,12 +29,11 @@ import javax.swing.JOptionPane;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JProgressBar; import javax.swing.JProgressBar;
import javax.swing.JRadioButton; import javax.swing.JRadioButton;
import javax.swing.JSeparator;
import javax.swing.JTabbedPane; import javax.swing.JTabbedPane;
import javax.swing.JTextField; import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import javax.swing.Timer; import javax.swing.Timer;
import javax.swing.border.TitledBorder;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentEvent;
@ -64,6 +64,8 @@ import net.sf.openrocket.util.Utils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.itextpdf.text.Font;
public class PreferencesDialog extends JDialog { public class PreferencesDialog extends JDialog {
private static final Logger log = LoggerFactory.getLogger(PreferencesDialog.class); private static final Logger log = LoggerFactory.getLogger(PreferencesDialog.class);
@ -94,7 +96,7 @@ public class PreferencesDialog extends JDialog {
tabbedPane.addTab(trans.get("pref.dlg.tab.Options"), null, optionsPane(), tabbedPane.addTab(trans.get("pref.dlg.tab.Options"), null, optionsPane(),
trans.get("pref.dlg.tab.Miscellaneousoptions")); trans.get("pref.dlg.tab.Miscellaneousoptions"));
//// Decal Editor selection //// Decal Editor selection
tabbedPane.addTab("Graphics", graphicsOptionsPane()); //TODO Translation tabbedPane.addTab(trans.get("pref.dlg.tab.Graphics"), graphicsOptionsPane());
//// Close button //// Close button
JButton close = new JButton(trans.get("dlg.but.close")); JButton close = new JButton(trans.get("dlg.but.close"));
@ -475,150 +477,158 @@ public class PreferencesDialog extends JDialog {
private JPanel graphicsOptionsPane() { private JPanel graphicsOptionsPane() {
JPanel panel = new JPanel(new MigLayout("fill, ins n n n")); JPanel panel = new JPanel(new MigLayout("fillx"));
panel.add(new StyledLabel(trans.get("pref.dlg.tab.DecalEditor"), Style.BOLD), "wrap"); //TODO Translation panel.add(new JPanel(new MigLayout("fill, ins n n n")) {
{ //Editor Options
ButtonGroup execGroup = new ButtonGroup(); TitledBorder border = BorderFactory.createTitledBorder(trans.get("pref.dlg.lbl.DecalEditor"));
GUIUtil.changeFontStyle(border, Font.BOLD);
JRadioButton showPrompt = new JRadioButton(trans.get("EditDecalDialog.lbl.prompt")); setBorder(border);
showPrompt.setSelected(!preferences.isDecalEditorPreferenceSet());
showPrompt.addItemListener(new ItemListener() { ButtonGroup execGroup = new ButtonGroup();
@Override
public void itemStateChanged(ItemEvent e) { JRadioButton showPrompt = new JRadioButton(trans.get("EditDecalDialog.lbl.prompt"));
if (((JRadioButton) e.getItem()).isSelected()) { showPrompt.setSelected(!preferences.isDecalEditorPreferenceSet());
preferences.clearDecalEditorPreference(); showPrompt.addItemListener(new ItemListener() {
} @Override
} public void itemStateChanged(ItemEvent e) {
}); if (((JRadioButton) e.getItem()).isSelected()) {
panel.add(showPrompt, "wrap"); preferences.clearDecalEditorPreference();
execGroup.add(showPrompt); }
if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.EDIT)) {
JRadioButton systemRadio = new JRadioButton(trans.get("EditDecalDialog.lbl.system"));
systemRadio.setSelected(preferences.isDecalEditorPreferenceSystem());
systemRadio.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (((JRadioButton) e.getItem()).isSelected()) {
preferences.setDecalEditorPreference(true, null);
} }
} });
}); add(showPrompt, "wrap");
panel.add(systemRadio, "wrap"); execGroup.add(showPrompt);
execGroup.add(systemRadio);
if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.EDIT)) {
}
JRadioButton systemRadio = new JRadioButton(trans.get("EditDecalDialog.lbl.system"));
boolean commandLineIsSelected = preferences.isDecalEditorPreferenceSet() && !preferences.isDecalEditorPreferenceSystem(); systemRadio.setSelected(preferences.isDecalEditorPreferenceSystem());
final JRadioButton commandRadio = new JRadioButton(trans.get("EditDecalDialog.lbl.cmdline")); systemRadio.addItemListener(new ItemListener() {
commandRadio.setSelected(commandLineIsSelected); @Override
panel.add(commandRadio, "wrap"); public void itemStateChanged(ItemEvent e) {
execGroup.add(commandRadio); if (((JRadioButton) e.getItem()).isSelected()) {
preferences.setDecalEditorPreference(true, null);
final JTextField commandText = new JTextField(); }
commandText.setEnabled(commandLineIsSelected); }
commandText.setText(commandLineIsSelected ? preferences.getDecalEditorCommandLine() : ""); });
commandText.getDocument().addDocumentListener(new DocumentListener() { add(systemRadio, "wrap");
execGroup.add(systemRadio);
@Override
public void insertUpdate(DocumentEvent e) {
preferences.setDecalEditorPreference(false, commandText.getText());
}
@Override
public void removeUpdate(DocumentEvent e) {
preferences.setDecalEditorPreference(false, commandText.getText());
}
@Override
public void changedUpdate(DocumentEvent e) {
preferences.setDecalEditorPreference(false, commandText.getText());
}
});
panel.add(commandText, "growx, wrap");
final JButton chooser = new JButton(trans.get("EditDecalDialog.btn.chooser"));
chooser.setEnabled(commandLineIsSelected);
chooser.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fc = new JFileChooser();
int action = fc.showOpenDialog(SwingUtilities.windowForComponent(PreferencesDialog.this));
if (action == JFileChooser.APPROVE_OPTION) {
String commandLine = fc.getSelectedFile().getAbsolutePath();
commandText.setText(commandLine);
preferences.setDecalEditorPreference(false, commandLine);
} }
boolean commandLineIsSelected = preferences.isDecalEditorPreferenceSet() && !preferences.isDecalEditorPreferenceSystem();
final JRadioButton commandRadio = new JRadioButton(trans.get("EditDecalDialog.lbl.cmdline"));
commandRadio.setSelected(commandLineIsSelected);
add(commandRadio, "wrap");
execGroup.add(commandRadio);
final JTextField commandText = new JTextField();
commandText.setEnabled(commandLineIsSelected);
commandText.setText(commandLineIsSelected ? preferences.getDecalEditorCommandLine() : "");
commandText.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
preferences.setDecalEditorPreference(false, commandText.getText());
}
@Override
public void removeUpdate(DocumentEvent e) {
preferences.setDecalEditorPreference(false, commandText.getText());
}
@Override
public void changedUpdate(DocumentEvent e) {
preferences.setDecalEditorPreference(false, commandText.getText());
}
});
add(commandText, "growx, wrap");
final JButton chooser = new JButton(trans.get("EditDecalDialog.btn.chooser"));
chooser.setEnabled(commandLineIsSelected);
chooser.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fc = new JFileChooser();
int action = fc.showOpenDialog(SwingUtilities.windowForComponent(PreferencesDialog.this));
if (action == JFileChooser.APPROVE_OPTION) {
String commandLine = fc.getSelectedFile().getAbsolutePath();
commandText.setText(commandLine);
preferences.setDecalEditorPreference(false, commandLine);
}
}
});
add(chooser, "wrap");
commandRadio.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
boolean enabled = commandRadio.isSelected();
commandText.setEnabled(enabled);
chooser.setEnabled(enabled);
}
});
} }
}, "growx, span");
});
panel.add(chooser, "wrap");
panel.add(new JPanel(new MigLayout("fill, ins n n n")) {
commandRadio.addChangeListener(new ChangeListener() { {/////GL Options
TitledBorder border = BorderFactory.createTitledBorder(trans.get("pref.dlg.opengl.lbl.title"));
@Override GUIUtil.changeFontStyle(border, Font.BOLD);
public void stateChanged(ChangeEvent e) { setBorder(border);
boolean enabled = commandRadio.isSelected();
commandText.setEnabled(enabled); //// The effects will take place the next time you open a window.
chooser.setEnabled(enabled); add(new StyledLabel(
trans.get("pref.dlg.lbl.effect1"), -2, Style.ITALIC),
"spanx, wrap");
BooleanModel enableGLModel = new BooleanModel(preferences.getBoolean(Preferences.OPENGL_ENABLED, true));
final JCheckBox enableGL = new JCheckBox(enableGLModel);
enableGL.setText(trans.get("pref.dlg.opengl.but.enableGL"));
enableGL.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
preferences.putBoolean(Preferences.OPENGL_ENABLED, enableGL.isSelected());
}
});
add(enableGL, "wrap");
final JCheckBox enableAA = new JCheckBox(trans.get("pref.dlg.opengl.but.enableAA"));
enableAA.setSelected(preferences.getBoolean(Preferences.OPENGL_ENABLE_AA, true));
enableAA.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
preferences.putBoolean(Preferences.OPENGL_ENABLE_AA, enableAA.isSelected());
}
});
enableGLModel.addEnableComponent(enableAA);
add(enableAA, "wrap");
final JCheckBox useFBO = new JCheckBox(trans.get("pref.dlg.opengl.lbl.useFBO"));
useFBO.setSelected(preferences.getBoolean(Preferences.OPENGL_USE_FBO, false));
useFBO.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
preferences.putBoolean(Preferences.OPENGL_USE_FBO, useFBO.isSelected());
}
});
enableGLModel.addEnableComponent(useFBO);
add(useFBO, "wrap");
} }
}, "growx, span");
});
/////GL Options
panel.add(new JSeparator(SwingConstants.HORIZONTAL), "span, wrap, growx");
panel.add(new StyledLabel("3D Graphics", Style.BOLD), "wrap"); //TODO Translation
//// The effects will take place the next time you open a window.
panel.add(new StyledLabel(
trans.get("pref.dlg.lbl.effect1"), -2, Style.ITALIC),
"spanx, wrap");
BooleanModel enableGLModel = new BooleanModel(preferences.getBoolean(Preferences.OPENGL_ENABLED, true));
final JCheckBox enableGL = new JCheckBox(enableGLModel);
enableGL.setText("Enable 3D Graphics"); //TODO Translation
enableGL.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
preferences.putBoolean(Preferences.OPENGL_ENABLED, enableGL.isSelected());
}
});
panel.add(enableGL, "wrap");
final JCheckBox enableAA = new JCheckBox("Enable Antialiasing"); //TODO Translation
enableAA.setSelected(preferences.getBoolean(Preferences.OPENGL_ENABLE_AA, true));
enableAA.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
preferences.putBoolean(Preferences.OPENGL_ENABLE_AA, enableAA.isSelected());
}
});
enableGLModel.addEnableComponent(enableAA);
panel.add(enableAA, "wrap");
final JCheckBox useFBO = new JCheckBox("Use Offscreen Rendering"); //TODO Translation
useFBO.setSelected(preferences.getBoolean(Preferences.OPENGL_USE_FBO, false));
useFBO.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
preferences.putBoolean(Preferences.OPENGL_USE_FBO, useFBO.isSelected());
}
});
enableGLModel.addEnableComponent(useFBO);
panel.add(useFBO, "wrap");
return panel; return panel;
} }
private class DefaultUnitSelector extends AbstractListModel implements ComboBoxModel { private class DefaultUnitSelector extends AbstractListModel implements ComboBoxModel {
private final UnitGroup group; private final UnitGroup group;