package inquiricaoclient; import javax.swing.*; import javax.swing.table.*; import java.awt.*; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.util.*; import javax.xml.namespace.QName; import org.systinet.wasp.webservice.Registry; import org.systinet.wasp.webservice.ServiceClient; import inquiricaoclient.iface.Inquiricao; import inquiricao.LigacaoBD; public class inquiricaoclient extends JApplet { // componentes gráficos private JLabel lblTitulo = new JLabel(); private JLabel lblPasta = new JLabel(); private JTextField txtPasta = new JTextField(); private JTextField txtDataInicial = new JTextField(); private JLabel lblDataInicial = new JLabel(); private JLabel lblTipoDataInicial = new JLabel(); private JLabel lblTipoDataFinal = new JLabel(); private JTextField txtDataFinal = new JTextField(); private JLabel lblDataFinal = new JLabel(); private JTextField txtProcesso = new JTextField(); private JLabel lblProcesso = new JLabel(); private JTextField txtNome = new JTextField(); private JLabel lblNome = new JLabel(); private JTextField txtPai = new JTextField(); private JLabel lblPai = new JLabel(); private JTextField txtMae = new JTextField(); private JLabel lblMae = new JLabel(); private JLabel lblDistrito = new JLabel(); private JComboBox cbDistrito = new JComboBox(); private JComboBox cbConcelho = new JComboBox(); private JLabel lblConcelho = new JLabel(); private JComboBox cbFreguesia = new JComboBox(); private JLabel lblFreguesia = new JLabel(); private JTextField txtObservacao = new JTextField(); private JLabel lblObservacao = new JLabel(); private JLabel lblOrdenar = new JLabel(); private JComboBox cbOrdenar = new JComboBox(); private JRadioButton rbAscendente = new JRadioButton(); private JRadioButton rbDescendente = new JRadioButton(); private JButton btnProcurar = new JButton(); private Inquiricao service; // constructor public inquiricaoclient() { } public void init() { try { jbInit(); initService(); CarregaConcelhos(); CarregaDistritos(); CarregaFreguesias(); } catch(Exception e) { e.printStackTrace(); } } public static void main (String args[]) throws Exception { // código necessário para criação do Applet inquiricaoclient applet = new inquiricaoclient(); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(applet, BorderLayout.CENTER); frame.setTitle("Inquirição de Génere - WASP Server"); applet.init(); applet.start(); frame.setSize(700, 500); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = frame.getSize(); frame.setLocation((d.width - frameSize.width) / 2, (d.height - frameSize.height) / 2); frame.setVisible(true); } public void start() { } public void stop() { } public void destroy() { } private void jbInit() throws Exception { this.getContentPane().setLayout(null); this.setSize(new Dimension(552, 532)); lblTitulo.setText("Pesquisa detalhada de processos"); lblTitulo.setBounds(new Rectangle(80, 30, 420, 25)); lblTitulo.setFont(new Font("Dialog", 1, 23)); lblTitulo.setHorizontalAlignment(SwingConstants.CENTER); lblPasta.setText("Pasta:"); lblPasta.setBounds(new Rectangle(20, 80, 45, 15)); txtPasta.setBounds(new Rectangle(120, 80, 59, 20)); txtDataInicial.setBounds(new Rectangle(300, 80, 115, 20)); lblDataInicial.setText("Data Inicial"); lblDataInicial.setBounds(new Rectangle(200, 80, 85, 15)); lblTipoDataInicial.setText("(MM-DD-AAAA)"); lblTipoDataInicial.setBounds(new Rectangle(420, 80, 120, 15)); lblTipoDataFinal.setText("(MM-DD-AAAA)"); lblTipoDataFinal.setBounds(new Rectangle(420, 105, 120, 15)); txtDataFinal.setBounds(new Rectangle(300, 105, 115, 20)); lblDataFinal.setText("Data Final"); lblDataFinal.setBounds(new Rectangle(200, 105, 85, 15)); txtProcesso.setBounds(new Rectangle(120, 105, 60, 20)); lblProcesso.setText("Processo:"); lblProcesso.setBounds(new Rectangle(20, 105, 75, 15)); txtNome.setBounds(new Rectangle(65, 135, 445, 20)); lblNome.setText("Nome:"); lblNome.setBounds(new Rectangle(20, 135, 45, 15)); txtPai.setBounds(new Rectangle(65, 160, 445, 20)); lblPai.setText("Pai:"); lblPai.setBounds(new Rectangle(20, 160, 45, 15)); txtMae.setBounds(new Rectangle(65, 185, 445, 20)); lblMae.setText("Mãe:"); lblMae.setBounds(new Rectangle(20, 185, 45, 15)); lblDistrito.setText("Distrito:"); lblDistrito.setBounds(new Rectangle(15, 220, 60, 15)); cbDistrito.setBounds(new Rectangle(85, 220, 124, 20)); cbConcelho.setBounds(new Rectangle(360, 220, 125, 20)); lblConcelho.setText("Concelho:"); lblConcelho.setBounds(new Rectangle(275, 220, 60, 15)); cbFreguesia.setBounds(new Rectangle(85, 250, 270, 20)); lblFreguesia.setText("Freguesia:"); lblFreguesia.setBounds(new Rectangle(15, 250, 60, 15)); txtObservacao.setBounds(new Rectangle(85, 285, 265, 20)); lblObservacao.setText("Observ.:"); lblObservacao.setBounds(new Rectangle(15, 285, 70, 15)); lblOrdenar.setText("Ordenar por:"); lblOrdenar.setBounds(new Rectangle(15, 315, 135, 15)); cbOrdenar.setBounds(new Rectangle(15, 340, 150, 20)); rbAscendente.setText("Ascendente"); rbAscendente.setSelected(true); rbAscendente.setBounds(new Rectangle(220, 340, 135, 25)); rbDescendente.setText("Descendente"); rbDescendente.setBounds(new Rectangle(355, 340, 125, 25)); btnProcurar.setText("Procurar"); btnProcurar.setBounds(new Rectangle(15, 385, 130, 25)); btnProcurar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { btnProcurar_actionPerformed(e); } }); // vamos adicionar os items a JComboBox cbOrdenar cbOrdenar.addItem("pasta"); cbOrdenar.addItem("processos.processo"); this.getContentPane().add(btnProcurar, null); this.getContentPane().add(rbDescendente, null); this.getContentPane().add(rbAscendente, null); this.getContentPane().add(cbOrdenar, null); this.getContentPane().add(lblOrdenar, null); this.getContentPane().add(lblObservacao, null); this.getContentPane().add(txtObservacao, null); this.getContentPane().add(lblFreguesia, null); this.getContentPane().add(cbFreguesia, null); this.getContentPane().add(lblConcelho, null); this.getContentPane().add(cbConcelho, null); this.getContentPane().add(cbDistrito, null); this.getContentPane().add(lblDistrito, null); this.getContentPane().add(lblMae, null); this.getContentPane().add(txtMae, null); this.getContentPane().add(lblPai, null); this.getContentPane().add(txtPai, null); this.getContentPane().add(lblNome, null); this.getContentPane().add(txtNome, null); this.getContentPane().add(lblProcesso, null); this.getContentPane().add(txtProcesso, null); this.getContentPane().add(lblDataFinal, null); this.getContentPane().add(txtDataFinal, null); this.getContentPane().add(lblTipoDataFinal, null); this.getContentPane().add(lblTipoDataInicial, null); this.getContentPane().add(lblDataInicial, null); this.getContentPane().add(txtDataInicial, null); this.getContentPane().add(txtPasta, null); this.getContentPane().add(lblPasta, null); this.getContentPane().add(lblTitulo, null); } private void initService() { try { String wsdlURI = "http://carloslopes:6060/inquiricao/wsdl"; String serviceURI = "http://carloslopes:6060/inquiricao/"; ServiceClient serviceClient = ServiceClient.create(wsdlURI, Inquiricao.class); serviceClient.setServiceURL(serviceURI); serviceClient.setWSDLServiceName(new QName("urn:inquiricao.inquiricao", "inquiricao")); serviceClient.setWSDLPortName("inquiricao"); service = (Inquiricao) Registry.lookup(serviceClient); } catch(Exception e) { } } private void CarregaConcelhos() { try { LigacaoBD ligBD = new LigacaoBD(); java.sql.ResultSet result = ligBD.ObterListaConcelhos(); if (result == null) this.cbConcelho.addItem("ERRO"); else while(result.next()) { this.cbConcelho.addItem(result.getString("nome")); } ligBD.getStatement().close(); ligBD.getConnection().close(); } catch(Exception e) { } } private void CarregaDistritos() { try { LigacaoBD ligBD = new LigacaoBD(); java.sql.ResultSet result = ligBD.ObterListaDistritos(); while(result.next()) { this.cbDistrito.addItem(result.getString("nome")); } ligBD.getStatement().close(); ligBD.getConnection().close(); } catch(Exception e) { } } private void CarregaFreguesias() { try { LigacaoBD ligBD = new LigacaoBD(); java.sql.ResultSet result = ligBD.ObterListaFreguesias(); while(result.next()) { this.cbFreguesia.addItem(result.getString("nome")); } ligBD.getStatement().close(); ligBD.getConnection().close(); } catch(Exception e) { } } private String ConstroiQuery() { String query1 =""; String query2 = ""; String query3 = ""; String query4 = ""; String query5 = ""; query1 = "Select processos.* from processos "; if (!this.txtPasta.getText().equals("")) { query2 = "pasta like '%" + this.txtPasta.getText() + "%'"; } if (!this.txtProcesso.getText().equals("")) { if (query2 != "") query2 += " and "; query2 += "processos.processo like '%" + this.txtProcesso.getText() + "%'"; } if (!this.txtDataInicial.getText().equals("")) { if (query2 != "") query2 += " and "; query2 += "data >= '" + this.txtDataInicial.getText() + "'"; } if (!this.txtDataFinal.getText().equals("")) { if (query2 != "") query2 += " and "; query2 += "data <= '" + this.txtDataFinal.getText() + "'"; } if (!this.txtNome.getText().equals("")) { if (query2 != "") query2 += " and "; query2 += "nome like '%" + this.txtNome.getText() + "%'"; } if (!this.txtPai.getText().equals("")) { if (query2 != "") query2 += " and "; query2 += "pai like '%" + this.txtPai.getText() + "%'"; } if (!this.txtMae.getText().equals("")) { if (query2 != "") query2 += " and "; query2 += "mae like '%" + this.txtMae.getText() + "%'"; } if (!this.txtObservacao.getText().equals("")) { if (query2 != "") query2 += " and "; query2 += "observacoes like '%" + this.txtObservacao.getText() + "%'"; } if (query2 != "") query2 = " Where " + query2; if( (cbDistrito.getSelectedIndex() != 0) || (cbConcelho.getSelectedIndex() != 0) || (cbFreguesia.getSelectedIndex() != 0) ) { query3 = "Select processofreguesia.processo " + "From processofreguesia Inner Join freguesias " + "On processofreguesia.freguesia = freguesias.freguesia " + "Inner Join concelhos " + "On freguesias.concelho = concelhos.concelho " + "Inner Join distritos " + "On concelhos.distrito = distritos.distrito " + "Where "; if (cbFreguesia.getSelectedIndex() != 0) { if (query4 != "") query4 += " and "; query4 += "freguesias.nome = '" + cbFreguesia.getSelectedItem().toString() + "'"; } if (cbDistrito.getSelectedIndex() != 0) { if (query4 != "") query4 += " and "; query4 += "distritos.nome = '" + cbDistrito.getSelectedItem().toString() + "'"; } if (cbConcelho.getSelectedIndex() != 0) { if (query4 != "") query4 += " and "; query4 += "concelhos.nome = '" + cbConcelho.getSelectedItem().toString() + "'"; } query3 += query4; } if (query3 != "") query1 += " Inner Join (" + query3 + ") localidade On processos.processo = localidade.processo"; query5 = " Order By " + cbOrdenar.getSelectedItem().toString(); if (this.rbAscendente.isSelected()) query5 += " Desc"; else query5 += " Asc"; query1 += query2 + query5; return query1; } private void btnProcurar_actionPerformed(ActionEvent e) { String query = this.ConstroiQuery(); try { Hashtable hash = service.ObterListaResultados(query); this.MostraTabelaResultados(hash); } catch(Exception ex) { } } private void MostraTabelaResultados(Hashtable h) { Vector vDados = this.CarregaVectorDados(h); AppletResultados2.main(null); this.CarregaTabelaResultados(vDados); } private Vector CarregaVectorDados(Hashtable h) { Vector vDados = new Vector(); for (Enumeration e = h.elements(); e.hasMoreElements(); ) { vDados.add((Vector)e.nextElement()); } return vDados; } private void CarregaTabelaResultados(Vector v) { DefaultTableModel tblModel = new DefaultTableModel(null, new String[]{"Processo", "Pasta","Data","Nome","Pai","Mãe","Observações"}); //vamos introduzir os registos for (Enumeration e = v.elements(); e.hasMoreElements(); ) { tblModel.addRow((Vector)e.nextElement()); } AppletResultados2.getTabelaResultados().setModel((TableModel)tblModel); } }