| /******************************************************************************* |
| * Copyright (c) 2000, 2010 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.draw2d; |
| |
| import java.beans.PropertyChangeListener; |
| import java.util.Collection; |
| import java.util.List; |
| |
| import org.eclipse.swt.graphics.Color; |
| import org.eclipse.swt.graphics.Cursor; |
| import org.eclipse.swt.graphics.Font; |
| |
| import org.eclipse.draw2d.geometry.Dimension; |
| import org.eclipse.draw2d.geometry.Insets; |
| import org.eclipse.draw2d.geometry.Point; |
| import org.eclipse.draw2d.geometry.Rectangle; |
| import org.eclipse.draw2d.geometry.Translatable; |
| |
| /** |
| * A lightweight graphical object. Figures are rendered to a {@link Graphics} |
| * object. Figures can be composed to create complex graphics. |
| * |
| * @noimplement This interface is not intended to be implemented by clients. Use |
| * {@link Figure}. |
| */ |
| public interface IFigure { |
| |
| /** |
| * Insets that are all 0. Always returns |
| * <code>true<code> for {@link #isEmpty()}. |
| */ |
| class NoInsets extends Insets { |
| NoInsets() { |
| super(0, 0, 0, 0); |
| } |
| |
| public boolean isEmpty() { |
| return true; |
| } |
| } |
| |
| /** |
| * The maximum allowable dimension. ({@link Integer#MAX_VALUE}, |
| * {@link Integer#MAX_VALUE}) |
| */ |
| Dimension MAX_DIMENSION = new Dimension(Integer.MAX_VALUE, |
| Integer.MAX_VALUE); |
| |
| /** |
| * The minimum allowable dimension. (5,5) |
| */ |
| Dimension MIN_DIMENSION = new Dimension(5, 5); |
| |
| /** |
| * Empty Insets. |
| */ |
| Insets NO_INSETS = new NoInsets(); |
| |
| /** |
| * Adds the given IFigure as a child of this IFigure. The same as calling |
| * {@link #add(IFigure, Object, int) add(figure, null, -1)}. |
| * |
| * @param figure |
| * The IFigure to add |
| */ |
| void add(IFigure figure); |
| |
| /** |
| * Adds the given IFigure as a child of this IFigure at the given index. The |
| * same as calling {@link #add(IFigure, Object, int) add(figure, null, |
| * index)}. |
| * |
| * @param figure |
| * The IFigure to add |
| * @param index |
| * The index where the IFigure should be added |
| */ |
| void add(IFigure figure, int index); |
| |
| /** |
| * Adds the given IFigure as a child of this IFigure with the given |
| * constraint. The same as calling {@link #add(IFigure, Object, int) |
| * add(figure, constraint, -1)}. |
| * |
| * @param figure |
| * The IFigure to add |
| * @param constraint |
| * The newly added IFigure's constraint |
| */ |
| void add(IFigure figure, Object constraint); |
| |
| /** |
| * Adds the child with the specified index and constraint. The child's |
| * parent is currently not null, it is removed from that parent. If this |
| * figure has a LayoutManager, then |
| * {@link LayoutManager#setConstraint(IFigure, Object)} shall be called on |
| * the layout. |
| * |
| * @param figure |
| * The IFigure to add |
| * @param constraint |
| * The newly added IFigure's constraint |
| * @param index |
| * The index where the IFigure should be added |
| * @throws IndexOutOfBoundsException |
| * if the index is out of range |
| * @throws IllegalArgumentException |
| * if adding the child creates a cycle |
| */ |
| void add(IFigure figure, Object constraint, int index); |
| |
| /** |
| * Registers the given listener as an AncestorListener of this figure. |
| * |
| * @param listener |
| * The listener to add |
| */ |
| void addAncestorListener(AncestorListener listener); |
| |
| /** |
| * Registers the given listener as a CoordinateListener of this figure. |
| * |
| * @param listener |
| * the listener to add |
| * @since 3.1 |
| */ |
| void addCoordinateListener(CoordinateListener listener); |
| |
| /** |
| * Registers the given listener as a FigureListener of this figure. |
| * |
| * @param listener |
| * The listener to add |
| */ |
| void addFigureListener(FigureListener listener); |
| |
| /** |
| * Registers the given listener as a FocusListener of this figure. |
| * |
| * @param listener |
| * The listener to add |
| */ |
| void addFocusListener(FocusListener listener); |
| |
| /** |
| * Registers the given listener as a KeyListener of this figure. |
| * |
| * @param listener |
| * The listener to add |
| */ |
| void addKeyListener(KeyListener listener); |
| |
| /** |
| * Registers the given listener on this figure. |
| * |
| * @param listener |
| * The listener to add |
| * @since 3.1 |
| */ |
| void addLayoutListener(LayoutListener listener); |
| |
| /** |
| * Registers the given listener as a MouseListener of this IFigure. |
| * |
| * @param listener |
| * The listener to add |
| */ |
| void addMouseListener(MouseListener listener); |
| |
| /** |
| * Registers the given listener as a MouseMotionListener of this IFigure. |
| * |
| * @param listener |
| * The listener to add |
| */ |
| void addMouseMotionListener(MouseMotionListener listener); |
| |
| /** |
| * Called after this IFigure is added to its parent. |
| */ |
| void addNotify(); |
| |
| /** |
| * Registers the given listener as a PropertyChangeListener of this IFigure. |
| * |
| * @param listener |
| * The listener to add |
| */ |
| void addPropertyChangeListener(PropertyChangeListener listener); |
| |
| /** |
| * Registers the given listener as a PropertyChangeListener of this IFigure, |
| * interested only in the given property. |
| * |
| * @param property |
| * The property the listener is interested in |
| * @param listener |
| * The listener to add |
| */ |
| void addPropertyChangeListener(String property, |
| PropertyChangeListener listener); |
| |
| /** |
| * Returns <code>true</code> if the point <code>(x, y)</code> is contained |
| * within this IFigure's bounds. |
| * |
| * @param x |
| * The X coordinate |
| * @param y |
| * The Y coordinate |
| * @return <code>true</code> if the point (x,y) is contained in this |
| * IFigure's bounds |
| */ |
| boolean containsPoint(int x, int y); |
| |
| /** |
| * Returns <code>true</code> if the Point p is contained within this |
| * IFigure's bounds. |
| * |
| * @param p |
| * The point |
| * @return <code>true</code> if the Point p is contained within this |
| * IFigure's bounds |
| */ |
| boolean containsPoint(Point p); |
| |
| /** |
| * Erases this IFigure. |
| */ |
| void erase(); |
| |
| /** |
| * Returns the IFigure at the specified location. May return |
| * <code>this</code> or <code>null</code>. |
| * |
| * @param x |
| * The X coordinate |
| * @param y |
| * The Y coordinate |
| * @return The IFigure at the specified location |
| */ |
| IFigure findFigureAt(int x, int y); |
| |
| /** |
| * Returns the IFigure at the specified location based on the conditional |
| * TreeSearch. May return <code>this</code> or <code>null</code> |
| * |
| * @param x |
| * the X coordinate |
| * @param y |
| * the Y coordinate |
| * @param search |
| * the conditional TreeSearch |
| * @return the IFigure at the specified location |
| */ |
| IFigure findFigureAt(int x, int y, TreeSearch search); |
| |
| /** |
| * Returns the IFigure at the specified location. May return |
| * <code>this</code> or <code>null</code>. |
| * |
| * @param p |
| * The point |
| * @return The IFigure at the specified location |
| */ |
| IFigure findFigureAt(Point p); |
| |
| /** |
| * Returns the IFigure at the specified location, excluding any IFigures in |
| * <code>collection</code>. May return <code>this</code> or |
| * <code>null</code>. |
| * |
| * @param x |
| * The X coordinate |
| * @param y |
| * The Y coordinate |
| * @param collection |
| * A collection of IFigures to be excluded |
| * @return The IFigure at the specified location, excluding any IFigures in |
| * collection |
| */ |
| IFigure findFigureAtExcluding(int x, int y, Collection collection); |
| |
| /** |
| * Returns the IFigure located at the given location which will accept mouse |
| * events. |
| * |
| * @param x |
| * The X coordinate |
| * @param y |
| * The Y coordinate |
| * @return The IFigure located at the given location which will accept mouse |
| * events |
| */ |
| IFigure findMouseEventTargetAt(int x, int y); |
| |
| /** |
| * Returns the background color. Background color can be inherited from the |
| * parent. |
| * |
| * @return The background color |
| */ |
| Color getBackgroundColor(); |
| |
| /** |
| * Returns the current border by reference. |
| * |
| * @return The current border |
| */ |
| Border getBorder(); |
| |
| /** |
| * Returns the smallest rectangle completely enclosing the IFigure. |
| * Implementation may return the Rectangle by reference. For this reason, |
| * callers of this method must not modify the returned Rectangle. The |
| * Rectangle's values may change in the future. |
| * |
| * @return This IFigure's bounds |
| */ |
| Rectangle getBounds(); |
| |
| /** |
| * Returns an unmodifiable list of children by reference. |
| * |
| * @return An unmodifiable list of children by reference |
| */ |
| List getChildren(); |
| |
| /** |
| * Returns the rectangular area within this Figure's bounds in which |
| * children will be placed (via {@link LayoutManager LayoutManagers}) and |
| * the painting of children will be clipped. |
| * |
| * @return The client area |
| */ |
| Rectangle getClientArea(); |
| |
| /** |
| * Copies the client area into the specificied Recangle, and returns that |
| * rectangle for convenience. |
| * |
| * @param rect |
| * The destination rectangle for the client area |
| * @return The same instance that was passed in, modified to contain the |
| * client area |
| */ |
| Rectangle getClientArea(Rectangle rect); |
| |
| /** |
| * Returns the IClippingStrategy used by this figure to clip its children |
| * |
| * @return the IClipppingStrategy used to clip this figure's children. |
| * @since 3.6 |
| */ |
| IClippingStrategy getClippingStrategy(); |
| |
| /** |
| * Returns the Cursor used when the mouse is over this IFigure. |
| * |
| * @return The Cursor used when the mouse is over this IFigure |
| */ |
| Cursor getCursor(); |
| |
| /** |
| * Returns the current Font by reference. |
| * |
| * @return The current Font |
| */ |
| Font getFont(); |
| |
| /** |
| * Returns the foreground color. |
| * |
| * @return The foreground color |
| */ |
| Color getForegroundColor(); |
| |
| /** |
| * Returns the current Insets. May be returned by reference. The returned |
| * value should not be modified. |
| * |
| * @return The current Insets. |
| */ |
| Insets getInsets(); |
| |
| /** |
| * Returns the current LayoutManager by reference. |
| * |
| * @return The current LayoutManager by reference |
| */ |
| LayoutManager getLayoutManager(); |
| |
| /** |
| * Returns the background Color of this Figure. Does not inherit this Color |
| * from the parent, may return null. |
| * |
| * @return The local background Color |
| */ |
| Color getLocalBackgroundColor(); |
| |
| /** |
| * Returns the local foreground Color of this Figure. Does not inherit this |
| * Color from the parent, may return null. |
| * |
| * @return The local foreground Color |
| */ |
| Color getLocalForegroundColor(); |
| |
| /** |
| * Returns a hint indicating the largest desireable size for the IFigure. |
| * Returned Dimension is by value. |
| * |
| * @return The maximum size |
| */ |
| Dimension getMaximumSize(); |
| |
| /** |
| * Returns a hint indicating the smallest desireable size for the IFigure. |
| * The returned dimension may be by <i>reference</i>, and it must not be |
| * modified by the caller. |
| * |
| * @return The minimum size |
| */ |
| Dimension getMinimumSize(); |
| |
| /** |
| * Returns a hint indicating the smallest desireable size for the IFigure. |
| * The returned dimension may be by <i>reference</i>, and it must not be |
| * modified by the caller. |
| * |
| * @param wHint |
| * the width hint |
| * @param hHint |
| * the height hint |
| * @return The minimum size |
| */ |
| Dimension getMinimumSize(int wHint, int hHint); |
| |
| /** |
| * Returns the IFigure that is the current parent of this IFigure or |
| * <code>null</code> if there is no parent. |
| * |
| * @return <code>null</code> or the parent figure |
| */ |
| IFigure getParent(); |
| |
| /** |
| * Returns the preferred size for this IFigure. The returned value must not |
| * be modified by the caller. If the figure has no preference, it returns |
| * its current size. The same as calling {@link #getPreferredSize(int, int) |
| * getPreferredSize(-1, -1)}. |
| * |
| * @return The preferred size |
| */ |
| Dimension getPreferredSize(); |
| |
| /** |
| * Returns the preferred size for this IFigure using the provided width and |
| * height hints. The returned dimension may be by <i>reference</i>, and it |
| * must not be modified by the caller. A value of <code>-1</code> indicates |
| * that there is no constraint in that direction. |
| * |
| * @param wHint |
| * a width hint |
| * @param hHint |
| * a height hint |
| * @return The preferred size |
| */ |
| Dimension getPreferredSize(int wHint, int hHint); |
| |
| /** |
| * Returns the current size. Returned Dimension is by value. |
| * |
| * @return The current size |
| */ |
| Dimension getSize(); |
| |
| /** |
| * Returns a IFigure that is the tooltip for this IFigure. |
| * |
| * @return This IFigure's tooltip |
| */ |
| IFigure getToolTip(); |
| |
| /** |
| * Returns the UpdateManager for this IFigure by reference. |
| * |
| * @return The update manager |
| */ |
| UpdateManager getUpdateManager(); |
| |
| /** |
| * Called when this IFigure has gained focus. |
| * <p> |
| * <b>NOTE</b>: You should not override this method. If you are interested |
| * in receiving notification of this type of event, you should register a |
| * {@link FocusListener} with this IFigure. |
| * |
| * @param event |
| * The focus event |
| */ |
| void handleFocusGained(FocusEvent event); |
| |
| /** |
| * Called when this IFigure has lost focus. |
| * <p> |
| * <b>NOTE</b>: You should not override this method. If you are interested |
| * in receiving notification of this type of event, you should register a |
| * {@link FocusListener} with this IFigure. |
| * |
| * @param event |
| * The focus event |
| */ |
| void handleFocusLost(FocusEvent event); |
| |
| /** |
| * Called when a key is pressed while this IFigure has focus. |
| * <p> |
| * <b>NOTE</b>: You should not override this method. If you are interested |
| * in receiving notification of this type of event, you should register a |
| * {@link KeyListener} with this IFigure. |
| * |
| * @param event |
| * The key event |
| */ |
| void handleKeyPressed(KeyEvent event); |
| |
| /** |
| * Called when a key is released while this IFigure has focus. |
| * <p> |
| * <b>NOTE</b>: You should not override this method. If you are interested |
| * in receiving notification of this type of event, you should register a |
| * {@link KeyListener} with this IFigure. |
| * |
| * @param event |
| * The key event |
| */ |
| void handleKeyReleased(KeyEvent event); |
| |
| /** |
| * Called when a mouse button has been double-clicked while within this |
| * IFigure's bounds. |
| * <p> |
| * <b>NOTE</b>: You should not override this method. If you are interested |
| * in receiving notification of this type of event, you should register a |
| * {@link MouseListener} with this IFigure. |
| * |
| * @param event |
| * The mouse event |
| */ |
| void handleMouseDoubleClicked(MouseEvent event); |
| |
| /** |
| * Called when the mouse has been dragged within this IFigure's bounds. |
| * <p> |
| * <b>NOTE</b>: You should not override this method. If you are interested |
| * in receiving notification of this type of event, you should register a |
| * {@link MouseMotionListener} with this IFigure. |
| * |
| * @param event |
| * The mouse event |
| */ |
| void handleMouseDragged(MouseEvent event); |
| |
| /** |
| * Called when the mouse has entered this IFigure's bounds. |
| * <p> |
| * <b>NOTE</b>: You should not override this method. If you are interested |
| * in receiving notification of this type of event, you should register a |
| * {@link MouseMotionListener} with this IFigure. |
| * |
| * @param event |
| * The mouse event |
| */ |
| void handleMouseEntered(MouseEvent event); |
| |
| /** |
| * Called when the mouse has exited this IFigure's bounds. |
| * <p> |
| * <b>NOTE</b>: You should not override this method. If you are interested |
| * in receiving notification of this type of event, you should register a |
| * {@link MouseMotionListener} with this IFigure. |
| * |
| * @param event |
| * The mouse event |
| */ |
| void handleMouseExited(MouseEvent event); |
| |
| /** |
| * Called when the mouse has hovered over this IFigure. |
| * <p> |
| * <b>NOTE</b>: You should not override this method. If you are interested |
| * in receiving notification of this type of event, you should register a |
| * {@link MouseMotionListener} with this IFigure. |
| * |
| * @param event |
| * The mouse event |
| */ |
| void handleMouseHover(MouseEvent event); |
| |
| /** |
| * Called when the mouse has moved within this IFigure's bounds. |
| * <p> |
| * <b>NOTE</b>: You should not override this method. If you are interested |
| * in receiving notification of this type of event, you should register a |
| * {@link MouseMotionListener} with this IFigure. |
| * |
| * @param event |
| * The mouse event |
| */ |
| void handleMouseMoved(MouseEvent event); |
| |
| /** |
| * Called when a mouse button has been pressed while within this IFigure's |
| * bounds. |
| * <p> |
| * <b>NOTE</b>: You should not override this method. If you are interested |
| * in receiving notification of this type of event, you should register a |
| * {@link MouseListener} with this IFigure. |
| * |
| * @param event |
| * The mouse event |
| */ |
| void handleMousePressed(MouseEvent event); |
| |
| /** |
| * Called when a mouse button has been released while within this IFigure's |
| * bounds. |
| * <p> |
| * <b>NOTE</b>: You should not override this method. If you are interested |
| * in receiving notification of this type of event, you should register a |
| * {@link MouseListener} with this IFigure. |
| * |
| * @param event |
| * The mouse event |
| */ |
| void handleMouseReleased(MouseEvent event); |
| |
| /** |
| * Returns <code>true</code> if this IFigure has focus. |
| * |
| * @return <code>true</code> if this IFigure has focus |
| */ |
| boolean hasFocus(); |
| |
| /** |
| * This method is <b>for internal purposes only</b> and should not be |
| * called. |
| * |
| * @return The event dispatcher |
| */ |
| EventDispatcher internalGetEventDispatcher(); |
| |
| /** |
| * Returns <code>true</code> if this IFigure's bounds intersect with the |
| * given Rectangle. Figure is asked so that non-rectangular IFigures can |
| * reduce the frequency of paints. |
| * |
| * @param rect |
| * The rectangle to check for intersection |
| * @return <code>true</code> if this IFigure's bounds intersect with the |
| * given Rectangle |
| */ |
| boolean intersects(Rectangle rect); |
| |
| /** |
| * Invalidates this IFigure. If this figure has a LayoutManager, then |
| * {@link LayoutManager#invalidate()} should be called on that layout. |
| */ |
| void invalidate(); |
| |
| /** |
| * Invalidates this figure as well as all contained within. |
| */ |
| void invalidateTree(); |
| |
| /** |
| * Returns <code>true</code> if this figure is capable of applying a local |
| * coordinate system which affects its children. |
| * |
| * @since 3.1 |
| * @return <code>true</code> if this figure provides local coordinates to |
| * children |
| */ |
| boolean isCoordinateSystem(); |
| |
| /** |
| * Returns <code>true</code> if this IFigure is enabled. |
| * |
| * @return <code>true</code> if this IFigure is enabled |
| */ |
| boolean isEnabled(); |
| |
| /** |
| * Returns <code>true</code> if this IFigure can gain focus on a |
| * {@link org.eclipse.swt.events.TraverseEvent}. |
| * |
| * @return <code>true</code> if this IFigure can gain focus on a |
| * TraverseEvent |
| */ |
| boolean isFocusTraversable(); |
| |
| /** |
| * @return <code>true</code> if this figure is hosted in a Control that is |
| * mirrored |
| * @since 3.1 |
| */ |
| boolean isMirrored(); |
| |
| /** |
| * Returns <code>true</code> if this IFigure is opaque. |
| * |
| * @return <code>true</code> if this IFigure is opaque |
| */ |
| boolean isOpaque(); |
| |
| /** |
| * Returns <code>true</code> if this IFigure can receive focus on a call to |
| * {@link #requestFocus()}. |
| * |
| * @return <code>true</code> if this IFigure can receive focus on a call to |
| * requestFocus() |
| */ |
| boolean isRequestFocusEnabled(); |
| |
| /** |
| * Returns <code>true</code> if this IFigure is showing. This figure is only |
| * showing if it is visible and its parent is showing, or it has no parent. |
| * |
| * @return <code>true</code> if this IFigure is showing |
| */ |
| boolean isShowing(); |
| |
| /** |
| * returns <code>true</code> if this figure's visibility flag is set to |
| * true. Does not walk up the parent chain. |
| * |
| * @return <code>true</code> if the figure's visibility flag is set |
| */ |
| boolean isVisible(); |
| |
| /** |
| * Paints this IFigure and its children. |
| * |
| * @param graphics |
| * The Graphics object used for painting |
| */ |
| void paint(Graphics graphics); |
| |
| /** |
| * Removes the given child from this figure's children. If this figure has a |
| * LayoutManager, then {@link LayoutManager#remove(IFigure)} shall be called |
| * on that layout with the child. |
| * |
| * @param figure |
| * The IFigure to remove |
| */ |
| void remove(IFigure figure); |
| |
| /** |
| * Unregisters the given listener, so that it will no longer receive |
| * notification of ancestor events. |
| * |
| * @param listener |
| * The listener to remove |
| */ |
| void removeAncestorListener(AncestorListener listener); |
| |
| /** |
| * Unregisters the given listener, so that it will no longer receive |
| * notification of coordinate changes. |
| * |
| * @param listener |
| * the listener to remove |
| * @since 3.1 |
| */ |
| void removeCoordinateListener(CoordinateListener listener); |
| |
| /** |
| * Unregisters the given listener, so that it will no longer receive |
| * notification of IFigure events. |
| * |
| * @param listener |
| * The listener to remove |
| */ |
| void removeFigureListener(FigureListener listener); |
| |
| /** |
| * Unregisters the given listener, so that it will no longer receive |
| * notification of focus events. |
| * |
| * @param listener |
| * The listener to remove |
| */ |
| void removeFocusListener(FocusListener listener); |
| |
| /** |
| * Removes the first occurence of the given listener. |
| * |
| * @param listener |
| * The listener to remove |
| */ |
| void removeKeyListener(KeyListener listener); |
| |
| /** |
| * Removes the most recent occurence of the given listener. |
| * |
| * @since 3.1 |
| * @param listener |
| * the listener to remove |
| */ |
| void removeLayoutListener(LayoutListener listener); |
| |
| /** |
| * Unregisters the given listener, so that it will no longer receive |
| * notification of mouse events. |
| * |
| * @param listener |
| * The listener to remove |
| */ |
| void removeMouseListener(MouseListener listener); |
| |
| /** |
| * Unregisters the given listener, so that it will no longer receive |
| * notification of mouse motion events. |
| * |
| * @param listener |
| * The listener to remove |
| */ |
| void removeMouseMotionListener(MouseMotionListener listener); |
| |
| /** |
| * Called before this IFigure is removed from its parent. |
| */ |
| void removeNotify(); |
| |
| /** |
| * Unregisters the given listener, so that it will no longer receive |
| * notification of any property changes. |
| * |
| * @param listener |
| * The listener to remove |
| */ |
| void removePropertyChangeListener(PropertyChangeListener listener); |
| |
| /** |
| * Unregisters the given listener, so that it will no longer receive |
| * notification of changes in the given property. This will only unregister |
| * the listener for the given property. If the listener is registered to |
| * listen to other properties, this will not affect the notification of the |
| * listener regarding those properties. |
| * |
| * @param property |
| * The property that the listener is no longer interested in |
| * @param listener |
| * The listener no longer interested in the property |
| */ |
| void removePropertyChangeListener(String property, |
| PropertyChangeListener listener); |
| |
| /** |
| * Repaints this IFigure. |
| */ |
| void repaint(); |
| |
| /** |
| * Repaints the rectangular area within this IFigure whose upper-left corner |
| * is located at the point <code>(x,y)</code> and whose width and height are |
| * <code>w</code> and <code>h</code>, respectively. |
| * |
| * @param x |
| * The X coordinate of the area to repaint |
| * @param y |
| * The Y coordinate of the area to repaint |
| * @param w |
| * The width of the area to repaint |
| * @param h |
| * The height of the area to repaint |
| */ |
| void repaint(int x, int y, int w, int h); |
| |
| /** |
| * Repaints the rectangular area within this IFigure represented by |
| * <code>rect</code>. |
| * |
| * @param rect |
| * The rectangular area to be repainted |
| */ |
| void repaint(Rectangle rect); |
| |
| /** |
| * Requests focus from the {@link EventDispatcher}. |
| */ |
| void requestFocus(); |
| |
| /** |
| * Invalidates this figure and revalidates() its parent. If a figure does |
| * not have a parent, it will request a validation from it UpdateManager. |
| * Calling this method does not guarantee that a repaint will occur. |
| */ |
| void revalidate(); |
| |
| /** |
| * Sets the background color. |
| * |
| * @param c |
| * The new background color |
| */ |
| void setBackgroundColor(Color c); |
| |
| /** |
| * Sets the border. |
| * |
| * @param b |
| * The new border |
| */ |
| void setBorder(Border b); |
| |
| /** |
| * Sets the bounds to the bounds of the specified <code>Rectangle</code>. |
| * |
| * @param rect |
| * The new bounds |
| */ |
| void setBounds(Rectangle rect); |
| |
| /** |
| * Registers a clipping strategy to specify how clipping is performed for |
| * child figures. |
| * |
| * @param clippingStrategy |
| * @since 3.6 |
| */ |
| void setClippingStrategy(IClippingStrategy clippingStrategy); |
| |
| /** |
| * Convenience method to set the constraint of the specified child in the |
| * current LayoutManager. |
| * |
| * @param child |
| * The figure whose constraint is being set |
| * @param constraint |
| * the constraint |
| * @throws IllegalArgumentException |
| * if the child is not contained by this Figure |
| */ |
| void setConstraint(IFigure child, Object constraint); |
| |
| /** |
| * Sets the cursor. |
| * |
| * @param cursor |
| * The new cursor |
| */ |
| void setCursor(Cursor cursor); |
| |
| /** |
| * Sets this IFigure to be enabled. |
| * |
| * @param value |
| * <code>true</code> if this IFigure should be enabled |
| */ |
| void setEnabled(boolean value); |
| |
| /** |
| * Sets the ability for this IFigure to gain focus on a |
| * {@link org.eclipse.swt.events.TraverseEvent}. |
| * |
| * @param value |
| * <code>true</code> if this IFigure should gain focus on a |
| * TraverseEvent |
| */ |
| void setFocusTraversable(boolean value); |
| |
| /** |
| * Sets the font. |
| * |
| * @param f |
| * The new font |
| */ |
| void setFont(Font f); |
| |
| /** |
| * Sets the foreground color. |
| * |
| * @param c |
| * The new foreground color |
| */ |
| void setForegroundColor(Color c); |
| |
| /** |
| * Sets the LayoutManager. |
| * |
| * @param lm |
| * The new layout manager |
| */ |
| void setLayoutManager(LayoutManager lm); |
| |
| /** |
| * Sets the location of this IFigure. |
| * |
| * @param p |
| * The new location |
| */ |
| void setLocation(Point p); |
| |
| /** |
| * Sets the maximum size this IFigure can be. |
| * |
| * @param size |
| * The new maximum size |
| */ |
| void setMaximumSize(Dimension size); |
| |
| /** |
| * Sets the minimum size this IFigure can be. |
| * |
| * @param size |
| * The new minimum size |
| */ |
| void setMinimumSize(Dimension size); |
| |
| /** |
| * Sets this IFigure to be opaque if <i>isOpaque</i> is <code>true</code> |
| * and transparent if <i>isOpaque</i> is <code>false</code>. |
| * |
| * @param isOpaque |
| * <code>true</code> is this IFigure should be opaque |
| */ |
| void setOpaque(boolean isOpaque); |
| |
| /** |
| * Sets this IFigure's parent. |
| * |
| * @param parent |
| * The new parent IFigure |
| */ |
| void setParent(IFigure parent); |
| |
| /** |
| * Sets this IFigure's preferred size. |
| * |
| * @param size |
| * The new preferred size |
| */ |
| void setPreferredSize(Dimension size); |
| |
| /** |
| * Sets the ability for this Figure to gain focus on a call to |
| * {@link #requestFocus()}. |
| * |
| * @param requestFocusEnabled |
| * <code>true</code> if this IFigure should gain focus on a call |
| * to requestFocus() |
| */ |
| void setRequestFocusEnabled(boolean requestFocusEnabled); |
| |
| /** |
| * Sets this IFigure's size. |
| * |
| * @param d |
| * The new size |
| */ |
| void setSize(Dimension d); |
| |
| /** |
| * Sets this IFigure's size. |
| * |
| * @param w |
| * The new width |
| * @param h |
| * The new height |
| */ |
| void setSize(int w, int h); |
| |
| /** |
| * Sets a tooltip that is displayed when the mouse hovers over this IFigure. |
| * |
| * @param figure |
| * The tooltip IFigure |
| */ |
| void setToolTip(IFigure figure); |
| |
| /** |
| * Sets this IFigure's visibility. |
| * |
| * @param visible |
| * <code>true</code> if this IFigure should be visible |
| */ |
| void setVisible(boolean visible); |
| |
| /** |
| * Moves this IFigure <code>x</code> pixels horizontally and <code>y</code> |
| * pixels vertically. |
| * |
| * @param x |
| * The amount to move this IFigure horizontally |
| * @param y |
| * The amount to move this IFigure vertically |
| */ |
| void translate(int x, int y); |
| |
| /** |
| * Translates a Translatable from this IFigure's parent's coordinates to |
| * this IFigure's local coordinates. |
| * |
| * @param t |
| * The object to translate |
| */ |
| void translateFromParent(Translatable t); |
| |
| /** |
| * Translates a Translatable that is relative to this figure's bounds to |
| * absolute. |
| * |
| * @param t |
| * The object to translate |
| */ |
| void translateToAbsolute(Translatable t); |
| |
| /** |
| * Translates a Translatable from this IFigure's coordinates to its parent's |
| * coordinates. |
| * |
| * @param t |
| * The object to translate |
| */ |
| void translateToParent(Translatable t); |
| |
| /** |
| * Translates a Translatable in absolute coordinates to be relative to this |
| * figure's bounds. |
| * |
| * @param t |
| * The object to translate |
| */ |
| void translateToRelative(Translatable t); |
| |
| /** |
| * Indicates that this figure should make itself valid. Validation includes |
| * invoking layout on a LayoutManager if present, and then validating all |
| * children figures. Default validation uses pre-order, depth-first |
| * ordering. |
| */ |
| void validate(); |
| |
| } |