/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ /* * WFSFormTester.java * * Created on 25. Juli 2006, 17:38 */ package de.cismet.cismap.commons.wfsforms; import com.jgoodies.looks.plastic.PlasticXPLookAndFeel; import org.jdesktop.swingx.autocomplete.AutoCompleteDecorator; import java.awt.BorderLayout; import java.awt.Dimension; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.Vector; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JFrame; import de.cismet.tools.gui.StaticSwingTools; import de.cismet.tools.gui.log4jquickconfig.Log4JQuickConfig; /** * DOCUMENT ME! * * @author thorsten.hell@cismet.de * @version $Revision$, $Date$ */ public class WFSFormTester extends AbstractWFSForm { //~ Instance fields -------------------------------------------------------- private final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(this.getClass()); private WFSFormFeature strasse = null; private WFSFormFeature nr = null; // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JComboBox cboNr; private javax.swing.JComboBox cboStreets; private javax.swing.JButton cmdOk; private javax.swing.JProgressBar prbNr; private javax.swing.JProgressBar prbStreets; // End of variables declaration//GEN-END:variables //~ Constructors ----------------------------------------------------------- /** * Creates new form WFSFormTester. */ public WFSFormTester() { if (log.isDebugEnabled()) { log.debug("new WFSFormTester"); // NOI18N } initComponents(); StaticSwingTools.decorateWithFixedAutoCompleteDecorator(cboStreets); StaticSwingTools.decorateWithFixedAutoCompleteDecorator(cboNr); prbStreets.setPreferredSize(new Dimension(10, 5)); prbNr.setPreferredSize(new Dimension(10, 5)); listComponents.put("cboAllStreets", cboStreets); // NOI18N listComponents.put("cboAllStreetsProgress", prbStreets); // NOI18N listComponents.put("cboNumbersOfAStreet", cboNr); // NOI18N listComponents.put("cboNumbersOfAStreetProgress", prbNr); // NOI18N } //~ Methods ---------------------------------------------------------------- @Override public void garbageDuringAutoCompletion(final JComboBox box) { } /** * This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The * content of this method is always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { cboStreets = new javax.swing.JComboBox(); cboNr = new javax.swing.JComboBox(); cmdOk = new javax.swing.JButton(); prbStreets = new javax.swing.JProgressBar(); prbNr = new javax.swing.JProgressBar(); cboStreets.setEnabled(false); cboStreets.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(final java.awt.event.ActionEvent evt) { cboStreetsActionPerformed(evt); } }); cboStreets.addKeyListener(new java.awt.event.KeyAdapter() { @Override public void keyTyped(final java.awt.event.KeyEvent evt) { cboStreetsKeyTyped(evt); } }); cboNr.setEnabled(false); cboNr.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(final java.awt.event.ActionEvent evt) { cboNrActionPerformed(evt); } }); cmdOk.setText(org.openide.util.NbBundle.getMessage(WFSFormTester.class, "WFSFormTester.cmdOk.text")); // NOI18N prbStreets.setBorderPainted(false); prbNr.setBorderPainted(false); final org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add( layout.createSequentialGroup().addContainerGap().add( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false).add( org.jdesktop.layout.GroupLayout.LEADING, prbStreets, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).add( org.jdesktop.layout.GroupLayout.LEADING, cboStreets, 0, 236, Short.MAX_VALUE)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false).add( prbNr, 0, 0, Short.MAX_VALUE).add(cboNr, 0, 60, Short.MAX_VALUE)).addPreferredGap( org.jdesktop.layout.LayoutStyle.RELATED).add(cmdOk).addContainerGap(194, Short.MAX_VALUE))); layout.linkSize( new java.awt.Component[] { cboStreets, prbStreets }, org.jdesktop.layout.GroupLayout.HORIZONTAL); layout.linkSize(new java.awt.Component[] { cboNr, prbNr }, org.jdesktop.layout.GroupLayout.HORIZONTAL); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add( layout.createSequentialGroup().addContainerGap().add( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add( cboStreets, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add( cboNr, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(cmdOk)).addPreferredGap( org.jdesktop.layout.LayoutStyle.RELATED).add( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING).add( prbStreets, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add( prbNr, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)).addContainerGap( org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); } // </editor-fold>//GEN-END:initComponents /** * DOCUMENT ME! * * @param evt DOCUMENT ME! */ private void cboNrActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_cboNrActionPerformed // TODO add your handling code here: } //GEN-LAST:event_cboNrActionPerformed /** * DOCUMENT ME! * * @param evt DOCUMENT ME! */ private void cboStreetsKeyTyped(final java.awt.event.KeyEvent evt) { //GEN-FIRST:event_cboStreetsKeyTyped if (cboNr.getSelectedItem() instanceof WFSFormFeature) { nr = (WFSFormFeature)cboNr.getSelectedItem(); } else { nr = null; } } //GEN-LAST:event_cboStreetsKeyTyped /** * DOCUMENT ME! * * @param evt DOCUMENT ME! */ private void cboStreetsActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_cboStreetsActionPerformed // log.debug(!cboStreets.isPopupVisible()); // String s=""; // if (cboStreets.getSelectedItem()!=null) { // s=cboStreets.getSelectedItem().getClass().toString(); // } // log.debug(cboStreets.getSelectedItem()+":::"+s); if (cboStreets.getSelectedItem() instanceof WFSFormFeature) { strasse = (WFSFormFeature)cboStreets.getSelectedItem(); requestRefresh("cboNumbersOfAStreet", (WFSFormFeature)cboStreets.getSelectedItem()); // NOI18N } } //GEN-LAST:event_cboStreetsActionPerformed /** * DOCUMENT ME! * * @param args DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public static void main(final String[] args) throws Exception { try { // javax.swing.UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()) ; // javax.swing.UIManager.setLookAndFeel(new Plastic3DLookAndFeel()); // javax.swing.UIManager.setLookAndFeel(new PlasticLookAndFeel()); javax.swing.UIManager.setLookAndFeel(new PlasticXPLookAndFeel()); // javax.swing.UIManager.setLookAndFeel(new com.sun.java.swing.plaf.windows.WindowsLookAndFeel()); // UIManager.setLookAndFeel(new PlasticLookAndFeel()); javax.swing.UIManager.setLookAndFeel(new // PlasticXPLookAndFeel()); } catch (Exception e) { e.printStackTrace(); } final WFSFormQuery allStreets = new WFSFormQuery(); allStreets.setComponentName("cboAllStreets"); // NOI18N allStreets.setServerUrl("http://s103bdc-a1/deegreewfs/wfs"); // NOI18N allStreets.setDisplayTextProperty("geographicIdentifier"); // NOI18N allStreets.setExtentProperty("geographicExtent"); // NOI18N allStreets.setFilename("/request_all_streets.xml"); // NOI18N allStreets.setId("all_streets"); // NOI18N allStreets.setIdProperty("identifier"); // NOI18N allStreets.setTitle("Strassen"); // NOI18N allStreets.setType(WFSFormQuery.INITIAL); allStreets.setWfsQueryString(readFileAsString(new File("C:\\request_alle_strassen_extent.xml"))); // NOI18N final WFSFormQuery numbers = new WFSFormQuery(); numbers.setComponentName("cboNumbersOfAStreet"); // NOI18N numbers.setServerUrl("http://s103bdc-a1/deegreewfs/wfs"); // NOI18N numbers.setDisplayTextProperty("geographicIdentifier"); // NOI18N numbers.setExtentProperty("geographicExtent"); // NOI18N numbers.setFilename("/request_all_numbers.xml"); // NOI18N numbers.setId("numbers"); // NOI18N numbers.setIdProperty("identifier"); // NOI18N numbers.setTitle("Nr"); // NOI18N numbers.setType(WFSFormQuery.FOLLOWUP); numbers.setQueryPlaceholder("@@strasse_id@@"); // NOI18N numbers.setWfsQueryString(readFileAsString(new File("C:\\request_hausnummern_from_strasse_extent.xml"))); // NOI18N final Vector<WFSFormQuery> v = new Vector<WFSFormQuery>(); v.add(allStreets); v.add(numbers); final WFSFormTester tester = new WFSFormTester(); tester.setQueries(v); java.awt.EventQueue.invokeLater(new Runnable() { @Override public void run() { final JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.getContentPane().setLayout(new BorderLayout()); f.getContentPane().add(tester, BorderLayout.CENTER); f.setVisible(true); f.pack(); } }); tester.initWFSForm(); } @Override public JComponent getListComponentByName(final String name) { return listComponents.get(name); } /** * DOCUMENT ME! * * @param file DOCUMENT ME! * * @return DOCUMENT ME! * * @throws java.io.IOException DOCUMENT ME! */ private static String readFileAsString(final File file) throws java.io.IOException { Log4JQuickConfig.configure4LumbermillOnLocalhost(); final StringBuffer fileData = new StringBuffer(1000); final BufferedReader reader = new BufferedReader( new FileReader(file)); char[] buf = new char[1024]; int numRead = 0; while ((numRead = reader.read(buf)) != -1) { final String readData = String.valueOf(buf, 0, numRead); fileData.append(readData); buf = new char[1024]; } reader.close(); return fileData.toString(); } }