class ListContainsPanel extends javax.swing.JPanel implements ActionListener {

    private ListAttributeContainsBuilder.AttributeContainsFilter filter;
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel labelPattern;
    private javax.swing.JButton okButton;
    private javax.swing.JTextField textField;
    // End of variables declaration//GEN-END:variables

    public ListContainsPanel() {
        initComponents();

        okButton.addActionListener(this);
    }

    @Override
    public void actionPerformed(ActionEvent evt) {
        FilterProperty pattern = filter.getProperties()[1];
        try {
            if (pattern.getValue() == null || !pattern.getValue().equals(textField.getText())) {
                pattern.setValue(textField.getText());
            }
        } catch (Exception e) {
            Exceptions.printStackTrace(e);
        }
    }

    public void setup(ListAttributeContainsBuilder.AttributeContainsFilter filter) {
        this.filter = filter;
        this.setToolTipText(filter.getName() + " '" + filter.getColumn().getTitle() + "'");
        FilterProperty pattern = filter.getProperties()[1];
        try {
            textField.setText((String) pattern.getValue());
        } catch (Exception e) {
            Exceptions.printStackTrace(e);
        }
    }

    /**
     * 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() {<FILL_FUNCTION_BODY>}// </editor-fold>//GEN-END:initComponents
}

        java.awt.GridBagConstraints gridBagConstraints;

        labelPattern = new javax.swing.JLabel();
        textField = new javax.swing.JTextField();
        okButton = new javax.swing.JButton();

        setOpaque(false);
        setLayout(new java.awt.GridBagLayout());

        labelPattern.setText(org.openide.util.NbBundle.getMessage(ListContainsPanel.class,
            "ListContainsPanel.labelPattern.text")); // NOI18N
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3);
        add(labelPattern, gridBagConstraints);

        textField.setText(org.openide.util.NbBundle.getMessage(ListContainsPanel.class,
            "ListContainsPanel.textField.text")); // NOI18N
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.weightx = 1.0;
        add(textField, gridBagConstraints);

        okButton.setText(
            org.openide.util.NbBundle.getMessage(ListContainsPanel.class, "ListContainsPanel.okButton.text")); // NOI18N
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3);
        add(okButton, gridBagConstraints);
    
<methods>public void <init>() ,public void <init>(java.awt.LayoutManager) ,public void <init>(boolean) ,public void <init>(java.awt.LayoutManager, boolean) ,public javax.accessibility.AccessibleContext getAccessibleContext() ,public javax.swing.plaf.PanelUI getUI() ,public java.lang.String getUIClassID() ,public void setUI(javax.swing.plaf.PanelUI) ,public void updateUI() <variables>private static final java.lang.String uiClassID