001: /* ====================================================================
002: * The QueryForm License, Version 1.1
003: *
004: * Copyright (c) 1998 - 2003 David F. Glasser. All rights
005: * reserved.
006: *
007: * Redistribution and use in source and binary forms, with or without
008: * modification, are permitted provided that the following conditions
009: * are met:
010: *
011: * 1. Redistributions of source code must retain the above copyright
012: * notice, this list of conditions and the following disclaimer.
013: *
014: * 2. Redistributions in binary form must reproduce the above copyright
015: * notice, this list of conditions and the following disclaimer in
016: * the documentation and/or other materials provided with the
017: * distribution.
018: *
019: * 3. The end-user documentation included with the redistribution,
020: * if any, must include the following acknowledgment:
021: * "This product includes software developed by
022: * David F. Glasser."
023: * Alternately, this acknowledgment may appear in the software itself,
024: * if and wherever such third-party acknowledgments normally appear.
025: *
026: * 4. The names "QueryForm" and "David F. Glasser" must
027: * not be used to endorse or promote products derived from this
028: * software without prior written permission. For written
029: * permission, please contact dglasser@pobox.com.
030: *
031: * 5. Products derived from this software may not be called "QueryForm",
032: * nor may "QueryForm" appear in their name, without prior written
033: * permission of David F. Glasser.
034: *
035: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
036: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
037: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
038: * DISCLAIMED. IN NO EVENT SHALL DAVID F. GLASSER, THE APACHE SOFTWARE
039: * FOUNDATION OR ITS CONTRIBUTORS, OR ANY AUTHORS OR DISTRIBUTORS
040: * OF THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
041: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
042: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
043: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
044: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
045: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
046: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
047: * SUCH DAMAGE.
048: * ====================================================================
049: *
050: * This product includes software developed by the
051: * Apache Software Foundation (http://www.apache.org/).
052: *
053: * ====================================================================
054: *
055: * $Source: /cvsroot/qform/qform/src/org/glasser/swing/AppendOverwriteDialog.java,v $
056: * $Revision: 1.1 $
057: * $Author: dglasser $
058: * $Date: 2003/01/26 01:02:15 $
059: *
060: * --------------------------------------------------------------------
061: */
062: package org.glasser.swing;
063:
064: import javax.swing.*;
065: import org.glasser.util.*;
066: import org.glasser.sql.*;
067: import org.glasser.swing.*;
068: import java.awt.event.*;
069: import java.awt.*;
070: import javax.swing.border.*;
071: import javax.swing.event.*;
072: import java.util.*;
073:
074: public class AppendOverwriteDialog extends JDialog implements
075: ActionListener {
076:
077: private JButton btnAppend = new JButton("Append");
078:
079: private JButton btnOverwrite = new JButton("Overwrite");
080:
081: private JButton btnCancel = new JButton("Cancel");
082:
083: public final static String CANCEL_OPTION = "CANCEL";
084:
085: public final static String APPEND_OPTION = "APPEND";
086:
087: public final static String OVERWRITE_OPTION = "OVERWRITE";
088:
089: JTextArea textArea = new JTextArea();
090:
091: Object[][] buttonConfig = {
092: { btnAppend, "A", APPEND_OPTION,
093: "Append output to the selected file." },
094: { btnOverwrite, "O", OVERWRITE_OPTION,
095: "Overwrite existing file." },
096: { btnCancel, "C", CANCEL_OPTION, "Cancel operation." } };
097:
098: public AppendOverwriteDialog(Frame parent) {
099: super (parent);
100:
101: JPanel cp = new JPanel();
102: setTitle("Confirm File Overwrite");
103: setContentPane(cp);
104: cp.setLayout(new BorderLayout());
105: textArea.setOpaque(false);
106: textArea.setBorder(new EmptyBorder(15, 15, 15, 15));
107: textArea.setLineWrap(true);
108: textArea.setWrapStyleWord(true);
109: textArea.setEditable(false);
110: textArea.setEnabled(false);
111: textArea.setDisabledTextColor(Color.black);
112:
113: Font f = (Font) UIManager.getDefaults().get("Button.font");
114: if (f != null) {
115: textArea.setFont(f);
116: }
117:
118: cp.add(textArea, BorderLayout.CENTER);
119:
120: JPanel buttonPanel = new JPanel();
121: buttonPanel.setLayout(new FlowLayout());
122: buttonPanel.setBorder(new EmptyBorder(15, 0, 15, 0));
123: GUIHelper.buildButtonPanel(buttonPanel, buttonConfig, this );
124: cp.add(buttonPanel, BorderLayout.SOUTH);
125: setModal(true);
126: }
127:
128: public void openDialog(String fileName, boolean showAppendButton) {
129:
130: setModal(true);
131: btnAppend.setVisible(showAppendButton);
132: if (fileName != null) {
133: textArea
134: .setText("The file you have selected:\n\n"
135: + fileName
136: + "\n\nalready exists. How do you want to proceed?");
137: } else {
138: textArea
139: .setText("The selected file already exists.\n\nHow do you want to proceed?");
140: }
141:
142: pack();
143: selection = CANCEL_OPTION;
144:
145: super .setVisible(true);
146: }
147:
148: public void setVisible(boolean b) {
149: if (b)
150: throw new RuntimeException(
151: "Use openDialog() to make dialog visible.");
152: }
153:
154: private String selection = null;
155:
156: public void actionPerformed(ActionEvent e) {
157: selection = e.getActionCommand();
158: super .setVisible(false);
159: }
160:
161: public String getSelection() {
162: return selection;
163: }
164:
165: public static void main(String[] args) throws Exception {
166:
167: AppendOverwriteDialog d = new AppendOverwriteDialog(null);
168: d.openDialog("C:\\autoexec.bat", true);
169: System.out.println(d.getSelection());
170: System.exit(0);
171:
172: }
173:
174: }
|