package ipma.Window;
/*
* Copyright (c) 1997, 1998
* The Regents of the University of Michigan ("The Regents").
* All rights reserved.
*
* Contact: ipma-support@merit.edu
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* Michigan and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
*/
/**
* CPopupWindow
*
* CPopupWindow extends CWindow to add a close button. This was done
* since this will likely appear multiple times.
*/
/**
* Modification History:
* $Log: CPopupWindow.java,v $
* Revision 1.1 2000/08/19 14:35:56 polandj
* Sorry for all the emails this is going to generate...
* - Moved old IRRj into irrj/v1
* - New IRRj is in irrj/v2
*
* Revision 1.2 2000/03/01 21:28:10 polandj
* Updating to the latest version.
*
* Revision 1.1 1999/05/14 19:39:15 polandj
* Adding irrj under repository
*
* Revision 1.5 1999/03/09 21:53:30 vecna
* Changed all instances of "show()" to "setVisible(true)".
* Modified default size to be 320*200. Fixed annoying problem of windows
* popping up with title bar off the screen...
*
* Revision 1.4 1999/02/02 07:33:22 vecna
* Nuked some commented out code from DateMenu and TimeZoneMenu...
*:
*/
import java.awt.*;
import java.awt.event.*;
public class CPopupWindow
extends CWindow {
private static final String CLOSE_STRING = "Close";
private final Panel MainPanel = new Panel();
private final Button CloseButton = new Button(CLOSE_STRING);
/** CPopupWindow: Constructor.
*/
public CPopupWindow() {
setForeground(Color.black);
setBackground(Color.lightGray);
}
/** CPopupWindow: Constructor with some initialized variables.
* @param TitleString Title for window.
* @param c Component to be added to window.
*/
public CPopupWindow(String TitleString, Component c) {
setForeground(Color.black);
setBackground(Color.lightGray);
Setup(TitleString, c);
}
/** CPopupWindow: Constructor with all variables initialized.
* @param TitleString Title for window.
* @param c Component to be added.
* @param width Width of window.
* @param height Height for window.
*/
public CPopupWindow(String TitleString, Component c,
int width, int height) {
setForeground(Color.black);
setBackground(Color.lightGray);
Setup(TitleString, c, width, height);
}
/** Setup Sets up the layout for components.
* @param TitleString Title for window.
* @param c Component to be added.
*/
protected void Setup(String TitleString, Component c) {
BuildLayout(c);
super.Setup(TitleString, MainPanel, 320, 200);
}
/** Setup Sets up the layout for components.
* @param TitleString Title for window.
* @param c Component to be added.
* @param width Width for window.
* @param height Height for window.
*/
protected void Setup(String TitleString, Component c,
int width, int height) {
BuildLayout(c);
super.Setup(TitleString, MainPanel, width, height);
}
/** BuildLayout: Creates a layout for the window with
* the input components included.
* @param c Component to be added.
*/
private void BuildLayout(Component c) {
GridBagLayout g;
GridBagConstraints gc;
CloseButton.setForeground(Color.black);
CloseButton.setBackground(Color.lightGray);
// add inner class that will handle button actions.
// an actionListener for Buttons.
CloseButton.addActionListener (new ActionListener() {
public void actionPerformed(ActionEvent e) {
String label = e.getActionCommand();
if (label.equals (CLOSE_STRING)) {
Close ();
}
}
});
g = new GridBagLayout();
gc = new GridBagConstraints();
MainPanel.setLayout(g);
gc.fill = GridBagConstraints.BOTH;
gc.gridwidth = GridBagConstraints.REMAINDER;
gc.gridheight = GridBagConstraints.RELATIVE;
gc.weightx = 10.0;
gc.weighty = 10.0;
g.setConstraints(c, gc);
MainPanel.add(c);
gc.anchor = GridBagConstraints.CENTER;
gc.fill = GridBagConstraints.NONE;
gc.gridheight = GridBagConstraints.REMAINDER;
gc.weightx = 0.0;
gc.weighty = 0.0;
g.setConstraints(CloseButton, gc);
MainPanel.add(CloseButton);
}
/** setForeground : Sets foreground colour.
* @param c Color.
*/
public void setForeground(Color c) {
if (MainPanel != null)
MainPanel.setForeground(c);
super.setForeground(c);
}
/** setBackground: Sets the background colour.
* @param c Colour for background.
*/
public void setBackground(Color c) {
if (MainPanel != null)
MainPanel.setBackground(c);
super.setBackground(c);
}
}
syntax highlighted by Code2HTML, v. 0.9.1