- Timestamp:
- 2014-04-21T11:37:24+02:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellEditor.java
r6883 r6991 8 8 import java.awt.event.FocusAdapter; 9 9 import java.awt.event.FocusEvent; 10 import java.awt.event.ItemEvent; 11 import java.awt.event.ItemListener; 10 12 import java.awt.event.KeyEvent; 11 13 import java.util.concurrent.CopyOnWriteArrayList; … … 35 37 public class MultiValueCellEditor extends AbstractCellEditor implements TableCellEditor{ 36 38 39 /** 40 * Defines the interface for an object implementing navigation between rows 41 */ 37 42 public static interface NavigationListener { 43 /** Call when need to go to next row */ 38 44 void gotoNextDecision(); 45 /** Call when need to go to previous row */ 39 46 void gotoPreviousDecision(); 40 47 } … … 51 58 } 52 59 53 public void remove avigationListeners(NavigationListener listener) {60 public void removeNavigationListeners(NavigationListener listener) { 54 61 listeners.remove(listener); 55 62 } … … 67 74 } 68 75 76 /** 77 * Construct a new {@link MultiValueCellEditor} 78 */ 69 79 public MultiValueCellEditor() { 70 80 editorModel = new DefaultComboBoxModel(); … … 99 109 } 100 110 ); 111 editor.addItemListener( 112 new ItemListener() { 113 @Override 114 public void itemStateChanged(ItemEvent e) { 115 if(e.getStateChange() == ItemEvent.SELECTED) 116 fireEditingStopped(); 117 } 118 } 119 ); 101 120 editor.setRenderer(new EditorCellRenderer()); 102 121 listeners = new CopyOnWriteArrayList<NavigationListener>(); 103 122 } 104 123 124 /** 125 * Populate model with possible values for a decision, and select current choice. 126 * @param decision The {@link MultiValueResolutionDecision} to proceed 127 */ 105 128 protected void initEditor(MultiValueResolutionDecision decision) { 106 129 editorModel.removeAllElements(); 130 if (!decision.isDecided()) { 131 editorModel.addElement(MultiValueDecisionType.UNDECIDED); 132 } 107 133 for (String value: decision.getValues()) { 108 134 editorModel.addElement(value); … … 116 142 switch(decision.getDecisionType()) { 117 143 case UNDECIDED: 118 editor.setSelectedI ndex(0);144 editor.setSelectedItem(MultiValueDecisionType.UNDECIDED); 119 145 break; 120 146 case KEEP_ONE: … … 143 169 144 170 /** 145 * The cell renderer used in the combo box171 * The cell renderer used in the edit combo box 146 172 * 147 173 */ 148 174 private static class EditorCellRenderer extends JLabel implements ListCellRenderer { 149 175 176 /** 177 * Construct a new {@link EditorCellRenderer}. 178 */ 150 179 public EditorCellRenderer() { 151 180 setOpaque(true); 152 181 } 153 182 183 /** 184 * Set component color. 185 * @param selected true if is selected 186 */ 154 187 protected void renderColors(boolean selected) { 155 188 if (selected) { … … 162 195 } 163 196 197 /** 198 * Set text for a value 199 * @param value {@link String} or {@link MultiValueDecisionType} 200 */ 164 201 protected void renderValue(Object value) { 165 202 setFont(UIManager.getFont("ComboBox.font")); … … 168 205 } else if (MultiValueDecisionType.class.isInstance(value)) { 169 206 switch(MultiValueDecisionType.class.cast(value)) { 207 case UNDECIDED: 208 setText(tr("Choose a value")); 209 setFont(UIManager.getFont("ComboBox.font").deriveFont(Font.ITALIC + Font.BOLD)); 210 break; 170 211 case KEEP_NONE: 171 212 setText(tr("none"));
Note:
See TracChangeset
for help on using the changeset viewer.