source: josm/src/org/openstreetmap/josm/gui/preferences/LafPreference.java@ 168

Last change on this file since 168 was 168, checked in by imi, 17 years ago
  • added plugin-support for preferences
  • added advanced tab to preferences dialog
File size: 1.7 KB
Line 
1package org.openstreetmap.josm.gui.preferences;
2
3import static org.openstreetmap.josm.tools.I18n.tr;
4
5import java.awt.Component;
6
7import javax.swing.DefaultListCellRenderer;
8import javax.swing.JComboBox;
9import javax.swing.JLabel;
10import javax.swing.JList;
11import javax.swing.ListCellRenderer;
12import javax.swing.UIManager;
13import javax.swing.UIManager.LookAndFeelInfo;
14
15import org.openstreetmap.josm.Main;
16import org.openstreetmap.josm.tools.GBC;
17
18public class LafPreference implements PreferenceSetting {
19
20 /**
21 * ComboBox with all look and feels.
22 */
23 private JComboBox lafCombo;
24
25 public void addGui(PreferenceDialog gui) {
26 lafCombo = new JComboBox(UIManager.getInstalledLookAndFeels());
27
28 String laf = Main.pref.get("laf");
29 for (int i = 0; i < lafCombo.getItemCount(); ++i) {
30 if (((LookAndFeelInfo)lafCombo.getItemAt(i)).getClassName().equals(laf)) {
31 lafCombo.setSelectedIndex(i);
32 break;
33 }
34 }
35
36 final ListCellRenderer oldRenderer = lafCombo.getRenderer();
37 lafCombo.setRenderer(new DefaultListCellRenderer(){
38 @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
39 return oldRenderer.getListCellRendererComponent(list, ((LookAndFeelInfo)value).getName(), index, isSelected, cellHasFocus);
40 }
41 });
42 lafCombo.addActionListener(gui.requireRestartAction);
43
44 gui.display.add(new JLabel(tr("Look and Feel")), GBC.std());
45 gui.display.add(GBC.glue(5,0), GBC.std().fill(GBC.HORIZONTAL));
46 gui.display.add(lafCombo, GBC.eol().fill(GBC.HORIZONTAL));
47 }
48
49 public void ok() {
50 Main.pref.put("laf", ((LookAndFeelInfo)lafCombo.getSelectedItem()).getClassName());
51 }
52
53}
Note: See TracBrowser for help on using the repository browser.