package gui; import java.awt.Color; import java.awt.ComponentOrientation; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Rectangle; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.sql.Date; import java.text.DateFormat; import java.util.Calendar; import java.util.Locale; import java.util.Vector; import javax.swing.BoxLayout; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JTextArea; import javax.swing.JTextField; import com.toedter.calendar.JCalendar; /** * @author kdreamer */ public class BuscarOfertas extends JFrame { private static final long serialVersionUID = 1L; private JPanel jContentPane = null; private JLabel FInicio = null; private JLabel FFin = null; private JLabel PrecioMax = null; /** * @uml.property name="textPrecio" */ private JTextField TextPrecio = null; private JLabel NumDiasMin = null; /** * @uml.property name="textDias" */ private JTextField TextDias = null; private JLabel Dormitorios = null; /** * @uml.property name="textDormitorios" */ private JTextField TextDormitorios = null; private JLabel Banos = null; /** * @uml.property name="textBanos" */ private JTextField TextBanos = null; /** * @uml.property name="pInicio" */ private JPanel PInicio = null; /** * @uml.property name="pFin" */ private JPanel PFin = null; /** * @uml.property name="pDias" */ private JPanel PDias = null; /** * @uml.property name="pPrecio" */ private JPanel PPrecio = null; /** * @uml.property name="pDormitorios" */ private JPanel PDormitorios = null; /** * @uml.property name="pBanos" */ private JPanel PBanos = null; /** * @uml.property name="pBuscar" */ private JPanel PBuscar = null; // Codigo para el JCalendar private JTextField jTextField2 = new JTextField(); private JCalendar jCalendar1 = new JCalendar(); private Calendar calendarMio = null; private JLabel jLabel4 = new JLabel(); private JTextArea jTextArea1 = new JTextArea(); private JTextField jTextField3 = new JTextField(); private JCalendar jCalendar2 = new JCalendar(); private Calendar calendarMio2 = null; private JLabel jLabel5 = new JLabel(); private JTextArea jTextArea2 = new JTextArea(); /** * @uml.property name="buscar" */ private JButton Buscar = null; /** * @uml.property name="pOrden" */ private JPanel POrden = null; /** * @uml.property name="rPrecio" */ private JRadioButton RPrecio = null; /** * @uml.property name="rDias" */ private JRadioButton RDias = null; private JLabel JOrden = null; private ButtonGroup group = new ButtonGroup(); /** * This is the default constructor */ public BuscarOfertas() { super(); initialize(); } /** * This method initializes this * * @return void */ private void initialize() { jTextField3.setPreferredSize(new Dimension(140, 20)); jTextField3.setEditable(false); jTextField2.setPreferredSize(new Dimension(140, 20)); jTextField2.setEditable(false); this.setSize(440, 700); this.setResizable(false); this.setPreferredSize(new Dimension(700, 542)); this.setContentPane(getJContentPane()); this.setTitle("Buscador de Ofertas"); } /** * This method initializes jContentPane * * @return javax.swing.JPanel */ private JPanel getJContentPane() { if (jContentPane == null) { Banos = new JLabel(); Banos.setText("Número mínimo de baños"); Dormitorios = new JLabel(); Dormitorios.setText("Número mínimo de dormitorios"); NumDiasMin = new JLabel(); NumDiasMin.setText("Número de días mínimo"); PrecioMax = new JLabel(); PrecioMax.setText("Precio máximo"); FFin = new JLabel(); FFin.setText("Fecha de fin"); FInicio = new JLabel(); FInicio.setText("Fecha de inicio"); jContentPane = new JPanel(); jContentPane.setLayout(new BoxLayout(getJContentPane(), BoxLayout.Y_AXIS)); jContentPane.add(getPInicio(), null); jContentPane.add(getPFin(), null); jContentPane.add(getPDias(), null); jContentPane.add(getPPrecio(), null); jContentPane.add(getPDormitorios(), null); jContentPane.add(getPBanos(), null); jContentPane.add(getPOrden(), null); jContentPane.add(getPBuscar(), null); } return jContentPane; } /** * This method initializes TextPrecio * @return javax.swing.JTextField * @uml.property name="textPrecio" */ private JTextField getTextPrecio() { if (TextPrecio == null) { TextPrecio = new JTextField(); TextPrecio.setPreferredSize(new Dimension(100, 20)); } return TextPrecio; } /** * This method initializes TextDias * @return javax.swing.JTextField * @uml.property name="textDias" */ private JTextField getTextDias() { if (TextDias == null) { TextDias = new JTextField(); TextDias.setPreferredSize(new Dimension(100, 20)); } return TextDias; } /** * This method initializes TextDormitorios * @return javax.swing.JTextField * @uml.property name="textDormitorios" */ private JTextField getTextDormitorios() { if (TextDormitorios == null) { TextDormitorios = new JTextField(); TextDormitorios.setPreferredSize(new Dimension(100, 20)); } return TextDormitorios; } /** * This method initializes TextBaños * @return javax.swing.JTextField * @uml.property name="textBanos" */ private JTextField getTextBanos() { if (TextBanos == null) { TextBanos = new JTextField(); TextBanos.setPreferredSize(new Dimension(100, 20)); } return TextBanos; } /** * This method initializes PInicio * @return javax.swing.JPanel * @uml.property name="pInicio" */ private JPanel getPInicio() { if (PInicio == null) { jLabel4.setBounds(new Rectangle(55, 300, 305, 30)); jLabel4.setForeground(Color.red); jTextArea1.setEditable(false); jCalendar1.setBounds(new Rectangle(190, 60, 225, 150)); jTextArea1.setText(""); FlowLayout flowLayout = new FlowLayout(); flowLayout.setHgap(5); flowLayout.setVgap(5); PInicio = new JPanel(); PInicio.setPreferredSize(new Dimension(469, 220)); PInicio.setLayout(flowLayout); PInicio.add(FInicio, null); PInicio.add(jLabel4, null); PInicio.add(jTextField2, null); PInicio.add(jCalendar1, null); // Codigo para el JCalendar this.jCalendar1 .addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange( PropertyChangeEvent propertychangeevent) { if (propertychangeevent.getPropertyName().equals( "locale")) { jCalendar1 .setLocale((Locale) propertychangeevent .getNewValue()); DateFormat dateformat = DateFormat .getDateInstance(1, jCalendar1 .getLocale()); jTextField2.setText(dateformat .format(calendarMio.getTime())); } else if (propertychangeevent.getPropertyName() .equals("calendar")) { calendarMio = (Calendar) propertychangeevent .getNewValue(); DateFormat dateformat1 = DateFormat .getDateInstance(1, jCalendar1 .getLocale()); jTextField2.setText(dateformat1 .format(calendarMio.getTime())); jCalendar1.setCalendar(calendarMio); } } }); } return PInicio; } /** * This method initializes PFin * @return javax.swing.JPanel * @uml.property name="pFin" */ private JPanel getPFin() { if (PFin == null) { jLabel5.setBounds(new Rectangle(55, 300, 305, 30)); jLabel5.setForeground(Color.red); jTextArea2.setEditable(false); jCalendar2.setBounds(new Rectangle(190, 60, 225, 150)); jTextArea2.setText(""); PFin = new JPanel(); PFin.setLayout(new FlowLayout()); PFin.setPreferredSize(new Dimension(453, 220)); PFin.add(FFin, null); PFin.add(jLabel5, null); PFin.add(jTextField3, null); PFin.add(jCalendar2, null); // Codigo para el JCalendar this.jCalendar2 .addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange( PropertyChangeEvent propertychangeevent) { if (propertychangeevent.getPropertyName().equals( "locale")) { jCalendar2 .setLocale((Locale) propertychangeevent .getNewValue()); DateFormat dateformat = DateFormat .getDateInstance(1, jCalendar2 .getLocale()); jTextField3.setText(dateformat .format(calendarMio2.getTime())); } else if (propertychangeevent.getPropertyName() .equals("calendar")) { calendarMio2 = (Calendar) propertychangeevent .getNewValue(); DateFormat dateformat1 = DateFormat .getDateInstance(1, jCalendar2 .getLocale()); jTextField3.setText(dateformat1 .format(calendarMio2.getTime())); jCalendar2.setCalendar(calendarMio2); } } }); } return PFin; } /** * This method initializes PDias * @return javax.swing.JPanel * @uml.property name="pDias" */ private JPanel getPDias() { if (PDias == null) { FlowLayout flowLayout2 = new FlowLayout(); flowLayout2.setHgap(46); PDias = new JPanel(); PDias.setLayout(flowLayout2); PDias.setComponentOrientation(ComponentOrientation.UNKNOWN); PDias.add(NumDiasMin, null); PDias.add(getTextDias(), null); } return PDias; } /** * This method initializes PPrecio * @return javax.swing.JPanel * @uml.property name="pPrecio" */ private JPanel getPPrecio() { if (PPrecio == null) { FlowLayout flowLayout3 = new FlowLayout(); flowLayout3.setHgap(93); PPrecio = new JPanel(); PPrecio.setLayout(flowLayout3); PPrecio.add(PrecioMax, null); PPrecio.add(getTextPrecio(), null); } return PPrecio; } /** * This method initializes PDormitorios * @return javax.swing.JPanel * @uml.property name="pDormitorios" */ private JPanel getPDormitorios() { if (PDormitorios == null) { PDormitorios = new JPanel(); PDormitorios.setLayout(new FlowLayout()); PDormitorios.add(Dormitorios, null); PDormitorios.add(getTextDormitorios(), null); } return PDormitorios; } /** * This method initializes PBanos * @return javax.swing.JPanel * @uml.property name="pBanos" */ private JPanel getPBanos() { if (PBanos == null) { FlowLayout flowLayout4 = new FlowLayout(); flowLayout4.setHgap(33); PBanos = new JPanel(); PBanos.setLayout(flowLayout4); PBanos.add(Banos, null); PBanos.add(getTextBanos(), null); } return PBanos; } /** * This method initializes PBuscar * @return javax.swing.JPanel * @uml.property name="pBuscar" */ private JPanel getPBuscar() { if (PBuscar == null) { PBuscar = new JPanel(); PBuscar.setLayout(new FlowLayout()); PBuscar.add(getBuscar(), null); } return PBuscar; } /** * This method initializes Buscar * @return javax.swing.JButton * @uml.property name="buscar" */ private JButton getBuscar() { if (Buscar == null) { Buscar = new JButton(); Buscar.setText("Buscar"); Buscar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { if (jTextField2.getText().length() == 0 || jTextField3.getText().length() == 0) { JFrame alerta = new JFrame(); try { JOptionPane.showMessageDialog(alerta, "seleccione las fechas de inicio y de fin", "Alerta", JOptionPane.WARNING_MESSAGE); } catch (Exception a) { System.out.println("error mostrando dialogo"); a.printStackTrace(); } } else { Date dIni = new Date(jCalendar1.getCalendar().getTime() .getTime()); Date dFin = new Date(jCalendar2.getCalendar().getTime() .getTime()); int dmin, dorm, ban; float pmax; boolean orden = RPrecio.isSelected(); // comprobamos si el campo está vacío. Si no lo está, // pasamos a integer, sino a -1 if (TextDias.getText().length() != 0) { dmin = Integer.parseInt(TextDias.getText()); } else { dmin = 0; } if (TextPrecio.getText().length() != 0) { pmax = Float.parseFloat(TextPrecio.getText()); } else { pmax = 0; } if (TextDormitorios.getText().length() != 0) { dorm = Integer.parseInt(TextDormitorios.getText()); } else { dorm = 0; } if (TextBanos.getText().length() != 0) { ban = Integer.parseInt(TextBanos.getText()); } else { ban = 0; } // comprobamos que la fecha de fin es posterior a la de // inicio if (dFin.before(dIni)) { JFrame alerta = new JFrame(); try { JOptionPane .showMessageDialog( alerta, "la fecha de fin debe ser posterior a la de inicio", "Alerta", JOptionPane.WARNING_MESSAGE); } catch (Exception a) { System.out.println("error mostrando dialogo"); a.printStackTrace(); } } else { // llamamos a buscarOferta y le pasamos los // valores Vector resultado; try { resultado = PantallaInicio.interfazfachada .buscarOfertas(dIni, dFin, pmax, dmin, dorm, ban, orden); } catch (Exception ex) { ex.printStackTrace(); resultado = new Vector(); } kisama a = new kisama(resultado); a.setVisible(true); } } } }); } return Buscar; } /** * This method initializes POrden * @return javax.swing.JPanel * @uml.property name="pOrden" */ private JPanel getPOrden() { if (POrden == null) { FlowLayout flowLayout1 = new FlowLayout(); flowLayout1.setHgap(47); JOrden = new JLabel(); JOrden.setText("Ordenar por:"); POrden = new JPanel(); POrden.setLayout(flowLayout1); POrden.add(JOrden, null); POrden.add(getRPrecio(), null); POrden.add(getRDias(), null); } return POrden; } /** * This method initializes RPrecio * @return javax.swing.JRadioButton * @uml.property name="rPrecio" */ private JRadioButton getRPrecio() { if (RPrecio == null) { RPrecio = new JRadioButton(); RPrecio.setText("Precio"); group.add(RPrecio); RPrecio.setSelected(true); } return RPrecio; } /** * This method initializes RDias * @return javax.swing.JRadioButton * @uml.property name="rDias" */ private JRadioButton getRDias() { if (RDias == null) { RDias = new JRadioButton(); RDias.setText("Días"); group.add(RDias); } return RDias; } } // @jve:decl-index=0:visual-constraint="9,11"