source: java/main/src/main/java/com/framsticks/gui/controls/EnumControl.java @ 193

Last change on this file since 193 was 193, checked in by Maciej Komosinski, 10 years ago

Set svn:eol-style native for all textual files

  • Property svn:eol-style set to native
File size: 1.6 KB
Line 
1package com.framsticks.gui.controls;
2
3import com.framsticks.gui.Gui;
4import com.framsticks.params.types.EnumParam;
5import com.framsticks.util.lang.Numbers;
6import org.apache.logging.log4j.Logger;
7import org.apache.logging.log4j.LogManager;
8
9import javax.swing.*;
10
11import java.awt.Dimension;
12import java.awt.event.ItemEvent;
13import java.awt.event.ItemListener;
14
15@SuppressWarnings("serial")
16public class EnumControl extends ValueControl {
17
18        protected final JComboBox<String> list;
19
20        private static final Logger log = LogManager.getLogger(EnumControl.class.getName());
21
22        public EnumControl(EnumParam enumParam) {
23                super(enumParam);
24
25                this.setMaximumSize(new Dimension(Integer.MAX_VALUE, LINE_HEIGHT));
26
27                list = new JComboBox<String>();
28                for (String item : enumParam.getElements()) {
29                        list.addItem(item);
30                }
31                list.setEditable(false);
32                list.addItemListener(new ItemListener() {
33                        @Override
34                        public void itemStateChanged(ItemEvent itemEvent) {
35                                notifyOfChange();
36                        }
37                });
38                Gui.addLeftToLabel(this, list);
39        }
40
41        @Override
42        public void pushValueToUserInterfaceImpl(Object value) {
43                Integer x = Numbers.cast(value, Integer.class);
44                if (x == null) {
45                        return;
46                }
47                try {
48                        list.setSelectedIndex(x - getParam().getMin(Integer.class));
49                } catch (IllegalArgumentException e) {
50                        log.error("failed to set value");
51                }
52        }
53
54        @Override
55        public Object pullValueFromUserInterface() {
56                return list.getSelectedIndex();
57        }
58
59        @Override
60        public EnumParam getParam() {
61                return (EnumParam) param;
62        }
63
64        @Override
65        protected void updateEnabled(boolean enabled) {
66                list.setEnabled(enabled);
67
68        }
69
70}
Note: See TracBrowser for help on using the repository browser.