+ /* Font size setting */
+ c.gridx = 0;
+ c.gridy = row;
+ c.gridwidth = 1;
+ c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.WEST;
+ pane.add(new JLabel("Font size"), c);
+
+ font_size_value = new JComboBox(font_size_names);
+ int font_size = AltosUIPreferences.font_size();
+ font_size_value.setSelectedIndex(font_size - Altos.font_size_small);
+ font_size_value.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ int size = font_size_value.getSelectedIndex() + Altos.font_size_small;
+
+ AltosUIPreferences.set_font_size(size);
+ }
+ });
+ c.gridx = 1;
+ c.gridy = row++;
+ c.gridwidth = 2;
+ c.fill = GridBagConstraints.BOTH;
+ c.anchor = GridBagConstraints.WEST;
+ pane.add(font_size_value, c);
+ font_size_value.setToolTipText("Font size used in telemetry window");
+
+ /* Look & Feel setting */
+ c.gridx = 0;
+ c.gridy = row;
+ c.gridwidth = 1;
+ c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.WEST;
+ pane.add(new JLabel("Look & feel"), c);
+
+ class LookAndFeelRenderer extends BasicComboBoxRenderer implements ListCellRenderer {
+
+ public LookAndFeelRenderer() {
+ super();
+ }
+
+ public Component getListCellRendererComponent(
+ JList list,
+ Object value,
+ int index,
+ boolean isSelected,
+ boolean cellHasFocus)
+ {
+ super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
+ setText(((UIManager.LookAndFeelInfo) value).getName());
+ return this;
+ }
+ }
+
+ final UIManager.LookAndFeelInfo[] look_and_feels = UIManager.getInstalledLookAndFeels();
+
+ System.out.printf("look_and_feels %d\n", look_and_feels.length);
+ look_and_feel_value = new JComboBox(look_and_feels);
+
+ DelegatingRenderer.install(look_and_feel_value);
+
+ String look_and_feel = AltosUIPreferences.look_and_feel();
+ for (int i = 0; i < look_and_feels.length; i++)
+ if (look_and_feel.equals(look_and_feels[i].getClassName()))
+ look_and_feel_value.setSelectedIndex(i);
+
+ look_and_feel_value.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ int id = look_and_feel_value.getSelectedIndex();
+
+ AltosUIPreferences.set_look_and_feel(look_and_feels[id].getClassName());
+ }
+ });
+ c.gridx = 1;
+ c.gridy = row++;
+ c.gridwidth = 2;
+ c.fill = GridBagConstraints.BOTH;
+ c.anchor = GridBagConstraints.WEST;
+ pane.add(look_and_feel_value, c);
+ look_and_feel_value.setToolTipText("Look&feel used for new windows");
+