001: /*
002: * Created on 04/08/2005 Swing Components - visit http://sf.net/projects/gfd Copyright (C) 2004 Igor Regis da Silva
003: * Simões This program is free software; you can redistribute it and/or modify it under the terms of the GNU General
004: * Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any
005: * later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
006: * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
007: * more details. You should have received a copy of the GNU General Public License along with this program; if not,
008: * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
009: */
010: package br.com.gfp.reports.param;
011:
012: import java.awt.Dimension;
013: import java.awt.Frame;
014: import java.awt.GridBagConstraints;
015: import java.awt.GridBagLayout;
016: import java.awt.event.ActionEvent;
017: import java.awt.event.ActionListener;
018: import java.sql.SQLException;
019: import java.util.Calendar;
020: import java.util.Date;
021:
022: import javax.swing.JButton;
023: import javax.swing.JDialog;
024: import javax.swing.JLabel;
025: import javax.swing.JPanel;
026: import javax.swing.JSpinner;
027: import javax.swing.SpinnerDateModel;
028: import javax.swing.JSpinner.DateEditor;
029:
030: import br.com.gfp.dao.GFPController;
031: import br.com.gfp.data.AccountSaving;
032: import br.com.gfp.data.AccountType;
033: import br.com.gfp.data.CheckingAccount;
034: import br.com.gfp.data.CreditCard;
035: import br.com.gfp.data.TransactionType;
036: import br.com.gfp.internationalization.ReportsMessages;
037: import br.com.gfp.internationalization.TelaConfiguraAplicacaoMessages;
038: import br.com.gfp.util.SimpleLog;
039: import br.com.gfp.windows.componentes.GFPComboBoxRenderer;
040: import br.com.gfpshare.beans.DBComboBox;
041: import br.com.gfpshare.beans.ZCalendarTextField;
042:
043: /**
044: * Esta Dialog captura os dados necessários para geração do grafico de mesmo nome
045: * @author Igor Regis da Silva Simoes
046: * @since 04/08/2005 14:04:05
047: */
048: public class GenericReportParameterDialog extends JDialog {
049: private DBComboBox dbTipo = new DBComboBox(new TransactionType());
050:
051: private ZCalendarTextField ictfInicio = new ZCalendarTextField();
052:
053: private ZCalendarTextField ictfFim = new ZCalendarTextField();
054:
055: private JLabel jlMes = new JLabel();
056:
057: private JSpinner jsMesAno = new JSpinner();
058:
059: private DBComboBox dbTipoConta = new DBComboBox(new AccountType());
060:
061: private DBComboBox dbConta = new DBComboBox();
062:
063: private JPanel jContentPane = new JPanel();
064:
065: private JButton jbOk = new JButton();
066:
067: private JLabel jlIntervalo = new JLabel();
068:
069: private JLabel jlTipoLancamento = new JLabel();
070:
071: private JLabel jlConta = new JLabel();
072:
073: /**
074: * This is the default constructor
075: */
076: public GenericReportParameterDialog() {
077: super ((Frame) GFPController.getGFPController().getContexto()
078: .get(GFPController.FRAME_PRINCIPAL), true);
079: setDefaultCloseOperation(DISPOSE_ON_CLOSE);
080: initialize();
081: setLocationRelativeTo(getOwner());
082: pack();
083: }
084:
085: /**
086: * This method initializes this
087: * @return void
088: */
089: private void initialize() {
090: this .setTitle(ReportsMessages.getMessages().getString(
091: "DialogTitle"));
092: this .setSize(415, 170);
093:
094: jContentPane.setLayout(new GridBagLayout());
095:
096: jlIntervalo.setText(ReportsMessages.getMessages().getString(
097: "IntervalLabel"));
098: GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
099: gridBagConstraints1.gridx = 0;
100: gridBagConstraints1.gridy = 0;
101: gridBagConstraints1.gridwidth = 2;
102: gridBagConstraints1.fill = java.awt.GridBagConstraints.BOTH;
103: gridBagConstraints1.insets = new java.awt.Insets(5, 5, 5, 5);
104: jContentPane.add(jlIntervalo, gridBagConstraints1);
105:
106: jbOk.setPreferredSize(new java.awt.Dimension(80, 26));
107: jbOk.setText(ReportsMessages.getMessages().getString("Ok"));
108: jbOk.addActionListener(new ActionListener() {
109: public void actionPerformed(java.awt.event.ActionEvent e) {
110: GenericReportParameterDialog.this .dispose();
111: }
112: });
113: GridBagConstraints gridBagConstraints6 = new GridBagConstraints();
114: gridBagConstraints6.gridx = 2;
115: gridBagConstraints6.gridy = 4;
116: gridBagConstraints6.fill = java.awt.GridBagConstraints.VERTICAL;
117: gridBagConstraints1.insets = new java.awt.Insets(5, 5, 10, 5);
118: jContentPane.add(jbOk, gridBagConstraints6);
119:
120: GridBagConstraints gridBagConstraints2 = new GridBagConstraints();
121: gridBagConstraints2.gridx = 2;
122: gridBagConstraints2.gridy = 0;
123: gridBagConstraints2.insets = new java.awt.Insets(5, 5, 5, 5);
124: jContentPane.add(ictfInicio, gridBagConstraints2);
125:
126: GridBagConstraints gridBagConstraints3 = new GridBagConstraints();
127: gridBagConstraints3.gridx = 3;
128: gridBagConstraints3.gridy = 0;
129: gridBagConstraints3.insets = new java.awt.Insets(5, 5, 5, 5);
130: jContentPane.add(ictfFim, gridBagConstraints3);
131:
132: jlTipoLancamento.setText(ReportsMessages.getMessages()
133: .getString("TypeTransactionLabel"));
134: GridBagConstraints gridBagConstraints4 = new GridBagConstraints();
135: gridBagConstraints4.gridx = 0;
136: gridBagConstraints4.gridy = 1;
137: gridBagConstraints4.gridwidth = 2;
138: gridBagConstraints4.insets = new java.awt.Insets(5, 5, 5, 5);
139: gridBagConstraints4.fill = java.awt.GridBagConstraints.BOTH;
140: jContentPane.add(jlTipoLancamento, gridBagConstraints4);
141:
142: GridBagConstraints gridBagConstraints5 = new GridBagConstraints();
143: gridBagConstraints5.gridx = 2;
144: gridBagConstraints5.gridy = 1;
145: gridBagConstraints5.fill = java.awt.GridBagConstraints.BOTH;
146: gridBagConstraints5.insets = new java.awt.Insets(5, 5, 5, 5);
147: gridBagConstraints5.gridwidth = 2;
148: gridBagConstraints5.anchor = java.awt.GridBagConstraints.WEST;
149: jContentPane.add(dbTipo, gridBagConstraints5);
150:
151: jlConta.setText(ReportsMessages.getMessages().getString(
152: "AccountNameLabel"));
153: gridBagConstraints5 = new GridBagConstraints();
154: gridBagConstraints5.gridx = 0;
155: gridBagConstraints5.gridy = 2;
156: gridBagConstraints5.fill = java.awt.GridBagConstraints.BOTH;
157: gridBagConstraints5.insets = new java.awt.Insets(5, 5, 5, 5);
158: gridBagConstraints5.anchor = java.awt.GridBagConstraints.WEST;
159: jContentPane.add(jlConta, gridBagConstraints5);
160:
161: dbTipoConta.addActionListener(new ActionListener() {
162: /**
163: * Este método é chamado sempre que o tipo de conta que está sendo consultada é alterado
164: * @param e Evento que gerou a alteração
165: */
166: public void actionPerformed(ActionEvent e) {
167: if (e.getSource() == dbTipoConta) {
168: try {
169: dbConta.setSelectedIndex(0);
170: } catch (IllegalArgumentException iae) {
171: ((SimpleLog) GFPController.getGFPController()
172: .getContexto().get(GFPController.LOG))
173: .log("Erro ao limpar campo conta!");
174: ((SimpleLog) GFPController.getGFPController()
175: .getContexto().get(GFPController.LOG))
176: .log(iae.getLocalizedMessage());
177: ((SimpleLog) GFPController.getGFPController()
178: .getContexto().get(GFPController.LOG))
179: .log(iae);
180: }
181:
182: if (dbTipoConta.getSelectedItem() == null) {
183: dbConta.setDataType(null);
184: } else if (((AccountType) dbTipoConta
185: .getSelectedItem()).getNome().toString()
186: .equalsIgnoreCase("contaCorrente")) {
187: dbConta.setDataType(new CheckingAccount());
188: } else if (((AccountType) dbTipoConta
189: .getSelectedItem()).getNome().toString()
190: .equalsIgnoreCase("aplicacao")) {
191: dbConta.setDataType(new AccountSaving());
192: } else if (((AccountType) dbTipoConta
193: .getSelectedItem()).getNome().toString()
194: .equalsIgnoreCase("cartaoCredito")) {
195: dbConta.setDataType(new CreditCard());
196: }
197: }
198: setTitle(null);
199: }
200: });
201: dbTipoConta.setRenderer(new GFPComboBoxRenderer(
202: GFPComboBoxRenderer.TIPO_DE_CONTA, -1));
203: gridBagConstraints5 = new GridBagConstraints();
204: gridBagConstraints5.gridx = 1;
205: gridBagConstraints5.gridy = 2;
206: gridBagConstraints5.fill = java.awt.GridBagConstraints.BOTH;
207: gridBagConstraints5.insets = new java.awt.Insets(5, 5, 5, 5);
208: gridBagConstraints5.anchor = java.awt.GridBagConstraints.WEST;
209: jContentPane.add(dbTipoConta, gridBagConstraints5);
210:
211: gridBagConstraints5 = new GridBagConstraints();
212: gridBagConstraints5.gridx = 2;
213: gridBagConstraints5.gridy = 2;
214: gridBagConstraints5.gridwidth = 2;
215: gridBagConstraints5.fill = java.awt.GridBagConstraints.BOTH;
216: gridBagConstraints5.insets = new java.awt.Insets(5, 5, 5, 5);
217: gridBagConstraints5.anchor = java.awt.GridBagConstraints.WEST;
218: jContentPane.add(dbConta, gridBagConstraints5);
219:
220: jlMes.setText(ReportsMessages.getMessages().getString("Mes"));
221: jlMes.setVisible(false);
222: gridBagConstraints5 = new GridBagConstraints();
223: gridBagConstraints5.gridx = 0;
224: gridBagConstraints5.gridy = 3;
225: gridBagConstraints5.fill = java.awt.GridBagConstraints.BOTH;
226: gridBagConstraints5.insets = new java.awt.Insets(5, 5, 5, 5);
227: gridBagConstraints5.anchor = java.awt.GridBagConstraints.WEST;
228: jContentPane.add(jlMes, gridBagConstraints5);
229:
230: jsMesAno.setModel(new SpinnerDateModel(new Date(), null, null,
231: Calendar.MONTH));
232: jsMesAno.setMinimumSize(new Dimension(90, 20));
233: jsMesAno.setPreferredSize(new Dimension(120, 20));
234: jsMesAno.setEditor(new DateEditor(jsMesAno, "MMMMM/yyyy"));
235: jsMesAno.setToolTipText(TelaConfiguraAplicacaoMessages
236: .getMessages().getString("MesToolTip"));
237: jsMesAno.setVisible(false);
238: gridBagConstraints5 = new GridBagConstraints();
239: gridBagConstraints5.gridx = 2;
240: gridBagConstraints5.gridy = 3;
241: gridBagConstraints5.fill = java.awt.GridBagConstraints.BOTH;
242: gridBagConstraints5.insets = new java.awt.Insets(5, 5, 5, 5);
243: gridBagConstraints5.anchor = java.awt.GridBagConstraints.WEST;
244: jContentPane.add(jsMesAno, gridBagConstraints5);
245:
246: this .setContentPane(jContentPane);
247: }
248:
249: /**
250: * Retorna a data de inicio selecionada pelo usuario
251: * @return
252: */
253: public Date getDataInicio() {
254: if (ictfInicio.isVisible())
255: return ictfInicio.getDate();
256: else if (jsMesAno.isVisible()) {
257: Date data = (Date) jsMesAno.getValue();
258: Calendar calend = Calendar.getInstance();
259: calend.setTime(data);
260: calend.set(Calendar.DAY_OF_MONTH, 1);
261: return calend.getTime();
262: } else
263: return null;
264: }
265:
266: /**
267: * Retorna a data de fim selecionada pelo usuario
268: * @return
269: */
270: public Date getDataFim() {
271: if (ictfFim.isVisible())
272: return ictfFim.getDate();
273: else if (jsMesAno.isVisible()) {
274: Date data = (Date) jsMesAno.getValue();
275: Calendar calend = Calendar.getInstance();
276: calend.setTime(data);
277: calend.add(Calendar.MONTH, 1);
278: calend.set(Calendar.DAY_OF_MONTH, 1);
279: calend.add(Calendar.DAY_OF_MONTH, -1);
280: return calend.getTime();
281: } else
282: return null;
283: }
284:
285: /**
286: * Retorna o tipo de lancamento selecionado pelo usuario
287: * @return
288: */
289: public Integer getTipoLancamento() {
290: try {
291: if (dbTipo.getDataAt(dbTipo.getSelectedIndex()) != null)
292: return (Integer) dbTipo.getDataAt(
293: dbTipo.getSelectedIndex()).get("Id");
294: } catch (SQLException e) {
295: ((SimpleLog) GFPController.getGFPController().getContexto()
296: .get(GFPController.LOG))
297: .log("Erro ao reter tipo de lancamento selecionado!");
298: ((SimpleLog) GFPController.getGFPController().getContexto()
299: .get(GFPController.LOG)).log(e
300: .getLocalizedMessage());
301: ((SimpleLog) GFPController.getGFPController().getContexto()
302: .get(GFPController.LOG)).log(e);
303: }
304: return null;
305: }
306:
307: /**
308: * Retorna o tipo de conta selecionada pelo ususário
309: * @return
310: */
311: public String getTipoConta() {
312: try {
313: if (dbTipoConta.getDataAt(dbTipoConta.getSelectedIndex()) != null)
314: return dbTipoConta.getDataAt(
315: dbTipoConta.getSelectedIndex()).get("Id")
316: .toString();
317: } catch (SQLException e) {
318: ((SimpleLog) GFPController.getGFPController().getContexto()
319: .get(GFPController.LOG))
320: .log("Erro ao reter tipo de conta selecionado!");
321: ((SimpleLog) GFPController.getGFPController().getContexto()
322: .get(GFPController.LOG)).log(e
323: .getLocalizedMessage());
324: ((SimpleLog) GFPController.getGFPController().getContexto()
325: .get(GFPController.LOG)).log(e);
326: }
327: return null;
328: }
329:
330: /**
331: * Retorna a conta selecionada pelo ususário
332: * @return
333: */
334: public Integer getConta() {
335: try {
336: if (dbConta.getDataAt(dbConta.getSelectedIndex()) != null)
337: return (Integer) dbConta.getDataAt(
338: dbConta.getSelectedIndex()).get("Id");
339: } catch (SQLException e) {
340: ((SimpleLog) GFPController.getGFPController().getContexto()
341: .get(GFPController.LOG))
342: .log("Erro ao reter Account selecionada!");
343: ((SimpleLog) GFPController.getGFPController().getContexto()
344: .get(GFPController.LOG)).log(e
345: .getLocalizedMessage());
346: ((SimpleLog) GFPController.getGFPController().getContexto()
347: .get(GFPController.LOG)).log(e);
348: }
349: return null;
350: }
351:
352: /**
353: * Exibi ou oculta a opção para o usuário escoler o tipo de lancamento que deseja listar
354: * @param pedir
355: */
356: public void setPedirTipoLancamento(boolean pedir) {
357: jlTipoLancamento.setVisible(pedir);
358: dbTipo.setVisible(pedir);
359: }
360:
361: /**
362: * Exibi ou oculta a solicitação de um período para a consulta
363: * @param pedir
364: */
365: public void setPedirPeriodo(boolean pedir) {
366: jlIntervalo.setVisible(pedir);
367: ictfInicio.setVisible(pedir);
368: ictfFim.setVisible(pedir);
369: }
370:
371: public void setPedirMes(boolean pedir) {
372: jlMes.setVisible(pedir);
373: jsMesAno.setVisible(pedir);
374: }
375:
376: /**
377: * Exibi ou oculta a solicitação de uma conta para a consulta
378: * @param pedir
379: */
380: public void setPedirConta(boolean pedir) {
381: jlConta.setVisible(pedir);
382: dbTipoConta.setVisible(pedir);
383: dbConta.setVisible(pedir);
384: }
385: } // @jve:decl-index=0:visual-constraint="10,10"
|