001    /*
002     *  Licensed to the Apache Software Foundation (ASF) under one
003     *  or more contributor license agreements.  See the NOTICE file
004     *  distributed with this work for additional information
005     *  regarding copyright ownership.  The ASF licenses this file
006     *  to you under the Apache License, Version 2.0 (the
007     *  "License"); you may not use this file except in compliance
008     *  with the License.  You may obtain a copy of the License at
009     *  
010     *    http://www.apache.org/licenses/LICENSE-2.0
011     *  
012     *  Unless required by applicable law or agreed to in writing,
013     *  software distributed under the License is distributed on an
014     *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015     *  KIND, either express or implied.  See the License for the
016     *  specific language governing permissions and limitations
017     *  under the License. 
018     *  
019     */
020    package org.apache.directory.server.core.partition.impl.btree.gui;
021    
022    
023    import java.awt.Frame;
024    import java.awt.event.ActionEvent;
025    import java.awt.event.ActionListener;
026    import java.awt.event.WindowEvent;
027    
028    import javax.swing.JButton;
029    import javax.swing.JDialog;
030    import javax.swing.JPanel;
031    import javax.swing.JScrollPane;
032    import javax.swing.JTextArea;
033    import javax.swing.JTree;
034    import javax.swing.tree.TreeModel;
035    
036    
037    /**
038     * Dialog for showing annotated filter trees.
039     *
040     * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
041     * @version $Rev: 437012 $
042     */
043    public class AnnotatedFilterTreeDialog extends JDialog
044    {
045        private static final long serialVersionUID = 3690476917916513074L;
046        private JPanel jPanel1 = new JPanel();
047        private JTree jTree1 = new JTree();
048        private JPanel jPanel2 = new JPanel();
049        private JPanel jPanel3 = new JPanel();
050        private JTextArea jTextArea1 = new JTextArea();
051        private JScrollPane jScrollPane1 = new JScrollPane();
052        private JButton jButton1 = new JButton();
053    
054    
055        /** Creates new form JDialog */
056        public AnnotatedFilterTreeDialog(Frame parent, boolean modal)
057        {
058            super( parent, modal );
059            initGUI();
060        }
061    
062    
063        /** This method is called from within the constructor to initialize the form. */
064        private void initGUI()
065        {
066            addWindowListener( new java.awt.event.WindowAdapter()
067            {
068                public void windowClosing( java.awt.event.WindowEvent evt )
069                {
070                    closeDialog( evt );
071                }
072            } );
073            pack();
074            getContentPane().setLayout( new java.awt.GridBagLayout() );
075            getContentPane().add(
076                jPanel1,
077                new java.awt.GridBagConstraints( 0, 0, 1, 1, 1.0, 0.1, java.awt.GridBagConstraints.NORTH,
078                    java.awt.GridBagConstraints.BOTH, new java.awt.Insets( 10, 5, 5, 5 ), 0, 0 ) );
079            getContentPane().add(
080                jPanel2,
081                new java.awt.GridBagConstraints( 0, 1, 1, 1, 1.0, 0.8, java.awt.GridBagConstraints.CENTER,
082                    java.awt.GridBagConstraints.BOTH, new java.awt.Insets( 5, 5, 5, 5 ), 0, 0 ) );
083            getContentPane().add(
084                jPanel3,
085                new java.awt.GridBagConstraints( 0, 2, 1, 1, 1.0, 0.1, java.awt.GridBagConstraints.SOUTH,
086                    java.awt.GridBagConstraints.HORIZONTAL, new java.awt.Insets( 0, 0, 0, 0 ), 0, 0 ) );
087            jPanel1.setLayout( new java.awt.BorderLayout( 10, 10 ) );
088            jPanel1.setBorder( javax.swing.BorderFactory.createTitledBorder( javax.swing.BorderFactory.createLineBorder(
089                new java.awt.Color( 153, 153, 153 ), 1 ), "Search Filter", javax.swing.border.TitledBorder.LEADING,
090                javax.swing.border.TitledBorder.TOP, new java.awt.Font( "SansSerif", 0, 14 ), new java.awt.Color( 60, 60,
091                    60 ) ) );
092            jPanel1.add( jTextArea1, java.awt.BorderLayout.CENTER );
093            jScrollPane1.getViewport().add( jTree1 );
094            jTree1.setBounds( new java.awt.Rectangle( 238, 142, 82, 80 ) );
095            jTextArea1.setText( "" );
096            jTextArea1.setEditable( false );
097            setBounds( new java.awt.Rectangle( 0, 0, 485, 414 ) );
098            jPanel2.setLayout( new java.awt.BorderLayout() );
099            jPanel2.setBorder( javax.swing.BorderFactory.createTitledBorder( javax.swing.BorderFactory.createLineBorder(
100                new java.awt.Color( 153, 153, 153 ), 1 ), "Filter Expression Tree",
101                javax.swing.border.TitledBorder.LEADING, javax.swing.border.TitledBorder.TOP, new java.awt.Font(
102                    "SansSerif", 0, 14 ), new java.awt.Color( 60, 60, 60 ) ) );
103            jPanel2.add( jScrollPane1, java.awt.BorderLayout.CENTER );
104            jButton1.setText( "Done" );
105            jButton1.setActionCommand( "Done" );
106            jButton1.addActionListener( new ActionListener()
107            {
108                public void actionPerformed( ActionEvent a_event )
109                {
110                    AnnotatedFilterTreeDialog.this.setVisible( false );
111                    AnnotatedFilterTreeDialog.this.dispose();
112                }
113            } );
114            jButton1.setHorizontalAlignment( javax.swing.SwingConstants.CENTER );
115            jButton1.setAlignmentX( 0.5f );
116            jButton1.setHorizontalTextPosition( javax.swing.SwingConstants.CENTER );
117            jPanel3.setPreferredSize( new java.awt.Dimension( 79, 41 ) );
118            jPanel3.setMinimumSize( new java.awt.Dimension( 79, 41 ) );
119            jPanel3.setSize( new java.awt.Dimension( 471, 35 ) );
120            jPanel3.setToolTipText( "" );
121            jPanel3.add( jButton1 );
122        }
123    
124    
125        /** Closes the dialog */
126        private void closeDialog( WindowEvent evt )
127        {
128            evt.getWindow();
129            setVisible( false );
130            dispose();
131        }
132    
133    
134        public void setModel( TreeModel a_model )
135        {
136            this.jTree1.setModel( a_model );
137        }
138    
139    
140        public void setFilter( String a_filter )
141        {
142            this.jTextArea1.setText( a_filter );
143        }
144    }