/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ /* * WFSFormGemarkungFlurFlurstueck.java * * Created on 2. August 2006, 14:45 */ package de.cismet.cismap.commons.wfsforms; import java.util.Vector; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; import javax.swing.JTextField; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import de.cismet.cismap.commons.XBoundingBox; import de.cismet.cismap.commons.gui.MappingComponent; import de.cismet.cismap.commons.interaction.CismapBroker; import de.cismet.tools.gui.StaticSwingTools; /** * DOCUMENT ME! * * @author thorsten.hell@cismet.de * @version $Revision$, $Date$ */ public class WFSFormGemarkungFlurFlurstueck extends AbstractWFSForm { //~ Instance fields -------------------------------------------------------- private final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(this.getClass()); private WFSFormFeature gemarkung = null; private WFSFormFeature flur = null; private WFSFormFeature flurstueck = null; // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JComboBox cboFlur; private javax.swing.JComboBox cboFlurstueck; private javax.swing.JComboBox cboGem; private javax.swing.JCheckBox chkLockScale; private javax.swing.JCheckBox chkVisualize; private javax.swing.JButton cmdPos; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel panEmpty; private javax.swing.JProgressBar prbFlur; private javax.swing.JProgressBar prbFlurstueck; private javax.swing.JProgressBar prbGem; // End of variables declaration//GEN-END:variables //~ Constructors ----------------------------------------------------------- /** * Creates new form WFSFormGemarkungFlurFlurstueck. */ public WFSFormGemarkungFlurFlurstueck() { try { initComponents(); // prbFlur.setPreferredSize(new Dimension(1,5)); // prbFlurstueck.setPreferredSize(new Dimension(1,5)); // prbGem.setPreferredSize(new Dimension(1,5)); StaticSwingTools.decorateWithFixedAutoCompleteDecorator(cboGem); StaticSwingTools.decorateWithFixedAutoCompleteDecorator(cboFlur); StaticSwingTools.decorateWithFixedAutoCompleteDecorator(cboFlurstueck); listComponents.put("cboGem", cboGem); // NOI18N listComponents.put("cboGemProgress", prbGem); // NOI18N listComponents.put("cboFlur", cboFlur); // NOI18N listComponents.put("cboFlurProgress", prbFlur); // NOI18N listComponents.put("cboFlurstueck", cboFlurstueck); // NOI18N listComponents.put("cboFlurstueckProgress", prbFlurstueck); // NOI18N final JTextField flurEditor = (JTextField)cboFlur.getEditor().getEditorComponent(); flurEditor.getDocument().addDocumentListener(new DocumentListener() { @Override public void insertUpdate(final DocumentEvent e) { // log.fatal(cboFlur.getSelectedIndex()); checkCboCorrectness(cboFlur); } @Override public void removeUpdate(final DocumentEvent e) { checkCboCorrectness(cboFlur); } @Override public void changedUpdate(final DocumentEvent e) { checkCboCorrectness(cboFlur); } }); final JTextField flurstueckEditor = (JTextField)cboFlurstueck.getEditor().getEditorComponent(); flurstueckEditor.getDocument().addDocumentListener(new DocumentListener() { @Override public void insertUpdate(final DocumentEvent e) { // log.fatal(cboFlurstueck.getSelectedIndex()); checkCboCorrectness(cboFlurstueck); } @Override public void removeUpdate(final DocumentEvent e) { checkCboCorrectness(cboFlurstueck); } @Override public void changedUpdate(final DocumentEvent e) { checkCboCorrectness(cboFlurstueck); } }); } catch (Exception e) { log.error("Could not Create WFForm", e); // NOI18N } } //~ Methods ---------------------------------------------------------------- @Override public void garbageDuringAutoCompletion(final JComboBox box) { if (box == cboFlur) { flur = null; } else if (box == cboFlurstueck) { flurstueck = null; } } /** * 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() { java.awt.GridBagConstraints gridBagConstraints; cmdPos = new javax.swing.JButton(); chkVisualize = new javax.swing.JCheckBox(); jLabel2 = new javax.swing.JLabel(); chkLockScale = new javax.swing.JCheckBox(); jLabel3 = new javax.swing.JLabel(); panEmpty = new javax.swing.JPanel(); cboGem = new javax.swing.JComboBox(); prbGem = new javax.swing.JProgressBar(); cboFlurstueck = new javax.swing.JComboBox(); prbFlurstueck = new javax.swing.JProgressBar(); cboFlur = new javax.swing.JComboBox(); prbFlur = new javax.swing.JProgressBar(); setBorder(javax.swing.BorderFactory.createEmptyBorder(2, 2, 2, 2)); setPreferredSize(new java.awt.Dimension(400, 38)); setLayout(new java.awt.GridBagLayout()); cmdPos.setMnemonic('P'); cmdPos.setText(org.openide.util.NbBundle.getMessage( WFSFormGemarkungFlurFlurstueck.class, "WFSFormGemarkungFlurFlurstueck.cmdPos.text")); // NOI18N cmdPos.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(final java.awt.event.ActionEvent evt) { cmdPosActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 0; gridBagConstraints.gridheight = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 0); add(cmdPos, gridBagConstraints); chkVisualize.setSelected(true); chkVisualize.setToolTipText(org.openide.util.NbBundle.getMessage( WFSFormGemarkungFlurFlurstueck.class, "WFSFormGemarkungFlurFlurstueck.chkVisualize.toolTipText")); // NOI18N chkVisualize.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(final java.awt.event.ActionEvent evt) { chkVisualizeActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 0; gridBagConstraints.gridheight = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(3, 7, 0, 0); add(chkVisualize, gridBagConstraints); jLabel2.setIcon(new javax.swing.ImageIcon( getClass().getResource("/de/cismet/cismap/commons/gui/res/markPoint.png"))); // NOI18N jLabel2.setToolTipText(org.openide.util.NbBundle.getMessage( WFSFormGemarkungFlurFlurstueck.class, "WFSFormGemarkungFlurFlurstueck.jLabel2.toolTipText")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 0; gridBagConstraints.gridheight = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(4, 7, 0, 0); add(jLabel2, gridBagConstraints); chkLockScale.setSelected(true); chkLockScale.setToolTipText(org.openide.util.NbBundle.getMessage( WFSFormGemarkungFlurFlurstueck.class, "WFSFormGemarkungFlurFlurstueck.chkLockScale.toolTipText")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 6; gridBagConstraints.gridy = 0; gridBagConstraints.gridheight = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(3, 14, 0, 0); add(chkLockScale, gridBagConstraints); jLabel3.setIcon(new javax.swing.ImageIcon( getClass().getResource("/de/cismet/cismap/commons/gui/res/fixMapScale.png"))); // NOI18N jLabel3.setToolTipText(org.openide.util.NbBundle.getMessage( WFSFormGemarkungFlurFlurstueck.class, "WFSFormGemarkungFlurFlurstueck.jLabel3.toolTipText")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 7; gridBagConstraints.gridy = 0; gridBagConstraints.gridheight = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(1, 7, 3, 7); add(jLabel3, gridBagConstraints); panEmpty.setPreferredSize(new java.awt.Dimension(1, 1)); final org.jdesktop.layout.GroupLayout panEmptyLayout = new org.jdesktop.layout.GroupLayout(panEmpty); panEmpty.setLayout(panEmptyLayout); panEmptyLayout.setHorizontalGroup( panEmptyLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(0, 32, Short.MAX_VALUE)); panEmptyLayout.setVerticalGroup( panEmptyLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(0, 29, Short.MAX_VALUE)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 8; gridBagConstraints.gridy = 0; gridBagConstraints.gridheight = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 10.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(1, 0, 0, 0); add(panEmpty, gridBagConstraints); cboGem.setEnabled(false); cboGem.setMaximumSize(new java.awt.Dimension(100, 19)); cboGem.setMinimumSize(new java.awt.Dimension(100, 19)); cboGem.setPreferredSize(new java.awt.Dimension(100, 19)); cboGem.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(final java.awt.event.ActionEvent evt) { cboGemActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weightx = 50.0; gridBagConstraints.insets = new java.awt.Insets(2, 0, 0, 3); add(cboGem, gridBagConstraints); prbGem.setBorderPainted(false); prbGem.setEnabled(false); prbGem.setMaximumSize(new java.awt.Dimension(100, 5)); prbGem.setMinimumSize(new java.awt.Dimension(100, 5)); prbGem.setPreferredSize(new java.awt.Dimension(100, 5)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 10); add(prbGem, gridBagConstraints); cboFlurstueck.setEditable(true); cboFlurstueck.setEnabled(false); cboFlurstueck.setMaximumSize(new java.awt.Dimension(27, 19)); cboFlurstueck.setMinimumSize(new java.awt.Dimension(27, 19)); cboFlurstueck.setPreferredSize(new java.awt.Dimension(27, 19)); cboFlurstueck.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(final java.awt.event.ActionEvent evt) { cboFlurstueckActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weightx = 25.0; gridBagConstraints.insets = new java.awt.Insets(2, 0, 0, 3); add(cboFlurstueck, gridBagConstraints); prbFlurstueck.setBorderPainted(false); prbFlurstueck.setEnabled(false); prbFlurstueck.setMaximumSize(new java.awt.Dimension(1, 5)); prbFlurstueck.setMinimumSize(new java.awt.Dimension(1, 5)); prbFlurstueck.setPreferredSize(new java.awt.Dimension(1, 5)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 10); add(prbFlurstueck, gridBagConstraints); cboFlur.setEditable(true); cboFlur.setEnabled(false); cboFlur.setMaximumSize(new java.awt.Dimension(27, 19)); cboFlur.setMinimumSize(new java.awt.Dimension(27, 19)); cboFlur.setPreferredSize(new java.awt.Dimension(27, 19)); cboFlur.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(final java.awt.event.ActionEvent evt) { cboFlurActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weightx = 25.0; gridBagConstraints.insets = new java.awt.Insets(2, 0, 0, 3); add(cboFlur, gridBagConstraints); prbFlur.setBorderPainted(false); prbFlur.setEnabled(false); prbFlur.setMaximumSize(new java.awt.Dimension(1, 5)); prbFlur.setMinimumSize(new java.awt.Dimension(1, 5)); prbFlur.setPreferredSize(new java.awt.Dimension(1, 5)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 10); add(prbFlur, gridBagConstraints); } // </editor-fold>//GEN-END:initComponents /** * DOCUMENT ME! * * @param evt DOCUMENT ME! */ private void cmdPosActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_cmdPosActionPerformed final boolean history = true; MappingComponent mc = getMappingComponent(); if (mc == null) { mc = CismapBroker.getInstance().getMappingComponent(); } final boolean scaling = !(mc.isFixedMapScale()) && !(chkLockScale.isSelected()); XBoundingBox bb = null; final int animation = mc.getAnimationDuration(); if (flurstueck != null) { if (scaling) { bb = new XBoundingBox(flurstueck.getJTSGeometry()); } else { bb = new XBoundingBox(flurstueck.getPosition().buffer(AbstractWFSForm.FEATURE_BORDER)); } } else if (flur != null) { if (scaling) { bb = new XBoundingBox(flur.getJTSGeometry()); } else { bb = new XBoundingBox(flur.getPosition().buffer(AbstractWFSForm.FEATURE_BORDER)); } } else if (gemarkung != null) { if (scaling) { bb = new XBoundingBox(gemarkung.getJTSGeometry()); } else { bb = new XBoundingBox(gemarkung.getPosition().buffer(AbstractWFSForm.FEATURE_BORDER)); } } else { return; } mc.gotoBoundingBox(bb, history, scaling, animation); chkVisualizeActionPerformed(null); } //GEN-LAST:event_cmdPosActionPerformed /** * DOCUMENT ME! * * @param evt DOCUMENT ME! */ private void cboFlurstueckActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_cboFlurstueckActionPerformed final Object selected = cboFlurstueck.getSelectedItem(); if (selected instanceof WFSFormFeature) { flurstueck = (WFSFormFeature)selected; } } //GEN-LAST:event_cboFlurstueckActionPerformed /** * DOCUMENT ME! * * @param evt DOCUMENT ME! */ private void cboFlurActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_cboFlurActionPerformed final Object selected = cboFlur.getSelectedItem(); if (log.isDebugEnabled()) { log.debug("cboFlurActionPerformed selected=" + selected); // NOI18N } if (selected instanceof WFSFormFeature) { flur = (WFSFormFeature)selected; flurstueck = null; requestRefresh("cboFlurstueck", (WFSFormFeature)selected); // NOI18N } } //GEN-LAST:event_cboFlurActionPerformed /** * DOCUMENT ME! * * @param evt DOCUMENT ME! */ private void cboGemActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_cboGemActionPerformed final Object selected = cboGem.getSelectedItem(); if (selected instanceof WFSFormFeature) { gemarkung = (WFSFormFeature)selected; flur = null; flurstueck = null; requestRefresh("cboFlur", (WFSFormFeature)selected); // NOI18N cboFlurstueck.setEnabled(false); cboFlurstueck.setModel(new DefaultComboBoxModel(new Vector())); } } //GEN-LAST:event_cboGemActionPerformed /** * DOCUMENT ME! * * @param evt DOCUMENT ME! */ private void chkVisualizeActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_chkVisualizeActionPerformed if (mappingComponent == null) { mappingComponent = CismapBroker.getInstance().getMappingComponent(); } if (flurstueck != null) { visualizePosition(flurstueck, chkVisualize.isSelected()); } else if (flur != null) { visualizePosition(flur, chkVisualize.isSelected()); } else if (gemarkung != null) { visualizePosition(gemarkung, chkVisualize.isSelected()); } } //GEN-LAST:event_chkVisualizeActionPerformed }