1 19 package org.openharmonise.him.metadata.range.swing.range; 20 21 import java.awt.*; 22 import java.awt.event.*; 23 import java.util.*; 24 import java.util.List ; 25 26 import javax.swing.*; 27 28 import org.openharmonise.him.metadata.range.swing.*; 29 import org.openharmonise.him.metadata.range.swing.range.details.*; 30 import org.openharmonise.vfs.metadata.*; 31 import org.openharmonise.vfs.metadata.range.*; 32 import org.openharmonise.vfs.metadata.value.*; 33 34 35 40 public class RangeRangeDisplay 41 extends AbstractRangeDisplay 42 implements RangeDisplay, LayoutManager, ActionListener, RangeDetailsListener { 43 44 private int m_nHeight = 400; 45 46 private RangeTypeChoice m_choice = null; 47 48 private AbstractRangeDetails m_details = null; 49 50 53 public RangeRangeDisplay(PropertyInstance propInstance) { 54 super(propInstance); 55 this.setup(); 56 } 57 58 private void setup() { 59 this.setLayout(this); 60 61 m_choice = new RangeTypeChoice(this); 62 this.add(m_choice); 63 64 m_details = this.getDetailsPanel(); 65 m_details.addRangeDetailsListener(this); 66 this.add(m_details); 67 68 } 69 70 private AbstractRangeDetails getDetailsPanel() { 71 List values = this.getPropertyInstance().getValues(); 72 if(values.size()>0) { 73 RangeValue rangeValue = (RangeValue) this.getPropertyInstance().getValues().get(0); 74 Range range = rangeValue.getRange(); 75 if((range instanceof DateRange) || (range instanceof DateTimeRange)) { 76 this.m_choice.selectChoice("Date"); 77 return new DateDetails(this.getPropertyInstance()); 78 } else if((range instanceof IntegerRange) || (range instanceof FloatRange)) { 79 this.m_choice.selectChoice("Number"); 80 return new NumberDetails(this.getPropertyInstance()); 81 } else if(range instanceof BooleanRange) { 82 this.m_choice.selectChoice("Boolean"); 83 return new BooleanDetails(this.getPropertyInstance()); 84 } else if(range instanceof URIRange) { 85 this.m_choice.selectChoice("URI"); 86 return new URIDetails(this.getPropertyInstance()); 87 } else if(range instanceof ValueRange) { 88 this.m_choice.selectChoice("Vocabularies"); 89 return new VocabularyDetails(this.getPropertyInstance()); 90 } else if(range instanceof PropertyRange) { 91 this.m_choice.selectChoice("Compound Property"); 92 return new CompoundDetails(this.getPropertyInstance()); 93 } else if((range instanceof ResourceRange) || (range instanceof CollectionRange)) { 94 this.m_choice.selectChoice("Relationship"); 95 return new RelationshipDetails(this.getPropertyInstance()); 96 } else { 97 this.m_choice.selectChoice("Text"); 98 return new TextDetails(this.getPropertyInstance()); 99 } 100 } else { 101 return new BlankDetails(this.getPropertyInstance()); 102 } 103 } 104 105 protected void typeSelected(String sTemp) { 106 AbstractRangeDetails details = null; 107 108 RangeValue rangeValue = (RangeValue) this.getPropertyInstance().getNewValueInstance(); 109 ArrayList aValues = new ArrayList(); 110 aValues.add(rangeValue); 111 this.getPropertyInstance().setValues(aValues); 112 113 if(sTemp.equalsIgnoreCase("Number")) { 114 details = new NumberDetails(this.getPropertyInstance()); 115 } else if(sTemp.equalsIgnoreCase("Text")) { 116 details = new TextDetails(this.getPropertyInstance()); 117 } else if(sTemp.equalsIgnoreCase("Date")) { 118 details = new DateDetails(this.getPropertyInstance()); 119 } else if(sTemp.equalsIgnoreCase("URI")) { 120 details = new URIDetails(this.getPropertyInstance()); 121 } else if(sTemp.equalsIgnoreCase("Boolean")) { 122 details = new BooleanDetails(this.getPropertyInstance()); 123 } else if(sTemp.equalsIgnoreCase("Vocabularies")) { 124 details = new VocabularyDetails(this.getPropertyInstance()); 125 } else if(sTemp.equalsIgnoreCase("Compound Property")) { 126 details = new CompoundDetails(this.getPropertyInstance()); 127 } else if(sTemp.equalsIgnoreCase("Relationship")) { 128 details = new RelationshipDetails(this.getPropertyInstance()); 129 } 130 131 if(this.m_details!=null && !this.m_details.getClass().getName().equals(details.getClass().getName())) { 132 this.remove(this.m_details); 133 this.m_details = details; 134 m_details.addRangeDetailsListener(this); 135 this.add(this.m_details); 136 137 this.validateTree(); 138 } 139 } 140 141 144 public JPanel getPanel() { 145 return this; 146 } 147 148 151 public void removeLayoutComponent(Component arg0) { 152 } 153 154 157 public void layoutContainer(Container arg0) { 158 this.m_choice.setSize(this.m_choice.getPreferredSize()); 159 this.m_choice.setLocation(10, 0); 160 161 this.m_details.setSize(this.m_details.getPreferredSize()); 162 this.m_details.setLocation(10, 0 + this.m_choice.getPreferredSize().height); 163 } 164 165 public Dimension getPreferredSize() { 166 int nWidth = 10; 167 if(this.m_details.getPreferredSize().width>this.m_choice.getPreferredSize().width) { 168 nWidth = nWidth + this.m_details.getPreferredSize().width; 169 } else { 170 nWidth = nWidth + this.m_choice.getPreferredSize().width; 171 } 172 return new Dimension(nWidth, this.m_details.getPreferredSize().height + this.m_choice.getPreferredSize().height); 173 } 174 175 178 public void addLayoutComponent(String arg0, Component arg1) { 179 } 180 181 184 public Dimension minimumLayoutSize(Container arg0) { 185 return this.getPreferredSize(); 186 } 187 188 191 public Dimension preferredLayoutSize(Container arg0) { 192 return this.getPreferredSize(); 193 } 194 195 198 public void actionPerformed(ActionEvent arg0) { 199 } 200 201 204 public void rangeDetailsChange(RangeValue range) { 205 this.getPropertyInstance().setValue(range); 206 } 207 208 211 public boolean isMetadataValid() { 212 return true; 213 } 214 215 218 public boolean isResizeWidthEnabled() { 219 return false; 220 } 221 222 } 223 | Popular Tags |