Dialog Panel
/* * Enhydra Java Application Server Project * * The contents of this file are subject to the Enhydra Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License on * the Enhydra web site ( http://www.enhydra.org/ ). * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific terms governing rights and limitations * under the License. * * The Initial Developer of the Enhydra Application Server is Lutris * Technologies, Inc. The Enhydra Application Server and portions created * by Lutris Technologies, Inc. are Copyright Lutris Technologies, Inc. * All Rights Reserved. * * Contributor(s): * */ // Standard imports import java.awt.BorderLayout; import java.awt.Window; import java.awt.Dialog; import java.awt.Frame; import java.awt.Point; import java.awt.event.WindowEvent; import javax.swing.JDialog; import javax.swing.JPanel; import javax.swing.JOptionPane; // public class DialogPanel extends JPanel { public final static int CANCEL_OPTION = JOptionPane.CANCEL_OPTION; public final static int OK_OPTION = JOptionPane.OK_OPTION; // private int option = DialogPanel.CANCEL_OPTION; private LocalDialog dialog = null; private Window owner = null; private boolean windowClose = false; private boolean standalone = false; private boolean modal = true; private String title = new String(); public Window getOwner() { return owner; } public void setOwner(Window w) { owner = w; } public String getTitle() { return title; } public void setTitle(String t) { title = t; } public boolean isModal() { return modal; } public void setModal(boolean b) { modal = b; } public int getOption() { return option; } public void setOption(int o) { option = o; } public LocalDialog getDialog() { return dialog; } public void startDialogThread() { Thread dialogThread = new Thread() { public void run() { showDialog(); } }; dialogThread.start(); } public int showDialog() { BorderLayout layout = null; Point cp = null; if (dialog == null) { if (getOwner() == null) { dialog = new LocalDialog(); } else if (getOwner() instanceof Frame) { dialog = new LocalDialog((Frame) getOwner()); } else if (getOwner() instanceof Dialog) { dialog = new LocalDialog((Dialog) getOwner()); } else { dialog = new LocalDialog(); } } dialog.setModal(isModal()); dialog.setTitle(getTitle()); layout = new BorderLayout(); dialog.getRootPane().setLayout(layout); dialog.getRootPane().add(this, BorderLayout.CENTER); dialog.pack(); dialog.show(); return option; } // // PROTECTED // protected void hideDialog() { if (dialog != null) { dialog.setVisible(false); } } protected void clearDialog() { if (dialog != null) { dialog.setVisible(false); dialog.getRootPane().removeAll(); dialog.removeAll(); dialog.dispose(); } if (isStandalone()) { System.exit(0); } } protected boolean isWindowClose() { return windowClose; } protected void setWindowClose(boolean b) { windowClose = b; } protected boolean isStandalone() { return standalone; } protected void setStandalone(boolean b) { standalone = b; } private class LocalDialog extends JDialog { public LocalDialog() { super(); } public LocalDialog(Dialog owner) { super(owner); } public LocalDialog(Frame owner) { super(owner); } protected void processWindowEvent(WindowEvent e) { if (isWindowClose()) { if (e.getID() == WindowEvent.WINDOW_CLOSING) { clearDialog(); } super.processWindowEvent(e); } } } }