View Javadoc
1 /*** 2 * Redistribution and use of this software and associated documentation 3 * ("Software"), with or without modification, are permitted provided 4 * that the following conditions are met: 5 * 6 * 1. Redistributions of source code must retain copyright 7 * statements and notices. Redistributions must also contain a 8 * copy of this document. 9 * 10 * 2. Redistributions in binary form must reproduce the 11 * above copyright notice, this list of conditions and the 12 * following disclaimer in the documentation and/or other 13 * materials provided with the distribution. 14 * 15 * 3. The name "Exolab" must not be used to endorse or promote 16 * products derived from this Software without prior written 17 * permission of Exoffice Technologies. For written permission, 18 * please contact info@exolab.org. 19 * 20 * 4. Products derived from this Software may not be called "Exolab" 21 * nor may "Exolab" appear in their names without prior written 22 * permission of Exoffice Technologies. Exolab is a registered 23 * trademark of Exoffice Technologies. 24 * 25 * 5. Due credit should be given to the Exolab Project 26 * (http://www.exolab.org/). 27 * 28 * THIS SOFTWARE IS PROVIDED BY EXOFFICE TECHNOLOGIES AND CONTRIBUTORS 29 * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT 30 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 31 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 32 * EXOFFICE TECHNOLOGIES OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 33 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 34 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 35 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 36 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 37 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 38 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 39 * OF THE POSSIBILITY OF SUCH DAMAGE. 40 * 41 * Copyright 2000 (C) Exoffice Technologies Inc. All Rights Reserved. 42 * 43 * $Id: CreateConsumerDialog.java,v 1.3 2003/08/17 01:32:27 tanderson Exp $ 44 * 45 * Date Author Changes 46 * $Date jimm Created 47 */ 48 49 package org.exolab.jms.tools.admin; 50 51 import java.awt.BorderLayout; 52 import java.awt.FlowLayout; 53 import java.awt.event.ActionEvent; 54 import java.awt.event.ActionListener; 55 import java.awt.event.KeyEvent; 56 import java.awt.event.WindowAdapter; 57 import java.awt.event.WindowEvent; 58 59 import javax.swing.BorderFactory; 60 import javax.swing.JButton; 61 import javax.swing.JDialog; 62 import javax.swing.JFrame; 63 import javax.swing.JLabel; 64 import javax.swing.JOptionPane; 65 import javax.swing.JPanel; 66 import javax.swing.JSeparator; 67 import javax.swing.JTextField; 68 import javax.swing.KeyStroke; 69 import javax.swing.SwingConstants; 70 import javax.swing.SwingUtilities; 71 import javax.swing.border.Border; 72 import javax.swing.text.Keymap; 73 74 75 /*** 76 * A simple dialog to collect information for creating a durable consumer 77 * 78 * @version $Revision: 1.3 $ $Date: 2003/08/17 01:32:27 $ 79 * @author <a href="mailto:jima@exolab.org">Jim Alateras</a> 80 * @see AdminMgr 81 */ 82 public class CreateConsumerDialog extends JDialog { 83 84 // The name chosen for this object 85 protected String consumerName_; 86 protected String topicSubscription_; 87 88 // shared gui fields 89 protected JTextField displayText; 90 91 // The two possible states of theis dialog. 92 final static public int CANCELED = 1; 93 final static public int CONFIRMED = 2; 94 95 // The command status used to shutdown this window. 96 protected int status_; 97 98 // All the gui objects for this dialog 99 private JPanel jPanel1; 100 private JButton okButton; 101 private JButton cancelButton; 102 private JPanel jPanel2; 103 private JPanel jPanel3; 104 private JPanel jPanel4; 105 private JSeparator jSeparator2; 106 private JLabel jLabel1; 107 private JTextField jTextField1; 108 private JLabel jLabel2; 109 private JTextField jTextField2; 110 111 // The one and only instance of this object. 112 static private CreateConsumerDialog instance_; 113 114 /*** 115 * Creates new form TopicDialog 116 * 117 * @param parent The parent form. 118 */ 119 public CreateConsumerDialog(JFrame parent) { 120 super(parent, true); 121 initComponents(); 122 pack(); 123 } 124 125 /*** 126 * Create all the gui components that comprise this form, and setup all 127 * action handlers. 128 * 129 */ 130 protected void initComponents() { 131 jPanel1 = new JPanel(); 132 okButton = new JButton(); 133 cancelButton = new JButton(); 134 jPanel2 = new JPanel(); 135 jPanel3 = new JPanel(); 136 jPanel4 = new JPanel(); 137 jLabel1 = new JLabel(); 138 jLabel1.setText("Enter the consumer name"); 139 jLabel2 = new JLabel(); 140 jLabel2.setText("Enter the topic"); 141 jTextField1 = new JTextField(); 142 jTextField2 = new JTextField(); 143 jSeparator2 = new JSeparator(); 144 setTitle("Create Durable Consumer"); 145 setModal(true); 146 setResizable(true); 147 addWindowListener(new WindowAdapter() { 148 149 public void windowClosing(WindowEvent evt) { 150 closeDialog(evt); 151 } 152 } 153 ); 154 155 jPanel1.setLayout(new FlowLayout(1, 50, 10)); 156 okButton.setToolTipText("Press to confirm Action"); 157 okButton.setText("OK"); 158 getRootPane().setDefaultButton(okButton); 159 jPanel1.add(okButton); 160 cancelButton.setToolTipText("Press to abort Action"); 161 cancelButton.setText("Cancel"); 162 jPanel1.add(cancelButton); 163 getContentPane().add(jPanel1, BorderLayout.SOUTH); 164 jPanel2.setLayout(new BorderLayout(0, 15)); 165 jPanel3.setLayout(new BorderLayout(0, 15)); 166 jPanel4.setLayout(new BorderLayout(0, 15)); 167 jTextField1.setToolTipText 168 ("Enter the unique consumer name"); 169 jTextField2.setToolTipText 170 ("Enter the topic or wildcard subscription"); 171 172 Border loweredbevel = BorderFactory.createLoweredBevelBorder(); 173 174 jTextField1.setBorder(loweredbevel); 175 jTextField1.setEditable(true); 176 jTextField1.setText(""); 177 jTextField1.setHorizontalAlignment(SwingConstants.LEFT); 178 179 jTextField2.setBorder(loweredbevel); 180 jTextField2.setEditable(true); 181 jTextField2.setText(""); 182 jTextField2.setHorizontalAlignment(SwingConstants.LEFT); 183 184 jPanel2.add(jLabel1, BorderLayout.NORTH); 185 jPanel2.add(jTextField1, BorderLayout.CENTER); 186 jPanel2.add(jSeparator2, BorderLayout.SOUTH); 187 188 jPanel3.add(jLabel2, BorderLayout.NORTH); 189 jPanel3.add(jTextField2, BorderLayout.CENTER); 190 jPanel3.add(jSeparator2, BorderLayout.SOUTH); 191 192 jPanel4.add(jPanel2, BorderLayout.NORTH); 193 jPanel4.add(jPanel2, BorderLayout.CENTER); 194 jPanel4.add(jSeparator2, BorderLayout.SOUTH); 195 196 getContentPane().add(jPanel4, BorderLayout.CENTER); 197 198 okButton.addActionListener(new ActionListener() { 199 200 public void actionPerformed(ActionEvent evt) { 201 confirm(); 202 } 203 } 204 ); 205 206 cancelButton.addActionListener(new ActionListener() { 207 208 public void actionPerformed(ActionEvent evt) { 209 cancel(); 210 } 211 } 212 ); 213 214 // Have default button get the keypress event. 215 // This is broken with jdk1.3rc1 216 KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0); 217 Keymap km = displayText.getKeymap(); 218 km.removeKeyStrokeBinding(enter); 219 } 220 221 /*** 222 * Display the create consumer dialog box 223 */ 224 public void displayCreateConsumer() { 225 jTextField1.setText(""); 226 jTextField2.setText(""); 227 setLocationRelativeTo(getParent()); 228 status_ = CANCELED; 229 setVisible(true); 230 231 SwingUtilities.invokeLater(new Runnable() { 232 233 public void run() { 234 cancelButton.requestFocus(); 235 } 236 } 237 ); 238 } 239 240 /*** 241 * Get the consumer name 242 * 243 * @return String 244 */ 245 public String getConsumerName() { 246 return consumerName_; 247 } 248 249 /*** 250 * Get the topic subscription 251 * 252 * @return String 253 */ 254 public String getTopicSubscription() { 255 return topicSubscription_; 256 } 257 258 /*** 259 * Closes the dialog 260 * 261 * @param evt the window event that triggered this call. 262 * 263 */ 264 protected void closeDialog(WindowEvent evt) { 265 setVisible(false); 266 dispose(); 267 } 268 269 /*** 270 * Whether this dialog was confirmed or canceled. 271 * 272 * @return boolena true if the OK button was pressed. 273 * 274 */ 275 public boolean isConfirmed() { 276 return status_ == CONFIRMED; 277 } 278 279 /*** 280 * The cancel button was pressed. Close the GUI, and recored that cancel 281 * was pressed. 282 * 283 */ 284 protected void cancel() { 285 status_ = CANCELED; 286 setVisible(false); 287 dispose(); 288 } 289 290 /*** 291 * The OK button was pressed. Get the name and confirm its not null. 292 * if it is null or empty display an error dialog. 293 * 294 * if a consumer name and a topic sub have been entered then close the 295 * dialog box otherwise display an error. 296 */ 297 protected void confirm() { 298 consumerName_ = jTextField1.getText(); 299 topicSubscription_ = jTextField2.getText(); 300 301 if ((consumerName_ == null) || 302 (consumerName_.length() == 0) || 303 (topicSubscription_ == null) || 304 (topicSubscription_.length() == 0)) { 305 JOptionPane.showMessageDialog 306 (this, "A consumer name and topic subscription must be suplied", 307 "Create Error", JOptionPane.ERROR_MESSAGE); 308 } else { 309 status_ = CONFIRMED; 310 setVisible(false); 311 dispose(); 312 } 313 } 314 315 /*** 316 * Get the one and only instance of this dialog. The dialog must first 317 * have been created with the create call below. 318 * 319 * @return TopicDialog the one and only instance 320 * 321 */ 322 public static CreateConsumerDialog instance() { 323 return instance_; 324 } 325 326 /*** 327 * Create the one and only instance of the Consumer Dialog. 328 * 329 * @param parent the parent of this dialog 330 * @return TopicDialog the one and only instance 331 * 332 */ 333 public static CreateConsumerDialog create(JFrame parent) { 334 if (instance_ == null) { 335 instance_ = new CreateConsumerDialog(parent); 336 } 337 return instance_; 338 } 339 340 /*** 341 * Display the consumer dialog box 342 */ 343 public void display() { 344 JOptionPane.showInputDialog 345 (getParent(), "Enter a unique consumer name", 346 "Create Durable Consumer", JOptionPane.PLAIN_MESSAGE); 347 } 348 }

This page was automatically generated by Maven