1 19 package org.openharmonise.him.metadata.range.swing.range.details; 20 21 import java.awt.*; 22 import java.awt.event.*; 23 24 import javax.swing.*; 25 26 import org.openharmonise.him.metadata.range.swing.range.*; 27 import org.openharmonise.vfs.gui.*; 28 import org.openharmonise.vfs.metadata.*; 29 import org.openharmonise.vfs.metadata.range.*; 30 import org.openharmonise.vfs.metadata.value.*; 31 32 33 38 public class NumberDetails extends AbstractRangeDetails implements ActionListener, LayoutManager, KeyListener { 39 40 private JLabel m_minLabel = null; 41 private JTextField m_minField = null; 42 43 private JLabel m_maxLabel = null; 44 private JTextField m_maxField = null; 45 46 private JLabel m_floatingPointLabel = null; 47 private JCheckBox m_floatingPointCheck = null; 48 49 private JLabel m_arrow = null; 50 51 private RangeValue m_value = null; 52 private Range m_range = null; 53 57 public NumberDetails(PropertyInstance propInst) { 58 super(propInst, "Number details"); 59 this.setup(); 60 } 61 62 private void setup() { 63 this.setLayout(this); 64 65 this.m_floatingPointLabel = new JLabel("Include floating point?"); 66 this.add(this.m_floatingPointLabel); 67 this.m_floatingPointCheck = new JCheckBox(); 68 this.m_floatingPointCheck.addActionListener(this); 69 this.add(this.m_floatingPointCheck); 70 71 72 this.m_minLabel = new JLabel("Minimum"); 73 this.add(m_minLabel); 74 this.m_minField = new JTextField(); 75 this.m_minField.setBorder(BorderFactory.createEtchedBorder()); 76 this.m_minField.addKeyListener(this); 77 this.add(m_minField); 78 79 this.m_arrow = new JLabel(); 80 this.m_arrow.setIcon( IconManager.getInstance().getIcon("16-command-right.png") ); 81 this.add(this.m_arrow); 82 83 this.m_maxLabel = new JLabel("Maximum"); 84 this.add(m_maxLabel); 85 this.m_maxField = new JTextField(); 86 this.m_maxField.setBorder(BorderFactory.createEtchedBorder()); 87 this.m_maxField.addKeyListener(this); 88 this.add(m_maxField); 89 90 if(this.getPropertyInstance().getValues().size()>0) { 91 this.m_value = (RangeValue) this.getPropertyInstance().getValues().get(0); 92 Range range = (Range) this.m_value.getRange(); 93 94 if(range==null) { 95 this.m_range = (Range) new IntegerRange(); 96 this.m_value.setRange((org.openharmonise.vfs.metadata.Range) m_range); 97 } else { 98 this.m_range = (Range)range; 99 } 100 101 if(this.m_range instanceof IntegerRange) { 102 if(((IntegerRange)this.m_range).getMinimum()!=null) { 103 this.m_minField.setText( ((IntegerRange)this.m_range).getMinimum().toString() ); 104 } 105 if(((IntegerRange)this.m_range).getMaximum()!=null) { 106 this.m_maxField.setText( ((IntegerRange)this.m_range).getMaximum().toString() ); 107 } 108 this.m_floatingPointCheck.setSelected(false); 109 } else if(this.m_range instanceof FloatRange) { 110 if(((FloatRange)this.m_range).getMinimum()!=null) { 111 this.m_minField.setText( ((FloatRange)this.m_range).getMinimum().toString() ); 112 } 113 if(((FloatRange)this.m_range).getMaximum()!=null) { 114 this.m_maxField.setText( ((FloatRange)this.m_range).getMaximum().toString() ); 115 } 116 this.m_floatingPointCheck.setSelected(true); 117 } 118 } 119 } 120 121 124 public void layoutContainer(Container arg0) { 125 126 this.m_floatingPointCheck.setSize(this.m_floatingPointCheck.getPreferredSize()); 127 this.m_floatingPointCheck.setLocation(20, 20); 128 129 this.m_floatingPointLabel.setSize(120, this.m_minLabel.getPreferredSize().height); 130 this.m_floatingPointLabel.setLocation(50, 20); 131 132 this.m_minLabel.setSize(this.m_minLabel.getPreferredSize()); 133 this.m_minLabel.setLocation(20, 50); 134 135 this.m_minField.setSize(120, m_minField.getPreferredSize().height); 136 this.m_minField.setLocation(20, 70); 137 138 this.m_arrow.setSize(this.m_arrow.getPreferredSize()); 139 this.m_arrow.setLocation(150, 72); 140 141 this.m_maxLabel.setSize(this.m_maxLabel.getPreferredSize()); 142 this.m_maxLabel.setLocation(180, 50); 143 144 this.m_maxField.setSize(120, m_maxField.getPreferredSize().height); 145 this.m_maxField.setLocation(180, 70); 146 147 148 } 149 150 153 public void keyPressed(KeyEvent arg0) { 154 } 155 156 159 162 public void keyReleased(KeyEvent ke) { 163 if(ke.getSource()==this.m_minField) { 164 try { 165 if(this.m_range instanceof IntegerRange) { 166 Integer nValue = new Integer (Integer.parseInt(this.m_minField.getText())); 167 ((IntegerRange)this.m_range).setMinimum(nValue); 168 } else if(this.m_range instanceof FloatRange) { 169 Float nValue = new Float (Float.parseFloat(this.m_minField.getText())); 170 ((FloatRange)this.m_range).setMinimum(nValue); 171 } 172 this.fireRangeDetailsChanged(m_value); 173 } catch(Exception e) { 174 } 175 } else if(ke.getSource()==this.m_maxField) { 176 try { 177 if(this.m_range instanceof IntegerRange) { 178 Integer nValue = new Integer (Integer.parseInt(this.m_maxField.getText())); 179 ((IntegerRange)this.m_range).setMaximum(nValue); 180 } else if(this.m_range instanceof FloatRange) { 181 Float nValue = new Float (Float.parseFloat(this.m_maxField.getText())); 182 ((FloatRange)this.m_range).setMaximum(nValue); 183 } 184 this.fireRangeDetailsChanged(m_value); 185 } catch(Exception e) { 186 } 187 } 188 } 189 190 193 public void keyTyped(KeyEvent arg0) { 194 } 195 196 199 public void actionPerformed(ActionEvent arg0) { 200 Range currentRange = (Range) this.m_range; 201 Range newRange = null; 202 if(this.m_floatingPointCheck.isSelected()) { 203 IntegerRange tempCurrRange = (IntegerRange)currentRange; 204 FloatRange tempRange = new FloatRange(); 205 if(tempCurrRange.getMaximum()!=null) { 206 tempRange.setMaximum(tempCurrRange.getMaximum().floatValue()); 207 } else { 208 tempRange.setMaximum(-1); 209 } 210 if(tempCurrRange.getMinimum()!=null) { 211 tempRange.setMinimum(tempCurrRange.getMinimum().floatValue()); 212 } else { 213 tempRange.setMinimum(0); 214 } 215 this.m_range = (Range) tempRange; 216 this.m_value.setRange((org.openharmonise.vfs.metadata.Range) this.m_range); 217 this.fireRangeDetailsChanged(m_value); 218 } else { 219 FloatRange tempCurrRange = (FloatRange)currentRange; 220 IntegerRange tempRange = new IntegerRange(); 221 if(tempCurrRange.getMaximum()!=null) { 222 tempRange.setMaximum(tempCurrRange.getMaximum().intValue()); 223 } else { 224 tempRange.setMaximum(-1); 225 } 226 if(tempCurrRange.getMinimum()!=null) { 227 tempRange.setMinimum(tempCurrRange.getMinimum().intValue()); 228 } else { 229 tempRange.setMinimum(0); 230 } 231 this.m_range = (Range) tempRange; 232 this.m_value.setRange((org.openharmonise.vfs.metadata.Range) this.m_range); 233 this.fireRangeDetailsChanged(m_value); 234 } 235 } 236 237 } 238 | Popular Tags |