1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.log4j.lf5.viewer; 18 19 import javax.swing.*; 20 import java.awt.*; 21 import java.awt.event.ActionEvent; 22 import java.awt.event.ActionListener; 23 import java.awt.event.KeyAdapter; 24 import java.awt.event.KeyEvent; 25 26 /** 27 * LogFactor5InputDialog 28 * 29 * Creates a popup input dialog box so that users can enter 30 * a URL to open a log file from. 31 * 32 * @author Richard Hurst 33 * @author Brad Marlborough 34 */ 35 36 // Contributed by ThoughtWorks Inc. 37 38 public class LogFactor5InputDialog extends LogFactor5Dialog { 39 //-------------------------------------------------------------------------- 40 // Constants: 41 //-------------------------------------------------------------------------- 42 public static final int SIZE = 30; 43 //-------------------------------------------------------------------------- 44 // Protected Variables: 45 //-------------------------------------------------------------------------- 46 47 //-------------------------------------------------------------------------- 48 // Private Variables: 49 //-------------------------------------------------------------------------- 50 private JTextField _textField; 51 //-------------------------------------------------------------------------- 52 // Constructors: 53 //-------------------------------------------------------------------------- 54 55 /** 56 * Configures an input dialog box using a defualt size for the text field. 57 * param jframe the frame where the dialog will be loaded from. 58 * param title the title of the dialog box. 59 * param label the label to be put in the dialog box. 60 */ 61 public LogFactor5InputDialog(JFrame jframe, String title, String label) { 62 this(jframe, title, label, SIZE); 63 } 64 65 /** 66 * Configures an input dialog box. 67 * param jframe the frame where the dialog will be loaded from. 68 * param title the title of the dialog box. 69 * param label the label to be put in the dialog box. 70 * param size the size of the text field. 71 */ 72 public LogFactor5InputDialog(JFrame jframe, String title, String label, 73 int size) { 74 super(jframe, title, true); 75 76 JPanel bottom = new JPanel(); 77 bottom.setLayout(new FlowLayout()); 78 79 JPanel main = new JPanel(); 80 main.setLayout(new FlowLayout()); 81 main.add(new JLabel(label)); 82 _textField = new JTextField(size); 83 main.add(_textField); 84 85 addKeyListener(new KeyAdapter() { 86 public void keyPressed(KeyEvent e) { 87 if (e.getKeyCode() == KeyEvent.VK_ENTER) { 88 hide(); 89 } 90 } 91 }); 92 93 JButton ok = new JButton("Ok"); 94 ok.addActionListener(new ActionListener() { 95 public void actionPerformed(ActionEvent e) { 96 hide(); 97 } 98 }); 99 100 JButton cancel = new JButton("Cancel"); 101 cancel.addActionListener(new ActionListener() { 102 public void actionPerformed(ActionEvent e) { 103 hide(); 104 // set the text field to blank just in case 105 // a file was selected before the Cancel 106 // button was pressed. 107 _textField.setText(""); 108 } 109 }); 110 111 bottom.add(ok); 112 bottom.add(cancel); 113 getContentPane().add(main, BorderLayout.CENTER); 114 getContentPane().add(bottom, BorderLayout.SOUTH); 115 pack(); 116 centerWindow(this); 117 show(); 118 } 119 120 //-------------------------------------------------------------------------- 121 // Public Methods: 122 //-------------------------------------------------------------------------- 123 public String getText() { 124 String s = _textField.getText(); 125 126 if (s != null && s.trim().length() == 0) { 127 return null; 128 } 129 130 return s; 131 132 } 133 134 //-------------------------------------------------------------------------- 135 // Protected Methods: 136 //-------------------------------------------------------------------------- 137 138 //-------------------------------------------------------------------------- 139 // Private Methods: 140 //-------------------------------------------------------------------------- 141 142 //-------------------------------------------------------------------------- 143 // Nested Top-Level Classes or Interfaces 144 //-------------------------------------------------------------------------- 145 }