< prev index next >
src/java.desktop/share/classes/javax/swing/Popup.java
Print this page
*** 29,57 ****
import sun.awt.ModalExclude;
import sun.awt.SunToolkit;
/**
! * Popups are used to display a <code>Component</code> to the user, typically
! * on top of all the other <code>Component</code>s in a particular containment
! * hierarchy. <code>Popup</code>s have a very small life cycle. Once you
! * have obtained a <code>Popup</code>, and hidden it (invoked the
! * <code>hide</code> method), you should no longer
! * invoke any methods on it. This allows the <code>PopupFactory</code> to cache
! * <code>Popup</code>s for later use.
* <p>
* The general contract is that if you need to change the size of the
! * <code>Component</code>, or location of the <code>Popup</code>, you should
! * obtain a new <code>Popup</code>.
* <p>
! * <code>Popup</code> does not descend from <code>Component</code>, rather
! * implementations of <code>Popup</code> are responsible for creating
! * and maintaining their own <code>Component</code>s to render the
! * requested <code>Component</code> to the user.
* <p>
! * You typically do not explicitly create an instance of <code>Popup</code>,
! * instead obtain one from a <code>PopupFactory</code>.
*
* @see PopupFactory
*
* @since 1.4
*/
--- 29,57 ----
import sun.awt.ModalExclude;
import sun.awt.SunToolkit;
/**
! * Popups are used to display a {@code Component} to the user, typically
! * on top of all the other {@code Component}s in a particular containment
! * hierarchy. {@code Popup}s have a very small life cycle. Once you
! * have obtained a {@code Popup}, and hidden it (invoked the
! * {@code hide} method), you should no longer
! * invoke any methods on it. This allows the {@code PopupFactory} to cache
! * {@code Popup}s for later use.
* <p>
* The general contract is that if you need to change the size of the
! * {@code Component}, or location of the {@code Popup}, you should
! * obtain a new {@code Popup}.
* <p>
! * {@code Popup} does not descend from {@code Component}, rather
! * implementations of {@code Popup} are responsible for creating
! * and maintaining their own {@code Component}s to render the
! * requested {@code Component} to the user.
* <p>
! * You typically do not explicitly create an instance of {@code Popup},
! * instead obtain one from a {@code PopupFactory}.
*
* @see PopupFactory
*
* @since 1.4
*/
*** 60,80 ****
* The Component representing the Popup.
*/
private Component component;
/**
! * Creates a <code>Popup</code> for the Component <code>owner</code>
! * containing the Component <code>contents</code>. <code>owner</code>
! * is used to determine which <code>Window</code> the new
! * <code>Popup</code> will parent the <code>Component</code> the
! * <code>Popup</code> creates to.
! * A null <code>owner</code> implies there is no valid parent.
! * <code>x</code> and
! * <code>y</code> specify the preferred initial location to place
! * the <code>Popup</code> at. Based on screen size, or other paramaters,
! * the <code>Popup</code> may not display at <code>x</code> and
! * <code>y</code>.
*
* @param owner Component mouse coordinates are relative to, may be null
* @param contents Contents of the Popup
* @param x Initial x screen coordinate
* @param y Initial y screen coordinate
--- 60,80 ----
* The Component representing the Popup.
*/
private Component component;
/**
! * Creates a {@code Popup} for the Component {@code owner}
! * containing the Component {@code contents}. {@code owner}
! * is used to determine which {@code Window} the new
! * {@code Popup} will parent the {@code Component} the
! * {@code Popup} creates to.
! * A null {@code owner} implies there is no valid parent.
! * {@code x} and
! * {@code y} specify the preferred initial location to place
! * the {@code Popup} at. Based on screen size, or other paramaters,
! * the {@code Popup} may not display at {@code x} and
! * {@code y}.
*
* @param owner Component mouse coordinates are relative to, may be null
* @param contents Contents of the Popup
* @param x Initial x screen coordinate
* @param y Initial y screen coordinate
*** 87,103 ****
}
reset(owner, contents, x, y);
}
/**
! * Creates a <code>Popup</code>. This is provided for subclasses.
*/
protected Popup() {
}
/**
! * Makes the <code>Popup</code> visible. If the <code>Popup</code> is
* currently visible, this has no effect.
*/
@SuppressWarnings("deprecation")
public void show() {
--- 87,103 ----
}
reset(owner, contents, x, y);
}
/**
! * Creates a {@code Popup}. This is provided for subclasses.
*/
protected Popup() {
}
/**
! * Makes the {@code Popup} visible. If the {@code Popup} is
* currently visible, this has no effect.
*/
@SuppressWarnings("deprecation")
public void show() {
*** 107,121 ****
component.show();
}
}
/**
! * Hides and disposes of the <code>Popup</code>. Once a <code>Popup</code>
* has been disposed you should no longer invoke methods on it. A
! * <code>dispose</code>d <code>Popup</code> may be reclaimed and later used
! * based on the <code>PopupFactory</code>. As such, if you invoke methods
! * on a <code>disposed</code> <code>Popup</code>, indeterminate
* behavior will result.
*/
@SuppressWarnings("deprecation")
public void hide() {
--- 107,121 ----
component.show();
}
}
/**
! * Hides and disposes of the {@code Popup}. Once a {@code Popup}
* has been disposed you should no longer invoke methods on it. A
! * {@code dispose}d {@code Popup} may be reclaimed and later used
! * based on the {@code PopupFactory}. As such, if you invoke methods
! * on a {@code disposed Popup}, indeterminate
* behavior will result.
*/
@SuppressWarnings("deprecation")
public void hide() {
*** 127,137 ****
}
dispose();
}
/**
! * Frees any resources the <code>Popup</code> may be holding onto.
*/
void dispose() {
Component component = getComponent();
Window window = SwingUtilities.getWindowAncestor(component);
--- 127,137 ----
}
dispose();
}
/**
! * Frees any resources the {@code Popup} may be holding onto.
*/
void dispose() {
Component component = getComponent();
Window window = SwingUtilities.getWindowAncestor(component);
*** 144,154 ****
window.dispose();
}
}
/**
! * Resets the <code>Popup</code> to an initial state.
*/
void reset(Component owner, Component contents, int ownerX, int ownerY) {
if (getComponent() == null) {
component = createComponent(owner);
}
--- 144,154 ----
window.dispose();
}
}
/**
! * Resets the {@code Popup} to an initial state.
*/
void reset(Component owner, Component contents, int ownerX, int ownerY) {
if (getComponent() == null) {
component = createComponent(owner);
}
*** 170,194 ****
}
}
/**
! * Causes the <code>Popup</code> to be sized to fit the preferred size
! * of the <code>Component</code> it contains.
*/
void pack() {
Component component = getComponent();
if (component instanceof Window) {
((Window)component).pack();
}
}
/**
! * Returns the <code>Window</code> to use as the parent of the
! * <code>Window</code> created for the <code>Popup</code>. This creates
! * a new <code>DefaultFrame</code>, if necessary.
*/
private Window getParentWindow(Component owner) {
Window window = null;
if (owner instanceof Window) {
--- 170,194 ----
}
}
/**
! * Causes the {@code Popup} to be sized to fit the preferred size
! * of the {@code Component} it contains.
*/
void pack() {
Component component = getComponent();
if (component instanceof Window) {
((Window)component).pack();
}
}
/**
! * Returns the {@code Window} to use as the parent of the
! * {@code Window} created for the {@code Popup}. This creates
! * a new {@code DefaultFrame}, if necessary.
*/
private Window getParentWindow(Component owner) {
Window window = null;
if (owner instanceof Window) {
*** 202,213 ****
}
return window;
}
/**
! * Creates the Component to use as the parent of the <code>Popup</code>.
! * The default implementation creates a <code>Window</code>, subclasses
* should override.
*/
Component createComponent(Component owner) {
if (GraphicsEnvironment.isHeadless()) {
// Generally not useful, bail.
--- 202,213 ----
}
return window;
}
/**
! * Creates the Component to use as the parent of the {@code Popup}.
! * The default implementation creates a {@code Window}, subclasses
* should override.
*/
Component createComponent(Component owner) {
if (GraphicsEnvironment.isHeadless()) {
// Generally not useful, bail.
*** 215,226 ****
}
return new HeavyWeightWindow(getParentWindow(owner));
}
/**
! * Returns the <code>Component</code> returned from
! * <code>createComponent</code> that will hold the <code>Popup</code>.
*/
Component getComponent() {
return component;
}
--- 215,226 ----
}
return new HeavyWeightWindow(getParentWindow(owner));
}
/**
! * Returns the {@code Component} returned from
! * {@code createComponent} that will hold the {@code Popup}.
*/
Component getComponent() {
return component;
}
< prev index next >