1 package com.calipso.reportgenerator.userinterface; 2 3 import com.calipso.reportgenerator.reportcalculator.SharedDate; 4 import com.calipso.reportgenerator.reportdefinitions.types.ReportDataType; 5 import com.calipso.common.DateEx; 6 7 import javax.swing.*; 8 import java.awt.*; 9 import java.util.Map ; 10 import java.util.Iterator ; 11 12 17 18 public class UPRangePanel extends UPPanel implements ParameterPanelConstructor{ 19 20 public UPRangePanel(UPRangeElement owner) { 21 this.owner = owner; 22 initialize(); 23 } 24 25 private void initialize() { 26 setLayout(new GridLayout(1, 1)); 27 add(getWestPanel()); 28 add(getCenterPanel()); 29 } 30 31 private JPanel getCenterPanel() { 32 JPanel pnlCenter = new JPanel(new GridLayout(2, 2)); 33 String dimensioName = owner.getFilterDefinition().getDimensionName(); 34 int type; 35 if(dimensioName!=null && !dimensioName.equalsIgnoreCase("")){ 36 type = owner.getReportSpec().getDimensionFromName(dimensioName).getDataType().getType(); 37 }else{ 38 type = owner.getFilterDefinition().getDataType().getType(); 39 } 40 fillCenterPanel(pnlCenter, type); 41 return pnlCenter; 42 } 43 44 private void fillCenterPanel(JPanel pnlCenter, int type) { 45 switch(type) { 46 case ReportDataType.DATETIME_TYPE: 47 case ReportDataType.DATE_TYPE: 48 addWithDateTextField(pnlCenter); 49 break; 50 case ReportDataType.STRING_TYPE: 51 addWithStringTextField(pnlCenter); 52 break; 53 case ReportDataType.INTEGER_TYPE: 54 addWithIntegerTextField(pnlCenter); 55 break; 56 case ReportDataType.FLOAT_TYPE: 57 addWithFloatTextField(pnlCenter); 58 break; 59 } 60 } 61 62 public void addWithFloatTextField(JPanel pnlCenter) { 63 pnlCenter.add(new Label(((UPRangeElement)owner).getStartingTfCaption())); 64 String key = owner.getFilterDefinition().getName() + ((UPRangeElement)owner).getStartingArgument(); 65 Object object = owner.getReportSpec().getParamValues(false).get(key); 66 UPTextField textField = new UPFloatTextField(object.toString()); 67 pnlCenter.add(textField); 68 super.addUPTextField(key, textField); 69 pnlCenter.add(new Label(((UPRangeElement)owner).getEndingTfCaption())); 70 key = owner.getFilterDefinition().getName() + ((UPRangeElement)owner).getEndingArgument(); 71 object = owner.getReportSpec().getParamValues(false).get(key); 72 textField = new UPFloatTextField(object.toString()); 73 pnlCenter.add(textField); 74 super.addUPTextField(key, textField); 75 } 76 77 public void addWithIntegerTextField(JPanel pnlCenter) { 78 pnlCenter.add(new Label(((UPRangeElement)owner).getStartingTfCaption())); 79 String key = owner.getFilterDefinition().getName() + ((UPRangeElement)owner).getStartingArgument(); 80 Object object = owner.getReportSpec().getParamValues(false).get(key); 81 UPTextField textField = new UPIntegerTextField(object.toString()); 82 pnlCenter.add(textField); 83 super.addUPTextField(key, textField); 84 pnlCenter.add(new Label(((UPRangeElement)owner).getEndingTfCaption())); 85 key = owner.getFilterDefinition().getName() + ((UPRangeElement)owner).getEndingArgument(); 86 object = owner.getReportSpec().getParamValues(false).get(key); 87 textField = new UPIntegerTextField(object.toString()); 88 pnlCenter.add(textField); 89 super.addUPTextField(key, textField); 90 } 91 92 public void addWithStringTextField(JPanel pnlCenter) { 93 pnlCenter.add(new Label(((UPRangeElement)owner).getStartingTfCaption())); 94 String key = owner.getFilterDefinition().getName() + ((UPRangeElement)owner).getStartingArgument(); 95 Object object = owner.getReportSpec().getParamValues(false).get(key); 96 UPTextField textField = new UPStringTextField(object.toString()); 97 pnlCenter.add(textField); 98 super.addUPTextField(key, textField); 99 pnlCenter.add(new Label(((UPRangeElement)owner).getEndingTfCaption())); 100 key = owner.getFilterDefinition().getName() + ((UPRangeElement)owner).getEndingArgument(); 101 object = owner.getReportSpec().getParamValues(false).get(key); 102 textField = new UPStringTextField(object.toString()); 103 pnlCenter.add(textField); 104 super.addUPTextField(key, textField); 105 } 106 107 public void addWithDateTextField(JPanel pnlCenter) { 108 pnlCenter.add(new Label(((UPRangeElement)owner).getStartingTfCaption())); 109 String key = owner.getFilterDefinition().getName() + ((UPRangeElement)owner).getStartingArgument(); 110 Object object = owner.getReportSpec().getParamValues(false).get(key); 111 UPTextField textField; 112 if(object instanceof SharedDate || object instanceof DateEx){ 113 textField = new UPDateTextField(object.toString()); 114 }else{ 115 textField = new UPDateTextField(super.getDateFormatFrom(object.toString())); 116 } 117 pnlCenter.add(textField); 118 super.addUPTextField(key, textField); 119 pnlCenter.add(new Label(((UPRangeElement)owner).getEndingTfCaption())); 120 key = owner.getFilterDefinition().getName() + ((UPRangeElement)owner).getEndingArgument(); 121 object = owner.getReportSpec().getParamValues(false).get(key); 122 if(object instanceof SharedDate || object instanceof DateEx){ 123 textField = new UPDateTextField(object.toString()); 124 }else{ 125 textField = new UPDateTextField(super.getDateFormatFrom(object.toString())); 126 } 127 pnlCenter.add(textField); 128 super.addUPTextField(key, textField); 129 } 130 131 public boolean fillParamsMap(Map params) { 132 Map elements = super.getUpTextFieldCollection(); 133 Iterator keysIterator = elements.keySet().iterator(); 134 String firstKey = (String ) keysIterator.next(); 135 String secondKey = (String ) keysIterator.next(); 136 UPTextField firstUPTextField = (UPTextField) elements.get(firstKey); 137 UPTextField secondUPTextField = (UPTextField) elements.get(secondKey); 138 if(firstUPTextField.isLessThan(secondUPTextField)) { 139 params.put(firstKey, firstUPTextField.getComponentValue()); 140 params.put(secondKey, secondUPTextField.getComponentValue()); 141 return true; 142 } else { 143 return false; 144 } 145 } 146 147 } 148 | Popular Tags |