1 19 package org.openharmonise.him.metadata.range.swing; 20 21 import java.awt.Color ; 22 import java.awt.Dimension ; 23 import java.awt.Font ; 24 import java.awt.LayoutManager ; 25 import java.util.ArrayList ; 26 import java.util.HashMap ; 27 import java.util.Iterator ; 28 import java.util.StringTokenizer ; 29 30 import javax.swing.BoxLayout ; 31 import javax.swing.JLabel ; 32 import javax.swing.JPanel ; 33 34 49 public class WarningsLabel extends JPanel { 50 51 private ArrayList m_aLabels = new ArrayList (5); 52 private HashMap m_variables = new HashMap (3); 53 54 55 60 public WarningsLabel(String sText) { 61 super(); 62 setup(sText); 63 } 64 65 68 private WarningsLabel(boolean arg0) { 69 super(arg0); 70 } 71 72 75 private WarningsLabel(LayoutManager arg0) { 76 super(arg0); 77 } 78 79 83 private WarningsLabel(LayoutManager arg0, boolean arg1) { 84 super(arg0, arg1); 85 } 86 87 92 private void setup(String sText) { 93 94 BoxLayout layout = new BoxLayout (this, BoxLayout.LINE_AXIS); 95 this.setLayout(layout); 96 97 boolean bInVar = false; 98 StringTokenizer sTok = new StringTokenizer (sText, "{}", true); 99 while(sTok.hasMoreElements()) { 100 String sTemp = (String )sTok.nextElement(); 101 if(sTemp.equals("{")) { 102 bInVar=true; 103 } else if(sTemp.equals("}")) { 104 bInVar=false; 105 } else { 106 JLabel label = new JLabel (sTemp); 107 108 String fontName = "Dialog"; 109 int fontSize = 11; 110 Font font = new Font (fontName, Font.PLAIN, fontSize); 111 label.setFont(font); 112 113 this.m_aLabels.add(label); 114 if(bInVar) { 115 this.m_variables.put(sTemp, label); 116 } 117 118 this.add(label); 119 } 120 } 121 } 122 123 129 public void setHighlight(String sVarText, boolean bHighLighted) { 130 this.setHighlight(sVarText, bHighLighted, Color.RED); 131 } 132 133 141 public void setHighlight(String sVarText, boolean bHighLighted, Color color) { 142 JLabel label = (JLabel )this.m_variables.get(sVarText); 143 if(label!=null) { 144 if(bHighLighted) { 145 label.setForeground(color); 146 } else { 147 label.setForeground(Color.BLACK); 148 } 149 } 150 } 151 152 158 public void setAllHighlights(boolean bHighLighted) { 159 this.setAllHighlights(bHighLighted, Color.RED); 160 } 161 162 169 public void setAllHighlights(boolean bHighLighted, Color color) { 170 Iterator itor = this.m_variables.values().iterator(); 171 while(itor.hasNext()) { 172 JLabel label = (JLabel )itor.next(); 173 if(label!=null) { 174 if(bHighLighted) { 175 label.setForeground(color); 176 } else { 177 label.setForeground(Color.BLACK); 178 } 179 } 180 } 181 } 182 183 186 public Dimension getPreferredSize() { 187 int nX = 0; 188 int nY = 0; 189 190 Iterator itor = this.m_aLabels.iterator(); 191 while(itor.hasNext()) { 192 JLabel label = (JLabel )itor.next(); 193 Dimension dim = label.getPreferredSize(); 194 nX = nX + dim.width; 195 nY = nY + dim.height; 196 } 197 return new Dimension (nX, 13); 198 } 199 200 203 public void setFont(Font font) { 204 super.setFont(font); 205 if(this.m_aLabels!=null) { 206 Iterator itor = this.m_aLabels.iterator(); 207 while(itor.hasNext()) { 208 JLabel label = (JLabel )itor.next(); 209 label.setFont(font); 210 } 211 } 212 } 213 214 } 215 | Popular Tags |