source: java/installer2/src/net/oni2/aeinstaller/gui/settings/LaFComboModel.java@ 853

Last change on this file since 853 was 720, checked in by alloc, 12 years ago

AEI2: Looooots of refactorings for breaking out independent features into libraries

File size: 1.9 KB
Line 
1package net.oni2.aeinstaller.gui.settings;
2
3import java.util.HashSet;
4import java.util.Vector;
5
6import javax.swing.ComboBoxModel;
7import javax.swing.UIManager;
8import javax.swing.UIManager.LookAndFeelInfo;
9import javax.swing.event.ListDataListener;
10
11import net.oni2.SettingsManager;
12
13/**
14 * Comboboxmodel for Look and Feel selection
15 *
16 * @author Christian Illy
17 */
18public class LaFComboModel implements ComboBoxModel {
19
20 private Vector<LookAndFeelInfo> items;
21 private HashSet<ListDataListener> listeners;
22 private int selected;
23
24 /**
25 * Create a new LaF model
26 */
27 public LaFComboModel() {
28 listeners = new HashSet<ListDataListener>();
29 items = new Vector<LookAndFeelInfo>();
30 for (LookAndFeelInfo laf : UIManager.getInstalledLookAndFeels())
31 items.add(laf);
32
33
34 String laf = SettingsManager.getInstance().get("lookandfeel",
35 UIManager.getLookAndFeel().getClass().getName());
36
37 if (items.size() > 0)
38 selected = 0;
39 else
40 selected = -1;
41
42 for (int i = 0; i < items.size(); i++) {
43 String iLaF = items.get(i).getClassName();
44 if (iLaF.equals(laf)) {
45 selected = i;
46 break;
47 }
48 }
49 }
50
51 @Override
52 public int getSize() {
53 return items.size();
54 }
55
56 @Override
57 public Object getElementAt(int index) {
58 return items.get(index).getName();
59 }
60
61 /**
62 * Get class name for the selected LaF
63 *
64 * @return LaF class name
65 */
66 public String getSelectedClassName() {
67 return items.get(selected).getClassName();
68 }
69
70 @Override
71 public void addListDataListener(ListDataListener arg0) {
72 listeners.add(arg0);
73 }
74
75 @Override
76 public void removeListDataListener(ListDataListener arg0) {
77 listeners.remove(arg0);
78 }
79
80 @Override
81 public Object getSelectedItem() {
82 if (selected >= 0)
83 return getElementAt(selected);
84 else
85 return null;
86 }
87
88 @Override
89 public void setSelectedItem(Object anItem) {
90 for (int i = 0; i < items.size(); i++) {
91 if (getElementAt(i).equals(anItem)) {
92 selected = i;
93 return;
94 }
95 }
96 selected = -1;
97 }
98}
Note: See TracBrowser for help on using the repository browser.