/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ package Sirius.navigator.ui.tree.postfilter; import Sirius.server.middleware.types.MetaClass; import Sirius.server.middleware.types.Node; import java.util.ArrayList; import java.util.Collection; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import de.cismet.cids.navigator.utils.ClassCacheMultiple; /** * DOCUMENT ME! * * @author thorsten * @version $Revision$, $Date$ */ //@ServiceProvider(service = PostFilterGUI.class) public class ExampleFlurstueckPostFilterGUI extends AbstractPostFilterGUI { //~ Instance fields -------------------------------------------------------- DocumentListener dl = new DocumentListener() { @Override public void insertUpdate(final DocumentEvent e) { firePostFilterChanged(); } @Override public void removeUpdate(final DocumentEvent e) { firePostFilterChanged(); } @Override public void changedUpdate(final DocumentEvent e) { firePostFilterChanged(); } }; PostFilter f = new PostFilter() { @Override public Integer getFilterChainOrderKeyPrio() { return 1001; } @Override public Collection<Node> filter(final Collection<Node> input) { if (txtRegEx.getText().equals("")) { return input; } else { final ArrayList<Node> ret = new ArrayList<Node>(); for (final Node n : input) { if (n.getClassId() == fstck.getId()) { if (n.getName().contains(txtRegEx.getText())) { ret.add(n); } } else { ret.add(n); } } return ret; } } }; MetaClass fstck; // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JTextField txtRegEx; // End of variables declaration//GEN-END:variables //~ Constructors ----------------------------------------------------------- /** * Creates new form ExampleFlurstueckPostFilterGUI. */ public ExampleFlurstueckPostFilterGUI() { initComponents(); fstck = ClassCacheMultiple.getMetaClass("WUNDA_BLAU", "ALKIS_LANDPARCEL"); } //~ Methods ---------------------------------------------------------------- @Override public void initializeFilter(final Collection<Node> nodes) { txtRegEx.getDocument().removeDocumentListener(dl); txtRegEx.setText(""); txtRegEx.getDocument().addDocumentListener(dl); } @Override public void adjustFilter(final Collection<Node> nodes) { } @Override public boolean canHandle(final Collection<Node> nodes) { if (fstck != null) { for (final Node n : nodes) { if (n.getClassId() == fstck.getId()) { return true; } } } return false; } @Override public boolean isActive() { return true; } @Override public String getTitle() { return "Flurstückfilter"; } @Override public PostFilter getFilter() { return f; } @Override public Integer getDisplayOrderKeyPrio() { return 100; } /** * 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. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { txtRegEx = new javax.swing.JTextField(); txtRegEx.setText(org.openide.util.NbBundle.getMessage( ExampleFlurstueckPostFilterGUI.class, "ExampleFlurstueckPostFilterGUI.txtRegEx.text")); // NOI18N txtRegEx.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(final java.awt.event.ActionEvent evt) { txtRegExActionPerformed(evt); } }); final javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup( layout.createSequentialGroup().addGap(45, 45, 45).addComponent( txtRegEx, javax.swing.GroupLayout.PREFERRED_SIZE, 277, javax.swing.GroupLayout.PREFERRED_SIZE).addContainerGap(78, Short.MAX_VALUE))); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup( layout.createSequentialGroup().addGap(33, 33, 33).addComponent( txtRegEx, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addContainerGap(35, Short.MAX_VALUE))); } // </editor-fold>//GEN-END:initComponents /** * DOCUMENT ME! * * @param evt DOCUMENT ME! */ private void txtRegExActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_txtRegExActionPerformed } //GEN-LAST:event_txtRegExActionPerformed }