KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > calipso > reportgenerator > userinterface > UPValuePanel


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 JavaDoc;
10 import java.util.HashMap JavaDoc;
11 import java.util.Iterator JavaDoc;
12
13 /**
14  * Representa un componente grafico, mas bien un subPanel de la instancia
15  * de <code>UPsPanel</code>. Este panel se construye a partir de una instancia
16  * <code>UPValueElement</code> por lo que representa un panel de tipo value.
17  */

18
19 public class UPValuePanel extends UPPanel implements ParameterPanelConstructor{
20
21   public UPValuePanel(UPValueElement owner) {
22     this.owner = owner;
23     initialize();
24   }
25
26   private void initialize() {
27     setLayout(new GridLayout(1, 1));
28     add(getWestPanel());
29     add(getCenterPanel());
30   }
31
32   private JPanel getCenterPanel() {
33     JPanel pnlCenter = new JPanel(new GridLayout(1, 1));
34     String JavaDoc dimensioName = owner.getFilterDefinition().getDimensionName();
35     int type;
36     if(dimensioName!=null && !dimensioName.equalsIgnoreCase("")){
37       type = owner.getReportSpec().getDimensionFromName(dimensioName).getDataType().getType();
38     }else{
39       type = owner.getFilterDefinition().getDataType().getType();
40     }
41     fillCenterPanel(pnlCenter, type);
42     return pnlCenter;
43   }
44
45   private void fillCenterPanel(JPanel pnlCenter, int type) {
46     switch(type) {
47       case ReportDataType.DATETIME_TYPE:
48       case ReportDataType.DATE_TYPE:
49         addWithDateTextField(pnlCenter);
50         break;
51       case ReportDataType.STRING_TYPE:
52         addWithStringTextField(pnlCenter);
53         break;
54       case ReportDataType.INTEGER_TYPE:
55         addWithIntegerTextField(pnlCenter);
56         break;
57       case ReportDataType.FLOAT_TYPE:
58         addWithFloatTextField(pnlCenter);
59         break;
60       case ReportDataType.BOOLEAN_TYPE:
61         addWithBooleanCheckBox(pnlCenter);
62         break;
63     }
64   }
65
66   public void addWithBooleanCheckBox(JPanel pnlCenter) {
67     String JavaDoc key = owner.getFilterDefinition().getName() + ((UPValueElement)owner).getUniqueArgument();
68     UPBooleanCheckBox booleanCheckBox = new UPBooleanCheckBox();
69     pnlCenter.add(booleanCheckBox);
70     super.addUPTextField(key, booleanCheckBox);
71   }
72
73   public void addWithFloatTextField(JPanel pnlCenter) {
74     pnlCenter.add(new Label(((UPValueElement)owner).getUniqueTfCaption()));
75     String JavaDoc key = owner.getFilterDefinition().getName() + ((UPValueElement)owner).getUniqueArgument();
76     Object JavaDoc object = owner.getReportSpec().getParamValues(false).get(key);
77     UPTextField textField = new UPFloatTextField(object.toString());
78     pnlCenter.add(textField);
79     super.addUPTextField(key, textField);
80   }
81
82   public void addWithIntegerTextField(JPanel pnlCenter) {
83     pnlCenter.add(new Label(((UPValueElement)owner).getUniqueTfCaption()));
84     String JavaDoc key = owner.getFilterDefinition().getName() + ((UPValueElement)owner).getUniqueArgument();
85     Object JavaDoc object = owner.getReportSpec().getParamValues(false).get(key);
86     UPTextField textField = new UPIntegerTextField(object.toString());
87     pnlCenter.add(textField);
88     super.addUPTextField(key, textField);
89   }
90
91   public void addWithStringTextField(JPanel pnlCenter) {
92     pnlCenter.add(new Label(((UPValueElement)owner).getUniqueTfCaption()));
93     String JavaDoc key = owner.getFilterDefinition().getName() + ((UPValueElement)owner).getUniqueArgument();
94     Object JavaDoc object = owner.getReportSpec().getParamValues(false).get(key);
95     if(object == null){
96       object = "";
97     }
98     UPTextField textField = new UPStringTextField(object.toString());
99     pnlCenter.add(textField);
100     super.addUPTextField(key, textField);
101   }
102
103   public void addWithDateTextField(JPanel pnlCenter) {
104     pnlCenter.add(new Label(((UPValueElement)owner).getUniqueTfCaption()));
105     String JavaDoc key = owner.getFilterDefinition().getName() + ((UPValueElement)owner).getUniqueArgument();
106     Object JavaDoc object = owner.getReportSpec().getParamValues(false).get(key);
107     UPTextField textField;
108     if(object instanceof SharedDate || object instanceof DateEx){
109       textField = new UPDateTextField(object.toString());
110     }else{
111       textField = new UPDateTextField(super.getDateFormatFrom(object.toString()));
112     }
113     pnlCenter.add(textField);
114     super.addUPTextField(key, textField);
115   }
116
117   /*private JPanel getWestPanel() {
118     JPanel pnlWest = new JPanel(new BorderLayout());
119     String dimensioName = owner.getFilterDefinition().getDimensionName();
120     JLabel label;
121     if(dimensioName!=null && !dimensioName.equalsIgnoreCase("")){
122       String dimensionCaption = owner.getReportSpec().getDimensionFromName(dimensioName).getCaption();
123       label = new JLabel(dimensionCaption);
124     }else{
125       label = new JLabel(owner.getFilterDefinition().getName());
126     }
127     pnlWest.add(label, BorderLayout.CENTER);
128     return pnlWest;
129   }*/

130
131   public boolean fillParamsMap(Map JavaDoc params) {
132     Map JavaDoc elements = super.getUpTextFieldCollection();
133     Iterator JavaDoc keysIterator = elements.keySet().iterator();
134     String JavaDoc key = (String JavaDoc) keysIterator.next();
135     UPComponent upComponent = (UPTextField) elements.get(key);
136     params.put(key, upComponent.getComponentValue());
137     return true;
138   }
139
140 }
141
Popular Tags