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.ldap.gui;
021    
022    
023    import java.awt.BorderLayout;
024    
025    import javax.swing.JOptionPane;
026    import javax.swing.JPanel;
027    import javax.swing.JDialog;
028    import javax.swing.JButton;
029    import javax.swing.JTextField;
030    import javax.swing.BoxLayout;
031    import javax.swing.JLabel;
032    
033    
034    public class ShutdownDialog extends JDialog
035    {
036        private static final long serialVersionUID = -6681747075037789868L;
037    
038        private JPanel jContentPane = null;
039        private JPanel inputsPanel = null;
040        private JPanel buttonsPanel = null;
041        private JButton sendButton = null;
042        private JButton cancelButton = null;
043        private JPanel jPanel = null;
044        private JPanel jPanel1 = null;
045        private JLabel jLabel = null;
046        private JTextField timeOfflineField = null;
047        private JLabel jLabel1 = null;
048        private JTextField delayField = null;
049        private boolean canceled = true;
050    
051    
052        /**
053         * This is the default constructor
054         */
055        public ShutdownDialog()
056        {
057            super();
058            initialize();
059        }
060    
061    
062        public boolean isSendCanceled()
063        {
064            return canceled;
065        }
066    
067    
068        public int getTimeOffline()
069        {
070            return Integer.parseInt( timeOfflineField.getText() );
071        }
072    
073    
074        public int getDelay()
075        {
076            return Integer.parseInt( delayField.getText() );
077        }
078    
079    
080        public boolean isCanceled()
081        {
082            return canceled;
083        }
084    
085    
086        /**
087         * This method initializes this
088         * 
089         * @return void
090         */
091        private void initialize()
092        {
093            this.setSize( 248, 171 );
094            this.setTitle( "Shutdown Parameters" );
095            this.setContentPane( getJContentPane() );
096        }
097    
098    
099        /**
100         * This method initializes jContentPane
101         * 
102         * @return javax.swing.JPanel
103         */
104        private JPanel getJContentPane()
105        {
106            if ( jContentPane == null )
107            {
108                jContentPane = new JPanel();
109                jContentPane.setLayout( new BorderLayout() );
110                jContentPane.add( getJPanel(), java.awt.BorderLayout.CENTER );
111                jContentPane.add( getJPanel2(), java.awt.BorderLayout.SOUTH );
112            }
113            return jContentPane;
114        }
115    
116    
117        /**
118         * This method initializes jPanel    
119         *     
120         * @return javax.swing.JPanel    
121         */
122        private JPanel getJPanel()
123        {
124            if ( inputsPanel == null )
125            {
126                inputsPanel = new JPanel();
127                inputsPanel.setLayout( null );
128                inputsPanel.setBorder( javax.swing.BorderFactory
129                    .createEtchedBorder( javax.swing.border.EtchedBorder.RAISED ) );
130                inputsPanel.add( getJPanel3(), null );
131                inputsPanel.add( getJPanel1(), null );
132            }
133            return inputsPanel;
134        }
135    
136    
137        /**
138         * This method initializes jPanel    
139         *     
140         * @return javax.swing.JPanel    
141         */
142        private JPanel getJPanel2()
143        {
144            if ( buttonsPanel == null )
145            {
146                buttonsPanel = new JPanel();
147                buttonsPanel.add( getJButton(), null );
148                buttonsPanel.add( getJButton2(), null );
149            }
150            return buttonsPanel;
151        }
152    
153    
154        /**
155         * This method initializes jButton    
156         *     
157         * @return javax.swing.JButton    
158         */
159        private JButton getJButton()
160        {
161            if ( sendButton == null )
162            {
163                sendButton = new JButton();
164                sendButton.setText( "Send" );
165                sendButton.addActionListener( new java.awt.event.ActionListener()
166                {
167                    public void actionPerformed( java.awt.event.ActionEvent e )
168                    {
169                        int timeOffline = 0;
170                        try
171                        {
172                            timeOffline = Integer.parseInt( timeOfflineField.getText() );
173                            if ( timeOffline > 720 || timeOffline < 0 )
174                            {
175                                JOptionPane.showMessageDialog( ShutdownDialog.this,
176                                    "Time Offline is out of range: 0 ... 720", "Range Problem", JOptionPane.ERROR_MESSAGE );
177                                timeOfflineField.setText( "" );
178                                return;
179                            }
180                        }
181                        catch ( NumberFormatException nfe )
182                        {
183                            JOptionPane.showMessageDialog( ShutdownDialog.this,
184                                "The value for Time Offline is not a number", "Not a Number", JOptionPane.ERROR_MESSAGE );
185                            timeOfflineField.setText( "" );
186                            return;
187                        }
188                        int delay = 0;
189                        try
190                        {
191                            delay = Integer.parseInt( delayField.getText() );
192                            if ( delay > 86400 || delay < 0 )
193                            {
194                                JOptionPane.showMessageDialog( ShutdownDialog.this, "Delay is out of range: 0 ... 86400",
195                                    "Range Problem", JOptionPane.ERROR_MESSAGE );
196                                delayField.setText( "" );
197                                return;
198                            }
199                        }
200                        catch ( NumberFormatException nfe )
201                        {
202                            JOptionPane.showMessageDialog( ShutdownDialog.this, "Delay is not a number", "Not a Number",
203                                JOptionPane.ERROR_MESSAGE );
204                            delayField.setText( "" );
205                            return;
206                        }
207                        canceled = false;
208                        setVisible( false );
209                        dispose();
210                    }
211                } );
212            }
213            return sendButton;
214        }
215    
216    
217        /**
218         * This method initializes jButton    
219         *     
220         * @return javax.swing.JButton    
221         */
222        private JButton getJButton2()
223        {
224            if ( cancelButton == null )
225            {
226                cancelButton = new JButton();
227                cancelButton.setText( "Cancel" );
228                cancelButton.setSelected( true );
229                cancelButton.addActionListener( new java.awt.event.ActionListener()
230                {
231                    public void actionPerformed( java.awt.event.ActionEvent e )
232                    {
233                        canceled = true;
234                        setVisible( false );
235                        dispose();
236                        return;
237                    }
238                } );
239            }
240            return cancelButton;
241        }
242    
243    
244        /**
245         * This method initializes jPanel    
246         *     
247         * @return javax.swing.JPanel    
248         */
249        private JPanel getJPanel3()
250        {
251            if ( jPanel == null )
252            {
253                jLabel = new JLabel();
254                jLabel.setText( "Minutes Offline: " );
255                jPanel = new JPanel();
256                jPanel.setLayout( new BoxLayout( getJPanel3(), BoxLayout.X_AXIS ) );
257                jPanel.setBounds( new java.awt.Rectangle( 35, 28, 163, 16 ) );
258                jPanel.add( jLabel, null );
259                jPanel.add( getJTextField(), null );
260            }
261            return jPanel;
262        }
263    
264    
265        /**
266         * This method initializes jPanel1    
267         *     
268         * @return javax.swing.JPanel    
269         */
270        private JPanel getJPanel1()
271        {
272            if ( jPanel1 == null )
273            {
274                jLabel1 = new JLabel();
275                jLabel1.setText( "Seconds Delay: " );
276                jPanel1 = new JPanel();
277                jPanel1.setLayout( new BoxLayout( getJPanel1(), BoxLayout.X_AXIS ) );
278                jPanel1.setBounds( new java.awt.Rectangle( 42, 57, 156, 16 ) );
279                jPanel1.add( jLabel1, null );
280                jPanel1.add( getJTextField1(), null );
281            }
282            return jPanel1;
283        }
284    
285    
286        /**
287         * This method initializes jTextField    
288         *     
289         * @return javax.swing.JTextField    
290         */
291        private JTextField getJTextField()
292        {
293            if ( timeOfflineField == null )
294            {
295                timeOfflineField = new JTextField();
296            }
297            return timeOfflineField;
298        }
299    
300    
301        /**
302         * This method initializes jTextField1    
303         *     
304         * @return javax.swing.JTextField    
305         */
306        private JTextField getJTextField1()
307        {
308            if ( delayField == null )
309            {
310                delayField = new JTextField();
311            }
312            return delayField;
313        }
314    
315    } //  @jve:decl-index=0:visual-constraint="10,10"