diff --git a/src/share/classes/java/awt/peer/ButtonPeer.java b/src/share/classes/java/awt/peer/ButtonPeer.java index 5b6f43b1d3318110d3858732b8a34efe33071595..8b2190060a536ab48faf29f467fa05d38ab4355b 100644 --- a/src/share/classes/java/awt/peer/ButtonPeer.java +++ b/src/share/classes/java/awt/peer/ButtonPeer.java @@ -25,7 +25,11 @@ package java.awt.peer; +import java.awt.Button; + /** + * The peer interface for {@link Button}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -33,5 +37,14 @@ package java.awt.peer; * instances. */ public interface ButtonPeer extends ComponentPeer { + + /** + * Sets the label that is displayed on the button. Can be {@code null} + * when the button should not display a label. + * + * @param label the label string to set + * + * @see Button#setLabel + */ void setLabel(String label); } diff --git a/src/share/classes/java/awt/peer/CanvasPeer.java b/src/share/classes/java/awt/peer/CanvasPeer.java index 020a931a77e294b82eefe8ac49a757908b383282..bbf6a111086352b8d1d725639de7a91aebd776ec 100644 --- a/src/share/classes/java/awt/peer/CanvasPeer.java +++ b/src/share/classes/java/awt/peer/CanvasPeer.java @@ -24,7 +24,11 @@ */ package java.awt.peer; +import java.awt.Canvas; + /** + * The peer interface for {@link Canvas}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers diff --git a/src/share/classes/java/awt/peer/CheckboxMenuItemPeer.java b/src/share/classes/java/awt/peer/CheckboxMenuItemPeer.java index d7e5a60de3f539a563389c947073d54ba6bf12bc..34b9f85c3210dad98bca8d59ab4936c22d0670eb 100644 --- a/src/share/classes/java/awt/peer/CheckboxMenuItemPeer.java +++ b/src/share/classes/java/awt/peer/CheckboxMenuItemPeer.java @@ -24,7 +24,11 @@ */ package java.awt.peer; +import java.awt.CheckboxMenuItem; + /** + * The peer interface for {@link CheckboxMenuItem}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -32,5 +36,14 @@ package java.awt.peer; * instances. */ public interface CheckboxMenuItemPeer extends MenuItemPeer { + + /** + * Sets the state of the checkbox to be checked ({@code true}) or + * unchecked ({@code false}). + * + * @param t the state to set on the checkbox + * + * @see CheckboxMenuItemPeer#setState(boolean) + */ void setState(boolean t); } diff --git a/src/share/classes/java/awt/peer/CheckboxPeer.java b/src/share/classes/java/awt/peer/CheckboxPeer.java index 64ecf3a91af8b85ea3a4520bd58dce99cae0693d..f2126e20f31e57797b20c9840ea973519b05c9a0 100644 --- a/src/share/classes/java/awt/peer/CheckboxPeer.java +++ b/src/share/classes/java/awt/peer/CheckboxPeer.java @@ -27,6 +27,8 @@ package java.awt.peer; import java.awt.*; /** + * The peer interface for {@link Checkbox}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -34,7 +36,36 @@ import java.awt.*; * instances. */ public interface CheckboxPeer extends ComponentPeer { + + /** + * Sets the state of the checkbox to be checked ({@code true}) or + * unchecked ({@code false}). + * + * @param t the state to set on the checkbox + * + * @see Checkbox#setState(boolean) + */ void setState(boolean state); + + /** + * Sets the checkbox group for this checkbox. Checkboxes in one checkbox + * group can only be selected exclusively (like radio buttons). A value + * of {@code null} removes this checkbox from any checkbox group. + * + * @param g the checkbox group to set, or {@code null} when this + * checkbox should not be placed in any group + * + * @see Checkbox#setCheckboxGroup(CheckboxGroup) + */ void setCheckboxGroup(CheckboxGroup g); + + /** + * Sets the label that should be displayed on the ckeckbox. A value of + * {@code null} means that no label should be displayed. + * + * @param label the label to be displayed on the checkbox, or + * {@code null} when no label should be displayed. + */ void setLabel(String label); + } diff --git a/src/share/classes/java/awt/peer/ChoicePeer.java b/src/share/classes/java/awt/peer/ChoicePeer.java index 7343ff3db914025353b6f70a63b13c4aed8d7a70..7efebdae3fd98479209735adf7a3f5165d9c3926 100644 --- a/src/share/classes/java/awt/peer/ChoicePeer.java +++ b/src/share/classes/java/awt/peer/ChoicePeer.java @@ -24,7 +24,11 @@ */ package java.awt.peer; +import java.awt.Choice; + /** + * The peer interface for {@link Choice}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -32,9 +36,41 @@ package java.awt.peer; * instances. */ public interface ChoicePeer extends ComponentPeer { + + /** + * Adds an item with the string {@code item} to the combo box list + * at index {@code index}. + * + * @param item the label to be added to the list + * @param index the index where to add the item + * + * @see Choice#add(String) + */ void add(String item, int index); + + /** + * Removes the item at index {@code index} from the combo box list. + * + * @param index the index where to remove the item + * + * @see Choice#remove(int) + */ void remove(int index); + + /** + * Removes all items from the combo box list. + * + * @see Choice#removeAll() + */ void removeAll(); + + /** + * Selects the item at index {@code index}. + * + * @param index the index which should be selected + * + * @see Choice#select(int) + */ void select(int index); } diff --git a/src/share/classes/java/awt/peer/ComponentPeer.java b/src/share/classes/java/awt/peer/ComponentPeer.java index 79f4eb8a96437194efbbd9aaf57a0d0b7c855510..e71ab27f7ac7dfe0a48fe80eb15b2d99c3f0b459 100644 --- a/src/share/classes/java/awt/peer/ComponentPeer.java +++ b/src/share/classes/java/awt/peer/ComponentPeer.java @@ -37,6 +37,12 @@ import sun.java2d.pipe.Region; /** + * The peer interface for {@link Component}. This is the top level peer + * interface for widgets and defines the bulk of methods for AWT component + * peers. Most component peers have to implement this interface (via one + * of the subinterfaces), except menu components, which implement + * {@link MenuComponentPeer}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -44,62 +50,474 @@ import sun.java2d.pipe.Region; * instances. */ public interface ComponentPeer { - public static final int SET_LOCATION = 1, - SET_SIZE = 2, - SET_BOUNDS = 3, - SET_CLIENT_SIZE = 4, - RESET_OPERATION = 5, - NO_EMBEDDED_CHECK = (1 << 14), - DEFAULT_OPERATION = SET_BOUNDS; + + /** + * Operation for {@link #setBounds(int, int, int, int, int)}, indicating + * a change in the component location only. + * + * @see #setBounds(int, int, int, int, int) + */ + public static final int SET_LOCATION = 1; + + /** + * Operation for {@link #setBounds(int, int, int, int, int)}, indicating + * a change in the component size only. + * + * @see #setBounds(int, int, int, int, int) + */ + public static final int SET_SIZE = 2; + + /** + * Operation for {@link #setBounds(int, int, int, int, int)}, indicating + * a change in the component size and location. + * + * @see #setBounds(int, int, int, int, int) + */ + public static final int SET_BOUNDS = 3; + + /** + * Operation for {@link #setBounds(int, int, int, int, int)}, indicating + * a change in the component client size. This is used for setting + * the 'inside' size of windows, without the border insets. + * + * @see #setBounds(int, int, int, int, int) + */ + public static final int SET_CLIENT_SIZE = 4; + + /** + * Resets the setBounds() operation to DEFAULT_OPERATION. This is not + * passed into {@link #setBounds(int, int, int, int, int)}. + * + * TODO: This is only used internally and should probably be moved outside + * the peer interface. + * + * @see Component#setBoundsOp + */ + public static final int RESET_OPERATION = 5; + + /** + * A flag that is used to suppress checks for embedded frames. + * + * TODO: This is only used internally and should probably be moved outside + * the peer interface. + */ + public static final int NO_EMBEDDED_CHECK = (1 << 14); + + /** + * The default operation, which is to set size and location. + * + * TODO: This is only used internally and should probably be moved outside + * the peer interface. + * + * @see Component#setBoundsOp + */ + public static final int DEFAULT_OPERATION = SET_BOUNDS; + + /** + * Determines if a component has been obscured, i.e. by an overlapping + * window or similar. This is used by JViewport for optimizing performance. + * This doesn't have to be implemented, when + * {@link #canDetermineObscurity()} returns {@code false}. + * + * @return {@code true} when the component has been obscured, + * {@code false} otherwise + * + * @see #canDetermineObscurity() + * @see javax.swing.JViewport#needsRepaintAfterBlit + */ boolean isObscured(); + + /** + * Returns {@code true} when the peer can determine if a component + * has been obscured, {@code false} false otherwise. + * + * @return {@code true} when the peer can determine if a component + * has been obscured, {@code false} false otherwise + * + * @see #isObscured() + * @see javax.swing.JViewport#needsRepaintAfterBlit + */ boolean canDetermineObscurity(); - void setVisible(boolean b); - void setEnabled(boolean b); - void paint(Graphics g); - void print(Graphics g); - void setBounds(int x, int y, int width, int height, int op); - void handleEvent(AWTEvent e); - void coalescePaintEvent(PaintEvent e); - Point getLocationOnScreen(); - Dimension getPreferredSize(); - Dimension getMinimumSize(); - ColorModel getColorModel(); - Toolkit getToolkit(); - Graphics getGraphics(); - FontMetrics getFontMetrics(Font font); - void dispose(); - void setForeground(Color c); - void setBackground(Color c); - void setFont(Font f); - void updateCursorImmediately(); - boolean requestFocus(Component lightweightChild, - boolean temporary, - boolean focusedWindowChangeAllowed, - long time, CausedFocusEvent.Cause cause); - boolean isFocusable(); - - Image createImage(ImageProducer producer); - Image createImage(int width, int height); - VolatileImage createVolatileImage(int width, int height); - boolean prepareImage(Image img, int w, int h, ImageObserver o); - int checkImage(Image img, int w, int h, ImageObserver o); + + /** + * Makes a component visible or invisible. + * + * @param v {@code true} to make a component visible, + * {@code false} to make it invisible + * + * @see Component#setVisible(boolean) + */ + void setVisible(boolean v); + + /** + * Enables or disables a component. Disabled components are usually grayed + * out and cannot be activated. + * + * @param e {@code true} to enable the component, {@code false} + * to disable it + * + * @see Component#setEnabled(boolean) + */ + void setEnabled(boolean e); + + /** + * Paints the component to the specified graphics context. This is called + * by {@link Component#paintAll(Graphics)} to paint the component. + * + * @param g the graphics context to paint to + * + * @see Component#paintAll(Graphics) + */ + void paint(Graphics g); + + /** + * Prints the component to the specified graphics context. This is called + * by {@link Component#printAll(Graphics)} to print the component. + * + * @param g the graphics context to print to + * + * @see Component#printAll(Graphics) + */ + void print(Graphics g); + + /** + * Sets the location or size or both of the component. The location is + * specified relative to the component's parent. The {@code op} + * parameter specifies which properties change. If it is + * {@link #SET_LOCATION}, then only the location changes (and the size + * parameters can be ignored). If {@code op} is {@link #SET_SIZE}, + * then only the size changes (and the location can be ignored). If + * {@code op} is {@link #SET_BOUNDS}, then both change. There is a + * special value {@link #SET_CLIENT_SIZE}, which is used only for + * window-like components to set the size of the client (i.e. the 'inner' + * size, without the insets of the window borders). + * + * @param x the X location of the component + * @param y the Y location of the component + * @param width the width of the component + * @param height the height of the component + * @param op the operation flag + * + * @see #SET_BOUNDS + * @see #SET_LOCATION + * @see #SET_SIZE + * @see #SET_CLIENT_SIZE + */ + void setBounds(int x, int y, int width, int height, int op); + + /** + * Called to let the component peer handle events. + * + * @param e the AWT event to handle + * + * @see Component#dispatchEvent(AWTEvent) + */ + void handleEvent(AWTEvent e); + + /** + * Called to coalesce paint events. + * + * @param e the paint event to consider to coalesce + * + * @see EventQueue#coalescePaintEvent + */ + void coalescePaintEvent(PaintEvent e); + + /** + * Determines the location of the component on the screen. + * + * @return the location of the component on the screen + * + * @see Component#getLocationOnScreen() + */ + Point getLocationOnScreen(); + + /** + * Determines the preferred size of the component. + * + * @return the preferred size of the component + * + * @see Component#getPreferredSize() + */ + Dimension getPreferredSize(); + + /** + * Determines the minimum size of the component. + * + * @return the minimum size of the component + * + * @see Component#getMinimumSize() + */ + Dimension getMinimumSize(); + + /** + * Returns the color model used by the component. + * + * @return the color model used by the component + * + * @see Component#getColorModel() + */ + ColorModel getColorModel(); + + /** + * Returns the toolkit that is responsible for the component. + * + * @return the toolkit that is responsible for the component + * + * @see Component#getToolkit() + */ + Toolkit getToolkit(); + + /** + * Returns a graphics object to paint on the component. + * + * @return a graphics object to paint on the component + * + * @see Component#getGraphics() + */ + // TODO: Maybe change this to force Graphics2D, since many things will + // break with plain Graphics nowadays. + Graphics getGraphics(); + + /** + * Returns a font metrics object to determine the metrics properties of + * the specified font. + * + * @param font the font to determine the metrics for + * + * @return a font metrics object to determine the metrics properties of + * the specified font + * + * @see Component#getFontMetrics(Font) + */ + FontMetrics getFontMetrics(Font font); + + /** + * Disposes all resources held by the component peer. This is called + * when the component has been disconnected from the component hierarchy + * and is about to be garbage collected. + * + * @see Component#removeNotify() + */ + void dispose(); + + /** + * Sets the foreground color of this component. + * + * @param c the foreground color to set + * + * @see Component#setForeground(Color) + */ + void setForeground(Color c); + + /** + * Sets the background color of this component. + * + * @param c the background color to set + * + * @see Component#setBackground(Color) + */ + void setBackground(Color c); + + /** + * Sets the font of this component. + * + * @param f the font of this component + * + * @see Component#setFont(Font) + */ + void setFont(Font f); + + /** + * Updates the cursor of the component. + * + * @see Component#updateCursorImmediately + */ + void updateCursorImmediately(); + + /** + * Requests focus on this component. + * + * @param lightweightChild the actual lightweight child that requests the + * focus + * @param temporary {@code true} if the focus change is temporary, + * {@code false} otherwise + * @param focusedWindowChangeAllowed {@code true} if changing the + * focus of the containing window is allowed or not + * @param time the time of the focus change request + * @param cause the cause of the focus change request + * + * @return {@code true} if the focus change is guaranteed to be + * granted, {@code false} otherwise + */ + boolean requestFocus(Component lightweightChild, boolean temporary, + boolean focusedWindowChangeAllowed, long time, + CausedFocusEvent.Cause cause); + + /** + * Returns {@code true} when the component takes part in the focus + * traversal, {@code false} otherwise. + * + * @return {@code true} when the component takes part in the focus + * traversal, {@code false} otherwise + */ + boolean isFocusable(); + + /** + * Creates an image using the specified image producer. + * + * @param producer the image producer from which the image pixels will be + * produced + * + * @return the created image + * + * @see Component#createImage(ImageProducer) + */ + Image createImage(ImageProducer producer); + + /** + * Creates an empty image with the specified width and height. This is + * generally used as a non-accelerated backbuffer for drawing onto the + * component (e.g. by Swing). + * + * @param width the width of the image + * @param height the height of the image + * + * @return the created image + * + * @see Component#createImage(int, int) + */ + // TODO: Maybe make that return a BufferedImage, because some stuff will + // break if a different kind of image is returned. + Image createImage(int width, int height); + + /** + * Creates an empty volatile image with the specified width and height. + * This is generally used as an accelerated backbuffer for drawing onto + * the component (e.g. by Swing). + * + * @param width the width of the image + * @param height the height of the image + * + * @return the created volatile image + * + * @see Component#createVolatileImage(int, int) + */ + // TODO: Include capabilities here and fix Component#createVolatileImage + VolatileImage createVolatileImage(int width, int height); + + /** + * Prepare the specified image for rendering on this component. This should + * start loading the image (if not already loaded) and create an + * appropriate screen representation. + * + * @param img the image to prepare + * @param w the width of the screen representation + * @param h the height of the screen representation + * @param o an image observer to observe the progress + * + * @return {@code true} if the image is already fully prepared, + * {@code false} otherwise + * + * @see Component#prepareImage(Image, int, int, ImageObserver) + */ + boolean prepareImage(Image img, int w, int h, ImageObserver o); + + /** + * Determines the status of the construction of the screen representaion + * of the specified image. + * + * @param img the image to check + * @param w the target width + * @param h the target height + * @param o the image observer to notify + * + * @return the status as bitwise ORed ImageObserver flags + * + * @see Component#checkImage(Image, int, int, ImageObserver) + */ + int checkImage(Image img, int w, int h, ImageObserver o); + + /** + * Returns the graphics configuration that corresponds to this component. + * + * @return the graphics configuration that corresponds to this component + * + * @see Component#getGraphicsConfiguration() + */ GraphicsConfiguration getGraphicsConfiguration(); - boolean handlesWheelScrolling(); - void createBuffers(int numBuffers, BufferCapabilities caps) throws AWTException; + + /** + * Determines if the component handles wheel scrolling itself. Otherwise + * it is delegated to the component's parent. + * + * @return {@code true} if the component handles wheel scrolling, + * {@code false} otherwise + * + * @see Component#dispatchEventImpl(AWTEvent) + */ + boolean handlesWheelScrolling(); + + /** + * Create {@code numBuffers} flipping buffers with the specified + * buffer capabilities. + * + * @param numBuffers the number of buffers to create + * @param caps the buffer capabilities + * + * @throws AWTException if flip buffering is not supported + * + * @see Component.FlipBufferStrategy#createBuffers + */ + void createBuffers(int numBuffers, BufferCapabilities caps) + throws AWTException; + + /** + * Returns the back buffer as image. + * + * @return the back buffer as image + * + * @see Component.FlipBufferStrategy#getBackBuffer + */ Image getBackBuffer(); + + /** + * Move the back buffer to the front buffer. + * + * @param x1 the area to be flipped, upper left X coordinate + * @param y1 the area to be flipped, upper left Y coordinate + * @param x2 the area to be flipped, lower right X coordinate + * @param y2 the area to be flipped, lower right Y coordinate + * @param flipAction the flip action to perform + * + * @see Component.FlipBufferStrategy#flip + */ void flip(int x1, int y1, int x2, int y2, BufferCapabilities.FlipContents flipAction); + + /** + * Destroys all created buffers. + * + * @see Component.FlipBufferStrategy#destroyBuffers + */ void destroyBuffers(); /** - * Reparents this peer to the new parent referenced by newContainer peer - * Implementation depends on toolkit and container. + * Reparents this peer to the new parent referenced by + * {@code newContainer} peer. Implementation depends on toolkit and + * container. + * * @param newContainer peer of the new parent container + * * @since 1.5 */ void reparent(ContainerPeer newContainer); + /** - * Returns whether this peer supports reparenting to another parent withour destroying the peer + * Returns whether this peer supports reparenting to another parent without + * destroying the peer. + * * @return true if appropriate reparent is supported, false otherwise + * * @since 1.5 */ boolean isReparentSupported(); @@ -108,12 +526,16 @@ public interface ComponentPeer { * Used by lightweight implementations to tell a ComponentPeer to layout * its sub-elements. For instance, a lightweight Checkbox needs to layout * the box, as well as the text label. + * + * @see Component#validate() */ - void layout(); + void layout(); /** * Applies the shape to the native component window. * @since 1.7 + * + * @see Component#applyCompoundShape */ void applyShape(Region shape); diff --git a/src/share/classes/java/awt/peer/ContainerPeer.java b/src/share/classes/java/awt/peer/ContainerPeer.java index cda790a60480e6250c154403f1f195121e764e1a..092a54f2a24b9d5ed372be212c386dd115e6cea3 100644 --- a/src/share/classes/java/awt/peer/ContainerPeer.java +++ b/src/share/classes/java/awt/peer/ContainerPeer.java @@ -27,6 +27,9 @@ package java.awt.peer; import java.awt.*; /** + * The peer interface for {@link Container}. This is the parent interface + * for all container like widgets. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -34,21 +37,59 @@ import java.awt.*; * instances. */ public interface ContainerPeer extends ComponentPeer { + + /** + * Returns the insets of this container. Insets usually is the space that + * is occupied by things like borders. + * + * @return the insets of this container + */ Insets getInsets(); + + /** + * Notifies the peer that validation of the component tree is about to + * begin. + * + * @see Container#validate() + */ void beginValidate(); + + /** + * Notifies the peer that validation of the component tree is finished. + * + * @see Container#validate() + */ void endValidate(); + + /** + * Notifies the peer that layout is about to begin. This is called + * before the container itself and its children are laid out. + * + * @see Container#validateTree() + */ void beginLayout(); + + /** + * Notifies the peer that layout is finished. This is called after the + * container and its children have been laid out. + * + * @see Container#validateTree() + */ void endLayout(); /** - * Restacks native windows - children of this native window - according to Java container order + * Restacks native windows - children of this native window - according to + * Java container order. + * * @since 1.5 */ void restack(); /** - * Indicates availabiltity of restacking operation in this container. + * Indicates availability of restacking operation in this container. + * * @return Returns true if restack is supported, false otherwise + * * @since 1.5 */ boolean isRestackSupported(); diff --git a/src/share/classes/java/awt/peer/DesktopPeer.java b/src/share/classes/java/awt/peer/DesktopPeer.java index e0e5ad2ad62bf3556a667e526099199c04ebeab4..1b2d1bdb87b73a1f56cefb202e3d98c5886ea6f9 100644 --- a/src/share/classes/java/awt/peer/DesktopPeer.java +++ b/src/share/classes/java/awt/peer/DesktopPeer.java @@ -32,7 +32,7 @@ import java.net.URI; import java.awt.Desktop.Action; /** - * The DesktopPeer interface provides methods for the operation + * The {@code DesktopPeer} interface provides methods for the operation * of open, edit, print, browse and mail with the given URL or file, by * launching the associated application. *

@@ -40,14 +40,15 @@ import java.awt.Desktop.Action; * */ public interface DesktopPeer { + /** * Returns whether the given action is supported on the current platform. * @param action the action type to be tested if it's supported on the * current platform. - * @return true if the given action is supported on - * the current platform; false otherwise. + * @return {@code true} if the given action is supported on + * the current platform; {@code false} otherwise. */ - public boolean isSupported(Action action); + boolean isSupported(Action action); /** * Launches the associated application to open the given file. The @@ -58,7 +59,7 @@ public interface DesktopPeer { * @throws IOException If the given file has no associated application, * or the associated application fails to be launched. */ - public void open(File file) throws IOException; + void open(File file) throws IOException; /** * Launches the associated editor and opens the given file for editing. The @@ -69,7 +70,7 @@ public interface DesktopPeer { * @throws IOException If the given file has no associated editor, or * the associated application fails to be launched. */ - public void edit(File file) throws IOException; + void edit(File file) throws IOException; /** * Prints the given file with the native desktop printing facility, using @@ -79,7 +80,7 @@ public interface DesktopPeer { * @throws IOException If the given file has no associated application * that can be used to print it. */ - public void print(File file) throws IOException; + void print(File file) throws IOException; /** * Launches the mail composing window of the user default mail client, @@ -93,7 +94,7 @@ public interface DesktopPeer { * @throws IOException If the user default mail client is not found, * or it fails to be launched. */ - public void mail(URI mailtoURL) throws IOException; + void mail(URI mailtoURL) throws IOException; /** * Launches the user default browser to display the given URI. @@ -102,5 +103,5 @@ public interface DesktopPeer { * @throws IOException If the user default browser is not found, * or it fails to be launched. */ - public void browse(URI url) throws IOException; + void browse(URI url) throws IOException; } diff --git a/src/share/classes/java/awt/peer/DialogPeer.java b/src/share/classes/java/awt/peer/DialogPeer.java index 7c08206d4f495c8a4b3979160a6168202eea8c72..27ac26ffff027757524767226a0bd3ef6b462d14 100644 --- a/src/share/classes/java/awt/peer/DialogPeer.java +++ b/src/share/classes/java/awt/peer/DialogPeer.java @@ -28,6 +28,9 @@ package java.awt.peer; import java.awt.*; /** + * The peer interface for {@link Dialog}. This adds a couple of dialog specific + * features to the {@link WindowPeer} interface. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -35,7 +38,33 @@ import java.awt.*; * instances. */ public interface DialogPeer extends WindowPeer { + + /** + * Sets the title on the dialog window. + * + * @param title the title to set + * + * @see Dialog#setTitle(String) + */ void setTitle(String title); + + /** + * Sets if the dialog should be resizable or not. + * + * @param resizeable {@code true} when the dialog should be resizable, + * {@code false} if not + * + * @see Dialog#setResizable(boolean) + */ void setResizable(boolean resizeable); + + /** + * Block the specified windows. This is used for modal dialogs. + * + * @param windows the windows to block + * + * @see Dialog#modalShow() + * @see Dialog#blockWindows() + */ void blockWindows(java.util.List windows); } diff --git a/src/share/classes/java/awt/peer/FileDialogPeer.java b/src/share/classes/java/awt/peer/FileDialogPeer.java index d4a326a4e54e0c62e9771eada1ba1b4887ebf30e..29fc4fdb5affaac0814ddd36fb701148940aa948 100644 --- a/src/share/classes/java/awt/peer/FileDialogPeer.java +++ b/src/share/classes/java/awt/peer/FileDialogPeer.java @@ -25,9 +25,12 @@ package java.awt.peer; +import java.awt.FileDialog; import java.io.FilenameFilter; /** + * The peer interface for {@link FileDialog}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -35,7 +38,32 @@ import java.io.FilenameFilter; * instances. */ public interface FileDialogPeer extends DialogPeer { + + /** + * Sets the selected file for this file dialog. + * + * @param file the file to set as selected file, or {@code null} for + * no selected file + * + * @see FileDialog#setFile(String) + */ void setFile(String file); + + /** + * Sets the current directory for this file dialog. + * + * @param dir the directory to set + * + * @see FileDialog#setDirectory(String) + */ void setDirectory(String dir); + + /** + * Sets the filename filter for filtering the displayed files. + * + * @param filter the filter to set + * + * @see FileDialog#setFilenameFilter(FilenameFilter) + */ void setFilenameFilter(FilenameFilter filter); } diff --git a/src/share/classes/java/awt/peer/FontPeer.java b/src/share/classes/java/awt/peer/FontPeer.java index 471c3fd1fceb96d8c829d50fced26e797e41d2f0..63a592692e1db7f48690f1a66ef73ded863c0801 100644 --- a/src/share/classes/java/awt/peer/FontPeer.java +++ b/src/share/classes/java/awt/peer/FontPeer.java @@ -26,6 +26,9 @@ package java.awt.peer; /** + * The peer interface for fonts. This is only a marker interface and not + * used by AWT itself. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers diff --git a/src/share/classes/java/awt/peer/FramePeer.java b/src/share/classes/java/awt/peer/FramePeer.java index 76f0080f7f93597a6ff7ea8e1dd5c572d0acdb37..942b92cc8523e184c5b8a7f410fc3c48cc93f26b 100644 --- a/src/share/classes/java/awt/peer/FramePeer.java +++ b/src/share/classes/java/awt/peer/FramePeer.java @@ -27,7 +27,12 @@ package java.awt.peer; import java.awt.*; +import sun.awt.EmbeddedFrame; + /** + * The peer interface for {@link Frame}. This adds a couple of frame specific + * methods to the {@link WindowPeer} interface. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -35,12 +40,89 @@ import java.awt.*; * instances. */ public interface FramePeer extends WindowPeer { + + /** + * Sets the title on the frame. + * + * @param title the title to set + * + * @see Frame#setTitle(String) + */ void setTitle(String title); + + /** + * Sets the menu bar for the frame. + * + * @param mb the menu bar to set + * + * @see Frame#setMenuBar(MenuBar) + */ void setMenuBar(MenuBar mb); + + /** + * Sets if the frame should be resizable or not. + * + * @param resizeable {@code true} when the frame should be resizable, + * {@code false} if not + * + * @see Frame#setResizable(boolean) + */ void setResizable(boolean resizeable); + + /** + * Changes the state of the frame. + * + * @param state the new state + * + * @see Frame#setExtendedState(int) + */ void setState(int state); - int getState(); - void setMaximizedBounds(Rectangle bounds); // XXX + + /** + * Returns the current state of the frame. + * + * @return the current state of the frame + * + * @see Frame#getExtendedState() + */ + int getState(); + + /** + * Sets the bounds of the frame when it becomes maximized. + * + * @param bounds the maximized bounds of the frame + * + * @see Frame#setMaximizedBounds(Rectangle) + */ + void setMaximizedBounds(Rectangle bounds); + + /** + * Sets the size and location for embedded frames. (On embedded frames, + * setLocation() and setBounds() always set the frame to (0,0) for + * backwards compatibility. + * + * @param x the X location + * @param y the Y location + * @param width the width of the frame + * @param height the height of the frame + * + * @see EmbeddedFrame#setBoundsPrivate(int, int, int, int) + */ + // TODO: This is only used in EmbeddedFrame, and should probably be moved + // into an EmbeddedFramePeer which would extend FramePeer void setBoundsPrivate(int x, int y, int width, int height); + + /** + * Returns the size and location for embedded frames. (On embedded frames, + * setLocation() and setBounds() always set the frame to (0,0) for + * backwards compatibility. + * + * @return the bounds of an embedded frame + * + * @see EmbeddedFrame#getBoundsPrivate() + */ + // TODO: This is only used in EmbeddedFrame, and should probably be moved + // into an EmbeddedFramePeer which would extend FramePeer Rectangle getBoundsPrivate(); + } diff --git a/src/share/classes/java/awt/peer/KeyboardFocusManagerPeer.java b/src/share/classes/java/awt/peer/KeyboardFocusManagerPeer.java index f00db93415e9f81ad110fc4aab9ef96937c070f4..e465de83e2cc5e32a2cddc6d7f468bbdcab7b698 100644 --- a/src/share/classes/java/awt/peer/KeyboardFocusManagerPeer.java +++ b/src/share/classes/java/awt/peer/KeyboardFocusManagerPeer.java @@ -28,11 +28,45 @@ package java.awt.peer; import java.awt.Component; import java.awt.Window; +/** + * The native peer interface for {@link KeyboardFocusManager}. + */ public interface KeyboardFocusManagerPeer { + + /** + * Returns the currently focused window. + * + * @return the currently focused window + * + * @see KeyboardFocusManager#getNativeFocusedWindow() + */ Window getCurrentFocusedWindow(); + /** + * Sets the component that should become the focus owner. + * + * @param comp the component to become the focus owner + * + * @see KeyboardFocusManager#setNativeFocusOwner(Component) + */ void setCurrentFocusOwner(Component comp); + + /** + * Returns the component that currently owns the input focus. + * + * @return the component that currently owns the input focus + * + * @see KeyboardFocusManager#getNativeFocusOwner() + */ Component getCurrentFocusOwner(); + /** + * Clears the current global focus owner. + * + * @param activeWindow + * + * @see KeyboardFocusManager#clearGlobalFocusOwner() + */ void clearGlobalFocusOwner(Window activeWindow); + } diff --git a/src/share/classes/java/awt/peer/LabelPeer.java b/src/share/classes/java/awt/peer/LabelPeer.java index 3952605581d8c4128dd274cd29c3d594673284f2..5421d56e46eb34ee2ce1cb79a3cbc5126d6f4ef3 100644 --- a/src/share/classes/java/awt/peer/LabelPeer.java +++ b/src/share/classes/java/awt/peer/LabelPeer.java @@ -24,7 +24,11 @@ */ package java.awt.peer; +import java.awt.Label; + /** + * The peer interface for {@link Label}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -32,6 +36,25 @@ package java.awt.peer; * instances. */ public interface LabelPeer extends ComponentPeer { + + /** + * Sets the text to be displayed on the label. + * + * @param label the text to be displayed on the label + * + * @see Label#setText + */ void setText(String label); + + /** + * Sets the alignment of the label text. + * + * @param alignment the alignment of the label text + * + * @see Label#setAlignment(int) + * @see Label#CENTER + * @see Label#RIGHT + * @see Label#LEFT + */ void setAlignment(int alignment); } diff --git a/src/share/classes/java/awt/peer/ListPeer.java b/src/share/classes/java/awt/peer/ListPeer.java index 16548df6a19e73428e613b19e436bb5c1f7f856f..87ce55b1cc497ed9a4931ffcc4cae32cc27d246e 100644 --- a/src/share/classes/java/awt/peer/ListPeer.java +++ b/src/share/classes/java/awt/peer/ListPeer.java @@ -25,8 +25,11 @@ package java.awt.peer; import java.awt.Dimension; +import java.awt.List; /** + * The peer interface for {@link List}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -34,15 +37,102 @@ import java.awt.Dimension; * instances. */ public interface ListPeer extends ComponentPeer { + + /** + * Returns the indices of the list items that are currently selected. + * The returned array is not required to be a copy, the callers of this + * method already make sure it is not modified. + * + * @return the indices of the list items that are currently selected + * + * @see List#getSelectedIndexes() + */ int[] getSelectedIndexes(); + + /** + * Adds an item to the list at the specified index. + * + * @param item the item to add to the list + * @param index the index where to add the item into the list + * + * @see List#add(String, int) + */ void add(String item, int index); + + /** + * Deletes items from the list. All items from start to end should are + * deleted, including the item at the start and end indices. + * + * @param start the first item to be deleted + * @param end the last item to be deleted + */ void delItems(int start, int end); + + /** + * Removes all items from the list. + * + * @see List#removeAll() + */ void removeAll(); + + /** + * Selects the item at the specified {@code index}. + * + * @param index the index of the item to select + * + * @see List#select(int) + */ void select(int index); + + /** + * De-selects the item at the specified {@code index}. + * + * @param index the index of the item to de-select + * + * @see List#deselect(int) + */ void deselect(int index); + + /** + * Makes sure that the item at the specified {@code index} is visible, + * by scrolling the list or similar. + * + * @param index the index of the item to make visible + * + * @see List#makeVisible(int) + */ void makeVisible(int index); - void setMultipleMode(boolean b); + + /** + * Toggles multiple selection mode on or off. + * + * @param m {@code true} for multiple selection mode, + * {@code false} for single selection mode + * + * @see List#setMultipleMode(boolean) + */ + void setMultipleMode(boolean m); + + /** + * Returns the preferred size for a list with the specified number of rows. + * + * @param rows the number of rows + * + * @return the preferred size of the list + * + * @see List#getPreferredSize(int) + */ Dimension getPreferredSize(int rows); + + /** + * Returns the minimum size for a list with the specified number of rows. + * + * @param rows the number of rows + * + * @return the minimum size of the list + * + * @see List#getMinimumSize(int) + */ Dimension getMinimumSize(int rows); } diff --git a/src/share/classes/java/awt/peer/MenuBarPeer.java b/src/share/classes/java/awt/peer/MenuBarPeer.java index 41b6e30b6f15e27fdae006312200ed6d569c68bc..fd3a73fd5ad52fd52e43bb896bb096d18bd7b97e 100644 --- a/src/share/classes/java/awt/peer/MenuBarPeer.java +++ b/src/share/classes/java/awt/peer/MenuBarPeer.java @@ -25,8 +25,11 @@ package java.awt.peer; import java.awt.Menu; +import java.awt.MenuBar; /** + * The peer interface for {@link MenuBar}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -34,7 +37,31 @@ import java.awt.Menu; * instances. */ public interface MenuBarPeer extends MenuComponentPeer { + + /** + * Adds a menu to the menu bar. + * + * @param m the menu to add + * + * @see MenuBar#add(Menu) + */ void addMenu(Menu m); + + /** + * Deletes a menu from the menu bar. + * + * @param index the index of the menu to remove + * + * @see MenuBar#remove(int) + */ void delMenu(int index); + + /** + * Adds a help menu to the menu bar. + * + * @param m the help menu to add + * + * @see MenuBar#setHelpMenu(Menu) + */ void addHelpMenu(Menu m); } diff --git a/src/share/classes/java/awt/peer/MenuComponentPeer.java b/src/share/classes/java/awt/peer/MenuComponentPeer.java index 83e43e7715caf7083b3a6977d8f9aaed19ab563e..fa20a4d494f4f782f804825dfae5965bc0a811b8 100644 --- a/src/share/classes/java/awt/peer/MenuComponentPeer.java +++ b/src/share/classes/java/awt/peer/MenuComponentPeer.java @@ -25,8 +25,12 @@ package java.awt.peer; import java.awt.Font; +import java.awt.MenuComponent; /** + * The base interface for all kinds of menu components. This is used by + * {@link MenuComponent}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -34,6 +38,20 @@ import java.awt.Font; * instances. */ public interface MenuComponentPeer { + + /** + * Disposes the menu component. + * + * @see MenuComponent#removeNotify() + */ void dispose(); + + /** + * Sets the font for the menu component. + * + * @param f the font to use for the menu component + * + * @see MenuComponent#setFont(Font) + */ void setFont(Font f); } diff --git a/src/share/classes/java/awt/peer/MenuItemPeer.java b/src/share/classes/java/awt/peer/MenuItemPeer.java index 51a52d993c3c6a66a2dd805d4a7962c278bf2aa1..7551bd55203133a9b53b4aa94d642956a7cc5ccb 100644 --- a/src/share/classes/java/awt/peer/MenuItemPeer.java +++ b/src/share/classes/java/awt/peer/MenuItemPeer.java @@ -24,7 +24,11 @@ */ package java.awt.peer; +import java.awt.MenuItem; + /** + * The peer interface for menu items. This is used by {@link MenuItem}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -32,7 +36,20 @@ package java.awt.peer; * instances. */ public interface MenuItemPeer extends MenuComponentPeer { + + /** + * Sets the label to be displayed in this menu item. + * + * @param label the label to be displayed + */ void setLabel(String label); - void setEnabled(boolean b); + + /** + * Enables or disables the menu item. + * + * @param e {@code true} to enable the menu item, {@code false} + * to disable it + */ + void setEnabled(boolean e); } diff --git a/src/share/classes/java/awt/peer/MenuPeer.java b/src/share/classes/java/awt/peer/MenuPeer.java index 9e941aabeaabd6841180205dfb7d2239a99b3388..2b399ef6a57b626eebbfb184197a5029a4a73f42 100644 --- a/src/share/classes/java/awt/peer/MenuPeer.java +++ b/src/share/classes/java/awt/peer/MenuPeer.java @@ -24,9 +24,12 @@ */ package java.awt.peer; +import java.awt.Menu; import java.awt.MenuItem; /** + * The peer interface for menus. This is used by {@link Menu}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -34,7 +37,29 @@ import java.awt.MenuItem; * instances. */ public interface MenuPeer extends MenuItemPeer { + + /** + * Adds a separator (e.g. a horizontal line or similar) to the menu. + * + * @see Menu#addSeparator() + */ void addSeparator(); + + /** + * Adds the specified menu item to the menu. + * + * @param item the menu item to add + * + * @see Menu#add(MenuItem) + */ void addItem(MenuItem item); + + /** + * Removes the menu item at the specified index. + * + * @param index the index of the item to remove + * + * @see Menu#remove(int) + */ void delItem(int index); } diff --git a/src/share/classes/java/awt/peer/MouseInfoPeer.java b/src/share/classes/java/awt/peer/MouseInfoPeer.java index 3e1cd536022d9d7f5edce4856a21106e15c7437f..c3297943eeff3485933ab4fe792323d364815f9c 100644 --- a/src/share/classes/java/awt/peer/MouseInfoPeer.java +++ b/src/share/classes/java/awt/peer/MouseInfoPeer.java @@ -29,6 +29,9 @@ import java.awt.Window; import java.awt.Point; /** + * Peer interface for {@link MouseInfo}. This is used to get some additional + * information about the mouse. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers diff --git a/src/share/classes/java/awt/peer/PanelPeer.java b/src/share/classes/java/awt/peer/PanelPeer.java index bb123adc98cf167d50838e6e6235dca49d6de185..1b443bcb78623756ea3441e8dad422d120363207 100644 --- a/src/share/classes/java/awt/peer/PanelPeer.java +++ b/src/share/classes/java/awt/peer/PanelPeer.java @@ -25,6 +25,10 @@ package java.awt.peer; /** + * The peer interface for {@link Panel}. This is a subinterface of + * ContainerPeer and does not declare any additional methods because a Panel + * is just that, a concrete Container. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers diff --git a/src/share/classes/java/awt/peer/PopupMenuPeer.java b/src/share/classes/java/awt/peer/PopupMenuPeer.java index 1bad6bc09881d7161e08eca1d67f57da43d1b6a4..16eeb1fb2febcbc55851f7969362d2361895e3e1 100644 --- a/src/share/classes/java/awt/peer/PopupMenuPeer.java +++ b/src/share/classes/java/awt/peer/PopupMenuPeer.java @@ -25,8 +25,11 @@ package java.awt.peer; import java.awt.Event; +import java.awt.PopupMenu; /** + * The peer interface for {@link PopupMenu}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -34,5 +37,14 @@ import java.awt.Event; * instances. */ public interface PopupMenuPeer extends MenuPeer { + + /** + * Shows the popup menu. + * + * @param e a synthetic event describing the origin and location of the + * popup menu + * + * @see PopupMenu#show(java.awt.Component, int, int) + */ void show(Event e); } diff --git a/src/share/classes/java/awt/peer/RobotPeer.java b/src/share/classes/java/awt/peer/RobotPeer.java index 78474b09deca28a13da01e44376cfced9fb271fa..ce50ed587959ae34205143b7a8702d8a1bead8e4 100644 --- a/src/share/classes/java/awt/peer/RobotPeer.java +++ b/src/share/classes/java/awt/peer/RobotPeer.java @@ -39,18 +39,93 @@ import java.awt.*; */ public interface RobotPeer { - public void mouseMove(int x, int y); - public void mousePress(int buttons); - public void mouseRelease(int buttons); + /** + * Moves the mouse pointer to the specified screen location. + * + * @param x the X location on screen + * @param y the Y location on screen + * + * @see Robot#mouseMove(int, int) + */ + void mouseMove(int x, int y); - public void mouseWheel(int wheelAmt); + /** + * Simulates a mouse press with the specified button(s). + * + * @param buttons the button mask + * + * @see Robot#mousePress(int) + */ + void mousePress(int buttons); - public void keyPress(int keycode); - public void keyRelease(int keycode); + /** + * Simulates a mouse release with the specified button(s). + * + * @param buttons the button mask + * + * @see Robot#mouseRelease(int) + */ + void mouseRelease(int buttons); - public int getRGBPixel(int x, int y); - public int [] getRGBPixels(Rectangle bounds); + /** + * Simulates mouse wheel action. + * + * @param wheelAmt number of notches to move the mouse wheel + * + * @see Robot#mouseWheel(int) + */ + void mouseWheel(int wheelAmt); - public void dispose(); - public int getNumberOfButtons(); + /** + * Simulates a key press of the specified key. + * + * @param keycode the key code to press + * + * @see Robot#keyPress(int) + */ + void keyPress(int keycode); + + /** + * Simulates a key release of the specified key. + * + * @param keycode the key code to release + * + * @see Robot#keyRelease(int) + */ + void keyRelease(int keycode); + + /** + * Gets the RGB value of the specified pixel on screen. + * + * @param x the X screen coordinate + * @param y the Y screen coordinate + * + * @return the RGB value of the specified pixel on screen + * + * @see Robot#getPixelColor(int, int) + */ + int getRGBPixel(int x, int y); + + /** + * Gets the RGB values of the specified screen area as an array. + * + * @param bounds the screen area to capture the RGB values from + * + * @return the RGB values of the specified screen area + * + * @see Robot#createScreenCapture(Rectangle) + */ + int[] getRGBPixels(Rectangle bounds); + + /** + * Disposes the robot peer when it is not needed anymore. + */ + void dispose(); + + /** + * Returns the number of buttons that the robot simulates. + * + * @return the number of buttons that the robot simulates + */ + int getNumberOfButtons(); } diff --git a/src/share/classes/java/awt/peer/ScrollPanePeer.java b/src/share/classes/java/awt/peer/ScrollPanePeer.java index 0097bdeb3e88dd22bb62965e529ed54b821344f1..b6529afe6dc2649aa6af81927dd5358dcefaa8d0 100644 --- a/src/share/classes/java/awt/peer/ScrollPanePeer.java +++ b/src/share/classes/java/awt/peer/ScrollPanePeer.java @@ -25,8 +25,12 @@ package java.awt.peer; import java.awt.Adjustable; +import java.awt.ScrollPane; +import java.awt.ScrollPaneAdjustable; /** + * The peer interface for {@link ScrollPane}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -34,10 +38,60 @@ import java.awt.Adjustable; * instances. */ public interface ScrollPanePeer extends ContainerPeer { + + /** + * Returns the height of the horizontal scroll bar. + * + * @return the height of the horizontal scroll bar + * + * @see ScrollPane#getHScrollbarHeight() + */ int getHScrollbarHeight(); + + /** + * Returns the width of the vertical scroll bar. + * + * @return the width of the vertical scroll bar + * + * @see ScrollPane#getVScrollbarWidth() + */ int getVScrollbarWidth(); + + /** + * Sets the scroll position of the child. + * + * @param x the X coordinate of the scroll position + * @param y the Y coordinate of the scroll position + * + * @see ScrollPane#setScrollPosition(int, int) + */ void setScrollPosition(int x, int y); + + /** + * Called when the child component changes its size. + * + * @param w the new width of the child component + * @param h the new height of the child component + * + * @see ScrollPane#layout() + */ void childResized(int w, int h); + + /** + * Sets the unit increment of one of the scroll pane's adjustables. + * + * @param adj the scroll pane adjustable object + * @param u the unit increment + * + * @see ScrollPaneAdjustable#setUnitIncrement(int) + */ void setUnitIncrement(Adjustable adj, int u); + + /** + * Sets the value for one of the scroll pane's adjustables. + * + * @param adj the scroll pane adjustable object + * @param v the value to set + */ void setValue(Adjustable adj, int v); } diff --git a/src/share/classes/java/awt/peer/ScrollbarPeer.java b/src/share/classes/java/awt/peer/ScrollbarPeer.java index e3b11139ed8764697166b1c48b83be8477c5b6ab..c9e1b49dd452f3f50fcc9c1e7037dbc21953d9f2 100644 --- a/src/share/classes/java/awt/peer/ScrollbarPeer.java +++ b/src/share/classes/java/awt/peer/ScrollbarPeer.java @@ -24,7 +24,11 @@ */ package java.awt.peer; +import java.awt.Scrollbar; + /** + * The peer interface for {@link Scrollbar}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -32,7 +36,34 @@ package java.awt.peer; * instances. */ public interface ScrollbarPeer extends ComponentPeer { + + /** + * Sets the parameters for the scrollbar. + * + * @param value the current value + * @param visible how much of the whole scale is visible + * @param minimum the minimum value + * @param maximum the maximum value + * + * @see Scrollbar#setValues(int, int, int, int) + */ void setValues(int value, int visible, int minimum, int maximum); + + /** + * Sets the line increment of the scrollbar. + * + * @param l the line increment + * + * @see Scrollbar#setLineIncrement(int) + */ void setLineIncrement(int l); + + /** + * Sets the page increment of the scrollbar. + * + * @param l the page increment + * + * @see Scrollbar#setPageIncrement(int) + */ void setPageIncrement(int l); } diff --git a/src/share/classes/java/awt/peer/SystemTrayPeer.java b/src/share/classes/java/awt/peer/SystemTrayPeer.java index 883e2459061d477045adbc9d0c138907c030fc8c..30ce90ac42e0c69b2f86e34c5a30c292c1571873 100644 --- a/src/share/classes/java/awt/peer/SystemTrayPeer.java +++ b/src/share/classes/java/awt/peer/SystemTrayPeer.java @@ -26,7 +26,20 @@ package java.awt.peer; import java.awt.Dimension; +import java.awt.SystemTray; +/** + * The peer interface for {@link SystemTray}. This doesn't need to be + * implemented if {@link SystemTray#isSupported()} returns false. + */ public interface SystemTrayPeer { + + /** + * Returns the size of the system tray icon. + * + * @return the size of the system tray icon + * + * @see SystemTray#getTrayIconSize() + */ Dimension getTrayIconSize(); } diff --git a/src/share/classes/java/awt/peer/TextAreaPeer.java b/src/share/classes/java/awt/peer/TextAreaPeer.java index a73068c04af14e5fd6e1cadc79397cc2b6d37ecc..0dcafb5899f4767555585afbfe67a1dc44b8f063 100644 --- a/src/share/classes/java/awt/peer/TextAreaPeer.java +++ b/src/share/classes/java/awt/peer/TextAreaPeer.java @@ -25,8 +25,11 @@ package java.awt.peer; import java.awt.Dimension; +import java.awt.TextArea; /** + * The peer interface for {@link TexTArea}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -34,9 +37,52 @@ import java.awt.Dimension; * instances. */ public interface TextAreaPeer extends TextComponentPeer { + + /** + * Inserts the specified text at the specified position in the document. + * + * @param text the text to insert + * @param pos the position to insert + * + * @see TextArea#insert(String, int) + */ void insert(String text, int pos); + + /** + * Replaces a range of text by the specified string + * + * @param text the replacement string + * @param start the begin of the range to replace + * @param end the end of the range to replace + * + * @see TextArea#replaceRange(String, int, int) + */ void replaceRange(String text, int start, int end); + + /** + * Returns the preferred size of a textarea with the specified number of + * columns and rows. + * + * @param rows the number of rows + * @param columns the number of columns + * + * @return the preferred size of a textarea + * + * @see TextArea#getPreferredSize(int, int) + */ Dimension getPreferredSize(int rows, int columns); + + /** + * Returns the minimum size of a textarea with the specified number of + * columns and rows. + * + * @param rows the number of rows + * @param columns the number of columns + * + * @return the minimum size of a textarea + * + * @see TextArea#getMinimumSize(int, int) + */ Dimension getMinimumSize(int rows, int columns); } diff --git a/src/share/classes/java/awt/peer/TextComponentPeer.java b/src/share/classes/java/awt/peer/TextComponentPeer.java index cd318092b7de384491c9f6b23b01bde30cf67dc0..35228e5753de39c9e93b17f42eed998b587519a6 100644 --- a/src/share/classes/java/awt/peer/TextComponentPeer.java +++ b/src/share/classes/java/awt/peer/TextComponentPeer.java @@ -24,9 +24,12 @@ */ package java.awt.peer; +import java.awt.TextComponent; import java.awt.im.InputMethodRequests; /** + * The peer interface for {@link TextComponent}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -34,13 +37,85 @@ import java.awt.im.InputMethodRequests; * instances. */ public interface TextComponentPeer extends ComponentPeer { + + /** + * Sets if the text component should be editable or not. + * + * @param editable {@code true} for editable text components, + * {@code false} for non-editable text components + * + * @see TextComponent#setEditable(boolean) + */ void setEditable(boolean editable); + + /** + * Returns the current content of the text component. + * + * @return the current content of the text component + * + * @see TextComponent#getText() + */ String getText(); + + /** + * Sets the content for the text component. + * + * @param l the content to set + * + * @see TextComponent#setText(String) + */ void setText(String l); + + /** + * Returns the start index of the current selection. + * + * @return the start index of the current selection + * + * @see TextComponent#getSelectionStart() + */ int getSelectionStart(); + + /** + * Returns the end index of the current selection. + * + * @return the end index of the current selection + * + * @see TextComponent#getSelectionEnd() + */ int getSelectionEnd(); + + /** + * Selects an area of the text component. + * + * @param selStart the start index of the new selection + * @param selEnd the end index of the new selection + * + * @see TextComponent#select(int, int) + */ void select(int selStart, int selEnd); + + /** + * Sets the caret position of the text component. + * + * @param pos the caret position to set + * + * @see TextComponent#setCaretPosition(int) + */ void setCaretPosition(int pos); + + /** + * Returns the current caret position. + * + * @return the current caret position + * + * @see TextComponent#getCaretPosition() + */ int getCaretPosition(); + + /** + * Returns the input method requests. + * + * @return the input method requests + */ InputMethodRequests getInputMethodRequests(); } diff --git a/src/share/classes/java/awt/peer/TextFieldPeer.java b/src/share/classes/java/awt/peer/TextFieldPeer.java index 4fec4e8ef2da9bda134aa059967b0adb3d98d775..4c6c6cea33a3055890caaf8b37ad175fb937fe27 100644 --- a/src/share/classes/java/awt/peer/TextFieldPeer.java +++ b/src/share/classes/java/awt/peer/TextFieldPeer.java @@ -25,8 +25,11 @@ package java.awt.peer; import java.awt.Dimension; +import java.awt.TextField; /** + * The peer interface for {@link TextField}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -34,8 +37,38 @@ import java.awt.Dimension; * instances. */ public interface TextFieldPeer extends TextComponentPeer { + + /** + * Sets the echo character. + * + * @param echoChar the echo character to set + * + * @see TextField#getEchoChar() + */ void setEchoChar(char echoChar); + + /** + * Returns the preferred size of the text field with the specified number + * of columns. + * + * @param columns the number of columns + * + * @return the preferred size of the text field + * + * @see TextField#getPreferredSize(int) + */ Dimension getPreferredSize(int columns); + + /** + * Returns the minimum size of the text field with the specified number + * of columns. + * + * @param columns the number of columns + * + * @return the minimum size of the text field + * + * @see TextField#getMinimumSize(int) + */ Dimension getMinimumSize(int columns); } diff --git a/src/share/classes/java/awt/peer/TrayIconPeer.java b/src/share/classes/java/awt/peer/TrayIconPeer.java index 6e7c23fad3e503e8ef9d4877c8de3a9c66e45f79..6b1a583b48a5085f8a12bfa1daf586bbeb9de301 100644 --- a/src/share/classes/java/awt/peer/TrayIconPeer.java +++ b/src/share/classes/java/awt/peer/TrayIconPeer.java @@ -25,10 +25,56 @@ package java.awt.peer; +import java.awt.SystemTray; +import java.awt.TrayIcon; + +/** + * The peer interface for the {@link TrayIcon}. This doesn't need to be + * implemented if {@link SystemTray#isSupported()} returns false. + */ public interface TrayIconPeer { + + /** + * Disposes the tray icon and releases and resources held by it. + * + * @see TrayIcon#removeNotify() + */ void dispose(); + + /** + * Sets the tool tip for the tray icon. + * + * @param tooltip the tooltip to set + * + * @see TrayIcon#setToolTip(String) + */ void setToolTip(String tooltip); + + /** + * Updates the icon image. This is supposed to display the current icon + * from the TrayIcon component in the actual tray icon. + * + * @see TrayIcon#setImage(java.awt.Image) + * @see TrayIcon#setImageAutoSize(boolean) + */ void updateImage(); + + /** + * Displays a message at the tray icon. + * + * @param caption the message caption + * @param text the actual message text + * @param messageType the message type + * + * @see TrayIcon#displayMessage(String, String, java.awt.TrayIcon.MessageType) + */ void displayMessage(String caption, String text, String messageType); + + /** + * Shows the popup menu of this tray icon at the specified position. + * + * @param x the X location for the popup menu + * @param y the Y location for the popup menu + */ void showPopupMenu(int x, int y); } diff --git a/src/share/classes/java/awt/peer/WindowPeer.java b/src/share/classes/java/awt/peer/WindowPeer.java index e2016e4dd1b85d78fde1034bd1eed44f106a2fc1..7b5da857f405669f379aa4f9bdf19f354db89432 100644 --- a/src/share/classes/java/awt/peer/WindowPeer.java +++ b/src/share/classes/java/awt/peer/WindowPeer.java @@ -28,6 +28,8 @@ package java.awt.peer; import java.awt.*; /** + * The peer interface for {@link Window}. + * * The peer interfaces are intended only for use in porting * the AWT. They are not intended for use by application * developers, and developers should not implement peers @@ -35,11 +37,59 @@ import java.awt.*; * instances. */ public interface WindowPeer extends ContainerPeer { + + /** + * Makes this window the topmost window on the desktop. + * + * @see Window#toFront() + */ void toFront(); + + /** + * Makes this window the bottommost window on the desktop. + * + * @see Window#toBack() + */ void toBack(); + + /** + * Sets if the window should always stay on top of all other windows or + * not. + * + * @param alwaysOnTop if the window should always stay on top of all other + * windows or not + * + * @see Window#setAlwaysOnTop(boolean) + */ void setAlwaysOnTop(boolean alwaysOnTop); + + /** + * Updates the window's focusable state. + * + * @see Window#setFocusableWindowState(boolean) + */ void updateFocusableWindowState(); + + /** + * Sets if this window is blocked by a modal dialog or not. + * + * @param blocker the blocking modal dialog + * @param blocked {@code true} to block the window, {@code false} + * to unblock it + */ void setModalBlocked(Dialog blocker, boolean blocked); + + /** + * Updates the minimum size on the peer. + * + * @see Window#setMinimumSize(Dimension) + */ void updateMinimumSize(); + + /** + * Updates the icons for the window. + * + * @see Window#setIconImages(java.util.List) + */ void updateIconImages(); }