1 package com.calipso.reportgenerator.userinterface; 2 3 4 import com.calipso.reportgenerator.common.ReportGeneratorConfiguration; 5 import javax.swing.*; 6 import java.util.*; 7 import java.util.List ; 8 import java.awt.event.*; 9 import java.awt.*; 10 11 public class RankMetricEditor extends javax.swing.JDialog { 12 private Map dimensionRankMetrics; 13 private Map fieldCaptions; 14 private List metricNames; 15 private boolean accepted; 16 private Map comboMetricItems; 17 private ComboMetricItem noneComboMetricItem; 18 19 20 21 public static boolean editRankMetrics(Frame owner, Map dimensionRankMetrics, List metricNames, Map fieldCaptions, ReportGeneratorConfiguration conf) { 22 RankMetricEditor editor = new RankMetricEditor(owner, true, conf); 23 editor.InitContents(dimensionRankMetrics, metricNames, fieldCaptions); 24 editor.setVisible(true); 25 return editor.accepted(); 26 } 27 28 public RankMetricEditor(java.awt.Frame parent, boolean modal, ReportGeneratorConfiguration conf) { 29 super(parent, modal); 30 Image icon = conf.getImage("ICON"); 31 if(icon != null) { 32 parent.setIconImage(icon); 33 } 34 initComponents(); 35 } 36 37 private void initComponents() { 38 dimensionLabel = new javax.swing.JLabel (); 39 metricaComboBox = new javax.swing.JComboBox (); 40 metricaLabel = new javax.swing.JLabel (); 41 dimensionComboBox = new javax.swing.JComboBox (); 42 aceptarBtn = new javax.swing.JButton (); 43 cancelBtn = new javax.swing.JButton (); 44 45 getContentPane().setLayout(null); 46 47 dimensionLabel.setText(com.calipso.reportgenerator.common.LanguageTraslator.traslate("188")); 48 getContentPane().add(dimensionLabel); 49 dimensionLabel.setBounds(21, 15, 76, 16); 50 51 getContentPane().add(dimensionComboBox); 52 dimensionComboBox.setBounds(106, 10, 192, 25); 53 54 getContentPane().add(metricaComboBox); 55 metricaComboBox.setBounds(106, 54, 192, 25); 56 57 metricaLabel.setText(com.calipso.reportgenerator.common.LanguageTraslator.traslate("133")); 58 getContentPane().add(metricaLabel); 59 metricaLabel.setBounds(21, 54, 76, 16); 60 61 62 dimensionComboBox.addItemListener(new ItemListener() { 63 public void itemStateChanged(ItemEvent e) { 64 updateFromCurrentDimension((ComboDimensionRankMetricItem) e.getItem()); 65 } 66 }); 67 68 metricaComboBox.addItemListener(new ItemListener() { 69 public void itemStateChanged(ItemEvent e) { 70 updateDimensionRankMetric((ComboMetricItem) e.getItem()); 71 } 72 }); 73 74 aceptarBtn.setText(com.calipso.reportgenerator.common.LanguageTraslator.traslate("112")); 75 getContentPane().add(aceptarBtn); 76 aceptarBtn.setBounds(110, 110, 88, 26); 77 aceptarBtn.addActionListener(new ActionListener() { 78 public void actionPerformed(ActionEvent e) { 79 Accept(); 80 } 81 }); 82 cancelBtn.setText(com.calipso.reportgenerator.common.LanguageTraslator.traslate("113")); 83 getContentPane().add(cancelBtn); 84 cancelBtn.setBounds(210, 110, 88, 26); 85 cancelBtn.addActionListener(new ActionListener() { 86 public void actionPerformed(ActionEvent e) { 87 Cancel(); 88 } 89 }); 90 pack(); 91 java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); 92 setSize(new java.awt.Dimension (312, 168)); 93 setLocation((screenSize.width - 312) / 2, (screenSize.height - 168) / 2); 94 } 95 96 private void updateDimensionRankMetric(ComboMetricItem comboMetricItem) { 97 ((ComboDimensionRankMetricItem) dimensionComboBox.getSelectedItem()).setRankMetricName(comboMetricItem.getName()); 98 } 99 100 private void updateFromCurrentDimension(ComboDimensionRankMetricItem comboDimensionRankMetricItem) { 101 metricaComboBox.setSelectedItem(getComboMetricItem(comboDimensionRankMetricItem.getRankMetricName())); 102 } 103 104 private ComboMetricItem getComboMetricItem(String name) { 105 if (getComboMetricItems().containsKey(name)) { 106 return (ComboMetricItem) getComboMetricItems().get(name); 107 } 108 return getNoneComboMetricItem(); 109 } 110 111 private ComboMetricItem getNoneComboMetricItem() { 112 if (noneComboMetricItem == null) { 113 noneComboMetricItem = new ComboMetricItem("", com.calipso.reportgenerator.common.LanguageTraslator.traslate("187")); 114 } 115 return noneComboMetricItem; 116 } 117 118 private void Cancel() { 119 accepted = false; 120 setVisible(false); 121 } 122 123 private void Accept() { 124 accepted = true; 125 updateDimensionRankMetricNames(); 126 setVisible(false); 127 } 128 129 private void updateDimensionRankMetricNames() { 130 for (int i = 0; i < dimensionComboBox.getItemCount(); i++) { 131 ComboDimensionRankMetricItem item = (ComboDimensionRankMetricItem) dimensionComboBox.getItemAt(i); 132 getDimensionRankMetrics().put(item.getName(), item.getRankMetricName()); 133 } 134 } 135 136 private void InitContents(Map dimensionRankMetrics, List metricNames, Map fieldCaptions) { 137 setDimensionRankMetrics(dimensionRankMetrics); 138 setFieldCaptions(fieldCaptions); 139 setMetricNames(metricNames); 140 loadAllDimensionValues(); 141 loadAllMetricValues(); 142 setTitle(com.calipso.reportgenerator.common.LanguageTraslator.traslate("193")); 143 } 144 145 private JLabel metricaLabel; 146 private JLabel dimensionLabel; 147 private JComboBox metricaComboBox; 148 private JComboBox dimensionComboBox; 149 private JButton aceptarBtn; 150 private JButton cancelBtn; 151 152 153 private void loadAllDimensionValues() { 154 Vector vector = new Vector(); 155 Iterator iterator = dimensionRankMetrics.entrySet().iterator(); 156 while (iterator.hasNext()) { 157 Map.Entry entry = (Map.Entry) iterator.next(); 158 String name = (String ) entry.getKey(); 159 String rankMetricName = (String ) entry.getValue(); 160 String caption = (String ) getFieldCaptions().get(name); 161 vector.add(new ComboDimensionRankMetricItem(name, caption, rankMetricName)); 162 } 163 dimensionComboBox.setModel(new DefaultComboBoxModel(vector)); 164 } 165 166 private void loadAllMetricValues() { 167 Vector vector = new Vector(); 168 vector.add(getNoneComboMetricItem()); 169 Iterator iterator = metricNames.iterator(); 170 while (iterator.hasNext()) { 171 String name = (String ) iterator.next(); 172 ComboMetricItem item = new ComboMetricItem(name, (String ) fieldCaptions.get(name)); 173 vector.add(item); 174 getComboMetricItems().put(name, item); 175 } 176 metricaComboBox.setModel(new DefaultComboBoxModel(vector)); 177 } 178 179 private Map getComboMetricItems() { 180 if (comboMetricItems == null) { 181 comboMetricItems = new HashMap(); 182 } 183 return comboMetricItems; 184 } 185 186 187 public boolean accepted() { 188 return accepted; 189 } 190 191 public Map getDimensionRankMetrics() { 192 return dimensionRankMetrics; 193 } 194 195 public Map getFieldCaptions() { 196 return fieldCaptions; 197 } 198 199 public void setDimensionRankMetrics(Map dimensionRankMetrics) { 200 this.dimensionRankMetrics = dimensionRankMetrics; 201 } 202 203 public void setFieldCaptions(Map fieldCaptions) { 204 this.fieldCaptions = fieldCaptions; 205 } 206 207 public List getMetricNames() { 208 return metricNames; 209 } 210 211 public void setMetricNames(List metricNames) { 212 this.metricNames = metricNames; 213 } 214 215 private class ComboDimensionRankMetricItem { 216 private String name; 217 private String caption; 218 private String rankMetricName; 219 220 public ComboDimensionRankMetricItem(String name, String caption, String rankMetricName) { 221 this.name = name; 222 this.caption = caption; 223 this.rankMetricName = rankMetricName; 224 } 225 226 public String getName() { 227 return name; 228 } 229 230 public void setName(String name) { 231 this.name = name; 232 } 233 234 public String getCaption() { 235 return caption; 236 } 237 238 public void setCaption(String caption) { 239 this.caption = caption; 240 } 241 242 public String getRankMetricName() { 243 return rankMetricName; 244 } 245 246 public void setRankMetricName(String rankMetricName) { 247 this.rankMetricName = rankMetricName; 248 } 249 250 public String toString() { 251 return caption; 252 } 253 } 254 255 private class ComboMetricItem { 256 private String name; 257 private String caption; 258 259 public ComboMetricItem(String name, String caption) { 260 this.name = name; 261 this.caption = caption; 262 } 263 264 public String getName() { 265 return name; 266 } 267 268 public void setName(String name) { 269 this.name = name; 270 } 271 272 public String getCaption() { 273 return caption; 274 } 275 276 public void setCaption(String caption) { 277 this.caption = caption; 278 } 279 280 public String toString() { 281 return caption; 282 } 283 } 284 } 285 286 287 | Popular Tags |