diff options
Diffstat (limited to 'awt')
268 files changed, 27310 insertions, 22961 deletions
diff --git a/awt/java/awt/AWTEvent.java b/awt/java/awt/AWTEvent.java index 1ed9a37..a8dc83a 100644 --- a/awt/java/awt/AWTEvent.java +++ b/awt/java/awt/AWTEvent.java @@ -18,6 +18,7 @@ * @author Dmitry A. Durnev, Michael Danilov * @version $Revision$ */ + package java.awt; import java.util.EventObject; @@ -27,190 +28,252 @@ import java.util.EventListener; import java.awt.event.*; /** - * The abstract AWT events is base class for all AWT events. - * This class and its subclasses supercede the original java.awt.Event class. + * The abstract class AWTEvent is the base class for all AWT events. This class + * and its subclasses supersede the original java.awt.Event class. + * + * @since Android 1.0 */ public abstract class AWTEvent extends EventObject { - - /** The Constant serialVersionUID. */ + + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -1825314779160409405L; - /** The Constant COMPONENT_EVENT_MASK indicates the event relates to a component. */ + /** + * The Constant COMPONENT_EVENT_MASK indicates the event relates to a + * component. + */ public static final long COMPONENT_EVENT_MASK = 1; - /** The Constant CONTAINER_EVENT_MASK indicates the event relates to a container. */ + /** + * The Constant CONTAINER_EVENT_MASK indicates the event relates to a + * container. + */ public static final long CONTAINER_EVENT_MASK = 2; - /** The Constant FOCUS_EVENT_MASK indicates the event relates to the focus. */ + /** + * The Constant FOCUS_EVENT_MASK indicates the event relates to the focus. + */ public static final long FOCUS_EVENT_MASK = 4; - /** The Constant KEY_EVENT_MASK indicates the event relates to a key. */ + /** + * The Constant KEY_EVENT_MASK indicates the event relates to a key. + */ public static final long KEY_EVENT_MASK = 8; - /** The Constant MOUSE_EVENT_MASK indicates the event relates to the mouse. */ + /** + * The Constant MOUSE_EVENT_MASK indicates the event relates to the mouse. + */ public static final long MOUSE_EVENT_MASK = 16; - /** The Constant MOUSE_MOTION_EVENT_MASK indicates the event relates to a mouse motion. */ + /** + * The Constant MOUSE_MOTION_EVENT_MASK indicates the event relates to a + * mouse motion. + */ public static final long MOUSE_MOTION_EVENT_MASK = 32; - /** The Constant WINDOW_EVENT_MASK indicates the event relates to a window. */ + /** + * The Constant WINDOW_EVENT_MASK indicates the event relates to a window. + */ public static final long WINDOW_EVENT_MASK = 64; - /** The Constant ACTION_EVENT_MASK indicates the event relates to an action. */ + /** + * The Constant ACTION_EVENT_MASK indicates the event relates to an action. + */ public static final long ACTION_EVENT_MASK = 128; - /** The Constant ADJUSTMENT_EVENT_MASK indicates the event relates to an adjustment. */ + /** + * The Constant ADJUSTMENT_EVENT_MASK indicates the event relates to an + * adjustment. + */ public static final long ADJUSTMENT_EVENT_MASK = 256; - /** The Constant ITEM_EVENT_MASK indicates the event relates to an item. */ + /** + * The Constant ITEM_EVENT_MASK indicates the event relates to an item. + */ public static final long ITEM_EVENT_MASK = 512; - /** The Constant TEXT_EVENT_MASK indicates the event relates to text. */ + /** + * The Constant TEXT_EVENT_MASK indicates the event relates to text. + */ public static final long TEXT_EVENT_MASK = 1024; - /** The Constant INPUT_METHOD_EVENT_MASK indicates the event relates to an input method. */ + /** + * The Constant INPUT_METHOD_EVENT_MASK indicates the event relates to an + * input method. + */ public static final long INPUT_METHOD_EVENT_MASK = 2048; - /** The Constant PAINT_EVENT_MASK indicates the event relates to a paint method. */ + /** + * The Constant PAINT_EVENT_MASK indicates the event relates to a paint + * method. + */ public static final long PAINT_EVENT_MASK = 8192; - /** The Constant INVOCATION_EVENT_MASK indicates the event relates to a method invocation. */ + /** + * The Constant INVOCATION_EVENT_MASK indicates the event relates to a + * method invocation. + */ public static final long INVOCATION_EVENT_MASK = 16384; - /** The Constant HIERARCHY_EVENT_MASK indicates the event relates to a hierarchy. */ + /** + * The Constant HIERARCHY_EVENT_MASK indicates the event relates to a + * hierarchy. + */ public static final long HIERARCHY_EVENT_MASK = 32768; - /** - * The Constant HIERARCHY_BOUNDS_EVENT_MASK indicates the event relates to hierarchy bounds. + /** + * The Constant HIERARCHY_BOUNDS_EVENT_MASK indicates the event relates to + * hierarchy bounds. */ public static final long HIERARCHY_BOUNDS_EVENT_MASK = 65536; - /** The Constant MOUSE_WHEEL_EVENT_MASK indicates the event relates to the mouse wheel. */ + /** + * The Constant MOUSE_WHEEL_EVENT_MASK indicates the event relates to the + * mouse wheel. + */ public static final long MOUSE_WHEEL_EVENT_MASK = 131072; - /** The Constant WINDOW_STATE_EVENT_MASK indicates the event relates to a window state. */ + /** + * The Constant WINDOW_STATE_EVENT_MASK indicates the event relates to a + * window state. + */ public static final long WINDOW_STATE_EVENT_MASK = 262144; - /** The Constant WINDOW_FOCUS_EVENT_MASK indicates the event relates to a window focus. */ + /** + * The Constant WINDOW_FOCUS_EVENT_MASK indicates the event relates to a + * window focus. + */ public static final long WINDOW_FOCUS_EVENT_MASK = 524288; - /** The Constant RESERVED_ID_MAX indicates the maximum value for reserved - * AWT event IDs. + /** + * The Constant RESERVED_ID_MAX indicates the maximum value for reserved AWT + * event IDs. */ public static final int RESERVED_ID_MAX = 1999; - /** The Constant eventsMap. */ + /** + * The Constant eventsMap. + */ private static final Hashtable<Integer, EventDescriptor> eventsMap = new Hashtable<Integer, EventDescriptor>(); - /** The converter. */ + /** + * The converter. + */ private static EventConverter converter; - /** The ID of the event. */ + /** + * The ID of the event. + */ protected int id; - /** - * The consumed indicates whether or not the event is sent back down to - * the peer once the source has processed it (false means it's sent to the peer, + /** + * The consumed indicates whether or not the event is sent back down to the + * peer once the source has processed it (false means it's sent to the peer, * true means it's not). - */ + */ protected boolean consumed; - /** The dispatched by kfm. */ + /** + * The dispatched by kfm. + */ boolean dispatchedByKFM; - - /** The is posted. */ + + /** + * The is posted. + */ transient boolean isPosted; static { - eventsMap.put(new Integer(KeyEvent.KEY_TYPED), - new EventDescriptor(KEY_EVENT_MASK, KeyListener.class)); - eventsMap.put(new Integer(KeyEvent.KEY_PRESSED), - new EventDescriptor(KEY_EVENT_MASK, KeyListener.class)); - eventsMap.put(new Integer(KeyEvent.KEY_RELEASED), - new EventDescriptor(KEY_EVENT_MASK, KeyListener.class)); - eventsMap.put(new Integer(MouseEvent.MOUSE_CLICKED), - new EventDescriptor(MOUSE_EVENT_MASK, MouseListener.class)); - eventsMap.put(new Integer(MouseEvent.MOUSE_PRESSED), - new EventDescriptor(MOUSE_EVENT_MASK, MouseListener.class)); - eventsMap.put(new Integer(MouseEvent.MOUSE_RELEASED), - new EventDescriptor(MOUSE_EVENT_MASK, MouseListener.class)); - eventsMap.put(new Integer(MouseEvent.MOUSE_MOVED), - new EventDescriptor(MOUSE_MOTION_EVENT_MASK, MouseMotionListener.class)); - eventsMap.put(new Integer(MouseEvent.MOUSE_ENTERED), - new EventDescriptor(MOUSE_EVENT_MASK, MouseListener.class)); - eventsMap.put(new Integer(MouseEvent.MOUSE_EXITED), - new EventDescriptor(MOUSE_EVENT_MASK, MouseListener.class)); - eventsMap.put(new Integer(MouseEvent.MOUSE_DRAGGED), - new EventDescriptor(MOUSE_MOTION_EVENT_MASK, MouseMotionListener.class)); - eventsMap.put(new Integer(MouseEvent.MOUSE_WHEEL), - new EventDescriptor(MOUSE_WHEEL_EVENT_MASK, MouseWheelListener.class)); - eventsMap.put(new Integer(ComponentEvent.COMPONENT_MOVED), - new EventDescriptor(COMPONENT_EVENT_MASK, ComponentListener.class)); - eventsMap.put(new Integer(ComponentEvent.COMPONENT_RESIZED), - new EventDescriptor(COMPONENT_EVENT_MASK, ComponentListener.class)); - eventsMap.put(new Integer(ComponentEvent.COMPONENT_SHOWN), - new EventDescriptor(COMPONENT_EVENT_MASK, ComponentListener.class)); - eventsMap.put(new Integer(ComponentEvent.COMPONENT_HIDDEN), - new EventDescriptor(COMPONENT_EVENT_MASK, ComponentListener.class)); - eventsMap.put(new Integer(FocusEvent.FOCUS_GAINED), - new EventDescriptor(FOCUS_EVENT_MASK, FocusListener.class)); - eventsMap.put(new Integer(FocusEvent.FOCUS_LOST), - new EventDescriptor(FOCUS_EVENT_MASK, FocusListener.class)); - eventsMap.put(new Integer(PaintEvent.PAINT), - new EventDescriptor(PAINT_EVENT_MASK, null)); - eventsMap.put(new Integer(PaintEvent.UPDATE), - new EventDescriptor(PAINT_EVENT_MASK, null)); - eventsMap.put(new Integer(WindowEvent.WINDOW_OPENED), - new EventDescriptor(WINDOW_EVENT_MASK, WindowListener.class)); - eventsMap.put(new Integer(WindowEvent.WINDOW_CLOSING), - new EventDescriptor(WINDOW_EVENT_MASK, WindowListener.class)); - eventsMap.put(new Integer(WindowEvent.WINDOW_CLOSED), - new EventDescriptor(WINDOW_EVENT_MASK, WindowListener.class)); - eventsMap.put(new Integer(WindowEvent.WINDOW_DEICONIFIED), - new EventDescriptor(WINDOW_EVENT_MASK, WindowListener.class)); - eventsMap.put(new Integer(WindowEvent.WINDOW_ICONIFIED), - new EventDescriptor(WINDOW_EVENT_MASK, WindowListener.class)); - eventsMap.put(new Integer(WindowEvent.WINDOW_STATE_CHANGED), - new EventDescriptor(WINDOW_STATE_EVENT_MASK, WindowStateListener.class)); - eventsMap.put(new Integer(WindowEvent.WINDOW_LOST_FOCUS), - new EventDescriptor(WINDOW_FOCUS_EVENT_MASK, WindowFocusListener.class)); - eventsMap.put(new Integer(WindowEvent.WINDOW_GAINED_FOCUS), - new EventDescriptor(WINDOW_FOCUS_EVENT_MASK, WindowFocusListener.class)); - eventsMap.put(new Integer(WindowEvent.WINDOW_DEACTIVATED), - new EventDescriptor(WINDOW_EVENT_MASK, WindowListener.class)); - eventsMap.put(new Integer(WindowEvent.WINDOW_ACTIVATED), - new EventDescriptor(WINDOW_EVENT_MASK, WindowListener.class)); - eventsMap.put(new Integer(HierarchyEvent.HIERARCHY_CHANGED), - new EventDescriptor(HIERARCHY_EVENT_MASK, HierarchyListener.class)); - eventsMap.put(new Integer(HierarchyEvent.ANCESTOR_MOVED), - new EventDescriptor(HIERARCHY_BOUNDS_EVENT_MASK, HierarchyBoundsListener.class)); - eventsMap.put(new Integer(HierarchyEvent.ANCESTOR_RESIZED), - new EventDescriptor(HIERARCHY_BOUNDS_EVENT_MASK, HierarchyBoundsListener.class)); - eventsMap.put(new Integer(ContainerEvent.COMPONENT_ADDED), - new EventDescriptor(CONTAINER_EVENT_MASK, ContainerListener.class)); - eventsMap.put(new Integer(ContainerEvent.COMPONENT_REMOVED), - new EventDescriptor(CONTAINER_EVENT_MASK, ContainerListener.class)); - eventsMap.put(new Integer(InputMethodEvent.INPUT_METHOD_TEXT_CHANGED), - new EventDescriptor(INPUT_METHOD_EVENT_MASK, InputMethodListener.class)); - eventsMap.put(new Integer(InputMethodEvent.CARET_POSITION_CHANGED), - new EventDescriptor(INPUT_METHOD_EVENT_MASK, InputMethodListener.class)); - eventsMap.put(new Integer(InvocationEvent.INVOCATION_DEFAULT), - new EventDescriptor(INVOCATION_EVENT_MASK, null)); - eventsMap.put(new Integer(ItemEvent.ITEM_STATE_CHANGED), - new EventDescriptor(ITEM_EVENT_MASK, ItemListener.class)); - eventsMap.put(new Integer(TextEvent.TEXT_VALUE_CHANGED), - new EventDescriptor(TEXT_EVENT_MASK, TextListener.class)); - eventsMap.put(new Integer(ActionEvent.ACTION_PERFORMED), - new EventDescriptor(ACTION_EVENT_MASK, ActionListener.class)); - eventsMap.put(new Integer(AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED), - new EventDescriptor(ADJUSTMENT_EVENT_MASK, AdjustmentListener.class)); + eventsMap.put(new Integer(KeyEvent.KEY_TYPED), new EventDescriptor(KEY_EVENT_MASK, + KeyListener.class)); + eventsMap.put(new Integer(KeyEvent.KEY_PRESSED), new EventDescriptor(KEY_EVENT_MASK, + KeyListener.class)); + eventsMap.put(new Integer(KeyEvent.KEY_RELEASED), new EventDescriptor(KEY_EVENT_MASK, + KeyListener.class)); + eventsMap.put(new Integer(MouseEvent.MOUSE_CLICKED), new EventDescriptor(MOUSE_EVENT_MASK, + MouseListener.class)); + eventsMap.put(new Integer(MouseEvent.MOUSE_PRESSED), new EventDescriptor(MOUSE_EVENT_MASK, + MouseListener.class)); + eventsMap.put(new Integer(MouseEvent.MOUSE_RELEASED), new EventDescriptor(MOUSE_EVENT_MASK, + MouseListener.class)); + eventsMap.put(new Integer(MouseEvent.MOUSE_MOVED), new EventDescriptor( + MOUSE_MOTION_EVENT_MASK, MouseMotionListener.class)); + eventsMap.put(new Integer(MouseEvent.MOUSE_ENTERED), new EventDescriptor(MOUSE_EVENT_MASK, + MouseListener.class)); + eventsMap.put(new Integer(MouseEvent.MOUSE_EXITED), new EventDescriptor(MOUSE_EVENT_MASK, + MouseListener.class)); + eventsMap.put(new Integer(MouseEvent.MOUSE_DRAGGED), new EventDescriptor( + MOUSE_MOTION_EVENT_MASK, MouseMotionListener.class)); + eventsMap.put(new Integer(MouseEvent.MOUSE_WHEEL), new EventDescriptor( + MOUSE_WHEEL_EVENT_MASK, MouseWheelListener.class)); + eventsMap.put(new Integer(ComponentEvent.COMPONENT_MOVED), new EventDescriptor( + COMPONENT_EVENT_MASK, ComponentListener.class)); + eventsMap.put(new Integer(ComponentEvent.COMPONENT_RESIZED), new EventDescriptor( + COMPONENT_EVENT_MASK, ComponentListener.class)); + eventsMap.put(new Integer(ComponentEvent.COMPONENT_SHOWN), new EventDescriptor( + COMPONENT_EVENT_MASK, ComponentListener.class)); + eventsMap.put(new Integer(ComponentEvent.COMPONENT_HIDDEN), new EventDescriptor( + COMPONENT_EVENT_MASK, ComponentListener.class)); + eventsMap.put(new Integer(FocusEvent.FOCUS_GAINED), new EventDescriptor(FOCUS_EVENT_MASK, + FocusListener.class)); + eventsMap.put(new Integer(FocusEvent.FOCUS_LOST), new EventDescriptor(FOCUS_EVENT_MASK, + FocusListener.class)); + eventsMap.put(new Integer(PaintEvent.PAINT), new EventDescriptor(PAINT_EVENT_MASK, null)); + eventsMap.put(new Integer(PaintEvent.UPDATE), new EventDescriptor(PAINT_EVENT_MASK, null)); + eventsMap.put(new Integer(WindowEvent.WINDOW_OPENED), new EventDescriptor( + WINDOW_EVENT_MASK, WindowListener.class)); + eventsMap.put(new Integer(WindowEvent.WINDOW_CLOSING), new EventDescriptor( + WINDOW_EVENT_MASK, WindowListener.class)); + eventsMap.put(new Integer(WindowEvent.WINDOW_CLOSED), new EventDescriptor( + WINDOW_EVENT_MASK, WindowListener.class)); + eventsMap.put(new Integer(WindowEvent.WINDOW_DEICONIFIED), new EventDescriptor( + WINDOW_EVENT_MASK, WindowListener.class)); + eventsMap.put(new Integer(WindowEvent.WINDOW_ICONIFIED), new EventDescriptor( + WINDOW_EVENT_MASK, WindowListener.class)); + eventsMap.put(new Integer(WindowEvent.WINDOW_STATE_CHANGED), new EventDescriptor( + WINDOW_STATE_EVENT_MASK, WindowStateListener.class)); + eventsMap.put(new Integer(WindowEvent.WINDOW_LOST_FOCUS), new EventDescriptor( + WINDOW_FOCUS_EVENT_MASK, WindowFocusListener.class)); + eventsMap.put(new Integer(WindowEvent.WINDOW_GAINED_FOCUS), new EventDescriptor( + WINDOW_FOCUS_EVENT_MASK, WindowFocusListener.class)); + eventsMap.put(new Integer(WindowEvent.WINDOW_DEACTIVATED), new EventDescriptor( + WINDOW_EVENT_MASK, WindowListener.class)); + eventsMap.put(new Integer(WindowEvent.WINDOW_ACTIVATED), new EventDescriptor( + WINDOW_EVENT_MASK, WindowListener.class)); + eventsMap.put(new Integer(HierarchyEvent.HIERARCHY_CHANGED), new EventDescriptor( + HIERARCHY_EVENT_MASK, HierarchyListener.class)); + eventsMap.put(new Integer(HierarchyEvent.ANCESTOR_MOVED), new EventDescriptor( + HIERARCHY_BOUNDS_EVENT_MASK, HierarchyBoundsListener.class)); + eventsMap.put(new Integer(HierarchyEvent.ANCESTOR_RESIZED), new EventDescriptor( + HIERARCHY_BOUNDS_EVENT_MASK, HierarchyBoundsListener.class)); + eventsMap.put(new Integer(ContainerEvent.COMPONENT_ADDED), new EventDescriptor( + CONTAINER_EVENT_MASK, ContainerListener.class)); + eventsMap.put(new Integer(ContainerEvent.COMPONENT_REMOVED), new EventDescriptor( + CONTAINER_EVENT_MASK, ContainerListener.class)); + eventsMap.put(new Integer(InputMethodEvent.INPUT_METHOD_TEXT_CHANGED), new EventDescriptor( + INPUT_METHOD_EVENT_MASK, InputMethodListener.class)); + eventsMap.put(new Integer(InputMethodEvent.CARET_POSITION_CHANGED), new EventDescriptor( + INPUT_METHOD_EVENT_MASK, InputMethodListener.class)); + eventsMap.put(new Integer(InvocationEvent.INVOCATION_DEFAULT), new EventDescriptor( + INVOCATION_EVENT_MASK, null)); + eventsMap.put(new Integer(ItemEvent.ITEM_STATE_CHANGED), new EventDescriptor( + ITEM_EVENT_MASK, ItemListener.class)); + eventsMap.put(new Integer(TextEvent.TEXT_VALUE_CHANGED), new EventDescriptor( + TEXT_EVENT_MASK, TextListener.class)); + eventsMap.put(new Integer(ActionEvent.ACTION_PERFORMED), new EventDescriptor( + ACTION_EVENT_MASK, ActionListener.class)); + eventsMap.put(new Integer(AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED), new EventDescriptor( + ADJUSTMENT_EVENT_MASK, AdjustmentListener.class)); converter = new EventConverter(); } - + /** * Instantiates a new AWT event from the specified Event object. * - * @param event the Event object. + * @param event + * the Event object. */ public AWTEvent(Event event) { this(event.target, event.id); @@ -219,8 +282,10 @@ public abstract class AWTEvent extends EventObject { /** * Instantiates a new AWT event with the specified object and type. * - * @param source the source Object. - * @param id the event's type. + * @param source + * the source Object. + * @param id + * the event's type. */ public AWTEvent(Object source, int id) { super(source); @@ -240,7 +305,8 @@ public abstract class AWTEvent extends EventObject { /** * Sets a new source for the AWTEvent. * - * @param newSource the new source Object for the AWTEvent. + * @param newSource + * the new source Object for the AWTEvent. */ public void setSource(Object newSource) { source = newSource; @@ -253,33 +319,32 @@ public abstract class AWTEvent extends EventObject { */ @Override public String toString() { - /* The format is based on 1.5 release behavior - * which can be revealed by the following code: - * - * AWTEvent event = new AWTEvent(new Component(){}, 1){}; - * System.out.println(event); + /* + * The format is based on 1.5 release behavior which can be revealed by + * the following code: AWTEvent event = new AWTEvent(new Component(){}, + * 1){}; System.out.println(event); */ String name = ""; //$NON-NLS-1$ - + if (source instanceof Component && (source != null)) { - Component comp = (Component) getSource(); + Component comp = (Component)getSource(); name = comp.getName(); if (name == null) { name = ""; //$NON-NLS-1$ } } - + return (getClass().getName() + "[" + paramString() + "]" //$NON-NLS-1$ //$NON-NLS-2$ + " on " + (name.length() > 0 ? name : source)); //$NON-NLS-1$ } /** - * Returns a string representation of the AWTEvent state. - * + * Returns a string representation of the AWTEvent state. + * * @return a string representation of the AWTEvent state. */ public String paramString() { - //nothing to implement: all event types must override this method + // nothing to implement: all event types must override this method return ""; //$NON-NLS-1$ } @@ -296,73 +361,77 @@ public abstract class AWTEvent extends EventObject { * Consumes the AWTEvent. */ protected void consume() { - consumed = true; + consumed = true; } /** * Convert AWTEvent object to a corresponding (deprecated) Event object. * - * @return new Event object which is a converted AWTEvent object or null - * if the conversion is not possible + * @return new Event object which is a converted AWTEvent object or null if + * the conversion is not possible */ Event getEvent() { - + if (id == ActionEvent.ACTION_PERFORMED) { - ActionEvent ae = (ActionEvent) this; + ActionEvent ae = (ActionEvent)this; return converter.convertActionEvent(ae); } else if (id == AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED) { - AdjustmentEvent ae = (AdjustmentEvent) this; + AdjustmentEvent ae = (AdjustmentEvent)this; return converter.convertAdjustmentEvent(ae); -//???AWT -// } else if (id == ComponentEvent.COMPONENT_MOVED -// && source instanceof Window) { -// //the only type of Component events is COMPONENT_MOVED on window -// ComponentEvent ce = (ComponentEvent) this; -// return converter.convertComponentEvent(ce); + // ???AWT + // } else if (id == ComponentEvent.COMPONENT_MOVED + // && source instanceof Window) { + // //the only type of Component events is COMPONENT_MOVED on window + // ComponentEvent ce = (ComponentEvent) this; + // return converter.convertComponentEvent(ce); } else if (id >= FocusEvent.FOCUS_FIRST && id <= FocusEvent.FOCUS_LAST) { - //nothing to convert + // nothing to convert -//???AWT -// } else if (id == ItemEvent.ITEM_STATE_CHANGED) { -// ItemEvent ie = (ItemEvent) this; -// return converter.convertItemEvent(ie); + // ???AWT + // } else if (id == ItemEvent.ITEM_STATE_CHANGED) { + // ItemEvent ie = (ItemEvent) this; + // return converter.convertItemEvent(ie); } else if (id == KeyEvent.KEY_PRESSED || id == KeyEvent.KEY_RELEASED) { - KeyEvent ke = (KeyEvent) this; + KeyEvent ke = (KeyEvent)this; return converter.convertKeyEvent(ke); } else if (id >= MouseEvent.MOUSE_FIRST && id <= MouseEvent.MOUSE_LAST) { - MouseEvent me = (MouseEvent) this; + MouseEvent me = (MouseEvent)this; return converter.convertMouseEvent(me); - } else if (id == WindowEvent.WINDOW_CLOSING - || id == WindowEvent.WINDOW_ICONIFIED + } else if (id == WindowEvent.WINDOW_CLOSING || id == WindowEvent.WINDOW_ICONIFIED || id == WindowEvent.WINDOW_DEICONIFIED) { - //nothing to convert + // nothing to convert } else { return null; } return new Event(source, id, null); } - /** - * The Class EventDescriptor. + * The class EventDescriptor. */ static final class EventDescriptor { - /** The event mask. */ + /** + * The event mask. + */ final long eventMask; - /** The listener type. */ + /** + * The listener type. + */ final Class<? extends EventListener> listenerType; /** * Instantiates a new event descriptor. * - * @param eventMask the event mask - * @param listenerType the listener type + * @param eventMask + * the event mask. + * @param listenerType + * the listener type. */ EventDescriptor(long eventMask, Class<? extends EventListener> listenerType) { this.eventMask = eventMask; @@ -370,24 +439,28 @@ public abstract class AWTEvent extends EventObject { } } - + /** - * The Class EventTypeLookup. + * The class EventTypeLookup. */ static final class EventTypeLookup { - - /** The last event. */ + + /** + * The last event. + */ private AWTEvent lastEvent = null; - - /** The last event descriptor. */ + + /** + * The last event descriptor. + */ private EventDescriptor lastEventDescriptor = null; /** * Gets the event descriptor. * - * @param event the event - * - * @return the event descriptor + * @param event + * the event. + * @return the event descriptor. */ EventDescriptor getEventDescriptor(AWTEvent event) { synchronized (this) { @@ -403,9 +476,9 @@ public abstract class AWTEvent extends EventObject { /** * Gets the event mask. * - * @param event the event - * - * @return the event mask + * @param event + * the event. + * @return the event mask. */ long getEventMask(AWTEvent event) { final EventDescriptor ed = getEventDescriptor(event); @@ -414,65 +487,62 @@ public abstract class AWTEvent extends EventObject { } /** - * The Class EventConverter. + * The class EventConverter. */ static final class EventConverter { - - /** The Constant OLD_MOD_MASK. */ - static final int OLD_MOD_MASK = Event.ALT_MASK | Event.CTRL_MASK - | Event.META_MASK | Event.SHIFT_MASK; + + /** + * The constant OLD_MOD_MASK. + */ + static final int OLD_MOD_MASK = Event.ALT_MASK | Event.CTRL_MASK | Event.META_MASK + | Event.SHIFT_MASK; /** * Convert action event. * - * @param ae the ae - * - * @return the event + * @param ae + * the ae. + * @return the event. */ Event convertActionEvent(ActionEvent ae) { Event evt = new Event(ae.getSource(), ae.getID(), ae.getActionCommand()); evt.when = ae.getWhen(); evt.modifiers = ae.getModifiers() & OLD_MOD_MASK; - /* if (source instanceof Button) { - arg = ((Button) source).getLabel(); - } else if (source instanceof Checkbox) { - arg = new Boolean(((Checkbox) source).getState()); - } else if (source instanceof CheckboxMenuItem) { - arg = ((CheckboxMenuItem) source).getLabel(); - } else if (source instanceof Choice) { - arg = ((Choice) source).getSelectedItem(); - } else if (source instanceof List) { - arg = ((List) source).getSelectedItem(); - } else if (source instanceof MenuItem) { - arg = ((MenuItem) source).getLabel(); - } else if (source instanceof TextField) { - arg = ((TextField) source).getText(); - } -*/ + /* + * if (source instanceof Button) { arg = ((Button) + * source).getLabel(); } else if (source instanceof Checkbox) { arg + * = new Boolean(((Checkbox) source).getState()); } else if (source + * instanceof CheckboxMenuItem) { arg = ((CheckboxMenuItem) + * source).getLabel(); } else if (source instanceof Choice) { arg = + * ((Choice) source).getSelectedItem(); } else if (source instanceof + * List) { arg = ((List) source).getSelectedItem(); } else if + * (source instanceof MenuItem) { arg = ((MenuItem) + * source).getLabel(); } else if (source instanceof TextField) { arg + * = ((TextField) source).getText(); } + */ return evt; } - /** * Convert adjustment event. * - * @param ae the ae - * - * @return the event + * @param ae + * the ae. + * @return the event. */ Event convertAdjustmentEvent(AdjustmentEvent ae) { - //TODO: Event.SCROLL_BEGIN/SCROLL_END - return new Event(ae.source, ae.id + ae.getAdjustmentType() - 1, - new Integer(ae.getValue())); + // TODO: Event.SCROLL_BEGIN/SCROLL_END + return new Event(ae.source, ae.id + ae.getAdjustmentType() - 1, new Integer(ae + .getValue())); } /** * Convert component event. * - * @param ce the ce - * - * @return the event + * @param ce + * the ce. + * @return the event. */ Event convertComponentEvent(ComponentEvent ce) { Component comp = ce.getComponent(); @@ -482,35 +552,27 @@ public abstract class AWTEvent extends EventObject { return evt; } - //???AWT + // ???AWT /* - Event convertItemEvent(ItemEvent ie) { - int oldId = ie.id + ie.getStateChange() - 1; - Object source = ie.source; - int idx = -1; - if (source instanceof List) { - List list = (List) source; - idx = list.getSelectedIndex(); - } - else if (source instanceof Choice) { - Choice choice = (Choice) source; - idx = choice.getSelectedIndex(); - } - Object arg = idx >= 0 ? new Integer(idx) : null; - return new Event(source, oldId, arg); - } - */ - + * Event convertItemEvent(ItemEvent ie) { int oldId = ie.id + + * ie.getStateChange() - 1; Object source = ie.source; int idx = -1; if + * (source instanceof List) { List list = (List) source; idx = + * list.getSelectedIndex(); } else if (source instanceof Choice) { + * Choice choice = (Choice) source; idx = choice.getSelectedIndex(); } + * Object arg = idx >= 0 ? new Integer(idx) : null; return new + * Event(source, oldId, arg); } + */ + /** * Convert key event. * - * @param ke the ke - * - * @return the event + * @param ke + * the ke. + * @return the event. */ Event convertKeyEvent(KeyEvent ke) { int oldId = ke.id; - //leave only old Event's modifiers + // leave only old Event's modifiers int mod = ke.getModifiers() & OLD_MOD_MASK; Component comp = ke.getComponent(); @@ -518,7 +580,7 @@ public abstract class AWTEvent extends EventObject { int keyCode = ke.getKeyCode(); int key = convertKey(keyChar, keyCode); if (key >= Event.HOME && key <= Event.INSERT) { - oldId += 2; //non-ASCII key -> action key + oldId += 2; // non-ASCII key -> action key } return new Event(comp, ke.getWhen(), oldId, 0, 0, key, mod); } @@ -526,9 +588,9 @@ public abstract class AWTEvent extends EventObject { /** * Convert mouse event. * - * @param me the me - * - * @return the event + * @param me + * the me. + * @return the event. */ Event convertMouseEvent(MouseEvent me) { int id = me.id; @@ -537,7 +599,7 @@ public abstract class AWTEvent extends EventObject { evt.x = me.getX(); evt.y = me.getY(); int mod = me.getModifiers(); - //in Event modifiers mean button number for mouse events: + // in Event modifiers mean button number for mouse events: evt.modifiers = mod & (Event.ALT_MASK | Event.META_MASK); if (id == MouseEvent.MOUSE_PRESSED) { evt.clickCount = me.getClickCount(); @@ -546,68 +608,69 @@ public abstract class AWTEvent extends EventObject { } return null; } - + /** * Convert key. * - * @param keyChar the key char - * @param keyCode the key code - * - * @return the int + * @param keyChar + * the key char. + * @param keyCode + * the key code. + * @return the int. */ int convertKey(char keyChar, int keyCode) { int key; - //F1 - F12 + // F1 - F12 if (keyCode >= KeyEvent.VK_F1 && keyCode <= KeyEvent.VK_F12) { key = Event.F1 + keyCode - KeyEvent.VK_F1; } else { switch (keyCode) { - default: //non-action key - key = keyChar; - break; - //action keys: - case KeyEvent.VK_HOME: - key = Event.HOME; - break; - case KeyEvent.VK_END: - key = Event.END; - break; - case KeyEvent.VK_PAGE_UP: - key = Event.PGUP; - break; - case KeyEvent.VK_PAGE_DOWN: - key = Event.PGDN; - break; - case KeyEvent.VK_UP: - key = Event.UP; - break; - case KeyEvent.VK_DOWN: - key = Event.DOWN; - break; - case KeyEvent.VK_LEFT: - key = Event.LEFT; - break; - case KeyEvent.VK_RIGHT: - key = Event.RIGHT; - break; - case KeyEvent.VK_PRINTSCREEN: - key = Event.PRINT_SCREEN; - break; - case KeyEvent.VK_SCROLL_LOCK: - key = Event.SCROLL_LOCK; - break; - case KeyEvent.VK_CAPS_LOCK: - key = Event.CAPS_LOCK; - break; - case KeyEvent.VK_NUM_LOCK: - key = Event.NUM_LOCK; - break; - case KeyEvent.VK_PAUSE: - key = Event.PAUSE; - break; - case KeyEvent.VK_INSERT: - key = Event.INSERT; - break; + default: // non-action key + key = keyChar; + break; + // action keys: + case KeyEvent.VK_HOME: + key = Event.HOME; + break; + case KeyEvent.VK_END: + key = Event.END; + break; + case KeyEvent.VK_PAGE_UP: + key = Event.PGUP; + break; + case KeyEvent.VK_PAGE_DOWN: + key = Event.PGDN; + break; + case KeyEvent.VK_UP: + key = Event.UP; + break; + case KeyEvent.VK_DOWN: + key = Event.DOWN; + break; + case KeyEvent.VK_LEFT: + key = Event.LEFT; + break; + case KeyEvent.VK_RIGHT: + key = Event.RIGHT; + break; + case KeyEvent.VK_PRINTSCREEN: + key = Event.PRINT_SCREEN; + break; + case KeyEvent.VK_SCROLL_LOCK: + key = Event.SCROLL_LOCK; + break; + case KeyEvent.VK_CAPS_LOCK: + key = Event.CAPS_LOCK; + break; + case KeyEvent.VK_NUM_LOCK: + key = Event.NUM_LOCK; + break; + case KeyEvent.VK_PAUSE: + key = Event.PAUSE; + break; + case KeyEvent.VK_INSERT: + key = Event.INSERT; + break; } } return key; diff --git a/awt/java/awt/AWTException.java b/awt/java/awt/AWTException.java index 70ce6e1..6590b73 100644 --- a/awt/java/awt/AWTException.java +++ b/awt/java/awt/AWTException.java @@ -18,26 +18,30 @@ * @author Michael Danilov * @version $Revision$ */ -package java.awt; +package java.awt; /** - * The AWTException class is used to provide notification and information - * about AWT errors. + * The AWTException class is used to provide notification and information about + * AWT errors. + * + * @since Android 1.0 */ public class AWTException extends Exception { - - /** The Constant serialVersionUID. */ + + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -1900414231151323879L; /** * Instantiates a new AWT exception with the specified message. * - * @param msg the specific message for current exception. + * @param msg + * the specific message for current exception. */ public AWTException(String msg) { super(msg); } } - diff --git a/awt/java/awt/AWTKeyStroke.java b/awt/java/awt/AWTKeyStroke.java index 5e7de4e..f01f6f0 100644 --- a/awt/java/awt/AWTKeyStroke.java +++ b/awt/java/awt/AWTKeyStroke.java @@ -18,7 +18,9 @@ * @author Dmitry A. Durnev * @version $Revision$ */ + package java.awt; + import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.io.ObjectStreamException; @@ -36,7 +38,7 @@ import org.apache.harmony.awt.internal.nls.Messages; * The AWTKeyStroke holds all of the information for the complete act of * typing a character. This includes the events that are generated when * the key is pressed, released, or typed (pressed and released generating - * a unicode character result) which are associated with the event + * a Unicode character result) which are associated with the event * objects KeyEvent.KEY_PRESSED, KeyEvent.KEY_RELEASED, or KeyEvent.KEY_TYPED. * It also holds information about which modifiers (such as control or * shift) were used in conjunction with the keystroke. The following masks @@ -57,19 +59,41 @@ import org.apache.harmony.awt.internal.nls.Messages; * The AWTKeyStroke is unique, and applications should not create their own * instances of AWTKeyStroke. All applications should use getAWTKeyStroke * methods for obtaining instances of AWTKeyStroke. + * + * @since Android 1.0 */ public class AWTKeyStroke implements Serializable { - - /** The Constant serialVersionUID. */ + + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -6430539691155161871L; - /** The Constant cache. */ - private static final Map<AWTKeyStroke, AWTKeyStroke> cache = new HashMap<AWTKeyStroke, AWTKeyStroke>(); //Map<AWTKeyStroke, ? extends AWTKeyStroke> - - /** The Constant keyEventTypesMap. */ - private static final Map<Integer, String> keyEventTypesMap = new HashMap<Integer, String>(); //Map<int, String> + /** + * The Constant cache. + */ + private static final Map<AWTKeyStroke, AWTKeyStroke> cache = new HashMap<AWTKeyStroke, AWTKeyStroke>(); // Map - private static Constructor<?> subConstructor; + // < + // AWTKeyStroke + // , + // ? + // extends + // AWTKeyStroke + // > + + /** + * The Constant keyEventTypesMap. + */ + private static final Map<Integer, String> keyEventTypesMap = new HashMap<Integer, String>(); // Map + + // < + // int + // , + // String + // > + + private static Constructor<?> subConstructor; static { keyEventTypesMap.put(new Integer(KeyEvent.KEY_PRESSED), "pressed"); //$NON-NLS-1$ @@ -77,53 +101,66 @@ public class AWTKeyStroke implements Serializable { keyEventTypesMap.put(new Integer(KeyEvent.KEY_TYPED), "typed"); //$NON-NLS-1$ } - /** The key char. */ + /** + * The key char. + */ private char keyChar; - - /** The key code. */ + + /** + * The key code. + */ private int keyCode; - - /** The modifiers. */ + + /** + * The modifiers. + */ private int modifiers; - - /** The on key release. */ + + /** + * The on key release. + */ private boolean onKeyRelease; - + /** - * Instantiates a new AWTKeyStroke. - * getAWTKeyStroke method should be used by applications code. - * - * @param keyChar the key char - * @param keyCode the key code - * @param modifiers the modifiers - * @param onKeyRelease true if AWTKeyStroke is for a key release, overwise false. - */ - protected AWTKeyStroke(char keyChar, int keyCode, int modifiers, - boolean onKeyRelease) - { - setAWTKeyStroke(keyChar, keyCode, modifiers, onKeyRelease); + * Instantiates a new AWTKeyStroke. getAWTKeyStroke method should be used by + * applications code. + * + * @param keyChar + * the key char. + * @param keyCode + * the key code. + * @param modifiers + * the modifiers. + * @param onKeyRelease + * true if AWTKeyStroke is for a key release, false otherwise. + */ + protected AWTKeyStroke(char keyChar, int keyCode, int modifiers, boolean onKeyRelease) { + setAWTKeyStroke(keyChar, keyCode, modifiers, onKeyRelease); } - /** Sets the awt key stroke. - * - * @param keyChar the key char - * @param keyCode the key code - * @param modifiers the modifiers - * @param onKeyRelease the on key release - */ - private void setAWTKeyStroke( char keyChar, int keyCode, int modifiers, - boolean onKeyRelease) - { + /** + * Sets the AWT key stroke. + * + * @param keyChar + * the key char. + * @param keyCode + * the key code. + * @param modifiers + * the modifiers. + * @param onKeyRelease + * the on key release. + */ + private void setAWTKeyStroke(char keyChar, int keyCode, int modifiers, boolean onKeyRelease) { this.keyChar = keyChar; this.keyCode = keyCode; this.modifiers = modifiers; this.onKeyRelease = onKeyRelease; } - + /** * Instantiates a new AWTKeyStroke with default parameters: - * KeyEvent.CHAR_UNDEFINED key char, KeyEvent.VK_UNDEFINED key code, - * without modifiers and false key realised value. + * KeyEvent.CHAR_UNDEFINED key char, KeyEvent.VK_UNDEFINED key code, without + * modifiers and false key realized value. */ protected AWTKeyStroke() { this(KeyEvent.CHAR_UNDEFINED, KeyEvent.VK_UNDEFINED, 0, false); @@ -132,42 +169,44 @@ public class AWTKeyStroke implements Serializable { /** * Returns the unique number value for AWTKeyStroke object. * - * @return the int unique value of the AWTKeyStroke object. + * @return the integer unique value of the AWTKeyStroke object. */ @Override public int hashCode() { - return modifiers + ( keyCode != KeyEvent.VK_UNDEFINED ? - keyCode : keyChar) + (onKeyRelease ? -1 : 0); + return modifiers + (keyCode != KeyEvent.VK_UNDEFINED ? keyCode : keyChar) + + (onKeyRelease ? -1 : 0); } /** * Gets the set of modifiers for the AWTKeyStroke object. * - * @return the int value which contains modifiers. + * @return the integer value which contains modifiers. */ public final int getModifiers() { return modifiers; } /** - * Compares the AWTKeyStroke object to the specified object. + * Compares this AWTKeyStroke object to the specified object. * - * @return true, if objects are identical, overwise false. + * @param anObject + * the specified AWTKeyStroke object to compare with this + * instance. + * @return true if objects are identical, false otherwise. */ @Override public final boolean equals(Object anObject) { if (anObject instanceof AWTKeyStroke) { AWTKeyStroke key = (AWTKeyStroke)anObject; - return ((key.keyCode == keyCode) && (key.keyChar == keyChar) && - (key.modifiers == modifiers) && - (key.onKeyRelease == onKeyRelease)); + return ((key.keyCode == keyCode) && (key.keyChar == keyChar) + && (key.modifiers == modifiers) && (key.onKeyRelease == onKeyRelease)); } return false; } /** - * Returns the string representation of the AWTKeyStroke. - * This string should contain key stroke properties. + * Returns the string representation of the AWTKeyStroke. This string should + * contain key stroke properties. * * @return the string representation of the AWTKeyStroke. */ @@ -175,9 +214,10 @@ public class AWTKeyStroke implements Serializable { public String toString() { int type = getKeyEventType(); return InputEvent.getModifiersExText(getModifiers()) + " " + //$NON-NLS-1$ - keyEventTypesMap.get(new Integer(type)) + " " + //$NON-NLS-1$ - (type == KeyEvent.KEY_TYPED ? new String(new char[] {keyChar}) : - KeyEvent.getKeyText(keyCode)); + keyEventTypesMap.get(new Integer(type)) + " " + //$NON-NLS-1$ + (type == KeyEvent.KEY_TYPED ? new String(new char[] { + keyChar + }) : KeyEvent.getKeyText(keyCode)); } /** @@ -201,16 +241,18 @@ public class AWTKeyStroke implements Serializable { /** * Gets the AWT key stroke. * - * @param keyChar the key char - * @param keyCode the key code - * @param modifiers the modifiers - * @param onKeyRelease the on key release - * - * @return the AWT key stroke + * @param keyChar + * the key char. + * @param keyCode + * the key code. + * @param modifiers + * the modifiers. + * @param onKeyRelease + * the on key release. + * @return the AWT key stroke. */ - private static AWTKeyStroke getAWTKeyStroke(char keyChar, int keyCode, - int modifiers, - boolean onKeyRelease) { + private static AWTKeyStroke getAWTKeyStroke(char keyChar, int keyCode, int modifiers, + boolean onKeyRelease) { AWTKeyStroke key = newInstance(keyChar, keyCode, modifiers, onKeyRelease); AWTKeyStroke value = cache.get(key); @@ -224,28 +266,30 @@ public class AWTKeyStroke implements Serializable { /** * New instance. * - * @param keyChar the key char - * @param keyCode the key code - * @param modifiers the modifiers - * @param onKeyRelease the on key release - * - * @return the AWT key stroke + * @param keyChar + * the key char. + * @param keyCode + * the key code. + * @param modifiers + * the modifiers. + * @param onKeyRelease + * the on key release. + * @return the AWT key stroke. */ - private static AWTKeyStroke newInstance(char keyChar, int keyCode, - int modifiers, - boolean onKeyRelease) { + private static AWTKeyStroke newInstance(char keyChar, int keyCode, int modifiers, + boolean onKeyRelease) { AWTKeyStroke key; - //???AWT -// if (subConstructor == null) { - key = new AWTKeyStroke(); - //???AWT -// } else { -// try { -// key = (AWTKeyStroke) subConstructor.newInstance(); -// } catch (Exception e) { -// throw new RuntimeException(e); -// } -// } + // ???AWT + // if (subConstructor == null) { + key = new AWTKeyStroke(); + // ???AWT + // } else { + // try { + // key = (AWTKeyStroke) subConstructor.newInstance(); + // } catch (Exception e) { + // throw new RuntimeException(e); + // } + // } int allModifiers = getAllModifiers(modifiers); key.setAWTKeyStroke(keyChar, keyCode, allModifiers, onKeyRelease); return key; @@ -254,21 +298,22 @@ public class AWTKeyStroke implements Serializable { /** * Adds the mask. * - * @param mod the mod - * @param mask the mask - * - * @return the int + * @param mod + * the mod. + * @param mask + * the mask. + * @return the int. */ private static int addMask(int mod, int mask) { return ((mod & mask) != 0) ? (mod | mask) : mod; } /** - * return all (old & new) modifiers corresponding to. - * - * @param mod old or new modifiers + * Return all (old & new) modifiers corresponding to. * - * @return old and new modifiers together + * @param mod + * old or new modifiers. + * @return old and new modifiers together. */ static int getAllModifiers(int mod) { int allMod = mod; @@ -289,27 +334,23 @@ public class AWTKeyStroke implements Serializable { } /** - * Returns an instance of AWTKeyStroke for parsed string. - * - * The string must have the following syntax: + * Returns an instance of AWTKeyStroke for parsed string. The string must + * have the following syntax: *<p> * <modifiers>* (<typedID> | <pressedReleasedID>) *<p> - * modifiers := shift | control | ctrl | meta | alt | altGraph - * <br> - * typedID := typed <typedKey> - * <br> - * typedKey := string of length 1 giving the Unicode character. - * <br> - * pressedReleasedID := (pressed | released) <key> - * <br> + * modifiers := shift | control | ctrl | meta | alt | altGraph <br> + * typedID := typed <typedKey> <br> + * typedKey := string of length 1 giving the Unicode character. <br> + * pressedReleasedID := (pressed | released) <key> <br> * key := KeyEvent key code name, i.e. the name following "VK_". * <p> - * @param s the String which contains key stroke parameters. * + * @param s + * the String which contains key stroke parameters. * @return the AWTKeyStroke for string. - * - * @throws IllegalArgumentException if string has incorrect format or null. + * @throws IllegalArgumentException + * if string has incorrect format or null. */ public static AWTKeyStroke getAWTKeyStroke(String s) { if (s == null) { @@ -351,16 +392,15 @@ public class AWTKeyStroke implements Serializable { throw new IllegalArgumentException(Messages.getString("awt.66")); //$NON-NLS-1$ } - return getAWTKeyStroke(keyChar, keyCode, modifiers, - release == Boolean.TRUE); + return getAWTKeyStroke(keyChar, keyCode, modifiers, release == Boolean.TRUE); } /** * Gets the next token. * - * @param tokenizer the tokenizer - * - * @return the next token + * @param tokenizer + * the tokenizer. + * @return the next token. */ private static String getNextToken(StringTokenizer tokenizer) { try { @@ -374,9 +414,9 @@ public class AWTKeyStroke implements Serializable { /** * Gets the key code. * - * @param s the s - * - * @return the key code + * @param s + * the s. + * @return the key code. */ static int getKeyCode(String s) { try { @@ -394,8 +434,8 @@ public class AWTKeyStroke implements Serializable { /** * Gets an instance of the AWTKeyStroke for specified character. * - * @param keyChar the keyboard character value. - * + * @param keyChar + * the keyboard character value. * @return a AWTKeyStroke for specified character. */ public static AWTKeyStroke getAWTKeyStroke(char keyChar) { @@ -403,120 +443,121 @@ public class AWTKeyStroke implements Serializable { } /** - * Returns an instance of AWTKeyStroke for a given key code, set - * of modifiers, and specified key released flag value. - * The key codes are defined in java.awt.event.KeyEvent class. - * The set of modifiers is given as a bitwise combination - * of masks taken from the following list: + * Returns an instance of AWTKeyStroke for a given key code, set of + * modifiers, and specified key released flag value. The key codes are + * defined in java.awt.event.KeyEvent class. The set of modifiers is given + * as a bitwise combination of masks taken from the following list: * <ul> - * <li>java.awt.event.InputEvent.ALT_GRAPH_DOWN_MASK</li> - * <li>java.awt.event.InputEvent.ALT_DOWN_MASK</li> - * <li>java.awt.event.InputEvent.CTRL_DOWN_MASK</li> - * <li>java.awt.event.InputEvent.META_DOWN_MASK</li> - * <li>java.awt.event.InputEvent.SHIFT_DOWN_MASK</li> - * <li>java.awt.event.InputEvent.ALT_GRAPH_MASK</li> - * <li>java.awt.event.InputEvent.ALT_MASK</li> - * <li>java.awt.event.InputEvent.CTRL_MASK</li> - * <li>java.awt.event.InputEvent.META_MASK</li> - * <li>java.awt.event.InputEvent.SHIFT_MASK</li> + * <li>java.awt.event.InputEvent.ALT_GRAPH_DOWN_MASK</li> <li> + * java.awt.event.InputEvent.ALT_DOWN_MASK</li> <li> + * java.awt.event.InputEvent.CTRL_DOWN_MASK</li> <li> + * java.awt.event.InputEvent.META_DOWN_MASK</li> <li> + * java.awt.event.InputEvent.SHIFT_DOWN_MASK</li> <li> + * java.awt.event.InputEvent.ALT_GRAPH_MASK</li> <li> + * java.awt.event.InputEvent.ALT_MASK</li> <li> + * java.awt.event.InputEvent.CTRL_MASK</li> <li> + * java.awt.event.InputEvent.META_MASK</li> <li> + * java.awt.event.InputEvent.SHIFT_MASK</li> * </ul> - * <br> - * - * @param keyCode the specified key code of keyboard. - * @param modifiers the bit set of modifiers. + * <br> * + * @param keyCode + * the specified key code of keyboard. + * @param modifiers + * the bit set of modifiers. + * @param onKeyRelease + * the value which represents whether this AWTKeyStroke shall + * represents a key release. * @return the AWTKeyStroke. */ - public static AWTKeyStroke getAWTKeyStroke(int keyCode, int modifiers, - boolean onKeyRelease) { - return getAWTKeyStroke(KeyEvent.CHAR_UNDEFINED, keyCode, modifiers, - onKeyRelease); + public static AWTKeyStroke getAWTKeyStroke(int keyCode, int modifiers, boolean onKeyRelease) { + return getAWTKeyStroke(KeyEvent.CHAR_UNDEFINED, keyCode, modifiers, onKeyRelease); } /** - * Returns AWTKeyStroke for a specified character and set of modifiers. - * The set of modifiers is given as a bitwise combination - * of masks taken from the following list: + * Returns AWTKeyStroke for a specified character and set of modifiers. The + * set of modifiers is given as a bitwise combination of masks taken from + * the following list: * <ul> - * <li>java.awt.event.InputEvent.ALT_GRAPH_DOWN_MASK</li> - * <li>java.awt.event.InputEvent.ALT_DOWN_MASK</li> - * <li>java.awt.event.InputEvent.CTRL_DOWN_MASK</li> - * <li>java.awt.event.InputEvent.META_DOWN_MASK</li> - * <li>java.awt.event.InputEvent.SHIFT_DOWN_MASK</li> - * <li>java.awt.event.InputEvent.ALT_GRAPH_MASK</li> - * <li>java.awt.event.InputEvent.ALT_MASK</li> - * <li>java.awt.event.InputEvent.CTRL_MASK</li> - * <li>java.awt.event.InputEvent.META_MASK</li> - * <li>java.awt.event.InputEvent.SHIFT_MASK</li> + * <li>java.awt.event.InputEvent.ALT_GRAPH_DOWN_MASK</li> <li> + * java.awt.event.InputEvent.ALT_DOWN_MASK</li> <li> + * java.awt.event.InputEvent.CTRL_DOWN_MASK</li> <li> + * java.awt.event.InputEvent.META_DOWN_MASK</li> <li> + * java.awt.event.InputEvent.SHIFT_DOWN_MASK</li> <li> + * java.awt.event.InputEvent.ALT_GRAPH_MASK</li> <li> + * java.awt.event.InputEvent.ALT_MASK</li> <li> + * java.awt.event.InputEvent.CTRL_MASK</li> <li> + * java.awt.event.InputEvent.META_MASK</li> <li> + * java.awt.event.InputEvent.SHIFT_MASK</li> * </ul> * - * @param keyChar the Character object which represents keyboard character value. - * @param modifiers the bit set of modifiers. - * + * @param keyChar + * the Character object which represents keyboard character + * value. + * @param modifiers + * the bit set of modifiers. * @return the AWTKeyStroke object. - * - * @throws IllegalArgumentException if keyChar value is null. + * @throws IllegalArgumentException + * if keyChar value is null. */ public static AWTKeyStroke getAWTKeyStroke(Character keyChar, int modifiers) { if (keyChar == null) { // awt.01='{0}' parameter is null throw new IllegalArgumentException(Messages.getString("awt.01", "keyChar")); //$NON-NLS-1$ //$NON-NLS-2$ } - return getAWTKeyStroke(keyChar.charValue(), KeyEvent.VK_UNDEFINED, - modifiers, false); + return getAWTKeyStroke(keyChar.charValue(), KeyEvent.VK_UNDEFINED, modifiers, false); } /** - * Returns an instance of AWTKeyStroke for a specified key code and - * set of modifiers. - * The key codes are defined in java.awt.event.KeyEvent class. - * The set of modifiers is given as a bitwise combination - * of masks taken from the following list: + * Returns an instance of AWTKeyStroke for a specified key code and set of + * modifiers. The key codes are defined in java.awt.event.KeyEvent class. + * The set of modifiers is given as a bitwise combination of masks taken + * from the following list: * <ul> - * <li>java.awt.event.InputEvent.ALT_GRAPH_DOWN_MASK</li> - * <li>java.awt.event.InputEvent.ALT_DOWN_MASK</li> - * <li>java.awt.event.InputEvent.CTRL_DOWN_MASK</li> - * <li>java.awt.event.InputEvent.META_DOWN_MASK</li> - * <li>java.awt.event.InputEvent.SHIFT_DOWN_MASK</li> - * <li>java.awt.event.InputEvent.ALT_GRAPH_MASK</li> - * <li>java.awt.event.InputEvent.ALT_MASK</li> - * <li>java.awt.event.InputEvent.CTRL_MASK</li> - * <li>java.awt.event.InputEvent.META_MASK</li> - * <li>java.awt.event.InputEvent.SHIFT_MASK</li> + * <li>java.awt.event.InputEvent.ALT_GRAPH_DOWN_MASK</li> <li> + * java.awt.event.InputEvent.ALT_DOWN_MASK</li> <li> + * java.awt.event.InputEvent.CTRL_DOWN_MASK</li> <li> + * java.awt.event.InputEvent.META_DOWN_MASK</li> <li> + * java.awt.event.InputEvent.SHIFT_DOWN_MASK</li> <li> + * java.awt.event.InputEvent.ALT_GRAPH_MASK</li> <li> + * java.awt.event.InputEvent.ALT_MASK</li> <li> + * java.awt.event.InputEvent.CTRL_MASK</li> <li> + * java.awt.event.InputEvent.META_MASK</li> <li> + * java.awt.event.InputEvent.SHIFT_MASK</li> * </ul> - * - * @param keyCode the specified key code of keyboard. - * @param modifiers the bit set of modifiers. * - * @return the AWTKeyStroke + * @param keyCode + * the specified key code of keyboard. + * @param modifiers + * the bit set of modifiers. + * @return the AWTKeyStroke. */ public static AWTKeyStroke getAWTKeyStroke(int keyCode, int modifiers) { return getAWTKeyStroke(keyCode, modifiers, false); } /** - * Gets the AWTKeyStroke for a key event. This method obtains the key char + * Gets the AWTKeyStroke for a key event. This method obtains the key char * and key code from the specified key event. * - * @param anEvent the key event which identifies the desired AWTKeyStroke. - * + * @param anEvent + * the key event which identifies the desired AWTKeyStroke. * @return the AWTKeyStroke for the key event. */ public static AWTKeyStroke getAWTKeyStrokeForEvent(KeyEvent anEvent) { int id = anEvent.getID(); char undef = KeyEvent.CHAR_UNDEFINED; - char keyChar = (id == KeyEvent.KEY_TYPED ? anEvent.getKeyChar() : - undef); - int keyCode = (keyChar == undef ? anEvent.getKeyCode() : - KeyEvent.VK_UNDEFINED); + char keyChar = (id == KeyEvent.KEY_TYPED ? anEvent.getKeyChar() : undef); + int keyCode = (keyChar == undef ? anEvent.getKeyCode() : KeyEvent.VK_UNDEFINED); return getAWTKeyStroke(keyChar, keyCode, anEvent.getModifiersEx(), - id == KeyEvent.KEY_RELEASED); + id == KeyEvent.KEY_RELEASED); } /** * Gets the key event type for the AWTKeyStroke object. * - * @return the key event type: KeyEvent.KEY_PRESSED, KeyEvent.KEY_TYPED, or KeyEvent.KEY_RELEASED + * @return the key event type: KeyEvent.KEY_PRESSED, KeyEvent.KEY_TYPED, or + * KeyEvent.KEY_RELEASED. */ public final int getKeyEventType() { if (keyCode == KeyEvent.VK_UNDEFINED) { @@ -526,11 +567,11 @@ public class AWTKeyStroke implements Serializable { } /** - * Retuns true if the key event is associated with the AWTKeyStroke is - * KEY_RELEASED, overwise false. + * Returns true if the key event is associated with the AWTKeyStroke is + * KEY_RELEASED, false otherwise. * - * @return true, if if the key event associated with the AWTKeyStroke is - * KEY_RELEASED, overwise false. + * @return true, if if the key event associated with the AWTKeyStroke is + * KEY_RELEASED, false otherwise. */ public final boolean isOnKeyRelease() { return onKeyRelease; @@ -539,50 +580,44 @@ public class AWTKeyStroke implements Serializable { /** * Read resolve. * - * @return the object - * - * @throws ObjectStreamException the object stream exception + * @return the object. + * @throws ObjectStreamException + * the object stream exception. */ protected Object readResolve() throws ObjectStreamException { - return getAWTKeyStroke(this.keyChar, this.keyCode, - this.modifiers, this.onKeyRelease); + return getAWTKeyStroke(this.keyChar, this.keyCode, this.modifiers, this.onKeyRelease); } /** * Register subclass. * - * @param subclass the subclass + * @param subclass + * the subclass. */ protected static void registerSubclass(Class<?> subclass) { - //???AWT + // ???AWT /* - if (subclass == null) { - // awt.01='{0}' parameter is null - throw new IllegalArgumentException(Messages.getString("awt.01", "subclass")); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (! AWTKeyStroke.class.isAssignableFrom(subclass)) { - // awt.67=subclass is not derived from AWTKeyStroke - throw new ClassCastException(Messages.getString("awt.67")); //$NON-NLS-1$ - } - try { - subConstructor = subclass.getDeclaredConstructor(); - subConstructor.setAccessible(true); - } catch (SecurityException e) { - throw new RuntimeException(e); - } catch (NoSuchMethodException e) { - // awt.68=subclass could not be instantiated - throw new IllegalArgumentException(Messages.getString("awt.68")); //$NON-NLS-1$ - } - cache.clear(); //flush the cache - */ + * if (subclass == null) { // awt.01='{0}' parameter is null throw new + * IllegalArgumentException(Messages.getString("awt.01", "subclass")); + * //$NON-NLS-1$ //$NON-NLS-2$ } if (! + * AWTKeyStroke.class.isAssignableFrom(subclass)) { // awt.67=subclass + * is not derived from AWTKeyStroke throw new + * ClassCastException(Messages.getString("awt.67")); //$NON-NLS-1$ } try + * { subConstructor = subclass.getDeclaredConstructor(); + * subConstructor.setAccessible(true); } catch (SecurityException e) { + * throw new RuntimeException(e); } catch (NoSuchMethodException e) { // + * awt.68=subclass could not be instantiated throw new + * IllegalArgumentException(Messages.getString("awt.68")); //$NON-NLS-1$ + * } cache.clear(); //flush the cache + */ } /** * Parses the modifier. * - * @param strMod the str mod - * - * @return the long + * @param strMod + * the str mod. + * @return the long. */ private static long parseModifier(String strMod) { long modifiers = 0l; @@ -609,9 +644,9 @@ public class AWTKeyStroke implements Serializable { /** * Parses the typed id. * - * @param strTyped the str typed - * - * @return true, if successful + * @param strTyped + * the str typed. + * @return true, if successful. */ private static boolean parseTypedID(String strTyped) { if (strTyped.equals("typed")) { //$NON-NLS-1$ @@ -624,9 +659,9 @@ public class AWTKeyStroke implements Serializable { /** * Parses the typed key. * - * @param strChar the str char - * - * @return the char + * @param strChar + * the str char. + * @return the char. */ private static char parseTypedKey(String strChar) { char keyChar = KeyEvent.CHAR_UNDEFINED; @@ -642,9 +677,9 @@ public class AWTKeyStroke implements Serializable { /** * Parses the pressed released id. * - * @param str the str - * - * @return the boolean + * @param str + * the str. + * @return the boolean. */ private static Boolean parsePressedReleasedID(String str) { @@ -659,9 +694,9 @@ public class AWTKeyStroke implements Serializable { /** * Parses the key. * - * @param strCode the str code - * - * @return the int + * @param strCode + * the str code. + * @return the int. */ private static int parseKey(String strCode) { int keyCode = KeyEvent.VK_UNDEFINED; @@ -675,4 +710,3 @@ public class AWTKeyStroke implements Serializable { return keyCode; } } - diff --git a/awt/java/awt/AWTPermission.java b/awt/java/awt/AWTPermission.java index 25326ab..4bd8357 100644 --- a/awt/java/awt/AWTPermission.java +++ b/awt/java/awt/AWTPermission.java @@ -18,24 +18,31 @@ * @author Pavel Dolgov * @version $Revision$ */ + package java.awt; import java.security.BasicPermission; /** - * The AWTPermission specifies the name of the permission and the - * corresponding action list. + * The AWTPermission specifies the name of the permission and the corresponding + * action list. + * + * @since Android 1.0 */ public final class AWTPermission extends BasicPermission { - - /** The Constant serialVersionUID. */ + + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = 8890392402588814465L; /** * Instantiates a new AWTPermission with defined name and actions. * - * @param name the name of a new AWTPermission. - * @param actions the actions of a new AWTPermission. + * @param name + * the name of a new AWTPermission. + * @param actions + * the actions of a new AWTPermission. */ public AWTPermission(String name, String actions) { super(name, actions); @@ -44,11 +51,11 @@ public final class AWTPermission extends BasicPermission { /** * Instantiates a new AWT permission with the defined name. * - * @param name the name of a new AWTPermission. + * @param name + * the name of a new AWTPermission. */ public AWTPermission(String name) { super(name); } } - diff --git a/awt/java/awt/ActiveEvent.java b/awt/java/awt/ActiveEvent.java index 4133752..7044623 100644 --- a/awt/java/awt/ActiveEvent.java +++ b/awt/java/awt/ActiveEvent.java @@ -18,18 +18,21 @@ * @author Michael Danilov * @version $Revision$ */ + package java.awt; /** - * This interface defines events that know how to dispatch themselves. - * Such event can be placed upon the event queue and its dispatch method - * will be called when the event is dispatched. + * This interface defines events that know how to dispatch themselves. Such + * event can be placed upon the event queue and its dispatch method will be + * called when the event is dispatched. + * + * @since Android 1.0 */ public interface ActiveEvent { /** - * Dispatches the event to the listeners of the event's source, - * or does whatever it is this event is supposed to do. + * Dispatches the event to the listeners of the event's source, or does + * whatever it is this event is supposed to do. */ public void dispatch(); diff --git a/awt/java/awt/Adjustable.java b/awt/java/awt/Adjustable.java index 3241cad..baf80f7 100644 --- a/awt/java/awt/Adjustable.java +++ b/awt/java/awt/Adjustable.java @@ -18,32 +18,35 @@ * @author Pavel Dolgov * @version $Revision$ */ + package java.awt; import java.awt.event.AdjustmentListener; /** - * The Adjustable interface represents an adjustable numeric value - * contained within a bounded range of values, such as the current - * location in scrollable region or the value of a gauge. + * The Adjustable interface represents an adjustable numeric value contained + * within a bounded range of values, such as the current location in scrollable + * region or the value of a gauge. + * + * @since Android 1.0 */ public interface Adjustable { - /** - * The Constant HORIZONTAL indicates that the Adjustable's orientation - * is horizontal. + /** + * The Constant HORIZONTAL indicates that the Adjustable's orientation is + * horizontal. */ public static final int HORIZONTAL = 0; - /** - * The Constant VERTICAL indicates that the Adjustable's orientation - * is vertical. + /** + * The Constant VERTICAL indicates that the Adjustable's orientation is + * vertical. */ public static final int VERTICAL = 1; - /** - * The Constant NO_ORIENTATION indicates that the Adjustable - * has no orientation. + /** + * The Constant NO_ORIENTATION indicates that the Adjustable has no + * orientation. */ public static final int NO_ORIENTATION = 2; @@ -57,14 +60,16 @@ public interface Adjustable { /** * Sets the value to the Adjustable object. * - * @param a0 the new value of the Adjustable object. + * @param a0 + * the new value of the Adjustable object. */ public void setValue(int a0); /** * Adds the AdjustmentListener to current Adjustment. * - * @param a0 the AdjustmentListener object. + * @param a0 + * the AdjustmentListener object. */ public void addAdjustmentListener(AdjustmentListener a0); @@ -85,7 +90,7 @@ public interface Adjustable { /** * Gets the minimum value of the Adjustable. * - * @return the minimum value of the Adjustable. + * @return the minimum value of the Adjustable. */ public int getMinimum(); @@ -113,44 +118,49 @@ public interface Adjustable { /** * Removes the adjustment listener of the Adjustable. * - * @param a0 the specified AdjustmentListener to be removed. + * @param a0 + * the specified AdjustmentListener to be removed. */ public void removeAdjustmentListener(AdjustmentListener a0); /** * Sets the block increment for the Adjustable. * - * @param a0 the new block increment. + * @param a0 + * the new block increment. */ public void setBlockIncrement(int a0); /** * Sets the maximum value of the Adjustable. * - * @param a0 the new maximum of the Adjustable. + * @param a0 + * the new maximum of the Adjustable. */ public void setMaximum(int a0); /** * Sets the minimum value of the Adjustable. * - * @param a0 the new minimum of the Adjustable. + * @param a0 + * the new minimum of the Adjustable. */ public void setMinimum(int a0); /** * Sets the unit increment of the Adjustable. * - * @param a0 the new unit increment of the Adjustable. + * @param a0 + * the new unit increment of the Adjustable. */ public void setUnitIncrement(int a0); /** * Sets the visible amount of the Adjustable. * - * @param a0 the new visible amount of the Adjustable. + * @param a0 + * the new visible amount of the Adjustable. */ public void setVisibleAmount(int a0); } - diff --git a/awt/java/awt/AlphaComposite.java b/awt/java/awt/AlphaComposite.java index d26753c..8389eb4 100644 --- a/awt/java/awt/AlphaComposite.java +++ b/awt/java/awt/AlphaComposite.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt; import java.awt.Composite; @@ -28,148 +29,181 @@ import java.awt.image.ColorModel; import org.apache.harmony.awt.gl.ICompositeContext; import org.apache.harmony.awt.internal.nls.Messages; - /** - * The AlphaComposite class defines a basic alpha compositing rules for - * combining source and destination colors to achieve blending and - * transparency effects with graphics and images. + * The AlphaComposite class defines a basic alpha compositing rules for + * combining source and destination colors to achieve blending and transparency + * effects with graphics and images. + * + * @since Android 1.0 */ public final class AlphaComposite implements Composite { - /** - * The Constant CLEAR indicates that both the color and the alpha of - * the destination are cleared (Porter-Duff Clear rule). + /** + * The Constant CLEAR indicates that both the color and the alpha of the + * destination are cleared (Porter-Duff Clear rule). */ public static final int CLEAR = 1; - /** - * The Constant SRC indicates that the source is copied to the destination + /** + * The Constant SRC indicates that the source is copied to the destination * (Porter-Duff Source rule). */ public static final int SRC = 2; - /** The Constant DST indicates that the destination is left untouched + /** + * The Constant DST indicates that the destination is left untouched * (Porter-Duff Destination rule). */ public static final int DST = 9; - /** - * The Constant SRC_OVER indicates that the source is composited over - * the destination (Porter-Duff Source Over Destination rule). + /** + * The Constant SRC_OVER indicates that the source is composited over the + * destination (Porter-Duff Source Over Destination rule). */ public static final int SRC_OVER = 3; /** - * The Constant DST_OVER indicates that The destination is composited over - * the source and the result replaces the destination - * (Porter-Duff Destination Over Source rule). + * The Constant DST_OVER indicates that The destination is composited over + * the source and the result replaces the destination (Porter-Duff + * Destination Over Source rule). */ public static final int DST_OVER = 4; /** - * The Constant SRC_IN indicates that the part of the source lying - * inside of the destination replaces the destination (Porter-Duff - * Source In Destination rule). + * The Constant SRC_IN indicates that the part of the source lying inside of + * the destination replaces the destination (Porter-Duff Source In + * Destination rule). */ public static final int SRC_IN = 5; - /** - * The Constant DST_IN indicates that the part of the destination - * lying inside of the source replaces the destination - * (Porter-Duff Destination In Source rule). + /** + * The Constant DST_IN indicates that the part of the destination lying + * inside of the source replaces the destination (Porter-Duff Destination In + * Source rule). */ public static final int DST_IN = 6; /** - * The Constant SRC_OUT indicates that the part of the source lying - * outside of the destination replaces the destination (Porter-Duff - * Source Held Out By Destination rule). + * The Constant SRC_OUT indicates that the part of the source lying outside + * of the destination replaces the destination (Porter-Duff Source Held Out + * By Destination rule). */ public static final int SRC_OUT = 7; - /** - * The Constant DST_OUT indicates that the part of the destination - * lying outside of the source replaces the destination (Porter-Duff - * Destination Held Out By Source rule). + /** + * The Constant DST_OUT indicates that the part of the destination lying + * outside of the source replaces the destination (Porter-Duff Destination + * Held Out By Source rule). */ public static final int DST_OUT = 8; - /** - * The Constant SRC_ATOP indicates that the part of the source lying - * inside of the destination is composited onto the destination - * (Porter-Duff Source Atop Destination rule). + /** + * The Constant SRC_ATOP indicates that the part of the source lying inside + * of the destination is composited onto the destination (Porter-Duff Source + * Atop Destination rule). */ public static final int SRC_ATOP = 10; - /** - * The Constant DST_ATOP indicates that the part of the destination - * lying inside of the source is composited over the source and replaces - * the destination (Porter-Duff Destination Atop Source rule). + /** + * The Constant DST_ATOP indicates that the part of the destination lying + * inside of the source is composited over the source and replaces the + * destination (Porter-Duff Destination Atop Source rule). */ public static final int DST_ATOP = 11; /** - * The Constant XOR indicates that the part of the source that lies - * outside of the destination is combined with the part of the destination - * that lies outside of the source (Porter-Duff Source Xor Destination rule). + * The Constant XOR indicates that the part of the source that lies outside + * of the destination is combined with the part of the destination that lies + * outside of the source (Porter-Duff Source Xor Destination rule). */ public static final int XOR = 12; - /** AlphaComposite object with the opaque CLEAR rule and an alpha of 1.0f. */ + /** + * AlphaComposite object with the opaque CLEAR rule and an alpha of 1.0f. + */ public static final AlphaComposite Clear = new AlphaComposite(CLEAR); - /** AlphaComposite object with the opaque SRC rule and an alpha of 1.0f. */ + /** + * AlphaComposite object with the opaque SRC rule and an alpha of 1.0f. + */ public static final AlphaComposite Src = new AlphaComposite(SRC); - /** AlphaComposite object with the opaque DST rule and an alpha of 1.0f. */ + /** + * AlphaComposite object with the opaque DST rule and an alpha of 1.0f. + */ public static final AlphaComposite Dst = new AlphaComposite(DST); - /** AlphaComposite object with the opaque SRC_OVER rule and an alpha of 1.0f. */ + /** + * AlphaComposite object with the opaque SRC_OVER rule and an alpha of 1.0f. + */ public static final AlphaComposite SrcOver = new AlphaComposite(SRC_OVER); - /** AlphaComposite object with the opaque DST_OVER rule and an alpha of 1.0f. */ + /** + * AlphaComposite object with the opaque DST_OVER rule and an alpha of 1.0f. + */ public static final AlphaComposite DstOver = new AlphaComposite(DST_OVER); - /** AlphaComposite object with the opaque SRC_IN rule and an alpha of 1.0f. */ + /** + * AlphaComposite object with the opaque SRC_IN rule and an alpha of 1.0f. + */ public static final AlphaComposite SrcIn = new AlphaComposite(SRC_IN); - /** AlphaComposite object with the opaque DST_IN rule and an alpha of 1.0f. */ + /** + * AlphaComposite object with the opaque DST_IN rule and an alpha of 1.0f. + */ public static final AlphaComposite DstIn = new AlphaComposite(DST_IN); - /** AlphaComposite object with the opaque SRC_OUT rule and an alpha of 1.0f. */ + /** + * AlphaComposite object with the opaque SRC_OUT rule and an alpha of 1.0f. + */ public static final AlphaComposite SrcOut = new AlphaComposite(SRC_OUT); - /** AlphaComposite object with the opaque DST_OUT rule and an alpha of 1.0f. */ + /** + * AlphaComposite object with the opaque DST_OUT rule and an alpha of 1.0f. + */ public static final AlphaComposite DstOut = new AlphaComposite(DST_OUT); - /** AlphaComposite object with the opaque SRC_ATOP rule and an alpha of 1.0f. */ + /** + * AlphaComposite object with the opaque SRC_ATOP rule and an alpha of 1.0f. + */ public static final AlphaComposite SrcAtop = new AlphaComposite(SRC_ATOP); - /** AlphaComposite object with the opaque DST_ATOP rule and an alpha of 1.0f. */ + /** + * AlphaComposite object with the opaque DST_ATOP rule and an alpha of 1.0f. + */ public static final AlphaComposite DstAtop = new AlphaComposite(DST_ATOP); - /** AlphaComposite object with the opaque XOR rule and an alpha of 1.0f. */ + /** + * AlphaComposite object with the opaque XOR rule and an alpha of 1.0f. + */ public static final AlphaComposite Xor = new AlphaComposite(XOR); - /** The rule. */ + /** + * The rule. + */ private int rule; - - /** The alpha. */ + + /** + * The alpha. + */ private float alpha; /** - * Instantiates a new alpha composite. - * Creates a context for the compositing operation. The context contains state that is used in performing the compositing operation. + * Instantiates a new alpha composite. Creates a context for the compositing + * operation. The context contains state that is used in performing the + * compositing operation. * - * @param rule the rule - * @param alpha the alpha + * @param rule + * the rule. + * @param alpha + * the alpha. */ - private AlphaComposite(int rule, float alpha){ - if(rule < CLEAR || rule > XOR) { + private AlphaComposite(int rule, float alpha) { + if (rule < CLEAR || rule > XOR) { // awt.11D=Unknown rule throw new IllegalArgumentException(Messages.getString("awt.11D")); //$NON-NLS-1$ } - if(alpha < 0.0f || alpha > 1.0f) { + if (alpha < 0.0f || alpha > 1.0f) { // awt.11E=Wrong alpha value throw new IllegalArgumentException(Messages.getString("awt.11E")); //$NON-NLS-1$ } @@ -181,41 +215,44 @@ public final class AlphaComposite implements Composite { /** * Instantiates a new alpha composite. * - * @param rule the rule + * @param rule + * the rule. */ - private AlphaComposite(int rule){ + private AlphaComposite(int rule) { this(rule, 1.0f); } /** * Creates a CompositeContext object with the specified source ColorModel, - * destination ColorModel and RenderingHints parameters for a composing + * destination ColorModel and RenderingHints parameters for a composing * operation. * - * @param srcColorModel the source's ColorModel. - * @param dstColorModel the destination's ColorModel. - * @param hints the RenderingHints object. - * - * @return the CompositeContext object. - * - * @see java.awt.Composite#createContext(java.awt.image.ColorModel, java.awt.image.ColorModel, java.awt.RenderingHints) + * @param srcColorModel + * the source's ColorModel. + * @param dstColorModel + * the destination's ColorModel. + * @param hints + * the RenderingHints object. + * @return the CompositeContext object. + * @see java.awt.Composite#createContext(java.awt.image.ColorModel, + * java.awt.image.ColorModel, java.awt.RenderingHints) */ - public CompositeContext createContext(ColorModel srcColorModel, - ColorModel dstColorModel, RenderingHints hints) { + public CompositeContext createContext(ColorModel srcColorModel, ColorModel dstColorModel, + RenderingHints hints) { return new ICompositeContext(this, srcColorModel, dstColorModel); } /** * Compares the AlphaComposite object with the specified object. * - * @param obj the Object to be compared. - * + * @param obj + * the Object to be compared. * @return true, if the AlphaComposite object is equal to the specified - * object. + * object. */ @Override public boolean equals(Object obj) { - if(!(obj instanceof AlphaComposite)) { + if (!(obj instanceof AlphaComposite)) { return false; } AlphaComposite other = (AlphaComposite)obj; @@ -247,11 +284,11 @@ public final class AlphaComposite implements Composite { } /** - * Gets the alpha value of this AlphaComposite object; returns 1.0 if - * this AlphaComposite object doesn't have alpha value. + * Gets the alpha value of this AlphaComposite object; returns 1.0 if this + * AlphaComposite object doesn't have alpha value. * - * @return the alpha value of this AlphaComposite object or 1.0 if - * this AlphaComposite object doesn't have alpha value. + * @return the alpha value of this AlphaComposite object or 1.0 if this + * AlphaComposite object doesn't have alpha value. */ public float getAlpha() { return alpha; @@ -260,13 +297,14 @@ public final class AlphaComposite implements Composite { /** * Gets the AlphaComposite instance with the specified rule and alpha value. * - * @param rule the compositing rule. - * @param alpha the alpha value. - * - * @return AlphaComposite instance. + * @param rule + * the compositing rule. + * @param alpha + * the alpha value. + * @return the AlphaComposite instance. */ public static AlphaComposite getInstance(int rule, float alpha) { - if(alpha == 1.0f) { + if (alpha == 1.0f) { return getInstance(rule); } return new AlphaComposite(rule, alpha); @@ -275,41 +313,40 @@ public final class AlphaComposite implements Composite { /** * Gets the AlphaComposite instance with the specified rule. * - * @param rule the compositing rule. - * - * @return AlphaComposite instance. + * @param rule + * the compositing rule. + * @return the AlphaComposite instance. */ public static AlphaComposite getInstance(int rule) { - switch(rule){ - case CLEAR: - return Clear; - case SRC: - return Src; - case DST: - return Dst; - case SRC_OVER: - return SrcOver; - case DST_OVER: - return DstOver; - case SRC_IN: - return SrcIn; - case DST_IN: - return DstIn; - case SRC_OUT: - return SrcOut; - case DST_OUT: - return DstOut; - case SRC_ATOP: - return SrcAtop; - case DST_ATOP: - return DstAtop; - case XOR: - return Xor; - default: - // awt.11D=Unknown rule - throw new IllegalArgumentException(Messages.getString("awt.11D")); //$NON-NLS-1$ + switch (rule) { + case CLEAR: + return Clear; + case SRC: + return Src; + case DST: + return Dst; + case SRC_OVER: + return SrcOver; + case DST_OVER: + return DstOver; + case SRC_IN: + return SrcIn; + case DST_IN: + return DstIn; + case SRC_OUT: + return SrcOut; + case DST_OUT: + return DstOut; + case SRC_ATOP: + return SrcAtop; + case DST_ATOP: + return DstAtop; + case XOR: + return Xor; + default: + // awt.11D=Unknown rule + throw new IllegalArgumentException(Messages.getString("awt.11D")); //$NON-NLS-1$ } } } - diff --git a/awt/java/awt/BasicStroke.java b/awt/java/awt/BasicStroke.java index 955dc6b..2457815 100644 --- a/awt/java/awt/BasicStroke.java +++ b/awt/java/awt/BasicStroke.java @@ -18,6 +18,7 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt; import java.awt.geom.GeneralPath; @@ -27,139 +28,188 @@ import org.apache.harmony.awt.internal.nls.Messages; import org.apache.harmony.misc.HashCode; /** - * The BasicStroke class specifies a set of rendering attributes for the outlines - * of graphics primitives. The BasicStroke attributes describe the shape of the - * pen which draws the outline of a Shape and the decorations applied at the ends - * and joins of path segments of the Shape. The BasicStroke has the following - * rendering attributes: + * The BasicStroke class specifies a set of rendering attributes for the + * outlines of graphics primitives. The BasicStroke attributes describe the + * shape of the pen which draws the outline of a Shape and the decorations + * applied at the ends and joins of path segments of the Shape. The BasicStroke + * has the following rendering attributes: * <p> * <ul> - * <li> line width -the pen width which draws the outlines.</li> - * <li> end caps - indicates the decoration applied to the ends of unclosed - * subpaths and dash segments. The BasicStroke defines three different decorations: - * CAP_BUTT, CAP_ROUND, and CAP_SQUARE.</li> - * <li>line joins - indicates the decoration applied at the intersection of - * two path segments and at the intersection of the endpoints of a subpath. - * The BasicStroke defines three decorations: JOIN_BEVEL, JOIN_MITER, - * and JOIN_ROUND.</li> - * <li>miter limit - the limit to trim a line join that has a JOIN_MITER + * <li>line width -the pen width which draws the outlines.</li> + * <li>end caps - indicates the decoration applied to the ends of unclosed + * subpaths and dash segments. The BasicStroke defines three different + * decorations: CAP_BUTT, CAP_ROUND, and CAP_SQUARE.</li> + * <li>line joins - indicates the decoration applied at the intersection of two + * path segments and at the intersection of the endpoints of a subpath. The + * BasicStroke defines three decorations: JOIN_BEVEL, JOIN_MITER, and + * JOIN_ROUND.</li> + * <li>miter limit - the limit to trim a line join that has a JOIN_MITER * decoration.</li> - * <li>dash attributes - the definition of how to make a dash pattern by - * alternating between opaque and transparent sections </li> + * <li>dash attributes - the definition of how to make a dash pattern by + * alternating between opaque and transparent sections</li> * </ul> + * </p> + * + * @since Android 1.0 */ public class BasicStroke implements Stroke { - /** - * The Constant CAP_BUTT indicates the ends of unclosed subpaths - * and dash segments have no added decoration. + /** + * The Constant CAP_BUTT indicates the ends of unclosed subpaths and dash + * segments have no added decoration. */ public static final int CAP_BUTT = 0; - - /** - * The Constant CAP_ROUND indicates the ends of unclosed subpaths - * and dash segments have a round decoration. + + /** + * The Constant CAP_ROUND indicates the ends of unclosed subpaths and dash + * segments have a round decoration. */ public static final int CAP_ROUND = 1; - - /** - * The Constant CAP_SQUARE indicates the ends of unclosed subpaths - * and dash segments have a square projection. + + /** + * The Constant CAP_SQUARE indicates the ends of unclosed subpaths and dash + * segments have a square projection. */ public static final int CAP_SQUARE = 2; - /** - * The Constant JOIN_MITER indicates that path segments are joined by + /** + * The Constant JOIN_MITER indicates that path segments are joined by * extending their outside edges until they meet. */ public static final int JOIN_MITER = 0; - - /** - * The Constant JOIN_ROUND indicates that path segments are joined by + + /** + * The Constant JOIN_ROUND indicates that path segments are joined by * rounding off the corner at a radius of half the line width. */ public static final int JOIN_ROUND = 1; - - /** - * The Constant JOIN_BEVEL indicates that path segments are joined by - * connecting the outer corners of their wide outlines with - * a straight segment. + + /** + * The Constant JOIN_BEVEL indicates that path segments are joined by + * connecting the outer corners of their wide outlines with a straight + * segment. */ public static final int JOIN_BEVEL = 2; - - /** Constants for calculating. */ - static final int MAX_LEVEL = 20; // Maximal deepness of curve subdivision - - /** The Constant CURVE_DELTA. */ - static final double CURVE_DELTA = 2.0; // Width tolerance - - /** The Constant CORNER_ANGLE. */ + + /** + * Constants for calculating. + */ + static final int MAX_LEVEL = 20; // Maximal deepness of curve subdivision + + /** + * The Constant CURVE_DELTA. + */ + static final double CURVE_DELTA = 2.0; // Width tolerance + + /** + * The Constant CORNER_ANGLE. + */ static final double CORNER_ANGLE = 4.0; // Minimum corner angle - - /** The Constant CORNER_ZERO. */ + + /** + * The Constant CORNER_ZERO. + */ static final double CORNER_ZERO = 0.01; // Zero angle - - /** The Constant CUBIC_ARC. */ + + /** + * The Constant CUBIC_ARC. + */ static final double CUBIC_ARC = 4.0 / 3.0 * (Math.sqrt(2.0) - 1); - /** Stroke width. */ + /** + * Stroke width. + */ float width; - - /** Stroke cap type. */ + + /** + * Stroke cap type. + */ int cap; - - /** Stroke join type. */ + + /** + * Stroke join type. + */ int join; - - /** Stroke miter limit. */ + + /** + * Stroke miter limit. + */ float miterLimit; - - /** Stroke dashes array. */ + + /** + * Stroke dashes array. + */ float dash[]; - - /** Stroke dash phase. */ + + /** + * Stroke dash phase. + */ float dashPhase; - /** The temporary pre-calculated values. */ + /** + * The temporary pre-calculated values. + */ double curveDelta; - - /** The corner delta. */ + + /** + * The corner delta. + */ double cornerDelta; - - /** The zero delta. */ + + /** + * The zero delta. + */ double zeroDelta; - /** The w2. */ + /** + * The w2. + */ double w2; - - /** The fmy. */ + + /** + * The fmy. + */ double fmx, fmy; - - /** The smy. */ + + /** + * The smy. + */ double scx, scy, smx, smy; - - /** The cy. */ + + /** + * The cy. + */ double mx, my, cx, cy; - /** The temporary indicators. */ + /** + * The temporary indicators. + */ boolean isMove; - - /** The is first. */ + + /** + * The is first. + */ boolean isFirst; - - /** The check move. */ + + /** + * The check move. + */ boolean checkMove; - - /** The temporary and destination work paths. */ + + /** + * The temporary and destination work paths. + */ BufferedPath dst, lp, rp, sp; - - /** Stroke dasher class. */ + + /** + * Stroke dasher class. + */ Dasher dasher; /** - * Instantiates a new BasicStroke with default width, cap, join, limit, - * dash attributes parameters. The default parameters are a solid line of - * width 1.0, CAP_SQUARE, JOIN_MITER, a miter limit of 10.0, null dash attributes, + * Instantiates a new BasicStroke with default width, cap, join, limit, dash + * attributes parameters. The default parameters are a solid line of width + * 1.0, CAP_SQUARE, JOIN_MITER, a miter limit of 10.0, null dash attributes, * and a dash phase of 0.0f. */ public BasicStroke() { @@ -167,17 +217,24 @@ public class BasicStroke implements Stroke { } /** - * Instantiates a new BasicStroke with the specified width, - * caps, joins, limit, dash attributes, dash phase parameters. + * Instantiates a new BasicStroke with the specified width, caps, joins, + * limit, dash attributes, dash phase parameters. * - * @param width the width of BasikStroke. - * @param cap the end decoration of BasikStroke. - * @param join the join segments decoration. - * @param miterLimit the limit to trim the miter join. - * @param dash the array with the dashing pattern. - * @param dashPhase the offset to start the dashing pattern. - */ - public BasicStroke(float width, int cap, int join, float miterLimit, float[] dash, float dashPhase) { + * @param width + * the width of BasikStroke. + * @param cap + * the end decoration of BasikStroke. + * @param join + * the join segments decoration. + * @param miterLimit + * the limit to trim the miter join. + * @param dash + * the array with the dashing pattern. + * @param dashPhase + * the offset to start the dashing pattern. + */ + public BasicStroke(float width, int cap, int join, float miterLimit, float[] dash, + float dashPhase) { if (width < 0.0f) { // awt.133=Negative width throw new IllegalArgumentException(Messages.getString("awt.133")); //$NON-NLS-1$ @@ -204,7 +261,7 @@ public class BasicStroke implements Stroke { throw new IllegalArgumentException(Messages.getString("awt.138")); //$NON-NLS-1$ } ZERO: { - for(int i = 0; i < dash.length; i++) { + for (int i = 0; i < dash.length; i++) { if (dash[i] < 0.0) { // awt.139=Negative dash[{0}] throw new IllegalArgumentException(Messages.getString("awt.139", i)); //$NON-NLS-1$ @@ -226,35 +283,43 @@ public class BasicStroke implements Stroke { } /** - * Instantiates a new BasicStroke with specified width, cap, join, limit - * and default dash attributes parameters. + * Instantiates a new BasicStroke with specified width, cap, join, limit and + * default dash attributes parameters. * - * @param width the width of BasikStroke. - * @param cap the end decoration of BasikStroke. - * @param join the join segments decoration. - * @param miterLimit the limit to trim the miter join. + * @param width + * the width of BasikStroke. + * @param cap + * the end decoration of BasikStroke. + * @param join + * the join segments decoration. + * @param miterLimit + * the limit to trim the miter join. */ public BasicStroke(float width, int cap, int join, float miterLimit) { this(width, cap, join, miterLimit, null, 0.0f); } /** - * Instantiates a new BasicStroke with specified width, cap, join - * and default limit and dash attributes parameters. + * Instantiates a new BasicStroke with specified width, cap, join and + * default limit and dash attributes parameters. * - * @param width the width of BasikStroke. - * @param cap the end decoration of BasikStroke. - * @param join the join segments decoration. + * @param width + * the width of BasikStroke. + * @param cap + * the end decoration of BasikStroke. + * @param join + * the join segments decoration. */ public BasicStroke(float width, int cap, int join) { this(width, cap, join, 10.0f, null, 0.0f); } /** - * Instantiates a new BasicStroke with specified width and default cap, join, - * limit, dash attributes parameters. + * Instantiates a new BasicStroke with specified width and default cap, + * join, limit, dash attributes parameters. * - * @param width the width of BasicStroke. + * @param width + * the width of BasicStroke. */ public BasicStroke(float width) { this(width, CAP_SQUARE, JOIN_MITER, 10.0f, null, 0.0f); @@ -288,7 +353,8 @@ public class BasicStroke implements Stroke { } /** - * Gets the miter limit of the BasicStroke (the limit to trim the miter join). + * Gets the miter limit of the BasicStroke (the limit to trim the miter + * join). * * @return the miter limit of the BasicStroke. */ @@ -338,10 +404,10 @@ public class BasicStroke implements Stroke { /** * Compares this BasicStroke object with the specified Object. * - * @param obj the Object to be compared. - * - * @return true, if the Object is a BasicStroke with the same data - * values as this BasicStroke; false otherwise. + * @param obj + * the Object to be compared. + * @return true, if the Object is a BasicStroke with the same data values as + * this BasicStroke; false otherwise. */ @Override public boolean equals(Object obj) { @@ -350,13 +416,9 @@ public class BasicStroke implements Stroke { } if (obj instanceof BasicStroke) { BasicStroke bs = (BasicStroke)obj; - return - bs.width == width && - bs.cap == cap && - bs.join == join && - bs.miterLimit == miterLimit && - bs.dashPhase == dashPhase && - java.util.Arrays.equals(bs.dash, dash); + return bs.width == width && bs.cap == cap && bs.join == join + && bs.miterLimit == miterLimit && bs.dashPhase == dashPhase + && java.util.Arrays.equals(bs.dash, dash); } return false; } @@ -364,9 +426,9 @@ public class BasicStroke implements Stroke { /** * Calculates allowable curve derivation. * - * @param width the width - * - * @return the curve delta + * @param width + * the width. + * @return the curve delta. */ double getCurveDelta(double width) { double a = width + CURVE_DELTA; @@ -378,9 +440,9 @@ public class BasicStroke implements Stroke { /** * Calculates the value to detect a small angle. * - * @param width the width - * - * @return the corner delta + * @param width + * the width. + * @return the corner delta. */ double getCornerDelta(double width) { return width * width * Math.sin(Math.PI * CORNER_ANGLE / 180.0); @@ -389,22 +451,21 @@ public class BasicStroke implements Stroke { /** * Calculates value to detect a zero angle. * - * @param width the width - * - * @return the zero delta + * @param width + * the width. + * @return the zero delta. */ double getZeroDelta(double width) { return width * width * Math.sin(Math.PI * CORNER_ZERO / 180.0); } /** - * Creates a Shape from the outline of the specified shape - * drawn with this BasicStroke. - * - * @param s the specified Shape to be stroked. + * Creates a Shape from the outline of the specified shape drawn with this + * BasicStroke. * + * @param s + * the specified Shape to be stroked. * @return the Shape of the stroked outline. - * * @see java.awt.Stroke#createStrokedShape(java.awt.Shape) */ public Shape createStrokedShape(Shape s) { @@ -429,7 +490,8 @@ public class BasicStroke implements Stroke { /** * Generates a shape with a solid (not dashed) outline. * - * @param p - the PathIterator of source shape + * @param p + * the PathIterator of source shape. */ void createSolidShape(PathIterator p) { double coords[] = new double[6]; @@ -439,36 +501,37 @@ public class BasicStroke implements Stroke { checkMove = true; boolean isClosed = true; - while(!p.isDone()) { - switch(p.currentSegment(coords)) { - case PathIterator.SEG_MOVETO: - if (!isClosed) { - closeSolidShape(); - } - rp.clean(); - mx = cx = coords[0]; - my = cy = coords[1]; - isMove = true; - isClosed = false; - break; - case PathIterator.SEG_LINETO: - addLine(cx, cy, cx = coords[0], cy = coords[1], true); - break; - case PathIterator.SEG_QUADTO: - addQuad(cx, cy, coords[0], coords[1], cx = coords[2], cy = coords[3]); - break; - case PathIterator.SEG_CUBICTO: - addCubic(cx, cy, coords[0], coords[1], coords[2], coords[3], cx = coords[4], cy = coords[5]); - break; - case PathIterator.SEG_CLOSE: - addLine(cx, cy, mx, my, false); - addJoin(lp, mx, my, lp.xMove, lp.yMove, true); - addJoin(rp, mx, my, rp.xMove, rp.yMove, false); - lp.closePath(); - rp.closePath(); - lp.appendReverse(rp); - isClosed = true; - break; + while (!p.isDone()) { + switch (p.currentSegment(coords)) { + case PathIterator.SEG_MOVETO: + if (!isClosed) { + closeSolidShape(); + } + rp.clean(); + mx = cx = coords[0]; + my = cy = coords[1]; + isMove = true; + isClosed = false; + break; + case PathIterator.SEG_LINETO: + addLine(cx, cy, cx = coords[0], cy = coords[1], true); + break; + case PathIterator.SEG_QUADTO: + addQuad(cx, cy, coords[0], coords[1], cx = coords[2], cy = coords[3]); + break; + case PathIterator.SEG_CUBICTO: + addCubic(cx, cy, coords[0], coords[1], coords[2], coords[3], cx = coords[4], + cy = coords[5]); + break; + case PathIterator.SEG_CLOSE: + addLine(cx, cy, mx, my, false); + addJoin(lp, mx, my, lp.xMove, lp.yMove, true); + addJoin(rp, mx, my, rp.xMove, rp.yMove, false); + lp.closePath(); + rp.closePath(); + lp.appendReverse(rp); + isClosed = true; + break; } p.next(); } @@ -492,7 +555,8 @@ public class BasicStroke implements Stroke { /** * Generates dashed stroked shape. * - * @param p - the PathIterator of source shape + * @param p + * the PathIterator of source shape. */ void createDashedShape(PathIterator p) { double coords[] = new double[6]; @@ -502,52 +566,53 @@ public class BasicStroke implements Stroke { checkMove = false; boolean isClosed = true; - while(!p.isDone()) { - switch(p.currentSegment(coords)) { - case PathIterator.SEG_MOVETO: + while (!p.isDone()) { + switch (p.currentSegment(coords)) { + case PathIterator.SEG_MOVETO: - if (!isClosed) { - closeDashedShape(); - } + if (!isClosed) { + closeDashedShape(); + } - dasher = new Dasher(dash, dashPhase); - lp.clean(); - rp.clean(); - sp = null; - isFirst = true; - isMove = true; - isClosed = false; - mx = cx = coords[0]; - my = cy = coords[1]; - break; - case PathIterator.SEG_LINETO: - addDashLine(cx, cy, cx = coords[0], cy = coords[1]); - break; - case PathIterator.SEG_QUADTO: - addDashQuad(cx, cy, coords[0], coords[1], cx = coords[2], cy = coords[3]); - break; - case PathIterator.SEG_CUBICTO: - addDashCubic(cx, cy, coords[0], coords[1], coords[2], coords[3], cx = coords[4], cy = coords[5]); - break; - case PathIterator.SEG_CLOSE: - addDashLine(cx, cy, cx = mx, cy = my); - - if (dasher.isConnected()) { - // Connect current and head segments - addJoin(lp, fmx, fmy, sp.xMove, sp.yMove, true); - lp.join(sp); - addJoin(lp, fmx, fmy, rp.xLast, rp.yLast, true); - lp.combine(rp); - addCap(lp, smx, smy, lp.xMove, lp.yMove); - lp.closePath(); - dst.append(lp); + dasher = new Dasher(dash, dashPhase); + lp.clean(); + rp.clean(); sp = null; - } else { - closeDashedShape(); - } + isFirst = true; + isMove = true; + isClosed = false; + mx = cx = coords[0]; + my = cy = coords[1]; + break; + case PathIterator.SEG_LINETO: + addDashLine(cx, cy, cx = coords[0], cy = coords[1]); + break; + case PathIterator.SEG_QUADTO: + addDashQuad(cx, cy, coords[0], coords[1], cx = coords[2], cy = coords[3]); + break; + case PathIterator.SEG_CUBICTO: + addDashCubic(cx, cy, coords[0], coords[1], coords[2], coords[3], + cx = coords[4], cy = coords[5]); + break; + case PathIterator.SEG_CLOSE: + addDashLine(cx, cy, cx = mx, cy = my); - isClosed = true; - break; + if (dasher.isConnected()) { + // Connect current and head segments + addJoin(lp, fmx, fmy, sp.xMove, sp.yMove, true); + lp.join(sp); + addJoin(lp, fmx, fmy, rp.xLast, rp.yLast, true); + lp.combine(rp); + addCap(lp, smx, smy, lp.xMove, lp.yMove); + lp.closePath(); + dst.append(lp); + sp = null; + } else { + closeDashedShape(); + } + + isClosed = true; + break; } p.next(); } @@ -583,11 +648,16 @@ public class BasicStroke implements Stroke { /** * Adds cap to the work path. * - * @param p - the BufferedPath object of work path - * @param x0 - the x coordinate of the source path - * @param y0 - the y coordinate on the source path - * @param x2 - the x coordinate of the next point on the work path - * @param y2 - the y coordinate of the next point on the work path + * @param p + * the BufferedPath object of work path. + * @param x0 + * the x coordinate of the source path. + * @param y0 + * the y coordinate on the source path. + * @param x2 + * the x coordinate of the next point on the work path. + * @param y2 + * the y coordinate of the next point on the work path. */ void addCap(BufferedPath p, double x0, double y0, double x2, double y2) { double x1 = p.xLast; @@ -597,42 +667,49 @@ public class BasicStroke implements Stroke { double x20 = x2 - x0; double y20 = y2 - y0; - switch(cap) { - case CAP_BUTT: - p.lineTo(x2, y2); - break; - case CAP_ROUND: - double mx = x10 * CUBIC_ARC; - double my = y10 * CUBIC_ARC; - - double x3 = x0 + y10; - double y3 = y0 - x10; - - x10 *= CUBIC_ARC; - y10 *= CUBIC_ARC; - x20 *= CUBIC_ARC; - y20 *= CUBIC_ARC; - - p.cubicTo(x1 + y10, y1 - x10, x3 + mx, y3 + my, x3, y3); - p.cubicTo(x3 - mx, y3 - my, x2 - y20, y2 + x20, x2, y2); - break; - case CAP_SQUARE: - p.lineTo(x1 + y10, y1 - x10); - p.lineTo(x2 - y20, y2 + x20); - p.lineTo(x2, y2); - break; + switch (cap) { + case CAP_BUTT: + p.lineTo(x2, y2); + break; + case CAP_ROUND: + double mx = x10 * CUBIC_ARC; + double my = y10 * CUBIC_ARC; + + double x3 = x0 + y10; + double y3 = y0 - x10; + + x10 *= CUBIC_ARC; + y10 *= CUBIC_ARC; + x20 *= CUBIC_ARC; + y20 *= CUBIC_ARC; + + p.cubicTo(x1 + y10, y1 - x10, x3 + mx, y3 + my, x3, y3); + p.cubicTo(x3 - mx, y3 - my, x2 - y20, y2 + x20, x2, y2); + break; + case CAP_SQUARE: + p.lineTo(x1 + y10, y1 - x10); + p.lineTo(x2 - y20, y2 + x20); + p.lineTo(x2, y2); + break; } } /** * Adds bevel and miter join to the work path. * - * @param p - the BufferedPath object of work path - * @param x0 - the x coordinate of the source path - * @param y0 - the y coordinate on the source path - * @param x2 - the x coordinate of the next point on the work path - * @param y2 - the y coordinate of the next point on the work path - * @param isLeft - the orientation of work path, true if work path lies to the left from source path, false otherwise + * @param p + * the BufferedPath object of work path. + * @param x0 + * the x coordinate of the source path. + * @param y0 + * the y coordinate on the source path. + * @param x2 + * the x coordinate of the next point on the work path. + * @param y2 + * the y coordinate of the next point on the work path. + * @param isLeft + * the orientation of work path, true if work path lies to the + * left from source path, false otherwise. */ void addJoin(BufferedPath p, double x0, double y0, double x2, double y2, boolean isLeft) { double x1 = p.xLast; @@ -667,26 +744,26 @@ public class BasicStroke implements Stroke { p.lineTo(x0, y0); p.lineTo(x2, y2); } else { - switch(join) { - case JOIN_BEVEL: - p.lineTo(x2, y2); - break; - case JOIN_MITER: - double s1 = x1 * x10 + y1 * y10; - double s2 = x2 * x20 + y2 * y20; - double x3 = (s1 * y20 - s2 * y10) / sin0; - double y3 = (s2 * x10 - s1 * x20) / sin0; - double x30 = x3 - x0; - double y30 = y3 - y0; - double miterLength = Math.sqrt(x30 * x30 + y30 * y30); - if (miterLength < miterLimit * w2) { - p.lineTo(x3, y3); - } - p.lineTo(x2, y2); - break; - case JOIN_ROUND: - addRoundJoin(p, x0, y0, x2, y2, isLeft); - break; + switch (join) { + case JOIN_BEVEL: + p.lineTo(x2, y2); + break; + case JOIN_MITER: + double s1 = x1 * x10 + y1 * y10; + double s2 = x2 * x20 + y2 * y20; + double x3 = (s1 * y20 - s2 * y10) / sin0; + double y3 = (s2 * x10 - s1 * x20) / sin0; + double x30 = x3 - x0; + double y30 = y3 - y0; + double miterLength = Math.sqrt(x30 * x30 + y30 * y30); + if (miterLength < miterLimit * w2) { + p.lineTo(x3, y3); + } + p.lineTo(x2, y2); + break; + case JOIN_ROUND: + addRoundJoin(p, x0, y0, x2, y2, isLeft); + break; } } } @@ -694,12 +771,19 @@ public class BasicStroke implements Stroke { /** * Adds round join to the work path. * - * @param p - the BufferedPath object of work path - * @param x0 - the x coordinate of the source path - * @param y0 - the y coordinate on the source path - * @param x2 - the x coordinate of the next point on the work path - * @param y2 - the y coordinate of the next point on the work path - * @param isLeft - the orientation of work path, true if work path lies to the left from source path, false otherwise + * @param p + * the BufferedPath object of work path. + * @param x0 + * the x coordinate of the source path. + * @param y0 + * the y coordinate on the source path. + * @param x2 + * the x coordinate of the next point on the work path. + * @param y2 + * the y coordinate of the next point on the work path. + * @param isLeft + * the orientation of work path, true if work path lies to the + * left from source path, false otherwise. */ void addRoundJoin(BufferedPath p, double x0, double y0, double x2, double y2, boolean isLeft) { double x1 = p.xLast; @@ -763,11 +847,16 @@ public class BasicStroke implements Stroke { /** * Adds solid line segment to the work path. * - * @param x1 - the x coordinate of the start line point - * @param y1 - the y coordinate of the start line point - * @param x2 - the x coordinate of the end line point - * @param y2 - the y coordinate of the end line point - * @param zero - if true it's allowable to add zero length line segment + * @param x1 + * the x coordinate of the start line point. + * @param y1 + * the y coordinate of the start line point. + * @param x2 + * the x coordinate of the end line point. + * @param y2 + * the y coordinate of the end line point. + * @param zero + * if true it's allowable to add zero length line segment. */ void addLine(double x1, double y1, double x2, double y2, boolean zero) { double dx = x2 - x1; @@ -808,12 +897,18 @@ public class BasicStroke implements Stroke { /** * Adds solid quad segment to the work path. * - * @param x1 - the x coordinate of the first control point - * @param y1 - the y coordinate of the first control point - * @param x2 - the x coordinate of the second control point - * @param y2 - the y coordinate of the second control point - * @param x3 - the x coordinate of the third control point - * @param y3 - the y coordinate of the third control point + * @param x1 + * the x coordinate of the first control point. + * @param y1 + * the y coordinate of the first control point. + * @param x2 + * the x coordinate of the second control point. + * @param y2 + * the y coordinate of the second control point. + * @param x3 + * the x coordinate of the third control point. + * @param y3 + * the y coordinate of the third control point. */ void addQuad(double x1, double y1, double x2, double y2, double x3, double y3) { double x21 = x2 - x1; @@ -841,11 +936,11 @@ public class BasicStroke implements Stroke { double w; w = w2 / l21; - double mx1 = - y21 * w; - double my1 = x21 * w; + double mx1 = -y21 * w; + double my1 = x21 * w; w = w2 / l23; - double mx3 = y23 * w; - double my3 = - x23 * w; + double mx3 = y23 * w; + double my3 = -x23 * w; double lx1 = x1 + mx1; double ly1 = y1 + my1; @@ -903,15 +998,23 @@ public class BasicStroke implements Stroke { } /** - * Subdivides solid quad curve to make outline for source quad segment and adds it to work path. + * Subdivides solid quad curve to make outline for source quad segment and + * adds it to work path. * - * @param x1 - the x coordinate of the first control point - * @param y1 - the y coordinate of the first control point - * @param x2 - the x coordinate of the second control point - * @param y2 - the y coordinate of the second control point - * @param x3 - the x coordinate of the third control point - * @param y3 - the y coordinate of the third control point - * @param level - the maximum level of subdivision deepness + * @param x1 + * the x coordinate of the first control point. + * @param y1 + * the y coordinate of the first control point. + * @param x2 + * the x coordinate of the second control point. + * @param y2 + * the y coordinate of the second control point. + * @param x3 + * the x coordinate of the third control point. + * @param y3 + * the y coordinate of the third control point. + * @param level + * the maximum level of subdivision deepness. */ void addSubQuad(double x1, double y1, double x2, double y2, double x3, double y3, int level) { double x21 = x2 - x1; @@ -939,8 +1042,8 @@ public class BasicStroke implements Stroke { double mx2 = (x21 * l23 + x23 * l21) * w; double my2 = (y21 * l23 + y23 * l21) * w; w = w2 / l23; - double mx3 = y23 * w; - double my3 = - x23 * w; + double mx3 = y23 * w; + double my3 = -x23 * w; lp.quadTo(x2 + mx2, y2 + my2, x3 + mx3, y3 + my3); rp.quadTo(x2 - mx2, y2 - my2, x3 - mx3, y3 - my3); } @@ -949,16 +1052,25 @@ public class BasicStroke implements Stroke { /** * Adds solid cubic segment to the work path. * - * @param x1 - the x coordinate of the first control point - * @param y1 - the y coordinate of the first control point - * @param x2 - the x coordinate of the second control point - * @param y2 - the y coordinate of the second control point - * @param x3 - the x coordinate of the third control point - * @param y3 - the y coordinate of the third control point - * @param x4 - the x coordinate of the fours control point - * @param y4 - the y coordinate of the fours control point - */ - void addCubic(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) { + * @param x1 + * the x coordinate of the first control point. + * @param y1 + * the y coordinate of the first control point. + * @param x2 + * the x coordinate of the second control point. + * @param y2 + * the y coordinate of the second control point. + * @param x3 + * the x coordinate of the third control point. + * @param y3 + * the y coordinate of the third control point. + * @param x4 + * the x coordinate of the fours control point. + * @param y4 + * the y coordinate of the fours control point. + */ + void addCubic(double x1, double y1, double x2, double y2, double x3, double y3, double x4, + double y4) { double x12 = x1 - x2; double y12 = y1 - y2; double x23 = x2 - x3; @@ -997,35 +1109,32 @@ public class BasicStroke implements Stroke { if (l12 == 0.0) { w = w2 / l23; - mx1 = y23 * w; - my1 = - x23 * w; + mx1 = y23 * w; + my1 = -x23 * w; w = w2 / l34; - mx4 = y34 * w; - my4 = - x34 * w; - onLine = - x23 * y34 + y23 * x34 == 0.0; // sin3 - } else - if (l34 == 0.0) { + mx4 = y34 * w; + my4 = -x34 * w; + onLine = -x23 * y34 + y23 * x34 == 0.0; // sin3 + } else if (l34 == 0.0) { w = w2 / l12; - mx1 = y12 * w; - my1 = - x12 * w; + mx1 = y12 * w; + my1 = -x12 * w; w = w2 / l23; - mx4 = y23 * w; - my4 = - x23 * w; - onLine = - x12 * y23 + y12 * x23 == 0.0; // sin2 + mx4 = y23 * w; + my4 = -x23 * w; + onLine = -x12 * y23 + y12 * x23 == 0.0; // sin2 } else { w = w2 / l12; - mx1 = y12 * w; - my1 = - x12 * w; + mx1 = y12 * w; + my1 = -x12 * w; w = w2 / l34; - mx4 = y34 * w; - my4 = - x34 * w; + mx4 = y34 * w; + my4 = -x34 * w; if (l23 == 0.0) { - onLine = - x12 * y34 + y12 * x34 == 0.0; + onLine = -x12 * y34 + y12 * x34 == 0.0; } else { - onLine = - - x12 * y34 + y12 * x34 == 0.0 && - - x12 * y23 + y12 * x23 == 0.0 && // sin2 - - x23 * y34 + y23 * x34 == 0.0; // sin3 + onLine = -x12 * y34 + y12 * x34 == 0.0 && -x12 * y23 + y12 * x23 == 0.0 && // sin2 + -x23 * y34 + y23 * x34 == 0.0; // sin3 } } @@ -1063,8 +1172,7 @@ public class BasicStroke implements Stroke { if (0.0 < t && t < 1.0) { roots[rc++] = t; } - } else - if (d > 0.0) { + } else if (d > 0.0) { d = Math.sqrt(d); double z = l12 + l34 - l23 - l23; double t; @@ -1087,15 +1195,15 @@ public class BasicStroke implements Stroke { } roots[rc++] = 1.0; - double ax = - x34 - x12 + x23 + x23; - double ay = - y34 - y12 + y23 + y23; - double bx = 3.0 * (- x23 + x12); - double by = 3.0 * (- y23 + y12); - double cx = 3.0 * (- x12); - double cy = 3.0 * (- y12); + double ax = -x34 - x12 + x23 + x23; + double ay = -y34 - y12 + y23 + y23; + double bx = 3.0 * (-x23 + x12); + double by = 3.0 * (-y23 + y12); + double cx = 3.0 * (-x12); + double cy = 3.0 * (-y12); double xPrev = x1; double yPrev = y1; - for(int i = 0; i < rc; i++) { + for (int i = 0; i < rc; i++) { double t = roots[i]; double px = t * (t * (t * ax + bx) + cx) + x1; double py = t * (t * (t * ay + by) + cy) + y1; @@ -1109,8 +1217,8 @@ public class BasicStroke implements Stroke { } xPrev = px; yPrev = py; - mx1 = - mx1; - my1 = - my1; + mx1 = -mx1; + my1 = -my1; } } else { lp.cubicTo(x2 + mx1, y2 + my1, x3 + mx4, y3 + my4, x4 + mx4, y4 + my4); @@ -1122,19 +1230,30 @@ public class BasicStroke implements Stroke { } /** - * Subdivides solid cubic curve to make outline for source quad segment and adds it to work path. + * Subdivides solid cubic curve to make outline for source quad segment and + * adds it to work path. * - * @param x1 - the x coordinate of the first control point - * @param y1 - the y coordinate of the first control point - * @param x2 - the x coordinate of the second control point - * @param y2 - the y coordinate of the second control point - * @param x3 - the x coordinate of the third control point - * @param y3 - the y coordinate of the third control point - * @param x4 - the x coordinate of the fours control point - * @param y4 - the y coordinate of the fours control point - * @param level - the maximum level of subdivision deepness - */ - void addSubCubic(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4, int level) { + * @param x1 + * the x coordinate of the first control point. + * @param y1 + * the y coordinate of the first control point. + * @param x2 + * the x coordinate of the second control point. + * @param y2 + * the y coordinate of the second control point. + * @param x3 + * the x coordinate of the third control point. + * @param y3 + * the y coordinate of the third control point. + * @param x4 + * the x coordinate of the fours control point. + * @param y4 + * the y coordinate of the fours control point. + * @param level + * the maximum level of subdivision deepness. + */ + void addSubCubic(double x1, double y1, double x2, double y2, double x3, double y3, double x4, + double y4, int level) { double x12 = x1 - x2; double y12 = y1 - y2; double x23 = x2 - x3; @@ -1142,19 +1261,18 @@ public class BasicStroke implements Stroke { double x34 = x3 - x4; double y34 = y3 - y4; - double cos2 = - x12 * x23 - y12 * y23; - double cos3 = - x23 * x34 - y23 * y34; - double sin2 = - x12 * y23 + y12 * x23; - double sin3 = - x23 * y34 + y23 * x34; - double sin0 = - x12 * y34 + y12 * x34; - double cos0 = - x12 * x34 - y12 * y34; - - if (level < MAX_LEVEL && (sin2 != 0.0 || sin3 != 0.0 || sin0 != 0.0) && - (cos2 >= 0.0 || cos3 >= 0.0 || cos0 >= 0.0 || - (Math.abs(sin2 / cos2) > curveDelta) || - (Math.abs(sin3 / cos3) > curveDelta) || - (Math.abs(sin0 / cos0) > curveDelta))) - { + double cos2 = -x12 * x23 - y12 * y23; + double cos3 = -x23 * x34 - y23 * y34; + double sin2 = -x12 * y23 + y12 * x23; + double sin3 = -x23 * y34 + y23 * x34; + double sin0 = -x12 * y34 + y12 * x34; + double cos0 = -x12 * x34 - y12 * y34; + + if (level < MAX_LEVEL + && (sin2 != 0.0 || sin3 != 0.0 || sin0 != 0.0) + && (cos2 >= 0.0 || cos3 >= 0.0 || cos0 >= 0.0 + || (Math.abs(sin2 / cos2) > curveDelta) + || (Math.abs(sin3 / cos3) > curveDelta) || (Math.abs(sin0 / cos0) > curveDelta))) { double cx = (x2 + x3) / 2.0; double cy = (y2 + y3) / 2.0; double lx2 = (x2 + x1) / 2.0; @@ -1177,27 +1295,26 @@ public class BasicStroke implements Stroke { if (l12 == 0.0) { w = w2 / l23; - mx1 = y23 * w; - my1 = - x23 * w; + mx1 = y23 * w; + my1 = -x23 * w; w = w2 / l34; - mx4 = y34 * w; - my4 = - x34 * w; - } else - if (l34 == 0.0) { + mx4 = y34 * w; + my4 = -x34 * w; + } else if (l34 == 0.0) { w = w2 / l12; - mx1 = y12 * w; - my1 = - x12 * w; + mx1 = y12 * w; + my1 = -x12 * w; w = w2 / l23; - mx4 = y23 * w; - my4 = - x23 * w; + mx4 = y23 * w; + my4 = -x23 * w; } else { // Common case w = w2 / l12; - mx1 = y12 * w; - my1 = - x12 * w; + mx1 = y12 * w; + my1 = -x12 * w; w = w2 / l34; - mx4 = y34 * w; - my4 = - x34 * w; + mx4 = y34 * w; + my4 = -x34 * w; } if (sin2 == 0.0) { @@ -1225,10 +1342,14 @@ public class BasicStroke implements Stroke { /** * Adds dashed line segment to the work path. * - * @param x1 - the x coordinate of the start line point - * @param y1 - the y coordinate of the start line point - * @param x2 - the x coordinate of the end line point - * @param y2 - the y coordinate of the end line point + * @param x1 + * the x coordinate of the start line point. + * @param y1 + * the y coordinate of the start line point. + * @param x2 + * the x coordinate of the end line point. + * @param y2 + * the y coordinate of the end line point. */ void addDashLine(double x1, double y1, double x2, double y2) { double x21 = x2 - x1; @@ -1243,12 +1364,12 @@ public class BasicStroke implements Stroke { double px1, py1; px1 = py1 = 0.0; double w = w2 / l21; - double mx = - y21 * w; - double my = x21 * w; + double mx = -y21 * w; + double my = x21 * w; dasher.init(new DashIterator.Line(l21)); - while(!dasher.eof()) { + while (!dasher.eof()) { double t = dasher.getValue(); scx = x1 + t * x21; scy = y1 + t * y21; @@ -1271,28 +1392,27 @@ public class BasicStroke implements Stroke { addJoin(lp, x1, y1, lx1, ly1, true); addJoin(rp, x1, y1, rx1, ry1, false); } - } else - if (dasher.isContinue()) { - double px2 = scx; - double py2 = scy; - lp.lineTo(px2 + mx, py2 + my); - rp.lineTo(px2 - mx, py2 - my); - if (dasher.close) { - addCap(lp, px2, py2, rp.xLast, rp.yLast); - lp.combine(rp); - if (isFirst) { - isFirst = false; - fmx = smx; - fmy = smy; - sp = lp; - lp = new BufferedPath(); - } else { - addCap(lp, smx, smy, lp.xMove, lp.yMove); - lp.closePath(); - } - isMove = true; + } else if (dasher.isContinue()) { + double px2 = scx; + double py2 = scy; + lp.lineTo(px2 + mx, py2 + my); + rp.lineTo(px2 - mx, py2 - my); + if (dasher.close) { + addCap(lp, px2, py2, rp.xLast, rp.yLast); + lp.combine(rp); + if (isFirst) { + isFirst = false; + fmx = smx; + fmy = smy; + sp = lp; + lp = new BufferedPath(); + } else { + addCap(lp, smx, smy, lp.xMove, lp.yMove); + lp.closePath(); } + isMove = true; } + } dasher.next(); } @@ -1301,12 +1421,18 @@ public class BasicStroke implements Stroke { /** * Adds dashed quad segment to the work path. * - * @param x1 - the x coordinate of the first control point - * @param y1 - the y coordinate of the first control point - * @param x2 - the x coordinate of the second control point - * @param y2 - the y coordinate of the second control point - * @param x3 - the x coordinate of the third control point - * @param y3 - the y coordinate of the third control point + * @param x1 + * the x coordinate of the first control point. + * @param y1 + * the y coordinate of the first control point. + * @param x2 + * the x coordinate of the second control point. + * @param y2 + * the y coordinate of the second control point. + * @param x3 + * the x coordinate of the third control point. + * @param y3 + * the y coordinate of the third control point. */ void addDashQuad(double x1, double y1, double x2, double y2, double x3, double y3) { @@ -1345,7 +1471,7 @@ public class BasicStroke implements Stroke { dasher.init(new DashIterator.Quad(x1, y1, x2, y2, x3, y3)); - while(!dasher.eof()) { + while (!dasher.eof()) { double t = dasher.getValue(); double dx = t * ax + bx; double dy = t * ay + by; @@ -1357,8 +1483,8 @@ public class BasicStroke implements Stroke { dx1 = dx; dy1 = dy; double w = w2 / Math.sqrt(dx1 * dx1 + dy1 * dy1); - double mx1 = - dy1 * w; - double my1 = dx1 * w; + double mx1 = -dy1 * w; + double my1 = dx1 * w; double lx1 = px1 + mx1; double ly1 = py1 + my1; double rx1 = px1 - mx1; @@ -1374,33 +1500,32 @@ public class BasicStroke implements Stroke { addJoin(lp, x1, y1, lx1, ly1, true); addJoin(rp, x1, y1, rx1, ry1, false); } - } else - if (dasher.isContinue()) { - double px3 = scx; - double py3 = scy; - double sx = x2 - x23 * prev; - double sy = y2 - y23 * prev; - double t2 = (t - prev) / (1 - prev); - double px2 = px1 + (sx - px1) * t2; - double py2 = py1 + (sy - py1) * t2; - - addQuad(px1, py1, px2, py2, px3, py3); - if (dasher.isClosed()) { - addCap(lp, px3, py3, rp.xLast, rp.yLast); - lp.combine(rp); - if (isFirst) { - isFirst = false; - fmx = smx; - fmy = smy; - sp = lp; - lp = new BufferedPath(); - } else { - addCap(lp, smx, smy, lp.xMove, lp.yMove); - lp.closePath(); - } - isMove = true; + } else if (dasher.isContinue()) { + double px3 = scx; + double py3 = scy; + double sx = x2 - x23 * prev; + double sy = y2 - y23 * prev; + double t2 = (t - prev) / (1 - prev); + double px2 = px1 + (sx - px1) * t2; + double py2 = py1 + (sy - py1) * t2; + + addQuad(px1, py1, px2, py2, px3, py3); + if (dasher.isClosed()) { + addCap(lp, px3, py3, rp.xLast, rp.yLast); + lp.combine(rp); + if (isFirst) { + isFirst = false; + fmx = smx; + fmy = smy; + sp = lp; + lp = new BufferedPath(); + } else { + addCap(lp, smx, smy, lp.xMove, lp.yMove); + lp.closePath(); } + isMove = true; } + } prev = t; dasher.next(); @@ -1410,16 +1535,25 @@ public class BasicStroke implements Stroke { /** * Adds dashed cubic segment to the work path. * - * @param x1 - the x coordinate of the first control point - * @param y1 - the y coordinate of the first control point - * @param x2 - the x coordinate of the second control point - * @param y2 - the y coordinate of the second control point - * @param x3 - the x coordinate of the third control point - * @param y3 - the y coordinate of the third control point - * @param x4 - the x coordinate of the fours control point - * @param y4 - the y coordinate of the fours control point + * @param x1 + * the x coordinate of the first control point. + * @param y1 + * the y coordinate of the first control point. + * @param x2 + * the x coordinate of the second control point. + * @param y2 + * the y coordinate of the second control point. + * @param x3 + * the x coordinate of the third control point. + * @param y3 + * the y coordinate of the third control point. + * @param x4 + * the x coordinate of the fours control point. + * @param y4 + * the y coordinate of the fours control point. */ - void addDashCubic(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) { + void addDashCubic(double x1, double y1, double x2, double y2, double x3, double y3, double x4, + double y4) { double x12 = x1 - x2; double y12 = y1 - y2; @@ -1469,7 +1603,7 @@ public class BasicStroke implements Stroke { dasher.init(new DashIterator.Cubic(x1, y1, x2, y2, x3, y3, x4, y4)); - while(!dasher.eof()) { + while (!dasher.eof()) { double t = dasher.getValue(); scx = t * (t * (t * ax + bx) + cx) + dx; @@ -1480,8 +1614,8 @@ public class BasicStroke implements Stroke { double dx1 = t * (t * (ax + ax + ax) + bx + bx) + cx; double dy1 = t * (t * (ay + ay + ay) + by + by) + cy; double w = w2 / Math.sqrt(dx1 * dx1 + dy1 * dy1); - double mx1 = - dy1 * w; - double my1 = dx1 * w; + double mx1 = -dy1 * w; + double my1 = dx1 * w; double lx1 = px1 + mx1; double ly1 = py1 + my1; double rx1 = px1 - mx1; @@ -1497,42 +1631,41 @@ public class BasicStroke implements Stroke { addJoin(lp, x1, y1, lx1, ly1, true); addJoin(rp, x1, y1, rx1, ry1, false); } - } else - if (dasher.isContinue()) { - double sx1 = x2 - x23 * prev; - double sy1 = y2 - y23 * prev; - double sx2 = x3 - x34 * prev; - double sy2 = y3 - y34 * prev; - double sx3 = sx1 + (sx2 - sx1) * prev; - double sy3 = sy1 + (sy2 - sy1) * prev; - double t2 = (t - prev) / (1 - prev); - double sx4 = sx3 + (sx2 - sx3) * t2; - double sy4 = sy3 + (sy2 - sy3) * t2; - - double px4 = scx; - double py4 = scy; - double px2 = px1 + (sx3 - px1) * t2; - double py2 = py1 + (sy3 - py1) * t2; - double px3 = px2 + (sx4 - px2) * t2; - double py3 = py2 + (sy4 - py2) * t2; - - addCubic(px1, py1, px2, py2, px3, py3, px4, py4); - if (dasher.isClosed()) { - addCap(lp, px4, py4, rp.xLast, rp.yLast); - lp.combine(rp); - if (isFirst) { - isFirst = false; - fmx = smx; - fmy = smy; - sp = lp; - lp = new BufferedPath(); - } else { - addCap(lp, smx, smy, lp.xMove, lp.yMove); - lp.closePath(); - } - isMove = true; + } else if (dasher.isContinue()) { + double sx1 = x2 - x23 * prev; + double sy1 = y2 - y23 * prev; + double sx2 = x3 - x34 * prev; + double sy2 = y3 - y34 * prev; + double sx3 = sx1 + (sx2 - sx1) * prev; + double sy3 = sy1 + (sy2 - sy1) * prev; + double t2 = (t - prev) / (1 - prev); + double sx4 = sx3 + (sx2 - sx3) * t2; + double sy4 = sy3 + (sy2 - sy3) * t2; + + double px4 = scx; + double py4 = scy; + double px2 = px1 + (sx3 - px1) * t2; + double py2 = py1 + (sy3 - py1) * t2; + double px3 = px2 + (sx4 - px2) * t2; + double py3 = py2 + (sy4 - py2) * t2; + + addCubic(px1, py1, px2, py2, px3, py3, px4, py4); + if (dasher.isClosed()) { + addCap(lp, px4, py4, rp.xLast, rp.yLast); + lp.combine(rp); + if (isFirst) { + isFirst = false; + fmx = smx; + fmy = smy; + sp = lp; + lp = new BufferedPath(); + } else { + addCap(lp, smx, smy, lp.xMove, lp.yMove); + lp.closePath(); } + isMove = true; } + } prev = t; dasher.next(); @@ -1543,30 +1676,44 @@ public class BasicStroke implements Stroke { * Dasher class provides dashing for particular dash style. */ class Dasher { - - /** The pos. */ + + /** + * The pos. + */ double pos; - - /** The first. */ + + /** + * The first. + */ boolean close, visible, first; - - /** The dash. */ + + /** + * The dash. + */ float dash[]; - - /** The phase. */ + + /** + * The phase. + */ float phase; - - /** The index. */ + + /** + * The index. + */ int index; - - /** The iter. */ + + /** + * The iter. + */ DashIterator iter; - + /** * Instantiates a new dasher. * - * @param dash the dash - * @param phase the phase + * @param dash + * the dash. + * @param phase + * the phase. */ Dasher(float dash[], float phase) { this.dash = dash; @@ -1578,52 +1725,53 @@ public class BasicStroke implements Stroke { visible = !visible; pos -= dash[index]; index = (index + 1) % dash.length; - } + } pos = -pos; first = visible; } - + /** * Inits the. * - * @param iter the iter + * @param iter + * the iter. */ void init(DashIterator iter) { this.iter = iter; close = true; } - + /** * Checks if is open. * - * @return true, if is open + * @return true, if is open. */ boolean isOpen() { return visible && pos < iter.length; } - + /** * Checks if is continue. * - * @return true, if is continue + * @return true, if is continue. */ boolean isContinue() { return !visible && pos > 0; } - + /** * Checks if is closed. * - * @return true, if is closed + * @return true, if is closed. */ boolean isClosed() { return close; } - + /** * Checks if is connected. * - * @return true, if is connected + * @return true, if is connected. */ boolean isConnected() { return first && !close; @@ -1632,7 +1780,7 @@ public class BasicStroke implements Stroke { /** * Eof. * - * @return true, if successful + * @return true, if successful. */ boolean eof() { if (!close) { @@ -1648,7 +1796,7 @@ public class BasicStroke implements Stroke { } return false; } - + /** * Next. */ @@ -1663,17 +1811,17 @@ public class BasicStroke implements Stroke { } visible = !visible; } - + /** * Gets the value. * - * @return the value + * @return the value. */ double getValue() { double t = iter.getNext(pos); return t < 0 ? 0 : (t > 1 ? 1 : t); } - + } /** @@ -1681,7 +1829,9 @@ public class BasicStroke implements Stroke { */ static abstract class DashIterator { - /** The Constant FLATNESS. */ + /** + * The Constant FLATNESS. + */ static final double FLATNESS = 1.0; /** @@ -1692,7 +1842,8 @@ public class BasicStroke implements Stroke { /** * Instantiates a new line. * - * @param len the len + * @param len + * the len. */ Line(double len) { length = len; @@ -1710,36 +1861,56 @@ public class BasicStroke implements Stroke { */ static class Quad extends DashIterator { - /** The val size. */ + /** + * The val size. + */ int valSize; - - /** The val pos. */ + + /** + * The val pos. + */ int valPos; - - /** The cur len. */ + + /** + * The cur len. + */ double curLen; - - /** The prev len. */ + + /** + * The prev len. + */ double prevLen; - - /** The last len. */ + + /** + * The last len. + */ double lastLen; - - /** The values. */ + + /** + * The values. + */ double[] values; - - /** The step. */ + + /** + * The step. + */ double step; /** * Instantiates a new quad. * - * @param x1 the x1 - * @param y1 the y1 - * @param x2 the x2 - * @param y2 the y2 - * @param x3 the x3 - * @param y3 the y3 + * @param x1 + * the x1. + * @param y1 + * the y1. + * @param x2 + * the x2. + * @param y2 + * the y2. + * @param x3 + * the x3. + * @param y3 + * the y3. */ Quad(double x1, double y1, double x2, double y2, double x3, double y3) { @@ -1766,7 +1937,7 @@ public class BasicStroke implements Stroke { double pvx = vx; double pvy = vy; length = 0.0; - for(int i = 0; i < n; i++) { + for (int i = 0; i < n; i++) { vx += dx1; vy += dy1; dx1 += dx2; @@ -1804,40 +1975,63 @@ public class BasicStroke implements Stroke { */ static class Cubic extends DashIterator { - /** The val size. */ + /** + * The val size. + */ int valSize; - - /** The val pos. */ + + /** + * The val pos. + */ int valPos; - - /** The cur len. */ + + /** + * The cur len. + */ double curLen; - - /** The prev len. */ + + /** + * The prev len. + */ double prevLen; - - /** The last len. */ + + /** + * The last len. + */ double lastLen; - - /** The values. */ + + /** + * The values. + */ double[] values; - - /** The step. */ + + /** + * The step. + */ double step; /** * Instantiates a new cubic. * - * @param x1 the x1 - * @param y1 the y1 - * @param x2 the x2 - * @param y2 the y2 - * @param x3 the x3 - * @param y3 the y3 - * @param x4 the x4 - * @param y4 the y4 + * @param x1 + * the x1. + * @param y1 + * the y1. + * @param x2 + * the x2. + * @param y2 + * the y2. + * @param x3 + * the x3. + * @param y3 + * the y3. + * @param x4 + * the x4. + * @param y4 + * the y4. */ - Cubic(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) { + Cubic(double x1, double y1, double x2, double y2, double x3, double y3, double x4, + double y4) { double nx1 = x1 + x3 - x2 - x2; double ny1 = y1 + y3 - y2 - y2; @@ -1869,7 +2063,7 @@ public class BasicStroke implements Stroke { double pvx = vx; double pvy = vy; length = 0.0; - for(int i = 0; i < n; i++) { + for (int i = 0; i < n; i++) { vx += dx1; vy += dy1; dx1 += dx2; @@ -1904,15 +2098,17 @@ public class BasicStroke implements Stroke { } - /** The length. */ + /** + * The length. + */ double length; /** * Gets the next. * - * @param dashPos the dash pos - * - * @return the next + * @param dashPos + * the dash pos. + * @return the next. */ abstract double getNext(double dashPos); @@ -1923,39 +2119,60 @@ public class BasicStroke implements Stroke { */ static class BufferedPath { - /** The Constant bufCapacity. */ + /** + * The Constant bufCapacity. + */ private static final int bufCapacity = 10; - /** The point shift. */ + /** + * The point shift. + */ static int pointShift[] = { - 2, // MOVETO - 2, // LINETO - 4, // QUADTO - 6, // CUBICTO - 0}; // CLOSE + 2, // MOVETO + 2, // LINETO + 4, // QUADTO + 6, // CUBICTO + 0 + }; // CLOSE - /** The types. */ + /** + * The types. + */ byte[] types; - - /** The points. */ + + /** + * The points. + */ float[] points; - - /** The type size. */ + + /** + * The type size. + */ int typeSize; - - /** The point size. */ + + /** + * The point size. + */ int pointSize; - /** The x last. */ + /** + * The x last. + */ float xLast; - - /** The y last. */ + + /** + * The y last. + */ float yLast; - - /** The x move. */ + + /** + * The x move. + */ float xMove; - - /** The y move. */ + + /** + * The y move. + */ float yMove; /** @@ -1969,8 +2186,10 @@ public class BasicStroke implements Stroke { /** * Check buf. * - * @param typeCount the type count - * @param pointCount the point count + * @param typeCount + * the type count. + * @param pointCount + * the point count. */ void checkBuf(int typeCount, int pointCount) { if (typeSize + typeCount > types.length) { @@ -1988,7 +2207,7 @@ public class BasicStroke implements Stroke { /** * Checks if is empty. * - * @return true, if is empty + * @return true, if is empty. */ boolean isEmpty() { return typeSize == 0; @@ -2005,8 +2224,10 @@ public class BasicStroke implements Stroke { /** * Move to. * - * @param x the x - * @param y the y + * @param x + * the x. + * @param y + * the y. */ void moveTo(double x, double y) { checkBuf(1, 2); @@ -2018,8 +2239,10 @@ public class BasicStroke implements Stroke { /** * Line to. * - * @param x the x - * @param y the y + * @param x + * the x. + * @param y + * the y. */ void lineTo(double x, double y) { checkBuf(1, 2); @@ -2031,10 +2254,14 @@ public class BasicStroke implements Stroke { /** * Quad to. * - * @param x1 the x1 - * @param y1 the y1 - * @param x2 the x2 - * @param y2 the y2 + * @param x1 + * the x1. + * @param y1 + * the y1. + * @param x2 + * the x2. + * @param y2 + * the y2. */ void quadTo(double x1, double y1, double x2, double y2) { checkBuf(1, 4); @@ -2048,12 +2275,18 @@ public class BasicStroke implements Stroke { /** * Cubic to. * - * @param x1 the x1 - * @param y1 the y1 - * @param x2 the x2 - * @param y2 the y2 - * @param x3 the x3 - * @param y3 the y3 + * @param x1 + * the x1. + * @param y1 + * the y1. + * @param x2 + * the x2. + * @param y2 + * the y2. + * @param x3 + * the x3. + * @param y3 + * the y3. */ void cubicTo(double x1, double y1, double x2, double y2, double x3, double y3) { checkBuf(1, 6); @@ -2077,8 +2310,10 @@ public class BasicStroke implements Stroke { /** * Sets the last. * - * @param x the x - * @param y the y + * @param x + * the x. + * @param y + * the y. */ void setLast(double x, double y) { points[pointSize - 2] = xLast = (float)x; @@ -2088,7 +2323,8 @@ public class BasicStroke implements Stroke { /** * Append. * - * @param p the p + * @param p + * the p. */ void append(BufferedPath p) { checkBuf(p.typeSize, p.pointSize); @@ -2103,18 +2339,19 @@ public class BasicStroke implements Stroke { /** * Append reverse. * - * @param p the p + * @param p + * the p. */ void appendReverse(BufferedPath p) { checkBuf(p.typeSize, p.pointSize); // Skip last point, beacause it's the first point of the second path - for(int i = p.pointSize - 2; i >= 0; i -= 2) { + for (int i = p.pointSize - 2; i >= 0; i -= 2) { points[pointSize++] = p.points[i + 0]; points[pointSize++] = p.points[i + 1]; } // Skip first type, beacuse it's always MOVETO int closeIndex = 0; - for(int i = p.typeSize - 1; i >= 0; i--) { + for (int i = p.typeSize - 1; i >= 0; i--) { byte type = p.types[i]; if (type == PathIterator.SEG_MOVETO) { types[closeIndex] = PathIterator.SEG_MOVETO; @@ -2133,7 +2370,8 @@ public class BasicStroke implements Stroke { /** * Join. * - * @param p the p + * @param p + * the p. */ void join(BufferedPath p) { // Skip MOVETO @@ -2149,17 +2387,18 @@ public class BasicStroke implements Stroke { /** * Combine. * - * @param p the p + * @param p + * the p. */ void combine(BufferedPath p) { checkBuf(p.typeSize - 1, p.pointSize - 2); // Skip last point, beacause it's the first point of the second path - for(int i = p.pointSize - 4; i >= 0; i -= 2) { + for (int i = p.pointSize - 4; i >= 0; i -= 2) { points[pointSize++] = p.points[i + 0]; points[pointSize++] = p.points[i + 1]; } // Skip first type, beacuse it's always MOVETO - for(int i = p.typeSize - 1; i >= 1; i--) { + for (int i = p.typeSize - 1; i >= 1; i--) { types[typeSize++] = p.types[i]; } xLast = points[pointSize - 2]; @@ -2169,29 +2408,30 @@ public class BasicStroke implements Stroke { /** * Creates the general path. * - * @return the general path + * @return the general path. */ GeneralPath createGeneralPath() { GeneralPath p = new GeneralPath(); int j = 0; - for(int i = 0; i < typeSize; i++) { + for (int i = 0; i < typeSize; i++) { int type = types[i]; - switch(type){ - case PathIterator.SEG_MOVETO: - p.moveTo(points[j], points[j + 1]); - break; - case PathIterator.SEG_LINETO: - p.lineTo(points[j], points[j + 1]); - break; - case PathIterator.SEG_QUADTO: - p.quadTo(points[j], points[j + 1], points[j + 2], points[j + 3]); - break; - case PathIterator.SEG_CUBICTO: - p.curveTo(points[j], points[j + 1], points[j + 2], points[j + 3], points[j + 4], points[j + 5]); - break; - case PathIterator.SEG_CLOSE: - p.closePath(); - break; + switch (type) { + case PathIterator.SEG_MOVETO: + p.moveTo(points[j], points[j + 1]); + break; + case PathIterator.SEG_LINETO: + p.lineTo(points[j], points[j + 1]); + break; + case PathIterator.SEG_QUADTO: + p.quadTo(points[j], points[j + 1], points[j + 2], points[j + 3]); + break; + case PathIterator.SEG_CUBICTO: + p.curveTo(points[j], points[j + 1], points[j + 2], points[j + 3], + points[j + 4], points[j + 5]); + break; + case PathIterator.SEG_CLOSE: + p.closePath(); + break; } j += pointShift[type]; } @@ -2201,4 +2441,3 @@ public class BasicStroke implements Stroke { } } - diff --git a/awt/java/awt/BufferCapabilities.java b/awt/java/awt/BufferCapabilities.java index 80e8add..cd5fe7b 100644 --- a/awt/java/awt/BufferCapabilities.java +++ b/awt/java/awt/BufferCapabilities.java @@ -18,35 +18,45 @@ * @author Alexey A. Petrenko * @version $Revision$ */ -package java.awt; +package java.awt; /** - * The BufferCapabilities class represents the capabilities - * and other properties of the image buffers. + * The BufferCapabilities class represents the capabilities and other properties + * of the image buffers. + * + * @since Android 1.0 */ public class BufferCapabilities implements Cloneable { - - /** The front buffer capabilities. */ + + /** + * The front buffer capabilities. + */ private final ImageCapabilities frontBufferCapabilities; - - /** The back buffer capabilities. */ + + /** + * The back buffer capabilities. + */ private final ImageCapabilities backBufferCapabilities; - - /** The flip contents. */ + + /** + * The flip contents. + */ private final FlipContents flipContents; /** * Instantiates a new BufferCapabilities object. * - * @param frontBufferCapabilities the front buffer capabilities, - * can not be null. - * @param backBufferCapabilities the the back and intermediate - * buffers capabilities, can not be null. - * @param flipContents the back buffer contents after page flipping, - * null if page flipping is not used. + * @param frontBufferCapabilities + * the front buffer capabilities, can not be null. + * @param backBufferCapabilities + * the the back and intermediate buffers capabilities, can not be + * null. + * @param flipContents + * the back buffer contents after page flipping, null if page + * flipping is not used. */ - public BufferCapabilities(ImageCapabilities frontBufferCapabilities, + public BufferCapabilities(ImageCapabilities frontBufferCapabilities, ImageCapabilities backBufferCapabilities, FlipContents flipContents) { if (frontBufferCapabilities == null || backBufferCapabilities == null) { throw new IllegalArgumentException(); @@ -70,8 +80,8 @@ public class BufferCapabilities implements Cloneable { /** * Gets the image capabilities of the front buffer. * - * @return the ImageCapabilities object represented capabilities - * of the front buffer. + * @return the ImageCapabilities object represented capabilities of the + * front buffer. */ public ImageCapabilities getFrontBufferCapabilities() { return frontBufferCapabilities; @@ -80,15 +90,15 @@ public class BufferCapabilities implements Cloneable { /** * Gets the image capabilities of the back buffer. * - * @return the ImageCapabilities object represented capabilities - * of the back buffer. + * @return the ImageCapabilities object represented capabilities of the back + * buffer. */ public ImageCapabilities getBackBufferCapabilities() { return backBufferCapabilities; } /** - * Gets the flip contents of the back buffer after page-flipping. + * Gets the flip contents of the back buffer after page-flipping. * * @return the FlipContents of the back buffer after page-flipping. */ @@ -99,8 +109,7 @@ public class BufferCapabilities implements Cloneable { /** * Checks if the buffer strategy uses page flipping. * - * @return true, if the buffer strategy uses page flipping, - * false otherwise. + * @return true, if the buffer strategy uses page flipping, false otherwise. */ public boolean isPageFlipping() { return flipContents != null; @@ -110,7 +119,7 @@ public class BufferCapabilities implements Cloneable { * Checks if page flipping is only available in full-screen mode. * * @return true, if page flipping is only available in full-screen mode, - * false otherwise. + * false otherwise. */ public boolean isFullScreenRequired() { return false; @@ -119,39 +128,40 @@ public class BufferCapabilities implements Cloneable { /** * Checks if page flipping can be performed using more than two buffers. * - * @return true, if page flipping can be performed using more than two buffers, - * false otherwise. + * @return true, if page flipping can be performed using more than two + * buffers, false otherwise. */ public boolean isMultiBufferAvailable() { return false; } /** - * The FlipContents class represents a set of possible back buffer contents + * The FlipContents class represents a set of possible back buffer contents * after page-flipping. + * + * @since Android 1.0 */ public static final class FlipContents { - + /** - * The back buffered contents are cleared with the background color + * The back buffered contents are cleared with the background color * after flipping. */ public static final FlipContents BACKGROUND = new FlipContents(); - - /** - * The back buffered contents are copied to the front buffer before + + /** + * The back buffered contents are copied to the front buffer before * flipping. */ public static final FlipContents COPIED = new FlipContents(); - - /** - * The back buffer contents are the prior contents of the - * front buffer. + + /** + * The back buffer contents are the prior contents of the front buffer. */ public static final FlipContents PRIOR = new FlipContents(); - - /** - * The back buffer contents are undefined after flipping + + /** + * The back buffer contents are undefined after flipping */ public static final FlipContents UNDEFINED = new FlipContents(); diff --git a/awt/java/awt/Color.java b/awt/java/awt/Color.java index e1e4178..93c532d 100644 --- a/awt/java/awt/Color.java +++ b/awt/java/awt/Color.java @@ -18,6 +18,7 @@ * @author Oleg V. Khaschansky * @version $Revision$ */ + package java.awt; import java.awt.color.ColorSpace; @@ -33,155 +34,230 @@ import java.util.Arrays; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Color class defines colors in the default sRGB color - * space or in the specified ColorSpace. Every Color contains alpha value. - * The alpha value defines the transparency of a color and can be represented - * by a float value in the range 0.0 - 1.0 or 0 - 255. - */ + * The Color class defines colors in the default sRGB color space or in the + * specified ColorSpace. Every Color contains alpha value. The alpha value + * defines the transparency of a color and can be represented by a float value + * in the range 0.0 - 1.0 or 0 - 255. + * + * @since Android 1.0 + */ public class Color implements Paint, Serializable { - - /** The Constant serialVersionUID. */ + + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = 118526816881161077L; /* - * The values of the following colors are based on 1.5 release behavior which - * can be revealed using the following or similar code: - * Color c = Color.white; - * System.out.println(c); + * The values of the following colors are based on 1.5 release behavior + * which can be revealed using the following or similar code: Color c = + * Color.white; System.out.println(c); */ - /** The color white. */ + /** + * The color white. + */ public static final Color white = new Color(255, 255, 255); - /** The color white. */ + /** + * The color white. + */ public static final Color WHITE = white; - /** The color light gray. */ + /** + * The color light gray. + */ public static final Color lightGray = new Color(192, 192, 192); - /** The color light gray. */ + /** + * The color light gray. + */ public static final Color LIGHT_GRAY = lightGray; - /** The color gray. */ + /** + * The color gray. + */ public static final Color gray = new Color(128, 128, 128); - /** The color gray. */ + /** + * The color gray. + */ public static final Color GRAY = gray; - /** The color dark gray. */ + /** + * The color dark gray. + */ public static final Color darkGray = new Color(64, 64, 64); - /** The color dark gray. */ + /** + * The color dark gray. + */ public static final Color DARK_GRAY = darkGray; - /** The color black. */ + /** + * The color black. + */ public static final Color black = new Color(0, 0, 0); - /** The color black. */ + /** + * The color black. + */ public static final Color BLACK = black; - /** The color red. */ + /** + * The color red. + */ public static final Color red = new Color(255, 0, 0); - /** The color red. */ + /** + * The color red. + */ public static final Color RED = red; - /** The color pink. */ + /** + * The color pink. + */ public static final Color pink = new Color(255, 175, 175); - /** The color pink. */ + /** + * The color pink. + */ public static final Color PINK = pink; - /** The color orange. */ + /** + * The color orange. + */ public static final Color orange = new Color(255, 200, 0); - /** The color orange. */ + /** + * The color orange. + */ public static final Color ORANGE = orange; - /** The color yellow. */ + /** + * The color yellow. + */ public static final Color yellow = new Color(255, 255, 0); - /** The color yellow. */ + /** + * The color yellow. + */ public static final Color YELLOW = yellow; - /** The color green. */ + /** + * The color green. + */ public static final Color green = new Color(0, 255, 0); - /** The color green. */ + /** + * The color green. + */ public static final Color GREEN = green; - /** The color magenta. */ + /** + * The color magenta. + */ public static final Color magenta = new Color(255, 0, 255); - /** The color magenta. */ + /** + * The color magenta. + */ public static final Color MAGENTA = magenta; - /** The color cyan. */ + /** + * The color cyan. + */ public static final Color cyan = new Color(0, 255, 255); - /** The color cyan. */ + /** + * The color cyan. + */ public static final Color CYAN = cyan; - /** The color blue. */ + /** + * The color blue. + */ public static final Color blue = new Color(0, 0, 255); - /** The color blue. */ + /** + * The color blue. + */ public static final Color BLUE = blue; - /** integer RGB value. */ + /** + * integer RGB value. + */ int value; - /** Float sRGB value. */ + /** + * Float sRGB value. + */ private float[] frgbvalue; - /** Color in an arbitrary color space with <code>float</code> components. If null, other value should be used. */ + /** + * Color in an arbitrary color space with <code>float</code> components. If + * null, other value should be used. + */ private float fvalue[]; - /** Float alpha value. If frgbvalue is null, this is not valid data. */ + /** + * Float alpha value. If frgbvalue is null, this is not valid data. + */ private float falpha; - /** The color's color space if applicable. */ + /** + * The color's color space if applicable. + */ private ColorSpace cs; /* - * The value of the SCALE_FACTOR is based on 1.5 release behavior which - * can be revealed using the following code: - * Color c = new Color(100, 100, 100); - * Color bc = c.brighter(); - * System.out.println("Brighter factor: " + ((float)c.getRed())/((float)bc.getRed())); - * Color dc = c.darker(); - * System.out.println("Darker factor: " + ((float)dc.getRed())/((float)c.getRed())); - * The result is the same for brighter and darker methods, so we need only - * one scale factor for both. - */ - /** The Constant SCALE_FACTOR. */ + * The value of the SCALE_FACTOR is based on 1.5 release behavior which can + * be revealed using the following code: Color c = new Color(100, 100, 100); + * Color bc = c.brighter(); System.out.println("Brighter factor: " + + * ((float)c.getRed())/((float)bc.getRed())); Color dc = c.darker(); + * System.out.println("Darker factor: " + + * ((float)dc.getRed())/((float)c.getRed())); The result is the same for + * brighter and darker methods, so we need only one scale factor for both. + */ + /** + * The Constant SCALE_FACTOR. + */ private static final double SCALE_FACTOR = 0.7; - /** The Constant MIN_SCALABLE. */ - private static final int MIN_SCALABLE = 3; // should increase when multiplied by SCALE_FACTOR + /** + * The Constant MIN_SCALABLE. + */ + private static final int MIN_SCALABLE = 3; // should increase when + + // multiplied by SCALE_FACTOR - /** The current paint context. */ + /** + * The current paint context. + */ transient private PaintContext currentPaintContext; /** - * Creates a color in the specified ColorSpace, the specified color - * components and the specified alpha. + * Creates a color in the specified ColorSpace, the specified color + * components and the specified alpha. * - * @param cspace the ColorSpace to be used to define the components. - * @param components the components. - * @param alpha the alpha. + * @param cspace + * the ColorSpace to be used to define the components. + * @param components + * the components. + * @param alpha + * the alpha. */ public Color(ColorSpace cspace, float[] components, float alpha) { int nComps = cspace.getNumComponents(); float comp; fvalue = new float[nComps]; - for(int i=0 ; i<nComps; i++) { + for (int i = 0; i < nComps; i++) { comp = components[i]; - if(comp < 0.0f || comp > 1.0f) { - // awt.107=Color parameter outside of expected range: component {0}. - throw new IllegalArgumentException( - Messages.getString("awt.107", i)); //$NON-NLS-1$ + if (comp < 0.0f || comp > 1.0f) { + // awt.107=Color parameter outside of expected range: component + // {0}. + throw new IllegalArgumentException(Messages.getString("awt.107", i)); //$NON-NLS-1$ } fvalue[i] = components[i]; } @@ -196,22 +272,22 @@ public class Color implements Paint, Serializable { frgbvalue = cs.toRGB(fvalue); - value = ((int)(frgbvalue[2]*255 + 0.5)) | - (((int)(frgbvalue[1]*255 + 0.5)) << 8 ) | - (((int)(frgbvalue[0]*255 + 0.5)) << 16 ) | - (((int)(falpha*255 + 0.5)) << 24 ); + value = ((int)(frgbvalue[2] * 255 + 0.5)) | (((int)(frgbvalue[1] * 255 + 0.5)) << 8) + | (((int)(frgbvalue[0] * 255 + 0.5)) << 16) | (((int)(falpha * 255 + 0.5)) << 24); } /** - * Instantiates a new sRGB color with the specified combined - * RGBA value consisting of the alpha component in bits 24-31, - * the red component in bits 16-23, the green component in bits 8-15, - * and the blue component in bits 0-7. If the hasalpha argument is - * false, the alpha has default value - 255. + * Instantiates a new sRGB color with the specified combined RGBA value + * consisting of the alpha component in bits 24-31, the red component in + * bits 16-23, the green component in bits 8-15, and the blue component in + * bits 0-7. If the hasalpha argument is false, the alpha has default value + * - 255. * - * @param rgba the RGBA components. - * @param hasAlpha alpha parameter is true if alpha bits are valid, - * false otherwise. + * @param rgba + * the RGBA components. + * @param hasAlpha + * the alpha parameter is true if alpha bits are valid, false + * otherwise. */ public Color(int rgba, boolean hasAlpha) { if (!hasAlpha) { @@ -222,13 +298,17 @@ public class Color implements Paint, Serializable { } /** - * Instantiates a new color with the specified red, green, blue and alpha + * Instantiates a new color with the specified red, green, blue and alpha * components. * - * @param r the red component. - * @param g the green component. - * @param b the blue component. - * @param a the alpha component. + * @param r + * the red component. + * @param g + * the green component. + * @param b + * the blue component. + * @param a + * the alpha component. */ public Color(int r, int g, int b, int a) { if ((r & 0xFF) != r || (g & 0xFF) != g || (b & 0xFF) != b || (a & 0xFF) != a) { @@ -239,12 +319,15 @@ public class Color implements Paint, Serializable { } /** - * Instantiates a new opaque sRGB color with the specified red, green, - * and blue values. The Alpha component is set to the default - 1.0. + * Instantiates a new opaque sRGB color with the specified red, green, and + * blue values. The Alpha component is set to the default - 1.0. * - * @param r the red component. - * @param g the green component. - * @param b the blue component. + * @param r + * the red component. + * @param g + * the green component. + * @param b + * the blue component. */ public Color(int r, int g, int b) { if ((r & 0xFF) != r || (g & 0xFF) != g || (b & 0xFF) != b) { @@ -256,31 +339,32 @@ public class Color implements Paint, Serializable { } /** - * Instantiates a new sRGB color with the specified - * RGB value consisting of the red component in bits 16-23, - * the green component in bits 8-15, and the blue component - * in bits 0-7. Alpha has default value - 255. + * Instantiates a new sRGB color with the specified RGB value consisting of + * the red component in bits 16-23, the green component in bits 8-15, and + * the blue component in bits 0-7. Alpha has default value - 255. * - * @param rgb the RGB components. + * @param rgb + * the RGB components. */ public Color(int rgb) { value = rgb | 0xFF000000; } /** - * Instantiates a new color with the specified red, green, blue and alpha + * Instantiates a new color with the specified red, green, blue and alpha * components. * - * @param r the red component. - * @param g the green component. - * @param b the blue component. - * @param a the alpha component. + * @param r + * the red component. + * @param g + * the green component. + * @param b + * the blue component. + * @param a + * the alpha component. */ public Color(float r, float g, float b, float a) { - this((int)(r*255+0.5), - (int)(g*255+0.5), - (int)(b*255+0.5), - (int)(a*255+0.5)); + this((int)(r * 255 + 0.5), (int)(g * 255 + 0.5), (int)(b * 255 + 0.5), (int)(a * 255 + 0.5)); falpha = a; fvalue = new float[3]; fvalue[0] = r; @@ -290,25 +374,23 @@ public class Color implements Paint, Serializable { } /** - * Instantiates a new color with the specified red, green, and blue - * components and default alfa value - 1.0. + * Instantiates a new color with the specified red, green, and blue + * components and default alpha value - 1.0. * - * @param r the red component. - * @param g the green component. - * @param b the blue component. + * @param r + * the red component. + * @param g + * the green component. + * @param b + * the blue component. */ public Color(float r, float g, float b) { this(r, g, b, 1.0f); } - public PaintContext createContext( - ColorModel cm, - Rectangle r, - Rectangle2D r2d, - AffineTransform xform, - RenderingHints rhs - ) { - if(currentPaintContext != null) { + public PaintContext createContext(ColorModel cm, Rectangle r, Rectangle2D r2d, + AffineTransform xform, RenderingHints rhs) { + if (currentPaintContext != null) { return currentPaintContext; } currentPaintContext = new Color.ColorPaintContext(value); @@ -323,15 +405,12 @@ public class Color implements Paint, Serializable { @Override public String toString() { /* - The format of the string is based on 1.5 release behavior which - can be revealed using the following code: - - Color c = new Color(1, 2, 3); - System.out.println(c); - */ - - return getClass().getName() + - "[r=" + getRed() + //$NON-NLS-1$ + * The format of the string is based on 1.5 release behavior which can + * be revealed using the following code: Color c = new Color(1, 2, 3); + * System.out.println(c); + */ + + return getClass().getName() + "[r=" + getRed() + //$NON-NLS-1$ ",g=" + getGreen() + //$NON-NLS-1$ ",b=" + getBlue() + //$NON-NLS-1$ "]"; //$NON-NLS-1$ @@ -340,65 +419,67 @@ public class Color implements Paint, Serializable { /** * Compares the specified Object to the Color. * - * @param obj the Object to be compared. - * - * @return true, if the specified Object is a Color whose - * value is equal to this Color, false otherwise. + * @param obj + * the Object to be compared. + * @return true, if the specified Object is a Color whose value is equal to + * this Color, false otherwise. */ @Override public boolean equals(Object obj) { - if(obj instanceof Color) { + if (obj instanceof Color) { return ((Color)obj).value == this.value; } return false; } /** - * Returns a float array containing the color and alpha components of - * the Color in the specified ColorSpace. - * - * @param colorSpace the specified ColorSpace. - * @param components the results of this method will be written to - * this float array. If null, a float array will be created. + * Returns a float array containing the color and alpha components of the + * Color in the specified ColorSpace. * + * @param colorSpace + * the specified ColorSpace. + * @param components + * the results of this method will be written to this float + * array. If null, a float array will be created. * @return the color and alpha components in a float array. */ public float[] getComponents(ColorSpace colorSpace, float[] components) { int nComps = colorSpace.getNumComponents(); - if(components == null) { - components = new float[nComps+1]; + if (components == null) { + components = new float[nComps + 1]; } getColorComponents(colorSpace, components); - if(frgbvalue != null) { + if (frgbvalue != null) { components[nComps] = falpha; } else { - components[nComps] = getAlpha()/255f; + components[nComps] = getAlpha() / 255f; } return components; } /** - * Returns a float array containing the color components of - * the Color in the specified ColorSpace. - * - * @param colorSpace the specified ColorSpace. - * @param components the results of this method will be written to - * this float array. If null, a float array will be created. + * Returns a float array containing the color components of the Color in the + * specified ColorSpace. * + * @param colorSpace + * the specified ColorSpace. + * @param components + * the results of this method will be written to this float + * array. If null, a float array will be created. * @return the color components in a float array. */ public float[] getColorComponents(ColorSpace colorSpace, float[] components) { float[] cieXYZComponents = getColorSpace().toCIEXYZ(getColorComponents(null)); float[] csComponents = colorSpace.fromCIEXYZ(cieXYZComponents); - if(components == null) { + if (components == null) { return csComponents; } - for(int i=0; i<csComponents.length; i++) { + for (int i = 0; i < csComponents.length; i++) { components[i] = csComponents[i]; } @@ -419,16 +500,14 @@ public class Color implements Paint, Serializable { } /** - * Creates a new Color which is a darker than this Color - * according to a fixed scale factor. + * Creates a new Color which is a darker than this Color according to a + * fixed scale factor. * * @return the darker Color. */ public Color darker() { - return new Color( - (int)(getRed()*SCALE_FACTOR), - (int)(getGreen()*SCALE_FACTOR), - (int)(getBlue()*SCALE_FACTOR)); + return new Color((int)(getRed() * SCALE_FACTOR), (int)(getGreen() * SCALE_FACTOR), + (int)(getBlue() * SCALE_FACTOR)); } /** @@ -442,28 +521,28 @@ public class Color implements Paint, Serializable { int b = getBlue(); int g = getGreen(); - if(r == 0 && b == 0 && g == 0) { + if (r == 0 && b == 0 && g == 0) { return new Color(MIN_SCALABLE, MIN_SCALABLE, MIN_SCALABLE); } - if(r < MIN_SCALABLE && r != 0) { + if (r < MIN_SCALABLE && r != 0) { r = MIN_SCALABLE; } else { - r = (int) (r/SCALE_FACTOR); + r = (int)(r / SCALE_FACTOR); r = (r > 255) ? 255 : r; } - if(b < MIN_SCALABLE && b != 0) { + if (b < MIN_SCALABLE && b != 0) { b = MIN_SCALABLE; } else { - b = (int) (b/SCALE_FACTOR); + b = (int)(b / SCALE_FACTOR); b = (b > 255) ? 255 : b; } - if(g < MIN_SCALABLE && g != 0) { + if (g < MIN_SCALABLE && g != 0) { g = MIN_SCALABLE; } else { - g = (int) (g/SCALE_FACTOR); + g = (int)(g / SCALE_FACTOR); g = (g > 255) ? 255 : g; } @@ -471,24 +550,24 @@ public class Color implements Paint, Serializable { } /** - * Returns a float array containing the color and alpha components of - * the Color in the default sRGB color space. - * - * @param components the results of this method will be written to - * this float array. A new float array will be created if this - * argument is null. + * Returns a float array containing the color and alpha components of the + * Color in the default sRGB color space. * + * @param components + * the results of this method will be written to this float + * array. A new float array will be created if this argument is + * null. * @return the RGB color and alpha components in a float array. */ public float[] getRGBComponents(float[] components) { - if(components == null) { + if (components == null) { components = new float[4]; } - if(frgbvalue != null) { + if (frgbvalue != null) { components[3] = falpha; } else { - components[3] = getAlpha()/255f; + components[3] = getAlpha() / 255f; } getRGBColorComponents(components); @@ -497,52 +576,52 @@ public class Color implements Paint, Serializable { } /** - * Returns a float array containing the color components of - * the Color in the default sRGB color space. - * - * @param components the results of this method will be written to - * this float array. A new float array will be created if this - * argument is null. + * Returns a float array containing the color components of the Color in the + * default sRGB color space. * + * @param components + * the results of this method will be written to this float + * array. A new float array will be created if this argument is + * null. * @return the RGB color components in a float array. */ public float[] getRGBColorComponents(float[] components) { - if(components == null) { + if (components == null) { components = new float[3]; } - if(frgbvalue != null) { + if (frgbvalue != null) { components[2] = frgbvalue[2]; components[1] = frgbvalue[1]; components[0] = frgbvalue[0]; } else { - components[2] = getBlue()/255f; - components[1] = getGreen()/255f; - components[0] = getRed()/255f; + components[2] = getBlue() / 255f; + components[1] = getGreen() / 255f; + components[0] = getRed() / 255f; } return components; } /** - * Returns a float array which contains the color and alpha components of + * Returns a float array which contains the color and alpha components of * the Color in the ColorSpace of the Color. * - * @param components the results of this method will be written to - * this float array. A new float array will be created if this - * argument is null. - * + * @param components + * the results of this method will be written to this float + * array. A new float array will be created if this argument is + * null. * @return the color and alpha components in a float array. */ public float[] getComponents(float[] components) { - if(fvalue == null) { + if (fvalue == null) { return getRGBComponents(components); } int nColorComps = fvalue.length; - if(components == null) { - components = new float[nColorComps+1]; + if (components == null) { + components = new float[nColorComps + 1]; } getColorComponents(components); @@ -553,25 +632,25 @@ public class Color implements Paint, Serializable { } /** - * Returns a float array which contains the color components of - * the Color in the ColorSpace of the Color. - * - * @param components the results of this method will be written to - * this float array. A new float array will be created if this - * argument is null. + * Returns a float array which contains the color components of the Color in + * the ColorSpace of the Color. * + * @param components + * the results of this method will be written to this float + * array. A new float array will be created if this argument is + * null. * @return the color components in a float array. */ public float[] getColorComponents(float[] components) { - if(fvalue == null) { + if (fvalue == null) { return getRGBColorComponents(components); } - if(components == null) { + if (components == null) { components = new float[fvalue.length]; } - for(int i=0; i<fvalue.length; i++) { + for (int i = 0; i < fvalue.length; i++) { components[i] = fvalue[i]; } @@ -589,7 +668,7 @@ public class Color implements Paint, Serializable { } public int getTransparency() { - switch(getAlpha()) { + switch (getAlpha()) { case 0xff: return Transparency.OPAQUE; case 0: @@ -609,7 +688,8 @@ public class Color implements Paint, Serializable { } /** - * Gets the RGB value that represents the color in the default sRGB ColorModel. + * Gets the RGB value that represents the color in the default sRGB + * ColorModel. * * @return the RGB color value in the default sRGB ColorModel. */ @@ -645,14 +725,15 @@ public class Color implements Paint, Serializable { } /** - * Gets the Color from the specified string, or returns the Color - * specified by the second parameter. - * - * @param nm the specified string. - * @param def the default Color. + * Gets the Color from the specified string, or returns the Color specified + * by the second parameter. * - * @return the color from the specified string, or the Color - * specified by the second parameter. + * @param nm + * the specified string. + * @param def + * the default Color. + * @return the color from the specified string, or the Color specified by + * the second parameter. */ public static Color getColor(String nm, Color def) { Integer integer = Integer.getInteger(nm); @@ -668,11 +749,12 @@ public class Color implements Paint, Serializable { * Gets the Color from the specified string, or returns the Color converted * from the second parameter. * - * @param nm the specified string. - * @param def the default Color. - * - * @return the color from the specified string, or the Color - * converted from the second parameter. + * @param nm + * the specified string. + * @param def + * the default Color. + * @return the color from the specified string, or the Color converted from + * the second parameter. */ public static Color getColor(String nm, int def) { Integer integer = Integer.getInteger(nm); @@ -687,8 +769,8 @@ public class Color implements Paint, Serializable { /** * Gets the Color from the specified String. * - * @param nm the specified string. - * + * @param nm + * the specified string. * @return the Color object, or null. */ public static Color getColor(String nm) { @@ -704,10 +786,12 @@ public class Color implements Paint, Serializable { /** * Decodes a String to an integer and returns the specified opaque Color. * - * @param nm a String which represents an opaque color as a 24-bit integer. - * - * @throws NumberFormatException if the specified string can not be - * converted to an integer. + * @param nm + * the String which represents an opaque color as a 24-bit + * integer. + * @return the Color object from the given String. + * @throws NumberFormatException + * if the specified string can not be converted to an integer. */ public static Color decode(String nm) throws NumberFormatException { Integer integer = Integer.decode(nm); @@ -717,31 +801,36 @@ public class Color implements Paint, Serializable { /** * Gets a Color object using the specified values of the HSB color model. * - * @param h the hue component of the Color. - * @param s the saturation of the Color. - * @param b the brightness of the Color. - * - * @return a color object with the specified hue, saturation and - * brightness values. + * @param h + * the hue component of the Color. + * @param s + * the saturation of the Color. + * @param b + * the brightness of the Color. + * @return a color object with the specified hue, saturation and brightness + * values. */ public static Color getHSBColor(float h, float s, float b) { return new Color(HSBtoRGB(h, s, b)); } /** - * Converts the Color specified by the RGB model to an equivalent - * color in the HSB model. - * - * @param r the red component. - * @param g the green component. - * @param b the blue component. - * @param hsbvals the array of result hue, saturation, brightness - * values or null. + * Converts the Color specified by the RGB model to an equivalent color in + * the HSB model. * + * @param r + * the red component. + * @param g + * the green component. + * @param b + * the blue component. + * @param hsbvals + * the array of result hue, saturation, brightness values or + * null. * @return the float array of hue, saturation, brightness values. */ public static float[] RGBtoHSB(int r, int g, int b, float[] hsbvals) { - if(hsbvals == null) { + if (hsbvals == null) { hsbvals = new float[3]; } @@ -750,12 +839,12 @@ public class Color implements Paint, Serializable { float H, S, B; - B = V/255.f; + B = V / 255.f; - if(V == temp) { + if (V == temp) { H = S = 0; } else { - S = (V - temp)/((float)V); + S = (V - temp) / ((float)V); float Cr = (V - r) / (float)(V - temp); float Cg = (V - g) / (float)(V - temp); @@ -770,7 +859,7 @@ public class Color implements Paint, Serializable { } H /= 6.f; - if(H < 0) { + if (H < 0) { H++; } } @@ -783,50 +872,70 @@ public class Color implements Paint, Serializable { } /** - * Converts the Color specified by the HSB model to an equivalent - * color in the default RGB model. - * - * @param hue the hue component of the Color. - * @param saturation the saturation of the Color. - * @param brightness the brightness of the Color. + * Converts the Color specified by the HSB model to an equivalent color in + * the default RGB model. * - * @return the RGB value of the color with the specified hue, - * saturation and brightness. + * @param hue + * the hue component of the Color. + * @param saturation + * the saturation of the Color. + * @param brightness + * the brightness of the Color. + * @return the RGB value of the color with the specified hue, saturation and + * brightness. */ public static int HSBtoRGB(float hue, float saturation, float brightness) { float fr, fg, fb; - if(saturation == 0) { + if (saturation == 0) { fr = fg = fb = brightness; } else { float H = (hue - (float)Math.floor(hue)) * 6; - int I = (int) Math.floor(H); + int I = (int)Math.floor(H); float F = H - I; float M = brightness * (1 - saturation); float N = brightness * (1 - saturation * F); float K = brightness * (1 - saturation * (1 - F)); - switch(I) { + switch (I) { case 0: - fr = brightness; fg = K; fb = M; break; + fr = brightness; + fg = K; + fb = M; + break; case 1: - fr = N; fg = brightness; fb = M; break; + fr = N; + fg = brightness; + fb = M; + break; case 2: - fr = M; fg = brightness; fb = K; break; + fr = M; + fg = brightness; + fb = K; + break; case 3: - fr = M; fg = N; fb = brightness; break; + fr = M; + fg = N; + fb = brightness; + break; case 4: - fr = K; fg = M; fb = brightness; break; + fr = K; + fg = M; + fb = brightness; + break; case 5: - fr = brightness; fg = M; fb = N; break; + fr = brightness; + fg = M; + fb = N; + break; default: fr = fb = fg = 0; // impossible, to supress compiler error } } - int r = (int) (fr * 255. + 0.5); - int g = (int) (fg * 255. + 0.5); - int b = (int) (fb * 255. + 0.5); + int r = (int)(fr * 255. + 0.5); + int g = (int)(fg * 255. + 0.5); + int b = (int)(fb * 255. + 0.5); return (r << 16) | (g << 8) | b | 0xFF000000; } @@ -835,17 +944,22 @@ public class Color implements Paint, Serializable { * The Class ColorPaintContext. */ class ColorPaintContext implements PaintContext { - - /** The rgb value. */ + + /** + * The RGB value. + */ int rgbValue; - - /** The saved raster. */ + + /** + * The saved raster. + */ WritableRaster savedRaster = null; /** * Instantiates a new color paint context. * - * @param rgb the rgb + * @param rgb + * the RGB value. */ protected ColorPaintContext(int rgb) { rgbValue = rgb; @@ -860,15 +974,11 @@ public class Color implements Paint, Serializable { } public Raster getRaster(int x, int y, int w, int h) { - if (savedRaster == null || - w != savedRaster.getWidth() || - h != savedRaster.getHeight()) { - savedRaster = - getColorModel().createCompatibleWritableRaster(w, h); + if (savedRaster == null || w != savedRaster.getWidth() || h != savedRaster.getHeight()) { + savedRaster = getColorModel().createCompatibleWritableRaster(w, h); // Suppose we have here simple INT/RGB color/sample model - DataBufferInt intBuffer = - (DataBufferInt) savedRaster.getDataBuffer(); + DataBufferInt intBuffer = (DataBufferInt)savedRaster.getDataBuffer(); int rgbValues[] = intBuffer.getData(); int rgbFillValue = rgbValue; Arrays.fill(rgbValues, rgbFillValue); @@ -878,4 +988,3 @@ public class Color implements Paint, Serializable { } } } - diff --git a/awt/java/awt/Component.java b/awt/java/awt/Component.java index f19d285..c52a9f4 100644 --- a/awt/java/awt/Component.java +++ b/awt/java/awt/Component.java @@ -78,547 +78,273 @@ import java.util.Set; //import javax.accessibility.AccessibleState; //import javax.accessibility.AccessibleStateSet; -import org.apache.harmony.awt.ClipRegion; -//import org.apache.harmony.awt.FieldsAccessor; +import org.apache.harmony.awt.ClipRegion; //import org.apache.harmony.awt.FieldsAccessor; import org.apache.harmony.awt.gl.MultiRectArea; import org.apache.harmony.awt.internal.nls.Messages; -import org.apache.harmony.awt.state.State; -//import org.apache.harmony.awt.text.TextFieldKit; +import org.apache.harmony.awt.state.State; //import org.apache.harmony.awt.text.TextFieldKit; //import org.apache.harmony.awt.text.TextKit; import org.apache.harmony.awt.wtk.NativeWindow; +import org.apache.harmony.luni.util.NotImplementedException; /** - * The abstract Component class specifies an object with a graphical - * representation that can be displayed on the screen and that can - * interact with the user (for example: scrollbars, buttons, checkboxes). + * The abstract Component class specifies an object with a graphical + * representation that can be displayed on the screen and that can interact with + * the user (for example: scrollbars, buttons, checkboxes). + * + * @since Android 1.0 */ public abstract class Component implements ImageObserver, MenuContainer, Serializable { - - /** The Constant serialVersionUID. */ + + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -7644114512714619750L; - /** The Constant TOP_ALIGNMENT indicates the top alignment of the component. */ + /** + * The Constant TOP_ALIGNMENT indicates the top alignment of the component. + */ public static final float TOP_ALIGNMENT = 0.0f; - /** The Constant CENTER_ALIGNMENT indicates the center alignment of the component. */ + /** + * The Constant CENTER_ALIGNMENT indicates the center alignment of the + * component. + */ public static final float CENTER_ALIGNMENT = 0.5f; - /** The Constant BOTTOM_ALIGNMENT indicates the bottom alignment of the component. */ + /** + * The Constant BOTTOM_ALIGNMENT indicates the bottom alignment of the + * component. + */ public static final float BOTTOM_ALIGNMENT = 1.0f; - /** The Constant LEFT_ALIGNMENT indicates the left alignment of the component. */ + /** + * The Constant LEFT_ALIGNMENT indicates the left alignment of the + * component. + */ public static final float LEFT_ALIGNMENT = 0.0f; - /** The Constant RIGHT_ALIGNMENT indicates the right alignment of the component. */ + /** + * The Constant RIGHT_ALIGNMENT indicates the right alignment of the + * component. + */ public static final float RIGHT_ALIGNMENT = 1.0f; - /** The Constant childClassesFlags. */ + /** + * The Constant childClassesFlags. + */ private static final Hashtable<Class<?>, Boolean> childClassesFlags = new Hashtable<Class<?>, Boolean>(); - /** The Constant peer. */ + /** + * The Constant peer. + */ private static final ComponentPeer peer = new ComponentPeer() { }; - /** The Constant incrementalImageUpdate. */ + /** + * The Constant incrementalImageUpdate. + */ private static final boolean incrementalImageUpdate; - /** The toolkit. */ + /** + * The toolkit. + */ final transient Toolkit toolkit = Toolkit.getDefaultToolkit(); - //???AWT + // ???AWT /* - protected abstract class AccessibleAWTComponent extends AccessibleContext implements - Serializable, AccessibleComponent { - private static final long serialVersionUID = 642321655757800191L; - - protected class AccessibleAWTComponentHandler implements ComponentListener { - protected AccessibleAWTComponentHandler() { - } - - public void componentHidden(ComponentEvent e) { - if (behaviour.isLightweight()) { - return; - } - firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY, - AccessibleState.VISIBLE, null); - } - - public void componentMoved(ComponentEvent e) { - } - - public void componentResized(ComponentEvent e) { - } - - public void componentShown(ComponentEvent e) { - if (behaviour.isLightweight()) { - return; - } - firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY, null, - AccessibleState.VISIBLE); - } - } - - protected class AccessibleAWTFocusHandler implements FocusListener { - public void focusGained(FocusEvent e) { - if (behaviour.isLightweight()) { - return; - } - firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY, null, - AccessibleState.FOCUSED); - } - - public void focusLost(FocusEvent e) { - if (behaviour.isLightweight()) { - return; - } - firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY, - AccessibleState.FOCUSED, null); - } - } - - protected ComponentListener accessibleAWTComponentHandler; - - protected FocusListener accessibleAWTFocusHandler; - */ - /* - * Number of registered property change listeners. - */ - /* - int listenersCount; - - public void addFocusListener(FocusListener l) { - Component.this.addFocusListener(l); - } - - @Override - public void addPropertyChangeListener(PropertyChangeListener listener) { - toolkit.lockAWT(); - try { - super.addPropertyChangeListener(listener); - listenersCount++; - if (accessibleAWTComponentHandler == null) { - accessibleAWTComponentHandler = new AccessibleAWTComponentHandler(); - Component.this.addComponentListener(accessibleAWTComponentHandler); - } - if (accessibleAWTFocusHandler == null) { - accessibleAWTFocusHandler = new AccessibleAWTFocusHandler(); - Component.this.addFocusListener(accessibleAWTFocusHandler); - } - } finally { - toolkit.unlockAWT(); - } - } - - public boolean contains(Point p) { - toolkit.lockAWT(); - try { - return Component.this.contains(p); - } finally { - toolkit.unlockAWT(); - } - } - - public Accessible getAccessibleAt(Point arg0) { - toolkit.lockAWT(); - try { - return null; - } finally { - toolkit.unlockAWT(); - } - } - - public Color getBackground() { - toolkit.lockAWT(); - try { - return Component.this.getBackground(); - } finally { - toolkit.unlockAWT(); - } - } - - public Rectangle getBounds() { - toolkit.lockAWT(); - try { - return Component.this.getBounds(); - } finally { - toolkit.unlockAWT(); - } - } - - public Cursor getCursor() { - toolkit.lockAWT(); - try { - return Component.this.getCursor(); - } finally { - toolkit.unlockAWT(); - } - } - - public Font getFont() { - toolkit.lockAWT(); - try { - return Component.this.getFont(); - } finally { - toolkit.unlockAWT(); - } - } - - public FontMetrics getFontMetrics(Font f) { - toolkit.lockAWT(); - try { - return Component.this.getFontMetrics(f); - } finally { - toolkit.unlockAWT(); - } - } - - public Color getForeground() { - toolkit.lockAWT(); - try { - return Component.this.getForeground(); - } finally { - toolkit.unlockAWT(); - } - } - - public Point getLocation() { - toolkit.lockAWT(); - try { - return Component.this.getLocation(); - } finally { - toolkit.unlockAWT(); - } - } - - public Point getLocationOnScreen() { - toolkit.lockAWT(); - try { - return Component.this.getLocationOnScreen(); - } finally { - toolkit.unlockAWT(); - } - } - - public Dimension getSize() { - toolkit.lockAWT(); - try { - return Component.this.getSize(); - } finally { - toolkit.unlockAWT(); - } - } - - public boolean isEnabled() { - toolkit.lockAWT(); - try { - return Component.this.isEnabled(); - } finally { - toolkit.unlockAWT(); - } - } - - public boolean isFocusTraversable() { - toolkit.lockAWT(); - try { - return Component.this.isFocusTraversable(); - } finally { - toolkit.unlockAWT(); - } - } - - public boolean isShowing() { - toolkit.lockAWT(); - try { - return Component.this.isShowing(); - } finally { - toolkit.unlockAWT(); - } - } - - public boolean isVisible() { - toolkit.lockAWT(); - try { - return Component.this.isVisible(); - } finally { - toolkit.unlockAWT(); - } - } - - public void removeFocusListener(FocusListener l) { - Component.this.removeFocusListener(l); - } - - @Override - public void removePropertyChangeListener(PropertyChangeListener listener) { - toolkit.lockAWT(); - try { - super.removePropertyChangeListener(listener); - listenersCount--; - if (listenersCount > 0) { - return; - } - // if there are no more listeners, remove handlers: - Component.this.removeFocusListener(accessibleAWTFocusHandler); - Component.this.removeComponentListener(accessibleAWTComponentHandler); - accessibleAWTComponentHandler = null; - accessibleAWTFocusHandler = null; - } finally { - toolkit.unlockAWT(); - } - } - - public void requestFocus() { - toolkit.lockAWT(); - try { - Component.this.requestFocus(); - } finally { - toolkit.unlockAWT(); - } - } - - public void setBackground(Color color) { - toolkit.lockAWT(); - try { - Component.this.setBackground(color); - } finally { - toolkit.unlockAWT(); - } - } - - public void setBounds(Rectangle r) { - toolkit.lockAWT(); - try { - Component.this.setBounds(r); - } finally { - toolkit.unlockAWT(); - } - } - - public void setCursor(Cursor cursor) { - toolkit.lockAWT(); - try { - Component.this.setCursor(cursor); - } finally { - toolkit.unlockAWT(); - } - } - - public void setEnabled(boolean enabled) { - toolkit.lockAWT(); - try { - Component.this.setEnabled(enabled); - } finally { - toolkit.unlockAWT(); - } - } - - public void setFont(Font f) { - toolkit.lockAWT(); - try { - Component.this.setFont(f); - } finally { - toolkit.unlockAWT(); - } - } - - public void setForeground(Color color) { - toolkit.lockAWT(); - try { - Component.this.setForeground(color); - } finally { - toolkit.unlockAWT(); - } - } - - public void setLocation(Point p) { - toolkit.lockAWT(); - try { - Component.this.setLocation(p); - } finally { - toolkit.unlockAWT(); - } - } - - public void setSize(Dimension size) { - toolkit.lockAWT(); - try { - Component.this.setSize(size); - } finally { - toolkit.unlockAWT(); - } - } - - public void setVisible(boolean visible) { - toolkit.lockAWT(); - try { - Component.this.setVisible(visible); - } finally { - toolkit.unlockAWT(); - } - } - - @Override - public Accessible getAccessibleParent() { - toolkit.lockAWT(); - try { - Accessible aParent = super.getAccessibleParent(); - if (aParent != null) { - return aParent; - } - Container parent = getParent(); - return (parent instanceof Accessible ? (Accessible) parent : null); - } finally { - toolkit.unlockAWT(); - } - } - - @Override - public Accessible getAccessibleChild(int i) { - toolkit.lockAWT(); - try { - return null; - } finally { - toolkit.unlockAWT(); - } - } - - @Override - public int getAccessibleChildrenCount() { - toolkit.lockAWT(); - try { - return 0; - } finally { - toolkit.unlockAWT(); - } - } - - @Override - public AccessibleComponent getAccessibleComponent() { - return this; - } - - @Override - public String getAccessibleDescription() { - return super.getAccessibleDescription(); // why override? - } - - @Override - public int getAccessibleIndexInParent() { - toolkit.lockAWT(); - try { - if (getAccessibleParent() == null) { - return -1; - } - int count = 0; - Container parent = getParent(); - for (int i = 0; i < parent.getComponentCount(); i++) { - Component aComp = parent.getComponent(i); - if (aComp instanceof Accessible) { - if (aComp == Component.this) { - return count; - } - ++count; - } - } - return -1; - } finally { - toolkit.unlockAWT(); - } - } - - @Override - public AccessibleRole getAccessibleRole() { - toolkit.lockAWT(); - try { - return AccessibleRole.AWT_COMPONENT; - } finally { - toolkit.unlockAWT(); - } - } - - @Override - public AccessibleStateSet getAccessibleStateSet() { - toolkit.lockAWT(); - try { - AccessibleStateSet set = new AccessibleStateSet(); - if (isEnabled()) { - set.add(AccessibleState.ENABLED); - } - if (isFocusable()) { - set.add(AccessibleState.FOCUSABLE); - } - if (hasFocus()) { - set.add(AccessibleState.FOCUSED); - } - if (isOpaque()) { - set.add(AccessibleState.OPAQUE); - } - if (isShowing()) { - set.add(AccessibleState.SHOWING); - } - if (isVisible()) { - set.add(AccessibleState.VISIBLE); - } - return set; - } finally { - toolkit.unlockAWT(); - } - } - - @Override - public Locale getLocale() throws IllegalComponentStateException { - toolkit.lockAWT(); - try { - return Component.this.getLocale(); - } finally { - toolkit.unlockAWT(); - } - } - } - */ - /** - * The BltBufferStrategy class provides opportunity of blitting - * offscreen surfaces to a component. For more information on - * blitting, see <a href="http://en.wikipedia.org/wiki/Bit_blit">Bit blit</a>. + * protected abstract class AccessibleAWTComponent extends AccessibleContext + * implements Serializable, AccessibleComponent { private static final long + * serialVersionUID = 642321655757800191L; protected class + * AccessibleAWTComponentHandler implements ComponentListener { protected + * AccessibleAWTComponentHandler() { } public void + * componentHidden(ComponentEvent e) { if (behaviour.isLightweight()) { + * return; } firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY, + * AccessibleState.VISIBLE, null); } public void + * componentMoved(ComponentEvent e) { } public void + * componentResized(ComponentEvent e) { } public void + * componentShown(ComponentEvent e) { if (behaviour.isLightweight()) { + * return; } firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY, + * null, AccessibleState.VISIBLE); } } protected class + * AccessibleAWTFocusHandler implements FocusListener { public void + * focusGained(FocusEvent e) { if (behaviour.isLightweight()) { return; } + * firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY, null, + * AccessibleState.FOCUSED); } public void focusLost(FocusEvent e) { if + * (behaviour.isLightweight()) { return; } + * firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY, + * AccessibleState.FOCUSED, null); } } protected ComponentListener + * accessibleAWTComponentHandler; protected FocusListener + * accessibleAWTFocusHandler; + */ + /* + * Number of registered property change listeners. + */ + /* + * int listenersCount; public void addFocusListener(FocusListener l) { + * Component.this.addFocusListener(l); } + * @Override public void addPropertyChangeListener(PropertyChangeListener + * listener) { toolkit.lockAWT(); try { + * super.addPropertyChangeListener(listener); listenersCount++; if + * (accessibleAWTComponentHandler == null) { accessibleAWTComponentHandler = + * new AccessibleAWTComponentHandler(); + * Component.this.addComponentListener(accessibleAWTComponentHandler); } if + * (accessibleAWTFocusHandler == null) { accessibleAWTFocusHandler = new + * AccessibleAWTFocusHandler(); + * Component.this.addFocusListener(accessibleAWTFocusHandler); } } finally { + * toolkit.unlockAWT(); } } public boolean contains(Point p) { + * toolkit.lockAWT(); try { return Component.this.contains(p); } finally { + * toolkit.unlockAWT(); } } public Accessible getAccessibleAt(Point arg0) { + * toolkit.lockAWT(); try { return null; } finally { toolkit.unlockAWT(); } + * } public Color getBackground() { toolkit.lockAWT(); try { return + * Component.this.getBackground(); } finally { toolkit.unlockAWT(); } } + * public Rectangle getBounds() { toolkit.lockAWT(); try { return + * Component.this.getBounds(); } finally { toolkit.unlockAWT(); } } public + * Cursor getCursor() { toolkit.lockAWT(); try { return + * Component.this.getCursor(); } finally { toolkit.unlockAWT(); } } public + * Font getFont() { toolkit.lockAWT(); try { return + * Component.this.getFont(); } finally { toolkit.unlockAWT(); } } public + * FontMetrics getFontMetrics(Font f) { toolkit.lockAWT(); try { return + * Component.this.getFontMetrics(f); } finally { toolkit.unlockAWT(); } } + * public Color getForeground() { toolkit.lockAWT(); try { return + * Component.this.getForeground(); } finally { toolkit.unlockAWT(); } } + * public Point getLocation() { toolkit.lockAWT(); try { return + * Component.this.getLocation(); } finally { toolkit.unlockAWT(); } } public + * Point getLocationOnScreen() { toolkit.lockAWT(); try { return + * Component.this.getLocationOnScreen(); } finally { toolkit.unlockAWT(); } + * } public Dimension getSize() { toolkit.lockAWT(); try { return + * Component.this.getSize(); } finally { toolkit.unlockAWT(); } } public + * boolean isEnabled() { toolkit.lockAWT(); try { return + * Component.this.isEnabled(); } finally { toolkit.unlockAWT(); } } public + * boolean isFocusTraversable() { toolkit.lockAWT(); try { return + * Component.this.isFocusTraversable(); } finally { toolkit.unlockAWT(); } } + * public boolean isShowing() { toolkit.lockAWT(); try { return + * Component.this.isShowing(); } finally { toolkit.unlockAWT(); } } public + * boolean isVisible() { toolkit.lockAWT(); try { return + * Component.this.isVisible(); } finally { toolkit.unlockAWT(); } } public + * void removeFocusListener(FocusListener l) { + * Component.this.removeFocusListener(l); } + * @Override public void removePropertyChangeListener(PropertyChangeListener + * listener) { toolkit.lockAWT(); try { + * super.removePropertyChangeListener(listener); listenersCount--; if + * (listenersCount > 0) { return; } // if there are no more listeners, + * remove handlers: + * Component.this.removeFocusListener(accessibleAWTFocusHandler); + * Component.this.removeComponentListener(accessibleAWTComponentHandler); + * accessibleAWTComponentHandler = null; accessibleAWTFocusHandler = null; } + * finally { toolkit.unlockAWT(); } } public void requestFocus() { + * toolkit.lockAWT(); try { Component.this.requestFocus(); } finally { + * toolkit.unlockAWT(); } } public void setBackground(Color color) { + * toolkit.lockAWT(); try { Component.this.setBackground(color); } finally { + * toolkit.unlockAWT(); } } public void setBounds(Rectangle r) { + * toolkit.lockAWT(); try { Component.this.setBounds(r); } finally { + * toolkit.unlockAWT(); } } public void setCursor(Cursor cursor) { + * toolkit.lockAWT(); try { Component.this.setCursor(cursor); } finally { + * toolkit.unlockAWT(); } } public void setEnabled(boolean enabled) { + * toolkit.lockAWT(); try { Component.this.setEnabled(enabled); } finally { + * toolkit.unlockAWT(); } } public void setFont(Font f) { toolkit.lockAWT(); + * try { Component.this.setFont(f); } finally { toolkit.unlockAWT(); } } + * public void setForeground(Color color) { toolkit.lockAWT(); try { + * Component.this.setForeground(color); } finally { toolkit.unlockAWT(); } } + * public void setLocation(Point p) { toolkit.lockAWT(); try { + * Component.this.setLocation(p); } finally { toolkit.unlockAWT(); } } + * public void setSize(Dimension size) { toolkit.lockAWT(); try { + * Component.this.setSize(size); } finally { toolkit.unlockAWT(); } } public + * void setVisible(boolean visible) { toolkit.lockAWT(); try { + * Component.this.setVisible(visible); } finally { toolkit.unlockAWT(); } } + * @Override public Accessible getAccessibleParent() { toolkit.lockAWT(); + * try { Accessible aParent = super.getAccessibleParent(); if (aParent != + * null) { return aParent; } Container parent = getParent(); return (parent + * instanceof Accessible ? (Accessible) parent : null); } finally { + * toolkit.unlockAWT(); } } + * @Override public Accessible getAccessibleChild(int i) { + * toolkit.lockAWT(); try { return null; } finally { toolkit.unlockAWT(); } + * } + * @Override public int getAccessibleChildrenCount() { toolkit.lockAWT(); + * try { return 0; } finally { toolkit.unlockAWT(); } } + * @Override public AccessibleComponent getAccessibleComponent() { return + * this; } + * @Override public String getAccessibleDescription() { return + * super.getAccessibleDescription(); // why override? } + * @Override public int getAccessibleIndexInParent() { toolkit.lockAWT(); + * try { if (getAccessibleParent() == null) { return -1; } int count = 0; + * Container parent = getParent(); for (int i = 0; i < + * parent.getComponentCount(); i++) { Component aComp = + * parent.getComponent(i); if (aComp instanceof Accessible) { if (aComp == + * Component.this) { return count; } ++count; } } return -1; } finally { + * toolkit.unlockAWT(); } } + * @Override public AccessibleRole getAccessibleRole() { toolkit.lockAWT(); + * try { return AccessibleRole.AWT_COMPONENT; } finally { + * toolkit.unlockAWT(); } } + * @Override public AccessibleStateSet getAccessibleStateSet() { + * toolkit.lockAWT(); try { AccessibleStateSet set = new + * AccessibleStateSet(); if (isEnabled()) { + * set.add(AccessibleState.ENABLED); } if (isFocusable()) { + * set.add(AccessibleState.FOCUSABLE); } if (hasFocus()) { + * set.add(AccessibleState.FOCUSED); } if (isOpaque()) { + * set.add(AccessibleState.OPAQUE); } if (isShowing()) { + * set.add(AccessibleState.SHOWING); } if (isVisible()) { + * set.add(AccessibleState.VISIBLE); } return set; } finally { + * toolkit.unlockAWT(); } } + * @Override public Locale getLocale() throws IllegalComponentStateException + * { toolkit.lockAWT(); try { return Component.this.getLocale(); } finally { + * toolkit.unlockAWT(); } } } + */ + /** + * The BltBufferStrategy class provides opportunity of blitting offscreen + * surfaces to a component. For more information on blitting, see <a + * href="http://en.wikipedia.org/wiki/Bit_blit">Bit blit</a>. + * + * @since Android 1.0 */ protected class BltBufferStrategy extends BufferStrategy { - - /** The back buffers. */ + + /** + * The back buffers. + */ protected VolatileImage[] backBuffers; - /** The caps. */ + /** + * The caps. + */ protected BufferCapabilities caps; - /** The width. */ + /** + * The width. + */ protected int width; - /** The height. */ + /** + * The height. + */ protected int height; - /** The validated contents. */ + /** + * The validated contents. + */ protected boolean validatedContents; /** * Instantiates a new BltBufferStrategy buffer strategy. * - * @param numBuffers the number of buffers. - * @param caps the BufferCapabilities. - * - * @throws NotImplementedException the not implemented exception. + * @param numBuffers + * the number of buffers. + * @param caps + * the BufferCapabilities. + * @throws NotImplementedException + * the not implemented exception. */ - protected BltBufferStrategy(int numBuffers, BufferCapabilities caps) throws org.apache.harmony.luni.util.NotImplementedException { + protected BltBufferStrategy(int numBuffers, BufferCapabilities caps) + throws org.apache.harmony.luni.util.NotImplementedException { if (true) { throw new RuntimeException("Method is not implemented"); //$NON-NLS-1$ } } /** - * Returns true if the drawing buffer has been lost since the last call - * to getDrawGraphics. + * Returns true if the drawing buffer has been lost since the last call + * to getDrawGraphics. * - * @return true if the drawing buffer has been lost since the last call - * to getDrawGraphics, false otherwise. - * + * @return true if the drawing buffer has been lost since the last call + * to getDrawGraphics, false otherwise. * @see java.awt.image.BufferStrategy#contentsLost() */ @Override @@ -634,9 +360,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * state and reinitialized to the default background color. * * @return true if the drawing buffer has been restored from a lost - * state and reinitialized to the default background color, - * false otherwise. - * + * state and reinitialized to the default background color, + * false otherwise. * @see java.awt.image.BufferStrategy#contentsRestored() */ @Override @@ -650,7 +375,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Creates the back buffers. * - * @param numBuffers the number of buffers. + * @param numBuffers + * the number of buffers. */ protected void createBackBuffers(int numBuffers) { if (true) { @@ -662,19 +388,17 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * Returns the BufferCapabilities of the buffer strategy. * * @return the BufferCapabilities. - * * @see java.awt.image.BufferStrategy#getCapabilities() */ @Override public BufferCapabilities getCapabilities() { - return (BufferCapabilities) caps.clone(); + return (BufferCapabilities)caps.clone(); } /** * Gets Graphics of current buffer strategy. * * @return the Graphics of current buffer strategy. - * * @see java.awt.image.BufferStrategy#getDrawGraphics() */ @Override @@ -708,56 +432,68 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * The FlipBufferStrategy class is for flipping buffers on a component. + * The FlipBufferStrategy class is for flipping buffers on a component. + * + * @since Android 1.0 */ protected class FlipBufferStrategy extends BufferStrategy { - - /** The Buffer Capabilities. */ + + /** + * The Buffer Capabilities. + */ protected BufferCapabilities caps; - /** The drawing buffer. */ + /** + * The drawing buffer. + */ protected Image drawBuffer; - /** The drawing VolatileImage buffer. */ + /** + * The drawing VolatileImage buffer. + */ protected VolatileImage drawVBuffer; - /** The number of buffers. */ + /** + * The number of buffers. + */ protected int numBuffers; - /** The validated contents indicates if the drawing buffer is restored from - * lost state. */ + /** + * The validated contents indicates if the drawing buffer is restored + * from lost state. + */ protected boolean validatedContents; /** * Instantiates a new flip buffer strategy. * - * @param numBuffers the number of buffers. - * @param caps the BufferCapabilities. - * - * @throws AWTException if the capabilities supplied could not - * be supported or met. + * @param numBuffers + * the number of buffers. + * @param caps + * the BufferCapabilities. + * @throws AWTException + * if the capabilities supplied could not be supported or + * met. */ - protected FlipBufferStrategy(int numBuffers, BufferCapabilities caps) - throws AWTException { - //???AWT + protected FlipBufferStrategy(int numBuffers, BufferCapabilities caps) throws AWTException { + // ???AWT /* - if (!(Component.this instanceof Window) && !(Component.this instanceof Canvas)) { - // awt.14B=Only Canvas or Window is allowed - throw new ClassCastException(Messages.getString("awt.14B")); //$NON-NLS-1$ - } - */ + * if (!(Component.this instanceof Window) && !(Component.this + * instanceof Canvas)) { // awt.14B=Only Canvas or Window is allowed + * throw new ClassCastException(Messages.getString("awt.14B")); + * //$NON-NLS-1$ } + */ // TODO: throw new AWTException("Capabilities are not supported"); this.numBuffers = numBuffers; - this.caps = (BufferCapabilities) caps.clone(); + this.caps = (BufferCapabilities)caps.clone(); } /** - * Returns true if the drawing buffer has been lost since the last call - * to getDrawGraphics. - * - * @return true if the drawing buffer has been lost since the last call - * to getDrawGraphics, false otherwise. + * Returns true if the drawing buffer has been lost since the last call + * to getDrawGraphics. * + * @return true if the drawing buffer has been lost since the last call + * to getDrawGraphics, false otherwise. * @see java.awt.image.BufferStrategy#contentsLost() */ @Override @@ -773,9 +509,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * state and reinitialized to the default background color. * * @return true if the drawing buffer has been restored from a lost - * state and reinitialized to the default background color, - * false otherwise. - * + * state and reinitialized to the default background color, + * false otherwise. * @see java.awt.image.BufferStrategy#contentsRestored() */ @Override @@ -789,14 +524,14 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Creates flipping buffers with the specified buffer capabilities. * - * @param numBuffers the number of buffers. - * @param caps the BufferCapabilities. - * - * @throws AWTException if the capabilities could not be - * supported or met. + * @param numBuffers + * the number of buffers. + * @param caps + * the BufferCapabilities. + * @throws AWTException + * if the capabilities could not be supported or met. */ - protected void createBuffers(int numBuffers, BufferCapabilities caps) - throws AWTException { + protected void createBuffers(int numBuffers, BufferCapabilities caps) throws AWTException { if (numBuffers < 2) { // awt.14C=Number of buffers must be greater than one throw new IllegalArgumentException(Messages.getString("awt.14C")); //$NON-NLS-1$ @@ -827,7 +562,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Flips the contents of the back buffer to the front buffer. * - * @param flipAction the flip action. + * @param flipAction + * the flip action. */ protected void flip(BufferCapabilities.FlipContents flipAction) { if (true) { @@ -851,19 +587,17 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * Returns the BufferCapabilities of the buffer strategy. * * @return the BufferCapabilities. - * * @see java.awt.image.BufferStrategy#getCapabilities() */ @Override public BufferCapabilities getCapabilities() { - return (BufferCapabilities) caps.clone(); + return (BufferCapabilities)caps.clone(); } /** * Gets Graphics of current buffer strategy. * * @return the Graphics of current buffer strategy. - * * @see java.awt.image.BufferStrategy#getDrawGraphics() */ @Override @@ -900,14 +634,16 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * The internal component's state utilized by the visual theme. */ class ComponentState implements State { - - /** The default minimum size. */ + + /** + * The default minimum size. + */ private Dimension defaultMinimumSize = new Dimension(); /** * Checks if the component is enabled. * - * @return true, if the component is enabled + * @return true, if the component is enabled. */ public boolean isEnabled() { return enabled; @@ -916,7 +652,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks if the component is visible. * - * @return true, if the component is visible + * @return true, if the component is visible. */ public boolean isVisible() { return visible; @@ -925,17 +661,17 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks if is focused. * - * @return true, if is focused + * @return true, if is focused. */ public boolean isFocused() { - //???AWT: return isFocusOwner(); + // ???AWT: return isFocusOwner(); return false; } /** * Gets the font. * - * @return the font + * @return the font. */ public Font getFont() { return Component.this.getFont(); @@ -944,7 +680,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks if the font has been set. * - * @return true, if the font has been set + * @return true, if the font has been set. */ public boolean isFontSet() { return font != null; @@ -953,7 +689,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Gets the background color. * - * @return the background color + * @return the background color. */ public Color getBackground() { Color c = Component.this.getBackground(); @@ -963,7 +699,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks if the background is set. * - * @return true, if the background is set + * @return true, if the background is set. */ public boolean isBackgroundSet() { return backColor != null; @@ -972,7 +708,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Gets the text color. * - * @return the text color + * @return the text color. */ public Color getTextColor() { Color c = getForeground(); @@ -982,7 +718,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks if the text color is set. * - * @return true, if the text color is set + * @return true, if the text color is set. */ public boolean isTextColorSet() { return foreColor != null; @@ -991,7 +727,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Gets the font metrics. * - * @return the font metrics + * @return the font metrics. */ @SuppressWarnings("deprecation") public FontMetrics getFontMetrics() { @@ -1001,7 +737,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Gets the bounding rectangle. * - * @return the bounding rectangle + * @return the bounding rectangle. */ public Rectangle getBounds() { return new Rectangle(x, y, w, h); @@ -1010,7 +746,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Gets the size of the bounding rectangle. * - * @return the size of the bounding rectangle + * @return the size of the bounding rectangle. */ public Dimension getSize() { return new Dimension(w, h); @@ -1019,7 +755,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Gets the window id. * - * @return the window id + * @return the window id. */ public long getWindowId() { NativeWindow win = getNativeWindow(); @@ -1029,7 +765,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Gets the default minimum size. * - * @return the default minimum size + * @return the default minimum size. */ public Dimension getDefaultMinimumSize() { if (defaultMinimumSize == null) { @@ -1041,7 +777,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Sets the default minimum size. * - * @param size the new default minimum size + * @param size + * the new default minimum size. */ public void setDefaultMinimumSize(Dimension size) { defaultMinimumSize = size; @@ -1062,179 +799,283 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } } - //???AWT: private transient AccessibleContext accessibleContext; + // ???AWT: private transient AccessibleContext accessibleContext; - /** The behaviour. */ + /** + * The behaviour. + */ final transient ComponentBehavior behaviour; - //???AWT: Container parent; + // ???AWT: Container parent; - /** The name. */ + /** + * The name. + */ private String name; - /** The auto name. */ + /** + * The auto name. + */ private boolean autoName = true; - /** The font. */ + /** + * The font. + */ private Font font; - /** The back color. */ + /** + * The back color. + */ private Color backColor; - /** The fore color. */ + /** + * The fore color. + */ private Color foreColor; - /** The deprecated event handler. */ + /** + * The deprecated event handler. + */ boolean deprecatedEventHandler = true; - /** The enabled events. */ + /** + * The enabled events. + */ private long enabledEvents; - /** The enabled awt events. */ + /** + * The enabled AWT events. + */ private long enabledAWTEvents; - /** The component listeners. */ + /** + * The component listeners. + */ private final AWTListenerList<ComponentListener> componentListeners = new AWTListenerList<ComponentListener>( this); - /** The focus listeners. */ + /** + * The focus listeners. + */ private final AWTListenerList<FocusListener> focusListeners = new AWTListenerList<FocusListener>( this); - /** The hierarchy listeners. */ + /** + * The hierarchy listeners. + */ private final AWTListenerList<HierarchyListener> hierarchyListeners = new AWTListenerList<HierarchyListener>( this); - /** The hierarchy bounds listeners. */ + /** + * The hierarchy bounds listeners. + */ private final AWTListenerList<HierarchyBoundsListener> hierarchyBoundsListeners = new AWTListenerList<HierarchyBoundsListener>( this); - /** The key listeners. */ - private final AWTListenerList<KeyListener> keyListeners = new AWTListenerList<KeyListener>( - this); + /** + * The key listeners. + */ + private final AWTListenerList<KeyListener> keyListeners = new AWTListenerList<KeyListener>(this); - /** The mouse listeners. */ + /** + * The mouse listeners. + */ private final AWTListenerList<MouseListener> mouseListeners = new AWTListenerList<MouseListener>( this); - /** The mouse motion listeners. */ + /** + * The mouse motion listeners. + */ private final AWTListenerList<MouseMotionListener> mouseMotionListeners = new AWTListenerList<MouseMotionListener>( this); - /** The mouse wheel listeners. */ + /** + * The mouse wheel listeners. + */ private final AWTListenerList<MouseWheelListener> mouseWheelListeners = new AWTListenerList<MouseWheelListener>( this); - /** The input method listeners. */ + /** + * The input method listeners. + */ private final AWTListenerList<InputMethodListener> inputMethodListeners = new AWTListenerList<InputMethodListener>( this); - /** The x. */ + /** + * The x. + */ int x; - /** The y. */ + /** + * The y. + */ int y; - /** The w. */ + /** + * The w. + */ int w; - /** The h. */ + /** + * The h. + */ int h; - /** The maximum size. */ + /** + * The maximum size. + */ private Dimension maximumSize; - /** The minimum size. */ + /** + * The minimum size. + */ private Dimension minimumSize; - /** The preferred size. */ + /** + * The preferred size. + */ private Dimension preferredSize; - /** The bounds mask param. */ + /** + * The bounds mask param. + */ private int boundsMaskParam; - /** The ignore repaint. */ + /** + * The ignore repaint. + */ private boolean ignoreRepaint; - /** The enabled. */ + /** + * The enabled. + */ private boolean enabled = true; - /** The input methods enabled. */ + /** + * The input methods enabled. + */ private boolean inputMethodsEnabled = true; - /** The dispatch to im. */ + /** + * The dispatch to im. + */ transient boolean dispatchToIM = true; - /** The focusable. */ + /** + * The focusable. + */ private boolean focusable = true; // By default, all Components return // true from isFocusable() method - /** The visible. */ + /** + * The visible. + */ boolean visible = true; - /** The called set focusable. */ + /** + * The called set focusable. + */ private boolean calledSetFocusable; - /** The overriden is focusable. */ + /** + * The overridden is focusable. + */ private boolean overridenIsFocusable = true; - /** The focus traversal keys enabled. */ + /** + * The focus traversal keys enabled. + */ private boolean focusTraversalKeysEnabled = true; - /** Possible keys are: FORWARD_TRAVERSAL_KEYS, BACKWARD_TRAVERSAL_KEYS, UP_CYCLE_TRAVERSAL_KEYS. */ + /** + * Possible keys are: FORWARD_TRAVERSAL_KEYS, BACKWARD_TRAVERSAL_KEYS, + * UP_CYCLE_TRAVERSAL_KEYS. + */ private final Map<Integer, Set<? extends AWTKeyStroke>> traversalKeys = new HashMap<Integer, Set<? extends AWTKeyStroke>>(); - /** The traversal i ds. */ + /** + * The traversal i ds. + */ int[] traversalIDs; - /** The locale. */ + /** + * The locale. + */ private Locale locale; - /** The orientation. */ + /** + * The orientation. + */ private ComponentOrientation orientation; - /** The property change support. */ + /** + * The property change support. + */ private PropertyChangeSupport propertyChangeSupport; - //???AWT: private ArrayList<PopupMenu> popups; + // ???AWT: private ArrayList<PopupMenu> popups; - /** The coalescer. */ + /** + * The coalescer. + */ private boolean coalescer; - /** The events table. */ + /** + * The events table. + */ private Hashtable<Integer, LinkedList<AWTEvent>> eventsTable; - /** Cashed reference used during EventQueue.postEvent() */ + /** + * Cashed reference used during EventQueue.postEvent() + */ private LinkedList<AWTEvent> eventsList; - /** The hierarchy changing counter. */ + /** + * The hierarchy changing counter. + */ private int hierarchyChangingCounter; - /** The was showing. */ + /** + * The was showing. + */ private boolean wasShowing; - /** The was displayable. */ + /** + * The was displayable. + */ private boolean wasDisplayable; - /** The cursor. */ + /** + * The cursor. + */ Cursor cursor; - //???AWT: DropTarget dropTarget; + // ???AWT: DropTarget dropTarget; - /** The mouse exited expected. */ + /** + * The mouse exited expected. + */ private boolean mouseExitedExpected; - /** The repaint region. */ + /** + * The repaint region. + */ transient MultiRectArea repaintRegion; - //???AWT: transient RedrawManager redrawManager; - /** The redraw manager. */ + // ???AWT: transient RedrawManager redrawManager; + /** + * The redraw manager. + */ transient Object redrawManager; - /** The valid. */ + /** + * The valid. + */ private boolean valid; - /** The updated images. */ + /** + * The updated images. + */ private HashMap<Image, ImageParameters> updatedImages; /** @@ -1244,7 +1085,9 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali private class ComponentLock { } - /** The component lock. */ + /** + * The component lock. + */ private final transient Object componentLock = new ComponentLock(); static { PrivilegedAction<String[]> action = new PrivilegedAction<String[]>() { @@ -1276,17 +1119,16 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali try { orientation = ComponentOrientation.UNKNOWN; redrawManager = null; - //???AWT + // ???AWT /* - traversalIDs = this instanceof Container ? KeyboardFocusManager.contTraversalIDs - : KeyboardFocusManager.compTraversalIDs; - for (int element : traversalIDs) { - traversalKeys.put(new Integer(element), null); - } - behaviour = createBehavior(); - */ + * traversalIDs = this instanceof Container ? + * KeyboardFocusManager.contTraversalIDs : + * KeyboardFocusManager.compTraversalIDs; for (int element : + * traversalIDs) { traversalKeys.put(new Integer(element), null); } + * behaviour = createBehavior(); + */ behaviour = null; - + deriveCoalescerFlag(); } finally { toolkit.unlockAWT(); @@ -1307,8 +1149,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali for (Class<?> c = thisClass; c != Component.class; c = c.getSuperclass()) { try { coalesceMethod = c.getDeclaredMethod("coalesceEvents", new Class[] { //$NON-NLS-1$ - Class.forName("java.awt.AWTEvent"), //$NON-NLS-1$ - Class.forName("java.awt.AWTEvent") }); //$NON-NLS-1$ + Class.forName("java.awt.AWTEvent"), //$NON-NLS-1$ + Class.forName("java.awt.AWTEvent")}); //$NON-NLS-1$ } catch (Exception e) { } if (coalesceMethod != null) { @@ -1332,7 +1174,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Sets the name of the Component. * - * @param name the new name of the Component. + * @param name + * the new name of the Component. */ public void setName(String name) { String oldName; @@ -1367,15 +1210,15 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Auto name. * - * @return the string + * @return the string. */ String autoName() { String name = getClass().getName(); if (name.indexOf("$") != -1) { //$NON-NLS-1$ return null; } - //???AWT - //int number = toolkit.autoNumber.nextComponent++; + // ???AWT + // int number = toolkit.autoNumber.nextComponent++; int number = 0; name = name.substring(name.lastIndexOf(".") + 1) + Integer.toString(number); //$NON-NLS-1$ return name; @@ -1390,10 +1233,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali public String toString() { /* * The format is based on 1.5 release behavior which can be revealed by - * the following code: - * - * Component c = new Component(){}; c.setVisible(false); - * System.out.println(c); + * the following code: Component c = new Component(){}; + * c.setVisible(false); System.out.println(c); */ toolkit.lockAWT(); try { @@ -1403,32 +1244,21 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } } - //???AWT + // ???AWT /* - public void add(PopupMenu popup) { - toolkit.lockAWT(); - try { - if (popup.getParent() == this) { - return; - } - if (popups == null) { - popups = new ArrayList<PopupMenu>(); - } - popup.setParent(this); - popups.add(popup); - } finally { - toolkit.unlockAWT(); - } - } - */ + * public void add(PopupMenu popup) { toolkit.lockAWT(); try { if + * (popup.getParent() == this) { return; } if (popups == null) { popups = + * new ArrayList<PopupMenu>(); } popup.setParent(this); popups.add(popup); } + * finally { toolkit.unlockAWT(); } } + */ /** * Returns true, if the component contains the specified Point. * - * @param p the Point. - * - * @return true, if the component contains the specified Point, - * false otherwise. + * @param p + * the Point. + * @return true, if the component contains the specified Point, false + * otherwise. */ public boolean contains(Point p) { toolkit.lockAWT(); @@ -1440,14 +1270,15 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Returns true, if the component contains the point with - * the specified coordinates. + * Returns true, if the component contains the point with the specified + * coordinates. * - * @param x the x coordinate. - * @param y the y coordinate. - * - * @return true, if the component contains the point with - * the specified coordinates, false otherwise. + * @param x + * the x coordinate. + * @param y + * the y coordinate. + * @return true, if the component contains the point with the specified + * coordinates, false otherwise. */ public boolean contains(int x, int y) { toolkit.lockAWT(); @@ -1462,7 +1293,6 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * Deprecated: replaced by replaced by getSize() method. * * @return the dimension. - * * @deprecated Replaced by getSize() method. */ @Deprecated @@ -1474,90 +1304,63 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali toolkit.unlockAWT(); } } - - //???AWT + + // ???AWT /* - public Container getParent() { - toolkit.lockAWT(); - try { - return parent; - } finally { - toolkit.unlockAWT(); - } - } - */ - + * public Container getParent() { toolkit.lockAWT(); try { return parent; } + * finally { toolkit.unlockAWT(); } } + */ + /** * List. * - * @param out the out - * @param indent the indent - * + * @param out + * the out. + * @param indent + * the indent * @return the nearest heavyweight ancestor in hierarchy or - * <code>null</code> if not found + * <code>null</code> if not found. */ - //???AWT + // ???AWT /* - Component getHWAncestor() { - return (parent != null ? parent.getHWSurface() : null); - } - */ - + * Component getHWAncestor() { return (parent != null ? + * parent.getHWSurface() : null); } + */ + /** * @return heavyweight component that is equal to or is a nearest * heavyweight container of the current component, or - * <code>null</code> if not found + * <code>null</code> if not found. */ - //???AWT + // ???AWT /* - Component getHWSurface() { - Component parent; - for (parent = this; (parent != null) && (parent.isLightweight()); parent = parent - .getParent()) { - ; - } - return parent; - } + * Component getHWSurface() { Component parent; for (parent = this; (parent + * != null) && (parent.isLightweight()); parent = parent .getParent()) { ; } + * return parent; } Window getWindowAncestor() { Component par; for (par = + * this; par != null && !(par instanceof Window); par = par.getParent()) { ; + * } return (Window) par; } + */ - Window getWindowAncestor() { - Component par; - for (par = this; par != null && !(par instanceof Window); par = par.getParent()) { - ; - } - return (Window) par; - } - */ - - /** To be called by container */ - //???AWT + /** + * To be called by container + */ + // ???AWT /* - void setParent(Container parent) { - this.parent = parent; - setRedrawManager(); - } - - void setRedrawManager() { - redrawManager = getRedrawManager(); - } - - public void remove(MenuComponent menu) { - toolkit.lockAWT(); - try { - if (menu.getParent() == this) { - menu.setParent(null); - popups.remove(menu); - } - } finally { - toolkit.unlockAWT(); - } - } - */ + * void setParent(Container parent) { this.parent = parent; + * setRedrawManager(); } void setRedrawManager() { redrawManager = + * getRedrawManager(); } public void remove(MenuComponent menu) { + * toolkit.lockAWT(); try { if (menu.getParent() == this) { + * menu.setParent(null); popups.remove(menu); } } finally { + * toolkit.unlockAWT(); } } + */ /** - * Prints a list of this component with the specified number of - * leading whitespace characters to the specified PrintStream. + * Prints a list of this component with the specified number of leading + * whitespace characters to the specified PrintStream. * - * @param out the output PrintStream object. - * @param indent how many leading whitespace characters to prepend + * @param out + * the output PrintStream object. + * @param indent + * how many leading whitespace characters to prepend. */ public void list(PrintStream out, int indent) { toolkit.lockAWT(); @@ -1571,7 +1374,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Prints a list of this component to the specified PrintWriter. * - * @param out the output PrintWriter object. + * @param out + * the output PrintWriter object. */ public void list(PrintWriter out) { toolkit.lockAWT(); @@ -1583,11 +1387,13 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Prints a list of this component with the specified number of - * leading whitespace characters to the specified PrintWriter. + * Prints a list of this component with the specified number of leading + * whitespace characters to the specified PrintWriter. * - * @param out the output PrintWriter object. - * @param indent how many leading whitespace characters to prepend + * @param out + * the output PrintWriter object. + * @param indent + * how many leading whitespace characters to prepend. */ public void list(PrintWriter out, int indent) { toolkit.lockAWT(); @@ -1599,13 +1405,12 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Gets a string composed of the desired number of - * whitespace characters. - * - * @param indent the length of the String to return + * Gets a string composed of the desired number of whitespace characters. * - * @return the string composed of the desired number of - * whitespace characters + * @param indent + * the length of the String to return. + * @return the string composed of the desired number of whitespace + * characters. */ String getIndentStr(int indent) { char[] ind = new char[indent]; @@ -1616,9 +1421,10 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Prints a list of this component to the specified PrintStream + * Prints a list of this component to the specified PrintStream. * - * @param out the output PrintStream object. + * @param out + * the output PrintStream object. */ public void list(PrintStream out) { toolkit.lockAWT(); @@ -1631,8 +1437,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Prints a list of this component to the standard system - * output stream. + * Prints a list of this component to the standard system output stream. */ public void list() { toolkit.lockAWT(); @@ -1644,9 +1449,10 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Prints this component. + * Prints this component. * - * @param g the Graphics to be used for painting. + * @param g + * the Graphics to be used for painting. */ public void print(Graphics g) { toolkit.lockAWT(); @@ -1660,7 +1466,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Prints the component and all of its subcomponents. * - * @param g the Graphics to be used for painting. + * @param g + * the Graphics to be used for painting. */ public void printAll(Graphics g) { toolkit.lockAWT(); @@ -1672,11 +1479,12 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Sets the size of the Component specified by width and height - * parameters. + * Sets the size of the Component specified by width and height parameters. * - * @param width the width of the Component. - * @param height the height of the Component. + * @param width + * the width of the Component. + * @param height + * the height of the Component. */ public void setSize(int width, int height) { toolkit.lockAWT(); @@ -1690,7 +1498,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Sets the size of the Component specified by Dimension object. * - * @param d the new size of the Component. + * @param d + * the new size of the Component. */ public void setSize(Dimension d) { toolkit.lockAWT(); @@ -1704,9 +1513,10 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Deprecated: replaced by setSize(int, int) method. * - * @param width the width. - * @param height the height. - * + * @param width + * the width. + * @param height + * the height. * @deprecated Replaced by setSize(int, int) method. */ @Deprecated @@ -1723,8 +1533,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Deprecated: replaced by setSize(int, int) method. * - * @param size the size. - * + * @param size + * the size. * @deprecated Replaced by setSize(int, int) method. */ @Deprecated @@ -1740,8 +1550,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks whether or not this component is completely opaque. * - * @return true, if this component is completely opaque, - * false by default. + * @return true, if this component is completely opaque, false by default. */ public boolean isOpaque() { toolkit.lockAWT(); @@ -1765,7 +1574,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } finally { toolkit.unlockAWT(); } - //???AWT: fireAccessibleStateChange(AccessibleState.ENABLED, false); + // ???AWT: fireAccessibleStateChange(AccessibleState.ENABLED, false); } /** @@ -1781,15 +1590,15 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } finally { toolkit.unlockAWT(); } - //???AWT: fireAccessibleStateChange(AccessibleState.ENABLED, true); + // ???AWT: fireAccessibleStateChange(AccessibleState.ENABLED, true); } /** * Enables or disable this component. * - * @param b the boolean parameter. - * - * @deprecated Replaced by setEnabled(boolean) method. + * @param b + * the boolean parameter. + * @deprecated Replaced by setEnabled(boolean) method. */ @Deprecated public void enable(boolean b) { @@ -1809,9 +1618,9 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * Stores the location of this component to the specified Point object; * returns the point of the component's top-left corner. * - * @param rv the Point object where the component's top-left corner - * position will be stored. - * + * @param rv + * the Point object where the component's top-left corner + * position will be stored. * @return the Point which specifies the component's top-left corner. */ public Point getLocation(Point rv) { @@ -1828,8 +1637,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Gets the location of this component on the form; - * returns the point of the component's top-left corner. + * Gets the location of this component on the form; returns the point of the + * component's top-left corner. * * @return the Point which specifies the component's top-left corner. */ @@ -1857,12 +1666,11 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Stores the size of this Component to the specified Dimension - * object. - * - * @param rv the Dimension object where the size of the Component - * will be stored. + * Stores the size of this Component to the specified Dimension object. * + * @param rv + * the Dimension object where the size of the Component will be + * stored. * @return the Dimension of this Component. */ public Dimension getSize(Dimension rv) { @@ -1879,9 +1687,9 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Checks whether or not this Component is valid. A component is valid - * if it is correctly sized and positioned within its parent container - * and all its children are also valid. + * Checks whether or not this Component is valid. A component is valid if it + * is correctly sized and positioned within its parent container and all its + * children are also valid. * * @return true, if the Component is valid, false otherwise. */ @@ -1898,7 +1706,6 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * Deprecated: replaced by getComponentAt(int, int) method. * * @return the Point. - * * @deprecated Replaced by getComponentAt(int, int) method. */ @Deprecated @@ -1912,7 +1719,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Connects this Component to a native screen resource and makes it + * Connects this Component to a native screen resource and makes it * displayable. This method not be called directly by user applications. */ public void addNotify() { @@ -1920,11 +1727,11 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali try { prepare4HierarchyChange(); behaviour.addNotify(); - //???AWT -// finishHierarchyChange(this, parent, 0); -// if (dropTarget != null) { -// dropTarget.addNotify(peer); -// } + // ???AWT + // finishHierarchyChange(this, parent, 0); + // if (dropTarget != null) { + // dropTarget.addNotify(peer); + // } } finally { toolkit.unlockAWT(); } @@ -1933,45 +1740,32 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Map to display. * - * @param b the b + * @param b + * the b. */ void mapToDisplay(boolean b) { - //???AWT + // ???AWT /* - if (b && !isDisplayable()) { - if ((this instanceof Window) || ((parent != null) && parent.isDisplayable())) { - addNotify(); - } - } else if (!b && isDisplayable()) { - removeNotify(); - } - */ + * if (b && !isDisplayable()) { if ((this instanceof Window) || ((parent + * != null) && parent.isDisplayable())) { addNotify(); } } else if (!b + * && isDisplayable()) { removeNotify(); } + */ } /** * Gets the toolkit. * - * @return accessible context specific for particular component + * @return accessible context specific for particular component. */ - //???AWT + // ???AWT /* - AccessibleContext createAccessibleContext() { - return null; - } + * AccessibleContext createAccessibleContext() { return null; } public + * AccessibleContext getAccessibleContext() { toolkit.lockAWT(); try { if + * (accessibleContext == null) { accessibleContext = + * createAccessibleContext(); } return accessibleContext; } finally { + * toolkit.unlockAWT(); } } + */ - public AccessibleContext getAccessibleContext() { - toolkit.lockAWT(); - try { - if (accessibleContext == null) { - accessibleContext = createAccessibleContext(); - } - return accessibleContext; - } finally { - toolkit.unlockAWT(); - } - } - */ - /** * Gets Toolkit for the current Component. * @@ -1982,8 +1776,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Gets this component's locking object for AWT component tree - * and layout operations. + * Gets this component's locking object for AWT component tree and layout + * operations. * * @return the tree locking object. */ @@ -1992,12 +1786,14 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * @param evt the Event. - * @param what the event's key. + * Handles the event. Use ActionListener instead of this. * + * @param evt + * the Event. + * @param what + * the event's key. * @return true, if successful. - * - * @deprecated Use ActionListener class for registering event listener. + * @deprecated Use ActionListener class for registering event listener. */ @Deprecated public boolean action(Event evt, Object what) { @@ -2006,11 +1802,10 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali return false; } - /** * Gets the property change support. * - * @return the property change support + * @return the property change support. */ private PropertyChangeSupport getPropertyChangeSupport() { synchronized (componentLock) { @@ -2020,36 +1815,29 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali return propertyChangeSupport; } } - - //???AWT - /* - public void addPropertyChangeListener(PropertyChangeListener listener) { - getPropertyChangeSupport().addPropertyChangeListener(listener); - } - public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { - getPropertyChangeSupport().addPropertyChangeListener(propertyName, listener); - } - - public void applyComponentOrientation(ComponentOrientation orientation) { - toolkit.lockAWT(); - try { - setComponentOrientation(orientation); - } finally { - toolkit.unlockAWT(); - } - } - */ + // ???AWT + /* + * public void addPropertyChangeListener(PropertyChangeListener listener) { + * getPropertyChangeSupport().addPropertyChangeListener(listener); } public + * void addPropertyChangeListener(String propertyName, + * PropertyChangeListener listener) { + * getPropertyChangeSupport().addPropertyChangeListener(propertyName, + * listener); } public void applyComponentOrientation(ComponentOrientation + * orientation) { toolkit.lockAWT(); try { + * setComponentOrientation(orientation); } finally { toolkit.unlockAWT(); } + * } + */ /** - * Returns true if the set of focus traversal keys for the given focus - * traversal operation has been explicitly defined for this Component. + * Returns true if the set of focus traversal keys for the given focus + * traversal operation has been explicitly defined for this Component. * - * @param id the ID of traversal key. - * - * @return true, if the set of focus traversal keys for the given focus - * traversal operation has been explicitly defined for this Component, - * false otherwise. + * @param id + * the ID of traversal key. + * @return true, if the set of focus traversal keys for the given focus. + * traversal operation has been explicitly defined for this + * Component, false otherwise. */ public boolean areFocusTraversalKeysSet(int id) { toolkit.lockAWT(); @@ -2069,7 +1857,6 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * Gets the bounds of the Component. * * @return the rectangle bounds of the Component. - * * @deprecated Use getBounds() methood. */ @Deprecated @@ -2083,16 +1870,20 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Returns the construction status of a specified image - * with the specified width and height that is being created. - * - * - * @param image the image to be checked. - * @param width the width of scaled image which status is being checked, or -1. - * @param height the height of scaled image which status is being checked, or -1. - * @param observer the ImageObserver object to be notified while - * the image is being prepared. + * Returns the construction status of a specified image with the specified + * width and height that is being created. * + * @param image + * the image to be checked. + * @param width + * the width of scaled image which status is being checked, or + * -1. + * @param height + * the height of scaled image which status is being checked, or + * -1. + * @param observer + * the ImageObserver object to be notified while the image is + * being prepared. * @return the ImageObserver flags of the current state of the image data. */ public int checkImage(Image image, int width, int height, ImageObserver observer) { @@ -2105,13 +1896,14 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Returns the construction status of a specified image that is being created. - * - * - * @param image the image to be checked. - * @param observer the ImageObserver object to be notified while - * the image is being prepared. + * Returns the construction status of a specified image that is being + * created. * + * @param image + * the image to be checked. + * @param observer + * the ImageObserver object to be notified while the image is + * being prepared. * @return the ImageObserver flags of the current state of the image data. */ public int checkImage(Image image, ImageObserver observer) { @@ -2126,10 +1918,11 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Coalesces the existed event with new event. * - * @param existingEvent the existing event in the EventQueue. - * @param newEvent the new event to be posted to the EventQueue. - * - * @return the coalesced AWTEvent, or null if there is no coalescing done. + * @param existingEvent + * the existing event in the EventQueue. + * @param newEvent + * the new event to be posted to the EventQueue. + * @return the coalesced AWTEvent, or null if there is no coalescing done. */ protected AWTEvent coalesceEvents(AWTEvent existingEvent, AWTEvent newEvent) { toolkit.lockAWT(); @@ -2147,7 +1940,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks if this Component is a coalescer. * - * @return true, if is coalescer + * @return true, if is coalescer. */ boolean isCoalescer() { return coalescer; @@ -2156,9 +1949,9 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Gets the relative event. * - * @param id the id - * - * @return the relative event + * @param id + * the id. + * @return the relative event. */ AWTEvent getRelativeEvent(int id) { Integer idWrapper = new Integer(id); @@ -2177,7 +1970,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Adds the new event. * - * @param event the event + * @param event + * the event. */ void addNewEvent(AWTEvent event) { eventsList.addLast(event); @@ -2193,7 +1987,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Removes the next event. * - * @param id the id + * @param id + * the id. */ void removeNextEvent(int id) { eventsTable.get(new Integer(id)).removeFirst(); @@ -2202,8 +1997,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Creates the image with the specified ImageProducer. * - * @param producer the ImageProducer to be used for image creation. - * + * @param producer + * the ImageProducer to be used for image creation. * @return the image with the specified ImageProducer. */ public Image createImage(ImageProducer producer) { @@ -2218,11 +2013,13 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Creates an off-screen drawable image to be used for double buffering. * - * @param width the width of the image. - * @param height the height of the image. - * - * @return the off-screen drawable image or null if the component is not - * displayable or GraphicsEnvironment.isHeadless() method returns true. + * @param width + * the width of the image. + * @param height + * the height of the image. + * @return the off-screen drawable image or null if the component is not + * displayable or GraphicsEnvironment.isHeadless() method returns + * true. */ public Image createImage(int width, int height) { toolkit.lockAWT(); @@ -2245,17 +2042,19 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Creates an off-screen drawable image with the specified width, - * height and ImageCapabilities. + * Creates an off-screen drawable image with the specified width, height and + * ImageCapabilities. * - * @param width the width - * @param height the height - * @param caps the ImageCapabilities. - * - * @return the volatile image - * - * @throws AWTException if an image with the specified capabilities - * cannot be created. + * @param width + * the width. + * @param height + * the height. + * @param caps + * the ImageCapabilities. + * @return the volatile image. + * @throws AWTException + * if an image with the specified capabilities cannot be + * created. */ public VolatileImage createVolatileImage(int width, int height, ImageCapabilities caps) throws AWTException { @@ -2277,16 +2076,17 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Creates a volatile off-screen drawable image which is used - * for double buffering. - * - * @param width the width of image. - * @param height the height of image. + * Creates a volatile off-screen drawable image which is used for double + * buffering. * - * @return the volatile image a volatile off-screen drawable image - * which is used for double buffering or null if the component - * is not displayable, or GraphicsEnvironment.isHeadless() method - * returns true. + * @param width + * the width of image. + * @param height + * the height of image. + * @return the volatile image a volatile off-screen drawable image which is + * used for double buffering or null if the component is not + * displayable, or GraphicsEnvironment.isHeadless() method returns + * true. */ public VolatileImage createVolatileImage(int width, int height) { toolkit.lockAWT(); @@ -2311,9 +2111,12 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * with the component's background color to prepare it for double-buffered * painting. * - * @param image the image - * @param width the width - * @param height the height + * @param image + * the image. + * @param width + * the width. + * @param height + * the height. */ private void fillImageBackground(Image image, int width, int height) { Graphics gr = image.getGraphics(); @@ -2325,8 +2128,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Delivers event. * - * @param evt the event. - * + * @param evt + * the event. * @deprecated Replaced by dispatchEvent(AWTEvent e) method. */ @Deprecated @@ -2335,7 +2138,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Prompts the layout manager to lay out this component. + * Prompts the layout manager to lay out this component. */ public void doLayout() { toolkit.lockAWT(); @@ -2350,9 +2153,12 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Fire property change impl. * - * @param propertyName the property name - * @param oldValue the old value - * @param newValue the new value + * @param propertyName + * the property name. + * @param oldValue + * the old value. + * @param newValue + * the new value. */ private void firePropertyChangeImpl(String propertyName, Object oldValue, Object newValue) { PropertyChangeSupport pcs; @@ -2368,32 +2174,40 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Reports a bound property changes for int properties. * - * @param propertyName the property name. - * @param oldValue the old property's value. - * @param newValue the new property's value. + * @param propertyName + * the property name. + * @param oldValue + * the old property's value. + * @param newValue + * the new property's value. */ protected void firePropertyChange(String propertyName, int oldValue, int newValue) { firePropertyChangeImpl(propertyName, new Integer(oldValue), new Integer(newValue)); } /** - * Report a bound property change for a boolean-valued property. - * - * @param propertyName the property name. - * @param oldValue the property's old value. - * @param newValue the property's new value. + * Report a bound property change for a boolean-valued property. + * + * @param propertyName + * the property name. + * @param oldValue + * the property's old value. + * @param newValue + * the property's new value. */ protected void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) { - firePropertyChangeImpl(propertyName, Boolean.valueOf(oldValue), Boolean - .valueOf(newValue)); + firePropertyChangeImpl(propertyName, Boolean.valueOf(oldValue), Boolean.valueOf(newValue)); } /** - * Reports a bound property change for an Object-valued property. + * Reports a bound property change for an Object-valued property. * - * @param propertyName the property name. - * @param oldValue the property's old value - * @param newValue the property's new value + * @param propertyName + * the property name. + * @param oldValue + * the property's old value. + * @param newValue + * the property's new value. */ protected void firePropertyChange(final String propertyName, final Object oldValue, final Object newValue) { @@ -2401,75 +2215,93 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Report a bound property change for a byte-valued property. + * Report a bound property change for a byte-valued property. * - * @param propertyName the property name. - * @param oldValue the property's old value. - * @param newValue the property's new value. + * @param propertyName + * the property name. + * @param oldValue + * the property's old value. + * @param newValue + * the property's new value. */ public void firePropertyChange(String propertyName, byte oldValue, byte newValue) { firePropertyChangeImpl(propertyName, new Byte(oldValue), new Byte(newValue)); } /** - * Report a bound property change for a char-valued property. + * Report a bound property change for a char-valued property. * - * @param propertyName the property name. - * @param oldValue the old property's value. - * @param newValue the new property's value. + * @param propertyName + * the property name. + * @param oldValue + * the old property's value. + * @param newValue + * the new property's value. */ public void firePropertyChange(String propertyName, char oldValue, char newValue) { firePropertyChangeImpl(propertyName, new Character(oldValue), new Character(newValue)); } /** - * Report a bound property change for a short-valued property. + * Report a bound property change for a short-valued property. * - * @param propertyName the property name. - * @param oldValue the old property's value. - * @param newValue the new property's value. + * @param propertyName + * the property name. + * @param oldValue + * the old property's value. + * @param newValue + * the new property's value. */ public void firePropertyChange(String propertyName, short oldValue, short newValue) { firePropertyChangeImpl(propertyName, new Short(oldValue), new Short(newValue)); } /** - * Report a bound property change for a long-valued property. + * Report a bound property change for a long-valued property. * - * @param propertyName the property name. - * @param oldValue the old property's value. - * @param newValue the new property's value. + * @param propertyName + * the property name. + * @param oldValue + * the old property's value. + * @param newValue + * the new property's value. */ public void firePropertyChange(String propertyName, long oldValue, long newValue) { firePropertyChangeImpl(propertyName, new Long(oldValue), new Long(newValue)); } /** - * Report a bound property change for a float-valued property. + * Report a bound property change for a float-valued property. * - * @param propertyName the property name. - * @param oldValue the old property's value. - * @param newValue the new property's value. + * @param propertyName + * the property name. + * @param oldValue + * the old property's value. + * @param newValue + * the new property's value. */ public void firePropertyChange(String propertyName, float oldValue, float newValue) { firePropertyChangeImpl(propertyName, new Float(oldValue), new Float(newValue)); } /** - * Report a bound property change for a double-valued property. + * Report a bound property change for a double-valued property. * - * @param propertyName the property name. - * @param oldValue the old property's value. - * @param newValue the new property's value. + * @param propertyName + * the property name. + * @param oldValue + * the old property's value. + * @param newValue + * the new property's value. */ public void firePropertyChange(String propertyName, double oldValue, double newValue) { firePropertyChangeImpl(propertyName, new Double(oldValue), new Double(newValue)); } /** - * Gets the alignment along the x axis. + * Gets the alignment along the x axis. * - * @return the alignment along the x axis. + * @return the alignment along the x axis. */ public float getAlignmentX() { toolkit.lockAWT(); @@ -2481,7 +2313,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Gets the alignment along the y axis. + * Gets the alignment along the y axis. * * @return the alignment along y axis. */ @@ -2502,12 +2334,11 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali public Color getBackground() { toolkit.lockAWT(); try { - //???AWT + // ???AWT /* - if ((backColor == null) && (parent != null)) { - return parent.getBackground(); - } - */ + * if ((backColor == null) && (parent != null)) { return + * parent.getBackground(); } + */ return backColor; } finally { toolkit.unlockAWT(); @@ -2529,11 +2360,12 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Writes the data of the bounding rectangle to the specified - * Rectangle object. - * - * @param rv the Rectangle object where the bounding rectangle's data is stored. + * Writes the data of the bounding rectangle to the specified Rectangle + * object. * + * @param rv + * the Rectangle object where the bounding rectangle's data is + * stored. * @return the bounding rectangle. */ public Rectangle getBounds(Rectangle rv) { @@ -2566,8 +2398,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Gets the Component which contains the specified Point. * - * @param p the Point. - * + * @param p + * the Point. * @return the Component which contains the specified Point. */ public Component getComponentAt(Point p) { @@ -2580,14 +2412,15 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Gets the Component which contains the point with the - * specified coordinates. - * - * @param x the x coordinate of the point. - * @param y the y coordinate of the point. + * Gets the Component which contains the point with the specified + * coordinates. * - * @return the Component which contains the point with the - * specified coordinates. + * @param x + * the x coordinate of the point. + * @param y + * the y coordinate of the point. + * @return the Component which contains the point with the specified + * coordinates. */ public Component getComponentAt(int x, int y) { toolkit.lockAWT(); @@ -2622,11 +2455,10 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali try { if (cursor != null) { return cursor; - //???AWT - /* - } else if (parent != null) { - return parent.getCursor(); - */ + // ???AWT + /* + * } else if (parent != null) { return parent.getCursor(); + */ } return Cursor.getDefaultCursor(); } finally { @@ -2634,57 +2466,29 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } } - //???AWT + // ???AWT /* - public DropTarget getDropTarget() { - toolkit.lockAWT(); - try { - return dropTarget; - } finally { - toolkit.unlockAWT(); - } - } - - public Container getFocusCycleRootAncestor() { - toolkit.lockAWT(); - try { - for (Container c = parent; c != null; c = c.getParent()) { - if (c.isFocusCycleRoot()) { - return c; - } - } - return null; - } finally { - toolkit.unlockAWT(); - } - } - - @SuppressWarnings("unchecked") - public Set<AWTKeyStroke> getFocusTraversalKeys(int id) { - toolkit.lockAWT(); - try { - Integer kId = new Integer(id); - KeyboardFocusManager.checkTraversalKeysID(traversalKeys, kId); - Set<? extends AWTKeyStroke> keys = traversalKeys.get(kId); - if (keys == null && parent != null) { - keys = parent.getFocusTraversalKeys(id); - } - if (keys == null) { - keys = KeyboardFocusManager.getCurrentKeyboardFocusManager() - .getDefaultFocusTraversalKeys(id); - } - return (Set<AWTKeyStroke>) keys; - } finally { - toolkit.unlockAWT(); - } - } - */ - + * public DropTarget getDropTarget() { toolkit.lockAWT(); try { return + * dropTarget; } finally { toolkit.unlockAWT(); } } public Container + * getFocusCycleRootAncestor() { toolkit.lockAWT(); try { for (Container c = + * parent; c != null; c = c.getParent()) { if (c.isFocusCycleRoot()) { + * return c; } } return null; } finally { toolkit.unlockAWT(); } } + * @SuppressWarnings("unchecked") public Set<AWTKeyStroke> + * getFocusTraversalKeys(int id) { toolkit.lockAWT(); try { Integer kId = + * new Integer(id); KeyboardFocusManager.checkTraversalKeysID(traversalKeys, + * kId); Set<? extends AWTKeyStroke> keys = traversalKeys.get(kId); if (keys + * == null && parent != null) { keys = parent.getFocusTraversalKeys(id); } + * if (keys == null) { keys = + * KeyboardFocusManager.getCurrentKeyboardFocusManager() + * .getDefaultFocusTraversalKeys(id); } return (Set<AWTKeyStroke>) keys; } + * finally { toolkit.unlockAWT(); } } + */ + /** * Checks if the the focus traversal keys are enabled for this component. * - * @return true, if the the focus traversal keys are enabled for - * this component, false otherwise. + * @return true, if the the focus traversal keys are enabled for this + * component, false otherwise. */ public boolean getFocusTraversalKeysEnabled() { toolkit.lockAWT(); @@ -2698,8 +2502,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Gets the font metrics of the specified Font. * - * @param f the Font. - * + * @param f + * the Font. * @return the FontMetrics of the specified Font. */ @SuppressWarnings("deprecation") @@ -2715,12 +2519,11 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali public Color getForeground() { toolkit.lockAWT(); try { - //???AWT + // ???AWT /* - if (foreColor == null && parent != null) { - return parent.getForeground(); - } - */ + * if (foreColor == null && parent != null) { return + * parent.getForeground(); } + */ return foreColor; } finally { toolkit.unlockAWT(); @@ -2728,11 +2531,11 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Gets the Graphics of the Component or null if this Component - * is not displayable. + * Gets the Graphics of the Component or null if this Component is not + * displayable. * - * @return the Graphics of the Component or null if this Component - * is not displayable. + * @return the Graphics of the Component or null if this Component is not + * displayable. */ public Graphics getGraphics() { toolkit.lockAWT(); @@ -2749,26 +2552,18 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } } - /** * Gets the GraphicsConfiguration associated with this Component. * * @return the GraphicsConfiguration associated with this Component. */ public GraphicsConfiguration getGraphicsConfiguration() { - //???AWT + // ???AWT /* - toolkit.lockAWT(); - try { - Window win = getWindowAncestor(); - if (win == null) { - return null; - } - return win.getGraphicsConfiguration(); - } finally { - toolkit.unlockAWT(); - } - */ + * toolkit.lockAWT(); try { Window win = getWindowAncestor(); if (win == + * null) { return null; } return win.getGraphicsConfiguration(); } + * finally { toolkit.unlockAWT(); } + */ return null; } @@ -2787,11 +2582,11 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Returns true if paint messages received from the operating system - * should be ignored. + * Returns true if paint messages received from the operating system should + * be ignored. * - * @return true if paint messages received from the operating system - * should be ignored, false otherwise. + * @return true if paint messages received from the operating system should + * be ignored, false otherwise. */ public boolean getIgnoreRepaint() { toolkit.lockAWT(); @@ -2803,23 +2598,20 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Gets the input context of this component for handling - * the communication with input methods when text is entered - * in this component. + * Gets the input context of this component for handling the communication + * with input methods when text is entered in this component. * - * @return the InputContext used by this Component or - * null if no context is specifined. + * @return the InputContext used by this Component or null if no context is + * specifined. */ public InputContext getInputContext() { toolkit.lockAWT(); try { - //???AWT + // ???AWT /* - Container parent = getParent(); - if (parent != null) { - return parent.getInputContext(); - } - */ + * Container parent = getParent(); if (parent != null) { return + * parent.getInputContext(); } + */ return null; } finally { toolkit.unlockAWT(); @@ -2827,11 +2619,11 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Gets the input method request handler which supports requests - * from input methods for this component, or null for default. + * Gets the input method request handler which supports requests from input + * methods for this component, or null for default. * - * @return the input method request handler which supports requests - * from input methods for this component, or null for default. + * @return the input method request handler which supports requests from + * input methods for this component, or null for default. */ public InputMethodRequests getInputMethodRequests() { return null; @@ -2845,19 +2637,14 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali public Locale getLocale() { toolkit.lockAWT(); try { - //???AWT + // ???AWT /* - if (locale == null) { - if (parent == null) { - if (this instanceof Window) { - return Locale.getDefault(); - } - // awt.150=no parent - throw new IllegalComponentStateException(Messages.getString("awt.150")); //$NON-NLS-1$ - } - return getParent().getLocale(); - } - */ + * if (locale == null) { if (parent == null) { if (this instanceof + * Window) { return Locale.getDefault(); } // awt.150=no parent + * throw new + * IllegalComponentStateException(Messages.getString("awt.150")); + * //$NON-NLS-1$ } return getParent().getLocale(); } + */ return locale; } finally { toolkit.unlockAWT(); @@ -2865,35 +2652,30 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Gets the location of this component in the form of a point - * specifying the component's top-left corner in the - * screen's coordinate space. + * Gets the location of this component in the form of a point specifying the + * component's top-left corner in the screen's coordinate space. * - * @return the Point giving the component's location in the - * screen's coordinate space. - * - * @throws IllegalComponentStateException if the component is - * not shown on the screen. + * @return the Point giving the component's location in the screen's + * coordinate space. + * @throws IllegalComponentStateException + * if the component is not shown on the screen. */ public Point getLocationOnScreen() throws IllegalComponentStateException { toolkit.lockAWT(); try { Point p = new Point(); if (isShowing()) { - //???AWT + // ???AWT /* - Component comp; - for (comp = this; comp != null && !(comp instanceof Window); comp = comp - .getParent()) { - p.translate(comp.getX(), comp.getY()); - } - if (comp instanceof Window) { - p.translate(comp.getX(), comp.getY()); - } - */ + * Component comp; for (comp = this; comp != null && !(comp + * instanceof Window); comp = comp .getParent()) { + * p.translate(comp.getX(), comp.getY()); } if (comp instanceof + * Window) { p.translate(comp.getX(), comp.getY()); } + */ return p; } - // awt.151=component must be showing on the screen to determine its location + // awt.151=component must be showing on the screen to determine its + // location throw new IllegalComponentStateException(Messages.getString("awt.151")); //$NON-NLS-1$ } finally { toolkit.unlockAWT(); @@ -2901,11 +2683,10 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Gets the peer. This method should not be called directly by - * user applications. + * Gets the peer. This method should not be called directly by user + * applications. * * @return the ComponentPeer. - * * @deprecated Replaced by isDisplayable(). */ @Deprecated @@ -2922,24 +2703,24 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Gets an array of the property change listeners registered to - * this Component. + * Gets an array of the property change listeners registered to this + * Component. * - * @return an array of the PropertyChangeListeners registered to - * this Component. + * @return an array of the PropertyChangeListeners registered to this + * Component. */ public PropertyChangeListener[] getPropertyChangeListeners() { return getPropertyChangeSupport().getPropertyChangeListeners(); } /** - * Gets an array of PropertyChangeListener objects registered - * to this Component for the specified property. - * - * @param propertyName the property name. + * Gets an array of PropertyChangeListener objects registered to this + * Component for the specified property. * - * @return an array of PropertyChangeListener objects registered - * to this Component for the specified property. + * @param propertyName + * the property name. + * @return an array of PropertyChangeListener objects registered to this + * Component for the specified property. */ public PropertyChangeListener[] getPropertyChangeListeners(String propertyName) { return getPropertyChangeSupport().getPropertyChangeListeners(propertyName); @@ -2990,11 +2771,11 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Got the focus. * - * @param evt the Event. - * @param what the Object. - * + * @param evt + * the Event. + * @param what + * the Object. * @return true, if successful. - * * @deprecated Replaced by processFocusEvent(FocusEvent) method. */ @Deprecated @@ -3007,10 +2788,9 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Handles event. * - * @param evt the Event. - * + * @param evt + * the Event. * @return true, if successful. - * * @deprecated Replaced by processEvent(AWTEvent) method. */ @Deprecated @@ -3052,7 +2832,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali public boolean hasFocus() { toolkit.lockAWT(); try { - //???AWT: return isFocusOwner(); + // ???AWT: return isFocusOwner(); return false; } finally { toolkit.unlockAWT(); @@ -3076,24 +2856,24 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali moveFocusOnHide(); behaviour.setVisible(false); postEvent(new ComponentEvent(this, ComponentEvent.COMPONENT_HIDDEN)); - //???AWT: finishHierarchyChange(this, parent, 0); + // ???AWT: finishHierarchyChange(this, parent, 0); notifyInputMethod(null); - //???AWT: invalidateRealParent(); + // ???AWT: invalidateRealParent(); } finally { toolkit.unlockAWT(); } } /** - * Checks whether or not the point with the specified coordinates - * belongs to the Commponent. - * - * @param x the x coordinate of the Point. - * @param y the y coordinate of the Point. - * - * @return true, if the point with the specified coordinates - * belongs to the Commponent, false otherwise. + * Checks whether or not the point with the specified coordinates belongs to + * the Commponent. * + * @param x + * the x coordinate of the Point. + * @param y + * the y coordinate of the Point. + * @return true, if the point with the specified coordinates belongs to the + * Commponent, false otherwise. * @deprecated Replaced by contains(int, int) method. */ @Deprecated @@ -3107,15 +2887,15 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Invalidates the component, this component and all parents - * above it are marked as needing to be laid out. + * Invalidates the component, this component and all parents above it are + * marked as needing to be laid out. */ public void invalidate() { toolkit.lockAWT(); try { valid = false; resetDefaultSize(); - //???AWT: invalidateRealParent(); + // ???AWT: invalidateRealParent(); } finally { toolkit.unlockAWT(); } @@ -3124,8 +2904,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks whether or not the background color is set to this Component. * - * @return true, if the background color is set to this Component, - * false otherwise. + * @return true, if the background color is set to this Component, false + * otherwise. */ public boolean isBackgroundSet() { toolkit.lockAWT(); @@ -3139,8 +2919,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks whether or not a cursor is set for the Component. * - * @return true, if a cursor is set for the Component, - * false otherwise. + * @return true, if a cursor is set for the Component, false otherwise. */ public boolean isCursorSet() { toolkit.lockAWT(); @@ -3166,11 +2945,11 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Checks whether or not this component is painted to an buffer - * which is copied to the screen later. + * Checks whether or not this component is painted to an buffer which is + * copied to the screen later. * - * @return true, if this component is painted to an buffer - * which is copied to the screen later, false otherwise. + * @return true, if this component is painted to an buffer which is copied + * to the screen later, false otherwise. */ public boolean isDoubleBuffered() { toolkit.lockAWT(); @@ -3200,7 +2979,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * "Recursive" isEnabled(). * * @return true if not only component itself is enabled but its heavyweight - * parent is also "indirectly" enabled + * parent is also "indirectly" enabled. */ boolean isIndirectlyEnabled() { Component comp = this; @@ -3208,7 +2987,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali if (!comp.isLightweight() && !comp.isEnabled()) { return false; } - //???AWT: comp = comp.getRealParent(); + // ???AWT: comp = comp.getRealParent(); } return true; } @@ -3216,7 +2995,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks if the component is key enabled. * - * @return true, if the component is enabled and indirectly enabled + * @return true, if the component is enabled and indirectly enabled. */ boolean isKeyEnabled() { if (!isEnabled()) { @@ -3229,39 +3008,24 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * Gets only parent of a child component, but not owner of a window. * * @return parent of child component, null if component is a top-level - * (Window instance) + * (Window instance). */ - //???AWT + // ???AWT /* - Container getRealParent() { - return (!(this instanceof Window) ? getParent() : null); - } - - public boolean isFocusCycleRoot(Container container) { - toolkit.lockAWT(); - try { - return getFocusCycleRootAncestor() == container; - } finally { - toolkit.unlockAWT(); - } - } + * Container getRealParent() { return (!(this instanceof Window) ? + * getParent() : null); } public boolean isFocusCycleRoot(Container + * container) { toolkit.lockAWT(); try { return getFocusCycleRootAncestor() + * == container; } finally { toolkit.unlockAWT(); } } public boolean + * isFocusOwner() { toolkit.lockAWT(); try { return + * KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner() == + * this; } finally { toolkit.unlockAWT(); } } + */ - public boolean isFocusOwner() { - toolkit.lockAWT(); - try { - return KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner() == this; - } finally { - toolkit.unlockAWT(); - } - } - */ - /** * Checks whether or not this Component can be focusable. * * @return true, if this Component can be focusable, false otherwise. - * - * @deprecated Replaced by isFocusable(). + * @deprecated Replaced by isFocusable(). */ @Deprecated public boolean isFocusTraversable() { @@ -3306,8 +3070,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks if foreground color is set for the Component or not. * - * @return true, if is foreground color is set for the Component, - * false otherwise. + * @return true, if is foreground color is set for the Component, false + * otherwise. */ public boolean isForegroundSet() { toolkit.lockAWT(); @@ -3321,8 +3085,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Returns true if this component has a lightweight peer. * - * @return true, if this component has a lightweight peer, - * false if it has a native peer or no peer. + * @return true, if this component has a lightweight peer, false if it has a + * native peer or no peer. */ public boolean isLightweight() { toolkit.lockAWT(); @@ -3333,22 +3097,18 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } } - /** * Checks whether or not this Component is shown. * * @return true, if this Component is shown, false otherwise. */ public boolean isShowing() { - //???AWT + // ???AWT /* - toolkit.lockAWT(); - try { - return (isVisible() && isDisplayable() && (parent != null) && parent.isShowing()); - } finally { - toolkit.unlockAWT(); - } - */ + * toolkit.lockAWT(); try { return (isVisible() && isDisplayable() && + * (parent != null) && parent.isShowing()); } finally { + * toolkit.unlockAWT(); } + */ return false; } @@ -3369,11 +3129,11 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Deprecated: replaced by processKeyEvent(KeyEvent) method. * - * @param evt the Event. - * @param key the key code. - * + * @param evt + * the Event. + * @param key + * the key code. * @return true, if successful. - * * @deprecated Replaced by replaced by processKeyEvent(KeyEvent) method. */ @Deprecated @@ -3386,11 +3146,11 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Deprecated: replaced by processKeyEvent(KeyEvent) method. * - * @param evt the Event. - * @param key the key code. - * + * @param evt + * the Event. + * @param key + * the key code. * @return true, if successful. - * * @deprecated Replaced by processKeyEvent(KeyEvent) method. */ @Deprecated @@ -3418,11 +3178,11 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Deprecated: replaced by getComponentAt(int, int) method. * - * @param x the x coordinate. - * @param y the y coordinate. - * + * @param x + * the x coordinate. + * @param y + * the y coordinate. * @return The component. - * * @deprecated Replaced by getComponentAt(int, int) method. */ @Deprecated @@ -3439,13 +3199,13 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Deprecated: replaced by processFocusEvent(FocusEvent). - * - * @param evt the Event. - * @param what the Object. + * Deprecated: replaced by processFocusEvent(FocusEvent). * + * @param evt + * the Event. + * @param what + * the Object. * @return true, if successful. - * * @deprecated Replaced by processFocusEvent(FocusEvent). */ @Deprecated @@ -3458,12 +3218,13 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Deprecated: replaced by processMouseEvent(MouseEvent) method. * - * @param evt the MouseEvent. - * @param x the x coordinate. - * @param y the y coordinate. - * + * @param evt + * the MouseEvent. + * @param x + * the x coordinate. + * @param y + * the y coordinate. * @return true, if successful. - * * @deprecated Replaced by processMouseEvent(MouseEvent) method. */ @Deprecated @@ -3476,12 +3237,13 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Deprecated: replaced by getMinimumSize() method. * - * @param evt the Event. - * @param x the x coordinate. - * @param y the y coordinate. - * + * @param evt + * the Event. + * @param x + * the x coordinate. + * @param y + * the y coordinate. * @return true, if successful. - * * @deprecated Replaced by getMinimumSize() method. */ @Deprecated @@ -3494,12 +3256,13 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Replaced by processMouseEvent(MouseEvent) method. * - * @param evt the Event. - * @param x the x coordinate. - * @param y the y coordinate. - * + * @param evt + * the Event. + * @param x + * the x coordinate. + * @param y + * the y coordinate. * @return true, if successful. - * * @deprecated replaced by processMouseEvent(MouseEvent) method. */ @Deprecated @@ -3512,12 +3275,13 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Replaced by processMouseEvent(MouseEvent) method. * - * @param evt the Event. - * @param x the x coordinate. - * @param y the y coordinate. - * + * @param evt + * the Event. + * @param x + * the x coordinate. + * @param y + * the y coordinate. * @return true, if successful. - * * @deprecated Replaced by processMouseEvent(MouseEvent) method. */ @Deprecated @@ -3530,12 +3294,13 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Replaced by processMouseEvent(MouseEvent) method. * - * @param evt the Event. - * @param x the x coordinate. - * @param y the y coordinate. - * + * @param evt + * the Event. + * @param x + * the x coordinate. + * @param y + * the y coordinate. * @deprecated Replaced by processMouseEvent(MouseEvent) method. - * * @return true, if successful. */ @Deprecated @@ -3548,12 +3313,13 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Replaced by processMouseEvent(MouseEvent) method. * - * @param evt the Event. - * @param x the x coordinate. - * @param y the y coordinate. - * + * @param evt + * the Event. + * @param x + * the x coordinate. + * @param y + * the y coordinate. * @return true, if successful. - * * @deprecated Replaced by processMouseEvent(MouseEvent) method. */ @Deprecated @@ -3566,9 +3332,10 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Deprecated: replaced by setLocation(int, int) method. * - * @param x the x coordinates. - * @param y the y coordinates. - * + * @param x + * the x coordinates. + * @param y + * the y coordinates. * @deprecated Replaced by setLocation(int, int) method. */ @Deprecated @@ -3582,18 +3349,12 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } } - //???AWT + // ???AWT /* - @Deprecated - public void nextFocus() { - toolkit.lockAWT(); - try { - transferFocus(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS); - } finally { - toolkit.unlockAWT(); - } - } - */ + * @Deprecated public void nextFocus() { toolkit.lockAWT(); try { + * transferFocus(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS); } finally { + * toolkit.unlockAWT(); } } + */ /** * Returns a string representation of the component's state. @@ -3603,10 +3364,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali protected String paramString() { /* * The format is based on 1.5 release behavior which can be revealed by - * the following code: - * - * Component c = new Component(){}; c.setVisible(false); - * System.out.println(c); + * the following code: Component c = new Component(){}; + * c.setVisible(false); System.out.println(c); */ toolkit.lockAWT(); try { @@ -3624,35 +3383,27 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali if (handled) { return true; } - //???AWT + // ???AWT /* - - // propagate non-handled events up to parent - Component par = parent; - // try to call postEvent only on components which - // override any of deprecated method handlers - // while (par != null && !par.deprecatedEventHandler) { - // par = par.parent; - // } - // translate event coordinates before posting it to parent - if (par != null) { - evt.translate(x, y); - par.postEvent(evt); - } - - */ + * // propagate non-handled events up to parent Component par = parent; + * // try to call postEvent only on components which // override any of + * deprecated method handlers // while (par != null && + * !par.deprecatedEventHandler) { // par = par.parent; // } // translate + * event coordinates before posting it to parent if (par != null) { + * evt.translate(x, y); par.postEvent(evt); } + */ return false; } /** - * Prepares an image for rendering on the Component. - * - * @param image the Image to be prepared. - * @param observer the ImageObserver object to be notified as soon as - * the image is prepared. + * Prepares an image for rendering on the Component. * - * @return true if the image has been fully prepared, - * false otherwise. + * @param image + * the Image to be prepared. + * @param observer + * the ImageObserver object to be notified as soon as the image + * is prepared. + * @return true if the image has been fully prepared, false otherwise. */ public boolean prepareImage(Image image, ImageObserver observer) { toolkit.lockAWT(); @@ -3664,17 +3415,19 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Prepares an image for rendering on the Component with the - * specified width, height, and ImageObserver. + * Prepares an image for rendering on the Component with the specified + * width, height, and ImageObserver. * - * @param image the Image to be prepared. - * @param width the width of scaled image. - * @param height the height of scaled height. - * @param observer the ImageObserver object to be notified as soon as - * the image is prepared. - * - * @return true if the image is been fully prepared, - * false otherwise. + * @param image + * the Image to be prepared. + * @param width + * the width of scaled image. + * @param height + * the height of scaled height. + * @param observer + * the ImageObserver object to be notified as soon as the image + * is prepared. + * @return true if the image is been fully prepared, false otherwise. */ public boolean prepareImage(Image image, int width, int height, ImageObserver observer) { toolkit.lockAWT(); @@ -3691,16 +3444,14 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali public void removeNotify() { toolkit.lockAWT(); try { - //???AWT + // ???AWT /* - if (dropTarget != null) { - dropTarget.removeNotify(peer); - } - */ + * if (dropTarget != null) { dropTarget.removeNotify(peer); } + */ prepare4HierarchyChange(); - ///???AWT: moveFocus(); + // /???AWT: moveFocus(); behaviour.removeNotify(); - //???AWT: finishHierarchyChange(this, parent, 0); + // ???AWT: finishHierarchyChange(this, parent, 0); removeNotifyInputContext(); } finally { toolkit.unlockAWT(); @@ -3708,7 +3459,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Calls InputContext.removeNotify + * Calls InputContext.removeNotify. */ private void removeNotifyInputContext() { if (!inputMethodsEnabled) { @@ -3716,7 +3467,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } InputContext ic = getInputContext(); if (ic != null) { - //???AWT: ic.removeNotify(this); + // ???AWT: ic.removeNotify(this); } } @@ -3726,46 +3477,25 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * setFocusable(false) is called, and therefore automatic forward focus * traversal is necessary */ - //???AWT + // ???AWT /* - void moveFocus() { - // don't use transferFocus(), but query focus traversal policy directly - // and if it returns null, transfer focus up cycle - // and find next focusable component there - KeyboardFocusManager kfm = KeyboardFocusManager.getCurrentKeyboardFocusManager(); - Container root = kfm.getCurrentFocusCycleRoot(); - Component nextComp = this; - boolean success = !isFocusOwner(); - while (!success) { - if (root != nextComp.getFocusCycleRootAncestor()) { - // component was probably removed from container - // so focus will be lost in some time - return; - } - nextComp = root.getFocusTraversalPolicy().getComponentAfter(root, nextComp); - if (nextComp == this) { - nextComp = null; // avoid looping - } - if (nextComp != null) { - success = nextComp.requestFocusInWindow(); - } else { - nextComp = root; - root = root.getFocusCycleRootAncestor(); - // if no acceptable component is found at all - clear global - // focus owner - if (root == null) { - if (nextComp instanceof Window) { - Window wnd = (Window) nextComp; - wnd.setFocusOwner(null); - wnd.setRequestedFocus(null); - } - kfm.clearGlobalFocusOwner(); - return; - } - } - } - } - */ + * void moveFocus() { // don't use transferFocus(), but query focus + * traversal policy directly // and if it returns null, transfer focus up + * cycle // and find next focusable component there KeyboardFocusManager kfm + * = KeyboardFocusManager.getCurrentKeyboardFocusManager(); Container root = + * kfm.getCurrentFocusCycleRoot(); Component nextComp = this; boolean + * success = !isFocusOwner(); while (!success) { if (root != + * nextComp.getFocusCycleRootAncestor()) { // component was probably removed + * from container // so focus will be lost in some time return; } nextComp = + * root.getFocusTraversalPolicy().getComponentAfter(root, nextComp); if + * (nextComp == this) { nextComp = null; // avoid looping } if (nextComp != + * null) { success = nextComp.requestFocusInWindow(); } else { nextComp = + * root; root = root.getFocusCycleRootAncestor(); // if no acceptable + * component is found at all - clear global // focus owner if (root == null) + * { if (nextComp instanceof Window) { Window wnd = (Window) nextComp; + * wnd.setFocusOwner(null); wnd.setRequestedFocus(null); } + * kfm.clearGlobalFocusOwner(); return; } } } } + */ /** * For Container there's a difference between moving focus when being made @@ -3774,80 +3504,73 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * setVisible() is not called. */ void moveFocusOnHide() { - //???AWT: moveFocus(); + // ???AWT: moveFocus(); } /** * Removes the property change listener registered for this component. * - * @param listener the PropertyChangeListener. + * @param listener + * the PropertyChangeListener. */ public void removePropertyChangeListener(PropertyChangeListener listener) { getPropertyChangeSupport().removePropertyChangeListener(listener); } /** - * Removes the property change listener registered fot this component - * for the specified propertyy. + * Removes the property change listener registered fot this component for + * the specified propertyy. * - * @param propertyName the property name. - * @param listener the PropertyChangeListener. + * @param propertyName + * the property name. + * @param listener + * the PropertyChangeListener. */ - public void removePropertyChangeListener(String propertyName, - PropertyChangeListener listener) { + public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { getPropertyChangeSupport().removePropertyChangeListener(propertyName, listener); } - /** - * Repaints the specified rectangle of this component within - * tm milliseconds. + * Repaints the specified rectangle of this component within tm + * milliseconds. * - * @param tm the time in milliseconds before updating. - * @param x the x coordinate of Rectangle. - * @param y the y coordinate of Rectangle. - * @param width the width of Rectangle. - * @param height the height of Rectangle. + * @param tm + * the time in milliseconds before updating. + * @param x + * the x coordinate of Rectangle. + * @param y + * the y coordinate of Rectangle. + * @param width + * the width of Rectangle. + * @param height + * the height of Rectangle. */ public void repaint(long tm, int x, int y, int width, int height) { - //???AWT + // ???AWT /* - toolkit.lockAWT(); - try { - if (width <= 0 || height <= 0 || (redrawManager == null) || !isShowing()) { - return; - } - if (behaviour instanceof LWBehavior) { - if (parent == null || !parent.visible || !parent.behaviour.isDisplayable()) { - return; - } - if (repaintRegion == null) { - repaintRegion = new MultiRectArea(new Rectangle(x, y, width, height)); - } - repaintRegion.intersect(new Rectangle(0, 0, this.w, this.h)); - repaintRegion.translate(this.x, this.y); - parent.repaintRegion = repaintRegion; - repaintRegion = null; - parent.repaint(tm, x + this.x, y + this.y, width, height); - } else { - if (repaintRegion != null) { - redrawManager.addUpdateRegion(this, repaintRegion); - repaintRegion = null; - } else { - redrawManager.addUpdateRegion(this, new Rectangle(x, y, width, height)); - } - toolkit.getSystemEventQueueCore().notifyEventMonitor(toolkit); - } - } finally { - toolkit.unlockAWT(); - } - */ + * toolkit.lockAWT(); try { if (width <= 0 || height <= 0 || + * (redrawManager == null) || !isShowing()) { return; } if (behaviour + * instanceof LWBehavior) { if (parent == null || !parent.visible || + * !parent.behaviour.isDisplayable()) { return; } if (repaintRegion == + * null) { repaintRegion = new MultiRectArea(new Rectangle(x, y, width, + * height)); } repaintRegion.intersect(new Rectangle(0, 0, this.w, + * this.h)); repaintRegion.translate(this.x, this.y); + * parent.repaintRegion = repaintRegion; repaintRegion = null; + * parent.repaint(tm, x + this.x, y + this.y, width, height); } else { + * if (repaintRegion != null) { redrawManager.addUpdateRegion(this, + * repaintRegion); repaintRegion = null; } else { + * redrawManager.addUpdateRegion(this, new Rectangle(x, y, width, + * height)); } + * toolkit.getSystemEventQueueCore().notifyEventMonitor(toolkit); } } + * finally { toolkit.unlockAWT(); } + */ } /** * Post event. * - * @param e the e + * @param e + * the e. */ void postEvent(AWTEvent e) { getToolkit().getSystemEventQueueImpl().postEvent(e); @@ -3856,10 +3579,14 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Repaints the specified Rectangle of this Component. * - * @param x the x coordinate of Rectangle. - * @param y the y coordinate of Rectangle. - * @param width the width of Rectangle. - * @param height the height of Rectangle. + * @param x + * the x coordinate of Rectangle. + * @param y + * the y coordinate of Rectangle. + * @param width + * the width of Rectangle. + * @param height + * the height of Rectangle. */ public void repaint(int x, int y, int width, int height) { toolkit.lockAWT(); @@ -3887,7 +3614,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Repaints the component within tm milliseconds. * - * @param tm the time in milliseconds before updating. + * @param tm + * the time in milliseconds before updating. */ public void repaint(long tm) { toolkit.lockAWT(); @@ -3899,29 +3627,28 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Requests that this Component get the input focus temporarily. - * This component must be displayable, visible, and focusable. - * - * @param temporary this parameter is true if the focus change - * is temporary, when the window loses the focus. + * Requests that this Component get the input focus temporarily. This + * component must be displayable, visible, and focusable. * - * @return true if the focus change request is succeeded, - * false otherwise. + * @param temporary + * this parameter is true if the focus change is temporary, when + * the window loses the focus. + * @return true if the focus change request is succeeded, false otherwise. */ protected boolean requestFocus(boolean temporary) { toolkit.lockAWT(); try { - //???AWT: return requestFocusImpl(temporary, true, false); + // ???AWT: return requestFocusImpl(temporary, true, false); } finally { toolkit.unlockAWT(); } - //???AWT + // ???AWT return false; } /** - * Requests that this Component get the input focus. - * This component must be displayable, visible, and focusable. + * Requests that this Component get the input focus. This component must be + * displayable, visible, and focusable. */ public void requestFocus() { toolkit.lockAWT(); @@ -3932,55 +3659,35 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } } - //???AWT + // ???AWT /* - protected boolean requestFocusInWindow(boolean temporary) { - toolkit.lockAWT(); - try { - Window wnd = getWindowAncestor(); - if ((wnd == null) || !wnd.isFocused()) { - return false; - } - return requestFocusImpl(temporary, false, false); - } finally { - toolkit.unlockAWT(); - } - } - - boolean requestFocusImpl(boolean temporary, boolean crossWindow, boolean rejectionRecovery) { - if (!rejectionRecovery && isFocusOwner()) { - return true; - } - Window wnd = getWindowAncestor(); - Container par = getRealParent(); - if ((par != null) && par.isRemoved) { - return false; - } - if (!isShowing() || !isFocusable() || !wnd.isFocusableWindow()) { - return false; - } - return KeyboardFocusManager.getCurrentKeyboardFocusManager().requestFocus(this, - temporary, crossWindow, true); - } - - public boolean requestFocusInWindow() { - toolkit.lockAWT(); - try { - return requestFocusInWindow(false); - } finally { - toolkit.unlockAWT(); - } - } - */ + * protected boolean requestFocusInWindow(boolean temporary) { + * toolkit.lockAWT(); try { Window wnd = getWindowAncestor(); if ((wnd == + * null) || !wnd.isFocused()) { return false; } return + * requestFocusImpl(temporary, false, false); } finally { + * toolkit.unlockAWT(); } } boolean requestFocusImpl(boolean temporary, + * boolean crossWindow, boolean rejectionRecovery) { if (!rejectionRecovery + * && isFocusOwner()) { return true; } Window wnd = getWindowAncestor(); + * Container par = getRealParent(); if ((par != null) && par.isRemoved) { + * return false; } if (!isShowing() || !isFocusable() || + * !wnd.isFocusableWindow()) { return false; } return + * KeyboardFocusManager.getCurrentKeyboardFocusManager().requestFocus(this, + * temporary, crossWindow, true); } public boolean requestFocusInWindow() { + * toolkit.lockAWT(); try { return requestFocusInWindow(false); } finally { + * toolkit.unlockAWT(); } } + */ /** * Deprecated: replaced by setBounds(int, int, int, int) method. * - * @param x the x coordinate. - * @param y the y coordinate. - * @param w the width. - * @param h the height. - * + * @param x + * the x coordinate. + * @param y + * the y coordinate. + * @param w + * the width. + * @param h + * the height. * @deprecated Replaced by setBounds(int, int, int, int) method. */ @Deprecated @@ -3995,13 +3702,17 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Sets rectangle for this Component to be the rectangle with the specified + * Sets rectangle for this Component to be the rectangle with the specified * x,y coordinates of the top-left corner and the width and height. * - * @param x the x coordinate of the rectangle's top-left corner. - * @param y the y coordinate of the rectangle's top-left corner. - * @param w the width of rectangle. - * @param h the height of rectangle. + * @param x + * the x coordinate of the rectangle's top-left corner. + * @param y + * the y coordinate of the rectangle's top-left corner. + * @param w + * the width of rectangle. + * @param h + * the height of rectangle. */ public void setBounds(int x, int y, int w, int h) { toolkit.lockAWT(); @@ -4013,16 +3724,22 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Sets rectangle for this Component to be the rectangle with the specified - * x,y coordinates of the top-left corner and the width and height - * and posts the appropriate events. + * Sets rectangle for this Component to be the rectangle with the specified + * x,y coordinates of the top-left corner and the width and height and posts + * the appropriate events. * - * @param x the x coordinate of the rectangle's top-left corner. - * @param y the y coordinate of the rectangle's top-left corner. - * @param w the width of rectangle. - * @param h the height of rectangle. - * @param bMask the bitmask of bounds options - * @param updateBehavior the whether to update the behavoir's bounds as well + * @param x + * the x coordinate of the rectangle's top-left corner. + * @param y + * the y coordinate of the rectangle's top-left corner. + * @param w + * the width of rectangle. + * @param h + * the height of rectangle. + * @param bMask + * the bitmask of bounds options. + * @param updateBehavior + * the whether to update the behavoir's bounds as well. */ void setBounds(int x, int y, int w, int h, int bMask, boolean updateBehavior) { int oldX = this.x; @@ -4032,7 +3749,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali setBoundsFields(x, y, w, h, bMask); // Moved if ((oldX != this.x) || (oldY != this.y)) { - //???AWT: invalidateRealParent(); + // ???AWT: invalidateRealParent(); postEvent(new ComponentEvent(this, ComponentEvent.COMPONENT_MOVED)); spreadHierarchyBoundsEvents(this, HierarchyEvent.ANCESTOR_MOVED); } @@ -4051,7 +3768,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Calls InputContextImpl.notifyClientWindowChanged. * - * @param bounds the bounds + * @param bounds + * the bounds. */ void notifyInputMethod(Rectangle bounds) { // only Window actually notifies IM of bounds change @@ -4060,11 +3778,16 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Sets the bounds fields. * - * @param x the x - * @param y the y - * @param w the w - * @param h the h - * @param bMask the b mask + * @param x + * the x. + * @param y + * the y. + * @param w + * the w. + * @param h + * the h. + * @param bMask + * the b mask. */ private void setBoundsFields(int x, int y, int w, int h, int bMask) { if ((bMask & NativeWindow.BOUNDS_NOSIZE) == 0) { @@ -4080,7 +3803,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Gets the native insets. * - * @return the native insets + * @return the native insets. */ Insets getNativeInsets() { return new Insets(0, 0, 0, 0); @@ -4089,7 +3812,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Gets the insets. * - * @return the insets + * @return the insets. */ Insets getInsets() { return new Insets(0, 0, 0, 0); @@ -4098,7 +3821,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks if is mouse exited expected. * - * @return true, if is mouse exited expected + * @return true, if is mouse exited expected. */ boolean isMouseExitedExpected() { return mouseExitedExpected; @@ -4107,7 +3830,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Sets the mouse exited expected. * - * @param expected the new mouse exited expected + * @param expected + * the new mouse exited expected. */ void setMouseExitedExpected(boolean expected) { mouseExitedExpected = expected; @@ -4116,7 +3840,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Sets the new bounding rectangle for this Component. * - * @param r the new bounding rectangle. + * @param r + * the new bounding rectangle. */ public void setBounds(Rectangle r) { toolkit.lockAWT(); @@ -4128,10 +3853,11 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Sets the component orientation which affects the component's - * elements and text within this component. + * Sets the component orientation which affects the component's elements and + * text within this component. * - * @param o the ComponentOrientation object. + * @param o + * the ComponentOrientation object. */ public void setComponentOrientation(ComponentOrientation o) { ComponentOrientation oldOrientation; @@ -4149,7 +3875,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Sets the specified cursor for this Component. * - * @param cursor the new Cursor. + * @param cursor + * the new Cursor. */ public void setCursor(Cursor cursor) { toolkit.lockAWT(); @@ -4168,26 +3895,20 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali if (isDisplayable() && isShowing()) { Rectangle absRect = new Rectangle(getLocationOnScreen(), getSize()); Point absPointerPos = toolkit.dispatcher.mouseDispatcher.getPointerPos(); - //???AWT + // ???AWT /* - if (absRect.contains(absPointerPos)) { - // set Cursor only on top-level Windows(on X11) - Window topLevelWnd = getWindowAncestor(); - if (topLevelWnd != null) { - Point pointerPos = MouseDispatcher.convertPoint(null, absPointerPos, - topLevelWnd); - Component compUnderCursor = topLevelWnd.findComponentAt(pointerPos); - // if (compUnderCursor == this || - // compUnderCursor.getCursorAncestor() == this) { - NativeWindow wnd = topLevelWnd.getNativeWindow(); - if (compUnderCursor != null && wnd != null) { - compUnderCursor.getRealCursor().getNativeCursor() - .setCursor(wnd.getId()); - } - // } - } - } - */ + * if (absRect.contains(absPointerPos)) { // set Cursor only on + * top-level Windows(on X11) Window topLevelWnd = + * getWindowAncestor(); if (topLevelWnd != null) { Point pointerPos + * = MouseDispatcher.convertPoint(null, absPointerPos, topLevelWnd); + * Component compUnderCursor = + * topLevelWnd.findComponentAt(pointerPos); // if (compUnderCursor + * == this || // compUnderCursor.getCursorAncestor() == this) { + * NativeWindow wnd = topLevelWnd.getNativeWindow(); if + * (compUnderCursor != null && wnd != null) { + * compUnderCursor.getRealCursor().getNativeCursor() + * .setCursor(wnd.getId()); } // } } } + */ } } @@ -4195,68 +3916,44 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * Gets the ancestor Cursor if Component is disabled (directly or via an * ancestor) even if Cursor is explicitly set. * - * @param value the value - * - * @return actual Cursor to be displayed + * @param value + * the value. + * @return the actual Cursor to be displayed. */ - //???AWT + // ???AWT /* - Cursor getRealCursor() { - Component cursorAncestor = getCursorAncestor(); - return cursorAncestor != null ? cursorAncestor.getCursor() : Cursor.getDefaultCursor(); - } - */ + * Cursor getRealCursor() { Component cursorAncestor = getCursorAncestor(); + * return cursorAncestor != null ? cursorAncestor.getCursor() : + * Cursor.getDefaultCursor(); } + */ /** * Gets the ancestor(or component itself) whose cursor is set when pointer * is inside component * - * @return actual Cursor to be displayed + * @return the actual Cursor to be displayed. */ - //???AWT + // ???AWT /* - Component getCursorAncestor() { - Component comp; - for (comp = this; comp != null; comp = comp.getParent()) { - if (comp instanceof Window || comp.isCursorSet() && comp.isKeyEnabled()) { - return comp; - } - } - return null; - } + * Component getCursorAncestor() { Component comp; for (comp = this; comp != + * null; comp = comp.getParent()) { if (comp instanceof Window || + * comp.isCursorSet() && comp.isKeyEnabled()) { return comp; } } return + * null; } public void setDropTarget(DropTarget dt) { toolkit.lockAWT(); try + * { if (dropTarget == dt) { return; } DropTarget oldDropTarget = + * dropTarget; dropTarget = dt; if (oldDropTarget != null) { if + * (behaviour.isDisplayable()) { oldDropTarget.removeNotify(peer); } + * oldDropTarget.setComponent(null); } if (dt != null) { + * dt.setComponent(this); if (behaviour.isDisplayable()) { + * dt.addNotify(peer); } } } finally { toolkit.unlockAWT(); } } + */ - public void setDropTarget(DropTarget dt) { - toolkit.lockAWT(); - try { - if (dropTarget == dt) { - return; - } - DropTarget oldDropTarget = dropTarget; - dropTarget = dt; - if (oldDropTarget != null) { - if (behaviour.isDisplayable()) { - oldDropTarget.removeNotify(peer); - } - oldDropTarget.setComponent(null); - } - if (dt != null) { - dt.setComponent(this); - if (behaviour.isDisplayable()) { - dt.addNotify(peer); - } - } - } finally { - toolkit.unlockAWT(); - } - } - */ - /** - * Sets this component to the "enabled" or "disabled" state depending - * on the specified boolean parameter. + * Sets this component to the "enabled" or "disabled" state depending on the + * specified boolean parameter. * - * @param value true if this component should be enabled; false - * if this component should be disabled. + * @param value + * true if this component should be enabled; false if this + * component should be disabled. */ public void setEnabled(boolean value) { toolkit.lockAWT(); @@ -4270,7 +3967,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Sets the enabled impl. * - * @param value the new enabled impl + * @param value + * the new enabled impl. */ void setEnabledImpl(boolean value) { if (enabled != value) { @@ -4283,77 +3981,49 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } } - //???AWT + // ???AWT /* - private void fireAccessibleStateChange(AccessibleState state, boolean value) { - if (behaviour.isLightweight()) { - return; - } - AccessibleContext ac = getAccessibleContext(); - if (ac != null) { - AccessibleState oldValue = null; - AccessibleState newValue = null; - if (value) { - newValue = state; - } else { - oldValue = state; - } - ac.firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY, oldValue, - newValue); - } - } - */ + * private void fireAccessibleStateChange(AccessibleState state, boolean + * value) { if (behaviour.isLightweight()) { return; } AccessibleContext ac + * = getAccessibleContext(); if (ac != null) { AccessibleState oldValue = + * null; AccessibleState newValue = null; if (value) { newValue = state; } + * else { oldValue = state; } + * ac.firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY, + * oldValue, newValue); } } + */ - //???AWT + // ???AWT /* - public void setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes) { - Set<? extends AWTKeyStroke> oldTraversalKeys; - String propName = "FocusTraversalKeys"; //$NON-NLS-1$ - toolkit.lockAWT(); - try { - Integer kId = new Integer(id); - KeyboardFocusManager.checkTraversalKeysID(traversalKeys, kId); - Map<Integer, Set<? extends AWTKeyStroke>> keys = new HashMap<Integer, Set<? extends AWTKeyStroke>>(); - for (int kid : traversalIDs) { - Integer key = new Integer(kid); - keys.put(key, getFocusTraversalKeys(kid)); - } - KeyboardFocusManager.checkKeyStrokes(traversalIDs, keys, kId, keystrokes); - oldTraversalKeys = traversalKeys.get(new Integer(id)); - // put a copy of keystrokes object into map: - Set<? extends AWTKeyStroke> newKeys = keystrokes; - if (keystrokes != null) { - newKeys = new HashSet<AWTKeyStroke>(keystrokes); - } - traversalKeys.put(kId, newKeys); - String direction = ""; //$NON-NLS-1$ - switch (id) { - case KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS: - direction = "forward"; //$NON-NLS-1$ - break; - case KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS: - direction = "backward"; //$NON-NLS-1$ - break; - case KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS: - direction = "upCycle"; //$NON-NLS-1$ - break; - case KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS: - direction = "downCycle"; //$NON-NLS-1$ - break; - } - propName = direction + propName; - } finally { - toolkit.unlockAWT(); - } - firePropertyChange(propName, oldTraversalKeys, keystrokes); - } - */ + * public void setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> + * keystrokes) { Set<? extends AWTKeyStroke> oldTraversalKeys; String + * propName = "FocusTraversalKeys"; //$NON-NLS-1$ toolkit.lockAWT(); try { + * Integer kId = new Integer(id); + * KeyboardFocusManager.checkTraversalKeysID(traversalKeys, kId); + * Map<Integer, Set<? extends AWTKeyStroke>> keys = new HashMap<Integer, + * Set<? extends AWTKeyStroke>>(); for (int kid : traversalIDs) { Integer + * key = new Integer(kid); keys.put(key, getFocusTraversalKeys(kid)); } + * KeyboardFocusManager.checkKeyStrokes(traversalIDs, keys, kId, + * keystrokes); oldTraversalKeys = traversalKeys.get(new Integer(id)); // + * put a copy of keystrokes object into map: Set<? extends AWTKeyStroke> + * newKeys = keystrokes; if (keystrokes != null) { newKeys = new + * HashSet<AWTKeyStroke>(keystrokes); } traversalKeys.put(kId, newKeys); + * String direction = ""; //$NON-NLS-1$ switch (id) { case + * KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS: direction = "forward"; + * //$NON-NLS-1$ break; case KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS: + * direction = "backward"; //$NON-NLS-1$ break; case + * KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS: direction = "upCycle"; + * //$NON-NLS-1$ break; case KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS: + * direction = "downCycle"; //$NON-NLS-1$ break; } propName = direction + + * propName; } finally { toolkit.unlockAWT(); } firePropertyChange(propName, + * oldTraversalKeys, keystrokes); } + */ /** * Sets the focus traversal keys state for this component. * - * @param value true if the focus traversal keys state is enabled, - * false if the focus traversal keys state is disabled. + * @param value + * true if the focus traversal keys state is enabled, false if + * the focus traversal keys state is disabled. */ public void setFocusTraversalKeysEnabled(boolean value) { boolean oldFocusTraversalKeysEnabled; @@ -4368,38 +4038,23 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali focusTraversalKeysEnabled); } - //???AWT + // ???AWT /* - public void setFocusable(boolean focusable) { - boolean oldFocusable; - toolkit.lockAWT(); - try { - calledSetFocusable = true; - oldFocusable = this.focusable; - this.focusable = focusable; - if (!focusable) { - moveFocus(); - } - } finally { - toolkit.unlockAWT(); - } - firePropertyChange("focusable", oldFocusable, focusable); //$NON-NLS-1$ - } - - public Font getFont() { - toolkit.lockAWT(); - try { - return (font == null) && (parent != null) ? parent.getFont() : font; - } finally { - toolkit.unlockAWT(); - } - } - */ + * public void setFocusable(boolean focusable) { boolean oldFocusable; + * toolkit.lockAWT(); try { calledSetFocusable = true; oldFocusable = + * this.focusable; this.focusable = focusable; if (!focusable) { + * moveFocus(); } } finally { toolkit.unlockAWT(); } + * firePropertyChange("focusable", oldFocusable, focusable); //$NON-NLS-1$ } + * public Font getFont() { toolkit.lockAWT(); try { return (font == null) && + * (parent != null) ? parent.getFont() : font; } finally { + * toolkit.unlockAWT(); } } + */ /** * Sets the font for this Component. * - * @param f the new font of the Component. + * @param f + * the new font of the Component. */ public void setFont(Font f) { Font oldFont; @@ -4416,7 +4071,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Sets the font impl. * - * @param f the new font impl + * @param f + * the new font impl. */ void setFontImpl(Font f) { font = f; @@ -4426,12 +4082,11 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } } - /** * Invalidate the component if it inherits the font from the parent. This * method is overridden in Container. * - * @return true if the component was invalidated, false otherwise + * @return true if the component was invalidated, false otherwise. */ boolean propagateFont() { if (font == null) { @@ -4444,7 +4099,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Sets the foreground color for this Component. * - * @param c the new foreground color. + * @param c + * the new foreground color. */ public void setForeground(Color c) { Color oldFgColor; @@ -4462,7 +4118,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Sets the background color for the Component. * - * @param c the new background color for this component. + * @param c + * the new background color for this component. */ public void setBackground(Color c) { Color oldBkColor; @@ -4478,11 +4135,12 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Sets the flag for whether paint messages received from the operating - * system should be ignored or not. + * Sets the flag for whether paint messages received from the operating + * system should be ignored or not. * - * @param value true if paint messages received from the operating - * system should be ignored, false otherwise. + * @param value + * true if paint messages received from the operating system + * should be ignored, false otherwise. */ public void setIgnoreRepaint(boolean value) { toolkit.lockAWT(); @@ -4496,7 +4154,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Sets the locale of the component. * - * @param locale the new Locale. + * @param locale + * the new Locale. */ public void setLocale(Locale locale) { Locale oldLocale; @@ -4513,7 +4172,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Sets the location of the Component to the specified point. * - * @param p the new location of the Component + * @param p + * the new location of the Component. */ public void setLocation(Point p) { toolkit.lockAWT(); @@ -4525,10 +4185,12 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Sets the location of the Component to the specified x, y coordinates. + * Sets the location of the Component to the specified x, y coordinates. * - * @param x the x coordinate. - * @param y the y coordinate. + * @param x + * the x coordinate. + * @param y + * the y coordinate. */ public void setLocation(int x, int y) { toolkit.lockAWT(); @@ -4542,8 +4204,9 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Sets the visibility state of the component. * - * @param b true if the component is visible, false if the component - * is not shown. + * @param b + * true if the component is visible, false if the component is + * not shown. */ public void setVisible(boolean b) { // show() & hide() are not deprecated for Window, @@ -4569,9 +4232,9 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali visible = true; behaviour.setVisible(true); postEvent(new ComponentEvent(this, ComponentEvent.COMPONENT_SHOWN)); - //???AWT: finishHierarchyChange(this, parent, 0); + // ???AWT: finishHierarchyChange(this, parent, 0); notifyInputMethod(new Rectangle(x, y, w, h)); - //???AWT: invalidateRealParent(); + // ???AWT: invalidateRealParent(); } finally { toolkit.unlockAWT(); } @@ -4580,8 +4243,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Deprecated: replaced by setVisible(boolean) method. * - * @param b the visibility's state. - * + * @param b + * the visibility's state. * @deprecated Replaced by setVisible(boolean) method. */ @Deprecated @@ -4593,97 +4256,40 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } } - //???AWT + // ???AWT /* - void transferFocus(int dir) { - Container root = null; - if (this instanceof Container) { - Container cont = (Container) this; - if (cont.isFocusCycleRoot()) { - root = cont.getFocusTraversalRoot(); - } - } - if (root == null) { - root = getFocusCycleRootAncestor(); - } - // transfer focus up cycle if root is unreachable - Component comp = this; - while ((root != null) - && !(root.isFocusCycleRoot() && root.isShowing() && root.isEnabled() && root - .isFocusable())) { - comp = root; - root = root.getFocusCycleRootAncestor(); - } - if (root == null) { - return; - } - FocusTraversalPolicy policy = root.getFocusTraversalPolicy(); - Component nextComp = null; - switch (dir) { - case KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS: - nextComp = policy.getComponentAfter(root, comp); - break; - case KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS: - nextComp = policy.getComponentBefore(root, comp); - break; - } - if (nextComp != null) { - nextComp.requestFocus(false); - } - } - - public void transferFocus() { - toolkit.lockAWT(); - try { - nextFocus(); - } finally { - toolkit.unlockAWT(); - } - } - - public void transferFocusBackward() { - toolkit.lockAWT(); - try { - transferFocus(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS); - } finally { - toolkit.unlockAWT(); - } - } - - public void transferFocusUpCycle() { - toolkit.lockAWT(); - try { - KeyboardFocusManager kfm = KeyboardFocusManager.getCurrentKeyboardFocusManager(); - Container root = kfm.getCurrentFocusCycleRoot(); - - if(root == null) { - return; - } - - boolean success = false; - Component nextComp = null; - Container newRoot = root; - do { - nextComp = newRoot instanceof Window ? newRoot.getFocusTraversalPolicy() - .getDefaultComponent(newRoot) : newRoot; - newRoot = newRoot.getFocusCycleRootAncestor(); - if (nextComp == null) { - break; - } - success = nextComp.requestFocusInWindow(); - if (newRoot == null) { - break; - } - kfm.setGlobalCurrentFocusCycleRoot(newRoot); - } while (!success); - if (!success && root != newRoot) { - kfm.setGlobalCurrentFocusCycleRoot(root); - } - } finally { - toolkit.unlockAWT(); - } - } - */ + * void transferFocus(int dir) { Container root = null; if (this instanceof + * Container) { Container cont = (Container) this; if + * (cont.isFocusCycleRoot()) { root = cont.getFocusTraversalRoot(); } } if + * (root == null) { root = getFocusCycleRootAncestor(); } // transfer focus + * up cycle if root is unreachable Component comp = this; while ((root != + * null) && !(root.isFocusCycleRoot() && root.isShowing() && + * root.isEnabled() && root .isFocusable())) { comp = root; root = + * root.getFocusCycleRootAncestor(); } if (root == null) { return; } + * FocusTraversalPolicy policy = root.getFocusTraversalPolicy(); Component + * nextComp = null; switch (dir) { case + * KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS: nextComp = + * policy.getComponentAfter(root, comp); break; case + * KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS: nextComp = + * policy.getComponentBefore(root, comp); break; } if (nextComp != null) { + * nextComp.requestFocus(false); } } public void transferFocus() { + * toolkit.lockAWT(); try { nextFocus(); } finally { toolkit.unlockAWT(); } + * } public void transferFocusBackward() { toolkit.lockAWT(); try { + * transferFocus(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS); } finally { + * toolkit.unlockAWT(); } } public void transferFocusUpCycle() { + * toolkit.lockAWT(); try { KeyboardFocusManager kfm = + * KeyboardFocusManager.getCurrentKeyboardFocusManager(); Container root = + * kfm.getCurrentFocusCycleRoot(); if(root == null) { return; } boolean + * success = false; Component nextComp = null; Container newRoot = root; do + * { nextComp = newRoot instanceof Window ? + * newRoot.getFocusTraversalPolicy() .getDefaultComponent(newRoot) : + * newRoot; newRoot = newRoot.getFocusCycleRootAncestor(); if (nextComp == + * null) { break; } success = nextComp.requestFocusInWindow(); if (newRoot + * == null) { break; } kfm.setGlobalCurrentFocusCycleRoot(newRoot); } while + * (!success); if (!success && root != newRoot) { + * kfm.setGlobalCurrentFocusCycleRoot(root); } } finally { + * toolkit.unlockAWT(); } } + */ /** * Validates that this component has a valid layout. @@ -4710,7 +4316,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Gets the native window. * - * @return the native window + * @return the native window. */ NativeWindow getNativeWindow() { return behaviour.getNativeWindow(); @@ -4719,8 +4325,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks whether or not a maximum size is set for the Component. * - * @return true, if the maximum size is set for the Component, - * false otherwise. + * @return true, if the maximum size is set for the Component, false + * otherwise. */ public boolean isMaximumSizeSet() { toolkit.lockAWT(); @@ -4734,8 +4340,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks whether or not the minimum size is set for the component. * - * @return true, if the minimum size is set for the component, - * false otherwise. + * @return true, if the minimum size is set for the component, false + * otherwise. */ public boolean isMinimumSizeSet() { toolkit.lockAWT(); @@ -4749,8 +4355,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks whether or not the preferred size is set for the Component. * - * @return true, if the preferred size is set for the Component, - * false otherwise. + * @return true, if the preferred size is set for the Component, false + * otherwise. */ public boolean isPreferredSizeSet() { toolkit.lockAWT(); @@ -4769,8 +4375,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali public Dimension getMaximumSize() { toolkit.lockAWT(); try { - return isMaximumSizeSet() ? new Dimension(maximumSize) : new Dimension( - Short.MAX_VALUE, Short.MAX_VALUE); + return isMaximumSizeSet() ? new Dimension(maximumSize) : new Dimension(Short.MAX_VALUE, + Short.MAX_VALUE); } finally { toolkit.unlockAWT(); } @@ -4794,7 +4400,6 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * Deprecated: replaced by getMinimumSize() method. * * @return the Dimension. - * * @deprecated Replaced by getMinimumSize() method. */ @Deprecated @@ -4808,7 +4413,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali if (defSize != null) { return (Dimension)defSize.clone(); } - return isDisplayable()? new Dimension(1, 1) : new Dimension(w, h); + return isDisplayable() ? new Dimension(1, 1) : new Dimension(w, h); } finally { toolkit.unlockAWT(); } @@ -4832,7 +4437,6 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * Deprecated: replaced by getPreferredSize() method. * * @return the Dimension. - * * @deprecated Replaced by getPreferredSize() method. */ @Deprecated @@ -4855,7 +4459,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Sets the maximum size of the Component. * - * @param maximumSize the new maximum size of the Component. + * @param maximumSize + * the new maximum size of the Component. */ public void setMaximumSize(Dimension maximumSize) { Dimension oldMaximumSize; @@ -4882,7 +4487,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali firePropertyChange("maximumSize", oldMaximumSize, this.maximumSize); //$NON-NLS-1$ toolkit.lockAWT(); try { - //???AWT: invalidateRealParent(); + // ???AWT: invalidateRealParent(); } finally { toolkit.unlockAWT(); } @@ -4891,7 +4496,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Sets the minimum size of the Component. * - * @param minimumSize the new minimum size of the Component. + * @param minimumSize + * the new minimum size of the Component. */ public void setMinimumSize(Dimension minimumSize) { Dimension oldMinimumSize; @@ -4918,7 +4524,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali firePropertyChange("minimumSize", oldMinimumSize, this.minimumSize); //$NON-NLS-1$ toolkit.lockAWT(); try { - //???AWT: invalidateRealParent(); + // ???AWT: invalidateRealParent(); } finally { toolkit.unlockAWT(); } @@ -4927,7 +4533,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Sets the preferred size of the Component. * - * @param preferredSize the new preferred size of the Component. + * @param preferredSize + * the new preferred size of the Component. */ public void setPreferredSize(Dimension preferredSize) { Dimension oldPreferredSize; @@ -4954,47 +4561,38 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali firePropertyChange("preferredSize", oldPreferredSize, this.preferredSize); //$NON-NLS-1$ toolkit.lockAWT(); try { - //???AWT: invalidateRealParent(); + // ???AWT: invalidateRealParent(); } finally { toolkit.unlockAWT(); } } - //???AWT + // ???AWT /* - RedrawManager getRedrawManager() { - if (parent == null) { - return null; - } - return parent.getRedrawManager(); - } - */ + * RedrawManager getRedrawManager() { if (parent == null) { return null; } + * return parent.getRedrawManager(); } + */ /** * Checks if is focusability explicitly set. * - * @return true if component has a focusable peer + * @return true if component has a focusable peer. */ - //???AWT + // ???AWT /* - boolean isPeerFocusable() { - // The recommendations for Windows and Unix are that - // Canvases, Labels, Panels, Scrollbars, ScrollPanes, Windows, - // and lightweight Components have non-focusable peers, - // and all other Components have focusable peers. - if (this instanceof Canvas || this instanceof Label || this instanceof Panel - || this instanceof Scrollbar || this instanceof ScrollPane - || this instanceof Window || isLightweight()) { - return false; - } - return true; - } - */ + * boolean isPeerFocusable() { // The recommendations for Windows and Unix + * are that // Canvases, Labels, Panels, Scrollbars, ScrollPanes, Windows, + * // and lightweight Components have non-focusable peers, // and all other + * Components have focusable peers. if (this instanceof Canvas || this + * instanceof Label || this instanceof Panel || this instanceof Scrollbar || + * this instanceof ScrollPane || this instanceof Window || isLightweight()) + * { return false; } return true; } + */ /** * @return true if focusability was explicitly set via a call to * setFocusable() or via overriding isFocusable() or - * isFocusTraversable() + * isFocusTraversable(). */ boolean isFocusabilityExplicitlySet() { return calledSetFocusable || overridenIsFocusable; @@ -5003,7 +4601,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Paints the component and all of its subcomponents. * - * @param g the Graphics to be used for painting. + * @param g + * the Graphics to be used for painting. */ public void paintAll(Graphics g) { toolkit.lockAWT(); @@ -5017,7 +4616,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Updates this Component. * - * @param g the Graphics to be used for updating. + * @param g + * the Graphics to be used for updating. */ public void update(Graphics g) { toolkit.lockAWT(); @@ -5036,7 +4636,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Paints this component. * - * @param g the Graphics to be used for painting. + * @param g + * the Graphics to be used for painting. */ public void paint(Graphics g) { toolkit.lockAWT(); @@ -5050,7 +4651,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Prepares the component to be painted. * - * @param g the Graphics to be used for painting. + * @param g + * the Graphics to be used for painting. */ void prepaint(Graphics g) { // Just to nothing. For overriding. @@ -5059,7 +4661,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks if is prepainter. * - * @return true, if is prepainter + * @return true, if is prepainter. */ boolean isPrepainter() { return false; @@ -5083,41 +4685,29 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali // To be inherited by Container } - //???AWT + // ???AWT /* - void finishHierarchyChange(Component changed, Container changedParent, int ancestorFlags) { - if (--hierarchyChangingCounter == 0) { - int changeFlags = ancestorFlags; - if (wasShowing != isShowing()) { - changeFlags |= HierarchyEvent.SHOWING_CHANGED; - } - if (wasDisplayable != isDisplayable()) { - changeFlags |= HierarchyEvent.DISPLAYABILITY_CHANGED; - } - if (changeFlags > 0) { - postEvent(new HierarchyEvent(this, HierarchyEvent.HIERARCHY_CHANGED, changed, - changedParent, changeFlags)); - } - finishChildrenHierarchyChange(changed, changedParent, ancestorFlags); - } - } - - - void finishChildrenHierarchyChange(Component changed, Container changedParent, - int ancestorFlags) { - // To be inherited by Container - } + * void finishHierarchyChange(Component changed, Container changedParent, + * int ancestorFlags) { if (--hierarchyChangingCounter == 0) { int + * changeFlags = ancestorFlags; if (wasShowing != isShowing()) { changeFlags + * |= HierarchyEvent.SHOWING_CHANGED; } if (wasDisplayable != + * isDisplayable()) { changeFlags |= HierarchyEvent.DISPLAYABILITY_CHANGED; + * } if (changeFlags > 0) { postEvent(new HierarchyEvent(this, + * HierarchyEvent.HIERARCHY_CHANGED, changed, changedParent, changeFlags)); + * } finishChildrenHierarchyChange(changed, changedParent, ancestorFlags); } + * } void finishChildrenHierarchyChange(Component changed, Container + * changedParent, int ancestorFlags) { // To be inherited by Container } + * void postHierarchyBoundsEvents(Component changed, int id) { postEvent(new + * HierarchyEvent(this, id, changed, null, 0)); } + */ - void postHierarchyBoundsEvents(Component changed, int id) { - postEvent(new HierarchyEvent(this, id, changed, null, 0)); - } - */ - /** * Spread hierarchy bounds events. * - * @param changed the changed - * @param id the id + * @param changed + * the changed. + * @param id + * the id. */ void spreadHierarchyBoundsEvents(Component changed, int id) { // To be inherited by Container @@ -5126,59 +4716,40 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Dispatches an event to this component. * - * @param e the Event. + * @param e + * the Event. */ public final void dispatchEvent(AWTEvent e) { - //???AWT + // ???AWT /* - if (e.isConsumed()) { - return; - } - if (e instanceof PaintEvent) { - toolkit.dispatchAWTEvent(e); - processPaintEvent((PaintEvent) e); - return; - } - KeyboardFocusManager kfm = KeyboardFocusManager.getCurrentKeyboardFocusManager(); - if (!e.dispatchedByKFM && kfm.dispatchEvent(e)) { - return; - } - if (e instanceof KeyEvent) { - KeyEvent ke = (KeyEvent) e; - // consumes KeyEvent which represents a focus traversal key - if (getFocusTraversalKeysEnabled()) { - kfm.processKeyEvent(this, ke); - if (ke.isConsumed()) { - return; - } - } - } - if (inputMethodsEnabled && dispatchToIM && e.isPosted && dispatchEventToIM(e)) { - return; - } - if (e.getID() == WindowEvent.WINDOW_ICONIFIED) { - notifyInputMethod(null); - } - AWTEvent.EventDescriptor descriptor = toolkit.eventTypeLookup.getEventDescriptor(e); - toolkit.dispatchAWTEvent(e); - if (descriptor != null) { - if (isEventEnabled(descriptor.eventMask) - || (getListeners(descriptor.listenerType).length > 0)) { - processEvent(e); - } - // input events can be consumed by user listeners: - if (!e.isConsumed() && ((enabledAWTEvents & descriptor.eventMask) != 0)) { - postprocessEvent(e, descriptor.eventMask); - } - } - postDeprecatedEvent(e); - */ + * if (e.isConsumed()) { return; } if (e instanceof PaintEvent) { + * toolkit.dispatchAWTEvent(e); processPaintEvent((PaintEvent) e); + * return; } KeyboardFocusManager kfm = + * KeyboardFocusManager.getCurrentKeyboardFocusManager(); if + * (!e.dispatchedByKFM && kfm.dispatchEvent(e)) { return; } if (e + * instanceof KeyEvent) { KeyEvent ke = (KeyEvent) e; // consumes + * KeyEvent which represents a focus traversal key if + * (getFocusTraversalKeysEnabled()) { kfm.processKeyEvent(this, ke); if + * (ke.isConsumed()) { return; } } } if (inputMethodsEnabled && + * dispatchToIM && e.isPosted && dispatchEventToIM(e)) { return; } if + * (e.getID() == WindowEvent.WINDOW_ICONIFIED) { + * notifyInputMethod(null); } AWTEvent.EventDescriptor descriptor = + * toolkit.eventTypeLookup.getEventDescriptor(e); + * toolkit.dispatchAWTEvent(e); if (descriptor != null) { if + * (isEventEnabled(descriptor.eventMask) || + * (getListeners(descriptor.listenerType).length > 0)) { + * processEvent(e); } // input events can be consumed by user listeners: + * if (!e.isConsumed() && ((enabledAWTEvents & descriptor.eventMask) != + * 0)) { postprocessEvent(e, descriptor.eventMask); } } + * postDeprecatedEvent(e); + */ } /** * Post deprecated event. * - * @param e the e + * @param e + * the e. */ private void postDeprecatedEvent(AWTEvent e) { if (deprecatedEventHandler) { @@ -5192,27 +4763,29 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Postprocess event. * - * @param e the e - * @param eventMask the event mask + * @param e + * the e. + * @param eventMask + * the event mask. */ void postprocessEvent(AWTEvent e, long eventMask) { toolkit.lockAWT(); try { // call system listeners under AWT lock if (eventMask == AWTEvent.FOCUS_EVENT_MASK) { - preprocessFocusEvent((FocusEvent) e); + preprocessFocusEvent((FocusEvent)e); } else if (eventMask == AWTEvent.KEY_EVENT_MASK) { - preprocessKeyEvent((KeyEvent) e); + preprocessKeyEvent((KeyEvent)e); } else if (eventMask == AWTEvent.MOUSE_EVENT_MASK) { - preprocessMouseEvent((MouseEvent) e); + preprocessMouseEvent((MouseEvent)e); } else if (eventMask == AWTEvent.MOUSE_MOTION_EVENT_MASK) { - preprocessMouseMotionEvent((MouseEvent) e); + preprocessMouseMotionEvent((MouseEvent)e); } else if (eventMask == AWTEvent.COMPONENT_EVENT_MASK) { - preprocessComponentEvent((ComponentEvent) e); + preprocessComponentEvent((ComponentEvent)e); } else if (eventMask == AWTEvent.MOUSE_WHEEL_EVENT_MASK) { - preprocessMouseWheelEvent((MouseWheelEvent) e); + preprocessMouseWheelEvent((MouseWheelEvent)e); } else if (eventMask == AWTEvent.INPUT_METHOD_EVENT_MASK) { - preprocessInputMethodEvent((InputMethodEvent) e); + preprocessInputMethodEvent((InputMethodEvent)e); } } finally { toolkit.unlockAWT(); @@ -5222,7 +4795,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Preprocess input method event. * - * @param e the e + * @param e + * the e. */ private void preprocessInputMethodEvent(InputMethodEvent e) { processInputMethodEventImpl(e, inputMethodListeners.getSystemListeners()); @@ -5231,7 +4805,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Preprocess mouse wheel event. * - * @param e the e + * @param e + * the e. */ private void preprocessMouseWheelEvent(MouseWheelEvent e) { processMouseWheelEventImpl(e, mouseWheelListeners.getSystemListeners()); @@ -5240,8 +4815,10 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Process mouse wheel event impl. * - * @param e the e - * @param c the c + * @param e + * the e. + * @param c + * the c. */ private void processMouseWheelEventImpl(MouseWheelEvent e, Collection<MouseWheelListener> c) { for (MouseWheelListener listener : c) { @@ -5256,7 +4833,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Preprocess component event. * - * @param e the e + * @param e + * the e. */ private void preprocessComponentEvent(ComponentEvent e) { processComponentEventImpl(e, componentListeners.getSystemListeners()); @@ -5265,7 +4843,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Preprocess mouse motion event. * - * @param e the e + * @param e + * the e. */ void preprocessMouseMotionEvent(MouseEvent e) { processMouseMotionEventImpl(e, mouseMotionListeners.getSystemListeners()); @@ -5274,7 +4853,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Preprocess mouse event. * - * @param e the e + * @param e + * the e */ void preprocessMouseEvent(MouseEvent e) { processMouseEventImpl(e, mouseListeners.getSystemListeners()); @@ -5283,7 +4863,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Preprocess key event. * - * @param e the e + * @param e + * the e. */ void preprocessKeyEvent(KeyEvent e) { processKeyEventImpl(e, keyListeners.getSystemListeners()); @@ -5292,79 +4873,82 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Preprocess focus event. * - * @param e the e + * @param e + * the e. */ void preprocessFocusEvent(FocusEvent e) { processFocusEventImpl(e, focusListeners.getSystemListeners()); } /** - * Processes AWTEvent occurred on this component. + * Processes AWTEvent occurred on this component. * - * @param e the AWTEvent. + * @param e + * the AWTEvent. */ protected void processEvent(AWTEvent e) { long eventMask = toolkit.eventTypeLookup.getEventMask(e); if (eventMask == AWTEvent.COMPONENT_EVENT_MASK) { - processComponentEvent((ComponentEvent) e); + processComponentEvent((ComponentEvent)e); } else if (eventMask == AWTEvent.FOCUS_EVENT_MASK) { - processFocusEvent((FocusEvent) e); + processFocusEvent((FocusEvent)e); } else if (eventMask == AWTEvent.KEY_EVENT_MASK) { - processKeyEvent((KeyEvent) e); + processKeyEvent((KeyEvent)e); } else if (eventMask == AWTEvent.MOUSE_EVENT_MASK) { - processMouseEvent((MouseEvent) e); + processMouseEvent((MouseEvent)e); } else if (eventMask == AWTEvent.MOUSE_WHEEL_EVENT_MASK) { - processMouseWheelEvent((MouseWheelEvent) e); + processMouseWheelEvent((MouseWheelEvent)e); } else if (eventMask == AWTEvent.MOUSE_MOTION_EVENT_MASK) { - processMouseMotionEvent((MouseEvent) e); + processMouseMotionEvent((MouseEvent)e); } else if (eventMask == AWTEvent.HIERARCHY_EVENT_MASK) { - processHierarchyEvent((HierarchyEvent) e); + processHierarchyEvent((HierarchyEvent)e); } else if (eventMask == AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK) { - processHierarchyBoundsEvent((HierarchyEvent) e); + processHierarchyBoundsEvent((HierarchyEvent)e); } else if (eventMask == AWTEvent.INPUT_METHOD_EVENT_MASK) { - processInputMethodEvent((InputMethodEvent) e); + processInputMethodEvent((InputMethodEvent)e); } } /** - * Gets an array of all listener's objects based on the specified - * listener type and registered to this Component. - * - * @param listenerType the listener type. + * Gets an array of all listener's objects based on the specified listener + * type and registered to this Component. * + * @param listenerType + * the listener type. * @return an array of all listener's objects based on the specified - * listener type and registered to this Component. + * listener type and registered to this Component. */ @SuppressWarnings("unchecked") public <T extends EventListener> T[] getListeners(Class<T> listenerType) { if (ComponentListener.class.isAssignableFrom(listenerType)) { - return (T[]) getComponentListeners(); + return (T[])getComponentListeners(); } else if (FocusListener.class.isAssignableFrom(listenerType)) { - return (T[]) getFocusListeners(); + return (T[])getFocusListeners(); } else if (HierarchyBoundsListener.class.isAssignableFrom(listenerType)) { - return (T[]) getHierarchyBoundsListeners(); + return (T[])getHierarchyBoundsListeners(); } else if (HierarchyListener.class.isAssignableFrom(listenerType)) { - return (T[]) getHierarchyListeners(); + return (T[])getHierarchyListeners(); } else if (InputMethodListener.class.isAssignableFrom(listenerType)) { - return (T[]) getInputMethodListeners(); + return (T[])getInputMethodListeners(); } else if (KeyListener.class.isAssignableFrom(listenerType)) { - return (T[]) getKeyListeners(); + return (T[])getKeyListeners(); } else if (MouseWheelListener.class.isAssignableFrom(listenerType)) { - return (T[]) getMouseWheelListeners(); + return (T[])getMouseWheelListeners(); } else if (MouseMotionListener.class.isAssignableFrom(listenerType)) { - return (T[]) getMouseMotionListeners(); + return (T[])getMouseMotionListeners(); } else if (MouseListener.class.isAssignableFrom(listenerType)) { - return (T[]) getMouseListeners(); + return (T[])getMouseListeners(); } else if (PropertyChangeListener.class.isAssignableFrom(listenerType)) { - return (T[]) getPropertyChangeListeners(); + return (T[])getPropertyChangeListeners(); } - return (T[]) Array.newInstance(listenerType, 0); + return (T[])Array.newInstance(listenerType, 0); } /** * Process paint event. * - * @param event the event + * @param event + * the event. */ private void processPaintEvent(PaintEvent event) { if (redrawManager == null) { @@ -5392,13 +4976,15 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Inits the graphics. * - * @param g the g - * @param e the e + * @param g + * the g. + * @param e + * the e. */ void initGraphics(Graphics g, PaintEvent e) { Rectangle clip = e.getUpdateRect(); if (clip instanceof ClipRegion) { - g.setClip(((ClipRegion) clip).getClip()); + g.setClip(((ClipRegion)clip).getClip()); } else { g.setClip(clip); } @@ -5413,11 +4999,11 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Enables the events with the specified event mask to be delivered to - * this component. + * Enables the events with the specified event mask to be delivered to this + * component. * - * @param eventsToEnable the events mask which specifies the types - * of events to enable. + * @param eventsToEnable + * the events mask which specifies the types of events to enable. */ protected final void enableEvents(long eventsToEnable) { toolkit.lockAWT(); @@ -5432,17 +5018,19 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Enable awt events. * - * @param eventsToEnable the events to enable + * @param eventsToEnable + * the events to enable. */ private void enableAWTEvents(long eventsToEnable) { enabledAWTEvents |= eventsToEnable; } /** - * Disables the events with types specified by the specified event mask - * from being delivered to this component. + * Disables the events with types specified by the specified event mask from + * being delivered to this component. * - * @param eventsToDisable the event mask specifying the event types. + * @param eventsToDisable + * the event mask specifying the event types. */ protected final void disableEvents(long eventsToDisable) { toolkit.lockAWT(); @@ -5459,9 +5047,9 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks if is mouse event enabled. * - * @param eventMask the event mask - * - * @return true, if is mouse event enabled + * @param eventMask + * the event mask. + * @return true, if is mouse event enabled. */ boolean isMouseEventEnabled(long eventMask) { return (isEventEnabled(eventMask) || (enabledAWTEvents & eventMask) != 0); @@ -5470,18 +5058,19 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Checks if is event enabled. * - * @param eventMask the event mask - * - * @return true, if is event enabled + * @param eventMask + * the event mask. + * @return true, if is event enabled. */ boolean isEventEnabled(long eventMask) { return ((enabledEvents & eventMask) != 0); } /** - * Enables or disables input method support for this component. + * Enables or disables input method support for this component. * - * @param enable true to enable input method support, false to disable it. + * @param enable + * true to enable input method support, false to disable it. */ public void enableInputMethods(boolean enable) { toolkit.lockAWT(); @@ -5496,11 +5085,10 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Gets an array of all component's listeners registered for this - * component. + * Gets an array of all component's listeners registered for this component. * * @return an array of all component's listeners registered for this - * component. + * component. */ public ComponentListener[] getComponentListeners() { return componentListeners.getUserListeners(new ComponentListener[0]); @@ -5510,7 +5098,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * Adds the specified component listener to the Component for receiving * component's event. * - * @param l the ComponentListener. + * @param l + * the ComponentListener. */ public void addComponentListener(ComponentListener l) { componentListeners.addUserListener(l); @@ -5519,17 +5108,19 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Removes the component listener registered for this Component. * - * @param l the ComponentListener. + * @param l + * the ComponentListener. */ public void removeComponentListener(ComponentListener l) { componentListeners.removeUserListener(l); } /** - * Processes a component event that has occurred on this component - * by dispatching them to any registered ComponentListener objects. + * Processes a component event that has occurred on this component by + * dispatching them to any registered ComponentListener objects. * - * @param e the ComponentEvent. + * @param e + * the ComponentEvent. */ protected void processComponentEvent(ComponentEvent e) { processComponentEventImpl(e, componentListeners.getUserListeners()); @@ -5538,8 +5129,10 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Process component event impl. * - * @param e the e - * @param c the c + * @param e + * the e. + * @param c + * the c. */ private void processComponentEventImpl(ComponentEvent e, Collection<ComponentListener> c) { for (ComponentListener listener : c) { @@ -5570,10 +5163,11 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Adds the specified focus listener to the Component for receiving - * focus events. + * Adds the specified focus listener to the Component for receiving focus + * events. * - * @param l the FocusListener. + * @param l + * the FocusListener. */ public void addFocusListener(FocusListener l) { focusListeners.addUserListener(l); @@ -5582,7 +5176,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Adds the awt focus listener. * - * @param l the l + * @param l + * the l. */ void addAWTFocusListener(FocusListener l) { enableAWTEvents(AWTEvent.FOCUS_EVENT_MASK); @@ -5592,17 +5187,19 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Removes the focus listener registered for this Component. * - * @param l the FocusListener. + * @param l + * the FocusListener. */ public void removeFocusListener(FocusListener l) { focusListeners.removeUserListener(l); } /** - * Processes a FocusEvent that has occurred on this component - * by dispatching it to the registered listeners. - * - * @param e the FocusEvent. + * Processes a FocusEvent that has occurred on this component by dispatching + * it to the registered listeners. + * + * @param e + * the FocusEvent. */ protected void processFocusEvent(FocusEvent e) { processFocusEventImpl(e, focusListeners.getUserListeners()); @@ -5611,8 +5208,10 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Process focus event impl. * - * @param e the e - * @param c the c + * @param e + * the e. + * @param c + * the c. */ private void processFocusEventImpl(FocusEvent e, Collection<FocusListener> c) { for (FocusListener listener : c) { @@ -5628,11 +5227,9 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Gets an array of registered HierarchyListeners for - * this Component. + * Gets an array of registered HierarchyListeners for this Component. * - * @return an array of registered HierarchyListeners for - * this Component. + * @return an array of registered HierarchyListeners for this Component. */ public HierarchyListener[] getHierarchyListeners() { return hierarchyListeners.getUserListeners(new HierarchyListener[0]); @@ -5641,7 +5238,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Adds the specified hierarchy listener. * - * @param l the HierarchyListener. + * @param l + * the HierarchyListener. */ public void addHierarchyListener(HierarchyListener l) { hierarchyListeners.addUserListener(l); @@ -5650,17 +5248,19 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Removes the hierarchy listener registered for this component. * - * @param l the HierarchyListener. + * @param l + * the HierarchyListener. */ public void removeHierarchyListener(HierarchyListener l) { hierarchyListeners.removeUserListener(l); } /** - * Processes a hierarchy event that has occurred on this component - * by dispatching it to the registered listeners. + * Processes a hierarchy event that has occurred on this component by + * dispatching it to the registered listeners. * - * @param e the HierarchyEvent. + * @param e + * the HierarchyEvent. */ protected void processHierarchyEvent(HierarchyEvent e) { for (HierarchyListener listener : hierarchyListeners.getUserListeners()) { @@ -5673,8 +5273,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Gets an array of HierarchyBoundsListener objects registered - * to this Component. + * Gets an array of HierarchyBoundsListener objects registered to this + * Component. * * @return an array of HierarchyBoundsListener objects. */ @@ -5685,7 +5285,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Adds the specified hierarchy bounds listener. * - * @param l the HierarchyBoundsListener. + * @param l + * the HierarchyBoundsListener. */ public void addHierarchyBoundsListener(HierarchyBoundsListener l) { hierarchyBoundsListeners.addUserListener(l); @@ -5694,17 +5295,19 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Removes the hierarchy bounds listener registered for this Component. * - * @param l the HierarchyBoundsListener. + * @param l + * the HierarchyBoundsListener. */ public void removeHierarchyBoundsListener(HierarchyBoundsListener l) { hierarchyBoundsListeners.removeUserListener(l); } /** - * Processes a hierarchy bounds event that has occurred on this component - * by dispatching it to the registered listeners. - * - * @param e the HierarchyBoundsEvent. + * Processes a hierarchy bounds event that has occurred on this component by + * dispatching it to the registered listeners. + * + * @param e + * the HierarchyBoundsEvent. */ protected void processHierarchyBoundsEvent(HierarchyEvent e) { for (HierarchyBoundsListener listener : hierarchyBoundsListeners.getUserListeners()) { @@ -5731,7 +5334,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Adds the specified key listener. * - * @param l the KeyListener. + * @param l + * the KeyListener. */ public void addKeyListener(KeyListener l) { keyListeners.addUserListener(l); @@ -5740,7 +5344,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Adds the awt key listener. * - * @param l the l + * @param l + * the l. */ void addAWTKeyListener(KeyListener l) { enableAWTEvents(AWTEvent.KEY_EVENT_MASK); @@ -5750,17 +5355,19 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Removes the key listener registered for this Component. * - * @param l the KeyListener. + * @param l + * the KeyListener. */ public void removeKeyListener(KeyListener l) { keyListeners.removeUserListener(l); } /** - * Processes a key event that has occurred on this component - * by dispatching it to the registered listeners. + * Processes a key event that has occurred on this component by dispatching + * it to the registered listeners. * - * @param e the KeyEvent. + * @param e + * the KeyEvent. */ protected void processKeyEvent(KeyEvent e) { processKeyEventImpl(e, keyListeners.getUserListeners()); @@ -5769,8 +5376,10 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Process key event impl. * - * @param e the e - * @param c the c + * @param e + * the e. + * @param c + * the c. */ private void processKeyEventImpl(KeyEvent e, Collection<KeyListener> c) { for (KeyListener listener : c) { @@ -5800,7 +5409,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Adds the specified mouse listener. * - * @param l the MouseListener. + * @param l + * the MouseListener. */ public void addMouseListener(MouseListener l) { mouseListeners.addUserListener(l); @@ -5809,7 +5419,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Adds the awt mouse listener. * - * @param l the l + * @param l + * the l. */ void addAWTMouseListener(MouseListener l) { enableAWTEvents(AWTEvent.MOUSE_EVENT_MASK); @@ -5819,7 +5430,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Adds the awt mouse motion listener. * - * @param l the l + * @param l + * the l. */ void addAWTMouseMotionListener(MouseMotionListener l) { enableAWTEvents(AWTEvent.MOUSE_MOTION_EVENT_MASK); @@ -5829,7 +5441,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Adds the awt component listener. * - * @param l the l + * @param l + * the l. */ void addAWTComponentListener(ComponentListener l) { enableAWTEvents(AWTEvent.COMPONENT_EVENT_MASK); @@ -5839,7 +5452,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Adds the awt input method listener. * - * @param l the l + * @param l + * the l. */ void addAWTInputMethodListener(InputMethodListener l) { enableAWTEvents(AWTEvent.INPUT_METHOD_EVENT_MASK); @@ -5849,7 +5463,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Adds the awt mouse wheel listener. * - * @param l the l + * @param l + * the l. */ void addAWTMouseWheelListener(MouseWheelListener l) { enableAWTEvents(AWTEvent.MOUSE_WHEEL_EVENT_MASK); @@ -5859,17 +5474,19 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Removes the mouse listener registered for this Component. * - * @param l the MouseListener. + * @param l + * the MouseListener. */ public void removeMouseListener(MouseListener l) { mouseListeners.removeUserListener(l); } /** - * Processes a mouse event that has occurred on this component - * by dispatching it to the registered listeners. + * Processes a mouse event that has occurred on this component by + * dispatching it to the registered listeners. * - * @param e the MouseEvent. + * @param e + * the MouseEvent. */ protected void processMouseEvent(MouseEvent e) { processMouseEventImpl(e, mouseListeners.getUserListeners()); @@ -5878,8 +5495,10 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Process mouse event impl. * - * @param e the e - * @param c the c + * @param e + * the e. + * @param c + * the c. */ private void processMouseEventImpl(MouseEvent e, Collection<MouseListener> c) { for (MouseListener listener : c) { @@ -5906,8 +5525,10 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Process mouse motion event impl. * - * @param e the e - * @param c the c + * @param e + * the e. + * @param c + * the c. */ private void processMouseMotionEventImpl(MouseEvent e, Collection<MouseMotionListener> c) { for (MouseMotionListener listener : c) { @@ -5923,11 +5544,9 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } /** - * Gets an array of the mouse motion listeners registered to - * the Component. + * Gets an array of the mouse motion listeners registered to the Component. * - * @return an array of the MouseMotionListeners registered to - * the Component. + * @return an array of the MouseMotionListeners registered to the Component. */ public MouseMotionListener[] getMouseMotionListeners() { return mouseMotionListeners.getUserListeners(new MouseMotionListener[0]); @@ -5936,7 +5555,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Adds the specified mouse motion listener. * - * @param l the MouseMotionListener. + * @param l + * the MouseMotionListener. */ public void addMouseMotionListener(MouseMotionListener l) { mouseMotionListeners.addUserListener(l); @@ -5945,28 +5565,28 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Removes the mouse motion listener registered for this component. * - * @param l the MouseMotionListener. + * @param l + * the MouseMotionListener. */ public void removeMouseMotionListener(MouseMotionListener l) { mouseMotionListeners.removeUserListener(l); } /** - * Processes a mouse motion event that has occurred on this component - * by dispatching it to the registered listeners. + * Processes a mouse motion event that has occurred on this component by + * dispatching it to the registered listeners. * - * @param e the MouseEvent. + * @param e + * the MouseEvent. */ protected void processMouseMotionEvent(MouseEvent e) { processMouseMotionEventImpl(e, mouseMotionListeners.getUserListeners()); } /** - * Gets an array of the mouse wheel listeners registered to - * the Component. + * Gets an array of the mouse wheel listeners registered to the Component. * - * @return an array of the MouseWheelListeners registered to - * the Component. + * @return an array of the MouseWheelListeners registered to the Component. */ public MouseWheelListener[] getMouseWheelListeners() { return mouseWheelListeners.getUserListeners(new MouseWheelListener[0]); @@ -5975,7 +5595,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Adds the specified mouse wheel listener. * - * @param l the MouseWheelListener. + * @param l + * the MouseWheelListener. */ public void addMouseWheelListener(MouseWheelListener l) { mouseWheelListeners.addUserListener(l); @@ -5984,28 +5605,30 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Removes the mouse wheel listener registered for this component. * - * @param l the MouseWheelListener. + * @param l + * the MouseWheelListener. */ public void removeMouseWheelListener(MouseWheelListener l) { mouseWheelListeners.removeUserListener(l); } /** - * Processes a mouse wheel event that has occurred on this component - * by dispatching it to the registered listeners. + * Processes a mouse wheel event that has occurred on this component by + * dispatching it to the registered listeners. * - * @param e the MouseWheelEvent. + * @param e + * the MouseWheelEvent. */ protected void processMouseWheelEvent(MouseWheelEvent e) { processMouseWheelEventImpl(e, mouseWheelListeners.getUserListeners()); } /** - * Gets an array of the InputMethodListener listeners - * registered to the Component. + * Gets an array of the InputMethodListener listeners registered to the + * Component. * - * @return an array of the InputMethodListener listeners - * registered to the Component. + * @return an array of the InputMethodListener listeners registered to the + * Component. */ public InputMethodListener[] getInputMethodListeners() { return inputMethodListeners.getUserListeners(new InputMethodListener[0]); @@ -6014,7 +5637,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Adds the specified input method listener. * - * @param l the InputMethodListener. + * @param l + * the InputMethodListener. */ public void addInputMethodListener(InputMethodListener l) { inputMethodListeners.addUserListener(l); @@ -6023,17 +5647,19 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Removes the input method listener registered for this component. * - * @param l the InputMethodListener. + * @param l + * the InputMethodListener. */ public void removeInputMethodListener(InputMethodListener l) { inputMethodListeners.removeUserListener(l); } /** - * Processes an input method event that has occurred on this component - * by dispatching it to the registered listeners. + * Processes an input method event that has occurred on this component by + * dispatching it to the registered listeners. * - * @param e the InputMethodEvent. + * @param e + * the InputMethodEvent. */ protected void processInputMethodEvent(InputMethodEvent e) { processInputMethodEventImpl(e, inputMethodListeners.getUserListeners()); @@ -6042,11 +5668,12 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Process input method event impl. * - * @param e the e - * @param c the c + * @param e + * the e. + * @param c + * the c. */ - private void processInputMethodEventImpl(InputMethodEvent e, - Collection<InputMethodListener> c) { + private void processInputMethodEventImpl(InputMethodEvent e, Collection<InputMethodListener> c) { for (InputMethodListener listener : c) { switch (e.getID()) { case InputMethodEvent.CARET_POSITION_CHANGED: @@ -6059,31 +5686,28 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } } - //???AWT + // ???AWT /* - public Point getMousePosition() throws HeadlessException { - Point absPointerPos = MouseInfo.getPointerInfo().getLocation(); - Window winUnderPtr = toolkit.dispatcher.mouseDispatcher.findWindowAt(absPointerPos); - Point pointerPos = MouseDispatcher.convertPoint(null, absPointerPos, winUnderPtr); - boolean isUnderPointer = false; - if (winUnderPtr == null) { - return null; - } - isUnderPointer = winUnderPtr.isComponentAt(this, pointerPos); - if (isUnderPointer) { - return MouseDispatcher.convertPoint(null, absPointerPos, this); - } - return null; - } - */ + * public Point getMousePosition() throws HeadlessException { Point + * absPointerPos = MouseInfo.getPointerInfo().getLocation(); Window + * winUnderPtr = + * toolkit.dispatcher.mouseDispatcher.findWindowAt(absPointerPos); Point + * pointerPos = MouseDispatcher.convertPoint(null, absPointerPos, + * winUnderPtr); boolean isUnderPointer = false; if (winUnderPtr == null) { + * return null; } isUnderPointer = winUnderPtr.isComponentAt(this, + * pointerPos); if (isUnderPointer) { return + * MouseDispatcher.convertPoint(null, absPointerPos, this); } return null; } + */ /** * Set native caret at the given position <br> * Note: this method takes AWT lock inside because it walks through the * component hierarchy. * - * @param x the x - * @param y the y + * @param x + * the x. + * @param y + * the y. */ void setCaretPos(final int x, final int y) { Runnable r = new Runnable() { @@ -6106,35 +5730,34 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * This method should be called only at event dispatch thread. * - * @param x the x - * @param y the y + * @param x + * the x. + * @param y + * the y. */ void setCaretPosImpl(int x, int y) { Component c = this; while ((c != null) && c.behaviour.isLightweight()) { x += c.x; y += c.y; - //???AWT: c = c.getParent(); + // ???AWT: c = c.getParent(); } if (c == null) { return; } - //???AWT + // ???AWT /* - if (c instanceof Window) { - Insets insets = c.getNativeInsets(); - x -= insets.left; - y -= insets.top; - } - toolkit.getWindowFactory().setCaretPosition(x, y); - */ + * if (c instanceof Window) { Insets insets = c.getNativeInsets(); x -= + * insets.left; y -= insets.top; } + * toolkit.getWindowFactory().setCaretPosition(x, y); + */ } // to be overridden in standard components such as Button and List /** * Gets the default minimum size. * - * @return the default minimum size + * @return the default minimum size. */ Dimension getDefaultMinimumSize() { return null; @@ -6144,7 +5767,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Gets the default preferred size. * - * @return the default preferred size + * @return the default preferred size. */ Dimension getDefaultPreferredSize() { return null; @@ -6157,30 +5780,28 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali void resetDefaultSize() { } - //???AWT + // ???AWT /* - ComponentBehavior createBehavior() { - return new LWBehavior(this); - } - */ + * ComponentBehavior createBehavior() { return new LWBehavior(this); } + */ /** * Gets the default background. * - * @return the default background + * @return the default background. */ Color getDefaultBackground() { - //???AWT: return getWindowAncestor().getDefaultBackground(); + // ???AWT: return getWindowAncestor().getDefaultBackground(); return getBackground(); } /** * Gets the default foreground. * - * @return the default foreground + * @return the default foreground. */ Color getDefaultForeground() { - //???AWT return getWindowAncestor().getDefaultForeground(); + // ???AWT return getWindowAncestor().getDefaultForeground(); return getForeground(); } @@ -6188,7 +5809,8 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * Called when native resource for this component is created (for * heavyweights only). * - * @param win the win + * @param win + * the win. */ void nativeWindowCreated(NativeWindow win) { // to be overridden @@ -6198,48 +5820,37 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * Determine the component's area hidden behind the windows that have higher * Z-order, including windows of other applications. * - * @param image the image - * @param destLocation the dest location - * @param destSize the dest size - * @param source the source - * - * @return the calculated region, or null if it cannot be determined - */ - //???AWT + * @param image + * the image. + * @param destLocation + * the dest location. + * @param destSize + * the dest size. + * @param source + * the source. + * @return the calculated region, or null if it cannot be determined. + */ + // ???AWT /* - MultiRectArea getObscuredRegion(Rectangle part) { - if (!visible || parent == null || !parent.visible) { - return null; - } - Rectangle r = new Rectangle(0, 0, w, h); - if (part != null) { - r = r.intersection(part); - } - if (r.isEmpty()) { - return null; - } - r.translate(x, y); - MultiRectArea ret = parent.getObscuredRegion(r); - if (ret != null) { - parent.addObscuredRegions(ret, this); - ret.translate(-x, -y); - ret.intersect(new Rectangle(0, 0, w, h)); - } - return ret; - } - */ + * MultiRectArea getObscuredRegion(Rectangle part) { if (!visible || parent + * == null || !parent.visible) { return null; } Rectangle r = new + * Rectangle(0, 0, w, h); if (part != null) { r = r.intersection(part); } if + * (r.isEmpty()) { return null; } r.translate(x, y); MultiRectArea ret = + * parent.getObscuredRegion(r); if (ret != null) { + * parent.addObscuredRegions(ret, this); ret.translate(-x, -y); + * ret.intersect(new Rectangle(0, 0, w, h)); } return ret; } + */ - //???AWT + // ???AWT /* - private void readObject(ObjectInputStream stream) throws IOException, - ClassNotFoundException { - stream.defaultReadObject(); - FieldsAccessor accessor = new FieldsAccessor(Component.class, this); - accessor.set("toolkit", Toolkit.getDefaultToolkit()); //$NON-NLS-1$ - accessor.set("behaviour", createBehavior()); //$NON-NLS-1$ - accessor.set("componentLock", new Object()); // $NON-LOCK-1$ //$NON-NLS-1$ - } - */ + * private void readObject(ObjectInputStream stream) throws IOException, + * ClassNotFoundException { stream.defaultReadObject(); FieldsAccessor + * accessor = new FieldsAccessor(Component.class, this); + * accessor.set("toolkit", Toolkit.getDefaultToolkit()); //$NON-NLS-1$ + * accessor.set("behaviour", createBehavior()); //$NON-NLS-1$ + * accessor.set("componentLock", new Object()); // $NON-LOCK-1$ + * //$NON-NLS-1$ } + */ final void onDrawImage(Image image, Point destLocation, Dimension destSize, Rectangle source) { ImageParameters imageParams; @@ -6272,33 +5883,37 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali } } - //???AWT + // ???AWT /* - private void invalidateRealParent() { - Container realParent = getRealParent(); - if ((realParent != null) && realParent.isValid()) { - realParent.invalidate(); - } - } - */ + * private void invalidateRealParent() { Container realParent = + * getRealParent(); if ((realParent != null) && realParent.isValid()) { + * realParent.invalidate(); } } + */ /** * The Class ImageParameters. */ private class ImageParameters { - - /** The drawing params. */ + + /** + * The drawing params. + */ private final LinkedList<DrawingParameters> drawingParams = new LinkedList<DrawingParameters>(); - /** The size. */ + /** + * The size. + */ Dimension size = new Dimension(Component.this.w, Component.this.h); /** * Adds the drawing. * - * @param destLocation the dest location - * @param destSize the dest size - * @param source the source + * @param destLocation + * the dest location. + * @param destSize + * the dest size. + * @param source + * the source. */ void addDrawing(Point destLocation, Dimension destSize, Rectangle source) { drawingParams.add(new DrawingParameters(destLocation, destSize, source)); @@ -6307,7 +5922,7 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * Drawing parameters iterator. * - * @return the iterator< drawing parameters> + * @return the iterator< drawing parameters>. */ Iterator<DrawingParameters> drawingParametersIterator() { return drawingParams.iterator(); @@ -6317,22 +5932,31 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali * The Class DrawingParameters. */ class DrawingParameters { - - /** The dest location. */ + + /** + * The dest location. + */ Point destLocation; - /** The dest size. */ + /** + * The dest size. + */ Dimension destSize; - /** The source. */ + /** + * The source. + */ Rectangle source; /** * Instantiates a new drawing parameters. * - * @param destLocation the dest location - * @param destSize the dest size - * @param source the source + * @param destLocation + * the dest location. + * @param destSize + * the dest size. + * @param source + * the source. */ DrawingParameters(Point destLocation, Dimension destSize, Rectangle source) { this.destLocation = new Point(destLocation); @@ -6353,44 +5977,32 @@ public abstract class Component implements ImageObserver, MenuContainer, Seriali /** * TextComponent support. * - * @param e the e - * - * @return true, if dispatch event to im + * @param e + * the e. + * @return true, if dispatch event to im. */ - //???AWT + // ???AWT /* - private TextKit textKit = null; - - TextKit getTextKit() { - return textKit; - } - - void setTextKit(TextKit kit) { - textKit = kit; - } - */ + * private TextKit textKit = null; TextKit getTextKit() { return textKit; } + * void setTextKit(TextKit kit) { textKit = kit; } + */ /** - * TextField support + * TextField support. */ - //???AWT + // ???AWT /* - private TextFieldKit textFieldKit = null; - - TextFieldKit getTextFieldKit() { - return textFieldKit; - } - - void setTextFieldKit(TextFieldKit kit) { - textFieldKit = kit; - } - */ + * private TextFieldKit textFieldKit = null; TextFieldKit getTextFieldKit() + * { return textFieldKit; } void setTextFieldKit(TextFieldKit kit) { + * textFieldKit = kit; } + */ /** - * Dispatches input & focus events to input method - * context. - * @param e event to pass to InputContext.dispatchEvent() - * @return true if event was consumed by IM, false otherwise + * Dispatches input & focus events to input method context. + * + * @param e + * event to pass to InputContext.dispatchEvent(). + * @return true if event was consumed by IM, false otherwise. */ private boolean dispatchEventToIM(AWTEvent e) { InputContext ic = getInputContext(); diff --git a/awt/java/awt/ComponentBehavior.java b/awt/java/awt/ComponentBehavior.java index 89c9999..f4e8ffb 100644 --- a/awt/java/awt/ComponentBehavior.java +++ b/awt/java/awt/ComponentBehavior.java @@ -24,7 +24,7 @@ import org.apache.harmony.awt.wtk.NativeWindow; /** * The interface of the helper object that encapsulates the difference - * between lightweight and heavyweight components. + * between lightweight and heavyweight components. */ interface ComponentBehavior { diff --git a/awt/java/awt/ComponentOrientation.java b/awt/java/awt/ComponentOrientation.java index ddb118d..5acc11a 100644 --- a/awt/java/awt/ComponentOrientation.java +++ b/awt/java/awt/ComponentOrientation.java @@ -18,44 +18,59 @@ * @author Michael Danilov, Dmitry A. Durnev * @version $Revision$ */ + package java.awt; import java.io.Serializable; import java.util.*; /** - * The ComponentOrientation class specifies the language-sensitive orientation - * of component's elements or text. It is used to reflect the differences in this - * ordering between different writting systems. The ComponentOrientation class - * indicates the orientation of the elements/text in the horizontal direction - * ("left to right" or "right to left") and in the vertical direction + * The ComponentOrientation class specifies the language-sensitive orientation + * of component's elements or text. It is used to reflect the differences in + * this ordering between different writing systems. The ComponentOrientation + * class indicates the orientation of the elements/text in the horizontal + * direction ("left to right" or "right to left") and in the vertical direction * ("top to bottom" or "bottom to top"). + * + * @since Android 1.0 */ public final class ComponentOrientation implements Serializable { - - /** The Constant serialVersionUID. */ + + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -4113291392143563828L; - /** + /** * The Constant LEFT_TO_RIGHT indicates that items run left to right. */ public static final ComponentOrientation LEFT_TO_RIGHT = new ComponentOrientation(true, true); - /** + /** * The Constant RIGHT_TO_LEFT indicates that items run right to left. */ public static final ComponentOrientation RIGHT_TO_LEFT = new ComponentOrientation(true, false); - /** The Constant UNKNOWN indicates that a component's orientation is not set. */ + /** + * The Constant UNKNOWN indicates that a component's orientation is not set. + */ public static final ComponentOrientation UNKNOWN = new ComponentOrientation(true, true); - /** The Constant rlLangs. */ - private static final Set<String> rlLangs = new HashSet<String>(); //RIGHT_TO_LEFT languages + /** + * The Constant rlLangs. + */ + private static final Set<String> rlLangs = new HashSet<String>(); // RIGHT_TO_LEFT - /** The horizontal. */ + // languages + + /** + * The horizontal. + */ private final boolean horizontal; - /** The left2right. */ + /** + * The left2right. + */ private final boolean left2right; static { @@ -68,10 +83,9 @@ public final class ComponentOrientation implements Serializable { /** * Gets the orientation for the given ResourceBundle's localization. * - * @param bdl the ResourceBundle. - * + * @param bdl + * the ResourceBundle. * @return the ComponentOrientation. - * * @deprecated Use getOrientation(java.util.Locale) method. */ @Deprecated @@ -79,12 +93,11 @@ public final class ComponentOrientation implements Serializable { Object obj = null; try { obj = bdl.getObject("Orientation"); //$NON-NLS-1$ - } - catch (MissingResourceException mre) { + } catch (MissingResourceException mre) { obj = null; } if (obj instanceof ComponentOrientation) { - return (ComponentOrientation) obj; + return (ComponentOrientation)obj; } Locale locale = bdl.getLocale(); if (locale == null) { @@ -96,8 +109,8 @@ public final class ComponentOrientation implements Serializable { /** * Gets the orientation for the specified locale. * - * @param locale the specified Locale. - * + * @param locale + * the specified Locale. * @return the ComponentOrientation. */ public static ComponentOrientation getOrientation(Locale locale) { @@ -108,8 +121,10 @@ public final class ComponentOrientation implements Serializable { /** * Instantiates a new component orientation. * - * @param hor whether the items should be arranged horizontally - * @param l2r whether this orientation specifies a left-to-right flow + * @param hor + * whether the items should be arranged horizontally. + * @param l2r + * whether this orientation specifies a left-to-right flow. */ private ComponentOrientation(boolean hor, boolean l2r) { horizontal = hor; @@ -117,11 +132,10 @@ public final class ComponentOrientation implements Serializable { } /** - * Returns true if the text of the of writing systems arranged - * horizontally. + * Returns true if the text of the of writing systems arranged horizontally. * - * @return true, if the text is written horizontally, false - * for a vertical arrangement. + * @return true, if the text is written horizontally, false for a vertical + * arrangement. */ public boolean isHorizontal() { return horizontal; @@ -130,8 +144,8 @@ public final class ComponentOrientation implements Serializable { /** * Returns true if the text is arranged from left to right. * - * @return true, for writing systems written from left to right; - * false for right-to-left. + * @return true, for writing systems written from left to right; false for + * right-to-left. */ public boolean isLeftToRight() { return left2right; diff --git a/awt/java/awt/Composite.java b/awt/java/awt/Composite.java index 8e5b90a..d1730fe 100644 --- a/awt/java/awt/Composite.java +++ b/awt/java/awt/Composite.java @@ -18,30 +18,34 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt; import java.awt.image.ColorModel; /** - * The Composite interface allows the methods to compose a draw primitive - * on the graphics area. The classes implementing this interface provides - * the rules and a method to create the context for a particular operation. + * The Composite interface allows the methods to compose a draw primitive on the + * graphics area. The classes implementing this interface provides the rules and + * a method to create the context for a particular operation. + * + * @since Android 1.0 */ public interface Composite { /** - * Creates a CompositeContext which defines the encapsulated and - * optimized environment for a compositing operation. Several contexts - * can exist for a single Composite object. - * - * @param srcColorModel the source's ColorModel. - * @param dstColorModel the destination's ColorModel. - * @param hints the RenderingHints. + * Creates a CompositeContext which defines the encapsulated and optimized + * environment for a compositing operation. Several contexts can exist for a + * single Composite object. * + * @param srcColorModel + * the source's ColorModel. + * @param dstColorModel + * the destination's ColorModel. + * @param hints + * the RenderingHints. * @return the CompositeContext object. */ - public CompositeContext createContext(ColorModel srcColorModel, - ColorModel dstColorModel, RenderingHints hints); + public CompositeContext createContext(ColorModel srcColorModel, ColorModel dstColorModel, + RenderingHints hints); } - diff --git a/awt/java/awt/CompositeContext.java b/awt/java/awt/CompositeContext.java index c676032..795640d 100644 --- a/awt/java/awt/CompositeContext.java +++ b/awt/java/awt/CompositeContext.java @@ -18,25 +18,31 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt; import java.awt.image.Raster; import java.awt.image.WritableRaster; /** - * The CompositeContext interface specifies the encapsulated and optimized - * environment for a compositing operation. + * The CompositeContext interface specifies the encapsulated and optimized + * environment for a compositing operation. + * + * @since Android 1.0 */ public interface CompositeContext { /** - * Composes the two source Raster objects and places the result in the - * destination WritableRaster. + * Composes the two source Raster objects and places the result in the + * destination WritableRaster. * - * @param src the source Raster. - * @param dstIn the destination Raster. - * @param dstOut the WritableRaster object where the result of - * composing operation is stored. + * @param src + * the source Raster. + * @param dstIn + * the destination Raster. + * @param dstOut + * the WritableRaster object where the result of composing + * operation is stored. */ public void compose(Raster src, Raster dstIn, WritableRaster dstOut); @@ -46,4 +52,3 @@ public interface CompositeContext { public void dispose(); } - diff --git a/awt/java/awt/Cursor.java b/awt/java/awt/Cursor.java index 625686c..0a0cc84 100644 --- a/awt/java/awt/Cursor.java +++ b/awt/java/awt/Cursor.java @@ -18,6 +18,7 @@ * @author Dmitry A. Durnev * @version $Revision$ */ + package java.awt; import java.io.File; @@ -35,61 +36,99 @@ import org.apache.harmony.awt.wtk.NativeCursor; /** * The Cursor class represents the bitmap of the mouse cursor. + * + * @since Android 1.0 */ public class Cursor implements Serializable { - - /** The Constant serialVersionUID. */ + + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = 8028237497568985504L; - - /** The Constant DEFAULT_CURSOR indicates the default cursor type. */ + + /** + * The Constant DEFAULT_CURSOR indicates the default cursor type. + */ public static final int DEFAULT_CURSOR = 0; - /** The Constant CROSSHAIR_CURSOR cursor type. */ + /** + * The Constant CROSSHAIR_CURSOR cursor type. + */ public static final int CROSSHAIR_CURSOR = 1; - /** The Constant TEXT_CURSOR cursor type. */ + /** + * The Constant TEXT_CURSOR cursor type. + */ public static final int TEXT_CURSOR = 2; - /** The Constant WAIT_CURSOR cursor type. */ + /** + * The Constant WAIT_CURSOR cursor type. + */ public static final int WAIT_CURSOR = 3; - /** The Constant SW_RESIZE_CURSOR cursor type. */ + /** + * The Constant SW_RESIZE_CURSOR cursor type. + */ public static final int SW_RESIZE_CURSOR = 4; - /** The Constant SE_RESIZE_CURSOR cursor type. */ + /** + * The Constant SE_RESIZE_CURSOR cursor type. + */ public static final int SE_RESIZE_CURSOR = 5; - /** The Constant NW_RESIZE_CURSOR cursor type. */ + /** + * The Constant NW_RESIZE_CURSOR cursor type. + */ public static final int NW_RESIZE_CURSOR = 6; - /** The Constant NE_RESIZE_CURSOR cursor type. */ + /** + * The Constant NE_RESIZE_CURSOR cursor type. + */ public static final int NE_RESIZE_CURSOR = 7; - /** The Constant N_RESIZE_CURSOR cursor type. */ + /** + * The Constant N_RESIZE_CURSOR cursor type. + */ public static final int N_RESIZE_CURSOR = 8; - /** The Constant S_RESIZE_CURSOR cursor type. */ + /** + * The Constant S_RESIZE_CURSOR cursor type. + */ public static final int S_RESIZE_CURSOR = 9; - /** The Constant W_RESIZE_CURSOR cursor type. */ + /** + * The Constant W_RESIZE_CURSOR cursor type. + */ public static final int W_RESIZE_CURSOR = 10; - /** The Constant E_RESIZE_CURSOR cursor type. */ + /** + * The Constant E_RESIZE_CURSOR cursor type. + */ public static final int E_RESIZE_CURSOR = 11; - /** The Constant HAND_CURSOR cursor type. */ + /** + * The Constant HAND_CURSOR cursor type. + */ public static final int HAND_CURSOR = 12; - /** The Constant MOVE_CURSOR cursor type. */ + /** + * The Constant MOVE_CURSOR cursor type. + */ public static final int MOVE_CURSOR = 13; - /** A mapping from names to system custom cursors. */ + /** + * A mapping from names to system custom cursors. + */ static Map<String, Cursor> systemCustomCursors; - - /** The cursor props. */ + + /** + * The cursor props. + */ static Properties cursorProps; - /** The Constant predefinedNames. */ + /** + * The Constant predefinedNames. + */ static final String[] predefinedNames = { "Default", "Crosshair", "Text", "Wait", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ "Southwest Resize", "Southeast Resize", //$NON-NLS-1$ //$NON-NLS-2$ @@ -99,41 +138,52 @@ public class Cursor implements Serializable { }; - /** The predefined set of cursors. */ + /** + * The predefined set of cursors. + */ protected static Cursor[] predefined = { - new Cursor(DEFAULT_CURSOR), null, null, null, - null, null, null, null, - null, null, null, null, - null, null + new Cursor(DEFAULT_CURSOR), null, null, null, null, null, null, null, null, null, null, + null, null, null }; - /** The Constant CUSTOM_CURSOR is associated with all custom cursor types. + /** + * The Constant CUSTOM_CURSOR is associated with all custom cursor types. * (Those which are not predefined) */ public static final int CUSTOM_CURSOR = -1; - /** The name of the cursor. */ + /** + * The name of the cursor. + */ protected String name; - /** The type of the cursor, chosen from the list of cursor type constants. */ + /** + * The type of the cursor, chosen from the list of cursor type constants. + */ private final int type; - - /** The native cursor. */ + + /** + * The native cursor. + */ private transient NativeCursor nativeCursor; - - /** The exact point on the cursor image that indicates which point - * the cursor is selecting (pointing to). The coordinates are given - * with respect the origin of the Image (its upper left corner). + + /** + * The exact point on the cursor image that indicates which point the cursor + * is selecting (pointing to). The coordinates are given with respect the + * origin of the Image (its upper left corner). */ private Point hotSpot; - - /** The image to draw on the screen representing the cursor. */ + + /** + * The image to draw on the screen representing the cursor. + */ private Image image; /** * Instantiates a new cursor with the specified name. * - * @param name the name of cursor. + * @param name + * the name of cursor. */ protected Cursor(String name) { this(name, null, new Point()); @@ -142,7 +192,8 @@ public class Cursor implements Serializable { /** * Instantiates a new cursor of the specified type. * - * @param type the type of cursor. + * @param type + * the type of cursor. */ public Cursor(int type) { checkType(type); @@ -155,9 +206,12 @@ public class Cursor implements Serializable { /** * Instantiates a new cursor. * - * @param name the name - * @param img the img - * @param hotSpot the hot spot + * @param name + * the name. + * @param img + * the img. + * @param hotSpot + * the hot spot. */ Cursor(String name, Image img, Point hotSpot) { this.name = name; @@ -167,10 +221,11 @@ public class Cursor implements Serializable { } /** - * Finalize method overrided finalize method from Object class. + * Finalize method overrides the finalize method from Object class. * - * @throws Throwable if the native cursor is not null and throws - * a throwable when destroyed. + * @throws Throwable + * if the native cursor is not null and throws a Throwable when + * destroyed. */ @Override protected void finalize() throws Throwable { @@ -201,7 +256,7 @@ public class Cursor implements Serializable { /** * Gets the cursor type. * - * @return the cursor type + * @return the cursor type. */ public int getType() { return type; @@ -210,8 +265,8 @@ public class Cursor implements Serializable { /** * Gets the predefined cursor with the specified type. * - * @param type the type of cursor. - * + * @param type + * the type of cursor. * @return the predefined cursor with the specified type. */ public static Cursor getPredefinedCursor(int type) { @@ -236,33 +291,33 @@ public class Cursor implements Serializable { /** * Gets the specified system custom cursor. * - * @param name the name of the desired system cursor. - * + * @param name + * the name of the desired system cursor. * @return the specific system cursor with the specified name. - * - * @throws AWTException if the desired cursor has malformed data - * such as an incorrectly defined hot spot. - * @throws HeadlessException if the isHeadless method of the GraphicsEnvironment - * returns true. + * @throws AWTException + * if the desired cursor has malformed data such as an + * incorrectly defined hot spot. + * @throws HeadlessException + * if the isHeadless method of the GraphicsEnvironment returns + * true. */ - public static Cursor getSystemCustomCursor(String name) - throws AWTException, HeadlessException { + public static Cursor getSystemCustomCursor(String name) throws AWTException, HeadlessException { Toolkit.checkHeadless(); return getSystemCustomCursorFromMap(name); } /** - * Gets the specified system custom cursor from the map of system custom cursors. + * Gets the specified system custom cursor from the map of system custom + * cursors. * - * @param name the name of the desired cursor. - * - * @return the desired system custom cursor from the - * map of system custom cursors. - * - * @throws AWTException the AWT exception + * @param name + * the name of the desired cursor. + * @return the desired system custom cursor from the map of system custom + * cursors. + * @throws AWTException + * the AWT exception. */ - private static Cursor getSystemCustomCursorFromMap (String name) - throws AWTException { + private static Cursor getSystemCustomCursorFromMap(String name) throws AWTException { loadCursorProps(); if (systemCustomCursors == null) { systemCustomCursors = new HashMap<String, Cursor>(); @@ -284,8 +339,7 @@ public class Cursor implements Serializable { int x, y; try { x = new Integer(hotSpotStr.substring(0, idx)).intValue(); - y = new Integer(hotSpotStr.substring(idx + 1, - hotSpotStr.length())).intValue(); + y = new Integer(hotSpotStr.substring(idx + 1, hotSpotStr.length())).intValue(); } catch (NumberFormatException nfe) { throw new AWTException(exMsg); } @@ -299,7 +353,8 @@ public class Cursor implements Serializable { /** * Load cursor props. * - * @throws AWTException the AWT exception + * @throws AWTException + * the AWT exception. */ private static void loadCursorProps() throws AWTException { if (cursorProps != null) { @@ -308,18 +363,18 @@ public class Cursor implements Serializable { String sep = File.separator; String cursorsDir = "lib" + sep + "images" + sep + "cursors"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ String cursorsAbsDir = System.getProperty("java.home") + sep + //$NON-NLS-1$ - cursorsDir; + cursorsDir; String cursorPropsFileName = "cursors.properties"; //$NON-NLS-1$ - String cursorPropsFullFileName = (cursorsAbsDir + sep + - cursorPropsFileName); + String cursorPropsFullFileName = (cursorsAbsDir + sep + cursorPropsFileName); cursorProps = new Properties(); try { - cursorProps.load(new FileInputStream(new File( - cursorPropsFullFileName))); + cursorProps.load(new FileInputStream(new File(cursorPropsFullFileName))); } catch (FileNotFoundException e) { // awt.142=Exception: class {0} {1} occurred while loading: {2} throw new AWTException(Messages.getString("awt.142",//$NON-NLS-1$ - new Object[]{e.getClass(), e.getMessage(), cursorPropsFullFileName})); + new Object[] { + e.getClass(), e.getMessage(), cursorPropsFullFileName + })); } catch (IOException e) { throw new AWTException(e.getMessage()); } @@ -329,7 +384,8 @@ public class Cursor implements Serializable { /** * Check type. * - * @param type the type + * @param type + * the type. */ static void checkType(int type) { // can't use predefined array here because it may not have been @@ -344,7 +400,7 @@ public class Cursor implements Serializable { /** * Gets the native cursor. * - * @return the native cursor + * @return the native cursor. */ NativeCursor getNativeCursor() { if (nativeCursor != null) { @@ -354,8 +410,7 @@ public class Cursor implements Serializable { if (type != CUSTOM_CURSOR) { nativeCursor = toolkit.createNativeCursor(type); } else { - nativeCursor = toolkit.createCustomNativeCursor(image, hotSpot, - name); + nativeCursor = toolkit.createCustomNativeCursor(image, hotSpot, name); } return nativeCursor; } @@ -363,10 +418,10 @@ public class Cursor implements Serializable { /** * Sets the native cursor. * - * @param nativeCursor the new native cursor + * @param nativeCursor + * the new native cursor. */ void setNativeCursor(NativeCursor nativeCursor) { this.nativeCursor = nativeCursor; } } - diff --git a/awt/java/awt/Dimension.java b/awt/java/awt/Dimension.java index 8137846..6777962 100644 --- a/awt/java/awt/Dimension.java +++ b/awt/java/awt/Dimension.java @@ -18,6 +18,7 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt; import java.awt.geom.Dimension2D; @@ -26,26 +27,36 @@ import java.io.Serializable; import org.apache.harmony.misc.HashCode; /** - * The Dimension represents the size (width and height) of a component. - * The width and height values can be negative, but in that case the - * behavior of some methods is unexpected. + * The Dimension represents the size (width and height) of a component. The + * width and height values can be negative, but in that case the behavior of + * some methods is unexpected. + * + * @since Android 1.0 */ public class Dimension extends Dimension2D implements Serializable { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = 4723952579491349524L; - /** The width dimension. */ + /** + * The width dimension. + */ public int width; - - /** The height dimension. */ + + /** + * The height dimension. + */ public int height; /** - * Instantiates a new Dimension with the same data as the specified Dimension. + * Instantiates a new Dimension with the same data as the specified + * Dimension. * - * @param d the Dimension to copy the data from when creating the - * new Dimension object. + * @param d + * the Dimension to copy the data from when creating the new + * Dimension object. */ public Dimension(Dimension d) { this(d.width, d.height); @@ -61,8 +72,10 @@ public class Dimension extends Dimension2D implements Serializable { /** * Instantiates a new Dimension with the specified width and height. * - * @param width the width of the new Dimension. - * @param height the height of the new Dimension. + * @param width + * the width of the new Dimension. + * @param height + * the height of the new Dimension. */ public Dimension(int width, int height) { setSize(width, height); @@ -84,10 +97,10 @@ public class Dimension extends Dimension2D implements Serializable { /** * Compares this Dimension object with the specified object. * - * @param obj the Object to be compared. - * - * @return true, if the specified Object is a Dimension with - * the same width and height data as this Dimension. + * @param obj + * the Object to be compared. + * @return true, if the specified Object is a Dimension with the same width + * and height data as this Dimension. */ @Override public boolean equals(Object obj) { @@ -108,16 +121,20 @@ public class Dimension extends Dimension2D implements Serializable { */ @Override public String toString() { - // The output format based on 1.5 release behaviour. It could be obtained in the following way + // The output format based on 1.5 release behaviour. It could be + // obtained in the following way // System.out.println(new Dimension().toString()) return getClass().getName() + "[width=" + width + ",height=" + height + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } /** - * Sets the size of this Dimension object with the specified width and height. + * Sets the size of this Dimension object with the specified width and + * height. * - * @param width the width of the Dimension. - * @param height the height of the Dimension. + * @param width + * the width of the Dimension. + * @param height + * the height of the Dimension. */ public void setSize(int width, int height) { this.width = width; @@ -125,22 +142,24 @@ public class Dimension extends Dimension2D implements Serializable { } /** - * Sets the size of this Dimension object by copying the - * data from the specified Dimension object. + * Sets the size of this Dimension object by copying the data from the + * specified Dimension object. * - * @param d the Dimension that gives the new size values. + * @param d + * the Dimension that gives the new size values. */ public void setSize(Dimension d) { setSize(d.width, d.height); } /** - * Sets the size of this Dimension object with the specified double width + * Sets the size of this Dimension object with the specified double width * and height. * - * @param width the width of the Dimension. - * @param height the height of the Dimension. - * + * @param width + * the width of the Dimension. + * @param height + * the height of the Dimension. * @see java.awt.geom.Dimension2D#setSize(double, double) */ @Override @@ -161,7 +180,6 @@ public class Dimension extends Dimension2D implements Serializable { * Gets the height of the Dimension. * * @return the height of the Dimension. - * * @see java.awt.geom.Dimension2D#getHeight() */ @Override @@ -173,7 +191,6 @@ public class Dimension extends Dimension2D implements Serializable { * Gets the width of the Dimension. * * @return the width of the Dimension. - * * @see java.awt.geom.Dimension2D#getWidth() */ @Override @@ -182,4 +199,3 @@ public class Dimension extends Dimension2D implements Serializable { } } - diff --git a/awt/java/awt/DisplayMode.java b/awt/java/awt/DisplayMode.java index 082c7b8..8021010 100644 --- a/awt/java/awt/DisplayMode.java +++ b/awt/java/awt/DisplayMode.java @@ -18,41 +18,60 @@ * @author Alexey A. Petrenko * @version $Revision$ */ + package java.awt; /** - * The DisplayMode class containes the bit depth, height, width and - * refresh rate of a GraphicsDevice. + * The DisplayMode class contains the bit depth, height, width and refresh rate + * of a GraphicsDevice. + * + * @since Android 1.0 */ public final class DisplayMode { - - /** The width. */ + + /** + * The width. + */ private final int width; - /** The height. */ + /** + * The height. + */ private final int height; - /** The bit depth. */ + /** + * The bit depth. + */ private final int bitDepth; - /** The refresh rate. */ + /** + * The refresh rate. + */ private final int refreshRate; - /** The Constant Value BIT_DEPTH_MULTI indicates the bit depth */ + /** + * The Constant Value BIT_DEPTH_MULTI indicates the bit depth + */ public static final int BIT_DEPTH_MULTI = -1; - /** The Constant REFRESH_RATE_UNKNOWN indicates the refresh rate. */ + /** + * The Constant REFRESH_RATE_UNKNOWN indicates the refresh rate. + */ public static final int REFRESH_RATE_UNKNOWN = 0; - /** - * Creates a new DisplayMode object with the specified parameters. - * - * @param width the width of the display. - * @param height the height of the display. - * @param bitDepth the bit depth of the display. - * @param refreshRate the refresh rate of the display. - */ + /** + * Creates a new DisplayMode object with the specified parameters. + * + * @param width + * the width of the display. + * @param height + * the height of the display. + * @param bitDepth + * the bit depth of the display. + * @param refreshRate + * the refresh rate of the display. + */ public DisplayMode(int width, int height, int bitDepth, int refreshRate) { this.width = width; @@ -61,15 +80,14 @@ public final class DisplayMode { this.refreshRate = refreshRate; } - - /** - * Compares if this DisplayMode is equal to the specified object or not. - * - * @param dm the Object to be compared. - * - * @return true, if the specified object is a DisplayMode with the same - * data values as this DisplayMode, false otherwise. - */ + /** + * Compares if this DisplayMode is equal to the specified object or not. + * + * @param dm + * the Object to be compared. + * @return true, if the specified object is a DisplayMode with the same data + * values as this DisplayMode, false otherwise. + */ @Override public boolean equals(Object dm) { @@ -80,13 +98,13 @@ public final class DisplayMode { } /** - * Compares if this DisplayMode is equal to the specified DisplayMode object - * or not. - * - * @param dm the DisplayMode to be compared. - * - * @return true, if all of the data values of this DisplayMode are equal - * to the values of the specified DisplayMode object, false otherwise. + * Compares if this DisplayMode is equal to the specified DisplayMode object + * or not. + * + * @param dm + * the DisplayMode to be compared. + * @return true, if all of the data values of this DisplayMode are equal to + * the values of the specified DisplayMode object, false otherwise. */ public boolean equals(DisplayMode dm) { if (dm == null) { @@ -108,8 +126,8 @@ public final class DisplayMode { } /** - * Gets the bit depth of the DisplayMode, returns BIT_DEPTH_MULTI value - * if multiple bit depths are supported in this display mode. + * Gets the bit depth of the DisplayMode, returns BIT_DEPTH_MULTI value if + * multiple bit depths are supported in this display mode. * * @return the bit depth of the DisplayMode. */ diff --git a/awt/java/awt/Event.java b/awt/java/awt/Event.java index f074258..226a61f 100644 --- a/awt/java/awt/Event.java +++ b/awt/java/awt/Event.java @@ -18,224 +18,293 @@ * @author Dmitry A. Durnev * @version $Revision$ */ + package java.awt; import java.io.Serializable; /** - * The Event Class is obsolete and has been replaced by AWTEvent class. + * The Event class is obsolete and has been replaced by AWTEvent class. * + * @since Android 1.0 */ public class Event implements Serializable { - - /** The Constant serialVersionUID. */ + + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = 5488922509400504703L; - - /** - * The Constant SHIFT_MASK indicates that the Shift key is down when - * the event occurred. + + /** + * The Constant SHIFT_MASK indicates that the Shift key is down when the + * event occurred. */ public static final int SHIFT_MASK = 1; - /** - * The Constant CTRL_MASK indicates that the Control key is down when - * the event occurred. + /** + * The Constant CTRL_MASK indicates that the Control key is down when the + * event occurred. */ public static final int CTRL_MASK = 2; - /** The Constant META_MASK indicates that the Meta key is down when t - * he event occurred (or the right mouse button). */ + /** + * The Constant META_MASK indicates that the Meta key is down when t he + * event occurred (or the right mouse button). + */ public static final int META_MASK = 4; - /** - * The Constant ALT_MASK indicates that the Alt key is down when - * the event occurred (or the middle mouse button). + /** + * The Constant ALT_MASK indicates that the Alt key is down when the event + * occurred (or the middle mouse button). */ public static final int ALT_MASK = 8; - /** The Constant HOME indicates Home key. */ + /** + * The Constant HOME indicates Home key. + */ public static final int HOME = 1000; - /** The Constant END indicates End key. */ + /** + * The Constant END indicates End key. + */ public static final int END = 1001; - /** The Constant PGUP indicates Page Up key. */ + /** + * The Constant PGUP indicates Page Up key. + */ public static final int PGUP = 1002; - /** The Constant PGDN indicates Page Down key. */ + /** + * The Constant PGDN indicates Page Down key. + */ public static final int PGDN = 1003; - /** The Constant UP indicates Up key. */ + /** + * The Constant UP indicates Up key. + */ public static final int UP = 1004; - /** The Constant DOWN indicates Down key. */ + /** + * The Constant DOWN indicates Down key. + */ public static final int DOWN = 1005; - /** The Constant LEFT indicates Left key. */ + /** + * The Constant LEFT indicates Left key. + */ public static final int LEFT = 1006; - /** The Constant RIGHT indicates Right key. */ + /** + * The Constant RIGHT indicates Right key. + */ public static final int RIGHT = 1007; - /** The Constant F1 indicates F1 key. */ + /** + * The Constant F1 indicates F1 key. + */ public static final int F1 = 1008; - /** The Constant F2 indicates F2 key. */ + /** + * The Constant F2 indicates F2 key. + */ public static final int F2 = 1009; - /** The Constant F3 indicates F3 key. */ + /** + * The Constant F3 indicates F3 key. + */ public static final int F3 = 1010; - /** The Constant F4 indicates F4 key. */ + /** + * The Constant F4 indicates F4 key. + */ public static final int F4 = 1011; - /** The Constant F5 indicates F5 key. */ + /** + * The Constant F5 indicates F5 key. + */ public static final int F5 = 1012; - /** The Constant F6 indicates F6 key. */ + /** + * The Constant F6 indicates F6 key. + */ public static final int F6 = 1013; - /** The Constant F7 indicates F7 key. */ + /** + * The Constant F7 indicates F7 key. + */ public static final int F7 = 1014; - /** The Constant F8 indicates F8 key. */ + /** + * The Constant F8 indicates F8 key. + */ public static final int F8 = 1015; - /** The Constant F9 indicates F9 key. */ + /** + * The Constant F9 indicates F9 key. + */ public static final int F9 = 1016; - /** The Constant F10 indicates F10 key. */ + /** + * The Constant F10 indicates F10 key. + */ public static final int F10 = 1017; - /** The Constant F11 indicates F11 key. */ + /** + * The Constant F11 indicates F11 key. + */ public static final int F11 = 1018; - /** The Constant F12 indicates F12 key. */ + /** + * The Constant F12 indicates F12 key. + */ public static final int F12 = 1019; - /** The Constant PRINT_SCREEN indicates Print Screen key. */ + /** + * The Constant PRINT_SCREEN indicates Print Screen key. + */ public static final int PRINT_SCREEN = 1020; - /** The Constant SCROLL_LOCK indicates Scroll Lock key. */ + /** + * The Constant SCROLL_LOCK indicates Scroll Lock key. + */ public static final int SCROLL_LOCK = 1021; - /** The Constant CAPS_LOCK indicates Caps Lock key. */ + /** + * The Constant CAPS_LOCK indicates Caps Lock key. + */ public static final int CAPS_LOCK = 1022; - /** The Constant NUM_LOCK indicates Num Lock key. */ + /** + * The Constant NUM_LOCK indicates Num Lock key. + */ public static final int NUM_LOCK = 1023; - /** The Constant PAUSE indicates Pause key. */ + /** + * The Constant PAUSE indicates Pause key. + */ public static final int PAUSE = 1024; - /** The Constant INSERT indicates Insert key. */ + /** + * The Constant INSERT indicates Insert key. + */ public static final int INSERT = 1025; - /** The Constant ENTER indicates Enter key. */ + /** + * The Constant ENTER indicates Enter key. + */ public static final int ENTER = 10; - /** The Constant BACK_SPACE indicates Back Space key. */ + /** + * The Constant BACK_SPACE indicates Back Space key. + */ public static final int BACK_SPACE = 8; - /** The Constant TAB indicates TAb key. */ + /** + * The Constant TAB indicates TAb key. + */ public static final int TAB = 9; - /** The Constant ESCAPE indicates Escape key. */ + /** + * The Constant ESCAPE indicates Escape key. + */ public static final int ESCAPE = 27; - /** The Constant DELETE indicates Delete key. */ + /** + * The Constant DELETE indicates Delete key. + */ public static final int DELETE = 127; - /** - * The Constant WINDOW_DESTROY indicates an event when the user has asked the - * window manager to kill the window. + /** + * The Constant WINDOW_DESTROY indicates an event when the user has asked + * the window manager to kill the window. */ public static final int WINDOW_DESTROY = 201; - /** + /** * The Constant WINDOW_EXPOSE indicates an event when the user has asked the * window manager to expose the window. */ public static final int WINDOW_EXPOSE = 202; - /** - * The Constant WINDOW_ICONIFY indicates an event when the user has asked the - * window manager to inconify the window. + /** + * The Constant WINDOW_ICONIFY indicates an event when the user has asked + * the window manager to iconify the window. */ public static final int WINDOW_ICONIFY = 203; - /** - * The Constant WINDOW_DEICONIFY indicates an event when the user has asked the - * window manager to deinconify the window. + /** + * The Constant WINDOW_DEICONIFY indicates an event when the user has asked + * the window manager to deiconify the window. */ public static final int WINDOW_DEICONIFY = 204; - /** + /** * The Constant WINDOW_MOVED indicates an event when the user has asked the - * window manager to move the window. + * window manager to move the window. */ public static final int WINDOW_MOVED = 205; - /** - * The Constant KEY_PRESS indicates an event when the user presses - * a normal key. + /** + * The Constant KEY_PRESS indicates an event when the user presses a normal + * key. */ public static final int KEY_PRESS = 401; - /** - * The Constant KEY_RELEASE indicates an event when the user releases - * a normal key. + /** + * The Constant KEY_RELEASE indicates an event when the user releases a + * normal key. */ public static final int KEY_RELEASE = 402; - /** - * The Constant KEY_ACTION indicates an event when the user pressed - * a non-ASCII action key. + /** + * The Constant KEY_ACTION indicates an event when the user pressed a + * non-ASCII action key. */ public static final int KEY_ACTION = 403; /** - * The Constant KEY_ACTION_RELEASE indicates an event when the user released - * a non-ASCII action key. + * The Constant KEY_ACTION_RELEASE indicates an event when the user released + * a non-ASCII action key. */ public static final int KEY_ACTION_RELEASE = 404; - /** - * The Constant MOUSE_DOWN indicates an event when the user has pressed - * the mouse button. + /** + * The Constant MOUSE_DOWN indicates an event when the user has pressed the + * mouse button. */ public static final int MOUSE_DOWN = 501; - /** - * The Constant MOUSE_UP indicates an event when the user has released - * the mouse button. + /** + * The Constant MOUSE_UP indicates an event when the user has released the + * mouse button. */ public static final int MOUSE_UP = 502; - /** - * The Constant MOUSE_MOVE indicates an event when the user has moved - * the mouse with no button pressed. + /** + * The Constant MOUSE_MOVE indicates an event when the user has moved the + * mouse with no button pressed. */ public static final int MOUSE_MOVE = 503; - /** - * The Constant MOUSE_ENTER indicates an event when the mouse - * has entered a component. + /** + * The Constant MOUSE_ENTER indicates an event when the mouse has entered a + * component. */ public static final int MOUSE_ENTER = 504; - /** - * The Constant MOUSE_EXIT indicates an event when the mouse - * has exited a component. + /** + * The Constant MOUSE_EXIT indicates an event when the mouse has exited a + * component. */ public static final int MOUSE_EXIT = 505; - /** The Constant MOUSE_DRAG indicates an event when the user - * has moved a mouse with the pressed button. + /** + * The Constant MOUSE_DRAG indicates an event when the user has moved a + * mouse with the pressed button. */ public static final int MOUSE_DRAG = 506; - /** + /** * The Constant SCROLL_LINE_UP indicates an event when the user has * activated line-up area of scrollbar. */ @@ -243,101 +312,136 @@ public class Event implements Serializable { /** * The Constant SCROLL_LINE_DOWN indicates an event when the user has - * activated line-down area of scrollbar. + * activated line-down area of scrollbar. */ public static final int SCROLL_LINE_DOWN = 602; /** * The Constant SCROLL_PAGE_UP indicates an event when the user has - * activated page up area of scrollbar. + * activated page up area of scrollbar. */ public static final int SCROLL_PAGE_UP = 603; /** * The Constant SCROLL_PAGE_DOWN indicates an event when the user has - * activated page down area of scrollbar. + * activated page down area of scrollbar. */ public static final int SCROLL_PAGE_DOWN = 604; /** - * The Constant SCROLL_ABSOLUTE indicates an event when the user - * has moved the bubble in a scroll bar. + * The Constant SCROLL_ABSOLUTE indicates an event when the user has moved + * the bubble in a scroll bar. */ public static final int SCROLL_ABSOLUTE = 605; - /** The Constant SCROLL_BEGIN indicates a scroll begin event. */ + /** + * The Constant SCROLL_BEGIN indicates a scroll begin event. + */ public static final int SCROLL_BEGIN = 606; - /** The Constant SCROLL_END indicates a scroll end event. */ + /** + * The Constant SCROLL_END indicates a scroll end event. + */ public static final int SCROLL_END = 607; - /** - * The Constant LIST_SELECT indicates that an item in a list - * has been selected. + /** + * The Constant LIST_SELECT indicates that an item in a list has been + * selected. */ public static final int LIST_SELECT = 701; - /** - * The Constant LIST_DESELECT indicates that an item in a list - * has been deselected. + /** + * The Constant LIST_DESELECT indicates that an item in a list has been + * unselected. */ public static final int LIST_DESELECT = 702; - /** - * The Constant ACTION_EVENT indicates that the user wants some - * action to occur. + /** + * The Constant ACTION_EVENT indicates that the user wants some action to + * occur. */ public static final int ACTION_EVENT = 1001; - /** The Constant LOAD_FILE indicates a file loading event. */ + /** + * The Constant LOAD_FILE indicates a file loading event. + */ public static final int LOAD_FILE = 1002; - /** The Constant SAVE_FILE indicates a file saving event. */ + /** + * The Constant SAVE_FILE indicates a file saving event. + */ public static final int SAVE_FILE = 1003; - /** The Constant GOT_FOCUS indicates that a component got the focus. */ + /** + * The Constant GOT_FOCUS indicates that a component got the focus. + */ public static final int GOT_FOCUS = 1004; - /** The Constant LOST_FOCUS indicates that the component lost the focus. */ + /** + * The Constant LOST_FOCUS indicates that the component lost the focus. + */ public static final int LOST_FOCUS = 1005; - /** The target is the component with which the event is associated. */ + /** + * The target is the component with which the event is associated. + */ public Object target; - /** The when is timestamp when event has occured. */ + /** + * The when is timestamp when event has occured. + */ public long when; - /** The id indicates the type of the event. */ + /** + * The id indicates the type of the event. + */ public int id; - /** The x coordinate of event. */ + /** + * The x coordinate of event. + */ public int x; - /** The y coordinate of event. */ + /** + * The y coordinate of event. + */ public int y; - /** The key code of key event. */ + /** + * The key code of key event. + */ public int key; - /** The state of the modifier keys (given by a bitmask). */ + /** + * The state of the modifier keys (given by a bitmask). + */ public int modifiers; - /** The click count indicates the number of consecutive clicks. */ + /** + * The click count indicates the number of consecutive clicks. + */ public int clickCount; - /** The argument of the event. */ + /** + * The argument of the event. + */ public Object arg; - /** The next event. */ + /** + * The next event. + */ public Event evt; /** - * Instantiates a new event with the specified target component, - * event type, and argument. + * Instantiates a new event with the specified target component, event type, + * and argument. * - * @param target the target component. - * @param id the event type. - * @param arg the argument. + * @param target + * the target component. + * @param id + * the event type. + * @param arg + * the argument. */ public Event(Object target, int id, Object arg) { this(target, 0l, id, 0, 0, 0, 0, arg); @@ -348,13 +452,20 @@ public class Event implements Serializable { * event type, x and y coordinates, keyboard key, state of the modifier * keys, and an argument set to null. * - * @param target the target component. - * @param when the time stamp. - * @param id the event type. - * @param x the x coordinate. - * @param y the y coordinate. - * @param key the key. - * @param modifiers the modifier keys state. + * @param target + * the target component. + * @param when + * the time stamp. + * @param id + * the event type. + * @param x + * the x coordinate. + * @param y + * the y coordinate. + * @param key + * the key. + * @param modifiers + * the modifier keys state. */ public Event(Object target, long when, int id, int x, int y, int key, int modifiers) { this(target, when, id, x, y, key, modifiers, null); @@ -365,14 +476,22 @@ public class Event implements Serializable { * event type, x and y coordinates, keyboard key, state of the modifier * keys, and an argument. * - * @param target the target component. - * @param when the time stamp. - * @param id the event type. - * @param x the x coordinate. - * @param y the y coordinate. - * @param key the key. - * @param modifiers the modifier keys state. - * @param arg the specified argument. + * @param target + * the target component. + * @param when + * the time stamp. + * @param id + * the event type. + * @param x + * the x coordinate. + * @param y + * the y coordinate. + * @param key + * the key. + * @param modifiers + * the modifier keys state. + * @param arg + * the specified argument. */ public Event(Object target, long when, int id, int x, int y, int key, int modifiers, Object arg) { this.target = target; @@ -392,11 +511,10 @@ public class Event implements Serializable { */ @Override public String toString() { - /* The format is based on 1.5 release behavior - * which can be revealed by the following code: - * - * Event e = new Event(new Button(), 0l, Event.KEY_PRESS, - * 0, 0, Event.TAB, Event.SHIFT_MASK, "arg"); + /* + * The format is based on 1.5 release behavior which can be revealed by + * the following code: Event e = new Event(new Button(), 0l, + * Event.KEY_PRESS, 0, 0, Event.TAB, Event.SHIFT_MASK, "arg"); * System.out.println(e); */ @@ -410,15 +528,15 @@ public class Event implements Serializable { */ protected String paramString() { return "id=" + id + ",x=" + x + ",y=" + y + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - (key != 0 ? ",key=" + key + getModifiersString() : "") + //$NON-NLS-1$ //$NON-NLS-2$ - ",target=" + target + //$NON-NLS-1$ - (arg != null ? ",arg=" + arg : ""); //$NON-NLS-1$ //$NON-NLS-2$ + (key != 0 ? ",key=" + key + getModifiersString() : "") + //$NON-NLS-1$ //$NON-NLS-2$ + ",target=" + target + //$NON-NLS-1$ + (arg != null ? ",arg=" + arg : ""); //$NON-NLS-1$ //$NON-NLS-2$ } /** * Gets a string representation of the modifiers. * - * @return a string representation of the modifiers + * @return a string representation of the modifiers. */ private String getModifiersString() { String strMod = ""; //$NON-NLS-1$ @@ -435,13 +553,13 @@ public class Event implements Serializable { } /** - * Translates x and y coordinates of his event to the x+dx and x+dy + * Translates x and y coordinates of his event to the x+dx and x+dy * coordinates. * - * @param dx the dx - the distance by which the event's x coordinate - * is increased - * @param dy the dy - the distance by which the event's y coordinate - * is increased + * @param dx + * the distance by which the event's x coordinate is increased. + * @param dy + * the distance by which the event's y coordinate is increased. */ public void translate(int dx, int dy) { x += dx; @@ -476,4 +594,3 @@ public class Event implements Serializable { } } - diff --git a/awt/java/awt/EventQueue.java b/awt/java/awt/EventQueue.java index 3997546..126a593 100644 --- a/awt/java/awt/EventQueue.java +++ b/awt/java/awt/EventQueue.java @@ -18,6 +18,7 @@ * @author Michael Danilov, Pavel Dolgov * @version $Revision$ */ + package java.awt; import java.awt.event.InvocationEvent; @@ -25,60 +26,69 @@ import java.lang.reflect.InvocationTargetException; import java.util.EmptyStackException; /** - * The EventQueue class manages events. It is a platform-independent class - * that queues events both from the underlying peer classes and from trusted + * The EventQueue class manages events. It is a platform-independent class that + * queues events both from the underlying peer classes and from trusted * application classes. + * + * @since Android 1.0 */ public class EventQueue { - - /** The core ref. */ - private final EventQueueCoreAtomicReference coreRef = - new EventQueueCoreAtomicReference(); - + + /** + * The core ref. + */ + private final EventQueueCoreAtomicReference coreRef = new EventQueueCoreAtomicReference(); + /** * The Class EventQueueCoreAtomicReference. */ private static final class EventQueueCoreAtomicReference { - - /** The core. */ + + /** + * The core. + */ private EventQueueCore core; - /*synchronized*/ /** + /* synchronized */ + /** * Gets the. * - * @return the event queue core + * @return the event queue core. */ - EventQueueCore get() { + EventQueueCore get() { return core; } - /*synchronized*/ /** + /* synchronized */ + /** * Sets the. * - * @param newCore the new core + * @param newCore + * the new core. */ - void set(EventQueueCore newCore) { + void set(EventQueueCore newCore) { core = newCore; } } /** - * Returns true if the calling thread is the current - * AWT EventQueue's dispatch thread. + * Returns true if the calling thread is the current AWT EventQueue's + * dispatch thread. * - * @return true, if the calling thread is the current - * AWT EventQueue's dispatch thread; false otherwise. + * @return true, if the calling thread is the current AWT EventQueue's + * dispatch thread; false otherwise. */ public static boolean isDispatchThread() { return Thread.currentThread() instanceof EventDispatchThread; } /** - * Posts an InvocationEvent which executes the run() method on a Runnable + * Posts an InvocationEvent which executes the run() method on a Runnable * when dispatched by the AWT event dispatcher thread. * - * @param runnable the Runnable whose run method should be executed - * synchronously on the EventQueue. + * @param runnable + * the Runnable whose run method should be executed synchronously + * on the EventQueue. */ public static void invokeLater(Runnable runnable) { Toolkit toolkit = Toolkit.getDefaultToolkit(); @@ -87,29 +97,28 @@ public class EventQueue { } /** - * Posts an InvocationEvent which executes the run() method on a Runnable - * when dispatched by the AWT event dispatcher thread and the - * notifyAll method is called on it immediately after run returns. - * - * @param runnable the Runnable whose run method should be executed - * synchronously on the EventQueue. + * Posts an InvocationEvent which executes the run() method on a Runnable + * when dispatched by the AWT event dispatcher thread and the notifyAll + * method is called on it immediately after run returns. * - * @throws InterruptedException if another thread has interrupted - * this thread. - * @throws InvocationTargetException if a throwable is thrown - * when running the runnable. + * @param runnable + * the Runnable whose run method should be executed synchronously + * on the EventQueue. + * @throws InterruptedException + * if another thread has interrupted this thread. + * @throws InvocationTargetException + * if an error occurred while running the runnable. */ - public static void invokeAndWait(Runnable runnable) - throws InterruptedException, InvocationTargetException { + public static void invokeAndWait(Runnable runnable) throws InterruptedException, + InvocationTargetException { if (isDispatchThread()) { throw new Error(); } final Toolkit toolkit = Toolkit.getDefaultToolkit(); - final Object notifier = new Object(); //$NON-LOCK-1$ - InvocationEvent event = new InvocationEvent( - toolkit, runnable, notifier, true); + final Object notifier = new Object(); // $NON-LOCK-1$ + InvocationEvent event = new InvocationEvent(toolkit, runnable, notifier, true); synchronized (notifier) { toolkit.getSystemEventQueueImpl().postEvent(event); @@ -126,7 +135,7 @@ public class EventQueue { /** * Gets the system event queue. * - * @return the system event queue + * @return the system event queue. */ private static EventQueue getSystemEventQueue() { Thread th = Thread.currentThread(); @@ -135,48 +144,45 @@ public class EventQueue { } return null; } - + /** - * Gets the most recent event's timestamp. - * This event was dispatched from the EventQueue associated with the - * calling thread. + * Gets the most recent event's timestamp. This event was dispatched from + * the EventQueue associated with the calling thread. * - * @return the timestamp of the last Event to be dispatched, - * or System.currentTimeMillis() if this method is invoked from - * a thread other than an event-dispatching thread. + * @return the timestamp of the last Event to be dispatched, or + * System.currentTimeMillis() if this method is invoked from a + * thread other than an event-dispatching thread. */ public static long getMostRecentEventTime() { EventQueue eq = getSystemEventQueue(); - return (eq != null) ? - eq.getMostRecentEventTimeImpl() : System.currentTimeMillis(); + return (eq != null) ? eq.getMostRecentEventTimeImpl() : System.currentTimeMillis(); } - + /** * Gets the most recent event time impl. * - * @return the most recent event time impl + * @return the most recent event time impl. */ private long getMostRecentEventTimeImpl() { return getCore().getMostRecentEventTime(); } /** - * Returns the the currently dispatched event by the EventQueue - * associated with the calling thread. + * Returns the the currently dispatched event by the EventQueue associated + * with the calling thread. * - * @return the currently dispatched event or null if this method - * is invoked from a thread other than an event-dispatching thread. + * @return the currently dispatched event or null if this method is invoked + * from a thread other than an event-dispatching thread. */ public static AWTEvent getCurrentEvent() { EventQueue eq = getSystemEventQueue(); - return (eq != null) ? - eq.getCurrentEventImpl() : null; + return (eq != null) ? eq.getCurrentEventImpl() : null; } /** * Gets the current event impl. * - * @return the current event impl + * @return the current event impl. */ private AWTEvent getCurrentEventImpl() { return getCore().getCurrentEvent(); @@ -192,7 +198,8 @@ public class EventQueue { /** * Instantiates a new event queue. * - * @param t the t + * @param t + * the t. */ EventQueue(Toolkit t) { setCore(new EventQueueCore(this, t)); @@ -201,7 +208,8 @@ public class EventQueue { /** * Posts a event to the EventQueue. * - * @param event AWTEvent. + * @param event + * AWTEvent. */ public void postEvent(AWTEvent event) { event.isPosted = true; @@ -209,29 +217,28 @@ public class EventQueue { } /** - * Returns an event from the EventQueue and removes it from this queue. - * - * @return the next AWTEvent. + * Returns an event from the EventQueue and removes it from this queue. * - * @throws InterruptedException is thrown if another thread - * interrupts this thread. + * @return the next AWTEvent. + * @throws InterruptedException + * is thrown if another thread interrupts this thread. */ public AWTEvent getNextEvent() throws InterruptedException { return getCore().getNextEvent(); } - + /** * Gets the next event no wait. * - * @return the next event no wait + * @return the next event no wait. */ AWTEvent getNextEventNoWait() { return getCore().getNextEventNoWait(); } /** - * Returns the first event of the EventQueue (without removing it - * from the queue). + * Returns the first event of the EventQueue (without removing it from the + * queue). * * @return the the first AWT event of the EventQueue. */ @@ -240,11 +247,11 @@ public class EventQueue { } /** - * Returns the first event of the EventQueue with the specified ID - * (without removing it from the queue). - * - * @param id the type ID of event. + * Returns the first event of the EventQueue with the specified ID (without + * removing it from the queue). * + * @param id + * the type ID of event. * @return the first event of the EventQueue with the specified ID. */ public AWTEvent peekEvent(int id) { @@ -252,21 +259,22 @@ public class EventQueue { } /** - * Replaces the existing EventQueue with the specified EventQueue. - * Any pending events are transferred to the new EventQueue. + * Replaces the existing EventQueue with the specified EventQueue. Any + * pending events are transferred to the new EventQueue. * - * @param newEventQueue the new event queue. + * @param newEventQueue + * the new event queue. */ public void push(EventQueue newEventQueue) { getCore().push(newEventQueue); } - + /** - * Stops dispatching events using this EventQueue. - * Any pending events are transferred to the previous EventQueue. + * Stops dispatching events using this EventQueue. Any pending events are + * transferred to the previous EventQueue. * - * @throws EmptyStackException is thrown if no previous push - * was made on this EventQueue. + * @throws EmptyStackException + * is thrown if no previous push was made on this EventQueue. */ protected void pop() throws EmptyStackException { getCore().pop(); @@ -275,7 +283,8 @@ public class EventQueue { /** * Dispatches the specified event. * - * @param event the AWTEvent. + * @param event + * the AWTEvent. */ protected void dispatchEvent(AWTEvent event) { getCore().dispatchEventImpl(event); @@ -284,7 +293,7 @@ public class EventQueue { /** * Checks if the queue is empty. * - * @return true, if is empty + * @return true, if is empty. */ boolean isEmpty() { return getCore().isEmpty(); @@ -293,16 +302,17 @@ public class EventQueue { /** * Gets the core. * - * @return the core + * @return the core. */ EventQueueCore getCore() { return coreRef.get(); } - + /** * Sets the core. * - * @param newCore the new core + * @param newCore + * the new core. */ void setCore(EventQueueCore newCore) { coreRef.set((newCore != null) ? newCore : new EventQueueCore(this)); diff --git a/awt/java/awt/Font.java b/awt/java/awt/Font.java index 139ae68..4ed9343 100644 --- a/awt/java/awt/Font.java +++ b/awt/java/awt/Font.java @@ -46,130 +46,165 @@ import org.apache.harmony.awt.gl.font.FontPeerImpl; import org.apache.harmony.awt.gl.font.FontMetricsImpl; import org.apache.harmony.awt.gl.font.LineMetricsImpl; import org.apache.harmony.awt.internal.nls.Messages; +import org.apache.harmony.luni.util.NotImplementedException; import org.apache.harmony.misc.HashCode; - /** - * The Font class represents fonts for rendering text. - * This class allow to map characters to glyphs. - * <p> - * A glyph is a shape used to render a character or a sequence of - * characters. For example one character of Latin writing system - * represented by one glyth, but in complex writing system such as - * South and South-East Asian there is more complicated correspondence - * between characters and glyphs. + * The Font class represents fonts for rendering text. This class allow to map + * characters to glyphs. + * <p> + * A glyph is a shape used to render a character or a sequence of characters. + * For example one character of Latin writing system represented by one glyph, + * but in complex writing system such as South and South-East Asian there is + * more complicated correspondence between characters and glyphs. * <p> - * The Font object is identified by two types of names. The logical font name - * is the name that is used to construct the font. The font name - * is the name of a particular font face (for example, Arial Bold). - * The family name is the font's family name that specifies - * the typographic design across several faces (for example, Arial). In - * all the Font is identified by three attributes: the family name, - * the style (such as bold or italic), and the size. + * The Font object is identified by two types of names. The logical font name is + * the name that is used to construct the font. The font name is the name of a + * particular font face (for example, Arial Bold). The family name is the font's + * family name that specifies the typographic design across several faces (for + * example, Arial). In all the Font is identified by three attributes: the + * family name, the style (such as bold or italic), and the size. + * + * @since Android 1.0 */ public class Font implements Serializable { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -4206021311591459213L; // Identity Transform attribute - /** The Constant IDENTITY_TRANSFORM. */ + /** + * The Constant IDENTITY_TRANSFORM. + */ private static final TransformAttribute IDENTITY_TRANSFORM = new TransformAttribute( new AffineTransform()); - /** The Constant PLAIN indicates font's plain style. */ + /** + * The Constant PLAIN indicates font's plain style. + */ public static final int PLAIN = 0; - /** The Constant BOLD indicates font's bold style. */ + /** + * The Constant BOLD indicates font's bold style. + */ public static final int BOLD = 1; - /** The Constant ITALIC indicates font's italic style. */ + /** + * The Constant ITALIC indicates font's italic style. + */ public static final int ITALIC = 2; - /** The Constant ROMAN_BASELINE indicated roman baseline. */ + /** + * The Constant ROMAN_BASELINE indicated roman baseline. + */ public static final int ROMAN_BASELINE = 0; - /** The Constant CENTER_BASELINE indicates center baseline. */ + /** + * The Constant CENTER_BASELINE indicates center baseline. + */ public static final int CENTER_BASELINE = 1; - /** The Constant HANGING_BASELINE indicates hanging baseline. */ + /** + * The Constant HANGING_BASELINE indicates hanging baseline. + */ public static final int HANGING_BASELINE = 2; - /** - * The Constant TRUETYPE_FONT indicates a font resource of - * type TRUETYPE. + /** + * The Constant TRUETYPE_FONT indicates a font resource of type TRUETYPE. */ public static final int TRUETYPE_FONT = 0; - /** - * The Constant TYPE1_FONT indicates a font resource of - * type TYPE1. + /** + * The Constant TYPE1_FONT indicates a font resource of type TYPE1. */ public static final int TYPE1_FONT = 1; - /** - * The Constant LAYOUT_LEFT_TO_RIGHT indicates that text is - * left to right. + /** + * The Constant LAYOUT_LEFT_TO_RIGHT indicates that text is left to right. */ public static final int LAYOUT_LEFT_TO_RIGHT = 0; - /** - * The Constant LAYOUT_RIGHT_TO_LEFT indicates that text is - * right to left. + /** + * The Constant LAYOUT_RIGHT_TO_LEFT indicates that text is right to left. */ public static final int LAYOUT_RIGHT_TO_LEFT = 1; - /** - * The Constant LAYOUT_NO_START_CONTEXT indicates that the text - * in the char array before the indicated start should not be examined. + /** + * The Constant LAYOUT_NO_START_CONTEXT indicates that the text in the char + * array before the indicated start should not be examined. */ public static final int LAYOUT_NO_START_CONTEXT = 2; - /** The Constant LAYOUT_NO_LIMIT_CONTEXT indicates that text in - * the char array after the indicated limit should not be examined. */ + /** + * The Constant LAYOUT_NO_LIMIT_CONTEXT indicates that text in the char + * array after the indicated limit should not be examined. + */ public static final int LAYOUT_NO_LIMIT_CONTEXT = 4; - /** The Constant DEFAULT_FONT. */ + /** + * The Constant DEFAULT_FONT. + */ static final Font DEFAULT_FONT = new Font("Dialog", Font.PLAIN, 12); //$NON-NLS-1$ - /** The name of the Font. */ + /** + * The name of the Font. + */ protected String name; - /** The style of the Font. */ + /** + * The style of the Font. + */ protected int style; - /** The size of the Font. */ + /** + * The size of the Font. + */ protected int size; - /** The point size of the Font. */ + /** + * The point size of the Font. + */ protected float pointSize; // Flag if the Font object transformed - /** The transformed. */ + /** + * The transformed. + */ private boolean transformed; // Set of font attributes - /** The requested attributes. */ + /** + * The requested attributes. + */ private Hashtable<Attribute, Object> fRequestedAttributes; // font peer object corresponding to this Font - /** The font peer. */ + /** + * The font peer. + */ private transient FontPeerImpl fontPeer; // number of glyphs in this Font - /** The num glyphs. */ + /** + * The num glyphs. + */ private transient int numGlyphs = -1; // code for missing glyph for this Font - /** The missing glyph code. */ + /** + * The missing glyph code. + */ private transient int missingGlyphCode = -1; /** * Writes object to ObjectOutputStream. * - * @param out ObjectOutputStream - * - * @throws IOException Signals that an I/O exception has occurred. + * @param out + * ObjectOutputStream. + * @throws IOException + * Signals that an I/O exception has occurred. */ private void writeObject(java.io.ObjectOutputStream out) throws IOException { out.defaultWriteObject(); @@ -179,10 +214,12 @@ public class Font implements Serializable { * Reads object from ObjectInputStream object and set native platform * dependent fields to default values. * - * @param in ObjectInputStream object - * - * @throws IOException Signals that an I/O exception has occurred. - * @throws ClassNotFoundException the class not found exception + * @param in + * ObjectInputStream object. + * @throws IOException + * Signals that an I/O exception has occurred. + * @throws ClassNotFoundException + * the class not found exception. */ private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { @@ -194,11 +231,11 @@ public class Font implements Serializable { } /** - * Instantiates a new Font with the specified attributes. - * The Font will be created with default attributes - * if the attribute's parameter is null. + * Instantiates a new Font with the specified attributes. The Font will be + * created with default attributes if the attribute's parameter is null. * - * @param attributes the attributes to be assigned to the new Font, or null. + * @param attributes + * the attributes to be assigned to the new Font, or null. */ public Font(Map<? extends Attribute, ?> attributes) { Object currAttr; @@ -217,43 +254,38 @@ public class Font implements Serializable { currAttr = attributes.get(TextAttribute.SIZE); if (currAttr != null) { - this.pointSize = ((Float) currAttr).floatValue(); - this.size = (int) Math.ceil(this.pointSize); + this.pointSize = ((Float)currAttr).floatValue(); + this.size = (int)Math.ceil(this.pointSize); } currAttr = attributes.get(TextAttribute.POSTURE); - if (currAttr != null - && currAttr.equals(TextAttribute.POSTURE_OBLIQUE)) { + if (currAttr != null && currAttr.equals(TextAttribute.POSTURE_OBLIQUE)) { this.style |= Font.ITALIC; } currAttr = attributes.get(TextAttribute.WEIGHT); if ((currAttr != null) - && (((Float) currAttr).floatValue() >= (TextAttribute.WEIGHT_BOLD) - .floatValue())) { + && (((Float)currAttr).floatValue() >= (TextAttribute.WEIGHT_BOLD).floatValue())) { this.style |= Font.BOLD; } currAttr = attributes.get(TextAttribute.FAMILY); if (currAttr != null) { - this.name = (String) currAttr; + this.name = (String)currAttr; } currAttr = attributes.get(TextAttribute.TRANSFORM); if (currAttr != null) { if (currAttr instanceof TransformAttribute) { - this.transformed = !((TransformAttribute) currAttr) - .getTransform().isIdentity(); + this.transformed = !((TransformAttribute)currAttr).getTransform().isIdentity(); } else if (currAttr instanceof AffineTransform) { - this.transformed = !((AffineTransform) currAttr) - .isIdentity(); + this.transformed = !((AffineTransform)currAttr).isIdentity(); } } } else { fRequestedAttributes = new Hashtable<Attribute, Object>(5); - fRequestedAttributes.put(TextAttribute.TRANSFORM, - IDENTITY_TRANSFORM); + fRequestedAttributes.put(TextAttribute.TRANSFORM, IDENTITY_TRANSFORM); this.transformed = false; @@ -262,18 +294,14 @@ public class Font implements Serializable { fRequestedAttributes.put(TextAttribute.SIZE, new Float(this.size)); if ((this.style & Font.BOLD) != 0) { - fRequestedAttributes.put(TextAttribute.WEIGHT, - TextAttribute.WEIGHT_BOLD); + fRequestedAttributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD); } else { - fRequestedAttributes.put(TextAttribute.WEIGHT, - TextAttribute.WEIGHT_REGULAR); + fRequestedAttributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_REGULAR); } if ((this.style & Font.ITALIC) != 0) { - fRequestedAttributes.put(TextAttribute.POSTURE, - TextAttribute.POSTURE_OBLIQUE); + fRequestedAttributes.put(TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE); } else { - fRequestedAttributes.put(TextAttribute.POSTURE, - TextAttribute.POSTURE_REGULAR); + fRequestedAttributes.put(TextAttribute.POSTURE, TextAttribute.POSTURE_REGULAR); } } @@ -282,9 +310,12 @@ public class Font implements Serializable { /** * Instantiates a new Font with the specified name, style and size. * - * @param name the name of font. - * @param style the style of font. - * @param size the size of font. + * @param name + * the name of font. + * @param style + * the style of font. + * @param size + * the size of font. */ public Font(String name, int style, int size) { @@ -303,46 +334,43 @@ public class Font implements Serializable { fRequestedAttributes.put(TextAttribute.SIZE, new Float(this.size)); if ((this.style & Font.BOLD) != 0) { - fRequestedAttributes.put(TextAttribute.WEIGHT, - TextAttribute.WEIGHT_BOLD); + fRequestedAttributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD); } else { - fRequestedAttributes.put(TextAttribute.WEIGHT, - TextAttribute.WEIGHT_REGULAR); + fRequestedAttributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_REGULAR); } if ((this.style & Font.ITALIC) != 0) { - fRequestedAttributes.put(TextAttribute.POSTURE, - TextAttribute.POSTURE_OBLIQUE); + fRequestedAttributes.put(TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE); } else { - fRequestedAttributes.put(TextAttribute.POSTURE, - TextAttribute.POSTURE_REGULAR); + fRequestedAttributes.put(TextAttribute.POSTURE, TextAttribute.POSTURE_REGULAR); } } /** * Returns true if this Font has a glyph for the specified character. * - * @param c the character. - * - * @return true if this Font has a glyph for the specified character, - * false otherwise. + * @param c + * the character. + * @return true if this Font has a glyph for the specified character, false + * otherwise. */ public boolean canDisplay(char c) { - FontPeerImpl peer = (FontPeerImpl) this.getPeer(); + FontPeerImpl peer = (FontPeerImpl)this.getPeer(); return peer.canDisplay(c); } /** - * Returns true if the Font can display the characters of the - * the specified text from the specified start position - * to the specified limit position. - * - * @param text the text. - * @param start the start offset (in the character array). - * @param limit the limit offset (in the character array). - * - * @return the a character's position in the text that this Font - * can not display, or -1 if this Font can display all characters - * in this text. + * Returns true if the Font can display the characters of the the specified + * text from the specified start position to the specified limit position. + * + * @param text + * the text. + * @param start + * the start offset (in the character array). + * @param limit + * the limit offset (in the character array). + * @return the a character's position in the text that this Font can not + * display, or -1 if this Font can display all characters in this + * text. */ public int canDisplayUpTo(char[] text, int start, int limit) { int st = start; @@ -361,17 +389,19 @@ public class Font implements Serializable { } /** - * Returns true if the Font can display the characters of the - * the specified CharacterIterator from the specified start position - * and the specified limit position. - * - * @param iter the CharacterIterator. - * @param start the start offset. - * @param limit the limit offset. - * - * @return the a character's position in the CharacterIterator - * that this Font can not display, or -1 if this Font can display - * all characters in this text. + * Returns true if the Font can display the characters of the the specified + * CharacterIterator from the specified start position and the specified + * limit position. + * + * @param iter + * the CharacterIterator. + * @param start + * the start offset. + * @param limit + * the limit offset. + * @return the a character's position in the CharacterIterator that this + * Font can not display, or -1 if this Font can display all + * characters in this text. */ public int canDisplayUpTo(CharacterIterator iter, int start, int limit) { int st = start; @@ -394,11 +424,11 @@ public class Font implements Serializable { /** * Returns true if this Font can display a specified String. * - * @param str the String. - * - * @return the a character's position in the String that - * this Font can not display, or -1 if this Font can display - * all characters in this text. + * @param str + * the String. + * @return the a character's position in the String that this Font can not + * display, or -1 if this Font can display all characters in this + * text. */ public int canDisplayUpTo(String str) { char[] chars = str.toCharArray(); @@ -406,45 +436,49 @@ public class Font implements Serializable { } /** - * Creates a GlyphVector of associating characters to glyphs - * based on the unicode map of this Font. - * - * @param frc the FontRenderContext. - * @param chars the characters array. + * Creates a GlyphVector of associating characters to glyphs based on the + * Unicode map of this Font. * - * @return the GlyphVector of associating characters to glyphs - * based on the unicode map of this Font. + * @param frc + * the FontRenderContext. + * @param chars + * the characters array. + * @return the GlyphVector of associating characters to glyphs based on the + * Unicode map of this Font. */ public GlyphVector createGlyphVector(FontRenderContext frc, char[] chars) { return new AndroidGlyphVector(chars, frc, this, 0); } /** - * Creates a GlyphVector of associating characters contained - * in the specified CharacterIterator to glyphs based on - * the unicode map of this Font. - * - * @param frc the FontRenderContext. - * @param iter the CharacterIterator. - * - * @return the GlyphVector of associating characters contained - * in the specified CharacterIterator to glyphs - * based on the unicode map of this Font. - */ - public GlyphVector createGlyphVector(FontRenderContext frc, - CharacterIterator iter) { - throw new RuntimeException("Not implemented!"); //$NON-NLS-1$ + * Creates a GlyphVector of associating characters contained in the + * specified CharacterIterator to glyphs based on the Unicode map of this + * Font. + * + * @param frc + * the FontRenderContext. + * @param iter + * the CharacterIterator. + * @return the GlyphVector of associating characters contained in the + * specified CharacterIterator to glyphs based on the Unicode map of + * this Font. + */ + public GlyphVector createGlyphVector(FontRenderContext frc, CharacterIterator iter) { + throw new RuntimeException("Not implemented!"); //$NON-NLS-1$ } /** - * Creates a GlyphVector of associating characters to glyphs based on - * the unicode map of this Font. - * - * @param frc the FontRenderContext. - * @param glyphCodes the specified integer array of glyph codes. - * - * @return the GlyphVector of associating characters to glyphs - * based on the unicode map of this Font. + * Creates a GlyphVector of associating characters to glyphs based on the + * Unicode map of this Font. + * + * @param frc + * the FontRenderContext. + * @param glyphCodes + * the specified integer array of glyph codes. + * @return the GlyphVector of associating characters to glyphs based on the + * Unicode map of this Font. + * @throws NotImplementedException + * if this method is not implemented by a subclass. */ public GlyphVector createGlyphVector(FontRenderContext frc, int[] glyphCodes) throws org.apache.harmony.luni.util.NotImplementedException { @@ -452,14 +486,15 @@ public class Font implements Serializable { } /** - * Creates a GlyphVector of associating characters to glyphs based on - * the unicode map of this Font. + * Creates a GlyphVector of associating characters to glyphs based on the + * Unicode map of this Font. * - * @param frc the FontRenderContext. - * @param str the specified String. - * - * @return the GlyphVector of associating characters to glyphs - * based on the unicode map of this Font. + * @param frc + * the FontRenderContext. + * @param str + * the specified String. + * @return the GlyphVector of associating characters to glyphs based on the + * Unicode map of this Font. */ public GlyphVector createGlyphVector(FontRenderContext frc, String str) { return new AndroidGlyphVector(str.toCharArray(), frc, this, 0); @@ -467,14 +502,14 @@ public class Font implements Serializable { } /** - * Returns the font style constant value corresponding to one of the font style - * names ("BOLD", "ITALIC", "BOLDITALIC"). This method returns Font.PLAIN if - * the argument is not one of the predefined style names. - * - * @param fontStyleName font style name + * Returns the font style constant value corresponding to one of the font + * style names ("BOLD", "ITALIC", "BOLDITALIC"). This method returns + * Font.PLAIN if the argument is not one of the predefined style names. * + * @param fontStyleName + * font style name. * @return font style constant value corresponding to the font style name - * specified. + * specified. */ private static int getFontStyle(String fontStyleName) { int result = Font.PLAIN; @@ -491,12 +526,12 @@ public class Font implements Serializable { } /** - * Decodes the specified string which described the Font. The string - * should have the following format: fontname-style-pointsize. - * The style can be PLAIN, BOLD, BOLDITALIC, or ITALIC. - * - * @param str the string which describes the font. + * Decodes the specified string which described the Font. The string should + * have the following format: fontname-style-pointsize. The style can be + * PLAIN, BOLD, BOLDITALIC, or ITALIC. * + * @param str + * the string which describes the font. * @return the Font from the specified string. */ public static Font decode(String str) { @@ -553,15 +588,14 @@ public class Font implements Serializable { } /** - * Perfoms the specified affine transform to the Font and returns - * a new Font. - * - * @param trans the AffineTransform. + * Performs the specified affine transform to the Font and returns a new + * Font. * + * @param trans + * the AffineTransform. * @return the Font object. - * - * @throws IllegalArgumentException if affine transform parameter - * is null. + * @throws IllegalArgumentException + * if affine transform parameter is null. */ @SuppressWarnings("unchecked") public Font deriveFont(AffineTransform trans) { @@ -571,55 +605,52 @@ public class Font implements Serializable { throw new IllegalArgumentException(Messages.getString("awt.94")); //$NON-NLS-1$ } - Hashtable<Attribute, Object> derivefRequestedAttributes = (Hashtable<Attribute, Object>) fRequestedAttributes + Hashtable<Attribute, Object> derivefRequestedAttributes = (Hashtable<Attribute, Object>)fRequestedAttributes .clone(); - derivefRequestedAttributes.put(TextAttribute.TRANSFORM, - new TransformAttribute(trans)); + derivefRequestedAttributes.put(TextAttribute.TRANSFORM, new TransformAttribute(trans)); return new Font(derivefRequestedAttributes); } /** - * Returns a new Font that is a copy of the current Font - * modified so that the size is the specified size. - * - * @param size the size of font. + * Returns a new Font that is a copy of the current Font modified so that + * the size is the specified size. * + * @param size + * the size of font. * @return the Font object. */ @SuppressWarnings("unchecked") public Font deriveFont(float size) { - Hashtable<Attribute, Object> derivefRequestedAttributes = (Hashtable<Attribute, Object>) fRequestedAttributes + Hashtable<Attribute, Object> derivefRequestedAttributes = (Hashtable<Attribute, Object>)fRequestedAttributes .clone(); derivefRequestedAttributes.put(TextAttribute.SIZE, new Float(size)); return new Font(derivefRequestedAttributes); } /** - * Returns a new Font that is a copy of the current Font - * modified so that the style is the specified style. - * - * @param style the style of font. + * Returns a new Font that is a copy of the current Font modified so that + * the style is the specified style. * + * @param style + * the style of font. * @return the Font object. */ @SuppressWarnings("unchecked") public Font deriveFont(int style) { - Hashtable<Attribute, Object> derivefRequestedAttributes = (Hashtable<Attribute, Object>) fRequestedAttributes + Hashtable<Attribute, Object> derivefRequestedAttributes = (Hashtable<Attribute, Object>)fRequestedAttributes .clone(); if ((style & Font.BOLD) != 0) { - derivefRequestedAttributes.put(TextAttribute.WEIGHT, - TextAttribute.WEIGHT_BOLD); + derivefRequestedAttributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD); } else if (derivefRequestedAttributes.get(TextAttribute.WEIGHT) != null) { derivefRequestedAttributes.remove(TextAttribute.WEIGHT); } if ((style & Font.ITALIC) != 0) { - derivefRequestedAttributes.put(TextAttribute.POSTURE, - TextAttribute.POSTURE_OBLIQUE); + derivefRequestedAttributes.put(TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE); } else if (derivefRequestedAttributes.get(TextAttribute.POSTURE) != null) { derivefRequestedAttributes.remove(TextAttribute.POSTURE); } @@ -628,13 +659,14 @@ public class Font implements Serializable { } /** - * Returns a new Font that is a copy of the current Font - * modified to match the specified style and with the specified - * affine transform applied to its glyphs. - * - * @param style the style of font. - * @param trans the AffineTransform. - * + * Returns a new Font that is a copy of the current Font modified to match + * the specified style and with the specified affine transform applied to + * its glyphs. + * + * @param style + * the style of font. + * @param trans + * the AffineTransform. * @return the Font object. */ @SuppressWarnings("unchecked") @@ -644,53 +676,48 @@ public class Font implements Serializable { // awt.94=transform can not be null throw new IllegalArgumentException(Messages.getString("awt.94")); //$NON-NLS-1$ } - Hashtable<Attribute, Object> derivefRequestedAttributes = (Hashtable<Attribute, Object>) fRequestedAttributes + Hashtable<Attribute, Object> derivefRequestedAttributes = (Hashtable<Attribute, Object>)fRequestedAttributes .clone(); if ((style & BOLD) != 0) { - derivefRequestedAttributes.put(TextAttribute.WEIGHT, - TextAttribute.WEIGHT_BOLD); + derivefRequestedAttributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD); } else if (derivefRequestedAttributes.get(TextAttribute.WEIGHT) != null) { derivefRequestedAttributes.remove(TextAttribute.WEIGHT); } if ((style & ITALIC) != 0) { - derivefRequestedAttributes.put(TextAttribute.POSTURE, - TextAttribute.POSTURE_OBLIQUE); + derivefRequestedAttributes.put(TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE); } else if (derivefRequestedAttributes.get(TextAttribute.POSTURE) != null) { derivefRequestedAttributes.remove(TextAttribute.POSTURE); } - derivefRequestedAttributes.put(TextAttribute.TRANSFORM, - new TransformAttribute(trans)); + derivefRequestedAttributes.put(TextAttribute.TRANSFORM, new TransformAttribute(trans)); return new Font(derivefRequestedAttributes); } /** - * Returns a new Font that is a copy of the current Font - * modified so that the size and style are the specified - * size and style. - * - * @param style the style of font. - * @param size the size of font. + * Returns a new Font that is a copy of the current Font modified so that + * the size and style are the specified size and style. * + * @param style + * the style of font. + * @param size + * the size of font. * @return the Font object. */ @SuppressWarnings("unchecked") public Font deriveFont(int style, float size) { - Hashtable<Attribute, Object> derivefRequestedAttributes = (Hashtable<Attribute, Object>) fRequestedAttributes + Hashtable<Attribute, Object> derivefRequestedAttributes = (Hashtable<Attribute, Object>)fRequestedAttributes .clone(); if ((style & BOLD) != 0) { - derivefRequestedAttributes.put(TextAttribute.WEIGHT, - TextAttribute.WEIGHT_BOLD); + derivefRequestedAttributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD); } else if (derivefRequestedAttributes.get(TextAttribute.WEIGHT) != null) { derivefRequestedAttributes.remove(TextAttribute.WEIGHT); } if ((style & ITALIC) != 0) { - derivefRequestedAttributes.put(TextAttribute.POSTURE, - TextAttribute.POSTURE_OBLIQUE); + derivefRequestedAttributes.put(TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE); } else if (derivefRequestedAttributes.get(TextAttribute.POSTURE) != null) { derivefRequestedAttributes.remove(TextAttribute.POSTURE); } @@ -703,15 +730,15 @@ public class Font implements Serializable { /** * Returns a new Font object with a new set of font attributes. * - * @param attributes the map of attributes. - * + * @param attributes + * the map of attributes. * @return the Font. */ @SuppressWarnings("unchecked") public Font deriveFont(Map<? extends Attribute, ?> attributes) { Attribute[] avalAttributes = this.getAvailableAttributes(); - Hashtable<Attribute, Object> derivefRequestedAttributes = (Hashtable<Attribute, Object>) fRequestedAttributes + Hashtable<Attribute, Object> derivefRequestedAttributes = (Hashtable<Attribute, Object>)fRequestedAttributes .clone(); Object currAttribute; for (Attribute element : avalAttributes) { @@ -726,10 +753,10 @@ public class Font implements Serializable { /** * Compares the specified Object with the current Font. * - * @param obj the Object to be compared. - * - * @return true, if the specified Object is an instance of Font - * with the same family, size, and style as this Font, false otherwise. + * @param obj + * the Object to be compared. + * @return true, if the specified Object is an instance of Font with the + * same family, size, and style as this Font, false otherwise. */ @Override public boolean equals(Object obj) { @@ -739,11 +766,10 @@ public class Font implements Serializable { if (obj != null) { try { - Font font = (Font) obj; + Font font = (Font)obj; return ((this.style == font.style) && (this.size == font.size) - && this.name.equals(font.name) - && (this.pointSize == font.pointSize) && (this + && this.name.equals(font.name) && (this.pointSize == font.pointSize) && (this .getTransform()).equals(font.getTransform())); } catch (ClassCastException e) { } @@ -759,7 +785,7 @@ public class Font implements Serializable { */ @SuppressWarnings("unchecked") public Map<TextAttribute, ?> getAttributes() { - return (Map<TextAttribute, ?>) fRequestedAttributes.clone(); + return (Map<TextAttribute, ?>)fRequestedAttributes.clone(); } /** @@ -768,18 +794,19 @@ public class Font implements Serializable { * @return the keys array of all available attributes. */ public Attribute[] getAvailableAttributes() { - Attribute[] attrs = { TextAttribute.FAMILY, TextAttribute.POSTURE, - TextAttribute.SIZE, TextAttribute.TRANSFORM, - TextAttribute.WEIGHT, TextAttribute.SUPERSCRIPT, - TextAttribute.WIDTH }; + Attribute[] attrs = { + TextAttribute.FAMILY, TextAttribute.POSTURE, TextAttribute.SIZE, + TextAttribute.TRANSFORM, TextAttribute.WEIGHT, TextAttribute.SUPERSCRIPT, + TextAttribute.WIDTH + }; return attrs; } /** * Gets the baseline for this character. * - * @param c the character. - * + * @param c + * the character. * @return the baseline for this character. */ public byte getBaselineFor(char c) { @@ -800,19 +827,18 @@ public class Font implements Serializable { } /** - * Returns the family name of this Font associated with - * the specified locale. - * - * @param l the locale. + * Returns the family name of this Font associated with the specified + * locale. * - * @return the family name of this Font associated with - * the specified locale. + * @param l + * the locale. + * @return the family name of this Font associated with the specified + * locale. */ public String getFamily(Locale l) { if (l == null) { // awt.01='{0}' parameter is null - throw new NullPointerException(Messages.getString( - "awt.01", "Locale")); //$NON-NLS-1$ //$NON-NLS-2$ + throw new NullPointerException(Messages.getString("awt.01", "Locale")); //$NON-NLS-1$ //$NON-NLS-2$ } return getFamily(); } @@ -820,12 +846,12 @@ public class Font implements Serializable { /** * Gets a Font with the specified attribute set. * - * @param attributes the attributes to be assigned to the new Font. - * + * @param attributes + * the attributes to be assigned to the new Font. * @return the Font. */ public static Font getFont(Map<? extends Attribute, ?> attributes) { - Font fnt = (Font) attributes.get(TextAttribute.FONT); + Font fnt = (Font)attributes.get(TextAttribute.FONT); if (fnt != null) { return fnt; } @@ -833,14 +859,16 @@ public class Font implements Serializable { } /** - * Gets a Font object from the system properties list with the specified name - * or returns the specified Font if there is no such property. - * - * @param sp the specified property name. - * @param f the Font. + * Gets a Font object from the system properties list with the specified + * name or returns the specified Font if there is no such property. * - * @return the Font object from the system properties list with the specified name - * or the specified Font if there is no such property. + * @param sp + * the specified property name. + * @param f + * the Font. + * @return the Font object from the system properties list with the + * specified name or the specified Font if there is no such + * property. */ public static Font getFont(String sp, Font f) { String pr = System.getProperty(sp); @@ -851,12 +879,13 @@ public class Font implements Serializable { } /** - * Gets a Font object from the system properties list with the specified name. - * - * @param sp the system property name. + * Gets a Font object from the system properties list with the specified + * name. * - * @return the Font, or null if there is no shuch property - * with the specified name. + * @param sp + * the system property name. + * @return the Font, or null if there is no such property with the specified + * name. */ public static Font getFont(String sp) { return getFont(sp, null); @@ -877,8 +906,8 @@ public class Font implements Serializable { /** * Returns the font name associated with the specified locale. * - * @param l the locale. - * + * @param l + * the locale. * @return the font name associated with the specified locale. */ public String getFontName(Locale l) { @@ -888,38 +917,45 @@ public class Font implements Serializable { /** * Returns a LineMetrics object created with the specified parameters. * - * @param chars the chars array. - * @param start the start offset. - * @param end the end offset. - * @param frc the FontRenderContext. - * + * @param chars + * the chars array. + * @param start + * the start offset. + * @param end + * the end offset. + * @param frc + * the FontRenderContext. * @return the LineMetrics for the specified parameters. */ - public LineMetrics getLineMetrics(char[] chars, int start, int end, - FontRenderContext frc) { + public LineMetrics getLineMetrics(char[] chars, int start, int end, FontRenderContext frc) { if (frc == null) { // awt.00=FontRenderContext is null throw new NullPointerException(Messages.getString("awt.00")); //$NON-NLS-1$ } - //FontMetrics fm = AndroidGraphics2D.getInstance().getFontMetrics(); + // FontMetrics fm = AndroidGraphics2D.getInstance().getFontMetrics(); FontMetrics fm = new FontMetricsImpl(this); - float[] fmet = {fm.getAscent(), fm.getDescent(), fm.getLeading()}; + float[] fmet = { + fm.getAscent(), fm.getDescent(), fm.getLeading() + }; return new LineMetricsImpl(chars.length, fmet, null); } /** * Returns a LineMetrics object created with the specified parameters. * - * @param iter the CharacterIterator. - * @param start the start offset. - * @param end the end offset. - * @param frc the FontRenderContext. - * + * @param iter + * the CharacterIterator. + * @param start + * the start offset. + * @param end + * the end offset. + * @param frc + * the FontRenderContext. * @return the LineMetrics for the specified parameters. */ - public LineMetrics getLineMetrics(CharacterIterator iter, int start, - int end, FontRenderContext frc) { + public LineMetrics getLineMetrics(CharacterIterator iter, int start, int end, + FontRenderContext frc) { if (frc == null) { // awt.00=FontRenderContext is null @@ -935,8 +971,8 @@ public class Font implements Serializable { } else { char[] chars = new char[iterCount]; int i = 0; - for (char c = iter.setIndex(start); c != CharacterIterator.DONE - && (i < iterCount); c = iter.next()) { + for (char c = iter.setIndex(start); c != CharacterIterator.DONE && (i < iterCount); c = iter + .next()) { chars[i] = c; i++; } @@ -948,16 +984,19 @@ public class Font implements Serializable { /** * Returns a LineMetrics object created with the specified parameters. * - * @param str the String. - * @param frc the FontRenderContext. - * + * @param str + * the String. + * @param frc + * the FontRenderContext. * @return the LineMetrics for the specified parameters. */ public LineMetrics getLineMetrics(String str, FontRenderContext frc) { - //FontMetrics fm = AndroidGraphics2D.getInstance().getFontMetrics(); + // FontMetrics fm = AndroidGraphics2D.getInstance().getFontMetrics(); FontMetrics fm = new FontMetricsImpl(this); - float[] fmet = {fm.getAscent(), fm.getDescent(), fm.getLeading()}; - //Log.i("FONT FMET", fmet.toString()); + float[] fmet = { + fm.getAscent(), fm.getDescent(), fm.getLeading() + }; + // Log.i("FONT FMET", fmet.toString()); return new LineMetricsImpl(str.length(), fmet, null); } @@ -965,45 +1004,48 @@ public class Font implements Serializable { /** * Returns a LineMetrics object created with the specified parameters. * - * @param str the String. - * @param start the start offset. - * @param end the end offset. - * @param frc the FontRenderContext. - * + * @param str + * the String. + * @param start + * the start offset. + * @param end + * the end offset. + * @param frc + * the FontRenderContext. * @return the LineMetrics for the specified parameters. */ - public LineMetrics getLineMetrics(String str, int start, int end, - FontRenderContext frc) { + public LineMetrics getLineMetrics(String str, int start, int end, FontRenderContext frc) { return this.getLineMetrics(str.substring(start, end), frc); } /** - * Gets the logical bounds of the specified String in - * the specified FontRenderContext. The logical bounds contains - * the origin, ascent, advance, and height. - * - * @param ci the specified CharacterIterator. - * @param start the start offset. - * @param end the end offset. - * @param frc the FontRenderContext. - * + * Gets the logical bounds of the specified String in the specified + * FontRenderContext. The logical bounds contains the origin, ascent, + * advance, and height. + * + * @param ci + * the specified CharacterIterator. + * @param start + * the start offset. + * @param end + * the end offset. + * @param frc + * the FontRenderContext. * @return a Rectangle2D object. */ - public Rectangle2D getStringBounds(CharacterIterator ci, int start, - int end, FontRenderContext frc) { + public Rectangle2D getStringBounds(CharacterIterator ci, int start, int end, + FontRenderContext frc) { int first = ci.getBeginIndex(); int finish = ci.getEndIndex(); char[] chars; if (start < first) { // awt.95=Wrong start index: {0} - throw new IndexOutOfBoundsException(Messages.getString( - "awt.95", start)); //$NON-NLS-1$ + throw new IndexOutOfBoundsException(Messages.getString("awt.95", start)); //$NON-NLS-1$ } if (end > finish) { // awt.96=Wrong finish index: {0} - throw new IndexOutOfBoundsException(Messages.getString( - "awt.96", end)); //$NON-NLS-1$ + throw new IndexOutOfBoundsException(Messages.getString("awt.96", end)); //$NON-NLS-1$ } if (start > end) { // awt.97=Wrong range length: {0} @@ -1028,13 +1070,14 @@ public class Font implements Serializable { } /** - * Gets the logical bounds of the specified String in - * the specified FontRenderContext. The logical bounds contains - * the origin, ascent, advance, and height. - * - * @param str the specified String. - * @param frc the FontRenderContext. - * + * Gets the logical bounds of the specified String in the specified + * FontRenderContext. The logical bounds contains the origin, ascent, + * advance, and height. + * + * @param str + * the specified String. + * @param frc + * the FontRenderContext. * @return a Rectangle2D object. */ public Rectangle2D getStringBounds(String str, FontRenderContext frc) { @@ -1044,46 +1087,48 @@ public class Font implements Serializable { } /** - * Gets the logical bounds of the specified String in - * the specified FontRenderContext. The logical bounds contains - * the origin, ascent, advance, and height. - * - * @param str the specified String. - * @param start the start offset. - * @param end the end offset. - * @param frc the FontRenderContext. - * + * Gets the logical bounds of the specified String in the specified + * FontRenderContext. The logical bounds contains the origin, ascent, + * advance, and height. + * + * @param str + * the specified String. + * @param start + * the start offset. + * @param end + * the end offset. + * @param frc + * the FontRenderContext. * @return a Rectangle2D object. */ - public Rectangle2D getStringBounds(String str, int start, int end, - FontRenderContext frc) { + public Rectangle2D getStringBounds(String str, int start, int end, FontRenderContext frc) { return this.getStringBounds((str.substring(start, end)), frc); } /** - * Gets the logical bounds of the specified String in - * the specified FontRenderContext. The logical bounds contains - * the origin, ascent, advance, and height. - * - * @param chars the specified character array. - * @param start the start offset. - * @param end the end offset. - * @param frc the FontRenderContext. - * + * Gets the logical bounds of the specified String in the specified + * FontRenderContext. The logical bounds contains the origin, ascent, + * advance, and height. + * + * @param chars + * the specified character array. + * @param start + * the start offset. + * @param end + * the end offset. + * @param frc + * the FontRenderContext. * @return a Rectangle2D object. */ - public Rectangle2D getStringBounds(char[] chars, int start, int end, - FontRenderContext frc) { + public Rectangle2D getStringBounds(char[] chars, int start, int end, FontRenderContext frc) { if (start < 0) { // awt.95=Wrong start index: {0} - throw new IndexOutOfBoundsException(Messages.getString( - "awt.95", start)); //$NON-NLS-1$ + throw new IndexOutOfBoundsException(Messages.getString("awt.95", start)); //$NON-NLS-1$ } if (end > chars.length) { // awt.96=Wrong finish index: {0} - throw new IndexOutOfBoundsException(Messages.getString( - "awt.96", end)); //$NON-NLS-1$ + throw new IndexOutOfBoundsException(Messages.getString("awt.96", end)); //$NON-NLS-1$ } if (start > end) { // awt.97=Wrong range length: {0} @@ -1095,7 +1140,7 @@ public class Font implements Serializable { throw new NullPointerException(Messages.getString("awt.00")); //$NON-NLS-1$ } - FontPeerImpl peer = (FontPeerImpl) this.getPeer(); + FontPeerImpl peer = (FontPeerImpl)this.getPeer(); final int TRANSFORM_MASK = AffineTransform.TYPE_GENERAL_ROTATION | AffineTransform.TYPE_GENERAL_TRANSFORM; @@ -1110,13 +1155,13 @@ public class Font implements Serializable { for (int i = start; i < end; i++) { width += peer.charWidth(chars[i]); } - //LineMetrics nlm = peer.getLineMetrics(); - + // LineMetrics nlm = peer.getLineMetrics(); + LineMetrics nlm = getLineMetrics(chars, start, end, frc); - + bounds = transform.createTransformedShape( - new Rectangle2D.Float(0, -nlm.getAscent(), width, nlm - .getHeight())).getBounds2D(); + new Rectangle2D.Float(0, -nlm.getAscent(), width, nlm.getHeight())) + .getBounds2D(); } else { int len = end - start; char[] subChars = new char[len]; @@ -1127,11 +1172,11 @@ public class Font implements Serializable { } /** - * Gets the character's maximum bounds as defined in - * the specified FontRenderContext. - * - * @param frc the FontRenderContext. + * Gets the character's maximum bounds as defined in the specified + * FontRenderContext. * + * @param frc + * the FontRenderContext. * @return the character's maximum bounds. */ public Rectangle2D getMaxCharBounds(FontRenderContext frc) { @@ -1140,7 +1185,7 @@ public class Font implements Serializable { throw new NullPointerException(Messages.getString("awt.00")); //$NON-NLS-1$ } - FontPeerImpl peer = (FontPeerImpl) this.getPeer(); + FontPeerImpl peer = (FontPeerImpl)this.getPeer(); Rectangle2D bounds = peer.getMaxCharBounds(frc); AffineTransform transform = getTransform(); @@ -1155,42 +1200,40 @@ public class Font implements Serializable { } /** - * Returns a new GlyphVector object performing full layout of - * the text. - * - * @param frc the FontRenderContext. - * @param chars the character array to be layout. - * @param start the start offset of the text to use for - * the GlyphVector. - * @param count the count of characters to use for - * the GlyphVector. - * @param flags the flag indicating text direction: - * LAYOUT_RIGHT_TO_LEFT, LAYOUT_LEFT_TO_RIGHT. - * + * Returns a new GlyphVector object performing full layout of the text. + * + * @param frc + * the FontRenderContext. + * @param chars + * the character array to be layout. + * @param start + * the start offset of the text to use for the GlyphVector. + * @param count + * the count of characters to use for the GlyphVector. + * @param flags + * the flag indicating text direction: LAYOUT_RIGHT_TO_LEFT, + * LAYOUT_LEFT_TO_RIGHT. * @return the GlyphVector. */ - public GlyphVector layoutGlyphVector(FontRenderContext frc, char[] chars, - int start, int count, int flags) { + public GlyphVector layoutGlyphVector(FontRenderContext frc, char[] chars, int start, int count, + int flags) { // TODO: implement method for bidirectional text. // At the moment only LTR and RTL texts supported. if (start < 0) { // awt.95=Wrong start index: {0} - throw new ArrayIndexOutOfBoundsException(Messages.getString( - "awt.95", //$NON-NLS-1$ + throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.95", //$NON-NLS-1$ start)); } if (count < 0) { // awt.98=Wrong count value, can not be negative: {0} - throw new ArrayIndexOutOfBoundsException(Messages.getString( - "awt.98", //$NON-NLS-1$ + throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.98", //$NON-NLS-1$ count)); } if (start + count > chars.length) { // awt.99=Wrong [start + count] is out of range: {0} - throw new ArrayIndexOutOfBoundsException(Messages.getString( - "awt.99", //$NON-NLS-1$ + throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.99", //$NON-NLS-1$ (start + count))); } @@ -1234,7 +1277,7 @@ public class Font implements Serializable { * @return the postscript name of this Font. */ public String getPSName() { - FontPeerImpl peer = (FontPeerImpl) this.getPeer(); + FontPeerImpl peer = (FontPeerImpl)this.getPeer(); return peer.getPSName(); } @@ -1251,39 +1294,37 @@ public class Font implements Serializable { * Gets the peer of this Font. * * @return the peer of this Font. - * * @deprecated Font rendering is platform independent now. */ @Deprecated public java.awt.peer.FontPeer getPeer() { if (fontPeer == null) { - fontPeer = (FontPeerImpl) Toolkit.getDefaultToolkit() - .getGraphicsFactory().getFontPeer(this); + fontPeer = (FontPeerImpl)Toolkit.getDefaultToolkit().getGraphicsFactory().getFontPeer( + this); } return fontPeer; } /** - * Gets the transform acting on this Font (from the Font's - * attributes). + * Gets the transform acting on this Font (from the Font's attributes). * - * @return the transformation of this Font. + * @return the transformation of this Font. */ public AffineTransform getTransform() { Object transform = fRequestedAttributes.get(TextAttribute.TRANSFORM); if (transform != null) { if (transform instanceof TransformAttribute) { - return ((TransformAttribute) transform).getTransform(); + return ((TransformAttribute)transform).getTransform(); } if (transform instanceof AffineTransform) { - return new AffineTransform((AffineTransform) transform); + return new AffineTransform((AffineTransform)transform); } } else { transform = new AffineTransform(); } - return (AffineTransform) transform; + return (AffineTransform)transform; } @@ -1324,13 +1365,12 @@ public class Font implements Serializable { } /** - * Returns true if this Font has uniform line metrics. + * Returns true if this Font has uniform line metrics. * - * @return true if this Font has uniform line metrics, - * false otherwise. + * @return true if this Font has uniform line metrics, false otherwise. */ public boolean hasUniformLineMetrics() { - FontPeerImpl peer = (FontPeerImpl) this.getPeer(); + FontPeerImpl peer = (FontPeerImpl)this.getPeer(); return peer.hasUniformLineMetrics(); } @@ -1338,7 +1378,6 @@ public class Font implements Serializable { * Returns hash code of this Font object. * * @return the hash code of this Font object. - */ @Override public int hashCode() { @@ -1376,21 +1415,21 @@ public class Font implements Serializable { */ public int getNumGlyphs() { if (numGlyphs == -1) { - FontPeerImpl peer = (FontPeerImpl) this.getPeer(); + FontPeerImpl peer = (FontPeerImpl)this.getPeer(); this.numGlyphs = peer.getNumGlyphs(); } return this.numGlyphs; } /** - * Gets the glyphCode which is used as default glyph when this Font - * does not have a glyph for a specified unicode. + * Gets the glyphCode which is used as default glyph when this Font does not + * have a glyph for a specified Unicode. * * @return the missing glyph code. */ public int getMissingGlyphCode() { if (missingGlyphCode == -1) { - FontPeerImpl peer = (FontPeerImpl) this.getPeer(); + FontPeerImpl peer = (FontPeerImpl)this.getPeer(); this.missingGlyphCode = peer.getMissingGlyphCode(); } return this.missingGlyphCode; @@ -1407,29 +1446,30 @@ public class Font implements Serializable { /** * Gets the italic angle of this Font. - * + * * @return the italic angle of this Font. */ public float getItalicAngle() { - FontPeerImpl peer = (FontPeerImpl) this.getPeer(); + FontPeerImpl peer = (FontPeerImpl)this.getPeer(); return peer.getItalicAngle(); } /** * Creates the font with the specified font format and font file. * - * @param fontFormat the font format. - * @param fontFile the file object represented the input data - * for the font. - * + * @param fontFormat + * the font format. + * @param fontFile + * the file object represented the input data for the font. * @return the Font. - * - * @throws FontFormatException is thrown if fontFile does not contain - * the required font tables for the specified format. - * @throws IOException signals that an I/O exception has occurred. - */ - public static Font createFont(int fontFormat, File fontFile) - throws FontFormatException, IOException { + * @throws FontFormatException + * is thrown if fontFile does not contain the required font + * tables for the specified format. + * @throws IOException + * signals that an I/O exception has occurred. + */ + public static Font createFont(int fontFormat, File fontFile) throws FontFormatException, + IOException { // ???AWT not supported InputStream is = new FileInputStream(fontFile); try { @@ -1442,15 +1482,16 @@ public class Font implements Serializable { /** * Creates the font with the specified font format and input stream. * - * @param fontFormat the font format. - * @param fontStream the input stream represented input data for - * the font. - * + * @param fontFormat + * the font format. + * @param fontStream + * the input stream represented input data for the font. * @return the Font. - * - * @throws FontFormatException is thrown if fontFile does not contain - * the required font tables for the specified format. - * @throws IOException signals that an I/O exception has occurred. + * @throws FontFormatException + * is thrown if fontFile does not contain the required font + * tables for the specified format. + * @throws IOException + * signals that an I/O exception has occurred. */ public static Font createFont(int fontFormat, InputStream fontStream) throws FontFormatException, IOException { @@ -1466,15 +1507,15 @@ public class Font implements Serializable { if (fontFormat != TRUETYPE_FONT) { // awt.9A=Unsupported font format throw new IllegalArgumentException(Messages.getString("awt.9A")); //$NON-NLS-1$ } - + /* Get font file in system-specific directory */ - File fontFile = Toolkit.getDefaultToolkit().getGraphicsFactory() - .getFontManager().getTempFontFile(); + File fontFile = Toolkit.getDefaultToolkit().getGraphicsFactory().getFontManager() + .getTempFontFile(); - // BEGIN android-modified + // BEGIN android-modified buffStream = new BufferedInputStream(fontStream, 8192); - // END android-modified + // END android-modified FileOutputStream fOutStream = new FileOutputStream(fontFile); bRead = buffStream.read(buf, 0, size); diff --git a/awt/java/awt/FontFormatException.java b/awt/java/awt/FontFormatException.java index c017fd2..806711a 100644 --- a/awt/java/awt/FontFormatException.java +++ b/awt/java/awt/FontFormatException.java @@ -18,21 +18,27 @@ * @author Ilya S. Okomin * @version $Revision$ */ + package java.awt; /** - * The FontFormatException class is used to provide notification - * and information that font can't be created. + * The FontFormatException class is used to provide notification and information + * that font can't be created. + * + * @since Android 1.0 */ public class FontFormatException extends Exception { - - /** The Constant serialVersionUID. */ + + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -4481290147811361272L; /** * Instantiates a new font format exception with detailed message. * - * @param reason the detailed message. + * @param reason + * the detailed message. */ public FontFormatException(String reason) { super(reason); diff --git a/awt/java/awt/FontMetrics.java b/awt/java/awt/FontMetrics.java index 3948d73..9082626 100644 --- a/awt/java/awt/FontMetrics.java +++ b/awt/java/awt/FontMetrics.java @@ -18,6 +18,7 @@ * @author Ilya S. Okomin * @version $Revision$ */ + package java.awt; import java.awt.font.FontRenderContext; @@ -29,34 +30,40 @@ import java.text.CharacterIterator; import org.apache.harmony.awt.internal.nls.Messages; /** - * The FontMetrics class contains information about the rendering - * of a particular font on a particular screen. + * The FontMetrics class contains information about the rendering of a + * particular font on a particular screen. * <p> - * Each character in the Font has three values that help define where - * to place it: an ascent, a descent, and an advance. The ascent is the - * distance the character extends above the baseline. The descent is - * the distance the character extends below the baseline. - * The advance width defines the position at which the next character - * should be placed. + * Each character in the Font has three values that help define where to place + * it: an ascent, a descent, and an advance. The ascent is the distance the + * character extends above the baseline. The descent is the distance the + * character extends below the baseline. The advance width defines the position + * at which the next character should be placed. * <p> - * An array of characters or a string has an ascent, a descent, - * and an advance width too. The ascent or descent of the array - * is specified by the maximum ascent or descent of the characters - * in the array. The advance width is the sum of the advance widths - * of each of the characters in the character array. + * An array of characters or a string has an ascent, a descent, and an advance + * width too. The ascent or descent of the array is specified by the maximum + * ascent or descent of the characters in the array. The advance width is the + * sum of the advance widths of each of the characters in the character array. + * </p> + * + * @since Android 1.0 */ public abstract class FontMetrics implements Serializable { - - /** The Constant serialVersionUID. */ + + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = 1681126225205050147L; - /** The font from which the FontMetrics is created. */ + /** + * The font from which the FontMetrics is created. + */ protected Font font; /** * Instantiates a new font metrics from the specified Font. * - * @param fnt the Font. + * @param fnt + * the Font. */ protected FontMetrics(Font fnt) { this.font = fnt; @@ -65,12 +72,11 @@ public abstract class FontMetrics implements Serializable { /** * Returns the String representation of this FontMetrics. * - * @return the string + * @return the string. */ @Override public String toString() { - return this.getClass().getName() + - "[font=" + this.getFont() + //$NON-NLS-1$ + return this.getClass().getName() + "[font=" + this.getFont() + //$NON-NLS-1$ "ascent=" + this.getAscent() + //$NON-NLS-1$ ", descent=" + this.getDescent() + //$NON-NLS-1$ ", height=" + this.getHeight() + "]"; //$NON-NLS-1$ //$NON-NLS-2$ @@ -95,9 +101,9 @@ public abstract class FontMetrics implements Serializable { } /** - * Gets the font ascent of the Font associated with this FontMetrics. - * The font ascent is the distance from the font's baseline to - * the top of most alphanumeric characters. + * Gets the font ascent of the Font associated with this FontMetrics. The + * font ascent is the distance from the font's baseline to the top of most + * alphanumeric characters. * * @return the ascent of the Font associated with this FontMetrics. */ @@ -106,9 +112,9 @@ public abstract class FontMetrics implements Serializable { } /** - * Gets the font descent of the Font associated with this FontMetrics. - * The font descent is the distance from the font's baseline to - * the bottom of most alphanumeric characters with descenders. + * Gets the font descent of the Font associated with this FontMetrics. The + * font descent is the distance from the font's baseline to the bottom of + * most alphanumeric characters with descenders. * * @return the descent of the Font associated with this FontMetrics. */ @@ -126,192 +132,198 @@ public abstract class FontMetrics implements Serializable { } /** - * Gets the LineMetrics object for the specified CharacterIterator - * in the specified Graphics. - * - * @param ci the CharacterIterator. - * @param beginIndex the offset. - * @param limit the number of characters to be used. - * @param context the Graphics. - * - * @return the LineMetrics object for the specified CharacterIterator - * in the specified Graphics. + * Gets the LineMetrics object for the specified CharacterIterator in the + * specified Graphics. + * + * @param ci + * the CharacterIterator. + * @param beginIndex + * the offset. + * @param limit + * the number of characters to be used. + * @param context + * the Graphics. + * @return the LineMetrics object for the specified CharacterIterator in the + * specified Graphics. */ - public LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, - int limit, Graphics context) { - return font.getLineMetrics(ci, beginIndex, limit, - this.getFRCFromGraphics(context)); + public LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, int limit, + Graphics context) { + return font.getLineMetrics(ci, beginIndex, limit, this.getFRCFromGraphics(context)); } /** - * Gets the LineMetrics object for the specified String - * in the specified Graphics. - * - * @param str the String. - * @param context the Graphics. - * - * @return the LineMetrics object for the specified String - * in the specified Graphics. + * Gets the LineMetrics object for the specified String in the specified + * Graphics. + * + * @param str + * the String. + * @param context + * the Graphics. + * @return the LineMetrics object for the specified String in the specified + * Graphics. */ public LineMetrics getLineMetrics(String str, Graphics context) { return font.getLineMetrics(str, this.getFRCFromGraphics(context)); } /** - * Gets the LineMetrics object for the specified character - * array in the specified Graphics. - * - * @param chars the character array. - * @param beginIndex the offset of array. - * @param limit the number of characters to be used. - * @param context the Graphics. - * - * @return the LineMetrics object for the specified character - * array in the specified Graphics. + * Gets the LineMetrics object for the specified character array in the + * specified Graphics. + * + * @param chars + * the character array. + * @param beginIndex + * the offset of array. + * @param limit + * the number of characters to be used. + * @param context + * the Graphics. + * @return the LineMetrics object for the specified character array in the + * specified Graphics. */ - public LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, - Graphics context) { - return font.getLineMetrics(chars, beginIndex, limit, - this.getFRCFromGraphics(context)); + public LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, Graphics context) { + return font.getLineMetrics(chars, beginIndex, limit, this.getFRCFromGraphics(context)); } /** - * Gets the LineMetrics object for the specified String - * in the specified Graphics. - * - * @param str the String. - * @param beginIndex the offset. - * @param limit the number of characters to be used. - * @param context the Graphics. - * - * @return the LineMetrics object for the specified String - * in the specified Graphics. + * Gets the LineMetrics object for the specified String in the specified + * Graphics. + * + * @param str + * the String. + * @param beginIndex + * the offset. + * @param limit + * the number of characters to be used. + * @param context + * the Graphics. + * @return the LineMetrics object for the specified String in the specified + * Graphics. */ - public LineMetrics getLineMetrics(String str, int beginIndex, int limit, - Graphics context) { - return font.getLineMetrics(str, beginIndex, limit, - this.getFRCFromGraphics(context)); + public LineMetrics getLineMetrics(String str, int beginIndex, int limit, Graphics context) { + return font.getLineMetrics(str, beginIndex, limit, this.getFRCFromGraphics(context)); } /** - * Returns the character's maximum bounds in the specified - * Graphics context. - * - * @param context the Graphics context. + * Returns the character's maximum bounds in the specified Graphics context. * - * @return the character's maximum bounds in the specified - * Graphics context. + * @param context + * the Graphics context. + * @return the character's maximum bounds in the specified Graphics context. */ public Rectangle2D getMaxCharBounds(Graphics context) { return this.font.getMaxCharBounds(this.getFRCFromGraphics(context)); } - + /** - * Gets the bounds of the specified CharacterIterator - * in the specified Graphics context. - * - * @param ci the CharacterIterator. - * @param beginIndex the begin offset of the array. - * @param limit the number of characters. - * @param context the Graphics. + * Gets the bounds of the specified CharacterIterator in the specified + * Graphics context. * - * @return the bounds of the specified CharacterIterator - * in the specified Graphics context. + * @param ci + * the CharacterIterator. + * @param beginIndex + * the begin offset of the array. + * @param limit + * the number of characters. + * @param context + * the Graphics. + * @return the bounds of the specified CharacterIterator in the specified + * Graphics context. */ - public Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, - int limit, Graphics context) { - return font.getStringBounds(ci, beginIndex, limit, - this.getFRCFromGraphics(context)); + public Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, int limit, + Graphics context) { + return font.getStringBounds(ci, beginIndex, limit, this.getFRCFromGraphics(context)); } /** - * Gets the bounds of the specified String - * in the specified Graphics context. - * - * @param str the String. - * @param beginIndex the begin offset of the array. - * @param limit the number of characters. - * @param context the Graphics. - * - * @return the bounds of the specified String - * in the specified Graphics context. + * Gets the bounds of the specified String in the specified Graphics + * context. + * + * @param str + * the String. + * @param beginIndex + * the begin offset of the array. + * @param limit + * the number of characters. + * @param context + * the Graphics. + * @return the bounds of the specified String in the specified Graphics + * context. */ - public Rectangle2D getStringBounds(String str, int beginIndex, int limit, - Graphics context) { - return font.getStringBounds(str, beginIndex, limit, - this.getFRCFromGraphics(context)); + public Rectangle2D getStringBounds(String str, int beginIndex, int limit, Graphics context) { + return font.getStringBounds(str, beginIndex, limit, this.getFRCFromGraphics(context)); } - /** - * Gets the bounds of the specified characters array - * in the specified Graphics context. - * - * @param chars the characters array. - * @param beginIndex the begin offset of the array. - * @param limit the number of characters. - * @param context the Graphics. + * Gets the bounds of the specified characters array in the specified + * Graphics context. * - * @return the bounds of the specified characters array - * in the specified Graphics context. + * @param chars + * the characters array. + * @param beginIndex + * the begin offset of the array. + * @param limit + * the number of characters. + * @param context + * the Graphics. + * @return the bounds of the specified characters array in the specified + * Graphics context. */ - public Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit, - Graphics context) { - return font.getStringBounds(chars, beginIndex, limit, - this.getFRCFromGraphics(context)); + public Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit, Graphics context) { + return font.getStringBounds(chars, beginIndex, limit, this.getFRCFromGraphics(context)); } /** - * Gets the bounds of the specified String - * in the specified Graphics context. - * - * @param str the String. - * @param context the Graphics. - * - * @return the bounds of the specified String - * in the specified Graphics context. + * Gets the bounds of the specified String in the specified Graphics + * context. + * + * @param str + * the String. + * @param context + * the Graphics. + * @return the bounds of the specified String in the specified Graphics + * context. */ public Rectangle2D getStringBounds(String str, Graphics context) { return font.getStringBounds(str, this.getFRCFromGraphics(context)); } /** - * Checks if the Font has uniform line metrics or not. - * The Font can contain characters of other fonts for - * covering character set. In this case the Font isn't - * uniform. - * - * @return true, if the Font has uniform line metrics, - * false otherwise. + * Checks if the Font has uniform line metrics or not. The Font can contain + * characters of other fonts for covering character set. In this case the + * Font isn't uniform. + * + * @return true, if the Font has uniform line metrics, false otherwise. */ public boolean hasUniformLineMetrics() { return this.font.hasUniformLineMetrics(); } /** - * Returns the distance from the leftmost point to the rightmost - * point on the string's baseline showing the specified array - * of bytes in this Font. - * - * @param data the array of bytes to be measured. - * @param off the start offset. - * @param len the number of bytes to be measured. - * + * Returns the distance from the leftmost point to the rightmost point on + * the string's baseline showing the specified array of bytes in this Font. + * + * @param data + * the array of bytes to be measured. + * @param off + * the start offset. + * @param len + * the number of bytes to be measured. * @return the advance width of the array. */ public int bytesWidth(byte[] data, int off, int len) { int width = 0; - if ((off >= data.length) || (off < 0)){ + if ((off >= data.length) || (off < 0)) { // awt.13B=offset off is out of range throw new IllegalArgumentException(Messages.getString("awt.13B")); //$NON-NLS-1$ } - if ((off+len > data.length)){ + if ((off + len > data.length)) { // awt.13C=number of elemets len is out of range throw new IllegalArgumentException(Messages.getString("awt.13C")); //$NON-NLS-1$ } - for (int i = off; i < off+len; i++){ + for (int i = off; i < off + len; i++) { width += charWidth(data[i]); } @@ -319,29 +331,31 @@ public abstract class FontMetrics implements Serializable { } /** - * Returns the distance from the leftmost point to the rightmost - * point on the string's baseline showing the specified array - * of characters in this Font. - * - * @param data the array of characters to be measured. - * @param off the start offset. - * @param len the number of bytes to be measured. - * + * Returns the distance from the leftmost point to the rightmost point on + * the string's baseline showing the specified array of characters in this + * Font. + * + * @param data + * the array of characters to be measured. + * @param off + * the start offset. + * @param len + * the number of bytes to be measured. * @return the advance width of the array. */ - public int charsWidth(char[] data, int off , int len){ + public int charsWidth(char[] data, int off, int len) { int width = 0; - if ((off >= data.length) || (off < 0)){ + if ((off >= data.length) || (off < 0)) { // awt.13B=offset off is out of range throw new IllegalArgumentException(Messages.getString("awt.13B")); //$NON-NLS-1$ } - if ((off+len > data.length)){ + if ((off + len > data.length)) { // awt.13C=number of elemets len is out of range throw new IllegalArgumentException(Messages.getString("awt.13C")); //$NON-NLS-1$ } - for (int i = off; i < off+len; i++){ + for (int i = off; i < off + len; i++) { width += charWidth(data[i]); } @@ -349,12 +363,11 @@ public abstract class FontMetrics implements Serializable { } /** - * Returns the distance from the leftmost point to the rightmost - * point of the specified character in this Font. - * - * @param ch the specified unicode point code of - * character to be measured. + * Returns the distance from the leftmost point to the rightmost point of + * the specified character in this Font. * + * @param ch + * the specified Unicode point code of character to be measured. * @return the advance width of the character. */ public int charWidth(int ch) { @@ -362,11 +375,11 @@ public abstract class FontMetrics implements Serializable { } /** - * Returns the distance from the leftmost point to the rightmost - * point of the specified character in this Font. - * - * @param ch the specified character to be measured. + * Returns the distance from the leftmost point to the rightmost point of + * the specified character in this Font. * + * @param ch + * the specified character to be measured. * @return the advance width of the character. */ public int charWidth(char ch) { @@ -383,11 +396,11 @@ public abstract class FontMetrics implements Serializable { } /** - * Gets the maximum font ascent of the Font associated with - * this FontMetrics. + * Gets the maximum font ascent of the Font associated with this + * FontMetrics. * - * @return the maximum font ascent of the Font associated with - * this FontMetrics. + * @return the maximum font ascent of the Font associated with this + * FontMetrics. */ public int getMaxAscent() { return 0; @@ -397,7 +410,6 @@ public abstract class FontMetrics implements Serializable { * Gets the maximum font descent of character in this Font. * * @return the maximum font descent of character in this Font. - * * @deprecated Replaced by getMaxDescent() method. */ @Deprecated @@ -426,23 +438,22 @@ public abstract class FontMetrics implements Serializable { /** * Returns the advance width for the specified String in this Font. * - * @param str String to be measured. - * - * @return the the advance width for the specified String - * in this Font. + * @param str + * String to be measured. + * @return the the advance width for the specified String in this Font. */ public int stringWidth(String str) { return 0; } - + /** - * Returns FontRenderContext instanse of the Graphics context specified. - * - * @param context the specified Graphics context + * Returns a FontRenderContext instance of the Graphics context specified. * + * @param context + * the specified Graphics context. * @return a FontRenderContext of the specified Graphics context. */ - private FontRenderContext getFRCFromGraphics(Graphics context){ + private FontRenderContext getFRCFromGraphics(Graphics context) { FontRenderContext frc; if (context instanceof Graphics2D) { frc = ((Graphics2D)context).getFontRenderContext(); @@ -453,4 +464,3 @@ public abstract class FontMetrics implements Serializable { return frc; } } - diff --git a/awt/java/awt/GradientPaint.java b/awt/java/awt/GradientPaint.java index 0e06528..3b32ef5 100644 --- a/awt/java/awt/GradientPaint.java +++ b/awt/java/awt/GradientPaint.java @@ -26,56 +26,71 @@ import org.apache.harmony.awt.internal.nls.Messages; /** * The GradientPaint class defines a way to fill a Shape with a linear color - * gradient pattern. + * gradient pattern. * <p> - * The GradientPaint's fill pattern is determined by two points and two colors, - * plus the cyclic mode option. - * Each of the two points is painted with its corresponding color, and on - * the line segment connecting the two points, the color is proportionally - * changed between the two colors. For points on the same line which are not - * between the two specified points (outside of the connecting segment) their - * color is determined by the cyclic mode option. If the mode is cyclic, then - * the rest of the line repeats the color pattern of the connecting segment, - * cycling back and forth between the two colors. If not, the mode is acyclic - * which means that all points - * on the line outside the connecting line segment are given the same - * color as the closest of the two specified points. + * The GradientPaint's fill pattern is determined by two points and two colors, + * plus the cyclic mode option. Each of the two points is painted with its + * corresponding color, and on the line segment connecting the two points, the + * color is proportionally changed between the two colors. For points on the + * same line which are not between the two specified points (outside of the + * connecting segment) their color is determined by the cyclic mode option. If + * the mode is cyclic, then the rest of the line repeats the color pattern of + * the connecting segment, cycling back and forth between the two colors. If + * not, the mode is acyclic which means that all points on the line outside the + * connecting line segment are given the same color as the closest of the two + * specified points. * <p> - * The color of points that are not on the line connecting the two - * specified points are given by perpendicular projection: by taking - * the set of lines perpendicular to the connecting line and for each - * one, the whole line is colored with the same color. + * The color of points that are not on the line connecting the two specified + * points are given by perpendicular projection: by taking the set of lines + * perpendicular to the connecting line and for each one, the whole line is + * colored with the same color. + * + * @since Android 1.0 */ public class GradientPaint implements Paint { - - /** The start point color. */ + + /** + * The start point color. + */ Color color1; - /** The end color point. */ + /** + * The end color point. + */ Color color2; - /** The location of the start point. */ + /** + * The location of the start point. + */ Point2D point1; - /** The location of the end point. */ + /** + * The location of the end point. + */ Point2D point2; - /** The indicator of cycle filling. If TRUE filling - * repeated outside points stripe, if FALSE solid color filling outside. */ + /** + * The indicator of cycle filling. If TRUE filling repeated outside points + * stripe, if FALSE solid color filling outside. + */ boolean cyclic; /** * Instantiates a new GradientPaint with cyclic or acyclic mode. * - * @param point1 the first specified point. - * @param color1 the Color of the first specified point. - * @param point2 the second specified point. - * @param color2 the Color of the second specified point. - * @param cyclic the cyclic mode - true if the gradient pattern should cycle - * repeatedly between the two colors; false otherwise. - */ - public GradientPaint(Point2D point1, Color color1, Point2D point2, - Color color2, boolean cyclic) { + * @param point1 + * the first specified point. + * @param color1 + * the Color of the first specified point. + * @param point2 + * the second specified point. + * @param color2 + * the Color of the second specified point. + * @param cyclic + * the cyclic mode - true if the gradient pattern should cycle + * repeatedly between the two colors; false otherwise. + */ + public GradientPaint(Point2D point1, Color color1, Point2D point2, Color color2, boolean cyclic) { if (point1 == null || point2 == null) { // awt.6D=Point is null throw new NullPointerException(Messages.getString("awt.6D")); //$NON-NLS-1$ @@ -93,17 +108,24 @@ public class GradientPaint implements Paint { } /** - * Instantiates a new GradientPaint with cyclic or acyclic mode; - * points are specified by coordinates. + * Instantiates a new GradientPaint with cyclic or acyclic mode; points are + * specified by coordinates. * - * @param x1 the X coordinate of the first point. - * @param y1 the Y coordinate of the first point. - * @param color1 the color of the first point. - * @param x2 the X coordinate of the second point. - * @param y2 the Y coordinate of the second point. - * @param color2 the color of the second point. - * @param cyclic the cyclic mode - true if the gradient pattern should cycle - * repeatedly between the two colors; false otherwise. + * @param x1 + * the X coordinate of the first point. + * @param y1 + * the Y coordinate of the first point. + * @param color1 + * the color of the first point. + * @param x2 + * the X coordinate of the second point. + * @param y2 + * the Y coordinate of the second point. + * @param color2 + * the color of the second point. + * @param cyclic + * the cyclic mode - true if the gradient pattern should cycle + * repeatedly between the two colors; false otherwise. */ public GradientPaint(float x1, float y1, Color color1, float x2, float y2, Color color2, boolean cyclic) { @@ -111,15 +133,21 @@ public class GradientPaint implements Paint { } /** - * Instantiates a new acyclic GradientPaint; - * points are specified by coordinates. + * Instantiates a new acyclic GradientPaint; points are specified by + * coordinates. * - * @param x1 the X coordinate of the first point. - * @param y1 the Y coordinate of the first point. - * @param color1 the color of the first point. - * @param x2 the X coordinate of the second point. - * @param y2 the Y coordinate of the second point. - * @param color2 the color of the second point. + * @param x1 + * the X coordinate of the first point. + * @param y1 + * the Y coordinate of the first point. + * @param color1 + * the color of the first point. + * @param x2 + * the X coordinate of the second point. + * @param y2 + * the Y coordinate of the second point. + * @param color2 + * the color of the second point. */ public GradientPaint(float x1, float y1, Color color1, float x2, float y2, Color color2) { this(x1, y1, color1, x2, y2, color2, false); @@ -128,29 +156,38 @@ public class GradientPaint implements Paint { /** * Instantiates a new acyclic GradientPaint. * - * @param point1 the first specified point. - * @param color1 the Color of the first specified point. - * @param point2 the second specified point. - * @param color2 the Color of the second specified point. + * @param point1 + * the first specified point. + * @param color1 + * the Color of the first specified point. + * @param point2 + * the second specified point. + * @param color2 + * the Color of the second specified point. */ public GradientPaint(Point2D point1, Color color1, Point2D point2, Color color2) { this(point1, color1, point2, color2, false); } /** - * Creates PaintContext for a color pattern generating. - * - * @param cm the ColorModel of the Paint data. - * @param deviceBounds the bounding Rectangle of graphics primitives - * being rendered in the device space. - * @param userBounds tthe bounding Rectangle of graphics primitives - * being rendered in the user space. - * @param t the AffineTransform from user space into device space. - * @param hints the RrenderingHints object. + * Creates PaintContext for a color pattern generating. * + * @param cm + * the ColorModel of the Paint data. + * @param deviceBounds + * the bounding Rectangle of graphics primitives being rendered + * in the device space. + * @param userBounds + * the bounding Rectangle of graphics primitives being rendered + * in the user space. + * @param t + * the AffineTransform from user space into device space. + * @param hints + * the RrenderingHints object. * @return the PaintContext for color pattern generating. - * - * @see java.awt.Paint#createContext(java.awt.image.ColorModel, java.awt.Rectangle, java.awt.geom.Rectangle2D, java.awt.geom.AffineTransform, java.awt.RenderingHints) + * @see java.awt.Paint#createContext(java.awt.image.ColorModel, + * java.awt.Rectangle, java.awt.geom.Rectangle2D, + * java.awt.geom.AffineTransform, java.awt.RenderingHints) */ public PaintContext createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform t, RenderingHints hints) { @@ -178,7 +215,7 @@ public class GradientPaint implements Paint { /** * Gets the first point. * - * @return the Point object - the first point. + * @return the Point object - the first point. */ public Point2D getPoint1() { return point1; @@ -197,7 +234,6 @@ public class GradientPaint implements Paint { * Gets the transparency mode for the GradientPaint. * * @return the transparency mode for the GradientPaint. - * * @see java.awt.Transparency#getTransparency() */ public int getTransparency() { @@ -207,11 +243,11 @@ public class GradientPaint implements Paint { } /** - * Returns the GradientPaint mode: true for cyclic mode, false for - * acyclic mode. + * Returns the GradientPaint mode: true for cyclic mode, false for acyclic + * mode. * - * @return true if the gradient cycles repeatedly between the two colors; - * false otherwise. + * @return true if the gradient cycles repeatedly between the two colors; + * false otherwise. */ public boolean isCyclic() { return cyclic; diff --git a/awt/java/awt/Graphics.java b/awt/java/awt/Graphics.java index c20f6bc..2d6e79f 100644 --- a/awt/java/awt/Graphics.java +++ b/awt/java/awt/Graphics.java @@ -18,26 +18,27 @@ * @author Alexey A. Petrenko * @version $Revision$ */ + package java.awt; import java.awt.image.ImageObserver; import java.text.AttributedCharacterIterator; /** - * The abstract Graphics class allows applications to draw on a screen - * or other rendering target. There are several properties which - * define rendering options: origin point, clipping area, color, font. - * <br><br> - * The origin point specifies the beggining of the clipping area coordinate - * system. All coordinates used in rendering operations are computed with - * respect to this point. The clipping area defines the boundaries where - * rendering operations can be performed. Rendering operations can't modify - * pixels outside of the clipping area. - * <br><br> - * The draw and fill methods allow applications to drawing shapes, text, - * images with specified font and color options in the specified part - * of the screen. - * + * The abstract Graphics class allows applications to draw on a screen or other + * rendering target. There are several properties which define rendering + * options: origin point, clipping area, color, font. <br> + * <br> + * The origin point specifies the beginning of the clipping area coordinate + * system. All coordinates used in rendering operations are computed with + * respect to this point. The clipping area defines the boundaries where + * rendering operations can be performed. Rendering operations can't modify + * pixels outside of the clipping area. <br> + * <br> + * The draw and fill methods allow applications to drawing shapes, text, images + * with specified font and color options in the specified part of the screen. + * + * @since Android 1.0 */ public abstract class Graphics { @@ -45,7 +46,7 @@ public abstract class Graphics { /** * Instantiates a new Graphics. This constructor is default for Graphics and - * can not be called directly. + * can not be called directly. */ protected Graphics() { } @@ -53,19 +54,22 @@ public abstract class Graphics { // Public methods /** - * Creates a copy of the Graphics object with a new origin and a new - * specified clip area. The new clip area is the rectangle defined by - * the origin point with coordinates X,Y and the given width and height. - * The coordinates of all subsequent rendering operations will be computed - * with respect to the new origin and can be performed only within the - * range of the clipping area dimentions. - * - * @param x the X coordinate of the original point - * @param y the Y coordinate of the original point - * @param width the width of clipping area - * @param height the height of clipping area + * Creates a copy of the Graphics object with a new origin and a new + * specified clip area. The new clip area is the rectangle defined by the + * origin point with coordinates X,Y and the given width and height. The + * coordinates of all subsequent rendering operations will be computed with + * respect to the new origin and can be performed only within the range of + * the clipping area dimensions. * - * @return the Graphics object with new origin point and clipping area. + * @param x + * the X coordinate of the original point. + * @param y + * the Y coordinate of the original point. + * @param width + * the width of clipping area. + * @param height + * the height of clipping area. + * @return the Graphics object with new origin point and clipping area. */ public Graphics create(int x, int y, int width, int height) { Graphics res = create(); @@ -75,18 +79,24 @@ public abstract class Graphics { } /** - * Draws the higlighted outline of a rectangle. + * Draws the highlighted outline of a rectangle. * - * @param x the X coordinate of the rectangle's top left corner. - * @param y the Y coordinate of the rectangle's top left corner. - * @param width the width of rectangle. - * @param height the height of rectangle. - * @param raised a boolean value that determines whether the rectangle - * is drawn as raised or indented. + * @param x + * the X coordinate of the rectangle's top left corner. + * @param y + * the Y coordinate of the rectangle's top left corner. + * @param width + * the width of rectangle. + * @param height + * the height of rectangle. + * @param raised + * a boolean value that determines whether the rectangle is drawn + * as raised or indented. */ public void draw3DRect(int x, int y, int width, int height, boolean raised) { // Note: lighter/darker colors should be used to draw 3d rect. - // The resulting rect is (width+1)x(height+1). Stroke and paint attributes of + // The resulting rect is (width+1)x(height+1). Stroke and paint + // attributes of // the Graphics2D should be reset to the default values. // fillRect is used instead of drawLine to bypass stroke // reset/set and rasterization. @@ -103,36 +113,46 @@ public abstract class Graphics { setColor(colorUp); fillRect(x, y, width, 1); - fillRect(x, y+1, 1, height); + fillRect(x, y + 1, 1, height); setColor(colorDown); - fillRect(x+width, y, 1, height); - fillRect(x+1, y+height, width, 1); + fillRect(x + width, y, 1, height); + fillRect(x + 1, y + height, width, 1); } /** - * Draws the text represented by byte array. This method uses the current + * Draws the text represented by byte array. This method uses the current * font and color for rendering. * - * @param bytes the byte array which contains the text to be drawn. - * @param off the offset within the byte array of the text to be drawn. - * @param len the number of bytes of text to draw. - * @param x the X coordinate where the text is to be drawn. - * @param y the Y coordinate where the text is to be drawn. + * @param bytes + * the byte array which contains the text to be drawn. + * @param off + * the offset within the byte array of the text to be drawn. + * @param len + * the number of bytes of text to draw. + * @param x + * the X coordinate where the text is to be drawn. + * @param y + * the Y coordinate where the text is to be drawn. */ public void drawBytes(byte[] bytes, int off, int len, int x, int y) { drawString(new String(bytes, off, len), x, y); } /** - * Draws the text represented by character array. This method uses the + * Draws the text represented by character array. This method uses the * current font and color for rendering. * - * @param chars the character array. - * @param off the offset within the character array of the text to be drawn. - * @param len the number of characters which will be drawn. - * @param x the X coordinate where the text is to be drawn. - * @param y the Y coordinate where the text is to be drawn. + * @param chars + * the character array. + * @param off + * the offset within the character array of the text to be drawn. + * @param len + * the number of characters which will be drawn. + * @param x + * the X coordinate where the text is to be drawn. + * @param y + * the Y coordinate where the text is to be drawn. */ public void drawChars(char[] chars, int off, int len, int x, int y) { drawString(new String(chars, off, len), x, y); @@ -141,37 +161,51 @@ public abstract class Graphics { /** * Draws the outline of a polygon which is defined by Polygon object. * - * @param p the Polygon object. + * @param p + * the Polygon object. */ public void drawPolygon(Polygon p) { drawPolygon(p.xpoints, p.ypoints, p.npoints); } /** - * Draws the rectangle with the specified width and length and top left + * Draws the rectangle with the specified width and length and top left * corner coordinates. * - * @param x the X coordinate of the rectangle's top left corner. - * @param y the Y coordinate of the rectangle's top left corner. - * @param width the width of the rectangle. - * @param height the height of the rectangle. + * @param x + * the X coordinate of the rectangle's top left corner. + * @param y + * the Y coordinate of the rectangle's top left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. */ public void drawRect(int x, int y, int width, int height) { - int []xpoints = {x, x, x+width, x+width}; - int []ypoints = {y, y+height, y+height, y}; + int[] xpoints = { + x, x, x + width, x + width + }; + int[] ypoints = { + y, y + height, y + height, y + }; drawPolygon(xpoints, ypoints, 4); } /** - * Fills the higlighted outline of a rectangle. + * Fills the highlighted outline of a rectangle. * - * @param x the X coordinate of the rectangle's top left corner. - * @param y the Y coordinate of the rectangle's top left corner. - * @param width the width of the rectangle. - * @param height the height of the rectangle. - * @param raised a boolean value that determines whether the rectangle - * is drawn as raised or indented. + * @param x + * the X coordinate of the rectangle's top left corner. + * @param y + * the Y coordinate of the rectangle's top left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. + * @param raised + * a boolean value that determines whether the rectangle is drawn + * as raised or indented. */ public void fill3DRect(int x, int y, int width, int height, boolean raised) { // Note: lighter/darker colors should be used to draw 3d rect. @@ -179,7 +213,7 @@ public abstract class Graphics { // Stroke and paint attributes of the Graphics2D should be reset // to the default values. fillRect is used instead of drawLine to // bypass stroke reset/set and line rasterization. - + Color color = getColor(); Color colorUp, colorDown; if (raised) { @@ -194,21 +228,22 @@ public abstract class Graphics { width--; height--; - fillRect(x+1, y+1, width-1, height-1); + fillRect(x + 1, y + 1, width - 1, height - 1); setColor(colorUp); fillRect(x, y, width, 1); - fillRect(x, y+1, 1, height); + fillRect(x, y + 1, 1, height); setColor(colorDown); - fillRect(x+width, y, 1, height); - fillRect(x+1, y+height, width, 1); + fillRect(x + width, y, 1, height); + fillRect(x + 1, y + height, width, 1); } /** * Fills the polygon with the current color. * - * @param p the Polygon object. + * @param p + * the Polygon object. */ public void fillPolygon(Polygon p) { fillPolygon(p.xpoints, p.ypoints, p.npoints); @@ -222,12 +257,12 @@ public abstract class Graphics { } /** - * Gets the bounds of the current clipping area as a rectangle - * and copies it to an existing rectangle. - * - * @param r a Rectangle object where the current clipping area - * bounds are to be copied. + * Gets the bounds of the current clipping area as a rectangle and copies it + * to an existing rectangle. * + * @param r + * a Rectangle object where the current clipping area bounds are + * to be copied. * @return the bounds of the current clipping area. */ public Rectangle getClipBounds(Rectangle r) { @@ -248,8 +283,7 @@ public abstract class Graphics { /** * Gets the bounds of the current clipping area as a rectangle. * - * @return a Rectangle object - * + * @return a Rectangle object. * @deprecated Use {@link #getClipBounds()} */ @Deprecated @@ -258,9 +292,8 @@ public abstract class Graphics { } /** - * Gets the font metrics of the current font. - * The font metrics object contains information about the rendering - * of a particular font. + * Gets the font metrics of the current font. The font metrics object + * contains information about the rendering of a particular font. * * @return the font metrics of current font. */ @@ -269,19 +302,23 @@ public abstract class Graphics { } /** - * Determines whether or not the specified rectangle intersects the - * current clipping area. - * - * @param x the X coordinate of the rectangle. - * @param y the Y coordinate of the rectangle. - * @param width the width of the rectangle. - * @param height the height of the rectangle. + * Determines whether or not the specified rectangle intersects the current + * clipping area. * - * @return true, if the specified rectangle intersects the current clipping area, - * overwise false. + * @param x + * the X coordinate of the rectangle. + * @param y + * the Y coordinate of the rectangle. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. + * @return true, if the specified rectangle intersects the current clipping + * area, false otherwise. */ public boolean hitClip(int x, int y, int width, int height) { - // TODO: Create package private method Rectangle.intersects(int, int, int, int); + // TODO: Create package private method Rectangle.intersects(int, int, + // int, int); return getClipBounds().intersects(new Rectangle(x, y, width, height)); } @@ -299,45 +336,56 @@ public abstract class Graphics { // Abstract methods /** - * Clears the specified rectangle. This method fills specified rectangle - * with background color. + * Clears the specified rectangle. This method fills specified rectangle + * with background color. * - * @param x the X coordinate of the rectangle. - * @param y the Y coordinate of the rectangle. - * @param width the width of the rectangle. - * @param height the height of the rectangle. + * @param x + * the X coordinate of the rectangle. + * @param y + * the Y coordinate of the rectangle. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. */ public abstract void clearRect(int x, int y, int width, int height); /** - * Intersects the current clipping area with a new rectangle. - * If the current clipping area is not defined, the rectangle - * becomes a new clipping area. Rendering operations are only allowed - * within the new the clipping area. - * - * @param x the X coordinate of the rectangle for intersection. - * @param y the Y coordinate of the rectangle for intersection. - * @param width the width of the rectangle for intersection. - * @param height the height of the rectangle for intersection. + * Intersects the current clipping area with a new rectangle. If the current + * clipping area is not defined, the rectangle becomes a new clipping area. + * Rendering operations are only allowed within the new the clipping area. + * + * @param x + * the X coordinate of the rectangle for intersection. + * @param y + * the Y coordinate of the rectangle for intersection. + * @param width + * the width of the rectangle for intersection. + * @param height + * the height of the rectangle for intersection. */ public abstract void clipRect(int x, int y, int width, int height); /** - * Copies the rectangle area to another area specified by - * a distance (dx, dy) from the original rectangle's location. - * Positive dx and dy values give a new location defined by - * translation to the right and down from the original location, - * negative dx and dy values - to the left and up. - * <br><br> - * - * @param sx the X coordinate of the rectangle which will be copied. - * @param sy the Y coordinate of the rectangle which will be copied. - * @param width the width of the rectangle which will be copied. - * @param height the height of the rectangle which will be copied. - * @param dx the horizontal distance from the source rectangle's - * location to the copy's location. - * @param dy the vertical distance from the source rectangle's - * location to the copy's location. + * Copies the rectangle area to another area specified by a distance (dx, + * dy) from the original rectangle's location. Positive dx and dy values + * give a new location defined by translation to the right and down from the + * original location, negative dx and dy values - to the left and up. + * + * @param sx + * the X coordinate of the rectangle which will be copied. + * @param sy + * the Y coordinate of the rectangle which will be copied. + * @param width + * the width of the rectangle which will be copied. + * @param height + * the height of the rectangle which will be copied. + * @param dx + * the horizontal distance from the source rectangle's location + * to the copy's location. + * @param dy + * the vertical distance from the source rectangle's location to + * the copy's location. */ public abstract void copyArea(int sx, int sy, int width, int height, int dx, int dy); @@ -349,215 +397,314 @@ public abstract class Graphics { public abstract Graphics create(); /** - * Disposes of the Graphics. This Graphics object can not be used after - * calling this method. + * Disposes of the Graphics. This Graphics object can not be used after + * calling this method. */ public abstract void dispose(); /** - * Draws the arc covering the specified rectangle and using the current color. - * The rectangle is defined by the origin point (X, Y) and dimentions - * (width and height). The arc center is the the center of specified rectangle. - * The angle origin is 3 o'clock position, the positive angle is counted as a - * counter-clockwise rotation, the negotive angle is counted as clockwise rotation. - * - * @param x the X origin coordinate of the rectangle which scales the arc. - * @param y the Y origin coordinate of the rectangle which scales the arc. - * @param width the width of the rectangle which scales the arc. - * @param height the height of the rectangle which scales the arc. - * @param sa start angle - the origin angle of arc. - * @param ea arc angle - the angular arc value relative to the start angle. + * Draws the arc covering the specified rectangle and using the current + * color. The rectangle is defined by the origin point (X, Y) and dimensions + * (width and height). The arc center is the the center of specified + * rectangle. The angle origin is 3 o'clock position, the positive angle is + * counted as a counter-clockwise rotation, the negative angle is counted as + * clockwise rotation. + * + * @param x + * the X origin coordinate of the rectangle which scales the arc. + * @param y + * the Y origin coordinate of the rectangle which scales the arc. + * @param width + * the width of the rectangle which scales the arc. + * @param height + * the height of the rectangle which scales the arc. + * @param sa + * start angle - the origin angle of arc. + * @param ea + * arc angle - the angular arc value relative to the start angle. */ public abstract void drawArc(int x, int y, int width, int height, int sa, int ea); /** - * Draws the specified image with the defined background color. - * The top left corner of image will be drawn at point (x, y) - * in current coordinate system. The image loading process notifies the - * specified Image Observer. This method returns true if the image - * has loaded, overwise it returns false. - * - * @param img the image which will be drawn. - * @param x the X coordinate of the image top left corner. - * @param y the Y coordinate of the image top left corner. - * @param bgcolor the background color. - * @param observer the ImageObserver object which should be notified about image loading process. - * - * @return true, if loading image is successful or image is null, overwise false. + * Draws the specified image with the defined background color. The top left + * corner of image will be drawn at point (x, y) in current coordinate + * system. The image loading process notifies the specified Image Observer. + * This method returns true if the image has loaded, otherwise it returns + * false. + * + * @param img + * the image which will be drawn. + * @param x + * the X coordinate of the image top left corner. + * @param y + * the Y coordinate of the image top left corner. + * @param bgcolor + * the background color. + * @param observer + * the ImageObserver object which should be notified about image + * loading process. + * @return true, if loading image is successful or image is null, false + * otherwise. */ public abstract boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer); /** - * Draws the specified image. - * The top left corner of image will be drawn at point (x, y) - * in current coordinate system. The image loading process notifies the - * specified Image Observer. This method returns true if the image - * has loaded, overwise it returns false. + * Draws the specified image. The top left corner of image will be drawn at + * point (x, y) in current coordinate system. The image loading process + * notifies the specified Image Observer. This method returns true if the + * image has loaded, otherwise it returns false. * - * @param img the image which will be drawn. - * @param x the X coordinate of the image top left corner. - * @param y the Y coordinate of the image top left corner. - * @param observer the ImageObserver object which should be notified about image loading process. - * - * @return true, if loading image is successful or image is null, overwise false. + * @param img + * the image which will be drawn. + * @param x + * the X coordinate of the image top left corner. + * @param y + * the Y coordinate of the image top left corner. + * @param observer + * the ImageObserver object which should be notified about image + * loading process. + * @return true, if loading image is successful or image is null, otherwise + * false. */ public abstract boolean drawImage(Image img, int x, int y, ImageObserver observer); /** - * Scales the specified image to fit in the specified rectangle and - * draws it with the defined background color. The top left corner - * of the image will be drawn at the point (x, y) in current coordinate - * system. The non-opaque pixels will be drawn in the background color. - * The image loading process notifies the specified Image Observer. - * This method returns true if the image has loaded, overwise it returns false. - * - * @param img the image which will be drawn. - * @param x the X coordinate of the image's top left corner. - * @param y the Y coordinate of the image's top left corner. - * @param width the width of rectangle which scales the image. - * @param height the height of rectangle which scales the image. - * @param bgcolor the background color. - * @param observer the ImageObserver object which should be notified about image loading process. - * - * @return true, if loading image is successful or image is null, overwise false. - */ - public abstract boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer); - - /** - * Scales the specified image to fit in the specified rectangle and - * draws it. The top left corner of the image will be drawn at the - * point (x, y) in current coordinate system. The image loading process - * notifies the specified Image Observer. - * This method returns true if the image has loaded, overwise it returns false. - * - * @param img the image which will be drawn. - * @param x the X coordinate of the image top left corner. - * @param y the Y coordinate of the image top left corner. - * @param width the width of rectangle which scales the image. - * @param height the height of rectangle which scales the image. - * @param observer the ImageObserver object which should be notified about image loading process. - * - * @return true, if loading image is successful or image is null, overwise false. - */ - public abstract boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer); - - /** - * Scales the specified area of the specified image to fit in the rectangle area - * defined by its corners coordinates and draws the sub-image with the specified - * background color. The sub-image to be drawn is defined by its top left - * corner coordinates (sx1, sy1) and bottom right corner coordinates (sx2, sy2) - * computed with respect to the origin (top left corner) of the source image. - * The non opaque pixels will be drawn in the background color. The - * image loading process notifies specified Image Observer. - * This method returns true if the image - * has loaded, overwise it returns false. - * - * @param img the image which will be drawn. - * @param dx1 the X top left corner coordinate of the destination rectangle area. - * @param dy1 the Y top left corner coordinate of the destination rectangle area. - * @param dx2 the X bottom right corner coordinate of the destination rectangle area. - * @param dy2 the Y bottom right corner coordinate of the destination rectangle area. - * @param sx1 the X top left corner coordinate of the area to be drawn within the source image. - * @param sy1 the Y top left corner coordinate of the area to be drawn within the source image. - * @param sx2 the X bottom right corner coordinate of the area to be drawn within the source image. - * @param sy2 the Y bottom right corner coordinate of the area to be drawn within the source image. - * @param bgcolor the background color. - * @param observer the ImageObserver object which should be notified about image loading process. - * - * @return true, if loading image is successful or image is null, overwise false. - */ - public abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer); - - /** - * Scales the specified area of the specified image to fit in the rectangle area - * defined by its corners coordinates and draws the sub-image. The sub-image - * to be drawn is defined by its top left - * corner coordinates (sx1, sy1) and bottom right corner coordinates (sx2, sy2) - * computed with respect to the origin (top left corner) of the source image. - * The image loading process notifies specified Image Observer. - * This method returns true if the image - * has loaded, overwise it returns false. - * - * @param img the image which will be drawn. - * @param dx1 the X top left corner coordinate of the destination rectangle area. - * @param dy1 the Y top left corner coordinate of the destination rectangle area. - * @param dx2 the X bottom right corner coordinate of the destination rectangle area. - * @param dy2 the Y bottom right corner coordinate of the destination rectangle area. - * @param sx1 the X top left corner coordinate of the area to be drawn within the source image. - * @param sy1 the Y top left corner coordinate of the area to be drawn within the source image. - * @param sx2 the X bottom right corner coordinate of the area to be drawn within the source image. - * @param sy2 the Y bottom right corner coordinate of the area to be drawn within the source image. - * @param observer the ImageObserver object which should be notified about image loading process. - * - * @return true, if loading image is successful or image is null, overwise false. - */ - public abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer); - - /** - * Draws a line from the point (x1, y1) to the point (x2, y2). - * This method draws the line with current color - * which can be changed by setColor(Color c) method. - * - * @param x1 the X coordinate of the first point. - * @param y1 the Y coordinate of the first point. - * @param x2 the X coordinate of the second point. - * @param y2 the Y coordinate of the second point. + * Scales the specified image to fit in the specified rectangle and draws it + * with the defined background color. The top left corner of the image will + * be drawn at the point (x, y) in current coordinate system. The non-opaque + * pixels will be drawn in the background color. The image loading process + * notifies the specified Image Observer. This method returns true if the + * image has loaded, otherwise it returns false. + * + * @param img + * the image which will be drawn. + * @param x + * the X coordinate of the image's top left corner. + * @param y + * the Y coordinate of the image's top left corner. + * @param width + * the width of rectangle which scales the image. + * @param height + * the height of rectangle which scales the image. + * @param bgcolor + * the background color. + * @param observer + * the ImageObserver object which should be notified about image + * loading process. + * @return true, if loading image is successful or image is null, otherwise + * false. + */ + public abstract boolean drawImage(Image img, int x, int y, int width, int height, + Color bgcolor, ImageObserver observer); + + /** + * Scales the specified image to fit in the specified rectangle and draws + * it. The top left corner of the image will be drawn at the point (x, y) in + * current coordinate system. The image loading process notifies the + * specified Image Observer. This method returns true if the image has + * loaded, otherwise it returns false. + * + * @param img + * the image which will be drawn. + * @param x + * the X coordinate of the image top left corner. + * @param y + * the Y coordinate of the image top left corner. + * @param width + * the width of rectangle which scales the image. + * @param height + * the height of rectangle which scales the image. + * @param observer + * the ImageObserver object which should be notified about image + * loading process. + * @return true, if loading image is successful or image is null, otherwise + * false. + */ + public abstract boolean drawImage(Image img, int x, int y, int width, int height, + ImageObserver observer); + + /** + * Scales the specified area of the specified image to fit in the rectangle + * area defined by its corners coordinates and draws the sub-image with the + * specified background color. The sub-image to be drawn is defined by its + * top left corner coordinates (sx1, sy1) and bottom right corner + * coordinates (sx2, sy2) computed with respect to the origin (top left + * corner) of the source image. The non opaque pixels will be drawn in the + * background color. The image loading process notifies specified Image + * Observer. This method returns true if the image has loaded, otherwise it + * returns false. + * + * @param img + * the image which will be drawn. + * @param dx1 + * the X top left corner coordinate of the destination rectangle + * area. + * @param dy1 + * the Y top left corner coordinate of the destination rectangle + * area. + * @param dx2 + * the X bottom right corner coordinate of the destination + * rectangle area. + * @param dy2 + * the Y bottom right corner coordinate of the destination + * rectangle area. + * @param sx1 + * the X top left corner coordinate of the area to be drawn + * within the source image. + * @param sy1 + * the Y top left corner coordinate of the area to be drawn + * within the source image. + * @param sx2 + * the X bottom right corner coordinate of the area to be drawn + * within the source image. + * @param sy2 + * the Y bottom right corner coordinate of the area to be drawn + * within the source image. + * @param bgcolor + * the background color. + * @param observer + * the ImageObserver object which should be notified about image + * loading process. + * @return true, if loading image is successful or image is null, false + * otherwise. + */ + public abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, + int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer); + + /** + * Scales the specified area of the specified image to fit in the rectangle + * area defined by its corners coordinates and draws the sub-image. The + * sub-image to be drawn is defined by its top left corner coordinates (sx1, + * sy1) and bottom right corner coordinates (sx2, sy2) computed with respect + * to the origin (top left corner) of the source image. The image loading + * process notifies specified Image Observer. This method returns true if + * the image has loaded, otherwise it returns false. + * + * @param img + * the image which will be drawn. + * @param dx1 + * the X top left corner coordinate of the destination rectangle + * area. + * @param dy1 + * the Y top left corner coordinate of the destination rectangle + * area. + * @param dx2 + * the X bottom right corner coordinate of the destination + * rectangle area. + * @param dy2 + * the Y bottom right corner coordinate of the destination + * rectangle area. + * @param sx1 + * the X top left corner coordinate of the area to be drawn + * within the source image. + * @param sy1 + * the Y top left corner coordinate of the area to be drawn + * within the source image. + * @param sx2 + * the X bottom right corner coordinate of the area to be drawn + * within the source image. + * @param sy2 + * the Y bottom right corner coordinate of the area to be drawn + * within the source image. + * @param observer + * the ImageObserver object which should be notified about image + * loading process. + * @return true, if loading image is successful or image is null, false + * otherwise. + */ + public abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, + int sy1, int sx2, int sy2, ImageObserver observer); + + /** + * Draws a line from the point (x1, y1) to the point (x2, y2). This method + * draws the line with current color which can be changed by setColor(Color + * c) method. + * + * @param x1 + * the X coordinate of the first point. + * @param y1 + * the Y coordinate of the first point. + * @param x2 + * the X coordinate of the second point. + * @param y2 + * the Y coordinate of the second point. */ public abstract void drawLine(int x1, int y1, int x2, int y2); /** - * Draws the ouline of an oval to fit in the rectangle defined - * by the given width, height, and top left corner. + * Draws the outline of an oval to fit in the rectangle defined by the given + * width, height, and top left corner. * - * @param x the X top left corner oval coordinate - * @param y the Y top left corner oval coordinate - * @param width the oval width - * @param height the oval height + * @param x + * the X top left corner oval coordinate. + * @param y + * the Y top left corner oval coordinate. + * @param width + * the oval width. + * @param height + * the oval height. */ public abstract void drawOval(int x, int y, int width, int height); /** - * Draws the outline of a polygon. The polygon vertices are defined by points - * with xpoints[i], ypoints[i] as coordinates. The polygon edges are the - * lines from the points with (xpoints[i-1], ypoints[i-1]) coordinates to - * the points with (xpoints[i], ypoints[i]) coordinates, for 0 < i < npoints +1. + * Draws the outline of a polygon. The polygon vertices are defined by + * points with xpoints[i], ypoints[i] as coordinates. The polygon edges are + * the lines from the points with (xpoints[i-1], ypoints[i-1]) coordinates + * to the points with (xpoints[i], ypoints[i]) coordinates, for 0 < i < + * npoints +1. * - * @param xpoints the array of X coordinates of the polygon vertices. - * @param ypoints the array of Y coordinates of the polygon vertices. - * @param npoints the number of polygon vertices/points. + * @param xpoints + * the array of X coordinates of the polygon vertices. + * @param ypoints + * the array of Y coordinates of the polygon vertices. + * @param npoints + * the number of polygon vertices/points. */ public abstract void drawPolygon(int[] xpoints, int[] ypoints, int npoints); /** - * Draws a set of connected lines which are defined by the x and y coordinate arrays. - * The polyline is closed if coordinates of the first point are the same as - * coordinates of the last point. + * Draws a set of connected lines which are defined by the x and y + * coordinate arrays. The polyline is closed if coordinates of the first + * point are the same as coordinates of the last point. * - * @param xpoints the array of X point coordinates. - * @param ypoints the array of Y point coordinates. - * @param npoints the number of points. + * @param xpoints + * the array of X point coordinates. + * @param ypoints + * the array of Y point coordinates. + * @param npoints + * the number of points. */ public abstract void drawPolyline(int[] xpoints, int[] ypoints, int npoints); /** * Draws the outline of a rectangle with round corners. * - * @param x the X coordinate of the rectangle's top left corner. - * @param y the Y coordinate of the rectangle's top left corner. - * @param width the width of the rectangle. - * @param height the height of the rectangle. - * @param arcWidth the arc width for the corners. - * @param arcHeight the arc height for the corners. - */ - public abstract void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight); - - /** - * Draws a text defined by an iterator. The iterator should specify the font - * for every character. - * - * @param iterator the iterator. - * @param x the X coordinate of the firt character. - * @param y the Y coordinate of the first character. + * @param x + * the X coordinate of the rectangle's top left corner. + * @param y + * the Y coordinate of the rectangle's top left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. + * @param arcWidth + * the arc width for the corners. + * @param arcHeight + * the arc height for the corners. + */ + public abstract void drawRoundRect(int x, int y, int width, int height, int arcWidth, + int arcHeight); + + /** + * Draws a text defined by an iterator. The iterator should specify the font + * for every character. + * + * @param iterator + * the iterator. + * @param x + * the X coordinate of the first character. + * @param y + * the Y coordinate of the first character. */ public abstract void drawString(AttributedCharacterIterator iterator, int x, int y); @@ -565,86 +712,117 @@ public abstract class Graphics { * Draws a text defined by a string. This method draws the text with current * font and color. * - * @param str the string. - * @param x the X coordinate of the firt character. - * @param y the Y coordinate of the first character. + * @param str + * the string. + * @param x + * the X coordinate of the first character. + * @param y + * the Y coordinate of the first character. */ public abstract void drawString(String str, int x, int y); /** - * Fills the arc covering the rectangle and using the current color. - * The rectangle is defined by the origin point (X, Y) and dimentions (width and height). - * The arc center is the the center of specified rectangle. - * The angle origin is at the 3 o'clock position, and a positive angle gives + * Fills the arc covering the rectangle and using the current color. The + * rectangle is defined by the origin point (X, Y) and dimensions (width and + * height). The arc center is the the center of specified rectangle. The + * angle origin is at the 3 o'clock position, and a positive angle gives * counter-clockwise rotation, a negative angle gives clockwise rotation. - * - * @param x the X origin coordinate of the rectangle which scales the arc. - * @param y the Y origin coordinate of the rectangle which scales the arc. - * @param width the width of the rectangle which scales the arc. - * @param height the height of the rectangle which scales the arc. - * @param sa start angle - the origin angle of arc. - * @param ea arc angle - the angular arc value relative to the start angle. + * + * @param x + * the X origin coordinate of the rectangle which scales the arc. + * @param y + * the Y origin coordinate of the rectangle which scales the arc. + * @param width + * the width of the rectangle which scales the arc. + * @param height + * the height of the rectangle which scales the arc. + * @param sa + * start angle - the origin angle of arc. + * @param ea + * arc angle - the angular arc value relative to the start angle. */ public abstract void fillArc(int x, int y, int width, int height, int sa, int ea); /** - * Fills an oval with the current color where the oval is defined by the + * Fills an oval with the current color where the oval is defined by the * bounding rectangle with the given width, height, and top left corner. * - * @param x the X top left corner oval coordinate. - * @param y the Y top left corner oval coordinate. - * @param width the oval width. - * @param height the oval height. + * @param x + * the X top left corner oval coordinate. + * @param y + * the Y top left corner oval coordinate. + * @param width + * the oval width. + * @param height + * the oval height. */ public abstract void fillOval(int x, int y, int width, int height); /** - * Fills a polygon with the current color. The polygon vertices are defined by the points - * with xpoints[i], ypoints[i] as coordinates. The polygon edges are the - * lines from the points with (xpoints[i-1], ypoints[i-1]) coordinates to - * the points with (xpoints[i], ypoints[i]) coordinates, for 0 < i < npoints +1. + * Fills a polygon with the current color. The polygon vertices are defined + * by the points with xpoints[i], ypoints[i] as coordinates. The polygon + * edges are the lines from the points with (xpoints[i-1], ypoints[i-1]) + * coordinates to the points with (xpoints[i], ypoints[i]) coordinates, for + * 0 < i < npoints +1. * - * @param xpoints the array of X coordinates of the polygon vertices. - * @param ypoints the array of Y coordinates of the polygon vertices. - * @param npoints the number of polygon vertices/points. + * @param xpoints + * the array of X coordinates of the polygon vertices. + * @param ypoints + * the array of Y coordinates of the polygon vertices. + * @param npoints + * the number of polygon vertices/points. */ public abstract void fillPolygon(int[] xpoints, int[] ypoints, int npoints); /** - * Fills a rectangle with the current color. - * The rectangle is defined by its width and length and top left corner coordinates. + * Fills a rectangle with the current color. The rectangle is defined by its + * width and length and top left corner coordinates. * - * @param x the X coordinate of the rectangle's top left corner. - * @param y the Y coordinate of the rectangle's top left corner. - * @param width the width of rectangle. - * @param height the height of rectangle. + * @param x + * the X coordinate of the rectangle's top left corner. + * @param y + * the Y coordinate of the rectangle's top left corner. + * @param width + * the width of rectangle. + * @param height + * the height of rectangle. */ public abstract void fillRect(int x, int y, int width, int height); /** * Fills a round cornered rectangle with the current color. * - * @param x the X coordinate of the top left corner of the bounding rectangle. - * @param y the Y coordinate of the top left corner of the bounding rectangle. - * @param width the width of the bounding rectangle. - * @param height the height of the bounding rectangle. - * @param arcWidth the arc width at the corners. - * @param arcHeight the arc height at the corners. + * @param x + * the X coordinate of the top left corner of the bounding + * rectangle. + * @param y + * the Y coordinate of the top left corner of the bounding + * rectangle. + * @param width + * the width of the bounding rectangle. + * @param height + * the height of the bounding rectangle. + * @param arcWidth + * the arc width at the corners. + * @param arcHeight + * the arc height at the corners. */ - public abstract void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight); + public abstract void fillRoundRect(int x, int y, int width, int height, int arcWidth, + int arcHeight); /** - * Gets the clipping area. - * <br> <br> - * + * Gets the clipping area. <br> + * <br> + * * @return a Shape object of the clipping area or null if it is not set. */ public abstract Shape getClip(); /** * Gets the bounds of the current clipping area as a rectangle. - * - * @return a Rectangle object which represents the bounds of the current clipping area. + * + * @return a Rectangle object which represents the bounds of the current + * clipping area. */ public abstract Rectangle getClipBounds(); @@ -663,75 +841,84 @@ public abstract class Graphics { public abstract Font getFont(); /** - * Gets the font metrics of the specified font. - * The font metrics object contains information about the rendering of a particular font. - * - * @param font the specified font + * Gets the font metrics of the specified font. The font metrics object + * contains information about the rendering of a particular font. * + * @param font + * the specified font. * @return the font metrics for the specified font. */ public abstract FontMetrics getFontMetrics(Font font); /** - * Sets the new clipping area specified by rectangle. The new clipping area - * doesn't depend on the window's visibility. Rendering operations can't be performed - * outside new clipping area. + * Sets the new clipping area specified by rectangle. The new clipping area + * doesn't depend on the window's visibility. Rendering operations can't be + * performed outside new clipping area. * - * @param x the X coordinate of the new clipping rectangle. - * @param y the Y coordinate of the new clipping rectangle. - * @param width the width of the new clipping rectangle. - * @param height the height of the new clipping rectangle. + * @param x + * the X coordinate of the new clipping rectangle. + * @param y + * the Y coordinate of the new clipping rectangle. + * @param width + * the width of the new clipping rectangle. + * @param height + * the height of the new clipping rectangle. */ public abstract void setClip(int x, int y, int width, int height); /** - * Sets the new clipping area to be the area specified by Shape object. - * The new clipping area doesn't depend on the window's visibility. - * Rendering operations can't be performed outside new clipping area. + * Sets the new clipping area to be the area specified by Shape object. The + * new clipping area doesn't depend on the window's visibility. Rendering + * operations can't be performed outside new clipping area. * - * @param clip a Shape object which representes new clipping area. + * @param clip + * the Shape object which represents new clipping area. */ public abstract void setClip(Shape clip); /** - * Sets the current Graphics color. All rendering operations with this Graphics - * will use this color. + * Sets the current Graphics color. All rendering operations with this + * Graphics will use this color. * - * @param c the new color. + * @param c + * the new color. */ public abstract void setColor(Color c); /** - * Sets the current Graphics font. All rendering operations with this Graphics - * will use this font. + * Sets the current Graphics font. All rendering operations with this + * Graphics will use this font. * - * @param font the new font. + * @param font + * the new font. */ public abstract void setFont(Font font); /** - * Sets the paint mode for the Graphics which overwrites all rendering + * Sets the paint mode for the Graphics which overwrites all rendering * operations with the current color. - * */ public abstract void setPaintMode(); /** - * Sets the XOR mode for the Graphics which changes a pixel from - * the current color to the specified XOR color. - * <br> <br> + * Sets the XOR mode for the Graphics which changes a pixel from the current + * color to the specified XOR color. <br> + * <br> * - * @param color the new XOR mode + * @param color + * the new XOR mode. */ public abstract void setXORMode(Color color); /** - * Translates the origin of Graphics current coordinate system - * to the point with X, Y coordinates in the current coordinate system. - * All rendering operation in this Graphics will be related to the new origin. + * Translates the origin of Graphics current coordinate system to the point + * with X, Y coordinates in the current coordinate system. All rendering + * operation in this Graphics will be related to the new origin. * - * @param x the X coordinate of the origin - * @param y the Y coordinate of the origin + * @param x + * the X coordinate of the origin. + * @param y + * the Y coordinate of the origin. */ public abstract void translate(int x, int y); } diff --git a/awt/java/awt/Graphics2D.java b/awt/java/awt/Graphics2D.java index 2ff5e0c..04a7319 100644 --- a/awt/java/awt/Graphics2D.java +++ b/awt/java/awt/Graphics2D.java @@ -30,19 +30,22 @@ import java.util.Map; /** * The Graphics2D class extends Graphics class and provides more capabilities - * for rendering text, images, shapes. This provides methods to peform - * transformation of coordinate system, color management, and text layout. - * The following attributes exist for rendering: + * for rendering text, images, shapes. This provides methods to perform + * transformation of coordinate system, color management, and text layout. The + * following attributes exist for rendering: * <ul> * <li>Color - current Graphics2D color;</li> * <li>Font - current Graphics2D font;</li> - * <li>Stroke - pen with a width of 1 pixel;</li> + * <li>Stroke - pen with a width of 1 pixel;</li> * <li>Transform - current Graphics2D Transformation;</li> - * <li>Composite - alpha compositing rules for combining source and destination colors.</li> - * </ul> + * <li>Composite - alpha compositing rules for combining source and destination + * colors.</li> + * </ul> + * + * @since Android 1.0 */ public abstract class Graphics2D extends Graphics { - + /** * Instantiates a new Graphics2D object. This constructor should never be * called directly. @@ -52,41 +55,46 @@ public abstract class Graphics2D extends Graphics { } /** - * Adds preferences for the rendering algorithms. The preferences - * are arbitrary and specified by Map objects. All specified by Map object - * preferencies can be modified. + * Adds preferences for the rendering algorithms. The preferences are + * arbitrary and specified by Map objects. All specified by Map object + * preferences can be modified. * - * @param hints the rendering hints. + * @param hints + * the rendering hints. */ public abstract void addRenderingHints(Map<?, ?> hints); /** - * Intersects the current clipping area with the specified Shape - * and the result becomes a new clipping area. - * If current clipping area is not defined, the Shape - * becomes the new clipping area. No rendering operations - * are allowed outside the clipping area. + * Intersects the current clipping area with the specified Shape and the + * result becomes a new clipping area. If current clipping area is not + * defined, the Shape becomes the new clipping area. No rendering operations + * are allowed outside the clipping area. * - * @param s the specified Shape object which will be intersected - * with current clipping area. + * @param s + * the specified Shape object which will be intersected with + * current clipping area. */ public abstract void clip(Shape s); /** * Draws the outline of the specified Shape. * - * @param s the Shape which ouline is drawn. + * @param s + * the Shape which outline is drawn. */ public abstract void draw(Shape s); /** - * Draws the specified GlyphVector object's text at the point x, y. + * Draws the specified GlyphVector object's text at the point x, y. * - * @param g the GlyphVector object to be drawn. - * @param x the X position where the GlyphVector's text should - * be rendered. - * @param y the Y position where the GlyphVector's text should - * be rendered. + * @param g + * the GlyphVector object to be drawn. + * @param x + * the X position where the GlyphVector's text should be + * rendered. + * @param y + * the Y position where the GlyphVector's text should be + * rendered. */ public abstract void drawGlyphVector(GlyphVector g, float x, float y); @@ -94,87 +102,107 @@ public abstract class Graphics2D extends Graphics { * Draws the BufferedImage -- modified according to the operation * BufferedImageOp -- at the point x, y. * - * @param img the BufferedImage to be rendered. - * @param op the filter to be applied to the image before rendering. - * @param x the X coordinate of the point where the image's upper left corner - * will be placed. - * @param y the Y coordinate of the point where the image's upper left corner - * will be placed. + * @param img + * the BufferedImage to be rendered. + * @param op + * the filter to be applied to the image before rendering. + * @param x + * the X coordinate of the point where the image's upper left + * corner will be placed. + * @param y + * the Y coordinate of the point where the image's upper left + * corner will be placed. */ public abstract void drawImage(BufferedImage img, BufferedImageOp op, int x, int y); /** - * Draws BufferedImage transformed from image space into user space + * Draws BufferedImage transformed from image space into user space * according to the AffineTransform xform and notifies the ImageObserver. - * - * @param img the BufferedImage to be rendered. - * @param xform the affine transformation from the image to the user space. - * @param obs the ImageObserver to be notified about the image conversion. * - * @return true, if the image is successfully loaded and rendered, - * or it's null, otherwise false. + * @param img + * the BufferedImage to be rendered. + * @param xform + * the affine transformation from the image to the user space. + * @param obs + * the ImageObserver to be notified about the image conversion. + * @return true, if the image is successfully loaded and rendered, or it's + * null, otherwise false. */ public abstract boolean drawImage(Image img, AffineTransform xform, ImageObserver obs); /** - * Draws a RenderableImage which is transformed from image space into user + * Draws a RenderableImage which is transformed from image space into user * according to the AffineTransform xform. - * - * @param img the RenderableImage to be rendered. - * @param xform the affine transformation from image to user space. + * + * @param img + * the RenderableImage to be rendered. + * @param xform + * the affine transformation from image to user space. */ public abstract void drawRenderableImage(RenderableImage img, AffineTransform xform); /** - * Draws a RenderedImage which is transformed from image space into user + * Draws a RenderedImage which is transformed from image space into user * according to the AffineTransform xform. - * - * @param img the RenderedImage to be rendered. - * @param xform the affine transformation from image to user space. + * + * @param img + * the RenderedImage to be rendered. + * @param xform + * the affine transformation from image to user space. */ public abstract void drawRenderedImage(RenderedImage img, AffineTransform xform); /** - * Draws the string specified by the AttributedCharacterIterator. - * The first character's position is specified by the X, Y parameters. + * Draws the string specified by the AttributedCharacterIterator. The first + * character's position is specified by the X, Y parameters. * - * @param iterator whose text is drawn. - * @param x the X position where the first character is drawn. - * @param y the Y position where the first character is drawn. + * @param iterator + * whose text is drawn. + * @param x + * the X position where the first character is drawn. + * @param y + * the Y position where the first character is drawn. */ public abstract void drawString(AttributedCharacterIterator iterator, float x, float y); /** - * Draws the string specified by the AttributedCharacterIterator. - * The first character's position is specified by the X, Y parameters. - * - * @param iterator whose text is drawn. - * @param x the X position where the first character is drawn. - * @param y the Y position where the first character is drawn. + * Draws the string specified by the AttributedCharacterIterator. The first + * character's position is specified by the X, Y parameters. * + * @param iterator + * whose text is drawn. + * @param x + * the X position where the first character is drawn. + * @param y + * the Y position where the first character is drawn. * @see java.awt.Graphics#drawString(AttributedCharacterIterator, int, int) */ @Override public abstract void drawString(AttributedCharacterIterator iterator, int x, int y); /** - * Draws the String whose the first character position is specified - * by the parameters X, Y. + * Draws the String whose the first character position is specified by the + * parameters X, Y. * - * @param s the String to be drawn. - * @param x the X position of the first character. - * @param y the Y position of the first character. + * @param s + * the String to be drawn. + * @param x + * the X position of the first character. + * @param y + * the Y position of the first character. */ public abstract void drawString(String s, float x, float y); /** - * Draws the String whose the first character coordinates are specified - * by the parameters X, Y. - * - * @param str the String to be drawn. - * @param x the X coordinate of the first character. - * @param y the Y coordinate of the first character. + * Draws the String whose the first character coordinates are specified by + * the parameters X, Y. * + * @param str + * the String to be drawn. + * @param x + * the X coordinate of the first character. + * @param y + * the Y coordinate of the first character. * @see java.awt.Graphics#drawString(String, int, int) */ @Override @@ -183,7 +211,8 @@ public abstract class Graphics2D extends Graphics { /** * Fills the interior of the specified Shape. * - * @param s the Shape to be filled. + * @param s + * the Shape to be filled. */ public abstract void fill(Shape s); @@ -204,7 +233,7 @@ public abstract class Graphics2D extends Graphics { /** * Gets the device configuration. * - * @return the device configuration + * @return the device configuration. */ public abstract GraphicsConfiguration getDeviceConfiguration(); @@ -223,17 +252,17 @@ public abstract class Graphics2D extends Graphics { public abstract Paint getPaint(); /** - * Gets the value of single preference for specified key. - * - * @param key the specified key of the rendering hint. + * Gets the value of single preference for specified key. * + * @param key + * the specified key of the rendering hint. * @return the value of rendering hint for specified key. */ public abstract Object getRenderingHint(RenderingHints.Key key); /** - * Gets the set of the rendering preferences as a collection of - * key/value pairs. + * Gets the set of the rendering preferences as a collection of key/value + * pairs. * * @return the RenderingHints which contains the rendering preferences. */ @@ -254,172 +283,196 @@ public abstract class Graphics2D extends Graphics { public abstract AffineTransform getTransform(); /** - * Determines wether or not the specified Shape intersects the specified - * Rectangle. If the onStroke parameter is true, this method - * checks whether or not the specified Shape outline intersects the specified - * Rectangle, otherwise this method checks whether or not the specified - * Shape's interior intersects the specified Rectangle. + * Determines whether or not the specified Shape intersects the specified + * Rectangle. If the onStroke parameter is true, this method checks whether + * or not the specified Shape outline intersects the specified Rectangle, + * otherwise this method checks whether or not the specified Shape's + * interior intersects the specified Rectangle. * - * @param rect the specified Rectangle. - * @param s the Shape to check for intersection. - * @param onStroke the parameter determines whether or not this method checks - * for intersection of the Shape outline or of the Shape interior with - * the Rectangle. - * - * @return true, if there is a hit, otherwise false. + * @param rect + * the specified Rectangle. + * @param s + * the Shape to check for intersection. + * @param onStroke + * the parameter determines whether or not this method checks for + * intersection of the Shape outline or of the Shape interior + * with the Rectangle. + * @return true, if there is a hit, false otherwise. */ public abstract boolean hit(Rectangle rect, Shape s, boolean onStroke); /** * Performs a rotation transform relative to current Graphics2D Transform. - * The coordinate system is rotated by the specified angle in radians relative to - * current origin. + * The coordinate system is rotated by the specified angle in radians + * relative to current origin. * - * @param theta the angle of rotation in radians. + * @param theta + * the angle of rotation in radians. */ public abstract void rotate(double theta); /** - * Performs a translated rotation transform relative to current Graphics2D - * Transform. The coordinate system is rotated by the specified angle in radians - * relative to current origin and then moved to point (x, y). - * - * Is this right? + * Performs a translated rotation transform relative to current Graphics2D + * Transform. The coordinate system is rotated by the specified angle in + * radians relative to current origin and then moved to point (x, y). Is + * this right? * - * @param theta the angle of rotation in radians. - * @param x the X coordinate. - * @param y the Y coordinate. + * @param theta + * the angle of rotation in radians. + * @param x + * the X coordinate. + * @param y + * the Y coordinate. */ public abstract void rotate(double theta, double x, double y); /** - * Performs a linear scale transform relative to current Graphics2D Transform. - * The coordinate system is rescaled vertically and horizontally + * Performs a linear scale transform relative to current Graphics2D + * Transform. The coordinate system is rescaled vertically and horizontally * by the specified parameters. * - * @param sx the scaling factor by which the X coordinate is multiplied. - * @param sy the scaling factor by which the Y coordinate is multiplied. + * @param sx + * the scaling factor by which the X coordinate is multiplied. + * @param sy + * the scaling factor by which the Y coordinate is multiplied. */ public abstract void scale(double sx, double sy); /** - * Sets a new background color for clearing rectangular areas. - * The clearRect method uses the current background color. + * Sets a new background color for clearing rectangular areas. The clearRect + * method uses the current background color. * - * @param color the new background color. + * @param color + * the new background color. */ public abstract void setBackground(Color color); /** - * Sets the current composite for Graphics2D. + * Sets the current composite for Graphics2D. * - * @param comp the Composite object. + * @param comp + * the Composite object. */ public abstract void setComposite(Composite comp); /** * Sets the paint for Graphics2D. * - * @param paint the Paint object. + * @param paint + * the Paint object. */ public abstract void setPaint(Paint paint); /** * Sets a key-value pair in the current RenderingHints map. * - * @param key the key of the rendering hint to set. - * @param value the value to set for the rendering hint. + * @param key + * the key of the rendering hint to set. + * @param value + * the value to set for the rendering hint. */ public abstract void setRenderingHint(RenderingHints.Key key, Object value); /** - * Replaces the current rendering hints with the specified rendering preferences. + * Replaces the current rendering hints with the specified rendering + * preferences. * - * @param hints the new Map of rendering hints. + * @param hints + * the new Map of rendering hints. */ public abstract void setRenderingHints(Map<?, ?> hints); /** * Sets the stroke for the Graphics2D. * - * @param s the Stroke object. + * @param s + * the Stroke object. */ public abstract void setStroke(Stroke s); /** - * Overwrite the current Transform of the Graphics2D. The specified Transform - * should be received from the getTransform() method and should be used - * only for restoring the original Graphics2D transform after calling - * draw or fill methods. + * Overwrite the current Transform of the Graphics2D. The specified + * Transform should be received from the getTransform() method and should be + * used only for restoring the original Graphics2D transform after calling + * draw or fill methods. * - * @param Tx the specified Transform. + * @param Tx + * the specified Transform. */ public abstract void setTransform(AffineTransform Tx); /** - * Performs a shear transform relative to current Graphics2D Transform. - * The coordinate system is shifted by the specified multipliers relative to + * Performs a shear transform relative to current Graphics2D Transform. The + * coordinate system is shifted by the specified multipliers relative to * current position. * - * @param shx the multiplier by which the X coordinates shift position - * along X axis as a function of Y coordinates. - * @param shy the multiplier by which the Y coordinates shift position - * along Y axis as a function of X coordinates. + * @param shx + * the multiplier by which the X coordinates shift position along + * X axis as a function of Y coordinates. + * @param shy + * the multiplier by which the Y coordinates shift position along + * Y axis as a function of X coordinates. */ public abstract void shear(double shx, double shy); /** - * Concatenates the AffineTransform object with current Transform - * of this Graphics2D. The transforms are applied in reverse order - * with the last specified transform applied first and the next - * transformation applied to the result of previous transformation. - * More precisely, if Cx is the current Graphics2D transform, the - * transform method's result with Tx as the parameter - * is the transformation Rx, where Rx(p) = Cx(Tx(p)), for p - a point - * in current coordinate system. Rx becomes the current Transform + * Concatenates the AffineTransform object with current Transform of this + * Graphics2D. The transforms are applied in reverse order with the last + * specified transform applied first and the next transformation applied to + * the result of previous transformation. More precisely, if Cx is the + * current Graphics2D transform, the transform method's result with Tx as + * the parameter is the transformation Rx, where Rx(p) = Cx(Tx(p)), for p - + * a point in current coordinate system. Rx becomes the current Transform * for this Graphics2D. * - * @param Tx the AffineTransform object to be concatenated with - * current Transform. + * @param Tx + * the AffineTransform object to be concatenated with current + * Transform. */ public abstract void transform(AffineTransform Tx); /** * Performs a translate transform relative to current Graphics2D Transform. - * The coordinate system is moved by the specified distance relative - * to current position. + * The coordinate system is moved by the specified distance relative to + * current position. * - * @param tx the translation distance along the X axis. - * @param ty the translation distance along the Y axis. + * @param tx + * the translation distance along the X axis. + * @param ty + * the translation distance along the Y axis. */ public abstract void translate(double tx, double ty); /** - * Moves the origin Graphics2D Transform to the point with x, y - * coordinates in current coordinate system. The new origin of coordinate - * system is moved to the (x, y) point accordingly. All rendering and - * transform operations are performed relative to this new origin. - * - * @param x the X coordinate. - * @param y the Y coordinate. + * Moves the origin Graphics2D Transform to the point with x, y coordinates + * in current coordinate system. The new origin of coordinate system is + * moved to the (x, y) point accordingly. All rendering and transform + * operations are performed relative to this new origin. * + * @param x + * the X coordinate. + * @param y + * the Y coordinate. * @see java.awt.Graphics#translate(int, int) */ @Override public abstract void translate(int x, int y); /** - * Fills a 3D rectangle with the current color. - * The rectangle is specified by its width, height, and top left corner - * coordinates. - * - * @param x the X coordinate of the rectangle's top left corner. - * @param y the Y coordinate of the rectangle's top left corner. - * @param width the width of rectangle. - * @param height the height of rectangle. - * @param raised a boolean value that determines whether the rectangle - * is drawn as raised or indented. - * + * Fills a 3D rectangle with the current color. The rectangle is specified + * by its width, height, and top left corner coordinates. + * + * @param x + * the X coordinate of the rectangle's top left corner. + * @param y + * the Y coordinate of the rectangle's top left corner. + * @param width + * the width of rectangle. + * @param height + * the height of rectangle. + * @param raised + * a boolean value that determines whether the rectangle is drawn + * as raised or indented. * @see java.awt.Graphics#fill3DRect(int, int, int, int, boolean) */ @Override @@ -433,15 +486,19 @@ public abstract class Graphics2D extends Graphics { } /** - * Draws the higlighted outline of a rectangle. + * Draws the highlighted outline of a rectangle. * - * @param x the X coordinate of the rectangle's top left corner. - * @param y the Y coordinate of the rectangle's top left corner. - * @param width the width of rectangle. - * @param height the height of rectangle. - * @param raised a boolean value that determines whether the rectangle - * is drawn as raised or indented. - * + * @param x + * the X coordinate of the rectangle's top left corner. + * @param y + * the Y coordinate of the rectangle's top left corner. + * @param width + * the width of rectangle. + * @param height + * the height of rectangle. + * @param raised + * a boolean value that determines whether the rectangle is drawn + * as raised or indented. * @see java.awt.Graphics#draw3DRect(int, int, int, int, boolean) */ @Override diff --git a/awt/java/awt/GraphicsConfiguration.java b/awt/java/awt/GraphicsConfiguration.java index 8bec253..d59e896 100644 --- a/awt/java/awt/GraphicsConfiguration.java +++ b/awt/java/awt/GraphicsConfiguration.java @@ -18,6 +18,7 @@ * @author Alexey A. Petrenko * @version $Revision$ */ + package java.awt; import java.awt.geom.AffineTransform; @@ -30,70 +31,76 @@ import org.apache.harmony.awt.internal.nls.Messages; /** * The GraphicsConfiguration class contains the characteristics of graphics * devices such as a printer or monitor, and represents device's capabilities - * and modes. Many GraphicsConfiguration objects can be associated with - * single graphics device. + * and modes. Many GraphicsConfiguration objects can be associated with single + * graphics device. + * + * @since Android 1.0 */ public abstract class GraphicsConfiguration { - - /** - * Constructor could not be used directly and should be obtained in - * extended classes. - */ + /** + * Constructor could not be used directly and should be obtained in extended + * classes. + */ protected GraphicsConfiguration() { } - - /** - * Creates BufferedImage image object with a data layout and color model - * compatible with this GraphicsConfiguration with specified width - * and height parameters. - * - * @param width the width of BufferedImage. - * @param height the height of BufferedImage. - * - * @return the BufferedImage object with specified width and height - * parameters. - */ + /** + * Creates BufferedImage image object with a data layout and color model + * compatible with this GraphicsConfiguration with specified width and + * height parameters. + * + * @param width + * the width of BufferedImage. + * @param height + * the height of BufferedImage. + * @return the BufferedImage object with specified width and height + * parameters. + */ public abstract BufferedImage createCompatibleImage(int width, int height); /** * Creates a BufferedImage that has the specified width, height, - * transparency and has a data layout and color model compatible with this - * GraphicsConfiguration. - * - * @param width the width of image. - * @param height the height of image. - * @param transparency the transparency mode. + * transparency and has a data layout and color model compatible with this + * GraphicsConfiguration. * + * @param width + * the width of image. + * @param height + * the height of image. + * @param transparency + * the transparency mode. * @return the BufferedImage object. */ public abstract BufferedImage createCompatibleImage(int width, int height, int transparency); /** - * Creates a VolatileImage that has the specified width and height - * and has a data layout and color model compatible with this - * GraphicsConfiguration. - * - * @param width the width of image. - * @param height the height of image. + * Creates a VolatileImage that has the specified width and height and has a + * data layout and color model compatible with this GraphicsConfiguration. * + * @param width + * the width of image. + * @param height + * the height of image. * @return the VolatileImage object. */ public abstract VolatileImage createCompatibleVolatileImage(int width, int height); /** * Creates a VolatileImage that supports the specified width, height, - * transparency and has a data layout and color model compatible with this - * GraphicsConfiguration. - * - * @param width the width of image. - * @param height the height of image. - * @param transparency the transparency mode. + * transparency and has a data layout and color model compatible with this + * GraphicsConfiguration. * + * @param width + * the width of image. + * @param height + * the height of image. + * @param transparency + * the transparency mode. * @return the VolatileImage object. */ - public abstract VolatileImage createCompatibleVolatileImage(int width, int height, int transparency); + public abstract VolatileImage createCompatibleVolatileImage(int width, int height, + int transparency); /** * Gets the bounds of area covered by the GraphicsConfiguration in the @@ -111,20 +118,19 @@ public abstract class GraphicsConfiguration { public abstract ColorModel getColorModel(); /** - * Gets the ColorModel of the GraphicsConfiguration which - * supports specified Transparency. + * Gets the ColorModel of the GraphicsConfiguration which supports specified + * Transparency. * - * @param transparency the Transparency mode: OPAQUE, BITMASK, or - * TRANSLUCENT. - * - * @return the ColorModel of the GraphicsConfiguration which - * supports specified Transparency. + * @param transparency + * the Transparency mode: OPAQUE, BITMASK, or TRANSLUCENT. + * @return the ColorModel of the GraphicsConfiguration which supports + * specified Transparency. */ public abstract ColorModel getColorModel(int transparency); /** - * Gets the default AffineTransform of the GraphicsConfiguration. - * This method translates user coordinates to device coordinates. + * Gets the default AffineTransform of the GraphicsConfiguration. This + * method translates user coordinates to device coordinates. * * @return the default AffineTransform of the GraphicsConfiguration. */ @@ -144,23 +150,24 @@ public abstract class GraphicsConfiguration { */ public abstract AffineTransform getNormalizingTransform(); - /** - * Creates VolatileImage with specified width, height, ImageCapabilities; - * a data layout and color model compatible with this GraphicsConfiguration. - * - * @param width the width of image. - * @param height the height of image. - * @param caps the ImageCapabilities object. - * - * @return the VolatileImage which data layout and color model compatible - * with this GraphicsConfiguration. - * - * @throws AWTException if ImageCapabilities is not supported by the - * GraphicsConfiguration. + * Creates VolatileImage with specified width, height, ImageCapabilities; a + * data layout and color model compatible with this GraphicsConfiguration. + * + * @param width + * the width of image. + * @param height + * the height of image. + * @param caps + * the ImageCapabilities object. + * @return the VolatileImage which data layout and color model compatible + * with this GraphicsConfiguration. + * @throws AWTException + * if ImageCapabilities is not supported by the + * GraphicsConfiguration. */ - public VolatileImage createCompatibleVolatileImage(int width, int height, - ImageCapabilities caps) throws AWTException { + public VolatileImage createCompatibleVolatileImage(int width, int height, ImageCapabilities caps) + throws AWTException { VolatileImage res = createCompatibleVolatileImage(width, height); if (!res.getCapabilities().equals(caps)) { // awt.14A=Can not create VolatileImage with specified capabilities @@ -170,21 +177,23 @@ public abstract class GraphicsConfiguration { } /** - * Creates a VolatileImage with specified width, height, transparency - * and ImageCapabilities; a data layout and color model compatible with - * this GraphicsConfiguration. - * - * @param width the width of image. - * @param height the height of image. - * @param caps the ImageCapabilities object. - * @param transparency the Transparency mode: OPAQUE, BITMASK, or - * TRANSLUCENT. - * - * @return the VolatileImage which data layout and color model compatible - * with this GraphicsConfiguration. - * - * @throws AWTException if ImageCapabilities is not supported by the + * Creates a VolatileImage with specified width, height, transparency and + * ImageCapabilities; a data layout and color model compatible with this * GraphicsConfiguration. + * + * @param width + * the width of image. + * @param height + * the height of image. + * @param caps + * the ImageCapabilities object. + * @param transparency + * the Transparency mode: OPAQUE, BITMASK, or TRANSLUCENT. + * @return the VolatileImage which data layout and color model compatible + * with this GraphicsConfiguration. + * @throws AWTException + * if ImageCapabilities is not supported by the + * GraphicsConfiguration. */ public VolatileImage createCompatibleVolatileImage(int width, int height, ImageCapabilities caps, int transparency) throws AWTException { @@ -199,7 +208,7 @@ public abstract class GraphicsConfiguration { /** * Gets the buffering capabilities of the GraphicsConfiguration. * - * @return the BufferCapabilities object. + * @return the BufferCapabilities object. */ public BufferCapabilities getBufferCapabilities() { return new BufferCapabilities(new ImageCapabilities(false), new ImageCapabilities(false), diff --git a/awt/java/awt/GraphicsDevice.java b/awt/java/awt/GraphicsDevice.java index 8cf700a..9eda4e0 100644 --- a/awt/java/awt/GraphicsDevice.java +++ b/awt/java/awt/GraphicsDevice.java @@ -18,50 +18,61 @@ * @author Alexey A. Petrenko * @version $Revision$ */ + package java.awt; import org.apache.harmony.awt.internal.nls.Messages; /** - * The GraphicsDevice class describes the graphics devices (such as screens - * or printers) which are available in a particular graphics environment. - * Many GraphicsDevice instances can be associated with a single - * GraphicsEnvironment. Each GraphicsDevice has one or more GraphicsConfiguration - * objects which specify the different configurations and modes of GraphicsDevice. + * The GraphicsDevice class describes the graphics devices (such as screens or + * printers) which are available in a particular graphics environment. Many + * GraphicsDevice instances can be associated with a single GraphicsEnvironment. + * Each GraphicsDevice has one or more GraphicsConfiguration objects which + * specify the different configurations and modes of GraphicsDevice. + * + * @since Android 1.0 */ public abstract class GraphicsDevice { - - /** The display mode. */ + + /** + * The display mode. + */ private DisplayMode displayMode; - //???AWT -// private Window fullScreenWindow = null; + // ???AWT + // private Window fullScreenWindow = null; - /** The Constant TYPE_IMAGE_BUFFER indicates a image buffer device. */ + /** + * The Constant TYPE_IMAGE_BUFFER indicates a image buffer device. + */ public static final int TYPE_IMAGE_BUFFER = 2; - /** The Constant TYPE_PRINTER indicates a printer device. */ + /** + * The Constant TYPE_PRINTER indicates a printer device. + */ public static final int TYPE_PRINTER = 1; - /** The Constant TYPE_RASTER_SCREEN indicates a raster screen device. */ + /** + * The Constant TYPE_RASTER_SCREEN indicates a raster screen device. + */ public static final int TYPE_RASTER_SCREEN = 0; - /** - * Constructor is not to be used directly as this class is abstract. - */ + /** + * Constructor is not to be used directly as this class is abstract. + */ protected GraphicsDevice() { - displayMode = new DisplayMode(0, 0, DisplayMode.BIT_DEPTH_MULTI, DisplayMode.REFRESH_RATE_UNKNOWN); + displayMode = new DisplayMode(0, 0, DisplayMode.BIT_DEPTH_MULTI, + DisplayMode.REFRESH_RATE_UNKNOWN); } - - /** - * Returns an array of GraphicsConfiguration objects associated - * with the GraphicsDevice. - * - * @return an array of GraphicsConfiguration objects associated - * with the GraphicsDevice. - */ + /** + * Returns an array of GraphicsConfiguration objects associated with the + * GraphicsDevice. + * + * @return an array of GraphicsConfiguration objects associated with the + * GraphicsDevice. + */ public abstract GraphicsConfiguration[] getConfigurations(); /** @@ -72,41 +83,39 @@ public abstract class GraphicsDevice { public abstract GraphicsConfiguration getDefaultConfiguration(); /** - * Gets the String identifier which associated with the GraphicsDevice in + * Gets the String identifier which associated with the GraphicsDevice in * the GraphicsEnvironment. * - * @return the String identifier of the GraphicsDevice in - * the GraphicsEnvironment. + * @return the String identifier of the GraphicsDevice in the + * GraphicsEnvironment. */ public abstract String getIDstring(); /** - * Gets the type of this GraphicsDevice: - * TYPE_IMAGE_BUFFER, TYPE_PRINTER or TYPE_RASTER_SCREEN. + * Gets the type of this GraphicsDevice: TYPE_IMAGE_BUFFER, TYPE_PRINTER or + * TYPE_RASTER_SCREEN. * - * @return the type of this GraphicsDevice: TYPE_IMAGE_BUFFER, - * TYPE_PRINTER or TYPE_RASTER_SCREEN. + * @return the type of this GraphicsDevice: TYPE_IMAGE_BUFFER, TYPE_PRINTER + * or TYPE_RASTER_SCREEN. */ public abstract int getType(); - - - /** - * Returns the number of bytes available in accelerated - * memory on this device. - * - * @return the number of bytes available accelerated memory. - */ + /** + * Returns the number of bytes available in accelerated memory on this + * device. + * + * @return the number of bytes available accelerated memory. + */ public int getAvailableAcceleratedMemory() { return 0; } - /* ???AWT - public GraphicsConfiguration getBestConfiguration(GraphicsConfigTemplate gct) { - return gct.getBestConfiguration(getConfigurations()); - } - */ - + /* + * ???AWT public GraphicsConfiguration + * getBestConfiguration(GraphicsConfigTemplate gct) { return + * gct.getBestConfiguration(getConfigurations()); } + */ + /** * Gets the current display mode of the GraphicsDevice. * @@ -122,43 +131,43 @@ public abstract class GraphicsDevice { * @return an array of display modes available in this GraphicsDevice. */ public DisplayMode[] getDisplayModes() { - DisplayMode []dms = {displayMode}; - return dms; + DisplayMode[] dms = { + displayMode + }; + return dms; } - /* ???AWT - public Window getFullScreenWindow() { - return fullScreenWindow; - } - */ - + /* + * ???AWT public Window getFullScreenWindow() { return fullScreenWindow; } + */ + /** - * Returns true if this GraphicsDevice supports low-level - * display changes. + * Returns true if this GraphicsDevice supports low-level display changes. * - * @return true, if this GraphicsDevice supports low-level - * display changes; false otherwise. + * @return true, if this GraphicsDevice supports low-level display changes; + * false otherwise. */ public boolean isDisplayChangeSupported() { return false; } /** - * Returns true if this GraphicsDevice supports full screen - * mode. + * Returns true if this GraphicsDevice supports full screen mode. * - * @return true, if this GraphicsDevice supports full screen - * mode; otherwise false. + * @return true, if this GraphicsDevice supports full screen mode, false + * otherwise. */ public boolean isFullScreenSupported() { return false; } - //an array of display modes available in this GraphicsDevice. - + + // an array of display modes available in this GraphicsDevice. + /** * Sets the display mode of this GraphicsDevice. * - * @param dm the new display mode of this GraphicsDevice. + * @param dm + * the new display mode of this GraphicsDevice. */ public void setDisplayMode(DisplayMode dm) { if (!isDisplayChangeSupported()) { @@ -166,7 +175,7 @@ public abstract class GraphicsDevice { throw new UnsupportedOperationException(Messages.getString("awt.122")); //$NON-NLS-1$ } - DisplayMode []dms = getDisplayModes(); + DisplayMode[] dms = getDisplayModes(); for (DisplayMode element : dms) { if (element.equals(dm)) { displayMode = dm; @@ -177,23 +186,11 @@ public abstract class GraphicsDevice { throw new IllegalArgumentException(Messages.getString("awt.123", dm)); //$NON-NLS-1$ } - /* ???AWT - public void setFullScreenWindow(Window w) { - if (w == null) { - fullScreenWindow = null; - return; - } - - fullScreenWindow = w; - - if (isFullScreenSupported()) { - w.enableInputMethods(false); - } else { - w.setSize(displayMode.getWidth(), displayMode.getHeight()); - w.setLocation(0, 0); - } - w.setVisible(true); - w.setAlwaysOnTop(true); - } - */ + /* + * ???AWT public void setFullScreenWindow(Window w) { if (w == null) { + * fullScreenWindow = null; return; } fullScreenWindow = w; if + * (isFullScreenSupported()) { w.enableInputMethods(false); } else { + * w.setSize(displayMode.getWidth(), displayMode.getHeight()); + * w.setLocation(0, 0); } w.setVisible(true); w.setAlwaysOnTop(true); } + */ } diff --git a/awt/java/awt/GraphicsEnvironment.java b/awt/java/awt/GraphicsEnvironment.java index 3b14f55..d527417 100644 --- a/awt/java/awt/GraphicsEnvironment.java +++ b/awt/java/awt/GraphicsEnvironment.java @@ -28,17 +28,20 @@ import org.apache.harmony.awt.ContextStorage; import org.apache.harmony.awt.gl.CommonGraphics2DFactory; /** - * The GraphicsEnvironment class defines a collection of GraphicsDevice - * objects and Font objects which are available for Java application on - * current platform. + * The GraphicsEnvironment class defines a collection of GraphicsDevice objects + * and Font objects which are available for Java application on current + * platform. + * + * @since Android 1.0 */ public abstract class GraphicsEnvironment { - + /** - * Constructor could not be used directly and should be obtained in - * extended classes. + * Constructor could not be used directly and should be obtained in extended + * classes. */ - protected GraphicsEnvironment() {} + protected GraphicsEnvironment() { + } /** * Gets the local GraphicsEnvironment. @@ -46,17 +49,16 @@ public abstract class GraphicsEnvironment { * @return the local GraphicsEnvironment. */ public static GraphicsEnvironment getLocalGraphicsEnvironment() { - synchronized(ContextStorage.getContextLock()) { + synchronized (ContextStorage.getContextLock()) { if (ContextStorage.getGraphicsEnvironment() == null) { - if (isHeadless()) { - ContextStorage.setGraphicsEnvironment(new HeadlessGraphicsEnvironment()); + if (isHeadless()) { + ContextStorage.setGraphicsEnvironment(new HeadlessGraphicsEnvironment()); } else { - CommonGraphics2DFactory g2df = - (CommonGraphics2DFactory) Toolkit.getDefaultToolkit().getGraphicsFactory(); - - ContextStorage.setGraphicsEnvironment( - g2df.createGraphicsEnvironment(ContextStorage.getWindowFactory()) - ); + CommonGraphics2DFactory g2df = (CommonGraphics2DFactory)Toolkit + .getDefaultToolkit().getGraphicsFactory(); + + ContextStorage.setGraphicsEnvironment(g2df + .createGraphicsEnvironment(ContextStorage.getWindowFactory())); } } @@ -65,24 +67,24 @@ public abstract class GraphicsEnvironment { } /** - * Returns whether or not a display, keyboard, and mouse are supported - * in this graphics environment. + * Returns whether or not a display, keyboard, and mouse are supported in + * this graphics environment. * - * @return true, if HeadlessException will be thrown from areas of - * the graphics environment that are dependent on a display, keyboard, - * or mouse; false otherwise. + * @return true, if HeadlessException will be thrown from areas of the + * graphics environment that are dependent on a display, keyboard, + * or mouse, false otherwise. */ public boolean isHeadlessInstance() { return false; } /** - * Checks whether or not a display, keyboard, and mouse are supported - * in this environment. + * Checks whether or not a display, keyboard, and mouse are supported in + * this environment. * - * @return true, if a HeadlessException is thrown from areas of - * the Toolkit and GraphicsEnvironment that are dependent on - * a display, keyboard, or mouse; false otherwise. + * @return true, if a HeadlessException is thrown from areas of the Toolkit + * and GraphicsEnvironment that are dependent on a display, + * keyboard, or mouse, false otherwise. */ public static boolean isHeadless() { return "true".equals(System.getProperty("java.awt.headless")); @@ -92,8 +94,8 @@ public abstract class GraphicsEnvironment { * Gets the maximum bounds of system centered windows. * * @return the maximum bounds of system centered windows. - * - * @throws HeadlessException if isHeadless() method returns true. + * @throws HeadlessException + * if isHeadless() method returns true. */ public Rectangle getMaximumWindowBounds() throws HeadlessException { return getDefaultScreenDevice().getDefaultConfiguration().getBounds(); @@ -103,8 +105,8 @@ public abstract class GraphicsEnvironment { * Gets the Point which should defines the center of system window. * * @return the Point where the system window should be centered. - * - * @throws HeadlessException if isHeadless() method returns true. + * @throws HeadlessException + * if isHeadless() method returns true. */ public Point getCenterPoint() throws HeadlessException { Rectangle mwb = getMaximumWindowBounds(); @@ -112,9 +114,8 @@ public abstract class GraphicsEnvironment { } /** - * Indicates that the primary font should be used. - * Primary font is specified by initial system locale or default encoding). - * + * Indicates that the primary font should be used. Primary font is specified + * by initial system locale or default encoding). */ public void preferLocaleFonts() { // Note: API specification says following: @@ -123,7 +124,8 @@ public abstract class GraphicsEnvironment { // it may have no effect at all." So, doing nothing is an // acceptable behavior for this method. - // For now FontManager uses 1.4 font.properties scheme for font mapping, so + // For now FontManager uses 1.4 font.properties scheme for font mapping, + // so // this method doesn't make any sense. The implementation of this method // which will influence font mapping is postponed until // 1.5 mapping scheme not implemented. @@ -141,7 +143,8 @@ public abstract class GraphicsEnvironment { // it may have no effect at all." So, doing nothing is an // acceptable behavior for this method. - // For now FontManager uses 1.4 font.properties scheme for font mapping, so + // For now FontManager uses 1.4 font.properties scheme for font mapping, + // so // this method doesn't make any sense. The implementation of this method // which will influence font mapping is postponed until // 1.5 mapping scheme not implemented. @@ -153,19 +156,19 @@ public abstract class GraphicsEnvironment { * Creates the Graphics2D object for rendering to the specified * BufferedImage. * - * @param bufferedImage the BufferedImage object. - * - * @return the Graphics2D object which allows to render to the specified - * BufferedImage. + * @param bufferedImage + * the BufferedImage object. + * @return the Graphics2D object which allows to render to the specified + * BufferedImage. */ public abstract Graphics2D createGraphics(BufferedImage bufferedImage); /** - * Gets the array of all available fonts instances in this + * Gets the array of all available fonts instances in this * GraphicsEnviroments. * - * @return the array of all available fonts instances in this - * GraphicsEnviroments. + * @return the array of all available fonts instances in this + * GraphicsEnviroments. */ public abstract Font[] getAllFonts(); @@ -180,11 +183,11 @@ public abstract class GraphicsEnvironment { * Gets the array of all available font family names for the specified * locale. * - * @param locale the Locale object which represents geographical - * region. The default locale is used if locale is null. - * - * @return the array of available font family names for the specified - * locale. + * @param locale + * the Locale object which represents geographical region. The + * default locale is used if locale is null. + * @return the array of available font family names for the specified + * locale. */ public abstract String[] getAvailableFontFamilyNames(Locale locale); @@ -192,18 +195,18 @@ public abstract class GraphicsEnvironment { * Gets the default screen device as GraphicDevice object. * * @return the GraphicDevice object which represents default screen device. - * - * @throws HeadlessException if isHeadless() returns true. + * @throws HeadlessException + * if isHeadless() returns true. */ public abstract GraphicsDevice getDefaultScreenDevice() throws HeadlessException; /** * Gets an array of all available screen devices. * - * @return the array of GraphicsDevice obgects which represents - * all available screen devices. - * - * @throws HeadlessException if isHeadless() returns true. + * @return the array of GraphicsDevice objects which represents all + * available screen devices. + * @throws HeadlessException + * if isHeadless() returns true. */ public abstract GraphicsDevice[] getScreenDevices() throws HeadlessException; } diff --git a/awt/java/awt/HeadlessException.java b/awt/java/awt/HeadlessException.java index 28e463b..ec111f1 100644 --- a/awt/java/awt/HeadlessException.java +++ b/awt/java/awt/HeadlessException.java @@ -18,16 +18,21 @@ * @author Alexey A. Petrenko * @version $Revision$ */ + package java.awt; /** - * The HeadlessException class provides notifications and error messages - * when code that is dependent on a keyboard, display, or mouse is called - * in an environment that does not support a keyboard, display, or mouse. + * The HeadlessException class provides notifications and error messages when + * code that is dependent on a keyboard, display, or mouse is called in an + * environment that does not support a keyboard, display, or mouse. + * + * @since Android 1.0 */ public class HeadlessException extends UnsupportedOperationException { - - /** The Constant serialVersionUID. */ + + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = 167183644944358563L; /** @@ -40,7 +45,8 @@ public class HeadlessException extends UnsupportedOperationException { /** * Instantiates a new headless exception with the specified message. * - * @param msg the String which represents error message. + * @param msg + * the String which represents error message. */ public HeadlessException(String msg) { super(msg); diff --git a/awt/java/awt/HeadlessGraphicsEnvironment.java b/awt/java/awt/HeadlessGraphicsEnvironment.java index 97f88d1..306393f 100644 --- a/awt/java/awt/HeadlessGraphicsEnvironment.java +++ b/awt/java/awt/HeadlessGraphicsEnvironment.java @@ -14,6 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package java.awt; import java.awt.GraphicsDevice; @@ -23,30 +24,32 @@ import org.apache.harmony.awt.gl.CommonGraphicsEnvironment; /** * The HeadlessGraphicsEnvironment class is the CommonGraphicsEnvironment - * implementation to use in the case where the environment lacks display, + * implementation to use in the case where the environment lacks display, * keyboard, and mouse support. + * + * @since Android 1.0 */ public class HeadlessGraphicsEnvironment extends CommonGraphicsEnvironment { - + /** - * Returns whether or not a display, keyboard, and mouse are supported - * in this graphics environment. + * Returns whether or not a display, keyboard, and mouse are supported in + * this graphics environment. * - * @return true, if HeadlessException will be thrown from areas of - * the graphics environment that are dependent on a display, keyboard, - * or mouse; false otherwise. + * @return true, if HeadlessException will be thrown from areas of the + * graphics environment that are dependent on a display, keyboard, + * or mouse, false otherwise. */ @Override public boolean isHeadlessInstance() { return true; } - + /** * Gets the default screen device as GraphicDevice object. * * @return the GraphicDevice object which represents default screen device. - * - * @throws HeadlessException if isHeadless() returns true. + * @throws HeadlessException + * if isHeadless() returns true. */ @Override public GraphicsDevice getDefaultScreenDevice() throws HeadlessException { @@ -56,10 +59,10 @@ public class HeadlessGraphicsEnvironment extends CommonGraphicsEnvironment { /** * Gets an array of all available screen devices. * - * @return the array of GraphicsDevice objects which represents - * all available screen devices. - * - * @throws HeadlessException if isHeadless() returns true. + * @return the array of GraphicsDevice objects which represents all + * available screen devices. + * @throws HeadlessException + * if isHeadless() returns true. */ @Override public GraphicsDevice[] getScreenDevices() throws HeadlessException { diff --git a/awt/java/awt/HeadlessToolkit.java b/awt/java/awt/HeadlessToolkit.java index a7dd557..c64a85a 100644 --- a/awt/java/awt/HeadlessToolkit.java +++ b/awt/java/awt/HeadlessToolkit.java @@ -26,136 +26,75 @@ package java.awt; //import java.awt.dnd.InvalidDnDOperationException; //import java.awt.dnd.peer.DragSourceContextPeer; import java.awt.im.InputMethodHighlight; -import java.awt.image.ColorModel; -//import java.awt.peer.*; +import java.awt.image.ColorModel; //import java.awt.peer.*; //import java.beans.PropertyChangeSupport; import java.util.HashMap; import java.util.Map; import java.util.Properties; -import org.apache.harmony.awt.ComponentInternals; -//import org.apache.harmony.awt.datatransfer.DTK; +import org.apache.harmony.awt.ComponentInternals; //import org.apache.harmony.awt.datatransfer.DTK; import org.apache.harmony.awt.wtk.GraphicsFactory; import org.apache.harmony.awt.wtk.NativeEventQueue; import org.apache.harmony.awt.wtk.WindowFactory; /** - * The HeadlessToolkit class is a subclass of ToolkitImpl to - * be used for graphical environments that lack keyboard and - * mouse capabilities. + * The HeadlessToolkit class is a subclass of ToolkitImpl to be used for + * graphical environments that lack keyboard and mouse capabilities. + * + * @since Android 1.0 */ public final class HeadlessToolkit extends ToolkitImpl { - - //???AWT - /* - @Override - protected ButtonPeer createButton(Button a0) throws HeadlessException { - throw new HeadlessException(); - } - - @Override - protected CheckboxPeer createCheckbox(Checkbox a0) throws HeadlessException { - throw new HeadlessException(); - } - - @Override - protected CheckboxMenuItemPeer createCheckboxMenuItem(CheckboxMenuItem a0) throws HeadlessException { - throw new HeadlessException(); - } - - @Override - protected ChoicePeer createChoice(Choice a0) throws HeadlessException { - throw new HeadlessException(); - } - - public Cursor createCustomCursor(Image img, Point hotSpot, String name) - throws HeadlessException { - throw new HeadlessException(); - } - - @Override - protected DialogPeer createDialog(Dialog a0) throws HeadlessException { - throw new HeadlessException(); - } - - @Override - public <T extends DragGestureRecognizer> T createDragGestureRecognizer( - Class<T> recognizerAbstractClass, DragSource ds, Component c, int srcActions, - DragGestureListener dgl) { - return null; - } - - @Override - public DragSourceContextPeer createDragSourceContextPeer(DragGestureEvent dge) - throws InvalidDnDOperationException { - throw new InvalidDnDOperationException(); - } - - @Override - protected FileDialogPeer createFileDialog(FileDialog a0) throws HeadlessException { - throw new HeadlessException(); - } - - @Override - protected FramePeer createFrame(Frame a0) throws HeadlessException { - throw new HeadlessException(); - } - - @Override - protected LabelPeer createLabel(Label a0) throws HeadlessException { - throw new HeadlessException(); - } - - @Override - protected ListPeer createList(List a0) throws HeadlessException { - throw new HeadlessException(); - } - - @Override - protected MenuPeer createMenu(Menu a0) throws HeadlessException { - throw new HeadlessException(); - } - - @Override - protected MenuBarPeer createMenuBar(MenuBar a0) throws HeadlessException { - throw new HeadlessException(); - } - @Override - protected MenuItemPeer createMenuItem(MenuItem a0) throws HeadlessException { - throw new HeadlessException(); - } - - @Override - protected PopupMenuPeer createPopupMenu(PopupMenu a0) throws HeadlessException { - throw new HeadlessException(); - } - - @Override - protected ScrollbarPeer createScrollbar(Scrollbar a0) throws HeadlessException { - throw new HeadlessException(); - } - - @Override - protected ScrollPanePeer createScrollPane(ScrollPane a0) throws HeadlessException { - throw new HeadlessException(); - } - - @Override - protected TextAreaPeer createTextArea(TextArea a0) throws HeadlessException { - throw new HeadlessException(); - } - - @Override - protected TextFieldPeer createTextField(TextField a0) throws HeadlessException { - throw new HeadlessException(); - } - - @Override - protected WindowPeer createWindow(Window a0) throws HeadlessException { - throw new HeadlessException(); - } - */ + // ???AWT + /* + * @Override protected ButtonPeer createButton(Button a0) throws + * HeadlessException { throw new HeadlessException(); } + * @Override protected CheckboxPeer createCheckbox(Checkbox a0) throws + * HeadlessException { throw new HeadlessException(); } + * @Override protected CheckboxMenuItemPeer + * createCheckboxMenuItem(CheckboxMenuItem a0) throws HeadlessException { + * throw new HeadlessException(); } + * @Override protected ChoicePeer createChoice(Choice a0) throws + * HeadlessException { throw new HeadlessException(); } public Cursor + * createCustomCursor(Image img, Point hotSpot, String name) throws + * HeadlessException { throw new HeadlessException(); } + * @Override protected DialogPeer createDialog(Dialog a0) throws + * HeadlessException { throw new HeadlessException(); } + * @Override public <T extends DragGestureRecognizer> T + * createDragGestureRecognizer( Class<T> recognizerAbstractClass, DragSource + * ds, Component c, int srcActions, DragGestureListener dgl) { return null; + * } + * @Override public DragSourceContextPeer + * createDragSourceContextPeer(DragGestureEvent dge) throws + * InvalidDnDOperationException { throw new InvalidDnDOperationException(); + * } + * @Override protected FileDialogPeer createFileDialog(FileDialog a0) throws + * HeadlessException { throw new HeadlessException(); } + * @Override protected FramePeer createFrame(Frame a0) throws + * HeadlessException { throw new HeadlessException(); } + * @Override protected LabelPeer createLabel(Label a0) throws + * HeadlessException { throw new HeadlessException(); } + * @Override protected ListPeer createList(List a0) throws HeadlessException + * { throw new HeadlessException(); } + * @Override protected MenuPeer createMenu(Menu a0) throws HeadlessException + * { throw new HeadlessException(); } + * @Override protected MenuBarPeer createMenuBar(MenuBar a0) throws + * HeadlessException { throw new HeadlessException(); } + * @Override protected MenuItemPeer createMenuItem(MenuItem a0) throws + * HeadlessException { throw new HeadlessException(); } + * @Override protected PopupMenuPeer createPopupMenu(PopupMenu a0) throws + * HeadlessException { throw new HeadlessException(); } + * @Override protected ScrollbarPeer createScrollbar(Scrollbar a0) throws + * HeadlessException { throw new HeadlessException(); } + * @Override protected ScrollPanePeer createScrollPane(ScrollPane a0) throws + * HeadlessException { throw new HeadlessException(); } + * @Override protected TextAreaPeer createTextArea(TextArea a0) throws + * HeadlessException { throw new HeadlessException(); } + * @Override protected TextFieldPeer createTextField(TextField a0) throws + * HeadlessException { throw new HeadlessException(); } + * @Override protected WindowPeer createWindow(Window a0) throws + * HeadlessException { throw new HeadlessException(); } + */ @Override public Dimension getBestCursorSize(int prefWidth, int prefHeight) throws HeadlessException { @@ -186,25 +125,18 @@ public final class HeadlessToolkit extends ToolkitImpl { public int getMenuShortcutKeyMask() throws HeadlessException { throw new HeadlessException(); } - - //???AWT + + // ???AWT /* - @Override - NativeEventQueue getNativeEventQueue() throws HeadlessException { - throw new HeadlessException(); - } - - @Override - public PrintJob getPrintJob(Frame frame, String jobtitle, JobAttributes jobAttributes, - PageAttributes pageAttributes) throws IllegalArgumentException { - throw new IllegalArgumentException(); - } - - @Override - public PrintJob getPrintJob(Frame frame, String jobtitle, Properties props) throws NullPointerException { - throw new NullPointerException(); - } - */ + * @Override NativeEventQueue getNativeEventQueue() throws HeadlessException + * { throw new HeadlessException(); } + * @Override public PrintJob getPrintJob(Frame frame, String jobtitle, + * JobAttributes jobAttributes, PageAttributes pageAttributes) throws + * IllegalArgumentException { throw new IllegalArgumentException(); } + * @Override public PrintJob getPrintJob(Frame frame, String jobtitle, + * Properties props) throws NullPointerException { throw new + * NullPointerException(); } + */ @Override public Insets getScreenInsets(GraphicsConfiguration gc) throws HeadlessException { @@ -214,44 +146,37 @@ public final class HeadlessToolkit extends ToolkitImpl { @Override public int getScreenResolution() throws HeadlessException { throw new HeadlessException(); - } + } @Override public Dimension getScreenSize() throws HeadlessException { throw new HeadlessException(); } - - //???AWT + + // ???AWT /* - @Override - public Clipboard getSystemClipboard() throws HeadlessException { - throw new HeadlessException(); - } - - @Override - public Clipboard getSystemSelection() throws HeadlessException { - throw new HeadlessException(); - } - - @Override - WindowFactory getWindowFactory() throws HeadlessException { - throw new HeadlessException(); - } - */ + * @Override public Clipboard getSystemClipboard() throws HeadlessException + * { throw new HeadlessException(); } + * @Override public Clipboard getSystemSelection() throws HeadlessException + * { throw new HeadlessException(); } + * @Override WindowFactory getWindowFactory() throws HeadlessException { + * throw new HeadlessException(); } + */ @Override protected void init() { lockAWT(); try { ComponentInternals.setComponentInternals(new ComponentInternalsImpl()); - //???AWT: new EventQueue(this); // create the system EventQueue - //???AWT: dispatcher = new Dispatcher(this); + // ???AWT: new EventQueue(this); // create the system EventQueue + // ???AWT: dispatcher = new Dispatcher(this); desktopProperties = new HashMap<String, Object>(); - //???AWT: desktopPropsSupport = new PropertyChangeSupport(this); -// ???AWT: awtEventsManager = new AWTEventsManager(); -// ???AWT: dispatchThread = new HeadlessEventDispatchThread(this, dispatcher); -// ???AWT: dtk = DTK.getDTK(); - dispatchThread.start(); + // ???AWT: desktopPropsSupport = new PropertyChangeSupport(this); + // ???AWT: awtEventsManager = new AWTEventsManager(); + // ???AWT: dispatchThread = new HeadlessEventDispatchThread(this, + // dispatcher); + // ???AWT: dtk = DTK.getDTK(); + dispatchThread.start(); } finally { unlockAWT(); } @@ -284,8 +209,8 @@ public final class HeadlessToolkit extends ToolkitImpl { } @Override - Map<java.awt.font.TextAttribute, ?> mapInputMethodHighlightImpl( - InputMethodHighlight highlight) throws HeadlessException { + Map<java.awt.font.TextAttribute, ?> mapInputMethodHighlightImpl(InputMethodHighlight highlight) + throws HeadlessException { throw new HeadlessException(); } diff --git a/awt/java/awt/IllegalComponentStateException.java b/awt/java/awt/IllegalComponentStateException.java index 21dc35f..bed1729 100644 --- a/awt/java/awt/IllegalComponentStateException.java +++ b/awt/java/awt/IllegalComponentStateException.java @@ -18,34 +18,38 @@ * @author Michael Danilov * @version $Revision$ */ + package java.awt; /** - * The IllegalComponentStateException class is used to provide - * notification that AWT component is not in an appropriate state - * for the requested operation. + * The IllegalComponentStateException class is used to provide notification that + * AWT component is not in an appropriate state for the requested operation. + * + * @since Android 1.0 */ public class IllegalComponentStateException extends IllegalStateException { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -1889339587208144238L; /** - * Instantiates a new IllegalComponentStateException with - * the specified message. + * Instantiates a new IllegalComponentStateException with the specified + * message. * - * @param s the String message which describes the exception. + * @param s + * the String message which describes the exception. */ public IllegalComponentStateException(String s) { super(s); } /** - * Instantiates a new IllegalComponentStateException without - * detailed message. + * Instantiates a new IllegalComponentStateException without detailed + * message. */ public IllegalComponentStateException() { } } - diff --git a/awt/java/awt/Image.java b/awt/java/awt/Image.java index c217e38..7ae3ed8 100644 --- a/awt/java/awt/Image.java +++ b/awt/java/awt/Image.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt; import java.awt.image.AreaAveragingScaleFilter; @@ -30,64 +31,67 @@ import java.awt.image.ReplicateScaleFilter; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Image abstract class represents the graphic images. + * The Image abstract class represents the graphic images. + * + * @since Android 1.0 */ public abstract class Image { - /** - * The UndefinedProperty object should be returned if - * property is not defined for a particular image. + /** + * The UndefinedProperty object should be returned if property is not + * defined for a particular image. */ - public static final Object UndefinedProperty = new Object(); //$NON-LOCK-1$ + public static final Object UndefinedProperty = new Object(); // $NON-LOCK-1$ - /** - * The Constant SCALE_DEFAULT indicates the default image - * scaling algorithm. + /** + * The Constant SCALE_DEFAULT indicates the default image scaling algorithm. */ public static final int SCALE_DEFAULT = 1; - /** - * The Constant SCALE_FAST indicates an image scaling algorithm which - * places a higher priority on scaling speed than on the image's smoothness. + /** + * The Constant SCALE_FAST indicates an image scaling algorithm which places + * a higher priority on scaling speed than on the image's smoothness. */ public static final int SCALE_FAST = 2; - /** - * The Constant SCALE_SMOOTH indicates an image scaling algorithm which - * places a higher priority on image smoothness than on scaling speed. + /** + * The Constant SCALE_SMOOTH indicates an image scaling algorithm which + * places a higher priority on image smoothness than on scaling speed. */ public static final int SCALE_SMOOTH = 4; - /** - * The Constant SCALE_REPLICATE indicates the image scaling - * algorithm in the ReplicateScaleFilter class. + /** + * The Constant SCALE_REPLICATE indicates the image scaling algorithm in the + * ReplicateScaleFilter class. */ public static final int SCALE_REPLICATE = 8; - /** - * The Constant SCALE_AREA_AVERAGING indicates - * the area averaging image scaling algorithm. + /** + * The Constant SCALE_AREA_AVERAGING indicates the area averaging image + * scaling algorithm. */ public static final int SCALE_AREA_AVERAGING = 16; - /** - * The acceleration priority indicates image acceleration. + /** + * The acceleration priority indicates image acceleration. */ protected float accelerationPriority = 0.5f; - /** The Constant capabilities. */ + /** + * The Constant capabilities. + */ private static final ImageCapabilities capabilities = new ImageCapabilities(false); /** - * Gets the image property with the specified name. - * The UndefinedProperty object should be return if the property is - * not specified for this image. The return value should be null if the - * property is currently unknown yet and the specified ImageObserver is - * to be notified later. - * - * @param name the name of image's property. - * @param observer the ImageObserver. + * Gets the image property with the specified name. The UndefinedProperty + * object should be return if the property is not specified for this image. + * The return value should be null if the property is currently unknown yet + * and the specified ImageObserver is to be notified later. * + * @param name + * the name of image's property. + * @param observer + * the ImageObserver. * @return the Object which represents value of the specified property. */ public abstract Object getProperty(String name, ImageObserver observer); @@ -100,39 +104,40 @@ public abstract class Image { public abstract ImageProducer getSource(); /** - * Gets the width of this image. The specified ImageObserver object - * is notified when the width of this image is available. - * - * @param observer the ImageObserver object which is - * is notified when the width of this image is available. + * Gets the width of this image. The specified ImageObserver object is + * notified when the width of this image is available. * - * @return the width of image, or -1 if the width of this image - * is not available. + * @param observer + * the ImageObserver object which is is notified when the width + * of this image is available. + * @return the width of image, or -1 if the width of this image is not + * available. */ public abstract int getWidth(ImageObserver observer); /** - * Gets the height of this image. The specified ImageObserver object - * is notified when the height of this image is available. + * Gets the height of this image. The specified ImageObserver object is + * notified when the height of this image is available. * - * @param observer the ImageObserver object which is - * is notified when the height of this image is available. - * - * @return the height of image, or -1 if the height of this image - * is not available. + * @param observer + * the ImageObserver object which is is notified when the height + * of this image is available. + * @return the height of image, or -1 if the height of this image is not + * available. */ public abstract int getHeight(ImageObserver observer); /** - * Gets the scaled instance of this Image. This method returns - * an Image object constructed from the source of this image - * with the specified width, height, and applied scaling - * alghorithm. - * - * @param width the width of scaled Image. - * @param height the height of scaled Image. - * @param hints the constant which indicates scaling algorithm. + * Gets the scaled instance of this Image. This method returns an Image + * object constructed from the source of this image with the specified + * width, height, and applied scaling algorithm. * + * @param width + * the width of scaled Image. + * @param height + * the height of scaled Image. + * @param hints + * the constant which indicates scaling algorithm. * @return the scaled Image. */ public Image getScaledInstance(int width, int height, int hints) { @@ -147,17 +152,16 @@ public abstract class Image { } /** - * Gets a Graphics object for rendering this image. - * This method can be used for off-screen images. + * Gets a Graphics object for rendering this image. This method can be used + * for off-screen images. * * @return a Graphics object for rendering to this image. */ public abstract Graphics getGraphics(); /** - * Flushes resources which are used by this Image object. - * This method resets the image to the reconstructered state - * from the image's source. + * Flushes resources which are used by this Image object. This method resets + * the image to the reconstructed state from the image's source. */ public abstract void flush(); @@ -171,10 +175,10 @@ public abstract class Image { } /** - * Sets the acceleration priority for this image. - * - * @param priority the new acceleration priority (value in the - * range 0-1). + * Sets the acceleration priority for this image. + * + * @param priority + * the new acceleration priority (value in the range 0-1). */ public void setAccelerationPriority(float priority) { if (priority < 0 || priority > 1) { @@ -185,19 +189,17 @@ public abstract class Image { } /** - * Gets an ImageCapabilities object of this Image object - * for the specified GraphicsConfiguration. - * - * @param gc the specified GraphicsConfiguration object - * (null value means default GraphicsConfiguration). + * Gets an ImageCapabilities object of this Image object for the specified + * GraphicsConfiguration. * - * @return an ImageCapabilities object of this Image object - * for the specified GraphicsConfiguration. + * @param gc + * the specified GraphicsConfiguration object (null value means + * default GraphicsConfiguration). + * @return an ImageCapabilities object of this Image object for the + * specified GraphicsConfiguration. */ public ImageCapabilities getCapabilities(GraphicsConfiguration gc) { // Note: common image is not accelerated. return capabilities; } } - - diff --git a/awt/java/awt/ImageCapabilities.java b/awt/java/awt/ImageCapabilities.java index 6e9ecfc..c6d5946 100644 --- a/awt/java/awt/ImageCapabilities.java +++ b/awt/java/awt/ImageCapabilities.java @@ -18,22 +18,27 @@ * @author Alexey A. Petrenko * @version $Revision$ */ + package java.awt; /** * The ImageCapabilities class gives information about an image's capabilities. + * + * @since Android 1.0 */ public class ImageCapabilities implements Cloneable { - - /** The accelerated. */ + + /** + * The accelerated. + */ private final boolean accelerated; /** - * Instantiates a new ImageCapabilities with the specified - * acceleration flag which indicates whether acceleration - * is desired or not. + * Instantiates a new ImageCapabilities with the specified acceleration flag + * which indicates whether acceleration is desired or not. * - * @param accelerated the accelerated flag. + * @param accelerated + * the accelerated flag. */ public ImageCapabilities(boolean accelerated) { this.accelerated = accelerated; @@ -50,23 +55,22 @@ public class ImageCapabilities implements Cloneable { } /** - * Returne true if the Image of this ImageCapabilities is or can be + * Returns true if the Image of this ImageCapabilities is or can be * accelerated. - * + * * @return true, if the Image of this ImageCapabilities is or can be - * accelerated, false otherwise. + * accelerated, false otherwise. */ public boolean isAccelerated() { return accelerated; } /** - * Returns true if this ImageCapabilities applies to - * the VolatileImage which can lose its surfaces. + * Returns true if this ImageCapabilities applies to the VolatileImage which + * can lose its surfaces. * - * @return true if this ImageCapabilities applies to - * the VolatileImage which can lose its surfaces, - * false otherwise. + * @return true if this ImageCapabilities applies to the VolatileImage which + * can lose its surfaces, false otherwise. */ public boolean isTrueVolatile() { return true; diff --git a/awt/java/awt/Insets.java b/awt/java/awt/Insets.java index 61f3fd8..04f198c 100644 --- a/awt/java/awt/Insets.java +++ b/awt/java/awt/Insets.java @@ -18,44 +18,49 @@ * @author Dmitry A. Durnev * @version $Revision$ */ + package java.awt; import java.io.Serializable; import org.apache.harmony.misc.HashCode; - /** - * The Insets class represents the borders of a container. - * This class describes the space that a container should leave at each edge: - * the top, the bottom, the right side, and the left side. - * The space can be filled with a border, a blank space, or a title. + * The Insets class represents the borders of a container. This class describes + * the space that a container should leave at each edge: the top, the bottom, + * the right side, and the left side. The space can be filled with a border, a + * blank space, or a title. + * + * @since Android 1.0 */ public class Insets implements Cloneable, Serializable { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -2272572637695466749L; /** - * The top inset indicates the size of the space added to the - * top of the rectangle. + * The top inset indicates the size of the space added to the top of the + * rectangle. */ public int top; - /** - * The left inset indicates the size of the space added to the - * left side of the rectangle. + /** + * The left inset indicates the size of the space added to the left side of + * the rectangle. */ public int left; - /** - * The bottom inset indicates the size of the space subtracted from - * the bottom of the rectangle. + /** + * The bottom inset indicates the size of the space subtracted from the + * bottom of the rectangle. */ public int bottom; - /** The right inset indicates the size of the space subtracted from - * the right side of the rectangle. + /** + * The right inset indicates the size of the space subtracted from the right + * side of the rectangle. */ public int right; @@ -63,10 +68,14 @@ public class Insets implements Cloneable, Serializable { * Instantiates a new Inset object with the specified top, left, bottom, * right parameters. * - * @param top the top inset. - * @param left the left inset. - * @param bottom the bottom inset. - * @param right the right inset. + * @param top + * the top inset. + * @param left + * the left inset. + * @param bottom + * the bottom inset. + * @param right + * the right inset. */ public Insets(int top, int left, int bottom, int right) { setValues(top, left, bottom, right); @@ -100,10 +109,10 @@ public class Insets implements Cloneable, Serializable { /** * Checks if this Insets object is equal to the specified object. * - * @param o the Object to be compared. - * - * @return true, if the object is an Insets object whose data values - * are equal to those of this object, false otherwise. + * @param o + * the Object to be compared. + * @return true, if the object is an Insets object whose data values are + * equal to those of this object, false otherwise. */ @Override public boolean equals(Object o) { @@ -111,9 +120,8 @@ public class Insets implements Cloneable, Serializable { return true; } if (o instanceof Insets) { - Insets i = (Insets) o; - return ((i.left == left) && (i.bottom == bottom) && - (i.right == right) && (i.top == top)); + Insets i = (Insets)o; + return ((i.left == left) && (i.bottom == bottom) && (i.right == right) && (i.top == top)); } return false; } @@ -125,23 +133,26 @@ public class Insets implements Cloneable, Serializable { */ @Override public String toString() { - /* The format is based on 1.5 release behavior - * which can be revealed by the following code: - * System.out.println(new Insets(1, 2, 3, 4)); + /* + * The format is based on 1.5 release behavior which can be revealed by + * the following code: System.out.println(new Insets(1, 2, 3, 4)); */ - return (getClass().getName() + - "[left=" + left + ",top=" + top + //$NON-NLS-1$ //$NON-NLS-2$ - ",right=" + right + ",bottom=" + bottom + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return (getClass().getName() + "[left=" + left + ",top=" + top + //$NON-NLS-1$ //$NON-NLS-2$ + ",right=" + right + ",bottom=" + bottom + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } /** * Sets top, left, bottom, and right insets to the specified values. * - * @param top the top inset. - * @param left the left inset. - * @param bottom the bottom inset. - * @param right the right inset. + * @param top + * the top inset. + * @param left + * the left inset. + * @param bottom + * the bottom inset. + * @param right + * the right inset. */ public void set(int top, int left, int bottom, int right) { setValues(top, left, bottom, right); @@ -150,10 +161,14 @@ public class Insets implements Cloneable, Serializable { /** * Sets the values. * - * @param top the top - * @param left the left - * @param bottom the bottom - * @param right the right + * @param top + * the top. + * @param left + * the left. + * @param bottom + * the bottom. + * @param right + * the right. */ private void setValues(int top, int left, int bottom, int right) { this.top = top; @@ -162,4 +177,3 @@ public class Insets implements Cloneable, Serializable { this.right = right; } } - diff --git a/awt/java/awt/ItemSelectable.java b/awt/java/awt/ItemSelectable.java index a46364b..212cf70 100644 --- a/awt/java/awt/ItemSelectable.java +++ b/awt/java/awt/ItemSelectable.java @@ -18,35 +18,41 @@ * @author Michael Danilov * @version $Revision$ */ + package java.awt; import java.awt.event.ItemListener; /** * The ItemSelectable interface represents a set of items which can be selected. + * + * @since Android 1.0 */ public interface ItemSelectable { /** - * Adds an ItemListener for receiving item events when the state of an item - * is changed by the user. + * Adds an ItemListener for receiving item events when the state of an item + * is changed by the user. * - * @param l the ItemListener. + * @param l + * the ItemListener. */ public void addItemListener(ItemListener l); /** - * Gets an array of the selected objects or null if there is no selected object. - * - * @return an array of the selected objects or null if there is no selected + * Gets an array of the selected objects or null if there is no selected * object. + * + * @return an array of the selected objects or null if there is no selected + * object. */ public Object[] getSelectedObjects(); /** * Removes the specified ItemListener. * - * @param l the ItemListener which will be removed. + * @param l + * the ItemListener which will be removed. */ public void removeItemListener(ItemListener l); diff --git a/awt/java/awt/MenuComponent.java b/awt/java/awt/MenuComponent.java index 9eb4f3d..9c1b120 100644 --- a/awt/java/awt/MenuComponent.java +++ b/awt/java/awt/MenuComponent.java @@ -21,8 +21,7 @@ import java.awt.event.FocusListener; import java.awt.event.MouseEvent; import java.awt.peer.MenuComponentPeer; import java.io.Serializable; -import java.util.Locale; -//import javax.accessibility.Accessible; +import java.util.Locale; //import javax.accessibility.Accessible; //import javax.accessibility.AccessibleComponent; //import javax.accessibility.AccessibleContext; //import javax.accessibility.AccessibleRole; @@ -31,371 +30,172 @@ import java.util.Locale; import org.apache.harmony.awt.gl.MultiRectArea; import org.apache.harmony.awt.state.MenuItemState; import org.apache.harmony.awt.state.MenuState; +import org.apache.harmony.luni.util.NotImplementedException; /** - * The MenuComponent abstract class is the superclass for menu - * components. Menu components receive and process AWT events. + * The MenuComponent abstract class is the superclass for menu components. Menu + * components receive and process AWT events. + * + * @since Android 1.0 */ public abstract class MenuComponent implements Serializable { - - /** The Constant serialVersionUID. */ + + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -4536902356223894379L; - /** The name. */ + /** + * The name. + */ private String name; - /** The font. */ + /** + * The font. + */ private Font font; - /** The parent. */ + /** + * The parent. + */ MenuContainer parent; - /** The deprecated event handler. */ + /** + * The deprecated event handler. + */ boolean deprecatedEventHandler = true; - /** The selected item index. */ + /** + * The selected item index. + */ private int selectedItemIndex; - //???AWT: private AccessibleContext accessibleContext; + // ???AWT: private AccessibleContext accessibleContext; - /** The toolkit. */ + /** + * The toolkit. + */ final Toolkit toolkit = Toolkit.getDefaultToolkit(); - //???AWT + // ???AWT /* - protected abstract class AccessibleAWTMenuComponent extends AccessibleContext implements - Serializable, AccessibleComponent, AccessibleSelection { - private static final long serialVersionUID = -4269533416223798698L; - - public void addFocusListener(FocusListener listener) { - } - - public boolean contains(Point pt) { - return false; - } - - public Accessible getAccessibleAt(Point pt) { - return null; - } - - public Color getBackground() { - return null; - } - - public Rectangle getBounds() { - return null; - } - - public Cursor getCursor() { - return null; - } - - public Font getFont() { - return MenuComponent.this.getFont(); - } - - public FontMetrics getFontMetrics(Font font) { - return null; - } - - public Color getForeground() { - return null; - } - - public Point getLocation() { - return null; - } - - public Point getLocationOnScreen() { - return null; - } - - public Dimension getSize() { - return null; - } - - public boolean isEnabled() { - return true; // always enabled - } - - public boolean isFocusTraversable() { - return true; // always focus traversable - } - - public boolean isShowing() { - return true;// always showing - } - - public boolean isVisible() { - return true; // always visible - } - - public void removeFocusListener(FocusListener listener) { - } - - public void requestFocus() { - } - - public void setBackground(Color color) { - } - - public void setBounds(Rectangle rect) { - } - - public void setCursor(Cursor cursor) { - } - - public void setEnabled(boolean enabled) { - } - - public void setFont(Font font) { - MenuComponent.this.setFont(font); - } - - public void setForeground(Color color) { - } - - public void setLocation(Point pt) { - } - - public void setSize(Dimension pt) { - } - - public void setVisible(boolean visible) { - } - - public void addAccessibleSelection(int index) { - } - - public void clearAccessibleSelection() { - } - - public Accessible getAccessibleSelection(int index) { - return null; - } - - public int getAccessibleSelectionCount() { - return 0; - } - - public boolean isAccessibleChildSelected(int index) { - return false; - } - - public void removeAccessibleSelection(int index) { - } - - public void selectAllAccessibleSelection() { - } - - @Override - public Accessible getAccessibleChild(int index) { - return null; - } - - @Override - public int getAccessibleChildrenCount() { - return 0; - } - - @Override - public AccessibleComponent getAccessibleComponent() { - return this; - } - - @Override - public String getAccessibleDescription() { - return super.getAccessibleDescription(); - } - - @Override - public int getAccessibleIndexInParent() { - toolkit.lockAWT(); - try { - Accessible aParent = getAccessibleParent(); - int aIndex = -1; - if (aParent instanceof MenuComponent) { - MenuComponent parent = (MenuComponent) aParent; - int count = parent.getItemCount(); - for (int i = 0; i < count; i++) { - MenuComponent comp = parent.getItem(i); - if (comp instanceof Accessible) { - aIndex++; - if (comp == MenuComponent.this) { - return aIndex; - } - } - } - } - return -1; - } finally { - toolkit.unlockAWT(); - } - } - - @Override - public String getAccessibleName() { - return super.getAccessibleName(); - } - - @Override - public Accessible getAccessibleParent() { - toolkit.lockAWT(); - try { - Accessible aParent = super.getAccessibleParent(); - if (aParent != null) { - return aParent; - } - MenuContainer parent = getParent(); - if (parent instanceof Accessible) { - aParent = (Accessible) parent; - } - return aParent; - } finally { - toolkit.unlockAWT(); - } - } - - @Override - public AccessibleRole getAccessibleRole() { - return AccessibleRole.AWT_COMPONENT; - } - - @Override - public AccessibleSelection getAccessibleSelection() { - return this; - } - - @Override - public AccessibleStateSet getAccessibleStateSet() { - return new AccessibleStateSet(); - } - - @Override - public Locale getLocale() { - return Locale.getDefault(); - } - } - */ - - /** - * The accessor to MenuComponent internal state, - * utilized by the visual theme. - * - * @throws HeadlessException the headless exception - */ - //???AWT + * protected abstract class AccessibleAWTMenuComponent extends + * AccessibleContext implements Serializable, AccessibleComponent, + * AccessibleSelection { private static final long serialVersionUID = + * -4269533416223798698L; public void addFocusListener(FocusListener + * listener) { } public boolean contains(Point pt) { return false; } public + * Accessible getAccessibleAt(Point pt) { return null; } public Color + * getBackground() { return null; } public Rectangle getBounds() { return + * null; } public Cursor getCursor() { return null; } public Font getFont() + * { return MenuComponent.this.getFont(); } public FontMetrics + * getFontMetrics(Font font) { return null; } public Color getForeground() { + * return null; } public Point getLocation() { return null; } public Point + * getLocationOnScreen() { return null; } public Dimension getSize() { + * return null; } public boolean isEnabled() { return true; // always + * enabled } public boolean isFocusTraversable() { return true; // always + * focus traversable } public boolean isShowing() { return true;// always + * showing } public boolean isVisible() { return true; // always visible } + * public void removeFocusListener(FocusListener listener) { } public void + * requestFocus() { } public void setBackground(Color color) { } public void + * setBounds(Rectangle rect) { } public void setCursor(Cursor cursor) { } + * public void setEnabled(boolean enabled) { } public void setFont(Font + * font) { MenuComponent.this.setFont(font); } public void + * setForeground(Color color) { } public void setLocation(Point pt) { } + * public void setSize(Dimension pt) { } public void setVisible(boolean + * visible) { } public void addAccessibleSelection(int index) { } public + * void clearAccessibleSelection() { } public Accessible + * getAccessibleSelection(int index) { return null; } public int + * getAccessibleSelectionCount() { return 0; } public boolean + * isAccessibleChildSelected(int index) { return false; } public void + * removeAccessibleSelection(int index) { } public void + * selectAllAccessibleSelection() { } + * @Override public Accessible getAccessibleChild(int index) { return null; + * } + * @Override public int getAccessibleChildrenCount() { return 0; } + * @Override public AccessibleComponent getAccessibleComponent() { return + * this; } + * @Override public String getAccessibleDescription() { return + * super.getAccessibleDescription(); } + * @Override public int getAccessibleIndexInParent() { toolkit.lockAWT(); + * try { Accessible aParent = getAccessibleParent(); int aIndex = -1; if + * (aParent instanceof MenuComponent) { MenuComponent parent = + * (MenuComponent) aParent; int count = parent.getItemCount(); for (int i = + * 0; i < count; i++) { MenuComponent comp = parent.getItem(i); if (comp + * instanceof Accessible) { aIndex++; if (comp == MenuComponent.this) { + * return aIndex; } } } } return -1; } finally { toolkit.unlockAWT(); } } + * @Override public String getAccessibleName() { return + * super.getAccessibleName(); } + * @Override public Accessible getAccessibleParent() { toolkit.lockAWT(); + * try { Accessible aParent = super.getAccessibleParent(); if (aParent != + * null) { return aParent; } MenuContainer parent = getParent(); if (parent + * instanceof Accessible) { aParent = (Accessible) parent; } return aParent; + * } finally { toolkit.unlockAWT(); } } + * @Override public AccessibleRole getAccessibleRole() { return + * AccessibleRole.AWT_COMPONENT; } + * @Override public AccessibleSelection getAccessibleSelection() { return + * this; } + * @Override public AccessibleStateSet getAccessibleStateSet() { return new + * AccessibleStateSet(); } + * @Override public Locale getLocale() { return Locale.getDefault(); } } + */ + + /** + * The accessor to MenuComponent internal state, utilized by the visual + * theme. + * + * @throws HeadlessException + * the headless exception. + */ + // ???AWT /* - class State implements MenuState { - Dimension size; - - Dimension getSize() { - if (size == null) { - calculate(); - } - return size; - } - - public int getWidth() { - return getSize().width; - } - - public int getHeight() { - return getSize().height; - } - - public Font getFont() { - return MenuComponent.this.getFont(); - } - - public int getItemCount() { - return MenuComponent.this.getItemCount(); - } - - public int getSelectedItemIndex() { - return MenuComponent.this.getSelectedItemIndex(); - } - - public boolean isFontSet() { - return MenuComponent.this.isFontSet(); - } - - @SuppressWarnings("deprecation") - public FontMetrics getFontMetrics(Font f) { - return MenuComponent.this.toolkit.getFontMetrics(f); - } - - public Point getLocation() { - return MenuComponent.this.getLocation(); - } - - public MenuItemState getItem(int index) { - MenuItem item = MenuComponent.this.getItem(index); - return item.itemState; - } - - public void setSize(int w, int h) { - this.size = new Dimension(w, h); - } - - void calculate() { - size = new Dimension(); - size.setSize(toolkit.theme.calculateMenuSize(this)); - } - - void reset() { - for (int i = 0; i < getItemCount(); i++) { - ((MenuItem.State) getItem(i)).reset(); - } - } - - } - */ - - /** - * Pop-up box for menu. It transfers the paint events, - * keyboard and mouse events to the menu component itself - */ - //???AWT + * class State implements MenuState { Dimension size; Dimension getSize() { + * if (size == null) { calculate(); } return size; } public int getWidth() { + * return getSize().width; } public int getHeight() { return + * getSize().height; } public Font getFont() { return + * MenuComponent.this.getFont(); } public int getItemCount() { return + * MenuComponent.this.getItemCount(); } public int getSelectedItemIndex() { + * return MenuComponent.this.getSelectedItemIndex(); } public boolean + * isFontSet() { return MenuComponent.this.isFontSet(); } + * @SuppressWarnings("deprecation") public FontMetrics getFontMetrics(Font + * f) { return MenuComponent.this.toolkit.getFontMetrics(f); } public Point + * getLocation() { return MenuComponent.this.getLocation(); } public + * MenuItemState getItem(int index) { MenuItem item = + * MenuComponent.this.getItem(index); return item.itemState; } public void + * setSize(int w, int h) { this.size = new Dimension(w, h); } void + * calculate() { size = new Dimension(); + * size.setSize(toolkit.theme.calculateMenuSize(this)); } void reset() { for + * (int i = 0; i < getItemCount(); i++) { ((MenuItem.State) + * getItem(i)).reset(); } } } + */ + + /** + * Pop-up box for menu. It transfers the paint events, keyboard and mouse + * events to the menu component itself. + */ + // ???AWT /* - class MenuPopupBox extends PopupBox { - private final Point lastMousePos = new Point(); - - @Override - boolean isMenu() { - return true; - } - - @Override - void paint(Graphics gr) { - MenuComponent.this.paint(gr); - } - - @Override - void onKeyEvent(int eventId, int vKey, long when, int modifiers) { - MenuComponent.this.onKeyEvent(eventId, vKey, when, modifiers); - } + * class MenuPopupBox extends PopupBox { private final Point lastMousePos = + * new Point(); + * @Override boolean isMenu() { return true; } + * @Override void paint(Graphics gr) { MenuComponent.this.paint(gr); } + * @Override void onKeyEvent(int eventId, int vKey, long when, int + * modifiers) { MenuComponent.this.onKeyEvent(eventId, vKey, when, + * modifiers); } + * @Override void onMouseEvent(int eventId, Point where, int mouseButton, + * long when, int modifiers, int wheelRotation) { // prevent conflict of + * mouse and keyboard // when sub-menu drops down due to keyboard navigation + * if (lastMousePos.equals(where) && (eventId == MouseEvent.MOUSE_MOVED || + * eventId == MouseEvent.MOUSE_ENTERED)) { return; } + * lastMousePos.setLocation(where); MenuComponent.this.onMouseEvent(eventId, + * where, mouseButton, when, modifiers); } } + */ - @Override - void onMouseEvent(int eventId, Point where, int mouseButton, long when, int modifiers, - int wheelRotation) { - // prevent conflict of mouse and keyboard - // when sub-menu drops down due to keyboard navigation - if (lastMousePos.equals(where) - && (eventId == MouseEvent.MOUSE_MOVED || eventId == MouseEvent.MOUSE_ENTERED)) { - return; - } - lastMousePos.setLocation(where); - MenuComponent.this.onMouseEvent(eventId, where, mouseButton, when, modifiers); - } - } - */ - /** * Instantiates a new MenuComponent object. * - * @throws HeadlessException if the graphical interface - * environment can't support MenuComponents + * @throws HeadlessException + * if the graphical interface environment can't support + * MenuComponents. */ public MenuComponent() throws HeadlessException { toolkit.lockAWT(); @@ -438,9 +238,9 @@ public abstract class MenuComponent implements Serializable { } /** - * Gets the Parent menu Container . + * Gets the parent menu container. * - * @return the parent + * @return the parent. */ public MenuContainer getParent() { toolkit.lockAWT(); @@ -454,7 +254,8 @@ public abstract class MenuComponent implements Serializable { /** * Sets the name of the MenuComponent to the specified string. * - * @param name the new name of the MenuComponent object. + * @param name + * the new name of the MenuComponent object. */ public void setName(String name) { toolkit.lockAWT(); @@ -468,7 +269,8 @@ public abstract class MenuComponent implements Serializable { /** * Dispatches AWT event. * - * @param event the AWTEvent. + * @param event + * the AWTEvent. */ public final void dispatchEvent(AWTEvent event) { toolkit.lockAWT(); @@ -485,7 +287,8 @@ public abstract class MenuComponent implements Serializable { /** * Post deprecated event. * - * @param event the event + * @param event + * the event. */ void postDeprecatedEvent(AWTEvent event) { Event evt = event.getEvent(); @@ -495,11 +298,12 @@ public abstract class MenuComponent implements Serializable { } /** - * Gets the peer of the MenuComponent; an application must not - * use this method directly. + * Gets the peer of the MenuComponent; an application must not use this + * method directly. * * @return the MenuComponentPeer object. - * + * @throws NotImplementedException + * if this method is not implemented by a subclass. * @deprecated an application must not use this method directly. */ @Deprecated @@ -527,11 +331,9 @@ public abstract class MenuComponent implements Serializable { /** * Posts the Event to the MenuComponent. * - * @param e the Event. - * - * @return true, if the event is posted successfully; - * false otherwise. - * + * @param e + * the Event. + * @return true, if the event is posted successfully, false otherwise. * @deprecated Replaced dispatchEvent method. */ @SuppressWarnings("deprecation") @@ -551,8 +353,7 @@ public abstract class MenuComponent implements Serializable { /** * Returns the string representation of the MenuComponent state. * - * @return returns the string representation of the MenuComponent - * state. + * @return returns the string representation of the MenuComponent state. */ protected String paramString() { toolkit.lockAWT(); @@ -563,20 +364,13 @@ public abstract class MenuComponent implements Serializable { } } - //???AWT + // ???AWT /* - public AccessibleContext getAccessibleContext() { - toolkit.lockAWT(); - try { - if (accessibleContext == null) { - accessibleContext = createAccessibleContext(); - } - return accessibleContext; - } finally { - toolkit.unlockAWT(); - } - } - */ + * public AccessibleContext getAccessibleContext() { toolkit.lockAWT(); try + * { if (accessibleContext == null) { accessibleContext = + * createAccessibleContext(); } return accessibleContext; } finally { + * toolkit.unlockAWT(); } } + */ /** * Gets the font of the MenuComponent object. @@ -605,13 +399,13 @@ public abstract class MenuComponent implements Serializable { */ boolean isFontSet() { return font != null - || ((parent instanceof MenuComponent) && ((MenuComponent) parent).isFontSet()); + || ((parent instanceof MenuComponent) && ((MenuComponent)parent).isFontSet()); } /** * Checks for default font. * - * @return true, if successful + * @return true, if successful. */ boolean hasDefaultFont() { return false; @@ -620,7 +414,8 @@ public abstract class MenuComponent implements Serializable { /** * Processes an AWTEevent on this menu component. * - * @param event the AWTEvent. + * @param event + * the AWTEvent. */ protected void processEvent(AWTEvent event) { toolkit.lockAWT(); @@ -645,7 +440,8 @@ public abstract class MenuComponent implements Serializable { /** * Sets the Font for this MenuComponent object. * - * @param font the new Font to be used for this MenuComponent. + * @param font + * the new Font to be used for this MenuComponent. */ public void setFont(Font font) { toolkit.lockAWT(); @@ -659,7 +455,8 @@ public abstract class MenuComponent implements Serializable { /** * Sets the parent. * - * @param parent the new parent + * @param parent + * the new parent. */ void setParent(MenuContainer parent) { this.parent = parent; @@ -668,7 +465,7 @@ public abstract class MenuComponent implements Serializable { /** * Gets the location. * - * @return the location + * @return the location. */ Point getLocation() { // to be overridden @@ -678,7 +475,7 @@ public abstract class MenuComponent implements Serializable { /** * Gets the width. * - * @return the width + * @return the width. */ int getWidth() { // to be overridden @@ -688,7 +485,7 @@ public abstract class MenuComponent implements Serializable { /** * Gets the height. * - * @return the height + * @return the height. */ int getHeight() { // to be overridden @@ -698,31 +495,19 @@ public abstract class MenuComponent implements Serializable { /** * Recursively find the menu item for a menu shortcut. * - * @param gr the gr - * - * @return the menu item; - * or null if the item is not available for this shortcut + * @param gr + * the gr. + * @return the menu item; or null if the item is not available for this + * shortcut. */ - //???AWT + // ???AWT /* - MenuItem getShortcutMenuItemImpl(MenuShortcut ms) { - if (ms == null) { - return null; - } - for (int i = 0; i < getItemCount(); i++) { - MenuItem mi = getItem(i); - if (mi instanceof Menu) { - mi = ((Menu) mi).getShortcutMenuItemImpl(ms); - if (mi != null) { - return mi; - } - } else if (ms.equals(mi.getShortcut())) { - return mi; - } - } - return null; - } - */ + * MenuItem getShortcutMenuItemImpl(MenuShortcut ms) { if (ms == null) { + * return null; } for (int i = 0; i < getItemCount(); i++) { MenuItem mi = + * getItem(i); if (mi instanceof Menu) { mi = ((Menu) + * mi).getShortcutMenuItemImpl(ms); if (mi != null) { return mi; } } else if + * (ms.equals(mi.getShortcut())) { return mi; } } return null; } + */ void paint(Graphics gr) { gr.setColor(Color.LIGHT_GRAY); @@ -733,11 +518,16 @@ public abstract class MenuComponent implements Serializable { /** * Mouse events handler. * - * @param eventId - one of the MouseEvent.MOUSE_* constants - * @param where - mouse location - * @param mouseButton - mouse button that was pressed or released - * @param when - event time - * @param modifiers - input event modifiers + * @param eventId + * one of the MouseEvent.MOUSE_* constants. + * @param where + * mouse location. + * @param mouseButton + * mouse button that was pressed or released. + * @param when + * event time. + * @param modifiers + * input event modifiers. */ void onMouseEvent(int eventId, Point where, int mouseButton, long when, int modifiers) { // to be overridden @@ -746,159 +536,109 @@ public abstract class MenuComponent implements Serializable { /** * Keyboard event handler. * - * @param eventId - one of the KeyEvent.KEY_* constants - * @param vKey - the key code - * @param when - event time - * @param modifiers - input event modifiers + * @param eventId + * one of the KeyEvent.KEY_* constants. + * @param vKey + * the key code. + * @param when + * event time. + * @param modifiers + * input event modifiers. */ void onKeyEvent(int eventId, int vKey, long when, int modifiers) { // to be overridden } /** - * Post the ActionEvent or ItemEvent, - * depending on type of the menu item. + * Post the ActionEvent or ItemEvent, depending on type of the menu item. * - * @param index the index - * - * @return the item rect + * @param index + * the index. + * @return the item rect. */ - //???AWT + // ???AWT /* - void fireItemAction(int item, long when, int modifiers) { - MenuItem mi = getItem(item); - mi.itemSelected(when, modifiers); - } - - MenuItem getItem(int index) { - // to be overridden - return null; - } - - int getItemCount() { - return 0; - } - */ + * void fireItemAction(int item, long when, int modifiers) { MenuItem mi = + * getItem(item); mi.itemSelected(when, modifiers); } MenuItem getItem(int + * index) { // to be overridden return null; } int getItemCount() { return + * 0; } + */ /** - * @return The sub-menu of currently selecetd item, - * or null if such a sub-menu is not available + * @return The sub-menu of currently selecetd item, or null if such a + * sub-menu is not available. */ - //???AWT + // ???AWT /* - Menu getSelectedSubmenu() { - if (selectedItemIndex < 0) { - return null; - } - MenuItem item = getItem(selectedItemIndex); - return (item instanceof Menu) ? (Menu) item : null; - } - */ + * Menu getSelectedSubmenu() { if (selectedItemIndex < 0) { return null; } + * MenuItem item = getItem(selectedItemIndex); return (item instanceof Menu) + * ? (Menu) item : null; } + */ /** - * Convenience method for selectItem(index, true) + * Convenience method for selectItem(index, true). */ - //???AWT + // ???AWT /* - void selectItem(int index) { - selectItem(index, true); - } - */ + * void selectItem(int index) { selectItem(index, true); } + */ /** - * Change the selection in the menu - * @param index - new selecetd item's index - * @param showSubMenu - if new selected item has a sub-menu, - * should that sub-menu be displayed + * Change the selection in the menu. + * + * @param index + * new selecetd item's index. + * @param showSubMenu + * if new selected item has a sub-menu, should that sub-menu be + * displayed. */ - //???AWT + // ???AWT /* - void selectItem(int index, boolean showSubMenu) { - if (selectedItemIndex == index) { - return; - } - if (selectedItemIndex >= 0 && getItem(selectedItemIndex) instanceof Menu) { - ((Menu) getItem(selectedItemIndex)).hide(); - } - MultiRectArea clip = getUpdateClip(index, selectedItemIndex); - selectedItemIndex = index; - Graphics gr = getGraphics(clip); - if (gr != null) { - paint(gr); - } - if (showSubMenu) { - showSubMenu(selectedItemIndex); - } - } - */ + * void selectItem(int index, boolean showSubMenu) { if (selectedItemIndex + * == index) { return; } if (selectedItemIndex >= 0 && + * getItem(selectedItemIndex) instanceof Menu) { ((Menu) + * getItem(selectedItemIndex)).hide(); } MultiRectArea clip = + * getUpdateClip(index, selectedItemIndex); selectedItemIndex = index; + * Graphics gr = getGraphics(clip); if (gr != null) { paint(gr); } if + * (showSubMenu) { showSubMenu(selectedItemIndex); } } + */ /** * Change the selected item to the next one in the requested direction * moving cyclically, skipping separators - * @param forward - the direction to move the selection - * @param showSubMenu - if new selected item has a sub-menu, - * should that sub-menu be displayed + * + * @param forward + * the direction to move the selection. + * @param showSubMenu + * if new selected item has a sub-menu, should that sub-menu be + * displayed. */ - //???AWT + // ???AWT /* - void selectNextItem(boolean forward, boolean showSubMenu) { - int selected = getSelectedItemIndex(); - int count = getItemCount(); - if (count == 0) { - return; - } - if (selected < 0) { - selected = (forward ? count - 1 : 0); - } - int i = selected; - do { - i = (forward ? (i + 1) : (i + count - 1)) % count; - i %= count; - MenuItem item = getItem(i); - if (!"-".equals(item.getLabel())) { //$NON-NLS-1$ - selectItem(i, showSubMenu); - return; - } - } while (i != selected); - } - - - void showSubMenu(int index) { - if ((index < 0) || !isActive()) { - return; - } - MenuItem item = getItem(index); - if (item instanceof Menu) { - Menu menu = ((Menu) getItem(index)); - if (menu.getItemCount() == 0) { - return; - } - Point location = getSubmenuLocation(index); - menu.show(location.x, location.y, false); - } - } - */ + * void selectNextItem(boolean forward, boolean showSubMenu) { int selected + * = getSelectedItemIndex(); int count = getItemCount(); if (count == 0) { + * return; } if (selected < 0) { selected = (forward ? count - 1 : 0); } int + * i = selected; do { i = (forward ? (i + 1) : (i + count - 1)) % count; i + * %= count; MenuItem item = getItem(i); if (!"-".equals(item.getLabel())) { + * //$NON-NLS-1$ selectItem(i, showSubMenu); return; } } while (i != + * selected); } void showSubMenu(int index) { if ((index < 0) || + * !isActive()) { return; } MenuItem item = getItem(index); if (item + * instanceof Menu) { Menu menu = ((Menu) getItem(index)); if + * (menu.getItemCount() == 0) { return; } Point location = + * getSubmenuLocation(index); menu.show(location.x, location.y, false); } } + */ /** - * @return - the menu bar which is the root of crrent menu's hierarchy; - * or null if the hierarchy root is not a menu bar + * @return the menu bar which is the root of current menu's hierarchy; or + * null if the hierarchy root is not a menu bar. */ - //???AWT + // ???AWT /* - MenuBar getMenuBar() { - if (parent instanceof MenuBar) { - return (MenuBar) parent; - } - if (parent instanceof MenuComponent) { - return ((MenuComponent) parent).getMenuBar(); - } - return null; - } - - PopupBox getPopupBox() { - return null; - } - */ + * MenuBar getMenuBar() { if (parent instanceof MenuBar) { return (MenuBar) + * parent; } if (parent instanceof MenuComponent) { return ((MenuComponent) + * parent).getMenuBar(); } return null; } PopupBox getPopupBox() { return + * null; } + */ Rectangle getItemRect(int index) { // to be overridden @@ -906,13 +646,14 @@ public abstract class MenuComponent implements Serializable { } /** - * Determine the clip region when menu selection is changed - * from index1 to index2. - * - * @param index1 - old selected intem - * @param index2 - new selected item + * Determine the clip region when menu selection is changed from index1 to + * index2. * - * @return - the region to repaint + * @param index1 + * old selected item. + * @param index2 + * new selected item. + * @return the region to repaint. */ final MultiRectArea getUpdateClip(int index1, int index2) { MultiRectArea clip = new MultiRectArea(); @@ -928,9 +669,9 @@ public abstract class MenuComponent implements Serializable { /** * Gets the submenu location. * - * @param index the index - * - * @return the submenu location + * @param index + * the index. + * @return the submenu location. */ Point getSubmenuLocation(int index) { // to be overridden @@ -940,7 +681,7 @@ public abstract class MenuComponent implements Serializable { /** * Gets the selected item index. * - * @return the selected item index + * @return the selected item index. */ int getSelectedItemIndex() { return selectedItemIndex; @@ -952,14 +693,15 @@ public abstract class MenuComponent implements Serializable { void hide() { selectedItemIndex = -1; if (parent instanceof MenuComponent) { - ((MenuComponent) parent).itemHidden(this); + ((MenuComponent)parent).itemHidden(this); } } /** * Item hidden. * - * @param mc the mc + * @param mc + * the mc. */ void itemHidden(MenuComponent mc) { // to be overridden @@ -968,7 +710,7 @@ public abstract class MenuComponent implements Serializable { /** * Checks if is visible. * - * @return true, if is visible + * @return true, if is visible. */ boolean isVisible() { return true; @@ -977,7 +719,7 @@ public abstract class MenuComponent implements Serializable { /** * Checks if is active. * - * @return true, if is active + * @return true, if is active. */ boolean isActive() { return true; @@ -987,14 +729,16 @@ public abstract class MenuComponent implements Serializable { * Hide all menu hierarchy. */ void endMenu() { - //???AWT: toolkit.dispatcher.popupDispatcher.deactivateAll(); + // ???AWT: toolkit.dispatcher.popupDispatcher.deactivateAll(); } /** * Handle the mouse click or Enter key event on a menu's item. * - * @param when - the event time - * @param modifiers - input event modifiers + * @param when + * the event time. + * @param modifiers + * input event modifiers. */ void itemSelected(long when, int modifiers) { endMenu(); @@ -1003,14 +747,14 @@ public abstract class MenuComponent implements Serializable { /** * Auto name. * - * @return the string + * @return the string. */ String autoName() { String name = getClass().getName(); if (name.indexOf("$") != -1) { //$NON-NLS-1$ return null; } - //???AWT: int number = toolkit.autoNumber.nextMenuComponent++; + // ???AWT: int number = toolkit.autoNumber.nextMenuComponent++; int number = 0; name = name.substring(name.lastIndexOf(".") + 1) + Integer.toString(number); //$NON-NLS-1$ return name; @@ -1019,10 +763,10 @@ public abstract class MenuComponent implements Serializable { /** * Creates the Graphics object for the pop-up box of this menu component. * - * @param clip - the clip to set on this Graphics - * - * @return - the created Graphics object, - * or null if such object is not available. + * @param clip + * the clip to set on this Graphics. + * @return the created Graphics object, or null if such object is not + * available. */ Graphics getGraphics(MultiRectArea clip) { // to be overridden @@ -1030,12 +774,10 @@ public abstract class MenuComponent implements Serializable { } /** - * @return accessible context specific for particular menu component + * @return accessible context specific for particular menu component. */ - //???AWT + // ???AWT /* - AccessibleContext createAccessibleContext() { - return null; - } - */ + * AccessibleContext createAccessibleContext() { return null; } + */ } diff --git a/awt/java/awt/MenuContainer.java b/awt/java/awt/MenuContainer.java index 7a48f13..e509a1b 100644 --- a/awt/java/awt/MenuContainer.java +++ b/awt/java/awt/MenuContainer.java @@ -18,17 +18,21 @@ * @author Pavel Dolgov * @version $Revision$ */ + package java.awt; /** * The MenuContainer interface represents all menu containers. + * + * @since Android 1.0 */ public interface MenuContainer { /** * Removes the specified MenuComponent from the MenuContainer. * - * @param c the MenuComponent. + * @param c + * the MenuComponent. */ public void remove(MenuComponent c); @@ -42,15 +46,12 @@ public interface MenuContainer { /** * Posts an Event. * - * @param e the Event. - * - * @return true if the event is posted successfully; - * false otherwise. - * + * @param e + * the Event. + * @return true if the event is posted successfully, false otherwise. * @deprecated Replaced by dispatchEvent method. */ @Deprecated public boolean postEvent(Event e); } - diff --git a/awt/java/awt/Paint.java b/awt/java/awt/Paint.java index f8732c8..dfea3a7 100644 --- a/awt/java/awt/Paint.java +++ b/awt/java/awt/Paint.java @@ -18,6 +18,7 @@ * @author Alexey A. Petrenko * @version $Revision$ */ + package java.awt; import java.awt.geom.AffineTransform; @@ -25,28 +26,32 @@ import java.awt.geom.Rectangle2D; import java.awt.image.ColorModel; /** - * The Paint interface provides possibility of generating - * color patterns in device space for fill, draw, or stroke operations - * in a Graphics2D. + * The Paint interface provides possibility of generating color patterns in + * device space for fill, draw, or stroke operations in a Graphics2D. + * + * @since Android 1.0 */ public interface Paint extends Transparency { - + /** - * Creates the PaintContext which is used to generate color - * patterns for rendering operations of Graphics2D. - * - * @param cm the ColorModel object, or null. - * @param deviceBounds the Rectangle represents the bounding box of - * device space for the graphics rendering operations. - * @param userBounds the Rectangle represents bounding box of - * user space for the graphics rendering operations. - * @param xform the AffineTransform for translation from user space - * to device space. - * @param hints the RenderingHints preferences. + * Creates the PaintContext which is used to generate color patterns for + * rendering operations of Graphics2D. * + * @param cm + * the ColorModel object, or null. + * @param deviceBounds + * the Rectangle represents the bounding box of device space for + * the graphics rendering operations. + * @param userBounds + * the Rectangle represents bounding box of user space for the + * graphics rendering operations. + * @param xform + * the AffineTransform for translation from user space to device + * space. + * @param hints + * the RenderingHints preferences. * @return the PaintContext for generating color patterns. */ - PaintContext createContext(ColorModel cm, Rectangle deviceBounds, - Rectangle2D userBounds, AffineTransform xform, - RenderingHints hints); + PaintContext createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, + AffineTransform xform, RenderingHints hints); } diff --git a/awt/java/awt/PaintContext.java b/awt/java/awt/PaintContext.java index 647de8b..966b6ca 100644 --- a/awt/java/awt/PaintContext.java +++ b/awt/java/awt/PaintContext.java @@ -18,20 +18,22 @@ * @author Alexey A. Petrenko * @version $Revision$ */ + package java.awt; import java.awt.image.ColorModel; import java.awt.image.Raster; /** - * The PaintContext interface determines the specific environment for - * generating color patterns in device space for fill, draw, or stroke - * rendering operations using Graphics2D. This interface provides colors - * through the Raster object associated with the specific ColorModel - * for Graphics2D rendering operations. + * The PaintContext interface determines the specific environment for generating + * color patterns in device space for fill, draw, or stroke rendering operations + * using Graphics2D. This interface provides colors through the Raster object + * associated with the specific ColorModel for Graphics2D rendering operations. + * + * @since Android 1.0 */ public interface PaintContext { - + /** * Releases the resources allocated for the operation. */ @@ -45,20 +47,23 @@ public interface PaintContext { ColorModel getColorModel(); /** - * Gets the Raster which defines the colors of the specified rectangular + * Gets the Raster which defines the colors of the specified rectangular * area for Graphics2D rendering operations. * - * @param x the X coordinate of the device space area for which - * colors are generated. - * @param y the Y coordinate of the device space area for which - * colors are generated. - * @param w the width of the device space area for which - * colors are generated. - * @param h the height of the device space area for which - * colors are generated. - * - * @return the Raster object which contains the colors of the specified - * rectangular area for Graphics2D rendering operations. + * @param x + * the X coordinate of the device space area for which colors are + * generated. + * @param y + * the Y coordinate of the device space area for which colors are + * generated. + * @param w + * the width of the device space area for which colors are + * generated. + * @param h + * the height of the device space area for which colors are + * generated. + * @return the Raster object which contains the colors of the specified + * rectangular area for Graphics2D rendering operations. */ Raster getRaster(int x, int y, int w, int h); } diff --git a/awt/java/awt/Point.java b/awt/java/awt/Point.java index 99418ed..8ec4241 100644 --- a/awt/java/awt/Point.java +++ b/awt/java/awt/Point.java @@ -18,28 +18,37 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt; import java.awt.geom.Point2D; import java.io.Serializable; /** - * The Point class represents a point location with coordinates X, Y in - * current coordinate system. + * The Point class represents a point location with coordinates X, Y in current + * coordinate system. + * + * @since Android 1.0 */ public class Point extends Point2D implements Serializable { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -5276940640259749850L; - /** The X coordinate of Point. */ + /** + * The X coordinate of Point. + */ public int x; - - /** The Y coordinate of Point. */ + + /** + * The Y coordinate of Point. + */ public int y; /** - * Instantiates a new point with (0, O) coordinates, the origin of + * Instantiates a new point with (0, O) coordinates, the origin of * coordinate system. */ public Point() { @@ -49,18 +58,20 @@ public class Point extends Point2D implements Serializable { /** * Instantiates a new point with (x, y) coordinates. * - * @param x the X coordinate of Point. - * @param y the Y coordinate of Point. + * @param x + * the X coordinate of Point. + * @param y + * the Y coordinate of Point. */ public Point(int x, int y) { setLocation(x, y); } /** - * Instantiates a new point, giving it the same locaion as - * the parameter p. + * Instantiates a new point, giving it the same location as the parameter p. * - * @param p the Point object giving the coordinates of the new point. + * @param p + * the Point object giving the coordinates of the new point. */ public Point(Point p) { setLocation(p.x, p.y); @@ -69,12 +80,10 @@ public class Point extends Point2D implements Serializable { /** * Compares current Point with the specified object. * - * @param obj the Object to be compared. - * - * @return true, if the Object being compared is a Point - * whose coordinates are equal to the coordinates of this - * Point, otherwise false. - * + * @param obj + * the Object to be compared. + * @return true, if the Object being compared is a Point whose coordinates + * are equal to the coordinates of this Point, false otherwise. * @see java.awt.geom.Point2D#equals(Object) */ @Override @@ -103,7 +112,6 @@ public class Point extends Point2D implements Serializable { * Gets X coordinate of Point as a double. * * @return X coordinate of the point as a double. - * * @see java.awt.geom.Point2D#getX() */ @Override @@ -115,7 +123,6 @@ public class Point extends Point2D implements Serializable { * Gets Y coordinate of Point as a double. * * @return Y coordinate of the point as a double. - * * @see java.awt.geom.Point2D#getY() */ @Override @@ -135,7 +142,8 @@ public class Point extends Point2D implements Serializable { /** * Sets the location of the Point to the same coordinates as p. * - * @param p the Point that gives the new location. + * @param p + * the Point that gives the new location. */ public void setLocation(Point p) { setLocation(p.x, p.y); @@ -144,8 +152,10 @@ public class Point extends Point2D implements Serializable { /** * Sets the location of the Point to the coordinates X, Y. * - * @param x the X coordinate of the Point's new location. - * @param y the Y coordinate of the Point's new location. + * @param x + * the X coordinate of the Point's new location. + * @param y + * the Y coordinate of the Point's new location. */ public void setLocation(int x, int y) { this.x = x; @@ -155,36 +165,43 @@ public class Point extends Point2D implements Serializable { /** * Sets the location of Point to the specified double coordinates. * - * @param x the X the Point's new location. - * @param y the Y the Point's new location. - * + * @param x + * the X the Point's new location. + * @param y + * the Y the Point's new location. * @see java.awt.geom.Point2D#setLocation(double, double) */ @Override public void setLocation(double x, double y) { - x = x < Integer.MIN_VALUE ? Integer.MIN_VALUE : x > Integer.MAX_VALUE ? Integer.MAX_VALUE : x; - y = y < Integer.MIN_VALUE ? Integer.MIN_VALUE : y > Integer.MAX_VALUE ? Integer.MAX_VALUE : y; + x = x < Integer.MIN_VALUE ? Integer.MIN_VALUE : x > Integer.MAX_VALUE ? Integer.MAX_VALUE + : x; + y = y < Integer.MIN_VALUE ? Integer.MIN_VALUE : y > Integer.MAX_VALUE ? Integer.MAX_VALUE + : y; setLocation((int)Math.round(x), (int)Math.round(y)); } /** * Moves the Point to the specified (x, y) location. * - * @param x the X coordinate of the new location. - * @param y the Y coordinate of the new location. + * @param x + * the X coordinate of the new location. + * @param y + * the Y coordinate of the new location. */ public void move(int x, int y) { setLocation(x, y); } /** - * Translates current Point moving it from the position (x, y) - * to the new position given by (x+dx, x+dy) coordinates. - * - * @param dx the horizontal delta - the Point is moved to this distance along - * X axis. - * @param dy the vertical delta - the Point is moved to this distance along - * Y axis. + * Translates current Point moving it from the position (x, y) to the new + * position given by (x+dx, x+dy) coordinates. + * + * @param dx + * the horizontal delta - the Point is moved to this distance + * along X axis. + * @param dy + * the vertical delta - the Point is moved to this distance along + * Y axis. */ public void translate(int dx, int dy) { x += dx; @@ -192,4 +209,3 @@ public class Point extends Point2D implements Serializable { } } - diff --git a/awt/java/awt/Polygon.java b/awt/java/awt/Polygon.java index 6f3fc97..de31eb9 100644 --- a/awt/java/awt/Polygon.java +++ b/awt/java/awt/Polygon.java @@ -18,6 +18,7 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt; import java.awt.Point; @@ -34,57 +35,78 @@ import org.apache.harmony.awt.gl.*; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Polygon class defines an closed area specified by n vertices and - * n edges. The coordinates of the vertices are specified by x, y arrays. - * The edges are the line segments from the point (x[i], y[i]) to the point - * (x[i+1], y[i+1]), for -1 < i < (n-1) plus the line segment from - * the point (x[n-1], y[n-1]) to the point (x[0], y[0]) point. - * The Polygon is empty if the number of vertices is zero. + * The Polygon class defines an closed area specified by n vertices and n edges. + * The coordinates of the vertices are specified by x, y arrays. The edges are + * the line segments from the point (x[i], y[i]) to the point (x[i+1], y[i+1]), + * for -1 < i < (n-1) plus the line segment from the point (x[n-1], y[n-1]) to + * the point (x[0], y[0]) point. The Polygon is empty if the number of vertices + * is zero. + * + * @since Android 1.0 */ public class Polygon implements Shape, Serializable { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -6460061437900069969L; - /** The points buffer capacity. */ + /** + * The points buffer capacity. + */ private static final int BUFFER_CAPACITY = 4; - - /** The number of Polygon vertices.*/ + + /** + * The number of Polygon vertices. + */ public int npoints; - - /** The array of X coordinates of the vertices. */ + + /** + * The array of X coordinates of the vertices. + */ public int[] xpoints; - - /** The array of Y coordinates of the vertices. */ + + /** + * The array of Y coordinates of the vertices. + */ public int[] ypoints; - - /** - * The smallest Rectangle that completely contains this Polygon. + + /** + * The smallest Rectangle that completely contains this Polygon. */ protected Rectangle bounds; /* - * Polygon path iterator + * Polygon path iterator */ /** * The internal Class Iterator. */ class Iterator implements PathIterator { - /** The source Polygon object. */ + /** + * The source Polygon object. + */ public Polygon p; - - /** The path iterator transformation. */ + + /** + * The path iterator transformation. + */ public AffineTransform t; - - /** The current segmenet index. */ + + /** + * The current segment index. + */ public int index; /** - * Constructs a new Polygon.Iterator for the given polygon and transformation + * Constructs a new Polygon.Iterator for the given polygon and + * transformation * - * @param at - the AffineTransform object to apply rectangle path - * @param p the p + * @param at + * the AffineTransform object to apply rectangle path. + * @param p + * the p. */ public Iterator(AffineTransform at, Polygon p) { this.p = p; @@ -148,18 +170,21 @@ public class Polygon implements Shape, Serializable { } /** - * Instantiates a new polygon with the specified number of vertices, - * and the given arrays of x, y vertex coordinates. The length of - * each coordinate array may not be less than the specified number of - * vertices but may be greater. Only the first n elements are used from - * each coordinate array. - * - * @param xpoints the array of X vertex coordinates. - * @param ypoints the array of Y vertex coordinates. - * @param npoints the number vertices of the polygon. - * @throws IndexOutOfBoundsException if the length of xpoints or ypoints - * is less than n. - * @throws NegativeArraySizeException if n is negative. + * Instantiates a new polygon with the specified number of vertices, and the + * given arrays of x, y vertex coordinates. The length of each coordinate + * array may not be less than the specified number of vertices but may be + * greater. Only the first n elements are used from each coordinate array. + * + * @param xpoints + * the array of X vertex coordinates. + * @param ypoints + * the array of Y vertex coordinates. + * @param npoints + * the number vertices of the polygon. + * @throws IndexOutOfBoundsException + * if the length of xpoints or ypoints is less than n. + * @throws NegativeArraySizeException + * if n is negative. */ public Polygon(int[] xpoints, int[] ypoints, int npoints) { if (npoints > xpoints.length || npoints > ypoints.length) { @@ -178,9 +203,9 @@ public class Polygon implements Shape, Serializable { } /** - * Resets the current Polygon to an empty Polygon. More precisely, - * the number of Polygon vertices is set to zero, but x, y coordinates - * arrays are not affected. + * Resets the current Polygon to an empty Polygon. More precisely, the + * number of Polygon vertices is set to zero, but x, y coordinates arrays + * are not affected. */ public void reset() { npoints = 0; @@ -188,21 +213,22 @@ public class Polygon implements Shape, Serializable { } /** - * Invalidates the data that depends on the vertex coordinates. - * This method should be called after direct manipulations - * of the x, y vertex coordinates arrays to avoid unpredictable - * results of methods which rely on the bounding box. + * Invalidates the data that depends on the vertex coordinates. This method + * should be called after direct manipulations of the x, y vertex + * coordinates arrays to avoid unpredictable results of methods which rely + * on the bounding box. */ public void invalidate() { bounds = null; } /** - * Adds the point to the Polygon and updates the bounding box - * accordingly. + * Adds the point to the Polygon and updates the bounding box accordingly. * - * @param px the X coordinate of the added vertex. - * @param py the Y coordinate of the added vertex. + * @param px + * the X coordinate of the added vertex. + * @param py + * the Y coordinate of the added vertex. */ public void addPoint(int px, int py) { if (npoints == xpoints.length) { @@ -222,20 +248,16 @@ public class Polygon implements Shape, Serializable { npoints++; if (bounds != null) { - bounds.setFrameFromDiagonal( - Math.min(bounds.getMinX(), px), - Math.min(bounds.getMinY(), py), - Math.max(bounds.getMaxX(), px), - Math.max(bounds.getMaxY(), py)); + bounds.setFrameFromDiagonal(Math.min(bounds.getMinX(), px), Math.min(bounds.getMinY(), + py), Math.max(bounds.getMaxX(), px), Math.max(bounds.getMaxY(), py)); } } /** - * Gets the bounding rectangle of the Polygon. The bounding rectangle - * is the smallest rectangle which contains the Polygon. + * Gets the bounding rectangle of the Polygon. The bounding rectangle is the + * smallest rectangle which contains the Polygon. * * @return the bounding rectangle of the Polygon. - * * @see java.awt.Shape#getBounds() */ public Rectangle getBounds() { @@ -270,11 +292,10 @@ public class Polygon implements Shape, Serializable { } /** - * Gets the bounding rectangle of the Polygon. The bounding rectangle - * is the smallest rectangle which contains the Polygon. + * Gets the bounding rectangle of the Polygon. The bounding rectangle is the + * smallest rectangle which contains the Polygon. * * @return the bounding rectangle of the Polygon. - * * @deprecated Use getBounds() method. */ @Deprecated @@ -283,12 +304,10 @@ public class Polygon implements Shape, Serializable { } /** - * Gets the Rectangle2D which represents Polygon bounds. - * The bounding rectangle is the smallest rectangle which contains - * the Polygon. + * Gets the Rectangle2D which represents Polygon bounds. The bounding + * rectangle is the smallest rectangle which contains the Polygon. * * @return the bounding rectangle of the Polygon. - * * @see java.awt.Shape#getBounds2D() */ public Rectangle2D getBounds2D() { @@ -296,11 +315,13 @@ public class Polygon implements Shape, Serializable { } /** - * Translates all vertices of Polygon the specified distances - * along X, Y axis. + * Translates all vertices of Polygon the specified distances along X, Y + * axis. * - * @param mx the distance to translate horizontally. - * @param my the distance to translate vertically. + * @param mx + * the distance to translate horizontally. + * @param my + * the distance to translate vertically. */ public void translate(int mx, int my) { for (int i = 0; i < npoints; i++) { @@ -313,46 +334,47 @@ public class Polygon implements Shape, Serializable { } /** - * Checks whether or not the point given by the coordinates x, y lies inside + * Checks whether or not the point given by the coordinates x, y lies inside * the Polygon. * - * @param x the X coordinate of the point to check. - * @param y the Y coordinate of the point to check. - * - * @return true, if the specified point lies inside the Polygon, - * otherwise false. - * + * @param x + * the X coordinate of the point to check. + * @param y + * the Y coordinate of the point to check. + * @return true, if the specified point lies inside the Polygon, false + * otherwise. * @deprecated Use contains(int, int) method. */ @Deprecated public boolean inside(int x, int y) { - return contains((double) x, (double) y); + return contains((double)x, (double)y); } /** - * Checks whether or not the point given by the coordinates x, y lies inside + * Checks whether or not the point given by the coordinates x, y lies inside * the Polygon. * - * @param x the X coordinate of the point to check. - * @param y the Y coordinate of the point to check. - * - * @return true, if the specified point lies inside the Polygon, - * otherwise false. + * @param x + * the X coordinate of the point to check. + * @param y + * the Y coordinate of the point to check. + * @return true, if the specified point lies inside the Polygon, false + * otherwise. */ public boolean contains(int x, int y) { - return contains((double) x, (double) y); + return contains((double)x, (double)y); } /** - * Checks whether or not the point with specified double coordinates - * lies inside the Polygon. - * - * @param x the X coordinate of the point to check. - * @param y the Y coordinate of the point to check. - * - * @return true, if the point given by the double coordinates - * lies inside the Polygon, otherwise false. - * + * Checks whether or not the point with specified double coordinates lies + * inside the Polygon. + * + * @param x + * the X coordinate of the point to check. + * @param y + * the Y coordinate of the point to check. + * @return true, if the point given by the double coordinates lies inside + * the Polygon, false otherwise. * @see java.awt.Shape#contains(double, double) */ public boolean contains(double x, double y) { @@ -360,19 +382,21 @@ public class Polygon implements Shape, Serializable { } /** - * Checks whether or not the rectangle determined by the parameters - * [x, y, width, height] lies inside the Polygon. - * - * @param x the X coordinate of the rectangles's left upper - * corner as a double. - * @param y the Y coordinate of the rectangles's left upper - * corner as a double. - * @param width the width of rectangle as a double. - * @param width the height of rectangle as a double. - * - * @return true, if the specified rectangle lies inside the Polygon, - * otherwise false. - * + * Checks whether or not the rectangle determined by the parameters [x, y, + * width, height] lies inside the Polygon. + * + * @param x + * the X coordinate of the rectangles's left upper corner as a + * double. + * @param y + * the Y coordinate of the rectangles's left upper corner as a + * double. + * @param width + * the width of rectangle as a double. + * @param height + * the height of rectangle as a double. + * @return true, if the specified rectangle lies inside the Polygon, false + * otherwise. * @see java.awt.Shape#contains(double, double, double, double) */ public boolean contains(double x, double y, double width, double height) { @@ -381,20 +405,21 @@ public class Polygon implements Shape, Serializable { } /** - * Checks whether or not the rectangle determined by the parameters - * [x, y, width, height] intersects the interior of - * the Polygon. - * - * @param x the X coordinate of the rectangles's left upper - * corner as a double. - * @param y the Y coordinate of the rectangles's left upper - * corner as a double. - * @param width the width of rectangle as a double. - * @param width the height of rectangle as a double. - * - * @return true, if the specified rectangle intersects the interior of - * the Polygon, otherwise false. - * + * Checks whether or not the rectangle determined by the parameters [x, y, + * width, height] intersects the interior of the Polygon. + * + * @param x + * the X coordinate of the rectangles's left upper corner as a + * double. + * @param y + * the Y coordinate of the rectangles's left upper corner as a + * double. + * @param width + * the width of rectangle as a double. + * @param height + * the height of rectangle as a double. + * @return true, if the specified rectangle intersects the interior of the + * Polygon, false otherwise. * @see java.awt.Shape#intersects(double, double, double, double) */ public boolean intersects(double x, double y, double width, double height) { @@ -405,11 +430,10 @@ public class Polygon implements Shape, Serializable { /** * Checks whether or not the specified rectangle lies inside the Polygon. * - * @param rect the Rectangle2D object. - * - * @return true, if the specified rectangle lies inside the Polygon, - * otherwise false. - * + * @param rect + * the Rectangle2D object. + * @return true, if the specified rectangle lies inside the Polygon, false + * otherwise. * @see java.awt.Shape#contains(java.awt.geom.Rectangle2D) */ public boolean contains(Rectangle2D rect) { @@ -419,10 +443,10 @@ public class Polygon implements Shape, Serializable { /** * Checks whether or not the specified Point lies inside the Polygon. * - * @param point the Point object. - * - * @return true, if the specified Point lies inside the Polygon, - * otherwise false. + * @param point + * the Point object. + * @return true, if the specified Point lies inside the Polygon, false + * otherwise. */ public boolean contains(Point point) { return contains(point.getX(), point.getY()); @@ -431,11 +455,10 @@ public class Polygon implements Shape, Serializable { /** * Checks whether or not the specified Point2D lies inside the Polygon. * - * @param point the Point2D object. - * - * @return true, if the specified Point2D lies inside the Polygon, - * otherwise false. - * + * @param point + * the Point2D object. + * @return true, if the specified Point2D lies inside the Polygon, false + * otherwise. * @see java.awt.Shape#contains(java.awt.geom.Point2D) */ public boolean contains(Point2D point) { @@ -443,14 +466,13 @@ public class Polygon implements Shape, Serializable { } /** - * Checks whether or not the interior of rectangle specified by - * the Rectangle2D object intersects the interior of the Polygon. - * - * @param rect the Rectangle2D object. - * - * @return true, if the Rectangle2D intersects the interior of - * the Polygon, otherwise false. + * Checks whether or not the interior of rectangle specified by the + * Rectangle2D object intersects the interior of the Polygon. * + * @param rect + * the Rectangle2D object. + * @return true, if the Rectangle2D intersects the interior of the Polygon, + * false otherwise. * @see java.awt.Shape#intersects(java.awt.geom.Rectangle2D) */ public boolean intersects(Rectangle2D rect) { @@ -458,13 +480,12 @@ public class Polygon implements Shape, Serializable { } /** - * Gets the PathIterator object which gives the coordinates of - * the polygon, transformed according to the specified AffineTransform. - * - * @param t the specified AffineTransform object, or null. + * Gets the PathIterator object which gives the coordinates of the polygon, + * transformed according to the specified AffineTransform. * + * @param t + * the specified AffineTransform object or null. * @return PathIterator object for the Polygon. - * * @see java.awt.Shape#getPathIterator(java.awt.geom.AffineTransform) */ public PathIterator getPathIterator(AffineTransform t) { @@ -472,23 +493,23 @@ public class Polygon implements Shape, Serializable { } /** - * Gets the PathIterator object which gives the coordinates of - * the polygon, transformed according to the specified AffineTransform. - * The flatness parameter is ignored. - * - * @param t the specified AffineTransform object, or null. - * @param flatness the maximum number of the control points for - * a given curve which varies from colinear before a subdivided curve - * is replaced by a straight line connecting the endpoints. - * This parameter is ignored for the Polygon class. - * + * Gets the PathIterator object which gives the coordinates of the polygon, + * transformed according to the specified AffineTransform. The flatness + * parameter is ignored. + * + * @param t + * the specified AffineTransform object or null. + * @param flatness + * the maximum number of the control points for a given curve + * which varies from colinear before a subdivided curve is + * replaced by a straight line connecting the endpoints. This + * parameter is ignored for the Polygon class. * @return PathIterator object for the Polygon. - * - * @see java.awt.Shape#getPathIterator(java.awt.geom.AffineTransform, double) + * @see java.awt.Shape#getPathIterator(java.awt.geom.AffineTransform, + * double) */ public PathIterator getPathIterator(AffineTransform t, double flatness) { return new Iterator(t, this); } } - diff --git a/awt/java/awt/Rectangle.java b/awt/java/awt/Rectangle.java index 86c4dfc..d8ebb3a 100644 --- a/awt/java/awt/Rectangle.java +++ b/awt/java/awt/Rectangle.java @@ -18,36 +18,48 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt; import java.awt.geom.Rectangle2D; import java.io.Serializable; /** - * The Rectangle class defines the rectangular area in terms of its - * upper left corner coordinates [x,y], its width, and its height. - * A Rectangle specified by [x, y, width, height] parameters has an - * outline path with corners at [x, y], [x + width,y], [x + width,y + height], - * and [x, y + height]. - * <br><br> - * The rectangle is empty if the width or height is negative or zero. - * In this case the isEmpty method returns true. + * The Rectangle class defines the rectangular area in terms of its upper left + * corner coordinates [x,y], its width, and its height. A Rectangle specified by + * [x, y, width, height] parameters has an outline path with corners at [x, y], + * [x + width,y], [x + width,y + height], and [x, y + height]. <br> + * <br> + * The rectangle is empty if the width or height is negative or zero. In this + * case the isEmpty method returns true. + * + * @since Android 1.0 */ public class Rectangle extends Rectangle2D implements Shape, Serializable { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -4345857070255674764L; - /** The X coordinate of the rectangle's left upper corner. */ + /** + * The X coordinate of the rectangle's left upper corner. + */ public int x; - - /** The Y coordinate of the rectangle's left upper corner. */ + + /** + * The Y coordinate of the rectangle's left upper corner. + */ public int y; - - /** The width of rectangle. */ + + /** + * The width of rectangle. + */ public int width; - - /** The height of rectangle. */ + + /** + * The height of rectangle. + */ public int height; /** @@ -60,73 +72,82 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { /** * Instantiates a new rectangle whose upper left corner coordinates are - * given by the Point object (p.X and p.Y), and the width and - * the height are zero. + * given by the Point object (p.X and p.Y), and the width and the height are + * zero. * - * @param p the Point specifies the upper left corner coordinates of - * the rectangle. + * @param p + * the Point specifies the upper left corner coordinates of the + * rectangle. */ public Rectangle(Point p) { setBounds(p.x, p.y, 0, 0); } /** - * Instantiates a new rectangle whose upper left corner coordinates are - * given by the Point object (p.X and p.Y), and the width and the height - * are given by Dimension object (d.width and d.height). + * Instantiates a new rectangle whose upper left corner coordinates are + * given by the Point object (p.X and p.Y), and the width and the height are + * given by Dimension object (d.width and d.height). * - * @param p the Point specifies the upper left corner coordinates of - * the rectangle. - * @param d the Dimention specifies the width and the height of the rectangle. + * @param p + * the point specifies the upper left corner coordinates of the + * rectangle. + * @param d + * the dimension specifies the width and the height of the + * rectangle. */ public Rectangle(Point p, Dimension d) { setBounds(p.x, p.y, d.width, d.height); } /** - * Instantiates a new rectangle determined by the upper left corner + * Instantiates a new rectangle determined by the upper left corner * coordinates (x, y), width and height. * - * @param x the X upper left corner coordinate of the rectangle. - * @param y the Y upper left corner coordinate of the rectangle. - * @param width the width of rectangle. - * @param height the height of rectangle. + * @param x + * the X upper left corner coordinate of the rectangle. + * @param y + * the Y upper left corner coordinate of the rectangle. + * @param width + * the width of rectangle. + * @param height + * the height of rectangle. */ public Rectangle(int x, int y, int width, int height) { setBounds(x, y, width, height); } /** - * Instantiates a new rectangle with [0, 0] as its upper left - * corner coordinates and the specified width and height. + * Instantiates a new rectangle with [0, 0] as its upper left corner + * coordinates and the specified width and height. * - * @param width the width of rectangle. - * @param height the height of rectangle. + * @param width + * the width of rectangle. + * @param height + * the height of rectangle. */ public Rectangle(int width, int height) { setBounds(0, 0, width, height); } /** - * Instantiates a new rectangle with the same coordinates - * as the given source rectangle. + * Instantiates a new rectangle with the same coordinates as the given + * source rectangle. * - * @param r the Rectangle object which parameters will be used for - * instantiating a new Rectangle. + * @param r + * the Rectangle object which parameters will be used for + * instantiating a new Rectangle. */ public Rectangle(Rectangle r) { setBounds(r.x, r.y, r.width, r.height); } -/* - public Rectangle(Dimension d) { - setBounds(0, 0, d.width, d.height); - } -*/ + + /* + * public Rectangle(Dimension d) { setBounds(0, 0, d.width, d.height); } + */ /** * Gets the X coordinate of bound as a double. * * @return the X coordinate of bound as a double. - * * @see java.awt.geom.RectangularShape#getX() */ @Override @@ -138,7 +159,6 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { * Gets the Y coordinate of bound as a double. * * @return the Y coordinate of bound as a double. - * * @see java.awt.geom.RectangularShape#getY() */ @Override @@ -149,8 +169,7 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { /** * Gets the height of the rectangle as a double. * - * @return the height of the rectangle as a double. - * + * @return the height of the rectangle as a double. * @see java.awt.geom.RectangularShape#getHeight() */ @Override @@ -162,7 +181,6 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { * Gets the width of the rectangle as a double. * * @return the width of the rectangle as a double. - * * @see java.awt.geom.RectangularShape#getWidth() */ @Override @@ -171,11 +189,10 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { } /** - * Determines whether or not the rectangle is empty. The rectangle is empty if - * its width or height is negative or zero. + * Determines whether or not the rectangle is empty. The rectangle is empty + * if its width or height is negative or zero. * * @return true, if the rectangle is empty, otherwise false. - * * @see java.awt.geom.RectangularShape#isEmpty() */ @Override @@ -184,9 +201,9 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { } /** - * Gets the size of a Rectangle as Dimention object. + * Gets the size of a Rectangle as Dimension object. * - * @return a Dimention object which represents size of the rectangle. + * @return a Dimension object which represents size of the rectangle. */ public Dimension getSize() { return new Dimension(width, height); @@ -195,8 +212,10 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { /** * Sets the size of the Rectangle. * - * @param width the new width of the rectangle. - * @param height the new height of the rectangle. + * @param width + * the new width of the rectangle. + * @param height + * the new height of the rectangle. */ public void setSize(int width, int height) { this.width = width; @@ -206,7 +225,8 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { /** * Sets the size of a Rectangle specified as Dimension object. * - * @param d a Dimension object which represents new size of a rectangle. + * @param d + * a Dimension object which represents new size of a rectangle. */ public void setSize(Dimension d) { setSize(d.width, d.height); @@ -215,19 +235,21 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { /** * Gets the location of a rectangle's upper left corner as a Point object. * - * @return the Point object with coordinates equal to the upper left corner - * of the rectangle. + * @return the Point object with coordinates equal to the upper left corner + * of the rectangle. */ public Point getLocation() { return new Point(x, y); } /** - * Sets the location of the rectangle in terms of its upper left - * corner coordinates X and Y. + * Sets the location of the rectangle in terms of its upper left corner + * coordinates X and Y. * - * @param x the X coordinate of the rectangle's upper left corner. - * @param y the Y coordinate of the rectangle's upper left corner. + * @param x + * the X coordinate of the rectangle's upper left corner. + * @param y + * the Y coordinate of the rectangle's upper left corner. */ public void setLocation(int x, int y) { this.x = x; @@ -235,23 +257,25 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { } /** - * Sets the location of a rectangle using a Point object to give the + * Sets the location of a rectangle using a Point object to give the * coordinates of the upper left corner. * - * @param p the Point object which represents the new upper left corner - * coordinates of rectangle. + * @param p + * the Point object which represents the new upper left corner + * coordinates of rectangle. */ public void setLocation(Point p) { setLocation(p.x, p.y); } /** - * Moves a rectangle to the new location by moving its upper left corner - * to the point with coordinates X and Y. - * - * @param x the new X coordinate of the rectangle's upper left corner. - * @param y the new Y coordinate of the rectangle's upper left corner. + * Moves a rectangle to the new location by moving its upper left corner to + * the point with coordinates X and Y. * + * @param x + * the new X coordinate of the rectangle's upper left corner. + * @param y + * the new Y coordinate of the rectangle's upper left corner. * @deprecated Use setLocation(int, int) method. */ @Deprecated @@ -260,16 +284,19 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { } /** - * Sets the rectangle to be the nearest rectangle with integer coordinates + * Sets the rectangle to be the nearest rectangle with integer coordinates * bounding the rectangle defined by the double-valued parameters. * - * @param x the X coordinate of the upper left corner of the double-valued - * rectangle to be bounded. - * @param y the Y coordinate of the upper left corner of the double-valued - * rectangle to be bounded. - * @param width the width of the rectangle to be bounded. - * @param height the height of the rectangle to be bounded. - * + * @param x + * the X coordinate of the upper left corner of the double-valued + * rectangle to be bounded. + * @param y + * the Y coordinate of the upper left corner of the double-valued + * rectangle to be bounded. + * @param width + * the width of the rectangle to be bounded. + * @param height + * the height of the rectangle to be bounded. * @see java.awt.geom.Rectangle2D#setRect(double, double, double, double) */ @Override @@ -284,9 +311,10 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { /** * Sets a new size for the rectangle. * - * @param width the rectangle's new width. - * @param height the rectangle's new height. - * + * @param width + * the rectangle's new width. + * @param height + * the rectangle's new height. * @deprecated use the setSize(int, int) method. */ @Deprecated @@ -295,14 +323,17 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { } /** - * Resets the bounds of a rectangle to the specified x, y, width and height + * Resets the bounds of a rectangle to the specified x, y, width and height * parameters. * - * @param x the new X coordinate of the upper left corner. - * @param y the new Y coordinate of the upper left corner. - * @param width the new width of rectangle. - * @param height the new height of rectangle. - * + * @param x + * the new X coordinate of the upper left corner. + * @param y + * the new Y coordinate of the upper left corner. + * @param width + * the new width of rectangle. + * @param height + * the new height of rectangle. * @deprecated use setBounds(int, int, int, int) method */ @Deprecated @@ -312,10 +343,9 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { /** * Gets bounds of the rectangle as a new Rectangle object. - * - * @return the Rectangle object with the same bounds as - * the original rectangle. * + * @return the Rectangle object with the same bounds as the original + * rectangle. * @see java.awt.geom.RectangularShape#getBounds() */ @Override @@ -325,10 +355,9 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { /** * Gets the bounds of the original rectangle as a Rectangle2D object. - * - * @return the Rectangle2D object which represents the bounds of - * the original rectangle. * + * @return the Rectangle2D object which represents the bounds of the + * original rectangle. * @see java.awt.geom.Rectangle2D#getBounds2D() */ @Override @@ -337,13 +366,17 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { } /** - * Sets the bounds of a rectangle to the specified x, y, width, and height + * Sets the bounds of a rectangle to the specified x, y, width, and height * parameters. * - * @param x the X coordinate of the upper left corner. - * @param y the Y coordinate of the upper left corner. - * @param width the width of rectangle. - * @param height the height of rectangle. + * @param x + * the X coordinate of the upper left corner. + * @param y + * the Y coordinate of the upper left corner. + * @param width + * the width of rectangle. + * @param height + * the height of rectangle. */ public void setBounds(int x, int y, int width, int height) { this.x = x; @@ -353,25 +386,26 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { } /** - * Sets the bounds of the rectangle to match the bounds of the - * Rectangle object sent as a parameter. + * Sets the bounds of the rectangle to match the bounds of the Rectangle + * object sent as a parameter. * - * @param r the Rectangle object which specifies the new bounds. + * @param r + * the Rectangle object which specifies the new bounds. */ public void setBounds(Rectangle r) { setBounds(r.x, r.y, r.width, r.height); } /** - * Enlarges the rectangle by moving each corner outward from the - * center by a distance of dx horizonally and a distance of dy - * vertically. Specifically, changes a rectangle with - * [x, y, width, height] parameters to - * a rectangle with [x-dx, y-dy, width+2*dx, height+2*dy] - * parameters. - * - * @param dx the horizontal distance to move each corner coordinate. - * @param dy the vertical distance to move each corner coordinate. + * Enlarges the rectangle by moving each corner outward from the center by a + * distance of dx horizonally and a distance of dy vertically. Specifically, + * changes a rectangle with [x, y, width, height] parameters to a rectangle + * with [x-dx, y-dy, width+2*dx, height+2*dy] parameters. + * + * @param dx + * the horizontal distance to move each corner coordinate. + * @param dy + * the vertical distance to move each corner coordinate. */ public void grow(int dx, int dy) { x -= dx; @@ -381,11 +415,13 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { } /** - * Moves a rectangle a distance of mx along the x coordinate axis - * and a distance of my along y coordinate axis. + * Moves a rectangle a distance of mx along the x coordinate axis and a + * distance of my along y coordinate axis. * - * @param mx the horizontal translation increment. - * @param my the vertical translation increment. + * @param mx + * the horizontal translation increment. + * @param my + * the vertical translation increment. */ public void translate(int mx, int my) { x += mx; @@ -395,8 +431,12 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { /** * Enlarges the rectangle to cover the specified point. * - * @param px the X coordinate of the new point to be covered by the rectangle. - * @param py the Y coordinate of the new point to be covered by the rectangle. + * @param px + * the X coordinate of the new point to be covered by the + * rectangle. + * @param py + * the Y coordinate of the new point to be covered by the + * rectangle. */ public void add(int px, int py) { int x1 = Math.min(x, px); @@ -407,11 +447,12 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { } /** - * Enlarges the rectangle to cover the specified point with the - * new point given as a Point object. + * Enlarges the rectangle to cover the specified point with the new point + * given as a Point object. * - * @param p the Point object that specifies the new point to - * be covered by the rectangle. + * @param p + * the Point object that specifies the new point to be covered by + * the rectangle. */ public void add(Point p) { add(p.x, p.y); @@ -421,7 +462,8 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { * Adds a new rectangle to the original rectangle, the result is an union of * the specified specified rectangle and original rectangle. * - * @param r the Rectangle which is added to the original rectangle. + * @param r + * the Rectangle which is added to the original rectangle. */ public void add(Rectangle r) { int x1 = Math.min(x, r.x); @@ -432,14 +474,15 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { } /** - * Determines whether or not the point with specified coordinates [px, py] + * Determines whether or not the point with specified coordinates [px, py] * is within the bounds of the rectangle. * - * @param px the X coordinate of point. - * @param py the Y coordinate of point. - * - * @return true, if the point with specified coordinates [px, py] is - * within the bounds of the rectangle, otherwise false. + * @param px + * the X coordinate of point. + * @param py + * the Y coordinate of point. + * @return true, if the point with specified coordinates [px, py] is within + * the bounds of the rectangle, false otherwise. */ public boolean contains(int px, int py) { if (isEmpty()) { @@ -454,29 +497,32 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { } /** - * Determines whether or not the point given as a Point object - * is within the bounds of the rectangle. - * - * @param p the Point object + * Determines whether or not the point given as a Point object is within the + * bounds of the rectangle. * - * @return true, if the point p is within the bounds of the - * rectangle, otherwise false. + * @param p + * the Point object + * @return true, if the point p is within the bounds of the rectangle, + * otherwise false. */ public boolean contains(Point p) { return contains(p.x, p.y); } /** - * Determines whether or not the rectangle specified by [rx, ry, rw, rh] + * Determines whether or not the rectangle specified by [rx, ry, rw, rh] * parameters is located inside the original rectangle. * - * @param rx the X coordinate of the rectangle to compare. - * @param ry the Y coordinate of the rectangle to compare. - * @param rw the width of the rectangle to compare. - * @param rh the height of the rectangle to compare. - * + * @param rx + * the X coordinate of the rectangle to compare. + * @param ry + * the Y coordinate of the rectangle to compare. + * @param rw + * the width of the rectangle to compare. + * @param rh + * the height of the rectangle to compare. * @return true, if a rectangle with [rx, ry, rw, rh] parameters is entirely - * contained in the original rectangle, otherwise false. + * contained in the original rectangle, false otherwise. */ public boolean contains(int rx, int ry, int rw, int rh) { return contains(rx, ry) && contains(rx + rw - 1, ry + rh - 1); @@ -486,25 +532,25 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { * Compares whether or not the rectangle specified by the Rectangle object * is located inside the original rectangle. * - * @param r the Rectangle object. - * + * @param r + * the Rectangle object. * @return true, if the rectangle specified by Rectangle object is entirely - * contained in the original rectangle, otherwise false. + * contained in the original rectangle, false otherwise. */ public boolean contains(Rectangle r) { return contains(r.x, r.y, r.width, r.height); } /** - * Compares whether or not a point with specified coordinates [px, py] belongs - * to a rectangle. - * - * @param px the X coordinate of a point. - * @param py the Y coordinate of a point. - * - * @return true, if a point with specified coordinates [px, py] belongs - * to a rectangle, otherwise false. + * Compares whether or not a point with specified coordinates [px, py] + * belongs to a rectangle. * + * @param px + * the X coordinate of a point. + * @param py + * the Y coordinate of a point. + * @return true, if a point with specified coordinates [px, py] belongs to a + * rectangle, otherwise false. * @deprecated use contains(int, int) method. */ @Deprecated @@ -513,20 +559,19 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { } /** - * Returns the intersection of the original rectangle with the - * specified Rectangle2D. - * - * @param r the Rectangle2D object. - * - * @return the Rectangle2D object that is the result of intersecting - * the original rectangle with the specified Rectangle2D. + * Returns the intersection of the original rectangle with the specified + * Rectangle2D. * + * @param r + * the Rectangle2D object. + * @return the Rectangle2D object that is the result of intersecting the + * original rectangle with the specified Rectangle2D. * @see java.awt.geom.Rectangle2D#createIntersection(java.awt.geom.Rectangle2D) */ @Override public Rectangle2D createIntersection(Rectangle2D r) { if (r instanceof Rectangle) { - return intersection((Rectangle) r); + return intersection((Rectangle)r); } Rectangle2D dst = new Rectangle2D.Double(); Rectangle2D.intersect(this, r, dst); @@ -534,14 +579,13 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { } /** - * Returns the intersection of the original rectangle with the - * specified rectangle. An empty rectangle is returned if there is no - * intersection. - * - * @param r the Rectangle object. + * Returns the intersection of the original rectangle with the specified + * rectangle. An empty rectangle is returned if there is no intersection. * - * @return the Rectangle object is result of the original rectangle with the - * specified rectangle. + * @param r + * the Rectangle object. + * @return the Rectangle object is result of the original rectangle with the + * specified rectangle. */ public Rectangle intersection(Rectangle r) { int x1 = Math.max(x, r.x); @@ -552,39 +596,38 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { } /** - * Determines whether or not the original rectangle intersects - * the specified rectangle. + * Determines whether or not the original rectangle intersects the specified + * rectangle. * - * @param r the Rectangle object. - * - * @return true, if the two rectangles overlap; otherwise false. + * @param r + * the Rectangle object. + * @return true, if the two rectangles overlap, false otherwise. */ public boolean intersects(Rectangle r) { return !intersection(r).isEmpty(); } /** - * Determines where the specified Point is located with respect to - * the rectangle. This method computes whether the point is to the - * right or to the left of the rectangle and whether it is above - * or below the rectangle, and packs the result into an int by - * using a binary OR operation with the following masks: + * Determines where the specified Point is located with respect to the + * rectangle. This method computes whether the point is to the right or to + * the left of the rectangle and whether it is above or below the rectangle, + * and packs the result into an integer by using a binary OR operation with + * the following masks: * <ul> *<li>Rectangle2D.OUT_LEFT</li> *<li>Rectangle2D.OUT_TOP</li> *<li>Rectangle2D.OUT_RIGHT</li> *<li>Rectangle2D.OUT_BOTTOM</li> *</ul> - * - * If the rectangle is empty, all masks are set, and if the - * point is inside the rectangle, none are set. - * - * @param px the X coordinate of the specified point. - * @param py the Y coordinate of the specified point. - * - * @return the location of the Point relative to the rectangle - * as the result of logical OR operation with all out masks. - * + * If the rectangle is empty, all masks are set, and if the point is inside + * the rectangle, none are set. + * + * @param px + * the X coordinate of the specified point. + * @param py + * the Y coordinate of the specified point. + * @return the location of the Point relative to the rectangle as the result + * of logical OR operation with all out masks. * @see java.awt.geom.Rectangle2D#outcode(double, double) */ @Override @@ -593,23 +636,19 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { if (width <= 0) { code |= OUT_LEFT | OUT_RIGHT; - } else - if (px < x) { - code |= OUT_LEFT; - } else - if (px > x + width) { - code |= OUT_RIGHT; - } + } else if (px < x) { + code |= OUT_LEFT; + } else if (px > x + width) { + code |= OUT_RIGHT; + } if (height <= 0) { code |= OUT_TOP | OUT_BOTTOM; - } else - if (py < y) { - code |= OUT_TOP; - } else - if (py > y + height) { - code |= OUT_BOTTOM; - } + } else if (py < y) { + code |= OUT_TOP; + } else if (py > y + height) { + code |= OUT_BOTTOM; + } return code; } @@ -617,10 +656,9 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { /** * Enlarges the rectangle to cover the specified Rectangle2D. * - * @param r the Rectangle2D object. - * + * @param r + * the Rectangle2D object. * @return the union of the original and the specified Rectangle2D. - * * @see java.awt.geom.Rectangle2D#createUnion(java.awt.geom.Rectangle2D) */ @Override @@ -636,8 +674,8 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { /** * Enlarges the rectangle to cover the specified rectangle. * - * @param r the Rectangle. - * + * @param r + * the Rectangle. * @return the union of the original and the specified rectangle. */ public Rectangle union(Rectangle r) { @@ -649,11 +687,10 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { /** * Compares the original Rectangle with the specified object. * - * @param obj the specified Object for comparison. - * - * @return true, if the specified Object is a rectangle with the - * same dimensions as the original rectangle, otherwise false. - * + * @param obj + * the specified Object for comparison. + * @return true, if the specified Object is a rectangle with the same + * dimensions as the original rectangle, false otherwise. * @see java.awt.geom.Rectangle2D#equals(Object) */ @Override @@ -669,18 +706,18 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable { } /** - * Returns a string representation of the rectangle; the string contains - * [x, y, width, height] parameters of the rectangle. + * Returns a string representation of the rectangle; the string contains [x, + * y, width, height] parameters of the rectangle. * * @return the string representation of the rectangle. */ @Override public String toString() { - // The output format based on 1.5 release behaviour. It could be obtained in the following way + // The output format based on 1.5 release behaviour. It could be + // obtained in the following way // System.out.println(new Rectangle().toString()) return getClass().getName() + "[x=" + x + ",y=" + y + //$NON-NLS-1$ //$NON-NLS-2$ - ",width=" + width + ",height=" + height + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + ",width=" + width + ",height=" + height + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } } - diff --git a/awt/java/awt/RenderingHints.java b/awt/java/awt/RenderingHints.java index 4957884..acf6fa1 100644 --- a/awt/java/awt/RenderingHints.java +++ b/awt/java/awt/RenderingHints.java @@ -18,6 +18,7 @@ * @author Alexey A. Petrenko * @version $Revision$ */ + package java.awt; import java.util.Collection; @@ -27,224 +28,219 @@ import java.util.Map; import java.util.Set; /** - * The RenderingHints class represents preferences for the rendering algorithms. - * The preferences are arbitrary and can be specified by Map objects or by - * key-value pairs. + * The RenderingHints class represents preferences for the rendering algorithms. + * The preferences are arbitrary and can be specified by Map objects or by + * key-value pairs. + * + * @since Android 1.0 */ public class RenderingHints implements Map<Object, Object>, Cloneable { - + /** - * The Constant KEY_ALPHA_INTERPOLATION - alpha interpolation rendering - * hint key. + * The Constant KEY_ALPHA_INTERPOLATION - alpha interpolation rendering hint + * key. */ public static final Key KEY_ALPHA_INTERPOLATION = new KeyImpl(1); - - /** + + /** * The Constant VALUE_ALPHA_INTERPOLATION_DEFAULT - alpha interpolation * rendering hint value. */ - public static final Object VALUE_ALPHA_INTERPOLATION_DEFAULT = new KeyValue(KEY_ALPHA_INTERPOLATION); - - /** + public static final Object VALUE_ALPHA_INTERPOLATION_DEFAULT = new KeyValue( + KEY_ALPHA_INTERPOLATION); + + /** * The Constant VALUE_ALPHA_INTERPOLATION_SPEED - alpha interpolation * rendering hint value. */ - public static final Object VALUE_ALPHA_INTERPOLATION_SPEED = new KeyValue(KEY_ALPHA_INTERPOLATION); - - /** + public static final Object VALUE_ALPHA_INTERPOLATION_SPEED = new KeyValue( + KEY_ALPHA_INTERPOLATION); + + /** * The Constant VALUE_ALPHA_INTERPOLATION_QUALITY - alpha interpolation * rendering hint value. */ - public static final Object VALUE_ALPHA_INTERPOLATION_QUALITY = new KeyValue(KEY_ALPHA_INTERPOLATION); + public static final Object VALUE_ALPHA_INTERPOLATION_QUALITY = new KeyValue( + KEY_ALPHA_INTERPOLATION); - /** - * The Constant KEY_ANTIALIASING - antialiasing rendering - * hint key. + /** + * The Constant KEY_ANTIALIASING - antialiasing rendering hint key. */ public static final Key KEY_ANTIALIASING = new KeyImpl(2); - + /** - * The Constant VALUE_ANTIALIAS_DEFAULT - antialiasing - * rendering hint value. + * The Constant VALUE_ANTIALIAS_DEFAULT - antialiasing rendering hint value. */ public static final Object VALUE_ANTIALIAS_DEFAULT = new KeyValue(KEY_ANTIALIASING); - - /** - * The Constant VALUE_ANTIALIAS_ON - antialiasing - * rendering hint value. + + /** + * The Constant VALUE_ANTIALIAS_ON - antialiasing rendering hint value. */ public static final Object VALUE_ANTIALIAS_ON = new KeyValue(KEY_ANTIALIASING); - + /** - * The Constant VALUE_ANTIALIAS_OFF - antialiasing - * rendering hint value. + * The Constant VALUE_ANTIALIAS_OFF - antialiasing rendering hint value. */ public static final Object VALUE_ANTIALIAS_OFF = new KeyValue(KEY_ANTIALIASING); - /** - * The Constant KEY_COLOR_RENDERING - color rendering - * hint key. + /** + * The Constant KEY_COLOR_RENDERING - color rendering hint key. */ public static final Key KEY_COLOR_RENDERING = new KeyImpl(3); - + /** - * The Constant VALUE_COLOR_RENDER_DEFAULT - color - * rendering hint value. + * The Constant VALUE_COLOR_RENDER_DEFAULT - color rendering hint value. */ public static final Object VALUE_COLOR_RENDER_DEFAULT = new KeyValue(KEY_COLOR_RENDERING); - - /** - * The Constant VALUE_COLOR_RENDER_SPEED - color - * rendering hint value. + + /** + * The Constant VALUE_COLOR_RENDER_SPEED - color rendering hint value. */ public static final Object VALUE_COLOR_RENDER_SPEED = new KeyValue(KEY_COLOR_RENDERING); - - /** - * The Constant VALUE_COLOR_RENDER_QUALITY - color - * rendering hint value. + + /** + * The Constant VALUE_COLOR_RENDER_QUALITY - color rendering hint value. */ public static final Object VALUE_COLOR_RENDER_QUALITY = new KeyValue(KEY_COLOR_RENDERING); /** - * The Constant KEY_DITHERING - dithering - * rendering hint key. + * The Constant KEY_DITHERING - dithering rendering hint key. */ public static final Key KEY_DITHERING = new KeyImpl(4); - + /** - * The Constant VALUE_DITHER_DEFAULT - dithering - * rendering hint value. + * The Constant VALUE_DITHER_DEFAULT - dithering rendering hint value. */ public static final Object VALUE_DITHER_DEFAULT = new KeyValue(KEY_DITHERING); - - /** - * The Constant VALUE_DITHER_DISABLE - dithering - * rendering hint value. + + /** + * The Constant VALUE_DITHER_DISABLE - dithering rendering hint value. */ public static final Object VALUE_DITHER_DISABLE = new KeyValue(KEY_DITHERING); - - /** - * The Constant VALUE_DITHER_DISABLE - dithering - * rendering hint value. + + /** + * The Constant VALUE_DITHER_DISABLE - dithering rendering hint value. */ public static final Object VALUE_DITHER_ENABLE = new KeyValue(KEY_DITHERING); - /** - * The Constant KEY_FRACTIONALMETRICS - fractional metrics - * rendering hint key. + /** + * The Constant KEY_FRACTIONALMETRICS - fractional metrics rendering hint + * key. */ public static final Key KEY_FRACTIONALMETRICS = new KeyImpl(5); - + /** * The Constant VALUE_FRACTIONALMETRICS_DEFAULT - fractional metrics * rendering hint value. */ public static final Object VALUE_FRACTIONALMETRICS_DEFAULT = new KeyValue(KEY_FRACTIONALMETRICS); - + /** - * The Constant VALUE_FRACTIONALMETRICS_ON - fractional metrics - * rendering hint value. + * The Constant VALUE_FRACTIONALMETRICS_ON - fractional metrics rendering + * hint value. */ public static final Object VALUE_FRACTIONALMETRICS_ON = new KeyValue(KEY_FRACTIONALMETRICS); - + /** - * The Constant VALUE_FRACTIONALMETRICS_OFF - fractional metrics - * rendering hint value. + * The Constant VALUE_FRACTIONALMETRICS_OFF - fractional metrics rendering + * hint value. */ public static final Object VALUE_FRACTIONALMETRICS_OFF = new KeyValue(KEY_FRACTIONALMETRICS); - /** - * The Constant KEY_INTERPOLATION - interpolation - * rendering hint key. + /** + * The Constant KEY_INTERPOLATION - interpolation rendering hint key. */ public static final Key KEY_INTERPOLATION = new KeyImpl(6); - - /** - * The Constant VALUE_INTERPOLATION_BICUBIC - interpolation - * rendering hint value. + + /** + * The Constant VALUE_INTERPOLATION_BICUBIC - interpolation rendering hint + * value. */ public static final Object VALUE_INTERPOLATION_BICUBIC = new KeyValue(KEY_INTERPOLATION); - + /** - * The Constant VALUE_INTERPOLATION_BILINEAR - interpolation - * rendering hint value. + * The Constant VALUE_INTERPOLATION_BILINEAR - interpolation rendering hint + * value. */ public static final Object VALUE_INTERPOLATION_BILINEAR = new KeyValue(KEY_INTERPOLATION); - - /** The Constant VALUE_INTERPOLATION_NEAREST_NEIGHBOR - interpolation + + /** + * The Constant VALUE_INTERPOLATION_NEAREST_NEIGHBOR - interpolation * rendering hint value. */ - public static final Object VALUE_INTERPOLATION_NEAREST_NEIGHBOR = new KeyValue(KEY_INTERPOLATION); + public static final Object VALUE_INTERPOLATION_NEAREST_NEIGHBOR = new KeyValue( + KEY_INTERPOLATION); /** * The Constant KEY_RENDERING - rendering hint key. */ public static final Key KEY_RENDERING = new KeyImpl(7); - - /** - * The Constant VALUE_RENDER_DEFAULT - rendering hint value. + + /** + * The Constant VALUE_RENDER_DEFAULT - rendering hint value. */ public static final Object VALUE_RENDER_DEFAULT = new KeyValue(KEY_RENDERING); - - /** - * The Constant VALUE_RENDER_SPEED - rendering hint value. + + /** + * The Constant VALUE_RENDER_SPEED - rendering hint value. */ public static final Object VALUE_RENDER_SPEED = new KeyValue(KEY_RENDERING); - - /** - * The Constant VALUE_RENDER_QUALITY - rendering hint value. + + /** + * The Constant VALUE_RENDER_QUALITY - rendering hint value. */ public static final Object VALUE_RENDER_QUALITY = new KeyValue(KEY_RENDERING); - /** - * The Constant KEY_STROKE_CONTROL - stroke control hint key. + /** + * The Constant KEY_STROKE_CONTROL - stroke control hint key. */ public static final Key KEY_STROKE_CONTROL = new KeyImpl(8); - - /** - * The Constant VALUE_STROKE_DEFAULT - stroke hint value. + + /** + * The Constant VALUE_STROKE_DEFAULT - stroke hint value. */ public static final Object VALUE_STROKE_DEFAULT = new KeyValue(KEY_STROKE_CONTROL); - - /** - * The Constant VALUE_STROKE_NORMALIZE - stroke hint value. + + /** + * The Constant VALUE_STROKE_NORMALIZE - stroke hint value. */ public static final Object VALUE_STROKE_NORMALIZE = new KeyValue(KEY_STROKE_CONTROL); - - /** - * The Constant VALUE_STROKE_PURE - stroke hint value. + + /** + * The Constant VALUE_STROKE_PURE - stroke hint value. */ public static final Object VALUE_STROKE_PURE = new KeyValue(KEY_STROKE_CONTROL); - /** - * The Constant KEY_TEXT_ANTIALIASING - text antialiasing hint key. + /** + * The Constant KEY_TEXT_ANTIALIASING - text antialiasing hint key. */ public static final Key KEY_TEXT_ANTIALIASING = new KeyImpl(9); - + /** - * The Constant VALUE_TEXT_ANTIALIAS_DEFAULT - text antialiasing hint key. + * The Constant VALUE_TEXT_ANTIALIAS_DEFAULT - text antialiasing hint key. */ public static final Object VALUE_TEXT_ANTIALIAS_DEFAULT = new KeyValue(KEY_TEXT_ANTIALIASING); - + /** * The Constant VALUE_TEXT_ANTIALIAS_ON - text antialiasing hint key. */ public static final Object VALUE_TEXT_ANTIALIAS_ON = new KeyValue(KEY_TEXT_ANTIALIASING); - + /** - * The Constant VALUE_TEXT_ANTIALIAS_OFF - text antialiasing hint key. + * The Constant VALUE_TEXT_ANTIALIAS_OFF - text antialiasing hint key. */ public static final Object VALUE_TEXT_ANTIALIAS_OFF = new KeyValue(KEY_TEXT_ANTIALIASING); /** The map. */ private HashMap<Object, Object> map = new HashMap<Object, Object>(); - + /** - * Instantiates a new rendering hints object from specified Map object with defined - * key/value pairs or null for empty RenderingHints. + * Instantiates a new rendering hints object from specified Map object with + * defined key/value pairs or null for empty RenderingHints. * - * @param map the Map object with defined key/value pairs or null for - * empty RenderingHints. + * @param map + * the Map object with defined key/value pairs or null for empty + * RenderingHints. */ public RenderingHints(Map<Key, ?> map) { super(); @@ -254,10 +250,13 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { } /** - * Instantiates a new rendering hints object with the specified key/value pair. + * Instantiates a new rendering hints object with the specified key/value + * pair. * - * @param key the key of hint property. - * @param value the value of hint property. + * @param key + * the key of hint property. + * @param value + * the value of hint property. */ public RenderingHints(Key key, Object value) { super(); @@ -268,21 +267,22 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { * Adds the properties represented by key/value pairs from the specified * RenderingHints object to current object. * - * @param hints the RenderingHints to be added. + * @param hints + * the RenderingHints to be added. */ public void add(RenderingHints hints) { map.putAll(hints.map); } /** - * Puts the specified value to the specified key. Neither the key nor - * the value can be null. - * - * @param key the rendering hint key. - * @param value the rendering hint value. + * Puts the specified value to the specified key. Neither the key nor the + * value can be null. * + * @param key + * the rendering hint key. + * @param value + * the rendering hint value. * @return the previous rendering hint value assigned to the key or null. - * */ public Object put(Object key, Object value) { if (!((Key)key).isCompatibleValue(value)) { @@ -293,13 +293,13 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { } /** - * Removes the specified key and corresponding value from - * the RenderingHints object. + * Removes the specified key and corresponding value from the RenderingHints + * object. * - * @param key the specified hint key to be removed. - * - * @return the object of previous rendering hint value which is - * assigned to the specified key, or null. + * @param key + * the specified hint key to be removed. + * @return the object of previous rendering hint value which is assigned to + * the specified key, or null. */ public Object remove(Object key) { return map.remove(key); @@ -308,8 +308,8 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { /** * Gets the value assigned to the specified key. * - * @param key the rendering hint key. - * + * @param key + * the rendering hint key. * @return the object assigned to the specified key. */ public Object get(Object key) { @@ -319,7 +319,7 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { /** * Returns a set of rendering hints keys for current RenderingHints object. * - * @return the set of rendering hints keys. + * @return the set of rendering hints keys. */ public Set<Object> keySet() { return map.keySet(); @@ -336,23 +336,23 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { } /** - * Puts all of the preferences from the specified Map into - * the current RenderingHints object. These mappings replace - * all existing preferences. + * Puts all of the preferences from the specified Map into the current + * RenderingHints object. These mappings replace all existing preferences. * - * @param m the specified Map of preferences. + * @param m + * the specified Map of preferences. */ public void putAll(Map<?, ?> m) { if (m instanceof RenderingHints) { - map.putAll(((RenderingHints) m).map); + map.putAll(((RenderingHints)m).map); } else { Set<?> entries = m.entrySet(); - if (entries != null){ + if (entries != null) { Iterator<?> it = entries.iterator(); while (it.hasNext()) { - Map.Entry<?, ?> entry = (Map.Entry<?, ?>) it.next(); - Key key = (Key) entry.getKey(); + Map.Entry<?, ?> entry = (Map.Entry<?, ?>)it.next(); + Key key = (Key)entry.getKey(); Object val = entry.getValue(); put(key, val); } @@ -361,7 +361,8 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { } /** - * Returns a Collection of values contained in current RenderingHints object. + * Returns a Collection of values contained in current RenderingHints + * object. * * @return the Collection of RenderingHints's values. */ @@ -373,10 +374,10 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { * Checks whether or not current RenderingHints object contains at least one * the value which is equal to the specified Object. * - * @param value the specified Object. - * + * @param value + * the specified Object. * @return true, if the specified object is assigned to at least one - * RenderingHint's key, false otherwise. + * RenderingHint's key, false otherwise. */ public boolean containsValue(Object value) { return map.containsValue(value); @@ -386,11 +387,10 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { * Checks whether or not current RenderingHints object contains the key * which is equal to the specified Object. * - * @param key the specified Object. - * + * @param key + * the specified Object. * @return true, if the RenderingHints object contains the specified Object - * as a key, false otherwise. - * + * as a key, false otherwise. */ public boolean containsKey(Object key) { if (key == null) { @@ -401,8 +401,8 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { } /** - * Checks whether or not the RenderingHints object contains any - * key/value pairs. + * Checks whether or not the RenderingHints object contains any key/value + * pairs. * * @return true, if the RenderingHints object is empty, false otherwise. */ @@ -429,11 +429,10 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { /** * Compares the RenderingHints object with the specified object. * - * @param o the specified Object to be compaired. - * - * @return true, if the Object is a Map whose key/value pairs - * match this RenderingHints' key/value pairs, - * false otherwise. + * @param o + * the specified Object to be compared. + * @return true, if the Object is a Map whose key/value pairs match this + * RenderingHints' key/value pairs, false otherwise. */ @Override public boolean equals(Object o) { @@ -452,7 +451,7 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { Key key = (Key)it.next(); Object v1 = get(key); Object v2 = m.get(key); - if (!(v1==null?v2==null:v1.equals(v2))) { + if (!(v1 == null ? v2 == null : v1.equals(v2))) { return false; } } @@ -485,28 +484,30 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { /** * Returns the string representation of the RenderingHints object. * - * @return the String object which represents RenderingHints object. + * @return the String object which represents RenderingHints object. */ @Override public String toString() { - return "RenderingHints["+map.toString()+"]"; //$NON-NLS-1$ //$NON-NLS-2$ + return "RenderingHints[" + map.toString() + "]"; //$NON-NLS-1$ //$NON-NLS-2$ } /** - * The RenderingHints.Key class is abstract and defines a base type for - * all RenderingHints keys. + * The RenderingHints.Key class is abstract and defines a base type for all + * RenderingHints keys. + * + * @since Android 1.0 */ public abstract static class Key { - + /** The key. */ private final int key; /** - * Instantiates a new key with unique int identifier. - * No two objects of the same subclass with the same integer key - * can be instantiated. + * Instantiates a new key with unique integer identifier. No two objects + * of the same subclass with the same integer key can be instantiated. * - * @param key the unique key. + * @param key + * the unique key. */ protected Key(int key) { this.key = key; @@ -515,10 +516,10 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { /** * Compares the Key object with the specified object. * - * @param o the specified Object to be compaired. - * - * @return true, if the Key is equal to the specified object, - * false otherwise. + * @param o + * the specified Object to be compared. + * @return true, if the Key is equal to the specified object, false + * otherwise. */ @Override public final boolean equals(Object o) { @@ -536,11 +537,11 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { } /** - * Returns int unique key with which this Key object has been + * Returns integer unique key with which this Key object has been * instantiated. * - * @return the int unique key with which this Key object has been - * instantiated. + * @return the integer unique key with which this Key object has been + * instantiated. */ protected final int intKey() { return key; @@ -549,10 +550,10 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { /** * Checks whether or not specified value is compatible with the Key. * - * @param val the Object. - * + * @param val + * the Object. * @return true, if the specified value is compatible with the Key, - * false otherwise. + * false otherwise. */ public abstract boolean isCompatibleValue(Object val); } @@ -563,9 +564,10 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { private static class KeyImpl extends Key { /** - * Instantiates a new key impl. + * Instantiates a new key implementation. * - * @param key the key + * @param key + * the key. */ protected KeyImpl(int key) { super(key); @@ -585,14 +587,17 @@ public class RenderingHints implements Map<Object, Object>, Cloneable { * Private class KeyValue is used as value for Key class instance. */ private static class KeyValue { - - /** The key. */ + + /** + * The key. + */ private final Key key; /** * Instantiates a new key value. * - * @param key the key + * @param key + * the key. */ protected KeyValue(Key key) { this.key = key; diff --git a/awt/java/awt/Shape.java b/awt/java/awt/Shape.java index 3dbad25..59bc623 100644 --- a/awt/java/awt/Shape.java +++ b/awt/java/awt/Shape.java @@ -18,6 +18,7 @@ * @author Alexey A. Petrenko * @version $Revision$ */ + package java.awt; import java.awt.geom.AffineTransform; @@ -26,137 +27,136 @@ import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; /** - * The Shape interface defines a geometric shape defined by a boundary - * (outline) path. The path outline can be accessed through a - * PathIterator object. The Shape - * interface provides methods for obtaining the bounding box (which is - * the smallest rectangle containing the shape and for obtaining a PathIterator - * object for current Shape, as well as utility methods which - * determine if the Shape contains or intersects a Rectangle or contains a Point. + * The Shape interface defines a geometric shape defined by a boundary (outline) + * path. The path outline can be accessed through a PathIterator object. The + * Shape interface provides methods for obtaining the bounding box (which is the + * smallest rectangle containing the shape and for obtaining a PathIterator + * object for current Shape, as well as utility methods which determine if the + * Shape contains or intersects a Rectangle or contains a Point. + * + * @since Android 1.0 */ public interface Shape { - + /** - * Checks whether or not the point with specified coordinates lies inside + * Checks whether or not the point with specified coordinates lies inside * the Shape. * - * @param x the X coordinate. - * @param y the Y coordinate. - * - * @return true, if the specified coordinates lie inside the Shape, - * otherwise false. + * @param x + * the X coordinate. + * @param y + * the Y coordinate. + * @return true, if the specified coordinates lie inside the Shape, false + * otherwise. */ public boolean contains(double x, double y); /** - * Checks whether or not the rectangle with specified - * [x, y, width, height] parameters lies inside the Shape. - * - * @param x the X double coordinate of the rectangle's upper left - * corner. - * @param y the Y double coordinate of the rectangle's upper left - * corner. - * @param w the width of rectangle. - * @param h the height of rectangle. - * - * @return true, if the specified rectangle lies inside the Shape, - * otherwise false. + * Checks whether or not the rectangle with specified [x, y, width, height] + * parameters lies inside the Shape. + * + * @param x + * the X double coordinate of the rectangle's upper left corner. + * @param y + * the Y double coordinate of the rectangle's upper left corner. + * @param w + * the width of rectangle. + * @param h + * the height of rectangle. + * @return true, if the specified rectangle lies inside the Shape, false + * otherwise. */ public boolean contains(double x, double y, double w, double h); /** * Checks whether or not the specified Point2D lies inside the Shape. * - * @param point the Point2D object. - * - * @return true, if the specified Point2D lies inside the Shape, - * otherwise false. + * @param point + * the Point2D object. + * @return true, if the specified Point2D lies inside the Shape, false + * otherwise. */ public boolean contains(Point2D point); /** * Checks whether or not the specified rectangle lies inside the Shape. * - * @param r the Rectangle2D object. - * - * @return true, if the specified rectangle lies inside the Shape, - * otherwise false. + * @param r + * the Rectangle2D object. + * @return true, if the specified rectangle lies inside the Shape, false + * otherwise. */ public boolean contains(Rectangle2D r); /** - * Gets the bounding rectangle of the Shape. The bounding rectangle - * is the smallest rectangle which contains the Shape. + * Gets the bounding rectangle of the Shape. The bounding rectangle is the + * smallest rectangle which contains the Shape. * * @return the bounding rectangle of the Shape. */ public Rectangle getBounds(); /** - * Gets the Rectangle2D which represents Shape bounds. - * The bounding rectangle is the smallest rectangle which contains - * the Shape. + * Gets the Rectangle2D which represents Shape bounds. The bounding + * rectangle is the smallest rectangle which contains the Shape. * * @return the bounding rectangle of the Shape. */ public Rectangle2D getBounds2D(); /** - * Gets the PathIterator object of the Shape which provides - * access to the shape's boundary modified - * by the specified AffineTransform. - * - * @param at the specified AffineTransform object, or null. + * Gets the PathIterator object of the Shape which provides access to the + * shape's boundary modified by the specified AffineTransform. * + * @param at + * the specified AffineTransform object or null. * @return PathIterator object for the Shape. */ public PathIterator getPathIterator(AffineTransform at); /** - * Gets the PathIterator object of the Shape which provides - * access to the coordinates of the shapes boundary modified - * by the specified AffineTransform. The flatness parameter - * defines the amount of subdivision of the curved segments and - * specifies the maximum distance which every point on the - * unflattened transformed curve can deviate from the returned - * flattened path segments. - * - * @param at the specified AffineTransform object, or null. - * @param flatness the maximum number of the control points for - * a given curve which varies from colinear before a subdivided - * curve is replaced by a straight line connecting the endpoints. - * + * Gets the PathIterator object of the Shape which provides access to the + * coordinates of the shapes boundary modified by the specified + * AffineTransform. The flatness parameter defines the amount of subdivision + * of the curved segments and specifies the maximum distance which every + * point on the unflattened transformed curve can deviate from the returned + * flattened path segments. + * + * @param at + * the specified AffineTransform object or null. + * @param flatness + * the maximum number of the control points for a given curve + * which varies from colinear before a subdivided curve is + * replaced by a straight line connecting the endpoints. * @return PathIterator object for the Shape. */ public PathIterator getPathIterator(AffineTransform at, double flatness); /** - * Checks whether or not the interior of rectangular specified by - * [x, y, width, height] parameters intersects the interior of - * the Shape. - * - * @param x the X double coordinate of the rectangle's upper left - * corner. - * @param y the Y double coordinate of the rectangle's upper left - * corner. - * @param w the width of rectangle. - * @param h the height of rectangle. - * - * @return true, if the rectangle specified by - * [x, y, width, height] parameters intersects the interior of - * the Shape, otherwise false. - * + * Checks whether or not the interior of rectangular specified by [x, y, + * width, height] parameters intersects the interior of the Shape. + * + * @param x + * the X double coordinate of the rectangle's upper left corner. + * @param y + * the Y double coordinate of the rectangle's upper left corner. + * @param w + * the width of rectangle. + * @param h + * the height of rectangle. + * @return true, if the rectangle specified by [x, y, width, height] + * parameters intersects the interior of the Shape, false otherwise. */ public boolean intersects(double x, double y, double w, double h); /** - * Checks whether or not the interior of rectangl specified by - * Rectangle2D object intersects the interior of the Shape. - * - * @param r the Rectangle2D object. + * Checks whether or not the interior of rectangle specified by Rectangle2D + * object intersects the interior of the Shape. * - * @return true, if the Rectangle2D intersects the interior of - * the Shape, otherwise false. + * @param r + * the Rectangle2D object. + * @return true, if the Rectangle2D intersects the interior of the Shape, + * otherwise false. */ public boolean intersects(Rectangle2D r); } diff --git a/awt/java/awt/Stroke.java b/awt/java/awt/Stroke.java index e6d683d..6d17a23 100644 --- a/awt/java/awt/Stroke.java +++ b/awt/java/awt/Stroke.java @@ -18,29 +18,32 @@ * @author Alexey A. Petrenko * @version $Revision$ */ + package java.awt; /** - * The Stroke interface gives a pen style to be used by the - * Graphics2D interface. It provides a means for getting a stroked version - * of a shape, which is the version that is suitable for drawing via - * the Graphics2D interface. Stroking a shape gives the shape's outline - * a width or drawing style. + * The Stroke interface gives a pen style to be used by the Graphics2D + * interface. It provides a means for getting a stroked version of a shape, + * which is the version that is suitable for drawing via the Graphics2D + * interface. Stroking a shape gives the shape's outline a width or drawing + * style. * <p> - * The Draw methods from Graphics2D interface should use the Stroke object for - * rendering the shape's outline. The stroke should be set by - * setStroke(java.awt.Stroke) method of the Graphics2D interface. + * The Draw methods from Graphics2D interface should use the Stroke object for + * rendering the shape's outline. The stroke should be set by + * setStroke(java.awt.Stroke) method of the Graphics2D interface. + * * @see java.awt.Graphics2D#setStroke(java.awt.Stroke) + * @since Android 1.0 */ public interface Stroke { - + /** - * Creates the stroked shape, which is the version that is suitable for drawing via - * the Graphics2D interface. Stroking a shape gives the shape's outline - * a width or drawing style. - * - * @param p the original shape. + * Creates the stroked shape, which is the version that is suitable for + * drawing via the Graphics2D interface. Stroking a shape gives the shape's + * outline a width or drawing style. * + * @param p + * the original shape. * @return the stroked shape. */ public Shape createStrokedShape(Shape p); diff --git a/awt/java/awt/Toolkit.java b/awt/java/awt/Toolkit.java index 0c066b2..e38d524 100644 --- a/awt/java/awt/Toolkit.java +++ b/awt/java/awt/Toolkit.java @@ -56,34 +56,50 @@ import org.apache.harmony.awt.wtk.NativeEventThread; import org.apache.harmony.awt.wtk.ShutdownWatchdog; import org.apache.harmony.awt.wtk.Synchronizer; import org.apache.harmony.awt.wtk.WTK; +import org.apache.harmony.luni.util.NotImplementedException; /** - * The Toolkit class is the representation of the platform-specific - * Abstract Window Toolkit implementation. Toolkit's subclasses - * are used to bind the various components to particular native - * toolkit implementations. + * The Toolkit class is the representation of the platform-specific Abstract + * Window Toolkit implementation. Toolkit's subclasses are used to bind the + * various components to particular native toolkit implementations. + * + * @since Android 1.0 */ public abstract class Toolkit { - - /** The Constant RECOURCE_PATH. */ + + /** + * The Constant RECOURCE_PATH. + */ private static final String RECOURCE_PATH = "org.apache.harmony.awt.resources.AWTProperties"; //$NON-NLS-1$ - - /** The Constant properties. */ + + /** + * The Constant properties. + */ private static final ResourceBundle properties = loadResources(RECOURCE_PATH); - - /** The dispatcher. */ + + /** + * The dispatcher. + */ Dispatcher dispatcher; - /** The system event queue core. */ + /** + * The system event queue core. + */ private EventQueueCore systemEventQueueCore; - /** The dispatch thread. */ + /** + * The dispatch thread. + */ EventDispatchThread dispatchThread; - /** The native thread. */ + /** + * The native thread. + */ NativeEventThread nativeThread; - /** The awt events manager. */ + /** + * The AWT events manager. + */ protected AWTEventsManager awtEventsManager; /** @@ -92,47 +108,68 @@ public abstract class Toolkit { private class AWTTreeLock { } - /** The awt tree lock. */ + /** + * The AWT tree lock. + */ final Object awtTreeLock = new AWTTreeLock(); - /** The synchronizer. */ + /** + * The synchronizer. + */ private final Synchronizer synchronizer = ContextStorage.getSynchronizer(); - /** The shutdown watchdog. */ + /** + * The shutdown watchdog. + */ final ShutdownWatchdog shutdownWatchdog = new ShutdownWatchdog(); - /** The auto number. */ + /** + * The auto number. + */ final AutoNumber autoNumber = new AutoNumber(); - /** The event type lookup. */ + /** + * The event type lookup. + */ final AWTEvent.EventTypeLookup eventTypeLookup = new AWTEvent.EventTypeLookup(); - /** The b dynamic layout set. */ + /** + * The b dynamic layout set. + */ private boolean bDynamicLayoutSet = true; - /** The set of desktop properties that user set directly. */ + /** + * The set of desktop properties that user set directly. + */ private final HashSet<String> userPropSet = new HashSet<String>(); - /** The desktop properties. */ + /** + * The desktop properties. + */ protected Map<String, Object> desktopProperties; - /** The desktop props support. */ + /** + * The desktop props support. + */ protected PropertyChangeSupport desktopPropsSupport; /** - * For this component the native window is being created - * It is used in the callback-driven window creation - * (e.g. on Windows in the handler of WM_CREATE event) - * to establish the connection between this component - * and its native window. + * For this component the native window is being created It is used in the + * callback-driven window creation (e.g. on Windows in the handler of + * WM_CREATE event) to establish the connection between this component and + * its native window. */ private Object recentNativeWindowComponent; - /** The wtk. */ + /** + * The wtk. + */ private WTK wtk; /** * The Class ComponentInternalsImpl. + * + * @since Android 1.0 */ protected final class ComponentInternalsImpl extends ComponentInternals { @@ -143,13 +180,15 @@ public abstract class Toolkit { public void shutdown() { dispatchThread.shutdown(); } - + /** - * Sets the desktop property to the specified value and fires a property - * change event. + * Sets the desktop property to the specified value and fires a property + * change event. * - * @param name the name of property. - * @param value the new value of property. + * @param name + * the name of property. + * @param value + * the new value of property. */ @Override public void setDesktopProperty(String name, Object value) { @@ -157,12 +196,12 @@ public abstract class Toolkit { } } - /** - * A lot of methods must throw HeadlessException - * if <code>GraphicsEnvironment.isHeadless()</code> returns <code>true</code>. + * A lot of methods must throw HeadlessException if + * <code>GraphicsEnvironment.isHeadless()</code> returns <code>true</code>. * - * @throws HeadlessException the headless exception + * @throws HeadlessException + * the headless exception. */ static void checkHeadless() throws HeadlessException { if (GraphicsEnvironment.getLocalGraphicsEnvironment().isHeadlessInstance()) @@ -170,51 +209,49 @@ public abstract class Toolkit { } /** - * Lock awt. + * Lock AWT. */ final void lockAWT() { synchronizer.lock(); } /** - * Static lock awt. + * Static lock AWT. */ static final void staticLockAWT() { ContextStorage.getSynchronizer().lock(); } /** - * Unlock awt. + * Unlock AWT. */ final void unlockAWT() { synchronizer.unlock(); } /** - * Static unlock awt. + * Static unlock AWT. */ static final void staticUnlockAWT() { ContextStorage.getSynchronizer().unlock(); - } - - /** - * InvokeAndWait under AWT lock. W/o this method system can hang up. - * Added to support modality (Dialog.show() & PopupMenu.show()) from - * not event dispatch thread. Use in other cases is not recommended. - * - * Still can be called only for whole API methods that - * cannot be called from other classes API methods. - * Examples: - * show() for modal dialogs - correct, only user can call it, - * directly or through setVisible(true) - * setBounds() for components - incorrect, setBounds() - * can be called from layoutContainer() - * for layout managers - * - * @param runnable the runnable + } + + /** + * InvokeAndWait under AWT lock. W/o this method system can hang up. Added + * to support modality (Dialog.show() & PopupMenu.show()) from not event + * dispatch thread. Use in other cases is not recommended. Still can be + * called only for whole API methods that cannot be called from other + * classes API methods. Examples: show() for modal dialogs - correct, only + * user can call it, directly or through setVisible(true) setBounds() for + * components - incorrect, setBounds() can be called from layoutContainer() + * for layout managers * - * @throws InterruptedException the interrupted exception - * @throws InvocationTargetException the invocation target exception + * @param runnable + * the runnable. + * @throws InterruptedException + * the interrupted exception. + * @throws InvocationTargetException + * the invocation target exception. */ final void unsafeInvokeAndWait(Runnable runnable) throws InterruptedException, InvocationTargetException { @@ -229,7 +266,7 @@ public abstract class Toolkit { /** * Gets the synchronizer. * - * @return the synchronizer + * @return the synchronizer. */ final Synchronizer getSynchronizer() { return synchronizer; @@ -238,19 +275,20 @@ public abstract class Toolkit { /** * Gets the wTK. * - * @return the wTK + * @return the wTK. */ final WTK getWTK() { return wtk; } /** - * Gets the property with the specified key and default value. - * This method returns the defValue if the property is not found. - * - * @param propName the name of property. - * @param defVal the default value. + * Gets the property with the specified key and default value. This method + * returns the defValue if the property is not found. * + * @param propName + * the name of property. + * @param defVal + * the default value. * @return the property value. */ public static String getProperty(String propName, String defVal) { @@ -273,11 +311,11 @@ public abstract class Toolkit { staticUnlockAWT(); } } - + /** * Gets the default Toolkit. * - * @return the default Toolkit + * @return the default Toolkit. */ public static Toolkit getDefaultToolkit() { synchronized (ContextStorage.getContextLock()) { @@ -290,34 +328,34 @@ public abstract class Toolkit { } staticLockAWT(); try { - defToolkit = GraphicsEnvironment.isHeadless() ? - new HeadlessToolkit() : new ToolkitImpl(); + defToolkit = GraphicsEnvironment.isHeadless() ? new HeadlessToolkit() + : new ToolkitImpl(); ContextStorage.setDefaultToolkit(defToolkit); return defToolkit; } finally { staticUnlockAWT(); } - //TODO: read system property named awt.toolkit - //and create an instance of the specified class, - //by default use ToolkitImpl + // TODO: read system property named awt.toolkit + // and create an instance of the specified class, + // by default use ToolkitImpl } } - + /** * Gets the default Font. * - * @return the derault Font for Toolkit. + * @return the default Font for Toolkit. */ Font getDefaultFont() { return wtk.getSystemProperties().getDefaultFont(); } - + /** * Load resources. * - * @param path the path - * - * @return the resource bundle + * @param path + * the path. + * @return the resource bundle. */ private static ResourceBundle loadResources(String path) { try { @@ -330,7 +368,7 @@ public abstract class Toolkit { /** * Gets the wTK class name. * - * @return the wTK class name + * @return the wTK class name. */ private static String getWTKClassName() { return "com.android.internal.awt.AndroidWTK"; @@ -339,9 +377,9 @@ public abstract class Toolkit { /** * Gets the component by id. * - * @param id the id - * - * @return the component by id + * @param id + * the id. + * @return the component by id. */ Component getComponentById(long id) { if (id == 0) { @@ -362,12 +400,12 @@ public abstract class Toolkit { /** * Instantiates a new toolkit. */ - public Toolkit() { + public Toolkit() { init(); } /** - * Inits AWT. + * Initiates AWT. */ protected void init() { lockAWT(); @@ -397,43 +435,52 @@ public abstract class Toolkit { unlockAWT(); } } - + /** * Synchronizes this toolkit's graphics. */ public abstract void sync(); /** - * Returns the construction status of a specified image that is being created. - * - * @param a0 the image to be checked. - * @param a1 the width of scaled image for which the status is being checked, or -1. - * @param a2 the height of scaled image for which the status is being checked, or -1. - * @param a3 the ImageObserver object to be notified while - * the image is being prepared. + * Returns the construction status of a specified image that is being + * created. * - * @return the ImageObserver flags which give the current state of the image data. + * @param a0 + * the image to be checked. + * @param a1 + * the width of scaled image for which the status is being + * checked or -1. + * @param a2 + * the height of scaled image for which the status is being + * checked or -1. + * @param a3 + * the ImageObserver object to be notified while the image is + * being prepared. + * @return the ImageObserver flags which give the current state of the image + * data. */ public abstract int checkImage(Image a0, int a1, int a2, ImageObserver a3); - + /** * Creates the image with the specified ImageProducer. * - * @param a0 the ImageProducer to be used for image creation. - * + * @param a0 + * the ImageProducer to be used for image creation. * @return the image with the specified ImageProducer. */ public abstract Image createImage(ImageProducer a0); /** - * Creates the image from the specified byte array, offset and length. - * The byte array should contain data with image format supported by - * Toolkit such as JPEG, GIF, or PNG. - * - * @param a0 the byte array with the image data. - * @param a1 the offset of the beggining the image data in the byte array. - * @param a2 the length of the image data in the byte array. + * Creates the image from the specified byte array, offset and length. The + * byte array should contain data with image format supported by Toolkit + * such as JPEG, GIF, or PNG. * + * @param a0 + * the byte array with the image data. + * @param a1 + * the offset of the beginning the image data in the byte array. + * @param a2 + * the length of the image data in the byte array. * @return the created Image. */ public abstract Image createImage(byte[] a0, int a1, int a2); @@ -441,8 +488,8 @@ public abstract class Toolkit { /** * Creates the image using image data from the specified URL. * - * @param a0 the URL for extracting image data. - * + * @param a0 + * the URL for extracting image data. * @return the Image. */ public abstract Image createImage(URL a0); @@ -450,8 +497,8 @@ public abstract class Toolkit { /** * Creates the image using image data from the specified file. * - * @param a0 the file name which contains image data of supported format. - * + * @param a0 + * the file name which contains image data of supported format. * @return the Image. */ public abstract Image createImage(String a0); @@ -460,22 +507,20 @@ public abstract class Toolkit { * Gets the color model. * * @return the ColorModel of Toolkit's screen. - * - * @throws HeadlessException if the - * GraphicsEnvironment.isHeadless() method returns true. + * @throws HeadlessException + * if the GraphicsEnvironment.isHeadless() method returns true. */ public abstract ColorModel getColorModel() throws HeadlessException; - + /** * Gets the screen device metrics for the specified font. * - * @param font the Font. - * + * @param font + * the Font. * @return the FontMetrics for the specified Font. - * * @deprecated Use getLineMetrics method from Font class. */ - + @Deprecated public abstract FontMetrics getFontMetrics(Font font); @@ -483,13 +528,18 @@ public abstract class Toolkit { * Prepares the specified image for rendering on the screen with the * specified size. * - * @param a0 the Image to be prepared. - * @param a1 the width of the screen representation or -1 for the current screen. - * @param a2 the height of the screen representation or -1 for the current screen. - * @param a3 the ImageObserver object to be notified as soon as - * the image is prepared. - * - * @return true, if image is fully prepared; false otherwise. + * @param a0 + * the Image to be prepared. + * @param a1 + * the width of the screen representation or -1 for the current + * screen. + * @param a2 + * the height of the screen representation or -1 for the current + * screen. + * @param a3 + * the ImageObserver object to be notified as soon as the image + * is prepared. + * @return true, if image is fully prepared, false otherwise. */ public abstract boolean prepareImage(Image a0, int a1, int a2, ImageObserver a3); @@ -502,21 +552,19 @@ public abstract class Toolkit { * Returns the array of font names which are available in this Toolkit. * * @return the array of font names which are available in this Toolkit. - * * @deprecated use GraphicsEnvironment.getAvailableFontFamilyNames() method. */ @Deprecated public abstract String[] getFontList(); - + /** - * Gets the the Font implementation using the specified peer - * interface. - * - * @param a0 the Font name to be implemented. - * @param a1 the the font style: PLAIN, BOLD, ITALIC. + * Gets the the Font implementation using the specified peer interface. * + * @param a0 + * the Font name to be implemented. + * @param a1 + * the the font style: PLAIN, BOLD, ITALIC. * @return the FontPeer implementation of the specified Font. - * * @deprecated use java.awt.GraphicsEnvironment.getAllFonts method. */ @@ -524,27 +572,27 @@ public abstract class Toolkit { protected abstract FontPeer getFontPeer(String a0, int a1); /** - * Gets the image from the specified file which contains image data in - * a supported image format (such as JPEG, GIF, or PNG); this method - * should return the same Image for multiple calls of this method with - * the same image file name. - * - * @param a0 the file name which contains image data in - * a supported image format (such as JPEG, GIF, or PNG). + * Gets the image from the specified file which contains image data in a + * supported image format (such as JPEG, GIF, or PNG); this method should + * return the same Image for multiple calls of this method with the same + * image file name. * + * @param a0 + * the file name which contains image data in a supported image + * format (such as JPEG, GIF, or PNG). * @return the Image. */ public abstract Image getImage(String a0); /** - * Gets the image from the specified URL which contains image data in - * a supported image format (such as JPEG, GIF, or PNG); this method - * should return the same Image for multiple calls of this method with - * the same image URL. - * - * @param a0 the URL which contains image data in - * a supported image format (such as JPEG, GIF, or PNG). + * Gets the image from the specified URL which contains image data in a + * supported image format (such as JPEG, GIF, or PNG); this method should + * return the same Image for multiple calls of this method with the same + * image URL. * + * @param a0 + * the URL which contains image data in a supported image format + * (such as JPEG, GIF, or PNG). * @return the Image. */ public abstract Image getImage(URL a0); @@ -553,20 +601,17 @@ public abstract class Toolkit { * Gets the screen resolution. * * @return the screen resolution. - * - * @throws HeadlessException if the GraphicsEnvironment.isHeadless() - * method returns true. + * @throws HeadlessException + * if the GraphicsEnvironment.isHeadless() method returns true. */ public abstract int getScreenResolution() throws HeadlessException; /** * Gets the screen size. * - * @return a Dimension object containing the width and height of - * the screen. - * - * @throws HeadlessException if the GraphicsEnvironment.isHeadless() - * method returns true. + * @return a Dimension object containing the width and height of the screen. + * @throws HeadlessException + * if the GraphicsEnvironment.isHeadless() method returns true. */ public abstract Dimension getScreenSize() throws HeadlessException; @@ -578,15 +623,14 @@ public abstract class Toolkit { protected abstract EventQueue getSystemEventQueueImpl(); /** - * Returns a map of text attributes for the abstract level description - * of the specified input method highlight, or null if no mapping is found. - * - * @param highlight the InputMethodHighlight. + * Returns a map of text attributes for the abstract level description of + * the specified input method highlight, or null if no mapping is found. * - * @return the Map<java.awt.font. text attribute,?> - * - * @throws HeadlessException if the GraphicsEnvironment.isHeadless() - * method returns true. + * @param highlight + * the InputMethodHighlight. + * @return the Map<java.awt.font. text attribute,?>. + * @throws HeadlessException + * if the GraphicsEnvironment.isHeadless() method returns true. */ public abstract Map<java.awt.font.TextAttribute, ?> mapInputMethodHighlight( InputMethodHighlight highlight) throws HeadlessException; @@ -594,14 +638,14 @@ public abstract class Toolkit { /** * Map input method highlight impl. * - * @param highlight the highlight - * - * @return the map<java.awt.font. text attribute,?> - * - * @throws HeadlessException the headless exception + * @param highlight + * the highlight. + * @return the map<java.awt.font. text attribute,?>. + * @throws HeadlessException + * the headless exception. */ - Map<java.awt.font.TextAttribute, ?> mapInputMethodHighlightImpl( - InputMethodHighlight highlight) throws HeadlessException { + Map<java.awt.font.TextAttribute, ?> mapInputMethodHighlightImpl(InputMethodHighlight highlight) + throws HeadlessException { HashMap<java.awt.font.TextAttribute, ?> map = new HashMap<java.awt.font.TextAttribute, Object>(); wtk.getSystemProperties().mapInputMethodHighlight(highlight, map); return Collections.<java.awt.font.TextAttribute, Object> unmodifiableMap(map); @@ -611,9 +655,11 @@ public abstract class Toolkit { * Adds the specified PropertyChangeListener listener for the specified * property. * - * @param propName the property name for which the specified PropertyChangeListener - * will be added. - * @param l the PropertyChangeListener object. + * @param propName + * the property name for which the specified + * PropertyChangeListener will be added. + * @param l + * the PropertyChangeListener object. */ public void addPropertyChangeListener(String propName, PropertyChangeListener l) { lockAWT(); @@ -624,31 +670,32 @@ public abstract class Toolkit { } finally { unlockAWT(); } - if (l != null) { // there is no guarantee that null listener will not be added + if (l != null) { // there is no guarantee that null listener will not be + // added desktopPropsSupport.addPropertyChangeListener(propName, l); } } /** - * Returns an array of the property change listeners registered with - * this Toolkit. + * Returns an array of the property change listeners registered with this + * Toolkit. * - * @return an array of the property change listeners registered with - * this Toolkit. + * @return an array of the property change listeners registered with this + * Toolkit. */ public PropertyChangeListener[] getPropertyChangeListeners() { return desktopPropsSupport.getPropertyChangeListeners(); } /** - * Returns an array of the property change listeners registered with - * this Toolkit for notification regarding the specified property. - * - * @param propName the property name for which the PropertyChangeListener - * was registered. + * Returns an array of the property change listeners registered with this + * Toolkit for notification regarding the specified property. * - * @return the array of PropertyChangeListeners registered for the specified - * property name. + * @param propName + * the property name for which the PropertyChangeListener was + * registered. + * @return the array of PropertyChangeListeners registered for the specified + * property name. */ public PropertyChangeListener[] getPropertyChangeListeners(String propName) { return desktopPropsSupport.getPropertyChangeListeners(propName); @@ -658,28 +705,33 @@ public abstract class Toolkit { * Removes the specified property change listener registered for the * specified property name. * - * @param propName the property name. - * @param l the PropertyChangeListener registered for the specified property name. + * @param propName + * the property name. + * @param l + * the PropertyChangeListener registered for the specified + * property name. */ public void removePropertyChangeListener(String propName, PropertyChangeListener l) { desktopPropsSupport.removePropertyChangeListener(propName, l); } - + /** * Creates a custom cursor with the specified Image, hot spot, and cursor * description. * - * @param img the image of activated cursor. - * @param hotSpot the Point giving the coordinates of the cursor's hot spot. - * @param name the cursor description. - * + * @param img + * the image of activated cursor. + * @param hotSpot + * the Point giving the coordinates of the cursor's hot spot. + * @param name + * the cursor description. * @return the cursor with the specified Image, hot spot, and cursor - * description. - * - * @throws IndexOutOfBoundsException if the hot spot values are outside - * the bounds of the cursor. - * @throws HeadlessException if isHeadless() method of GraphicsEnvironment - * class returns true. + * description. + * @throws IndexOutOfBoundsException + * if the hot spot values are outside the bounds of the cursor. + * @throws HeadlessException + * if isHeadless() method of GraphicsEnvironment class returns + * true. */ public Cursor createCustomCursor(Image img, Point hotSpot, String name) throws IndexOutOfBoundsException, HeadlessException { @@ -698,20 +750,19 @@ public abstract class Toolkit { } /** - * Returns the supported cursor dimension which is closest to the - * specified width and height. If the Toolkit only supports a single - * cursor size, this method should return the supported cursor size. - * If custom cursor is not supported, a dimension of 0, 0 should be - * returned. - * - * @param prefWidth the preffered cursor width. - * @param prefHeight the preffered cursor height. + * Returns the supported cursor dimension which is closest to the specified + * width and height. If the Toolkit only supports a single cursor size, this + * method should return the supported cursor size. If custom cursor is not + * supported, a dimension of 0, 0 should be returned. * - * @return the supported cursor dimension which is closest to the - * specified width and height. - * - * @throws HeadlessException if GraphicsEnvironment.isHeadless() - * returns true. + * @param prefWidth + * the preferred cursor width. + * @param prefHeight + * the preferred cursor height. + * @return the supported cursor dimension which is closest to the specified + * width and height. + * @throws HeadlessException + * if GraphicsEnvironment.isHeadless() returns true. */ public Dimension getBestCursorSize(int prefWidth, int prefHeight) throws HeadlessException { lockAWT(); @@ -723,10 +774,10 @@ public abstract class Toolkit { } /** - * Gets the value for the specified desktop property. - * - * @param propName the property name. + * Gets the value for the specified desktop property. * + * @param propName + * the property name. * @return the Object that is the property's value. */ public final Object getDesktopProperty(String propName) { @@ -754,17 +805,19 @@ public abstract class Toolkit { /** * Returns the locking key state for the specified key. * - * @param a0 the key code: VK_CAPS_LOCK, VK_NUM_LOCK, VK_SCROLL_LOCK, - * or VK_KANA_LOCK. - * - * @return true if the specified key code is in the locked state, - * false otherwise. - * - * @throws UnsupportedOperationException if the state of this key - * can't be retrieved, or if the keyboard doesn't have this key. - * @throws NotImplementedException if this method is not implemented. - */ - public boolean getLockingKeyState(int a0) throws UnsupportedOperationException, org.apache.harmony.luni.util.NotImplementedException { + * @param a0 + * the key code: VK_CAPS_LOCK, VK_NUM_LOCK, VK_SCROLL_LOCK, or + * VK_KANA_LOCK. + * @return true if the specified key code is in the locked state, false + * otherwise. + * @throws UnsupportedOperationException + * if the state of this key can't be retrieved, or if the + * keyboard doesn't have this key. + * @throws NotImplementedException + * if this method is not implemented. + */ + public boolean getLockingKeyState(int a0) throws UnsupportedOperationException, + org.apache.harmony.luni.util.NotImplementedException { lockAWT(); try { } finally { @@ -781,9 +834,8 @@ public abstract class Toolkit { * custom cursor. * * @return the maximum cursor colors. - * - * @throws HeadlessException if the GraphicsEnvironment.isHeadless() - * method returns true. + * @throws HeadlessException + * if the GraphicsEnvironment.isHeadless() method returns true. */ public int getMaximumCursorColors() throws HeadlessException { lockAWT(); @@ -796,11 +848,10 @@ public abstract class Toolkit { /** * Gets the menu shortcut key mask. - * - * @return the menu shortcut key mask. * - * @throws HeadlessException if the GraphicsEnvironment.isHeadless() - * method returns true. + * @return the menu shortcut key mask. + * @throws HeadlessException + * if the GraphicsEnvironment.isHeadless() method returns true. */ public int getMenuShortcutKeyMask() throws HeadlessException { lockAWT(); @@ -814,12 +865,11 @@ public abstract class Toolkit { /** * Gets the screen insets. * - * @param gc the GraphicsConfiguration. - * + * @param gc + * the GraphicsConfiguration. * @return the insets of this toolkit. - * - * @throws HeadlessException if the GraphicsEnvironment.isHeadless() - * method returns true. + * @throws HeadlessException + * if the GraphicsEnvironment.isHeadless() method returns true. */ public Insets getScreenInsets(GraphicsConfiguration gc) throws HeadlessException { if (gc == null) { @@ -827,17 +877,17 @@ public abstract class Toolkit { } lockAWT(); try { - return new Insets(0, 0, 0, 0); //TODO: get real screen insets + return new Insets(0, 0, 0, 0); // TODO: get real screen insets } finally { unlockAWT(); } } /** - * Gets the system EventQueue instance. - * If the default implementation of checkAwtEventQueueAccess is used, - * then this results of a call to the security manager's checkPermission - * method with an AWTPermission("accessEventQueue") permission. + * Gets the system EventQueue instance. If the default implementation of + * checkAwtEventQueueAccess is used, then this results of a call to the + * security manager's checkPermission method with an + * AWTPermission("accessEventQueue") permission. * * @return the system EventQueue instance. */ @@ -849,19 +899,20 @@ public abstract class Toolkit { return getSystemEventQueueImpl(); } - /** + /** * Gets the system event queue core. * - * @return the system event queue core + * @return the system event queue core. */ EventQueueCore getSystemEventQueueCore() { return systemEventQueueCore; } - + /** * Sets the system event queue core. * - * @param core the new system event queue core + * @param core + * the new system event queue core. */ void setSystemEventQueueCore(EventQueueCore core) { systemEventQueueCore = core; @@ -882,11 +933,10 @@ public abstract class Toolkit { /** * Checks if dynamic layout of Containers is active or not. * - * @return true, if is dynamic layout of Containers is active, - * false otherwise. - * - * @throws HeadlessException if the GraphicsEnvironment.isHeadless() - * method returns true. + * @return true, if is dynamic layout of Containers is active, false + * otherwise. + * @throws HeadlessException + * if the GraphicsEnvironment.isHeadless() method returns true. */ public boolean isDynamicLayoutActive() throws HeadlessException { lockAWT(); @@ -898,17 +948,15 @@ public abstract class Toolkit { } } - /** - * Returns if the layout of Containers is checked dynamically during resizing, - * or statically after resizing is completed. - * - * @return true, if if the layout of Containers is checked dynamically during - * resizing; false, if the layout of Containers is checked statically after - * resizing is completed. + * Returns if the layout of Containers is checked dynamically during + * resizing, or statically after resizing is completed. * - * @throws HeadlessException if the GraphicsEnvironment.isHeadless() - * method returns true. + * @return true, if if the layout of Containers is checked dynamically + * during resizing; false, if the layout of Containers is checked + * statically after resizing is completed. + * @throws HeadlessException + * if the GraphicsEnvironment.isHeadless() method returns true. */ protected boolean isDynamicLayoutSet() throws HeadlessException { lockAWT(); @@ -922,12 +970,11 @@ public abstract class Toolkit { /** * Checks if the specified frame state is supported by Toolkit or not. * - * @param state the frame state. - * - * @return true, if frame state is supported; false othrwise. - * - * @throws HeadlessException if the GraphicsEnvironment.isHeadless() - * method returns true. + * @param state + * the frame state. + * @return true, if frame state is supported, false otherwise. + * @throws HeadlessException + * if the GraphicsEnvironment.isHeadless() method returns true. */ public boolean isFrameStateSupported(int state) throws HeadlessException { lockAWT(); @@ -941,8 +988,8 @@ public abstract class Toolkit { /** * Loads the value of the desktop property with the specified property name. * - * @param propName the property name. - * + * @param propName + * the property name. * @return the desktop property values. */ protected Object lazilyLoadDesktopProperty(String propName) { @@ -952,11 +999,11 @@ public abstract class Toolkit { /** * Loads the current system color values to the specified array. * - * @param colors the array where the current system color values - * are written by this method. - * - * @throws HeadlessException if the GraphicsEnvironment.isHeadless() - * method returns true. + * @param colors + * the array where the current system color values are written by + * this method. + * @throws HeadlessException + * if the GraphicsEnvironment.isHeadless() method returns true. */ protected void loadSystemColors(int[] colors) throws HeadlessException { lockAWT(); @@ -969,8 +1016,10 @@ public abstract class Toolkit { /** * Sets the value of the desktop property with the specified name. * - * @param propName the property's name. - * @param value the property's value. + * @param propName + * the property's name. + * @param value + * the property's value. */ protected final void setDesktopProperty(String propName, Object value) { Object oldVal; @@ -986,15 +1035,15 @@ public abstract class Toolkit { } /** - * Sets the layout state, whether the Container layout is checked - * dynamically during resizing, or statically after resizing is completed. - * - * @param dynamic the new dynamic layout state - if true the layout of - * Containers is checked dynamically during resizing, if false - - * statically after resizing is completed. + * Sets the layout state, whether the Container layout is checked + * dynamically during resizing, or statically after resizing is completed. * - * @throws HeadlessException if the GraphicsEnvironment.isHeadless() - * method returns true. + * @param dynamic + * the new dynamic layout state - if true the layout of + * Containers is checked dynamically during resizing, if false - + * statically after resizing is completed. + * @throws HeadlessException + * if the GraphicsEnvironment.isHeadless() method returns true. */ public void setDynamicLayout(boolean dynamic) throws HeadlessException { lockAWT(); @@ -1008,16 +1057,20 @@ public abstract class Toolkit { /** * Sets the locking key state for the specified key code. * - * @param a0 the key code: VK_CAPS_LOCK, VK_NUM_LOCK, VK_SCROLL_LOCK, - * or VK_KANA_LOCK. - * @param a1 the state - true to set the specified key code to the locked state, - * false - to unlock it. - * - * @throws UnsupportedOperationException if the state of this key - * can't be set, or if the keyboard doesn't have this key. - * @throws NotImplementedException if this method is not implemented. - */ - public void setLockingKeyState(int a0, boolean a1) throws UnsupportedOperationException, org.apache.harmony.luni.util.NotImplementedException { + * @param a0 + * the key code: VK_CAPS_LOCK, VK_NUM_LOCK, VK_SCROLL_LOCK, or + * VK_KANA_LOCK. + * @param a1 + * the state - true to set the specified key code to the locked + * state, false - to unlock it. + * @throws UnsupportedOperationException + * if the state of this key can't be set, or if the keyboard + * doesn't have this key. + * @throws NotImplementedException + * if this method is not implemented. + */ + public void setLockingKeyState(int a0, boolean a1) throws UnsupportedOperationException, + org.apache.harmony.luni.util.NotImplementedException { lockAWT(); try { } finally { @@ -1029,7 +1082,6 @@ public abstract class Toolkit { return; } - /** * On queue empty. */ @@ -1040,14 +1092,14 @@ public abstract class Toolkit { /** * Creates the wtk. * - * @param clsName the cls name - * - * @return the wTK + * @param clsName + * the cls name. + * @return the wTK. */ private WTK createWTK(String clsName) { WTK newWTK = null; try { - newWTK = (WTK) Class.forName(clsName).newInstance(); + newWTK = (WTK)Class.forName(clsName).newInstance(); } catch (Exception e) { throw new RuntimeException(e); } @@ -1056,7 +1108,9 @@ public abstract class Toolkit { /** * Connect the component to its native window - * @param winId - id of native window just created + * + * @param winId + * the id of native window just created. */ boolean onWindowCreated(long winId) { return false; @@ -1065,45 +1119,50 @@ public abstract class Toolkit { /** * Gets the native event queue. * - * @return the native event queue + * @return the native event queue. */ NativeEventQueue getNativeEventQueue() { return wtk.getNativeEventQueue(); } /** - * Returns a shared instance of implementation of org.apache.harmony.awt.wtk.NativeCursor - * for current platform for + * Returns a shared instance of implementation of + * org.apache.harmony.awt.wtk.NativeCursor for current platform for. * - * @param type - Java Cursor type - * - * @return new instance of implementation of NativeCursor + * @param type + * the Java Cursor type. + * @return new instance of implementation of NativeCursor. */ NativeCursor createNativeCursor(int type) { return wtk.getCursorFactory().getCursor(type); } /** - * Returns a shared instance of implementation of org.apache.harmony.awt.wtk.NativeCursor - * for current platform for custom cursor - * - * @param img the img - * @param hotSpot the hot spot - * @param name the name + * Returns a shared instance of implementation of + * org.apache.harmony.awt.wtk.NativeCursor for current platform for custom + * cursor * - * @return new instance of implementation of NativeCursor + * @param img + * the img. + * @param hotSpot + * the hot spot. + * @param name + * the name. + * @return new instance of implementation of NativeCursor. */ NativeCursor createCustomNativeCursor(Image img, Point hotSpot, String name) { return wtk.getCursorFactory().createCustomCursor(img, hotSpot.x, hotSpot.y); } /** - * Adds an AWTEventListener to the Toolkit to listen for events - * of types corresponding to bits in the specified event mask. - * Event masks are defined in AWTEvent class. + * Adds an AWTEventListener to the Toolkit to listen for events of types + * corresponding to bits in the specified event mask. Event masks are + * defined in AWTEvent class. * - * @param listener the AWTEventListener. - * @param eventMask he bitmask of event types. + * @param listener + * the AWTEventListener. + * @param eventMask + * the bitmask of event types. */ public void addAWTEventListener(AWTEventListener listener, long eventMask) { lockAWT(); @@ -1119,9 +1178,10 @@ public abstract class Toolkit { } /** - * Removes the specified awt event listener. + * Removes the specified AWT event listener. * - * @param listener the AWTEventListener to be removed. + * @param listener + * the AWTEventListener to be removed. */ public void removeAWTEventListener(AWTEventListener listener) { lockAWT(); @@ -1139,7 +1199,8 @@ public abstract class Toolkit { /** * Gets the array of all AWT event listeners registered with this Toolkit. * - * @return the array of all AWT event listeners registered with this Toolkit. + * @return the array of all AWT event listeners registered with this + * Toolkit. */ public AWTEventListener[] getAWTEventListeners() { lockAWT(); @@ -1155,13 +1216,13 @@ public abstract class Toolkit { } /** - * Returns the array of the AWT event listeners registered with this Toolkit + * Returns the array of the AWT event listeners registered with this Toolkit * for the event types corresponding to the specified event mask. * - * @param eventMask the bit mask of event type. - * - * @return the array of the AWT event listeners registered in this Toolkit - * for the event types corresponding to the specified event mask. + * @param eventMask + * the bit mask of event type. + * @return the array of the AWT event listeners registered in this Toolkit + * for the event types corresponding to the specified event mask. */ public AWTEventListener[] getAWTEventListeners(long eventMask) { lockAWT(); @@ -1177,30 +1238,37 @@ public abstract class Toolkit { } /** - * Dispatch awt event. + * Dispatch AWT event. * - * @param event the event + * @param event + * the event. */ void dispatchAWTEvent(AWTEvent event) { awtEventsManager.dispatchAWTEvent(event); } - + /** * The Class AWTEventsManager. */ final class AWTEventsManager { - /** The permission. */ + /** + * The permission. + */ AWTPermission permission = new AWTPermission("listenToAllAWTEvents"); //$NON-NLS-1$ - /** The listeners. */ + /** + * The listeners. + */ private final AWTListenerList<AWTEventListenerProxy> listeners = new AWTListenerList<AWTEventListenerProxy>(); /** - * Adds the awt event listener. + * Adds the AWT event listener. * - * @param listener the listener - * @param eventMask the event mask + * @param listener + * the listener. + * @param eventMask + * the event mask. */ void addAWTEventListener(AWTEventListener listener, long eventMask) { if (listener != null) { @@ -1209,9 +1277,10 @@ public abstract class Toolkit { } /** - * Removes the awt event listener. + * Removes the AWT event listener. * - * @param listener the listener + * @param listener + * the listener. */ void removeAWTEventListener(AWTEventListener listener) { if (listener != null) { @@ -1225,9 +1294,9 @@ public abstract class Toolkit { } /** - * Gets the aWT event listeners. + * Gets the AWT event listeners. * - * @return the aWT event listeners + * @return the AWT event listeners. */ AWTEventListener[] getAWTEventListeners() { HashSet<EventListener> listenersSet = new HashSet<EventListener>(); @@ -1238,11 +1307,11 @@ public abstract class Toolkit { } /** - * Gets the aWT event listeners. + * Gets the AWT event listeners. * - * @param eventMask the event mask - * - * @return the aWT event listeners + * @param eventMask + * the event mask. + * @return the AWT event listeners. */ AWTEventListener[] getAWTEventListeners(long eventMask) { HashSet<EventListener> listenersSet = new HashSet<EventListener>(); @@ -1255,9 +1324,10 @@ public abstract class Toolkit { } /** - * Dispatch awt event. + * Dispatch AWT event. * - * @param event the event + * @param event + * the event. */ void dispatchAWTEvent(AWTEvent event) { AWTEvent.EventDescriptor descriptor = eventTypeLookup.getEventDescriptor(event); @@ -1271,68 +1341,104 @@ public abstract class Toolkit { } } } - + /** * The Class AutoNumber. */ static final class AutoNumber { - /** The next component. */ + /** + * The next component. + */ int nextComponent = 0; - /** The next canvas. */ + /** + * The next canvas. + */ int nextCanvas = 0; - /** The next panel. */ + /** + * The next panel. + */ int nextPanel = 0; - /** The next window. */ + /** + * The next window. + */ int nextWindow = 0; - /** The next frame. */ + /** + * The next frame. + */ int nextFrame = 0; - /** The next dialog. */ + /** + * The next dialog. + */ int nextDialog = 0; - /** The next button. */ + /** + * The next button. + */ int nextButton = 0; - /** The next menu component. */ + /** + * The next menu component. + */ int nextMenuComponent = 0; - /** The next label. */ + /** + * The next label. + */ int nextLabel = 0; - /** The next check box. */ + /** + * The next check box. + */ int nextCheckBox = 0; - /** The next scrollbar. */ + /** + * The next scrollbar. + */ int nextScrollbar = 0; - /** The next scroll pane. */ + /** + * The next scroll pane. + */ int nextScrollPane = 0; - /** The next list. */ + /** + * The next list. + */ int nextList = 0; - /** The next choice. */ + /** + * The next choice. + */ int nextChoice = 0; - /** The next file dialog. */ + /** + * The next file dialog. + */ int nextFileDialog = 0; - /** The next text area. */ + /** + * The next text area. + */ int nextTextArea = 0; - /** The next text field. */ + /** + * The next text field. + */ int nextTextField = 0; } - + private class Lock { } - /** The lock. */ + /** + * The lock. + */ private final Object lock = new Lock(); - + } diff --git a/awt/java/awt/Transparency.java b/awt/java/awt/Transparency.java index 9793114..44a1e7f 100644 --- a/awt/java/awt/Transparency.java +++ b/awt/java/awt/Transparency.java @@ -18,34 +18,40 @@ * @author Pavel Dolgov * @version $Revision$ */ + package java.awt; /** * The Transparency interface defines transparency's general modes. + * + * @since Android 1.0 */ public interface Transparency { - /** The Constant OPAQUE represents completely opaque data, - * all pixels have an alpha value of 1.0. + /** + * The Constant OPAQUE represents completely opaque data, all pixels have an + * alpha value of 1.0. */ public static final int OPAQUE = 1; - /** The Constant BITMASK represents data which can be either - * completely opaque, with an alpha value of 1.0, or completely - * transparent, with an alpha value of 0.0. + /** + * The Constant BITMASK represents data which can be either completely + * opaque, with an alpha value of 1.0, or completely transparent, with an + * alpha value of 0.0. */ public static final int BITMASK = 2; - /** The Constant TRANSLUCENT represents data which alpha value - * can vary between and including 0.0 and 1.0. */ + /** + * The Constant TRANSLUCENT represents data which alpha value can vary + * between and including 0.0 and 1.0. + */ public static final int TRANSLUCENT = 3; /** * Gets the transparency mode. * - * @return the transparency mode: OPAQUE, BITMASK or TRANSLUCENT. + * @return the transparency mode: OPAQUE, BITMASK or TRANSLUCENT. */ public int getTransparency(); } - diff --git a/awt/java/awt/color/CMMException.java b/awt/java/awt/color/CMMException.java index 16fe76e..18b9a7e 100644 --- a/awt/java/awt/color/CMMException.java +++ b/awt/java/awt/color/CMMException.java @@ -21,18 +21,22 @@ package java.awt.color; /** - * The CMMException is thrown as soon as a native CMM error - * occures. + * The CMMException is thrown as soon as a native CMM error occurs. + * + * @since Android 1.0 */ public class CMMException extends java.lang.RuntimeException { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = 5775558044142994965L; /** * Instantiates a new CMM exception with detail message. * - * @param s the String - detail message. + * @param s + * the detail message of the exception. */ public CMMException (String s) { super (s); diff --git a/awt/java/awt/color/ColorSpace.java b/awt/java/awt/color/ColorSpace.java index f961514..44c491b 100644 --- a/awt/java/awt/color/ColorSpace.java +++ b/awt/java/awt/color/ColorSpace.java @@ -26,131 +26,209 @@ import org.apache.harmony.awt.gl.color.LUTColorConverter; import org.apache.harmony.awt.internal.nls.Messages; /** - * The ColorSpace class defines a color space type for a Color and provides methods - * for arrays of color component operations. + * The ColorSpace class defines a color space type for a Color and provides + * methods for arrays of color component operations. + * + * @since Android 1.0 */ public abstract class ColorSpace implements Serializable { /** The Constant serialVersionUID. */ private static final long serialVersionUID = -409452704308689724L; - /** The Constant TYPE_XYZ indicates XYZ color space type. */ + /** + * The Constant TYPE_XYZ indicates XYZ color space type. + */ public static final int TYPE_XYZ = 0; - /** The Constant TYPE_Lab indicates Lab color space type. */ + /** + * The Constant TYPE_Lab indicates Lab color space type. + */ public static final int TYPE_Lab = 1; - /** The Constant TYPE_Luv indicates Luv color space type. */ + /** + * The Constant TYPE_Luv indicates Luv color space type. + */ public static final int TYPE_Luv = 2; - /** The Constant TYPE_YCbCr indicates YCbCr color space type. */ + /** + * The Constant TYPE_YCbCr indicates YCbCr color space type. + */ public static final int TYPE_YCbCr = 3; - /** The Constant TYPE_Yxy indicates Yxy color space type. */ + /** + * The Constant TYPE_Yxy indicates Yxy color space type. + */ public static final int TYPE_Yxy = 4; - /** The Constant TYPE_RGB indicates RGB color space type. */ + /** + * The Constant TYPE_RGB indicates RGB color space type. + */ public static final int TYPE_RGB = 5; - /** The Constant TYPE_GRAY indicates Gray color space type. */ + /** + * The Constant TYPE_GRAY indicates Gray color space type. + */ public static final int TYPE_GRAY = 6; - /** The Constant TYPE_HSV indicates HSV color space type. */ + /** + * The Constant TYPE_HSV indicates HSV color space type. + */ public static final int TYPE_HSV = 7; - /** The Constant TYPE_HLS indicates HLS color space type. */ + /** + * The Constant TYPE_HLS indicates HLS color space type. + */ public static final int TYPE_HLS = 8; - /** The Constant TYPE_CMYK indicates CMYK color space type. */ + /** + * The Constant TYPE_CMYK indicates CMYK color space type. + */ public static final int TYPE_CMYK = 9; - /** The Constant TYPE_CMY indicates CMY color space type. */ + /** + * The Constant TYPE_CMY indicates CMY color space type. + */ public static final int TYPE_CMY = 11; - /** The Constant TYPE_2CLR indicates color spaces with 2 components. */ + /** + * The Constant TYPE_2CLR indicates color spaces with 2 components. + */ public static final int TYPE_2CLR = 12; - /** The Constant TYPE_3CLR indicates color spaces with 3 components. */ + /** + * The Constant TYPE_3CLR indicates color spaces with 3 components. + */ public static final int TYPE_3CLR = 13; - /** The Constant TYPE_4CLR indicates color spaces with 4 components. */ + /** + * The Constant TYPE_4CLR indicates color spaces with 4 components. + */ public static final int TYPE_4CLR = 14; - /** The Constant TYPE_5CLR indicates color spaces with 5 components. */ + /** + * The Constant TYPE_5CLR indicates color spaces with 5 components. + */ public static final int TYPE_5CLR = 15; - /** The Constant TYPE_6CLR indicates color spaces with 6 components. */ + /** + * The Constant TYPE_6CLR indicates color spaces with 6 components. + */ public static final int TYPE_6CLR = 16; - /** The Constant TYPE_7CLR indicates color spaces with 7 components. */ + /** + * The Constant TYPE_7CLR indicates color spaces with 7 components. + */ public static final int TYPE_7CLR = 17; - /** The Constant TYPE_8CLR indicates color spaces with 8 components. */ + /** + * The Constant TYPE_8CLR indicates color spaces with 8 components. + */ public static final int TYPE_8CLR = 18; - /** The Constant TYPE_9CLR indicates color spaces with 9 components. */ + /** + * The Constant TYPE_9CLR indicates color spaces with 9 components. + */ public static final int TYPE_9CLR = 19; - /** The Constant TYPE_ACLR indicates color spaces with 10 components. */ + /** + * The Constant TYPE_ACLR indicates color spaces with 10 components. + */ public static final int TYPE_ACLR = 20; - /** The Constant TYPE_BCLR indicates color spaces with 11 components. */ + /** + * The Constant TYPE_BCLR indicates color spaces with 11 components. + */ public static final int TYPE_BCLR = 21; - /** The Constant TYPE_CCLR indicates color spaces with 12 components. */ + /** + * The Constant TYPE_CCLR indicates color spaces with 12 components. + */ public static final int TYPE_CCLR = 22; - /** The Constant TYPE_DCLR indicates color spaces with 13 components. */ + /** + * The Constant TYPE_DCLR indicates color spaces with 13 components. + */ public static final int TYPE_DCLR = 23; - /** The Constant TYPE_ECLR indicates color spaces with 14 components. */ + /** + * The Constant TYPE_ECLR indicates color spaces with 14 components. + */ public static final int TYPE_ECLR = 24; - /** The Constant TYPE_FCLR indicates color spaces with 15 components. */ + /** + * The Constant TYPE_FCLR indicates color spaces with 15 components. + */ public static final int TYPE_FCLR = 25; - /** The Constant CS_sRGB indicates standard RGB color space.*/ + /** + * The Constant CS_sRGB indicates standard RGB color space. + */ public static final int CS_sRGB = 1000; - /** The Constant CS_LINEAR_RGB indicates linear RGB color space. */ + /** + * The Constant CS_LINEAR_RGB indicates linear RGB color space. + */ public static final int CS_LINEAR_RGB = 1004; - /** The Constant CS_CIEXYZ indicates CIEXYZ conversion color space. */ + /** + * The Constant CS_CIEXYZ indicates CIEXYZ conversion color space. + */ public static final int CS_CIEXYZ = 1001; - /** The Constant CS_PYCC indicates Photo YCC conversion color space. */ + /** + * The Constant CS_PYCC indicates Photo YCC conversion color space. + */ public static final int CS_PYCC = 1002; - /** The Constant CS_GRAY indicates linear gray scale color space. */ + /** + * The Constant CS_GRAY indicates linear gray scale color space. + */ public static final int CS_GRAY = 1003; - /** The cs_ gray. */ + /** + * The cs_ gray. + */ private static ColorSpace cs_Gray = null; - /** The cs_ pycc. */ + /** + * The cs_ pycc. + */ private static ColorSpace cs_PYCC = null; - /** The cs_ ciexyz. */ + /** + * The cs_ ciexyz. + */ private static ColorSpace cs_CIEXYZ = null; - /** The cs_ lrgb. */ + /** + * The cs_ lrgb. + */ private static ColorSpace cs_LRGB = null; - /** The cs_s rgb. */ + /** + * The cs_s rgb. + */ private static ColorSpace cs_sRGB = null; - /** The type. */ + /** + * The type. + */ private int type; - /** The num components. */ + /** + * The num components. + */ private int numComponents; /** - * Instantiates a ColorSpace with the specified - * ColorSpace type and number of components. + * Instantiates a ColorSpace with the specified ColorSpace type and number + * of components. * - * @param type the type of color space. - * @param numcomponents the number of components. + * @param type + * the type of color space. + * @param numcomponents + * the number of components. */ protected ColorSpace(int type, int numcomponents) { this.numComponents = numcomponents; @@ -160,8 +238,8 @@ public abstract class ColorSpace implements Serializable { /** * Gets the name of the component for the specified component index. * - * @param idx the index of the component. - * + * @param idx + * the index of the component. * @return the name of the component. */ public String getName(int idx) { @@ -174,56 +252,54 @@ public abstract class ColorSpace implements Serializable { } /** - * Perform transformation a color from this ColorSpace - * into the RGB color space. - * - * @param colorvalue the color value in this ColorSpace. + * Performs the transformation of a color from this ColorSpace into the RGB + * color space. * - * @return the float array with color components in the - * RGB color space. + * @param colorvalue + * the color value in this ColorSpace. + * @return the float array with color components in the RGB color space. */ public abstract float[] toRGB(float[] colorvalue); /** - * Perform transformation a color from this ColorSpace - * into the CS_CIEXYZ color space. + * Performs the transformation of a color from this ColorSpace into the + * CS_CIEXYZ color space. * - * @param colorvalue the color value in this ColorSpace. - * - * @return the float array with color components in the - * CS_CIEXYZ color space. + * @param colorvalue + * the color value in this ColorSpace. + * @return the float array with color components in the CS_CIEXYZ color + * space. */ public abstract float[] toCIEXYZ(float[] colorvalue); /** - * Performs color transformation from the RGB color space - * into this ColorSpace. + * Performs the transformation of a color from the RGB color space into this + * ColorSpace. * - * @param rgbvalue a float array in the RGB color space. - * - * @return the float[] an array of transformed color - * components. + * @param rgbvalue + * the float array representing a color in the RGB color space. + * @return the float array with the transformed color components. */ public abstract float[] fromRGB(float[] rgbvalue); /** - * Performs color transformation from the CS_CIEXYZ color space + * Performs the transformation of a color from the CS_CIEXYZ color space * into this ColorSpace. * - * @param colorvalue a float array in the CS_CIEXYZ color space. - * - * @return the float[] an array of transformed color - * components. + * @param colorvalue + * the float array representing a color in the CS_CIEXYZ color + * space. + * @return the float array with the transformed color components. */ public abstract float[] fromCIEXYZ(float[] colorvalue); /** - * Gets the minimum normalized color component value for - * the specified component. - * - * @param component the component. + * Gets the minimum normalized color component value for the specified + * component. * - * @return the miniimum normalized value of the component. + * @param component + * the component to determine the minimum value. + * @return the minimum normalized value of the component. */ public float getMinValue(int component) { if (component < 0 || component > numComponents - 1) { @@ -234,11 +310,11 @@ public abstract class ColorSpace implements Serializable { } /** - * Gets the maximum normalized color component value for - * the specified component. - * - * @param component the component. + * Gets the maximum normalized color component value for the specified + * component. * + * @param component + * the component to determine the maximum value. * @return the maximum normalized value of the component. */ public float getMaxValue(int component) { @@ -252,8 +328,7 @@ public abstract class ColorSpace implements Serializable { /** * Checks if this ColorSpace has CS_sRGB type or not. * - * @return true, if this ColorSpace has CS_sRGB type, - * false otherwise. + * @return true, if this ColorSpace has CS_sRGB type, false otherwise. */ public boolean isCS_sRGB() { // If our color space is sRGB, then cs_sRGB @@ -281,12 +356,11 @@ public abstract class ColorSpace implements Serializable { /** - * Gets the single instance of ColorSpace with the specified - * ColorSpace: CS_sRGB, CS_LINEAR_RGB, CS_CIEXYZ, CS_GRAY, - * or CS_PYCC. - * - * @param colorspace the identifier of the specified Colorspace. + * Gets the single instance of ColorSpace with the specified ColorSpace: + * CS_sRGB, CS_LINEAR_RGB, CS_CIEXYZ, CS_GRAY, or CS_PYCC. * + * @param colorspace + * the identifier of the specified Colorspace. * @return the single instance of the desired ColorSpace. */ public static ColorSpace getInstance(int colorspace) { diff --git a/awt/java/awt/color/ICC_ColorSpace.java b/awt/java/awt/color/ICC_ColorSpace.java index 5ece2ef..5b4d7e9 100644 --- a/awt/java/awt/color/ICC_ColorSpace.java +++ b/awt/java/awt/color/ICC_ColorSpace.java @@ -28,19 +28,24 @@ import org.apache.harmony.awt.internal.nls.Messages; import java.io.*; /** - * ICC_ColorSpace class implements ColorSpace abstract class and - * represents device independent and device dependent color spaces. - * This color space is based on the International Color Consortium - * Specification (ICC) File Format for Color Profiles: - * <a href="http://www.color.org">http://www.color.org</a> + * This class implements the abstract class ColorSpace and represents device + * independent and device dependent color spaces. This color space is based on + * the International Color Consortium Specification (ICC) File Format for Color + * Profiles: <a href="http://www.color.org">http://www.color.org</a> + * + * @since Android 1.0 */ public class ICC_ColorSpace extends ColorSpace { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = 3455889114070431483L; // Need to keep compatibility with serialized form - /** The Constant serialPersistentFields. */ + /** + * The Constant serialPersistentFields. + */ private static final ObjectStreamField[] serialPersistentFields = { new ObjectStreamField("thisProfile", ICC_Profile.class), //$NON-NLS-1$ @@ -53,63 +58,94 @@ public class ICC_ColorSpace extends ColorSpace { /** - * According to ICC specification (from http://www.color.org) - * "For the CIEXYZ encoding, each component (X, Y, and Z) - * is encoded as a u1Fixed15Number". - * This means that max value for this encoding is 1 + (32767/32768) - */ + * According to ICC specification (from http://www.color.org) "For the + * CIEXYZ encoding, each component (X, Y, and Z) is encoded as a + * u1Fixed15Number". This means that max value for this encoding is 1 + + * (32767/32768) + */ private static final float MAX_XYZ = 1f + (32767f/32768f); - /** The Constant MAX_SHORT. */ + /** + * The Constant MAX_SHORT. + */ private static final float MAX_SHORT = 65535f; - /** The Constant INV_MAX_SHORT. */ + /** + * The Constant INV_MAX_SHORT. + */ private static final float INV_MAX_SHORT = 1f/MAX_SHORT; - /** The Constant SHORT2XYZ_FACTOR. */ + /** + * The Constant SHORT2XYZ_FACTOR. + */ private static final float SHORT2XYZ_FACTOR = MAX_XYZ/MAX_SHORT; - /** The Constant XYZ2SHORT_FACTOR. */ + /** + * The Constant XYZ2SHORT_FACTOR. + */ private static final float XYZ2SHORT_FACTOR = MAX_SHORT/MAX_XYZ; - /** The profile. */ + /** + * The profile. + */ private ICC_Profile profile = null; - /** The min values. */ + /** + * The min values. + */ private float minValues[] = null; - /** The max values. */ + /** + * The max values. + */ private float maxValues[] = null; // cache transforms here - performance gain - /** The to rgb transform. */ + /** + * The to rgb transform. + */ private ICC_Transform toRGBTransform = null; - /** The from rgb transform. */ + /** + * The from rgb transform. + */ private ICC_Transform fromRGBTransform = null; - /** The to xyz transform. */ + /** + * The to xyz transform. + */ private ICC_Transform toXYZTransform = null; - /** The from xyz transform. */ + /** + * The from xyz transform. + */ private ICC_Transform fromXYZTransform = null; - /** The converter. */ + /** + * The converter. + */ private final ColorConverter converter = new ColorConverter(); - /** The scaler. */ + /** + * The scaler. + */ private final ColorScaler scaler = new ColorScaler(); - /** The scaling data loaded. */ + /** + * The scaling data loaded. + */ private boolean scalingDataLoaded = false; - /** The resolved deserialized inst. */ + /** + * The resolved deserialized inst. + */ private ICC_ColorSpace resolvedDeserializedInst; /** * Instantiates a new ICC color space from an ICC_Profile object. * - * @param pf the ICC_Profile object. + * @param pf + * the ICC_Profile object. */ public ICC_ColorSpace(ICC_Profile pf) { super(pf.getColorSpaceType(), pf.getNumComponents()); @@ -132,7 +168,7 @@ public class ICC_ColorSpace extends ColorSpace { } /** - * Returns the ICC_Profile for this ICC_ColorSpace. + * Gets the ICC_Profile for this ICC_ColorSpace. * * @return the ICC_Profile for this ICC_ColorSpace. */ @@ -144,6 +180,14 @@ public class ICC_ColorSpace extends ColorSpace { return profile; } + /** + * Performs the transformation of a color from this ColorSpace into the RGB + * color space. + * + * @param colorvalue + * the color value in this ColorSpace. + * @return the float array with color components in the RGB color space. + */ @Override public float[] toRGB(float[] colorvalue) { if (toRGBTransform == null) { @@ -174,6 +218,15 @@ public class ICC_ColorSpace extends ColorSpace { return res; } + /** + * Performs the transformation of a color from this ColorSpace into the + * CS_CIEXYZ color space. + * + * @param colorvalue + * the color value in this ColorSpace. + * @return the float array with color components in the CS_CIEXYZ color + * space. + */ @Override public float[] toCIEXYZ(float[] colorvalue) { if (toXYZTransform == null) { @@ -212,6 +265,14 @@ public class ICC_ColorSpace extends ColorSpace { return res; } + /** + * Performs the transformation of a color from the RGB color space into this + * ColorSpace. + * + * @param rgbvalue + * the float array representing a color in the RGB color space. + * @return the float array with the transformed color components. + */ @Override public float[] fromRGB(float[] rgbvalue) { if (fromRGBTransform == null) { @@ -241,6 +302,15 @@ public class ICC_ColorSpace extends ColorSpace { return res; } + /** + * Performs the transformation of a color from the CS_CIEXYZ color space + * into this ColorSpace. + * + * @param xyzvalue + * the float array representing a color in the CS_CIEXYZ color + * space. + * @return the float array with the transformed color components. + */ @Override public float[] fromCIEXYZ(float[] xyzvalue) { if (fromXYZTransform == null) { @@ -279,6 +349,14 @@ public class ICC_ColorSpace extends ColorSpace { return res; } + /** + * Gets the minimum normalized color component value for the specified + * component. + * + * @param component + * the component to determine the minimum value. + * @return the minimum normalized value of the component. + */ @Override public float getMinValue(int component) { if ((component < 0) || (component > this.getNumComponents() - 1)) { @@ -289,6 +367,14 @@ public class ICC_ColorSpace extends ColorSpace { return minValues[component]; } + /** + * Gets the maximum normalized color component value for the specified + * component. + * + * @param component + * the component to determine the maximum value. + * @return the maximum normalized value of the component. + */ @Override public float getMaxValue(int component) { if ((component < 0) || (component > this.getNumComponents() - 1)) { @@ -334,9 +420,10 @@ public class ICC_ColorSpace extends ColorSpace { /** * Write object. * - * @param out the out - * - * @throws IOException Signals that an I/O exception has occurred. + * @param out + * the out + * @throws IOException + * Signals that an I/O exception has occurred. */ private void writeObject(ObjectOutputStream out) throws IOException { ObjectOutputStream.PutField fields = out.putFields(); @@ -354,10 +441,12 @@ public class ICC_ColorSpace extends ColorSpace { /** * Read object. * - * @param in the in - * - * @throws IOException Signals that an I/O exception has occurred. - * @throws ClassNotFoundException the class not found exception + * @param in + * the in + * @throws IOException + * Signals that an I/O exception has occurred. + * @throws ClassNotFoundException + * the class not found exception */ private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { ObjectInputStream.GetField fields = in.readFields(); @@ -369,8 +458,8 @@ public class ICC_ColorSpace extends ColorSpace { * Read resolve. * * @return the object - * - * @throws ObjectStreamException the object stream exception + * @throws ObjectStreamException + * the object stream exception */ Object readResolve() throws ObjectStreamException { return resolvedDeserializedInst; diff --git a/awt/java/awt/color/ICC_Profile.java b/awt/java/awt/color/ICC_Profile.java index ad704e0..8ffee6c 100644 --- a/awt/java/awt/color/ICC_Profile.java +++ b/awt/java/awt/color/ICC_Profile.java @@ -18,6 +18,7 @@ * @author Oleg V. Khaschansky * @version $Revision$ */ + package java.awt.color; import java.io.File; @@ -40,427 +41,681 @@ import org.apache.harmony.awt.gl.color.NativeCMM; import org.apache.harmony.awt.internal.nls.Messages; /** - * The ICC_Profile class represents a color profile data for color spaces - * based on the International Color Consortium Specification ICC.1:2001-12, - * File Format for Color Profiles. + * The ICC_Profile class represents a color profile data for color spaces based + * on the International Color Consortium Specification ICC.1:2001-12, File + * Format for Color Profiles. + * + * @since Android 1.0 */ public class ICC_Profile implements Serializable { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -3938515861990936766L; // NOTE: Constant field values are noted in 1.5 specification. /** - * The Constant CLASS_INPUT indicates that profile class is input. + * The Constant CLASS_INPUT indicates that profile class is input. */ public static final int CLASS_INPUT = 0; - /** - * The Constant CLASS_DISPLAY indicates that profile class is display. + /** + * The Constant CLASS_DISPLAY indicates that profile class is display. */ public static final int CLASS_DISPLAY = 1; - /** - * The Constant CLASS_OUTPUT indicates that profile class is output. + /** + * The Constant CLASS_OUTPUT indicates that profile class is output. */ public static final int CLASS_OUTPUT = 2; - /** - * The Constant CLASS_DEVICELINK indicates that profile class - * is device link. + /** + * The Constant CLASS_DEVICELINK indicates that profile class is device + * link. */ public static final int CLASS_DEVICELINK = 3; - /** - * The Constant CLASS_COLORSPACECONVERSION indicates that profile class - * is color space conversion. + /** + * The Constant CLASS_COLORSPACECONVERSION indicates that profile class is + * color space conversion. */ public static final int CLASS_COLORSPACECONVERSION = 4; - /** The Constant CLASS_ABSTRACT indicates that profile class is abstract. */ + /** + * The Constant CLASS_ABSTRACT indicates that profile class is abstract. + */ public static final int CLASS_ABSTRACT = 5; - /** - * The Constant CLASS_NAMEDCOLOR indicates that profile class - * is named color. + /** + * The Constant CLASS_NAMEDCOLOR indicates that profile class is named + * color. */ public static final int CLASS_NAMEDCOLOR = 6; - /** The Constant icSigXYZData - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigXYZData - ICC Profile Color Space Type Signature. + */ public static final int icSigXYZData = 1482250784; - /** The Constant icSigLabData - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigLabData - ICC Profile Color Space Type Signature. + */ public static final int icSigLabData = 1281450528; - /** The Constant icSigLuvData - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigLuvData - ICC Profile Color Space Type Signature. + */ public static final int icSigLuvData = 1282766368; - /** The Constant icSigYCbCrData - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigYCbCrData - ICC Profile Color Space Type Signature. + */ public static final int icSigYCbCrData = 1497588338; - /** The Constant icSigYxyData - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigYxyData - ICC Profile Color Space Type Signature. + */ public static final int icSigYxyData = 1501067552; - /** The Constant icSigRgbData - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigRgbData - ICC Profile Color Space Type Signature. + */ public static final int icSigRgbData = 1380401696; - /** The Constant icSigGrayData - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigGrayData - ICC Profile Color Space Type Signature. + */ public static final int icSigGrayData = 1196573017; - /** The Constant icSigHsvData - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigHsvData - ICC Profile Color Space Type Signature. + */ public static final int icSigHsvData = 1213421088; - /** The Constant icSigHlsData - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigHlsData - ICC Profile Color Space Type Signature. + */ public static final int icSigHlsData = 1212961568; - /** The Constant icSigCmykData - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigCmykData - ICC Profile Color Space Type Signature. + */ public static final int icSigCmykData = 1129142603; - /** The Constant icSigCmyData - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigCmyData - ICC Profile Color Space Type Signature. + */ public static final int icSigCmyData = 1129142560; - /** The Constant icSigSpace2CLR - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigSpace2CLR - ICC Profile Color Space Type Signature. + */ public static final int icSigSpace2CLR = 843271250; - /** The Constant icSigSpace3CLR - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigSpace3CLR - ICC Profile Color Space Type Signature. + */ public static final int icSigSpace3CLR = 860048466; - /** The Constant icSigSpace4CLR - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigSpace4CLR - ICC Profile Color Space Type Signature. + */ public static final int icSigSpace4CLR = 876825682; - /** The Constant icSigSpace5CLR - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigSpace5CLR - ICC Profile Color Space Type Signature. + */ public static final int icSigSpace5CLR = 893602898; - /** The Constant icSigSpace6CLR - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigSpace6CLR - ICC Profile Color Space Type Signature. + */ public static final int icSigSpace6CLR = 910380114; - /** The Constant icSigSpace7CLR - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigSpace7CLR - ICC Profile Color Space Type Signature. + */ public static final int icSigSpace7CLR = 927157330; - /** The Constant icSigSpace8CLR - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigSpace8CLR - ICC Profile Color Space Type Signature. + */ public static final int icSigSpace8CLR = 943934546; - /** The Constant icSigSpace9CLR - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigSpace9CLR - ICC Profile Color Space Type Signature. + */ public static final int icSigSpace9CLR = 960711762; - /** The Constant icSigSpaceACLR - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigSpaceACLR - ICC Profile Color Space Type Signature. + */ public static final int icSigSpaceACLR = 1094929490; - /** The Constant icSigSpaceBCLR - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigSpaceBCLR - ICC Profile Color Space Type Signature. + */ public static final int icSigSpaceBCLR = 1111706706; - /** The Constant icSigSpaceCCLR - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigSpaceCCLR - ICC Profile Color Space Type Signature. + */ public static final int icSigSpaceCCLR = 1128483922; - /** The Constant icSigSpaceDCLR - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigSpaceDCLR - ICC Profile Color Space Type Signature. + */ public static final int icSigSpaceDCLR = 1145261138; - /** The Constant icSigSpaceECLR - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigSpaceECLR - ICC Profile Color Space Type Signature. + */ public static final int icSigSpaceECLR = 1162038354; - /** The Constant icSigSpaceFCLR - ICC Profile Color Space Type Signature. */ + /** + * The Constant icSigSpaceFCLR - ICC Profile Color Space Type Signature. + */ public static final int icSigSpaceFCLR = 1178815570; - /** The Constant icSigInputClass - ICC Profile Class Signature. */ + /** + * The Constant icSigInputClass - ICC Profile Class Signature. + */ public static final int icSigInputClass = 1935896178; - /** The Constant icSigDisplayClass - ICC Profile Class Signature. */ + /** + * The Constant icSigDisplayClass - ICC Profile Class Signature. + */ public static final int icSigDisplayClass = 1835955314; - /** The Constant icSigOutputClass - ICC Profile Class Signature. */ + /** + * The Constant icSigOutputClass - ICC Profile Class Signature. + */ public static final int icSigOutputClass = 1886549106; - /** The Constant icSigLinkClass - ICC Profile Class Signature. */ + /** + * The Constant icSigLinkClass - ICC Profile Class Signature. + */ public static final int icSigLinkClass = 1818848875; - /** The Constant icSigAbstractClass - ICC Profile Class Signature. */ + /** + * The Constant icSigAbstractClass - ICC Profile Class Signature. + */ public static final int icSigAbstractClass = 1633842036; - /** The Constant icSigColorantOrderTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigColorantOrderTag - ICC Profile Tag Signature. + */ public static final int icSigColorantOrderTag = 1668051567; - /** The Constant icSigColorantTableTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigColorantTableTag - ICC Profile Tag Signature. + */ public static final int icSigColorantTableTag = 1668051572; - /** The Constant icSigColorSpaceClass - ICC Profile Tag Signature. */ + /** + * The Constant icSigColorSpaceClass - ICC Profile Tag Signature. + */ public static final int icSigColorSpaceClass = 1936744803; - /** The Constant icSigNamedColorClass - ICC Profile Tag Signature. */ + /** + * The Constant icSigNamedColorClass - ICC Profile Tag Signature. + */ public static final int icSigNamedColorClass = 1852662636; - /** The Constant icPerceptual - ICC Profile Rendering Intent. */ + /** + * The Constant icPerceptual - ICC Profile Rendering Intent. + */ public static final int icPerceptual = 0; - /** The Constant icRelativeColorimetric - ICC Profile Rendering Intent. */ + /** + * The Constant icRelativeColorimetric - ICC Profile Rendering Intent. + */ public static final int icRelativeColorimetric = 1; - /** The Constant icSaturation - ICC Profile Rendering Intent. */ + /** + * The Constant icSaturation - ICC Profile Rendering Intent. + */ public static final int icSaturation = 2; - /** The Constant icAbsoluteColorimetric - ICC Profile Rendering Intent. */ + /** + * The Constant icAbsoluteColorimetric - ICC Profile Rendering Intent. + */ public static final int icAbsoluteColorimetric = 3; - /** The Constant icSigHead - ICC Profile Tag Signature. */ + /** + * The Constant icSigHead - ICC Profile Tag Signature. + */ public static final int icSigHead = 1751474532; - /** The Constant icSigAToB0Tag - ICC Profile Tag Signature. */ + /** + * The Constant icSigAToB0Tag - ICC Profile Tag Signature. + */ public static final int icSigAToB0Tag = 1093812784; - /** The Constant icSigAToB1Tag - ICC Profile Tag Signature. */ + /** + * The Constant icSigAToB1Tag - ICC Profile Tag Signature. + */ public static final int icSigAToB1Tag = 1093812785; - /** The Constant icSigAToB2Tag - ICC Profile Tag Signature. */ + /** + * The Constant icSigAToB2Tag - ICC Profile Tag Signature. + */ public static final int icSigAToB2Tag = 1093812786; - /** The Constant icSigBlueColorantTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigBlueColorantTag - ICC Profile Tag Signature. + */ public static final int icSigBlueColorantTag = 1649957210; - /** The Constant icSigBlueMatrixColumnTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigBlueMatrixColumnTag - ICC Profile Tag Signature. + */ public static final int icSigBlueMatrixColumnTag = 1649957210; - /** The Constant icSigBlueTRCTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigBlueTRCTag - ICC Profile Tag Signature. + */ public static final int icSigBlueTRCTag = 1649693251; - /** The Constant icSigBToA0Tag - ICC Profile Tag Signature. */ + /** + * The Constant icSigBToA0Tag - ICC Profile Tag Signature. + */ public static final int icSigBToA0Tag = 1110589744; - /** The Constant icSigBToA1Tag - ICC Profile Tag Signature. */ + /** + * The Constant icSigBToA1Tag - ICC Profile Tag Signature. + */ public static final int icSigBToA1Tag = 1110589745; - /** The Constant icSigBToA2Tag - ICC Profile Tag Signature. */ + /** + * The Constant icSigBToA2Tag - ICC Profile Tag Signature. + */ public static final int icSigBToA2Tag = 1110589746; - /** The Constant icSigCalibrationDateTimeTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigCalibrationDateTimeTag - ICC Profile Tag Signature. + */ public static final int icSigCalibrationDateTimeTag = 1667329140; - /** The Constant icSigCharTargetTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigCharTargetTag - ICC Profile Tag Signature. + */ public static final int icSigCharTargetTag = 1952543335; - /** The Constant icSigCopyrightTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigCopyrightTag - ICC Profile Tag Signature. + */ public static final int icSigCopyrightTag = 1668313716; - /** The Constant icSigCrdInfoTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigCrdInfoTag - ICC Profile Tag Signature. + */ public static final int icSigCrdInfoTag = 1668441193; - /** The Constant icSigDeviceMfgDescTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigDeviceMfgDescTag - ICC Profile Tag Signature. + */ public static final int icSigDeviceMfgDescTag = 1684893284; - /** The Constant icSigDeviceModelDescTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigDeviceModelDescTag - ICC Profile Tag Signature. + */ public static final int icSigDeviceModelDescTag = 1684890724; - /** The Constant icSigDeviceSettingsTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigDeviceSettingsTag - ICC Profile Tag Signature. + */ public static final int icSigDeviceSettingsTag = 1684371059; - /** The Constant icSigGamutTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigGamutTag - ICC Profile Tag Signature. + */ public static final int icSigGamutTag = 1734438260; - /** The Constant icSigGrayTRCTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigGrayTRCTag - ICC Profile Tag Signature. + */ public static final int icSigGrayTRCTag = 1800688195; - /** The Constant icSigGreenColorantTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigGreenColorantTag - ICC Profile Tag Signature. + */ public static final int icSigGreenColorantTag = 1733843290; - /** The Constant icSigGreenMatrixColumnTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigGreenMatrixColumnTag - ICC Profile Tag Signature. + */ public static final int icSigGreenMatrixColumnTag = 1733843290; - /** The Constant icSigGreenTRCTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigGreenTRCTag - ICC Profile Tag Signature. + */ public static final int icSigGreenTRCTag = 1733579331; - /** The Constant icSigLuminanceTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigLuminanceTag - ICC Profile Tag Signature. + */ public static final int icSigLuminanceTag = 1819635049; - /** The Constant icSigMeasurementTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigMeasurementTag - ICC Profile Tag Signature. + */ public static final int icSigMeasurementTag = 1835360627; - /** The Constant icSigMediaBlackPointTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigMediaBlackPointTag - ICC Profile Tag Signature. + */ public static final int icSigMediaBlackPointTag = 1651208308; - /** The Constant icSigMediaWhitePointTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigMediaWhitePointTag - ICC Profile Tag Signature. + */ public static final int icSigMediaWhitePointTag = 2004119668; - /** The Constant icSigNamedColor2Tag - ICC Profile Tag Signature. */ + /** + * The Constant icSigNamedColor2Tag - ICC Profile Tag Signature. + */ public static final int icSigNamedColor2Tag = 1852009522; - /** The Constant icSigOutputResponseTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigOutputResponseTag - ICC Profile Tag Signature. + */ public static final int icSigOutputResponseTag = 1919251312; - /** The Constant icSigPreview0Tag - ICC Profile Tag Signature. */ + /** + * The Constant icSigPreview0Tag - ICC Profile Tag Signature. + */ public static final int icSigPreview0Tag = 1886545200; - /** The Constant icSigPreview1Tag - ICC Profile Tag Signature. */ + /** + * The Constant icSigPreview1Tag - ICC Profile Tag Signature. + */ public static final int icSigPreview1Tag = 1886545201; - /** The Constant icSigPreview2Tag - ICC Profile Tag Signature. */ + /** + * The Constant icSigPreview2Tag - ICC Profile Tag Signature. + */ public static final int icSigPreview2Tag = 1886545202; - /** The Constant icSigProfileDescriptionTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigProfileDescriptionTag - ICC Profile Tag Signature. + */ public static final int icSigProfileDescriptionTag = 1684370275; - /** The Constant icSigProfileSequenceDescTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigProfileSequenceDescTag - ICC Profile Tag Signature. + */ public static final int icSigProfileSequenceDescTag = 1886610801; - /** The Constant icSigPs2CRD0Tag - ICC Profile Tag Signature. */ + /** + * The Constant icSigPs2CRD0Tag - ICC Profile Tag Signature. + */ public static final int icSigPs2CRD0Tag = 1886610480; - /** The Constant icSigPs2CRD1Tag - ICC Profile Tag Signature. */ + /** + * The Constant icSigPs2CRD1Tag - ICC Profile Tag Signature. + */ public static final int icSigPs2CRD1Tag = 1886610481; - /** The Constant icSigPs2CRD2Tag - ICC Profile Tag Signature. */ + /** + * The Constant icSigPs2CRD2Tag - ICC Profile Tag Signature. + */ public static final int icSigPs2CRD2Tag = 1886610482; - /** The Constant icSigPs2CRD3Tag - ICC Profile Tag Signature. */ + /** + * The Constant icSigPs2CRD3Tag - ICC Profile Tag Signature. + */ public static final int icSigPs2CRD3Tag = 1886610483; - /** The Constant icSigPs2CSATag - ICC Profile Tag Signature. */ + /** + * The Constant icSigPs2CSATag - ICC Profile Tag Signature. + */ public static final int icSigPs2CSATag = 1886597747; - /** The Constant icSigPs2RenderingIntentTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigPs2RenderingIntentTag - ICC Profile Tag Signature. + */ public static final int icSigPs2RenderingIntentTag = 1886597737; - /** The Constant icSigRedColorantTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigRedColorantTag - ICC Profile Tag Signature. + */ public static final int icSigRedColorantTag = 1918392666; - /** The Constant icSigRedMatrixColumnTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigRedMatrixColumnTag - ICC Profile Tag Signature. + */ public static final int icSigRedMatrixColumnTag = 1918392666; - /** The Constant icSigRedTRCTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigRedTRCTag - ICC Profile Tag Signature. + */ public static final int icSigRedTRCTag = 1918128707; - /** The Constant icSigScreeningDescTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigScreeningDescTag - ICC Profile Tag Signature. + */ public static final int icSigScreeningDescTag = 1935897188; - /** The Constant icSigScreeningTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigScreeningTag - ICC Profile Tag Signature. + */ public static final int icSigScreeningTag = 1935897198; - /** The Constant icSigTechnologyTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigTechnologyTag - ICC Profile Tag Signature. + */ public static final int icSigTechnologyTag = 1952801640; - /** The Constant icSigUcrBgTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigUcrBgTag - ICC Profile Tag Signature. + */ public static final int icSigUcrBgTag = 1650877472; - /** The Constant icSigViewingCondDescTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigViewingCondDescTag - ICC Profile Tag Signature. + */ public static final int icSigViewingCondDescTag = 1987405156; - /** The Constant icSigViewingConditionsTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigViewingConditionsTag - ICC Profile Tag Signature. + */ public static final int icSigViewingConditionsTag = 1986618743; - /** The Constant icSigChromaticAdaptationTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigChromaticAdaptationTag - ICC Profile Tag Signature. + */ public static final int icSigChromaticAdaptationTag = 1667785060; - /** The Constant icSigChromaticityTag - ICC Profile Tag Signature. */ + /** + * The Constant icSigChromaticityTag - ICC Profile Tag Signature. + */ public static final int icSigChromaticityTag = 1667789421; - /** The Constant icHdrSize - ICC Profile Header Location. */ + /** + * The Constant icHdrSize - ICC Profile Header Location. + */ public static final int icHdrSize = 0; - /** The Constant icHdrCmmId - ICC Profile Header Location. */ + /** + * The Constant icHdrCmmId - ICC Profile Header Location. + */ public static final int icHdrCmmId = 4; - /** The Constant icHdrVersion - ICC Profile Header Location. */ + /** + * The Constant icHdrVersion - ICC Profile Header Location. + */ public static final int icHdrVersion = 8; - /** The Constant icHdrDeviceClass - ICC Profile Header Location. */ + /** + * The Constant icHdrDeviceClass - ICC Profile Header Location. + */ public static final int icHdrDeviceClass = 12; - /** The Constant icHdrColorSpace - ICC Profile Header Location. */ + /** + * The Constant icHdrColorSpace - ICC Profile Header Location. + */ public static final int icHdrColorSpace = 16; - /** The Constant icHdrPcs - ICC Profile Header Location. */ + /** + * The Constant icHdrPcs - ICC Profile Header Location. + */ public static final int icHdrPcs = 20; - /** The Constant icHdrDate - ICC Profile Header Location. */ + /** + * The Constant icHdrDate - ICC Profile Header Location. + */ public static final int icHdrDate = 24; - /** The Constant icHdrMagic - ICC Profile Header Location. */ + /** + * The Constant icHdrMagic - ICC Profile Header Location. + */ public static final int icHdrMagic = 36; - /** The Constant icHdrPlatform - ICC Profile Header Location. */ + /** + * The Constant icHdrPlatform - ICC Profile Header Location. + */ public static final int icHdrPlatform = 40; - /** The Constant icHdrProfileID - ICC Profile Header Location. */ + /** + * The Constant icHdrProfileID - ICC Profile Header Location. + */ public static final int icHdrProfileID = 84; - /** The Constant icHdrFlags - ICC Profile Header Location. */ + /** + * The Constant icHdrFlags - ICC Profile Header Location. + */ public static final int icHdrFlags = 44; - /** The Constant icHdrManufacturer - ICC Profile Header Location. */ + /** + * The Constant icHdrManufacturer - ICC Profile Header Location. + */ public static final int icHdrManufacturer = 48; - /** The Constant icHdrModel - ICC Profile Header Location. */ + /** + * The Constant icHdrModel - ICC Profile Header Location. + */ public static final int icHdrModel = 52; - /** The Constant icHdrAttributes - ICC Profile Header Location. */ + /** + * The Constant icHdrAttributes - ICC Profile Header Location. + */ public static final int icHdrAttributes = 56; - /** The Constant icHdrRenderingIntent - ICC Profile Header Location. */ + /** + * The Constant icHdrRenderingIntent - ICC Profile Header Location. + */ public static final int icHdrRenderingIntent = 64; - /** The Constant icHdrIlluminant - ICC Profile Header Location. */ + /** + * The Constant icHdrIlluminant - ICC Profile Header Location. + */ public static final int icHdrIlluminant = 68; - /** The Constant icHdrCreator - ICC Profile Header Location. */ + /** + * The Constant icHdrCreator - ICC Profile Header Location. + */ public static final int icHdrCreator = 80; - /** The Constant icICCAbsoluteColorimetric - ICC Profile Rendering Intent. */ + /** + * The Constant icICCAbsoluteColorimetric - ICC Profile Rendering Intent. + */ public static final int icICCAbsoluteColorimetric = 3; - /** The Constant icMediaRelativeColorimetric - ICC Profile Rendering Intent. */ + /** + * The Constant icMediaRelativeColorimetric - ICC Profile Rendering Intent. + */ public static final int icMediaRelativeColorimetric = 1; - /** The Constant icTagType - ICC Profile Constant. */ + /** + * The Constant icTagType - ICC Profile Constant. + */ public static final int icTagType = 0; - /** The Constant icTagReserved - ICC Profile Constant. */ + /** + * The Constant icTagReserved - ICC Profile Constant. + */ public static final int icTagReserved = 4; - /** The Constant icCurveCount - ICC Profile Constant. */ + /** + * The Constant icCurveCount - ICC Profile Constant. + */ public static final int icCurveCount = 8; - /** The Constant icCurveData - ICC Profile Constant. */ + /** + * The Constant icCurveData - ICC Profile Constant. + */ public static final int icCurveData = 12; - /** The Constant icXYZNumberX - ICC Profile Constant. */ + /** + * The Constant icXYZNumberX - ICC Profile Constant. + */ public static final int icXYZNumberX = 8; - /** Size of a profile header. */ + /** + * Size of a profile header. + */ private static final int headerSize = 128; - /** header magic number. */ + /** + * header magic number. + */ private static final int headerMagicNumber = 0x61637370; // Cache of predefined profiles - /** The s rgb profile. */ + /** + * The s rgb profile. + */ private static ICC_Profile sRGBProfile; - - /** The xyz profile. */ + + /** + * The xyz profile. + */ private static ICC_Profile xyzProfile; - - /** The gray profile. */ + + /** + * The gray profile. + */ private static ICC_Profile grayProfile; - - /** The pycc profile. */ + + /** + * The pycc profile. + */ private static ICC_Profile pyccProfile; - - /** The linear rgb profile. */ + + /** + * The linear rgb profile. + */ private static ICC_Profile linearRGBProfile; - /** Handle to the current profile. */ + /** + * Handle to the current profile. + */ private transient long profileHandle = 0; - /** If handle is used by another class this object is not responsible for closing profile. */ + /** + * If handle is used by another class this object is not responsible for + * closing profile. + */ private transient boolean handleStolen = false; - /** Cached header data. */ + /** + * Cached header data. + */ private transient byte[] headerData = null; - /** Serialization support. */ + /** + * Serialization support. + */ private transient ICC_Profile openedProfileObject; /** - * Instantiates a new iC c_ profile. + * Instantiates a new ICC profile with the given data. * - * @param data the data + * @param data + * the data. */ private ICC_Profile(byte[] data) { profileHandle = NativeCMM.cmmOpenProfile(data); @@ -476,7 +731,8 @@ public class ICC_Profile implements Serializable { /** * Used to instantiate subclasses (ICC_ProfileGrey and ICC_ProfileRGB). * - * @param profileHandle - should be valid handle to opened color profile + * @param profileHandle + * - should be valid handle to opened color profile */ ICC_Profile(long profileHandle) { this.profileHandle = profileHandle; @@ -487,10 +743,11 @@ public class ICC_Profile implements Serializable { /** * Writes the ICC_Profile to a file with the specified name. * - * @param fileName the file name. - * - * @throws IOException signals that an I/O exception has occurred during - * writing or opening the file. + * @param fileName + * the file name. + * @throws IOException + * if an I/O exception has occurred during writing or opening + * the file. */ public void write(String fileName) throws IOException { FileOutputStream oStream = new FileOutputStream(fileName); @@ -501,9 +758,10 @@ public class ICC_Profile implements Serializable { /** * Serializable implementation. * - * @param s the s - * - * @throws IOException Signals that an I/O exception has occurred. + * @param s + * the s + * @throws IOException + * Signals that an I/O exception has occurred. */ private void writeObject(ObjectOutputStream s) throws IOException { s.defaultWriteObject(); @@ -514,10 +772,12 @@ public class ICC_Profile implements Serializable { /** * Serializable implementation. * - * @param s the s - * - * @throws IOException Signals that an I/O exception has occurred. - * @throws ClassNotFoundException the class not found exception + * @param s + * the s + * @throws IOException + * Signals that an I/O exception has occurred. + * @throws ClassNotFoundException + * the class not found exception */ private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException { s.defaultReadObject(); @@ -547,9 +807,9 @@ public class ICC_Profile implements Serializable { * Resolves instances being deserialized into instances registered with CMM. * * @return ICC_Profile object for profile registered with CMM. - * - * @throws ObjectStreamException if there is an error in the serialized - * files or during the process of reading them. + * @throws ObjectStreamException + * if there is an error in the serialized files or during the + * process of reading them. */ protected Object readResolve() throws ObjectStreamException { return openedProfileObject; @@ -558,20 +818,23 @@ public class ICC_Profile implements Serializable { /** * Writes the ICC_Profile to an OutputStream. * - * @param s the OutputStream. - * - * @throws IOException signals that an I/O exception has occurred during - * writing or opening OutputStream. + * @param s + * the OutputStream. + * @throws IOException + * signals that an I/O exception has occurred during writing or + * opening OutputStream. */ public void write(OutputStream s) throws IOException { s.write(getData()); } /** - * Sets a tagged data element in the profile from a byte array. + * Sets a tagged data element in the profile from a byte array. * - * @param tagSignature the ICC tag signature for the data element to be set. - * @param tagData the data to be set for the specified tag signature. + * @param tagSignature + * the ICC tag signature for the data element to be set. + * @param tagData + * the data to be set for the specified tag signature. */ public void setData(int tagSignature, byte[] tagData) { NativeCMM.cmmSetProfileElement(profileHandle, tagSignature, tagData); @@ -582,21 +845,17 @@ public class ICC_Profile implements Serializable { } /** - * Gets a tagged data element from the profile as a byte array. - * Elements are identified by tag signatures as defined in - * the ICC specification. - * - * @param tagSignature the ICC tag signature for the data element to get. + * Gets a tagged data element from the profile as a byte array. Elements are + * identified by tag signatures as defined in the ICC specification. * + * @param tagSignature + * the ICC tag signature for the data element to get. * @return a byte array that contains the tagged data element. */ public byte[] getData(int tagSignature) { int tagSize = 0; try { - tagSize = NativeCMM.cmmGetProfileElementSize( - profileHandle, - tagSignature - ); + tagSize = NativeCMM.cmmGetProfileElementSize(profileHandle, tagSignature); } catch (CMMException e) { // We'll get this exception if there's no element with // the specified tag signature @@ -625,7 +884,7 @@ public class ICC_Profile implements Serializable { */ @Override protected void finalize() { - if (profileHandle!=0 && !handleStolen) { + if (profileHandle != 0 && !handleStolen) { NativeCMM.cmmCloseProfile(profileHandle); } @@ -663,16 +922,16 @@ public class ICC_Profile implements Serializable { // Not an ICC profile class // awt.15F=Profile class does not comply with ICC specification throw new IllegalArgumentException(Messages.getString("awt.15F")); //$NON-NLS-1$ - + } /** - * Returns the color space type of the Profile Connection Space (PCS). + * Gets the color space type of the Profile Connection Space (PCS). * * @return the PCS type. */ public int getPCSType() { - return csFromSignature(getIntFromHeader(icHdrPcs)); + return csFromSignature(getIntFromHeader(icHdrPcs)); } /** @@ -740,7 +999,7 @@ public class ICC_Profile implements Serializable { * @return the minor version of this ICC profile. */ public int getMinorVersion() { - return getByteFromHeader(icHdrVersion+1); + return getByteFromHeader(icHdrVersion + 1); } /** @@ -762,13 +1021,14 @@ public class ICC_Profile implements Serializable { } /** - * Tries to open file at the specified path. Path entries can be - * divided by a separator character. + * Tries to open the file at the specified path. Path entries can be divided + * by a separator character. * - * @param path the path - * @param fileName the file name - * - * @return the file input stream + * @param path + * the path to the file. + * @param fileName + * the file name. + * @return the input stream to read the file. */ private static FileInputStream tryPath(String path, String fileName) { FileInputStream fiStream = null; @@ -786,7 +1046,8 @@ public class ICC_Profile implements Serializable { if (fiStream != null) { return fiStream; } - } catch (FileNotFoundException e) {} + } catch (FileNotFoundException e) { + } } return fiStream; @@ -795,18 +1056,18 @@ public class ICC_Profile implements Serializable { /** * Gets the single instance of ICC_Profile from data in the specified file. * - * @param fileName the specified name of file with ICC profile data. - * + * @param fileName + * the specified name of file with ICC profile data. * @return single instance of ICC_Profile. - * - * @throws IOException signals that an I/O error occured while reading the file - * or the file doesn't exist. + * @throws IOException + * signals that an I/O error occurred while reading the file or + * the file does not exist. */ public static ICC_Profile getInstance(String fileName) throws IOException { final String fName = fileName; // to use in the privileged block - FileInputStream fiStream = (FileInputStream) AccessController.doPrivileged( - new PrivilegedAction<FileInputStream>() { + FileInputStream fiStream = (FileInputStream)AccessController + .doPrivileged(new PrivilegedAction<FileInputStream>() { public FileInputStream run() { FileInputStream fiStream = null; @@ -816,7 +1077,8 @@ public class ICC_Profile implements Serializable { if (fiStream != null) { return fiStream; } - } catch (FileNotFoundException e) {} + } catch (FileNotFoundException e) { + } // Check java.iccprofile.path entries fiStream = tryPath(System.getProperty("java.iccprofile.path"), fName); //$NON-NLS-1$ @@ -833,9 +1095,8 @@ public class ICC_Profile implements Serializable { // Check directory with java sample profiles String home = System.getProperty("java.home"); //$NON-NLS-1$ if (home != null) { - fiStream = tryPath( - home + File.separatorChar + - "lib" + File.separatorChar + "cmm", fName //$NON-NLS-1$ //$NON-NLS-2$ + fiStream = tryPath(home + File.separatorChar + + "lib" + File.separatorChar + "cmm", fName //$NON-NLS-1$ //$NON-NLS-2$ ); } @@ -854,17 +1115,17 @@ public class ICC_Profile implements Serializable { } /** - * Gets the single instance of ICC_Profile with data in - * the specified InputStream. - * - * @param s the InputStream with ICC profile data. + * Gets the single instance of ICC_Profile with data in the specified + * InputStream. * + * @param s + * the InputStream with ICC profile data. * @return single instance of ICC_Profile. - * - * @throws IOException if an I/O exception has occurred during reading - * from InputStream. - * @throws IllegalArgumentException if the file does not contain valid - * ICC Profile data. + * @throws IOException + * if an I/O exception has occurred during reading from + * InputStream. + * @throws IllegalArgumentException + * if the file does not contain valid ICC Profile data. */ public static ICC_Profile getInstance(InputStream s) throws IOException { byte[] header = new byte[headerSize]; @@ -877,10 +1138,7 @@ public class ICC_Profile implements Serializable { } // Check the profile data for consistency - if ( - ICC_ProfileHelper.getBigEndianFromByteArray(header, icHdrMagic) != - headerMagicNumber - ) { + if (ICC_ProfileHelper.getBigEndianFromByteArray(header, icHdrMagic) != headerMagicNumber) { throw new IllegalArgumentException(invalidDataMessage); } @@ -892,10 +1150,7 @@ public class ICC_Profile implements Serializable { System.arraycopy(header, 0, profileData, 0, headerSize); // Read the profile itself - if ( - s.read(profileData, headerSize, profileSize - headerSize) != - profileSize - headerSize - ) { + if (s.read(profileData, headerSize, profileSize - headerSize) != profileSize - headerSize) { throw new IllegalArgumentException(invalidDataMessage); } @@ -903,16 +1158,15 @@ public class ICC_Profile implements Serializable { } /** - * Gets the single instance of ICC_Profile from the specified data in - * a byte array. + * Gets the single instance of ICC_Profile from the specified data in a byte + * array. * - * @param data the byte array of ICC profile. - * - * @return single instance of ICC_Profile from the specified data in - * a byte array. - * - * @throws IllegalArgumentException if the file does not contain valid - * ICC Profile data. + * @param data + * the byte array of ICC profile. + * @return single instance of ICC_Profile from the specified data in a byte + * array. + * @throws IllegalArgumentException + * if the file does not contain valid ICC Profile data. */ public static ICC_Profile getInstance(byte[] data) { ICC_Profile res = null; @@ -924,29 +1178,28 @@ public class ICC_Profile implements Serializable { throw new IllegalArgumentException(Messages.getString("awt.162")); //$NON-NLS-1$ } - if (System.getProperty("os.name").toLowerCase().indexOf("windows") >= 0) { //$NON-NLS-1$ //$NON-NLS-2$ - try { - if ( res.getColorSpaceType () == ColorSpace.TYPE_RGB && - res.getDataSize(icSigMediaWhitePointTag) > 0 && - res.getDataSize(icSigRedColorantTag) > 0 && - res.getDataSize(icSigGreenColorantTag) > 0 && - res.getDataSize(icSigBlueColorantTag) > 0 && - res.getDataSize(icSigRedTRCTag) > 0 && - res.getDataSize(icSigGreenTRCTag) > 0 && - res.getDataSize(icSigBlueTRCTag) > 0 - ) { - res = new ICC_ProfileRGB(res.getProfileHandle()); - } else if ( res.getColorSpaceType () == ColorSpace.TYPE_GRAY && - res.getDataSize(icSigMediaWhitePointTag) > 0 && - res.getDataSize(icSigGrayTRCTag) > 0 - ) { - res = new ICC_ProfileGray (res.getProfileHandle()); - } + if (System.getProperty("os.name").toLowerCase().indexOf("windows") >= 0) { //$NON-NLS-1$ //$NON-NLS-2$ + try { + if (res.getColorSpaceType() == ColorSpace.TYPE_RGB + && res.getDataSize(icSigMediaWhitePointTag) > 0 + && res.getDataSize(icSigRedColorantTag) > 0 + && res.getDataSize(icSigGreenColorantTag) > 0 + && res.getDataSize(icSigBlueColorantTag) > 0 + && res.getDataSize(icSigRedTRCTag) > 0 + && res.getDataSize(icSigGreenTRCTag) > 0 + && res.getDataSize(icSigBlueTRCTag) > 0) { + res = new ICC_ProfileRGB(res.getProfileHandle()); + } else if (res.getColorSpaceType() == ColorSpace.TYPE_GRAY + && res.getDataSize(icSigMediaWhitePointTag) > 0 + && res.getDataSize(icSigGrayTRCTag) > 0) { + res = new ICC_ProfileGray(res.getProfileHandle()); + } - } catch (CMMException e) { /* return res in this case */ } - } + } catch (CMMException e) { /* return res in this case */ + } + } - return res; + return res; } /** @@ -954,80 +1207,77 @@ public class ICC_Profile implements Serializable { * defined by the ColorSpace class: CS_sRGB, CS_LINEAR_RGB, CS_CIEXYZ, * CS_PYCC, CS_GRAY. * - * @param cspace the type of color space defined in the ColorSpace class. - * + * @param cspace + * the type of color space defined in the ColorSpace class. * @return single instance of ICC_Profile. - * - * @throws IllegalArgumentException is not one of the defined color - * space types. + * @throws IllegalArgumentException + * is not one of the defined color space types. */ public static ICC_Profile getInstance(int cspace) { - try { - switch (cspace) { + try { + switch (cspace) { - case ColorSpace.CS_sRGB: - if (sRGBProfile == null) { - sRGBProfile = getInstance("sRGB.pf"); //$NON-NLS-1$ - } - return sRGBProfile; + case ColorSpace.CS_sRGB: + if (sRGBProfile == null) { + sRGBProfile = getInstance("sRGB.pf"); //$NON-NLS-1$ + } + return sRGBProfile; - case ColorSpace.CS_CIEXYZ: - if (xyzProfile == null) { - xyzProfile = getInstance("CIEXYZ.pf"); //$NON-NLS-1$ - } - return xyzProfile; + case ColorSpace.CS_CIEXYZ: + if (xyzProfile == null) { + xyzProfile = getInstance("CIEXYZ.pf"); //$NON-NLS-1$ + } + return xyzProfile; - case ColorSpace.CS_GRAY: - if (grayProfile == null) { - grayProfile = getInstance("GRAY.pf"); //$NON-NLS-1$ - } - return grayProfile; + case ColorSpace.CS_GRAY: + if (grayProfile == null) { + grayProfile = getInstance("GRAY.pf"); //$NON-NLS-1$ + } + return grayProfile; - case ColorSpace.CS_PYCC: - if (pyccProfile == null) { - pyccProfile = getInstance("PYCC.pf"); //$NON-NLS-1$ - } - return pyccProfile; + case ColorSpace.CS_PYCC: + if (pyccProfile == null) { + pyccProfile = getInstance("PYCC.pf"); //$NON-NLS-1$ + } + return pyccProfile; - case ColorSpace.CS_LINEAR_RGB: - if (linearRGBProfile == null) { - linearRGBProfile = getInstance("LINEAR_RGB.pf"); //$NON-NLS-1$ + case ColorSpace.CS_LINEAR_RGB: + if (linearRGBProfile == null) { + linearRGBProfile = getInstance("LINEAR_RGB.pf"); //$NON-NLS-1$ + } + return linearRGBProfile; + } + + } catch (IOException e) { + // awt.163=Can't open color profile + throw new IllegalArgumentException(Messages.getString("Can't open color profile")); //$NON-NLS-1$ } - return linearRGBProfile; - } - } catch (IOException e) { - // awt.163=Can't open color profile - throw new IllegalArgumentException(Messages.getString("Can't open color profile")); //$NON-NLS-1$ + // awt.164=Not a predefined color space + throw new IllegalArgumentException(Messages.getString("Not a predefined color space")); //$NON-NLS-1$ } - // awt.164=Not a predefined color space - throw new IllegalArgumentException(Messages.getString("Not a predefined color space")); //$NON-NLS-1$ - } - /** * Reads an integer from the profile header at the specified position. * - * @param idx - offset in bytes from the beginning of the header - * - * @return the int from header + * @param idx + * - offset in bytes from the beginning of the header + * @return the integer value from header */ private int getIntFromHeader(int idx) { if (headerData == null) { headerData = getData(icSigHead); } - return ((headerData[idx] & 0xFF) << 24)| - ((headerData[idx+1] & 0xFF) << 16)| - ((headerData[idx+2] & 0xFF) << 8) | - ((headerData[idx+3] & 0xFF)); + return ((headerData[idx] & 0xFF) << 24) | ((headerData[idx + 1] & 0xFF) << 16) + | ((headerData[idx + 2] & 0xFF) << 8) | ((headerData[idx + 3] & 0xFF)); } /** * Reads byte from the profile header at the specified position. * - * @param idx - offset in bytes from the beginning of the header - * + * @param idx + * - offset in bytes from the beginning of the header * @return the byte from header */ private byte getByteFromHeader(int idx) { @@ -1039,11 +1289,11 @@ public class ICC_Profile implements Serializable { } /** - * Converts ICC color space signature to the java predefined - * color space type. - * - * @param signature the signature + * Converts ICC color space signature to the java predefined color space + * type. * + * @param signature + * the signature * @return the int */ private int csFromSignature(int signature) { @@ -1102,7 +1352,7 @@ public class ICC_Profile implements Serializable { } // awt.165=Color space doesn't comply with ICC specification - throw new IllegalArgumentException (Messages.getString("awt.165")); //$NON-NLS-1$ + throw new IllegalArgumentException(Messages.getString("awt.165")); //$NON-NLS-1$ } /** @@ -1118,22 +1368,19 @@ public class ICC_Profile implements Serializable { /** * Gets the data size. * - * @param tagSignature the tag signature - * + * @param tagSignature + * the tag signature * @return the data size */ private int getDataSize(int tagSignature) { - return NativeCMM.cmmGetProfileElementSize( - profileHandle, - tagSignature - ); + return NativeCMM.cmmGetProfileElementSize(profileHandle, tagSignature); } /** * Reads XYZ value from the tag data. * - * @param tagSignature the tag signature - * + * @param tagSignature + * the tag signature * @return the XYZ value */ float[] getXYZValue(int tagSignature) { @@ -1153,20 +1400,20 @@ public class ICC_Profile implements Serializable { /** * Gets the media white point. * - * @return the media white point + * @return the media white point. */ float[] getMediaWhitePoint() { return getXYZValue(icSigMediaWhitePointTag); } /** - * If TRC is not a table returns gamma via return value - * and sets dataTRC to null. If TRC is a table returns 0 - * and fills dataTRC with values. - * - * @param tagSignature the tag signature - * @param dataTRC the data trc + * If TRC is not a table returns gamma via return value and sets dataTRC to + * null. If TRC is a table returns 0 and fills dataTRC with values. * + * @param tagSignature + * the tag signature + * @param dataTRC + * the data trc * @return - gamma or zero if TRC is a table */ private float getGammaOrTRC(int tagSignature, short[] dataTRC) { @@ -1195,8 +1442,8 @@ public class ICC_Profile implements Serializable { /** * Gets the gamma. * - * @param tagSignature the tag signature - * + * @param tagSignature + * the tag signature * @return the gamma */ float getGamma(int tagSignature) { @@ -1211,10 +1458,10 @@ public class ICC_Profile implements Serializable { } /** - * Gets the tRC. - * - * @param tagSignature the tag signature + * Gets the TRC. * + * @param tagSignature + * the tag signature * @return the tRC */ short[] getTRC(int tagSignature) { @@ -1228,4 +1475,3 @@ public class ICC_Profile implements Serializable { return dataTRC; } } - diff --git a/awt/java/awt/color/ICC_ProfileGray.java b/awt/java/awt/color/ICC_ProfileGray.java index f009b18..f748101 100644 --- a/awt/java/awt/color/ICC_ProfileGray.java +++ b/awt/java/awt/color/ICC_ProfileGray.java @@ -22,21 +22,26 @@ package java.awt.color; /** * The ICC_ProfileGray class represent profiles with TYPE_GRAY color space type, - * and includes the grayTRCTag and mediaWhitePointTag tags. + * and includes the grayTRCTag and mediaWhitePointTag tags. The gray component + * can be transformed from a GRAY device profile color space to the CIEXYZ + * Profile through the tone reproduction curve (TRC): + * <p> + * PCSY = grayTRC[deviceGray] * - * The gray component can be transformed from a GRAY device profile color space - * to the CIEXYZ Profile through the tone reproduction curve (TRC): - * <p>PCSY = grayTRC[deviceGray] + * @since Android 1.0 */ public class ICC_ProfileGray extends ICC_Profile { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -1124721290732002649L; /** * Instantiates a new iC c_ profile gray. * - * @param profileHandle the profile handle + * @param profileHandle + * the profile handle */ ICC_ProfileGray(long profileHandle) { super(profileHandle); @@ -45,12 +50,17 @@ public class ICC_ProfileGray extends ICC_Profile { /** * Gets the TRC as an array of shorts. * - * @return a short array of the TRC. + * @return the short array of the TRC. */ public short[] getTRC() { return super.getTRC(icSigGrayTRCTag); } + /** + * Gets the media white point. + * + * @return the media white point + */ @Override public float[] getMediaWhitePoint() { return super.getMediaWhitePoint(); diff --git a/awt/java/awt/color/ICC_ProfileRGB.java b/awt/java/awt/color/ICC_ProfileRGB.java index beb1a0c..9c6010f 100644 --- a/awt/java/awt/color/ICC_ProfileRGB.java +++ b/awt/java/awt/color/ICC_ProfileRGB.java @@ -23,38 +23,58 @@ package java.awt.color; import org.apache.harmony.awt.internal.nls.Messages; /** - * The ICC_ProfileRGB class represents profiles with RGB color space type and - * contains the redColorantTag, greenColorantTag, blueColorantTag, redTRCTag, + * The ICC_ProfileRGB class represents profiles with RGB color space type and + * contains the redColorantTag, greenColorantTag, blueColorantTag, redTRCTag, * greenTRCTag, blueTRCTag, and mediaWhitePointTag tags. + * + * @since Android 1.0 */ public class ICC_ProfileRGB extends ICC_Profile { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = 8505067385152579334L; /** - * Instantiates a new iC c_ profile rgb. + * Instantiates a new RGB ICC_Profile. * - * @param profileHandle the profile handle + * @param profileHandle + * the profile handle */ ICC_ProfileRGB(long profileHandle) { super(profileHandle); } - /** The Constant REDCOMPONENT indicates the red component. */ + /** + * The Constant REDCOMPONENT indicates the red component. + */ public static final int REDCOMPONENT = 0; - /** The Constant GREENCOMPONENT indicates the green component. */ + /** + * The Constant GREENCOMPONENT indicates the green component. + */ public static final int GREENCOMPONENT = 1; - /** The Constant BLUECOMPONENT indicates the blue component. */ + /** + * The Constant BLUECOMPONENT indicates the blue component. + */ public static final int BLUECOMPONENT = 2; // awt.15E=Unknown component. Must be REDCOMPONENT, GREENCOMPONENT or BLUECOMPONENT. - /** The Constant UNKNOWN_COMPONENT_MSG. */ + /** + * The Constant UNKNOWN_COMPONENT_MSG. + */ private static final String UNKNOWN_COMPONENT_MSG = Messages .getString("awt.15E"); //$NON-NLS-1$ + /** + * Gets the TRC. + * + * @param component + * the tag signature. + * @return the TRC value. + */ @Override public short[] getTRC(int component) { switch (component) { @@ -70,6 +90,13 @@ public class ICC_ProfileRGB extends ICC_Profile { throw new IllegalArgumentException(UNKNOWN_COMPONENT_MSG); } + /** + * Gets the gamma. + * + * @param component + * the tag signature. + * @return the gamma value. + */ @Override public float getGamma(int component) { switch (component) { @@ -86,11 +113,11 @@ public class ICC_ProfileRGB extends ICC_Profile { } /** - * Gets a float matrix which contains the X, Y, and Z components of - * the profile's redColorantTag, greenColorantTag, and blueColorantTag. + * Gets a float matrix which contains the X, Y, and Z components of the + * profile's redColorantTag, greenColorantTag, and blueColorantTag. * - * @return a float matrix which contains the X, Y, and Z components of - * the profile's redColorantTag, greenColorantTag, and blueColorantTag. + * @return the float matrix which contains the X, Y, and Z components of the + * profile's redColorantTag, greenColorantTag, and blueColorantTag. */ public float[][] getMatrix() { float [][] m = new float[3][3]; // The matrix @@ -114,6 +141,11 @@ public class ICC_ProfileRGB extends ICC_Profile { return m; } + /** + * Gets the media white point. + * + * @return the media white point. + */ @Override public float[] getMediaWhitePoint() { return super.getMediaWhitePoint(); diff --git a/awt/java/awt/color/ProfileDataException.java b/awt/java/awt/color/ProfileDataException.java index ca169fe..335f314 100644 --- a/awt/java/awt/color/ProfileDataException.java +++ b/awt/java/awt/color/ProfileDataException.java @@ -21,18 +21,23 @@ package java.awt.color; /** - * The ProfileDataException class represents an error which occurs - * while accessing or processing an ICC_Profile object. + * The ProfileDataException class represents an error which occurs while + * accessing or processing an ICC_Profile object. + * + * @since Android 1.0 */ public class ProfileDataException extends RuntimeException { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = 7286140888240322498L; /** * Instantiates a new profile data exception with detailed message. * - * @param s the detailed message. + * @param s + * the detailed message of the exception. */ public ProfileDataException(String s) { super(s); diff --git a/awt/java/awt/color/package.html b/awt/java/awt/color/package.html new file mode 100644 index 0000000..609d963 --- /dev/null +++ b/awt/java/awt/color/package.html @@ -0,0 +1,8 @@ +<html> + <body> + <p> + This package contains classes representing color spaces and profiles based on the International Color Consortium (ICC) Profile Format Specification. + </p> + @since Android 1.0 + </body> +</html> diff --git a/awt/java/awt/event/AWTEventListener.java b/awt/java/awt/event/AWTEventListener.java index f621c9b..76293b3 100644 --- a/awt/java/awt/event/AWTEventListener.java +++ b/awt/java/awt/event/AWTEventListener.java @@ -23,6 +23,12 @@ package java.awt.event; import java.awt.AWTEvent; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface AWTEventListener extends EventListener { public void eventDispatched(AWTEvent event); diff --git a/awt/java/awt/event/AWTEventListenerProxy.java b/awt/java/awt/event/AWTEventListenerProxy.java index 5ee5e59..3edc41f 100644 --- a/awt/java/awt/event/AWTEventListenerProxy.java +++ b/awt/java/awt/event/AWTEventListenerProxy.java @@ -26,6 +26,12 @@ import java.util.EventListenerProxy; import org.apache.harmony.awt.internal.nls.Messages; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class AWTEventListenerProxy extends EventListenerProxy implements AWTEventListener { private AWTEventListener listener; diff --git a/awt/java/awt/event/ActionEvent.java b/awt/java/awt/event/ActionEvent.java index c32fc4b..e882e0d 100644 --- a/awt/java/awt/event/ActionEvent.java +++ b/awt/java/awt/event/ActionEvent.java @@ -22,6 +22,12 @@ package java.awt.event; import java.awt.AWTEvent; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class ActionEvent extends AWTEvent { private static final long serialVersionUID = -7671078796273832149L; diff --git a/awt/java/awt/event/ActionListener.java b/awt/java/awt/event/ActionListener.java index 473d2b6..a6eee7a 100644 --- a/awt/java/awt/event/ActionListener.java +++ b/awt/java/awt/event/ActionListener.java @@ -22,6 +22,12 @@ package java.awt.event; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface ActionListener extends EventListener { public void actionPerformed(ActionEvent e); diff --git a/awt/java/awt/event/AdjustmentEvent.java b/awt/java/awt/event/AdjustmentEvent.java index a2b11a8..be2d6c4 100644 --- a/awt/java/awt/event/AdjustmentEvent.java +++ b/awt/java/awt/event/AdjustmentEvent.java @@ -23,6 +23,12 @@ package java.awt.event; import java.awt.AWTEvent; import java.awt.Adjustable; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class AdjustmentEvent extends AWTEvent { private static final long serialVersionUID = 5700290645205279921L; diff --git a/awt/java/awt/event/AdjustmentListener.java b/awt/java/awt/event/AdjustmentListener.java index ef7c378..5f6a724 100644 --- a/awt/java/awt/event/AdjustmentListener.java +++ b/awt/java/awt/event/AdjustmentListener.java @@ -22,6 +22,12 @@ package java.awt.event; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface AdjustmentListener extends EventListener { public void adjustmentValueChanged(AdjustmentEvent e); diff --git a/awt/java/awt/event/ComponentAdapter.java b/awt/java/awt/event/ComponentAdapter.java index 4f0bd90..c42235f 100644 --- a/awt/java/awt/event/ComponentAdapter.java +++ b/awt/java/awt/event/ComponentAdapter.java @@ -20,6 +20,12 @@ */ package java.awt.event; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public abstract class ComponentAdapter implements ComponentListener { public ComponentAdapter() { diff --git a/awt/java/awt/event/ComponentEvent.java b/awt/java/awt/event/ComponentEvent.java index d0bca54..760d3ab 100644 --- a/awt/java/awt/event/ComponentEvent.java +++ b/awt/java/awt/event/ComponentEvent.java @@ -23,6 +23,12 @@ package java.awt.event; import java.awt.AWTEvent; import java.awt.Component; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class ComponentEvent extends AWTEvent { private static final long serialVersionUID = 8101406823902992965L; diff --git a/awt/java/awt/event/ComponentListener.java b/awt/java/awt/event/ComponentListener.java index 147e9e0..a5adba2 100644 --- a/awt/java/awt/event/ComponentListener.java +++ b/awt/java/awt/event/ComponentListener.java @@ -22,6 +22,12 @@ package java.awt.event; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface ComponentListener extends EventListener { public void componentHidden(ComponentEvent e); diff --git a/awt/java/awt/event/ContainerAdapter.java b/awt/java/awt/event/ContainerAdapter.java index 12dc3de..44983c7 100644 --- a/awt/java/awt/event/ContainerAdapter.java +++ b/awt/java/awt/event/ContainerAdapter.java @@ -20,6 +20,12 @@ */ package java.awt.event; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public abstract class ContainerAdapter implements ContainerListener { public ContainerAdapter() { diff --git a/awt/java/awt/event/ContainerEvent.java b/awt/java/awt/event/ContainerEvent.java index 1a1055c..372c9e4 100644 --- a/awt/java/awt/event/ContainerEvent.java +++ b/awt/java/awt/event/ContainerEvent.java @@ -23,6 +23,12 @@ package java.awt.event; import java.awt.Component; //???AWT: import java.awt.Container; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class ContainerEvent extends ComponentEvent { private static final long serialVersionUID = -4114942250539772041L; diff --git a/awt/java/awt/event/ContainerListener.java b/awt/java/awt/event/ContainerListener.java index bf47664..517859e 100644 --- a/awt/java/awt/event/ContainerListener.java +++ b/awt/java/awt/event/ContainerListener.java @@ -22,6 +22,12 @@ package java.awt.event; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface ContainerListener extends EventListener { public void componentAdded(ContainerEvent e); diff --git a/awt/java/awt/event/FocusAdapter.java b/awt/java/awt/event/FocusAdapter.java index 3489e11..3a3e37f 100644 --- a/awt/java/awt/event/FocusAdapter.java +++ b/awt/java/awt/event/FocusAdapter.java @@ -20,6 +20,12 @@ */ package java.awt.event; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public abstract class FocusAdapter implements FocusListener { public FocusAdapter() { diff --git a/awt/java/awt/event/FocusEvent.java b/awt/java/awt/event/FocusEvent.java index 1db5263..4a18689 100644 --- a/awt/java/awt/event/FocusEvent.java +++ b/awt/java/awt/event/FocusEvent.java @@ -22,6 +22,12 @@ package java.awt.event; import java.awt.Component; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class FocusEvent extends ComponentEvent { private static final long serialVersionUID = 523753786457416396L; diff --git a/awt/java/awt/event/FocusListener.java b/awt/java/awt/event/FocusListener.java index ee98d90..6bbbd00 100644 --- a/awt/java/awt/event/FocusListener.java +++ b/awt/java/awt/event/FocusListener.java @@ -22,6 +22,12 @@ package java.awt.event; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface FocusListener extends EventListener { public void focusGained(FocusEvent e); diff --git a/awt/java/awt/event/HierarchyBoundsAdapter.java b/awt/java/awt/event/HierarchyBoundsAdapter.java index 24e3d9d..bbfe8ff 100644 --- a/awt/java/awt/event/HierarchyBoundsAdapter.java +++ b/awt/java/awt/event/HierarchyBoundsAdapter.java @@ -20,6 +20,12 @@ */ package java.awt.event; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public abstract class HierarchyBoundsAdapter implements HierarchyBoundsListener { public HierarchyBoundsAdapter() { diff --git a/awt/java/awt/event/HierarchyBoundsListener.java b/awt/java/awt/event/HierarchyBoundsListener.java index 4288f52..3e8f2e7 100644 --- a/awt/java/awt/event/HierarchyBoundsListener.java +++ b/awt/java/awt/event/HierarchyBoundsListener.java @@ -22,6 +22,12 @@ package java.awt.event; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface HierarchyBoundsListener extends EventListener { public void ancestorMoved(HierarchyEvent e); diff --git a/awt/java/awt/event/HierarchyEvent.java b/awt/java/awt/event/HierarchyEvent.java index 1881667..c1d22f4 100644 --- a/awt/java/awt/event/HierarchyEvent.java +++ b/awt/java/awt/event/HierarchyEvent.java @@ -24,6 +24,12 @@ import java.awt.AWTEvent; import java.awt.Component; //???AWT: import java.awt.Container; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class HierarchyEvent extends AWTEvent { private static final long serialVersionUID = -5337576970038043990L; diff --git a/awt/java/awt/event/HierarchyListener.java b/awt/java/awt/event/HierarchyListener.java index e01ba11..ff3d9bc 100644 --- a/awt/java/awt/event/HierarchyListener.java +++ b/awt/java/awt/event/HierarchyListener.java @@ -22,6 +22,12 @@ package java.awt.event; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface HierarchyListener extends EventListener { public void hierarchyChanged(HierarchyEvent e); diff --git a/awt/java/awt/event/InputEvent.java b/awt/java/awt/event/InputEvent.java index c98382d..343b7a3 100644 --- a/awt/java/awt/event/InputEvent.java +++ b/awt/java/awt/event/InputEvent.java @@ -22,6 +22,12 @@ package java.awt.event; import java.awt.Component; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public abstract class InputEvent extends ComponentEvent { private static final long serialVersionUID = -2482525981698309786L; diff --git a/awt/java/awt/event/InputMethodEvent.java b/awt/java/awt/event/InputMethodEvent.java index a5cac4e..be001a5 100644 --- a/awt/java/awt/event/InputMethodEvent.java +++ b/awt/java/awt/event/InputMethodEvent.java @@ -27,6 +27,12 @@ import java.text.AttributedCharacterIterator; import org.apache.harmony.awt.internal.nls.Messages; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class InputMethodEvent extends AWTEvent { private static final long serialVersionUID = 4727190874778922661L; diff --git a/awt/java/awt/event/InputMethodListener.java b/awt/java/awt/event/InputMethodListener.java index 0ab6918..85eaa7e 100644 --- a/awt/java/awt/event/InputMethodListener.java +++ b/awt/java/awt/event/InputMethodListener.java @@ -22,6 +22,12 @@ package java.awt.event; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface InputMethodListener extends EventListener { public void caretPositionChanged(InputMethodEvent e); diff --git a/awt/java/awt/event/InvocationEvent.java b/awt/java/awt/event/InvocationEvent.java index 59346ed..58e3b72 100644 --- a/awt/java/awt/event/InvocationEvent.java +++ b/awt/java/awt/event/InvocationEvent.java @@ -25,6 +25,12 @@ import java.awt.ActiveEvent; import org.apache.harmony.awt.internal.nls.Messages; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class InvocationEvent extends AWTEvent implements ActiveEvent { private static final long serialVersionUID = 436056344909459450L; diff --git a/awt/java/awt/event/ItemEvent.java b/awt/java/awt/event/ItemEvent.java index 842da14..09908f2 100644 --- a/awt/java/awt/event/ItemEvent.java +++ b/awt/java/awt/event/ItemEvent.java @@ -23,6 +23,12 @@ package java.awt.event; import java.awt.AWTEvent; import java.awt.ItemSelectable; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class ItemEvent extends AWTEvent { private static final long serialVersionUID = -608708132447206933L; diff --git a/awt/java/awt/event/ItemListener.java b/awt/java/awt/event/ItemListener.java index 33633be..8dec673 100644 --- a/awt/java/awt/event/ItemListener.java +++ b/awt/java/awt/event/ItemListener.java @@ -22,6 +22,12 @@ package java.awt.event; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface ItemListener extends EventListener { public void itemStateChanged(ItemEvent e); diff --git a/awt/java/awt/event/KeyAdapter.java b/awt/java/awt/event/KeyAdapter.java index 423b5c9..a96cca8 100644 --- a/awt/java/awt/event/KeyAdapter.java +++ b/awt/java/awt/event/KeyAdapter.java @@ -20,6 +20,12 @@ */ package java.awt.event; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public abstract class KeyAdapter implements KeyListener { public KeyAdapter() { diff --git a/awt/java/awt/event/KeyEvent.java b/awt/java/awt/event/KeyEvent.java index 056c64c..8627f70 100644 --- a/awt/java/awt/event/KeyEvent.java +++ b/awt/java/awt/event/KeyEvent.java @@ -27,6 +27,12 @@ import java.lang.reflect.Modifier; import org.apache.harmony.awt.internal.nls.Messages; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class KeyEvent extends InputEvent { private static final long serialVersionUID = -2352130953028126954L; diff --git a/awt/java/awt/event/KeyListener.java b/awt/java/awt/event/KeyListener.java index f20fc90..ec144df 100644 --- a/awt/java/awt/event/KeyListener.java +++ b/awt/java/awt/event/KeyListener.java @@ -22,6 +22,12 @@ package java.awt.event; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface KeyListener extends EventListener { public void keyPressed(KeyEvent e); diff --git a/awt/java/awt/event/MouseAdapter.java b/awt/java/awt/event/MouseAdapter.java index 4973956..dc19173 100644 --- a/awt/java/awt/event/MouseAdapter.java +++ b/awt/java/awt/event/MouseAdapter.java @@ -20,6 +20,12 @@ */ package java.awt.event; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public abstract class MouseAdapter implements MouseListener { public MouseAdapter() { diff --git a/awt/java/awt/event/MouseEvent.java b/awt/java/awt/event/MouseEvent.java index 0b776f9..2b1fa8b 100644 --- a/awt/java/awt/event/MouseEvent.java +++ b/awt/java/awt/event/MouseEvent.java @@ -26,6 +26,12 @@ import java.awt.Toolkit; import org.apache.harmony.awt.internal.nls.Messages; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class MouseEvent extends InputEvent { private static final long serialVersionUID = -991214153494842848L; diff --git a/awt/java/awt/event/MouseListener.java b/awt/java/awt/event/MouseListener.java index 5d32b0f..95879b9 100644 --- a/awt/java/awt/event/MouseListener.java +++ b/awt/java/awt/event/MouseListener.java @@ -22,6 +22,12 @@ package java.awt.event; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface MouseListener extends EventListener { public void mouseClicked(MouseEvent e); diff --git a/awt/java/awt/event/MouseMotionAdapter.java b/awt/java/awt/event/MouseMotionAdapter.java index a4bebcc..1ecd0d5 100644 --- a/awt/java/awt/event/MouseMotionAdapter.java +++ b/awt/java/awt/event/MouseMotionAdapter.java @@ -20,6 +20,12 @@ */ package java.awt.event; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public abstract class MouseMotionAdapter implements MouseMotionListener { public MouseMotionAdapter() { diff --git a/awt/java/awt/event/MouseMotionListener.java b/awt/java/awt/event/MouseMotionListener.java index a5c11da..e1313c3 100644 --- a/awt/java/awt/event/MouseMotionListener.java +++ b/awt/java/awt/event/MouseMotionListener.java @@ -22,6 +22,12 @@ package java.awt.event; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface MouseMotionListener extends EventListener { public void mouseDragged(MouseEvent e); diff --git a/awt/java/awt/event/MouseWheelEvent.java b/awt/java/awt/event/MouseWheelEvent.java index d3ac9d8..a3ed424 100644 --- a/awt/java/awt/event/MouseWheelEvent.java +++ b/awt/java/awt/event/MouseWheelEvent.java @@ -22,6 +22,12 @@ package java.awt.event; import java.awt.Component; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class MouseWheelEvent extends MouseEvent { private static final long serialVersionUID = -9187413581993563929L; diff --git a/awt/java/awt/event/MouseWheelListener.java b/awt/java/awt/event/MouseWheelListener.java index 8ca1c8b..2d6a982 100644 --- a/awt/java/awt/event/MouseWheelListener.java +++ b/awt/java/awt/event/MouseWheelListener.java @@ -22,6 +22,12 @@ package java.awt.event; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface MouseWheelListener extends EventListener { public void mouseWheelMoved(MouseWheelEvent e); diff --git a/awt/java/awt/event/PaintEvent.java b/awt/java/awt/event/PaintEvent.java index d0573e1..22ac090 100644 --- a/awt/java/awt/event/PaintEvent.java +++ b/awt/java/awt/event/PaintEvent.java @@ -23,6 +23,12 @@ package java.awt.event; import java.awt.Component; import java.awt.Rectangle; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class PaintEvent extends ComponentEvent { private static final long serialVersionUID = 1267492026433337593L; diff --git a/awt/java/awt/event/TextEvent.java b/awt/java/awt/event/TextEvent.java index e2bfd96..2a690ad 100644 --- a/awt/java/awt/event/TextEvent.java +++ b/awt/java/awt/event/TextEvent.java @@ -22,6 +22,12 @@ package java.awt.event; import java.awt.AWTEvent; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class TextEvent extends AWTEvent { private static final long serialVersionUID = 6269902291250941179L; diff --git a/awt/java/awt/event/TextListener.java b/awt/java/awt/event/TextListener.java index 6c5a671..05757c4 100644 --- a/awt/java/awt/event/TextListener.java +++ b/awt/java/awt/event/TextListener.java @@ -22,6 +22,12 @@ package java.awt.event; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface TextListener extends EventListener { public void textValueChanged(TextEvent e); diff --git a/awt/java/awt/event/WindowAdapter.java b/awt/java/awt/event/WindowAdapter.java index 9d4b377..970aa8d 100644 --- a/awt/java/awt/event/WindowAdapter.java +++ b/awt/java/awt/event/WindowAdapter.java @@ -20,6 +20,12 @@ */ package java.awt.event; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public abstract class WindowAdapter implements WindowListener, WindowStateListener, WindowFocusListener { public WindowAdapter() { diff --git a/awt/java/awt/event/WindowEvent.java b/awt/java/awt/event/WindowEvent.java index 65a30e4..474d2ac 100644 --- a/awt/java/awt/event/WindowEvent.java +++ b/awt/java/awt/event/WindowEvent.java @@ -25,6 +25,12 @@ package java.awt.event; //import java.awt.Window; //import java.awt.Frame; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class WindowEvent extends ComponentEvent { private static final long serialVersionUID = -1567959133147912127L; diff --git a/awt/java/awt/event/WindowFocusListener.java b/awt/java/awt/event/WindowFocusListener.java index e0200f2..528459f 100644 --- a/awt/java/awt/event/WindowFocusListener.java +++ b/awt/java/awt/event/WindowFocusListener.java @@ -22,6 +22,12 @@ package java.awt.event; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface WindowFocusListener extends EventListener { public void windowGainedFocus(WindowEvent e); diff --git a/awt/java/awt/event/WindowListener.java b/awt/java/awt/event/WindowListener.java index 20a2b08..31bd547 100644 --- a/awt/java/awt/event/WindowListener.java +++ b/awt/java/awt/event/WindowListener.java @@ -22,6 +22,12 @@ package java.awt.event; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface WindowListener extends EventListener { public void windowActivated(WindowEvent e); diff --git a/awt/java/awt/event/WindowStateListener.java b/awt/java/awt/event/WindowStateListener.java index 12dbc20..ba14d9e 100644 --- a/awt/java/awt/event/WindowStateListener.java +++ b/awt/java/awt/event/WindowStateListener.java @@ -22,6 +22,12 @@ package java.awt.event; import java.util.EventListener; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface WindowStateListener extends EventListener { public void windowStateChanged(WindowEvent e); diff --git a/awt/java/awt/font/FontRenderContext.java b/awt/java/awt/font/FontRenderContext.java index 766300d..d7de00f 100644 --- a/awt/java/awt/font/FontRenderContext.java +++ b/awt/java/awt/font/FontRenderContext.java @@ -23,23 +23,30 @@ package java.awt.font; import java.awt.geom.AffineTransform; /** - * The FontRenderContext class contains the information - * about text measurement. Anti-aliasing and fractional-metrics - * modes are defined by an application and affect the size of - * a character. + * The FontRenderContext class contains the information about text measurement. + * Anti-aliasing and fractional-metrics modes are defined by an application and + * affect the size of a character. + * + * @since Android 1.0 */ public class FontRenderContext { // Affine transform of this mode - /** The transform. */ + /** + * The transform. + */ private AffineTransform transform; // Is the anti-aliased mode used - /** The anti aliased. */ + /** + * The anti aliased. + */ private boolean fAntiAliased; // Is the fractional metrics used - /** The fractional metrics. */ + /** + * The fractional metrics. + */ private boolean fFractionalMetrics; @@ -47,9 +54,12 @@ public class FontRenderContext { * Instantiates a new FontRenderContext object with the specified * AffineTransform, anti-aliasing and fractional metrics flags. * - * @param trans the AffineTransform. - * @param antiAliased the anti-aliasing flag. - * @param usesFractionalMetrics the fractional metrics flag. + * @param trans + * the AffineTransform. + * @param antiAliased + * the anti-aliasing flag. + * @param usesFractionalMetrics + * the fractional metrics flag. */ public FontRenderContext(AffineTransform trans, boolean antiAliased, boolean usesFractionalMetrics) { @@ -67,12 +77,12 @@ public class FontRenderContext { } /** - * Compares the specified Object with current FontRenderContext object. - * - * @param obj the Object to be compared. + * Compares the specified Object with current FontRenderContext object. * + * @param obj + * the Object to be compared. * @return true, if the specified Object is equal to current - * FontRenderContext object. + * FontRenderContext object. */ @Override public boolean equals(Object obj) { @@ -92,11 +102,11 @@ public class FontRenderContext { } /** - * Gets the transform which is used for scaling typographical points - * to pixels in this FontRenderContext. + * Gets the transform which is used for scaling typographical points to + * pixels in this FontRenderContext. * - * @return the AffineTransform which is used for scaling typographical - * points to pixels in this FontRenderContext. + * @return the AffineTransform which is used for scaling typographical + * points to pixels in this FontRenderContext. */ public AffineTransform getTransform() { if (transform != null){ @@ -106,13 +116,13 @@ public class FontRenderContext { } /** - * Compares the specified FontRenderContext object with current + * Compares the specified FontRenderContext object with current * FontRenderContext. * - * @param frc the FontRenderContext object to be compared. - * - * @return true, if the specified FontRenderContext object is - * equal to current FontRenderContext. + * @param frc + * the FontRenderContext object to be compared. + * @return true, if the specified FontRenderContext object is equal to + * current FontRenderContext. */ public boolean equals(FontRenderContext frc) { if (this == frc){ @@ -132,11 +142,11 @@ public class FontRenderContext { } /** - * Returns true if the text fractional metrics are used in - * this FontRenderContext. + * Returns true if the text fractional metrics are used in this + * FontRenderContext. * - * @return true, if the text fractional metrics are used in - * this FontRenderContext, false otherwise. + * @return true, if the text fractional metrics are used in this + * FontRenderContext, false otherwise. */ public boolean usesFractionalMetrics() { return this.fFractionalMetrics; @@ -146,7 +156,7 @@ public class FontRenderContext { * Returns true if anti-aliasing is used in this FontRenderContext. * * @return true, if is anti-aliasing is used in this FontRenderContext, - * false otherwise. + * false otherwise. */ public boolean isAntiAliased() { return this.fAntiAliased; diff --git a/awt/java/awt/font/GlyphJustificationInfo.java b/awt/java/awt/font/GlyphJustificationInfo.java index 4c3e02e..b03de0a 100644 --- a/awt/java/awt/font/GlyphJustificationInfo.java +++ b/awt/java/awt/font/GlyphJustificationInfo.java @@ -18,124 +18,134 @@ * @author Ilya S. Okomin * @version $Revision$ */ + package java.awt.font; import org.apache.harmony.awt.internal.nls.Messages; /** - * The GlyphJustificationInfo class provides information about - * the glyph's justification properties. There are four justification - * properties: weight, priority, absorb, and limit. + * The GlyphJustificationInfo class provides information about the glyph's + * justification properties. There are four justification properties: weight, + * priority, absorb, and limit. * <p> - * There are two sets of metrics: growing and shrinking. - * Growing metrics are used when the glyphs are to be spread apart - * to fit a larger width. Shrinking metrics are used when the glyphs - * are to be moved together to fit a smaller width. + * There are two sets of metrics: growing and shrinking. Growing metrics are + * used when the glyphs are to be spread apart to fit a larger width. Shrinking + * metrics are used when the glyphs are to be moved together to fit a smaller + * width. + * </p> + * + * @since Android 1.0 */ public final class GlyphJustificationInfo { - /** - * The Constant PRIORITY_KASHIDA indicates the highest - * justification priority. + /** + * The Constant PRIORITY_KASHIDA indicates the highest justification + * priority. */ public static final int PRIORITY_KASHIDA = 0; /** - * The Constant PRIORITY_WHITESPACE indicates the second highest - * justification priority. + * The Constant PRIORITY_WHITESPACE indicates the second highest + * justification priority. */ public static final int PRIORITY_WHITESPACE = 1; - /** - * The Constant PRIORITY_INTERCHAR indicates the second lowest - * justification priority. + /** + * The Constant PRIORITY_INTERCHAR indicates the second lowest justification + * priority. */ public static final int PRIORITY_INTERCHAR = 2; /** - * The Constant PRIORITY_NONE indicates the lowest justification - * priority. + * The Constant PRIORITY_NONE indicates the lowest justification priority. */ public static final int PRIORITY_NONE = 3; - /** - * The grow absorb flag indicates if this glyph absorbs all extra - * space at this and lower priority levels when it grows. + /** + * The grow absorb flag indicates if this glyph absorbs all extra space at + * this and lower priority levels when it grows. */ public final boolean growAbsorb; - /** - * The grow left limit value represents the maximum value by which - * the left side of this glyph grows. + /** + * The grow left limit value represents the maximum value by which the left + * side of this glyph grows. */ public final float growLeftLimit; - /** - * The grow right limit value repesents the maximum value by which - * the right side of this glyph grows. + /** + * The grow right limit value repesents the maximum value by which the right + * side of this glyph grows. */ public final float growRightLimit; - /** - * The grow priority value represents the priority level of this - * glyph as it is growing. + /** + * The grow priority value represents the priority level of this glyph as it + * is growing. */ public final int growPriority; - /** - * The shrink absorb fleg indicates this glyph absorbs all remaining - * shrinkage at this and lower priority levels as it shrinks. + /** + * The shrink absorb fleg indicates this glyph absorbs all remaining + * shrinkage at this and lower priority levels as it shrinks. */ public final boolean shrinkAbsorb; - /** - * The shrink left limit value represents the maximum value by which - * the left side of this glyph shrinks. + /** + * The shrink left limit value represents the maximum value by which the + * left side of this glyph shrinks. */ public final float shrinkLeftLimit; - /** - * The shrink right limit value represents the maximum value by which - * the right side of this glyph shrinks. + /** + * The shrink right limit value represents the maximum value by which the + * right side of this glyph shrinks. */ public final float shrinkRightLimit; /** - * The shrink priority represents the glyth's priority level - * as it is shrinking. + * The shrink priority represents the glyth's priority level as it is + * shrinking. */ public final int shrinkPriority; - /** - * The weight of the glyph. + /** + * The weight of the glyph. */ public final float weight; /** - * Instantiates a new GlyphJustificationInfo object which contains - * glyph's justification properties. + * Instantiates a new GlyphJustificationInfo object which contains glyph's + * justification properties. * - * @param weight the weight of glyph. - * @param growAbsorb indicates if this glyph contais all space - * at this priority and lower priority levels when it grows. - * @param growPriority indicates the priority level of this glyph - * when it grows. - * @param growLeftLimit indicates the maximum value of which the - * left side of this glyph can grow. - * @param growRightLimit the maximum value of which the right side of - * this glyph can grow. - * @param shrinkAbsorb indicates if this glyph contains all remaining - * shrinkage at this and lower priority levels when it shrinks. - * @param shrinkPriority indicates the glyph's priority level when - * it shrinks. - * @param shrinkLeftLimit indicates the maximum value of which - * the left side of this glyph can shrink. - * @param shrinkRightLimit indicates the maximum amount by which - * the right side of this glyph can shrink. + * @param weight + * the weight of glyph. + * @param growAbsorb + * indicates if this glyph contais all space at this priority and + * lower priority levels when it grows. + * @param growPriority + * indicates the priority level of this glyph when it grows. + * @param growLeftLimit + * indicates the maximum value of which the left side of this + * glyph can grow. + * @param growRightLimit + * the maximum value of which the right side of this glyph can + * grow. + * @param shrinkAbsorb + * indicates if this glyph contains all remaining shrinkage at + * this and lower priority levels when it shrinks. + * @param shrinkPriority + * indicates the glyph's priority level when it shrinks. + * @param shrinkLeftLimit + * indicates the maximum value of which the left side of this + * glyph can shrink. + * @param shrinkRightLimit + * indicates the maximum amount by which the right side of this + * glyph can shrink. */ public GlyphJustificationInfo(float weight, boolean growAbsorb, int growPriority, - float growLeftLimit, float growRightLimit, boolean shrinkAbsorb, - int shrinkPriority, float shrinkLeftLimit, float shrinkRightLimit) { + float growLeftLimit, float growRightLimit, boolean shrinkAbsorb, int shrinkPriority, + float shrinkLeftLimit, float shrinkRightLimit) { if (weight < 0) { // awt.19C=weight must be a positive number @@ -156,13 +166,15 @@ public final class GlyphJustificationInfo { this.growRightLimit = growRightLimit; if ((shrinkPriority < 0) || (shrinkPriority > PRIORITY_NONE)) { - // awt.19F=incorrect value for shrinkPriority, more than PRIORITY_NONE or less than PRIORITY_KASHIDA value + // awt.19F=incorrect value for shrinkPriority, more than + // PRIORITY_NONE or less than PRIORITY_KASHIDA value throw new IllegalArgumentException(Messages.getString("awt.19F")); //$NON-NLS-1$ } this.shrinkPriority = shrinkPriority; if ((growPriority < 0) || (growPriority > PRIORITY_NONE)) { - // awt.200=incorrect value for growPriority, more than PRIORITY_NONE or less than PRIORITY_KASHIDA value + // awt.200=incorrect value for growPriority, more than PRIORITY_NONE + // or less than PRIORITY_KASHIDA value throw new IllegalArgumentException(Messages.getString("awt.200")); //$NON-NLS-1$ } this.growPriority = growPriority; diff --git a/awt/java/awt/font/GlyphMetrics.java b/awt/java/awt/font/GlyphMetrics.java index d96ef18..2871722 100644 --- a/awt/java/awt/font/GlyphMetrics.java +++ b/awt/java/awt/font/GlyphMetrics.java @@ -18,82 +18,98 @@ * @author Ilya S. Okomin * @version $Revision$ */ + package java.awt.font; import java.awt.geom.Rectangle2D; /** - * The GlyphMetrics class provides information about the size and shape - * of a single glyph. - * Each glyph has information to specify whether its baseline is horizontal - * or vertical as well as information on how it interacts with - * other characters in a text, given as one of the - * following types: STANDARD, LIGATURE, COMBINING, or COMPONENT. + * The GlyphMetrics class provides information about the size and shape of a + * single glyph. Each glyph has information to specify whether its baseline is + * horizontal or vertical as well as information on how it interacts with other + * characters in a text, given as one of the following types: STANDARD, + * LIGATURE, COMBINING, or COMPONENT. + * + * @since Android 1.0 */ public final class GlyphMetrics { // advance width of the glyph character cell - /** The advance x. */ + /** + * The advance x. + */ private float advanceX; - + // advance height of the glyph character cell - /** The advance y. */ + /** + * The advance y. + */ private float advanceY; // flag if the glyph horizontal - /** The horizontal. */ + /** + * The horizontal. + */ private boolean horizontal; - // glyph type code - /** The glyph type. */ + // glyph type code + /** + * The glyph type. + */ private byte glyphType; - + // bounding box for outline of the glyph - /** The bounds. */ + /** + * The bounds. + */ private Rectangle2D.Float bounds; - /** - * The Constant STANDARD indicates a glyph that represents a single - * character. + /** + * The Constant STANDARD indicates a glyph that represents a single + * character. */ public static final byte STANDARD = 0; - /** - * The Constant LIGATURE indicates a glyph that represents multiple - * characters as a ligature. + /** + * The Constant LIGATURE indicates a glyph that represents multiple + * characters as a ligature. */ public static final byte LIGATURE = 1; - /** - * The Constant COMBINING indicates a glyph which has no caret position + /** + * The Constant COMBINING indicates a glyph which has no caret position * between glyphs (for example umlaut). */ public static final byte COMBINING = 2; - /** - * The Constant COMPONENT indicates a glyph with no corresponding character + /** + * The Constant COMPONENT indicates a glyph with no corresponding character * in the backing store. */ public static final byte COMPONENT = 3; - /** - * The Constant WHITESPACE indicates a glyph without visual - * representation. + /** + * The Constant WHITESPACE indicates a glyph without visual representation. */ public static final byte WHITESPACE = 4; /** * Instantiates a new GlyphMetrics object with the specified parameters. * - * @param horizontal specifies if metrics are for a horizontal baseline - * (true value), or a vertical baseline (false value). - * @param advanceX the X component of the glyph's advance. - * @param advanceY the Y component of the glyph's advance. - * @param bounds the glyph's bounds. - * @param glyphType the glyph's type. - */ - public GlyphMetrics(boolean horizontal, float advanceX, float advanceY, - Rectangle2D bounds, byte glyphType) { + * @param horizontal + * specifies if metrics are for a horizontal baseline (true + * value), or a vertical baseline (false value). + * @param advanceX + * the X component of the glyph's advance. + * @param advanceY + * the Y component of the glyph's advance. + * @param bounds + * the glyph's bounds. + * @param glyphType + * the glyph's type. + */ + public GlyphMetrics(boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, + byte glyphType) { this.horizontal = horizontal; this.advanceX = advanceX; this.advanceY = advanceY; @@ -107,9 +123,12 @@ public final class GlyphMetrics { /** * Instantiates a new horizontal GlyphMetrics with the specified parameters. * - * @param advanceX the X component of the glyph's advance. - * @param bounds the glyph's bounds. - * @param glyphType the glyph's type. + * @param advanceX + * the X component of the glyph's advance. + * @param bounds + * the glyph's bounds. + * @param glyphType + * the glyph's type. */ public GlyphMetrics(float advanceX, Rectangle2D bounds, byte glyphType) { this.advanceX = advanceX; @@ -129,7 +148,7 @@ public final class GlyphMetrics { * @return glyph's bounds. */ public Rectangle2D getBounds2D() { - return (Rectangle2D.Float) this.bounds.clone(); + return (Rectangle2D.Float)this.bounds.clone(); } /** @@ -187,11 +206,11 @@ public final class GlyphMetrics { } /** - * Gets the distance from the right (for horizontal) or - * bottom (for vertical) of the glyph bounds to the advance. + * Gets the distance from the right (for horizontal) or bottom (for + * vertical) of the glyph bounds to the advance. * - * @return the distance from the right (for horizontal) or - * bottom (for vertical) of the glyph bounds to the advance. + * @return the distance from the right (for horizontal) or bottom (for + * vertical) of the glyph bounds to the advance. */ public float getRSB() { if (this.horizontal) { @@ -201,11 +220,11 @@ public final class GlyphMetrics { } /** - * Gets the distance from 0, 0 to the left (for horizontal) - * or top (for vertical) of the glyph bounds. + * Gets the distance from 0, 0 to the left (for horizontal) or top (for + * vertical) of the glyph bounds. * - * @return the distance from 0, 0 to the left (for horizontal) - * or top (for vertical) of the glyph bounds. + * @return the distance from 0, 0 to the left (for horizontal) or top (for + * vertical) of the glyph bounds. */ public float getLSB() { if (this.horizontal) { @@ -245,4 +264,3 @@ public final class GlyphMetrics { } } - diff --git a/awt/java/awt/font/GlyphVector.java b/awt/java/awt/font/GlyphVector.java index b3c9406..a72b774 100644 --- a/awt/java/awt/font/GlyphVector.java +++ b/awt/java/awt/font/GlyphVector.java @@ -18,6 +18,7 @@ * @author Ilya S. Okomin * @version $Revision$ */ + package java.awt.font; import java.awt.Font; @@ -32,45 +33,47 @@ import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; /** - * The GlyphVector class contains a collection of glyphs with geometric - * information and each glyph's location. Each GlyphVector can be associated - * with only one Font. GlyphVector contains the following properties for - * each glyph: + * The GlyphVector class contains a collection of glyphs with geometric + * information and each glyph's location. Each GlyphVector can be associated + * with only one Font. GlyphVector contains the following properties for each + * glyph: * <ul> * <li>the glyph position;</li> * <li>the transform of the glyph;</li> * <li>the metrics of the glyph in the context of the GlyphVector.</li> * </ul> + * + * @since Android 1.0 */ public abstract class GlyphVector implements Cloneable { - /** - * The Constant FLAG_HAS_TRANSFORMS indicates that this GlyphVector - * has per-glyph transforms. + /** + * The Constant FLAG_HAS_TRANSFORMS indicates that this GlyphVector has + * per-glyph transforms. */ public static final int FLAG_HAS_TRANSFORMS = 1; - /** - * The Constant FLAG_HAS_POSITION_ADJUSTMENTS indicates that - * the GlyphVector has per-glyph position adjustments. + /** + * The Constant FLAG_HAS_POSITION_ADJUSTMENTS indicates that the GlyphVector + * has per-glyph position adjustments. */ public static final int FLAG_HAS_POSITION_ADJUSTMENTS = 2; - /** - * The Constant FLAG_RUN_RTL indicates that this GlyphVector has a - * right to left run direction. + /** + * The Constant FLAG_RUN_RTL indicates that this GlyphVector has a right to + * left run direction. */ public static final int FLAG_RUN_RTL = 4; - /** - * The Constant FLAG_COMPLEX_GLYPHS indicates that this GlyphVector - * has a complex glyph to char mapping. + /** + * The Constant FLAG_COMPLEX_GLYPHS indicates that this GlyphVector has a + * complex glyph to char mapping. */ public static final int FLAG_COMPLEX_GLYPHS = 8; - /** - * The Constant FLAG_MASK indicates a mask for supported flags - * from getLayoutFlags. + /** + * The Constant FLAG_MASK indicates a mask for supported flags from + * getLayoutFlags. */ public static final int FLAG_MASK = 15; // (|) mask of other flags @@ -81,17 +84,19 @@ public abstract class GlyphVector implements Cloneable { } /** - * Gets the pixel bounds of the GlyphVector when rendered - * at the specified location with the specified FontRenderContext. - * - * @param frc the FontRenderContext. - * @param x the X coordinate of the GlyphVector's location. - * @param y the Y coordinate of the GlyphVector's location. - * + * Gets the pixel bounds of the GlyphVector when rendered at the specified + * location with the specified FontRenderContext. + * + * @param frc + * the FontRenderContext. + * @param x + * the X coordinate of the GlyphVector's location. + * @param y + * the Y coordinate of the GlyphVector's location. * @return the pixel bounds */ public Rectangle getPixelBounds(FontRenderContext frc, float x, float y) { - // default implementation - integer Rectangle, that encloses visual + // default implementation - integer Rectangle, that encloses visual // bounds rectangle Rectangle2D visualRect = getVisualBounds(); @@ -104,19 +109,21 @@ public abstract class GlyphVector implements Cloneable { } /** - * Gets the pixel bounds of the glyph with the specified index in - * this GlyphVector which is rendered with the specified - * FontRenderContext at the specified location. - * - * @param index the glyph index in this GlyphVector. - * @param frc the FontRenderContext. - * @param x the X coordinate of the GlyphVector's location. - * @param y the Y coordinate of the GlyphVector's location. - * + * Gets the pixel bounds of the glyph with the specified index in this + * GlyphVector which is rendered with the specified FontRenderContext at the + * specified location. + * + * @param index + * the glyph index in this GlyphVector. + * @param frc + * the FontRenderContext. + * @param x + * the X coordinate of the GlyphVector's location. + * @param y + * the Y coordinate of the GlyphVector's location. * @return a Rectangle bounds. */ - public Rectangle getGlyphPixelBounds(int index, FontRenderContext frc, - float x, float y) { + public Rectangle getGlyphPixelBounds(int index, FontRenderContext frc, float x, float y) { Rectangle2D visualRect = getGlyphVisualBounds(index).getBounds2D(); int minX = (int)Math.floor(visualRect.getMinX() + x); @@ -128,14 +135,14 @@ public abstract class GlyphVector implements Cloneable { } /** - * Gets the visual bounds of the GlyphVector. + * Gets the visual bounds of the GlyphVector. * * @return the visual bounds of the GlyphVector. */ public abstract Rectangle2D getVisualBounds(); /** - * Gets the logical bounds of the GlyphVector. + * Gets the logical bounds of the GlyphVector. * * @return the logical bounds of the GlyphVector. */ @@ -144,36 +151,38 @@ public abstract class GlyphVector implements Cloneable { /** * Sets the position of the specified glyph in this GlyphVector. * - * @param glyphIndex the glyph index in this GlyphVector. - * @param newPos the new position of the glyph at the specified glyphIndex. + * @param glyphIndex + * the glyph index in this GlyphVector. + * @param newPos + * the new position of the glyph at the specified glyphIndex. */ public abstract void setGlyphPosition(int glyphIndex, Point2D newPos); /** * Gets the position of the specified glyph in this GlyphVector. * - * @param glyphIndex the glyph index in this GlyphVector. - * + * @param glyphIndex + * the glyph index in this GlyphVector. * @return the position of the specified glyph in this GlyphVector. */ public abstract Point2D getGlyphPosition(int glyphIndex); /** - * Sets the affine transform to a glyph with the specified index - * in this GlyphVector. + * Sets the affine transform to a glyph with the specified index in this + * GlyphVector. * - * @param glyphIndex the glyth index in this GlyphVector. - * @param trans the AffineTransform to be assigned to the - * specified glyph. + * @param glyphIndex + * the glyth index in this GlyphVector. + * @param trans + * the AffineTransform to be assigned to the specified glyph. */ - public abstract void setGlyphTransform(int glyphIndex, - AffineTransform trans); + public abstract void setGlyphTransform(int glyphIndex, AffineTransform trans); /** * Gets the transform of the specified glyph in this GlyphVector. * - * @param glyphIndex the glyph index in this GlyphVector. - * + * @param glyphIndex + * the glyph index in this GlyphVector. * @return the new transform of the glyph. */ public abstract AffineTransform getGlyphTransform(int glyphIndex); @@ -181,34 +190,32 @@ public abstract class GlyphVector implements Cloneable { /** * Compares this GlyphVector with the specified GlyphVector objects. * - * @param glyphVector the GlyphVector object to be compared. - * + * @param glyphVector + * the GlyphVector object to be compared. * @return true, if this GlyphVector is equal to the specified GlyphVector - * object, false otherwise. + * object, false otherwise. */ public abstract boolean equals(GlyphVector glyphVector); /** - * Gets the metrics of the glyph with the specified index - * in this GlyphVector. - * - * @param glyphIndex index in this GlyphVector. + * Gets the metrics of the glyph with the specified index in this + * GlyphVector. * - * @return the metrics of the glyph with the specified index - * in this GlyphVector. + * @param glyphIndex + * index in this GlyphVector. + * @return the metrics of the glyph with the specified index in this + * GlyphVector. */ public abstract GlyphMetrics getGlyphMetrics(int glyphIndex); /** - * Gets the justification information of the glyph - * whose index is specified. + * Gets the justification information of the glyph whose index is specified. * - * @param glyphIndex the glyph index. - * - * @return the GlyphJustificationInfo for the specified glyph. + * @param glyphIndex + * the glyph index. + * @return the GlyphJustificationInfo for the specified glyph. */ - public abstract GlyphJustificationInfo getGlyphJustificationInfo( - int glyphIndex); + public abstract GlyphJustificationInfo getGlyphJustificationInfo(int glyphIndex); /** * Gets the FontRenderContext of this GlyphVector. @@ -218,18 +225,20 @@ public abstract class GlyphVector implements Cloneable { public abstract FontRenderContext getFontRenderContext(); /** - * Gets a Shape object which defines the visual representation - * of the specified glyph in this GlyphVector, translated a - * distance of x in the X direction and y in the Y direction. - * - * @param glyphIndex the glyth index in this GlyphVector. - * @param x the distance in the X direction to translate the - * shape object before returning it. - * @param y the distance in the Y direction to translate the - * shape object before returning it. - * - * @return a Shape object which represents the visual representation - * of the specified glyph in this GlyphVector - glyph outline. + * Gets a Shape object which defines the visual representation of the + * specified glyph in this GlyphVector, translated a distance of x in the X + * direction and y in the Y direction. + * + * @param glyphIndex + * the glyth index in this GlyphVector. + * @param x + * the distance in the X direction to translate the shape object + * before returning it. + * @param y + * the distance in the Y direction to translate the shape object + * before returning it. + * @return a Shape object which represents the visual representation of the + * specified glyph in this GlyphVector - glyph outline. */ public Shape getGlyphOutline(int glyphIndex, float x, float y) { Shape initialShape = getGlyphOutline(glyphIndex); @@ -240,43 +249,42 @@ public abstract class GlyphVector implements Cloneable { /** * Gets the visual bounds of the specified glyph in the GlyphVector. * - * @param glyphIndex the glyph index in this GlyphVector. - * - * @return the glyph visual bounds of the glyph with the specified - * index in the GlyphVector. + * @param glyphIndex + * the glyph index in this GlyphVector. + * @return the glyph visual bounds of the glyph with the specified index in + * the GlyphVector. */ public abstract Shape getGlyphVisualBounds(int glyphIndex); /** - * Gets a Shape object which defines the visual representation - * of the specified glyph in this GlyphVector. - * - * @param glyphIndex the glyth index in this GlyphVector. + * Gets a Shape object which defines the visual representation of the + * specified glyph in this GlyphVector. * - * @return a Shape object which represents the visual representation - * of the specified glyph in this GlyphVector - glyph outline. + * @param glyphIndex + * the glyth index in this GlyphVector. + * @return a Shape object which represents the visual representation of the + * specified glyph in this GlyphVector - glyph outline. */ public abstract Shape getGlyphOutline(int glyphIndex); /** - * Gets the logical bounds of the specified glyph in - * the GlyphVector. + * Gets the logical bounds of the specified glyph in the GlyphVector. * - * @param glyphIndex the index in this GlyphVector of the glyph from which - * to retrieve its logical bounds - * - * @return the logical bounds of the specified glyph in - * the GlyphVector. + * @param glyphIndex + * the index in this GlyphVector of the glyph from which to + * retrieve its logical bounds + * @return the logical bounds of the specified glyph in the GlyphVector. */ public abstract Shape getGlyphLogicalBounds(int glyphIndex); /** - * Gets the visual representation of this GlyphVector rendered in - * x, y location as a Shape object. - * - * @param x the x coordinate of the GlyphVector. - * @param y the y coordinate of the GlyphVector. + * Gets the visual representation of this GlyphVector rendered in x, y + * location as a Shape object. * + * @param x + * the x coordinate of the GlyphVector. + * @param y + * the y coordinate of the GlyphVector. * @return the visual representation of this GlyphVector as a Shape object. */ public abstract Shape getOutline(float x, float y); @@ -298,77 +306,79 @@ public abstract class GlyphVector implements Cloneable { /** * Gets an array of the glyph codes of the specified glyphs. * - * @param beginGlyphIndex the index into this GlyphVector at which - * to start retrieving glyph codes. - * @param numEntries the number of glyph codes. - * @param codeReturn the array into which the resulting - * glyphcodes will be written. - * + * @param beginGlyphIndex + * the index into this GlyphVector at which to start retrieving + * glyph codes. + * @param numEntries + * the number of glyph codes. + * @param codeReturn + * the array into which the resulting glyphcodes will be written. * @return the array of the glyph codes. */ - public abstract int[] getGlyphCodes(int beginGlyphIndex, int numEntries, - int[] codeReturn); + public abstract int[] getGlyphCodes(int beginGlyphIndex, int numEntries, int[] codeReturn); /** - * Gets an array of the character indices of - * the specified glyphs. - * - * @param beginGlyphIndex the index of the first glyph to return information for. - * @param numEntries the number of glyph indices to return. - * @param codeReturn the array into which the resulting character - * indices will be written. - * + * Gets an array of the character indices of the specified glyphs. + * + * @param beginGlyphIndex + * the index of the first glyph to return information for. + * @param numEntries + * the number of glyph indices to return. + * @param codeReturn + * the array into which the resulting character indices will be + * written. * @return an array of character indices for the specifies glyphs. */ - public int[] getGlyphCharIndices(int beginGlyphIndex, int numEntries, - int[] codeReturn) { + public int[] getGlyphCharIndices(int beginGlyphIndex, int numEntries, int[] codeReturn) { if (codeReturn == null) { codeReturn = new int[numEntries]; } - for (int i = 0; i < numEntries; i++){ - codeReturn[i] = getGlyphCharIndex(i+beginGlyphIndex); + for (int i = 0; i < numEntries; i++) { + codeReturn[i] = getGlyphCharIndex(i + beginGlyphIndex); } return codeReturn; } /** - * Gets an array of the positions of the specified glyphs in - * this GlyphVector. - * - * @param beginGlyphIndex the index of the first glyph to return information for. - * @param numEntries the number of glyphs to return information for. - * @param positionReturn the array where the result will be stored. - * + * Gets an array of the positions of the specified glyphs in this + * GlyphVector. + * + * @param beginGlyphIndex + * the index of the first glyph to return information for. + * @param numEntries + * the number of glyphs to return information for. + * @param positionReturn + * the array where the result will be stored. * @return an array of glyph positions. */ - public abstract float[] getGlyphPositions(int beginGlyphIndex, - int numEntries, float[] positionReturn); + public abstract float[] getGlyphPositions(int beginGlyphIndex, int numEntries, + float[] positionReturn); /** * Gets the glyph code of the specified glyph. * - * @param glyphIndex the index in this GlyphVector which corresponds - * to the glyph from which to retrieve the glyphcode. - * + * @param glyphIndex + * the index in this GlyphVector which corresponds to the glyph + * from which to retrieve the glyphcode. * @return the glyphcode of the specified glyph. */ public abstract int getGlyphCode(int glyphIndex); /** - * Gets the first logical character's index of the specified glyph. - * - * @param glyphIndex the glyph index. + * Gets the first logical character's index of the specified glyph. * + * @param glyphIndex + * the glyph index. * @return the the first logical character's index. */ - public int getGlyphCharIndex(int glyphIndex){ + public int getGlyphCharIndex(int glyphIndex) { // default implemetation one-to-one return glyphIndex; } /** - * Sets default layout to this GlyphVector. + * Sets default layout to this GlyphVector. */ public abstract void performDefaultLayout(); @@ -380,15 +390,14 @@ public abstract class GlyphVector implements Cloneable { public abstract int getNumGlyphs(); /** - * Gets flags which describe the global state of the GlyphVector. - * The default implementation returns 0. + * Gets flags which describe the global state of the GlyphVector. The + * default implementation returns 0. * * @return the layout flags */ - public int getLayoutFlags(){ + public int getLayoutFlags() { // default implementation - returned value is 0 return 0; } } - diff --git a/awt/java/awt/font/GraphicAttribute.java b/awt/java/awt/font/GraphicAttribute.java index 2f41951..8480e0f 100644 --- a/awt/java/awt/font/GraphicAttribute.java +++ b/awt/java/awt/font/GraphicAttribute.java @@ -18,6 +18,7 @@ * @author Ilya S. Okomin * @version $Revision$ */ + package java.awt.font; import java.awt.Graphics2D; @@ -26,49 +27,54 @@ import java.awt.geom.Rectangle2D; import org.apache.harmony.awt.internal.nls.Messages; /** - * The GraphicAttribute abstract class provides an opportunity to - * insert graphical elements in printed text. + * The GraphicAttribute abstract class provides an opportunity to insert + * graphical elements in printed text. + * + * @since Android 1.0 */ public abstract class GraphicAttribute { - /** - * The Constant TOP_ALIGNMENT indicates using the top line to - * calculate placement of graphics. + /** + * The Constant TOP_ALIGNMENT indicates using the top line to calculate + * placement of graphics. */ public static final int TOP_ALIGNMENT = -1; - /** - * The Constant BOTTOM_ALIGNMENT indicates using the bottom line to - * calculate placement of graphics. + /** + * The Constant BOTTOM_ALIGNMENT indicates using the bottom line to + * calculate placement of graphics. */ public static final int BOTTOM_ALIGNMENT = -2; - /** - * The Constant ROMAN_BASELINE indicates the placement of the roman - * baseline with respect to the graphics origin. + /** + * The Constant ROMAN_BASELINE indicates the placement of the roman baseline + * with respect to the graphics origin. */ public static final int ROMAN_BASELINE = 0; - /** - * The Constant CENTER_BASELINE indicates the placement of the center + /** + * The Constant CENTER_BASELINE indicates the placement of the center * baseline with respect to the graphics origin. */ public static final int CENTER_BASELINE = 1; - /** - * The Constant HANGING_BASELINE indicates the placement of the hanging - * baseline with respect to the graphics origin. + /** + * The Constant HANGING_BASELINE indicates the placement of the hanging + * baseline with respect to the graphics origin. */ public static final int HANGING_BASELINE = 2; // the alignment of this GraphicAttribute - /** The alignment. */ + /** + * The alignment. + */ private int alignment; /** * Instantiates a new graphic attribute with the specified alignment. * - * @param align the specified alignment. + * @param align + * the specified alignment. */ protected GraphicAttribute(int align) { if ((align < BOTTOM_ALIGNMENT) || (align > HANGING_BASELINE)) { @@ -81,16 +87,19 @@ public abstract class GraphicAttribute { /** * Draws the GraphicAttribute at the specified location. * - * @param graphics the Graphics. - * @param x the X coordinate of GraphicAttribute location. - * @param y the Y coordinate of GraphicAttribute location. + * @param graphics + * the Graphics. + * @param x + * the X coordinate of GraphicAttribute location. + * @param y + * the Y coordinate of GraphicAttribute location. */ public abstract void draw(Graphics2D graphics, float x, float y); /** - * Gets the GraphicAttribute's advance. It's the distance from the point - * at which the graphic is rendered and the point where the next character - * or graphic is rendered. + * Gets the GraphicAttribute's advance. It's the distance from the point at + * which the graphic is rendered and the point where the next character or + * graphic is rendered. * * @return the GraphicAttribute's advance. */ @@ -139,58 +148,32 @@ public abstract class GraphicAttribute { * @return the GlyphJustificationInfo of this GraphicAttribute. */ public GlyphJustificationInfo getJustificationInfo() { - - /* Default implementation. - * Since documentation doesn't describe default values, - * they were calculated based on 1.5 release - * behavior and can be obtained using next test sample: - * - * // Create GraphicAttribute class implementation - * public class MyGraphicAttribute extends GraphicAttribute { - * protected MyGraphicAttribute(int align) { - * super(align); - * } - * - * public float getDescent() { - * return 0; - * } - * - * public float getAdvance() { - * return 1; - * } - * - * public void draw(Graphics2D g2, float x, float y) { - * } - * - * public float getAscent() { - * return 0; - * } - * } - * - * MyGraphicAttribute myGA = gat.new MyGraphicAttribute(0); - * // print justification parameters - * System.out.println(myGA.getJustificationInfo().growAbsorb); - * System.out.println(myGA.getJustificationInfo().shrinkAbsorb); - * System.out.println(myGA.getJustificationInfo().growLeftLimit); - * System.out.println(myGA.getJustificationInfo().growPriority); - * System.out.println(myGA.getJustificationInfo().growRightLimit); - * System.out.println(myGA.getJustificationInfo().shrinkLeftLimit); - * System.out.println(myGA.getJustificationInfo().shrinkPriority); - * System.out.println(myGA.getJustificationInfo().shrinkRightLimit); - * System.out.println(myGA.getJustificationInfo().weight); + + /* + * Default implementation. Since documentation doesn't describe default + * values, they were calculated based on 1.5 release behavior and can be + * obtained using next test sample: // Create GraphicAttribute class + * implementation public class MyGraphicAttribute extends + * GraphicAttribute { protected MyGraphicAttribute(int align) { + * super(align); } public float getDescent() { return 0; } public float + * getAdvance() { return 1; } public void draw(Graphics2D g2, float x, + * float y) { } public float getAscent() { return 0; } } + * MyGraphicAttribute myGA = gat.new MyGraphicAttribute(0); // print + * justification parameters + * System.out.println(myGA.getJustificationInfo().growAbsorb); + * System.out.println(myGA.getJustificationInfo().shrinkAbsorb); + * System.out.println(myGA.getJustificationInfo().growLeftLimit); + * System.out.println(myGA.getJustificationInfo().growPriority); + * System.out.println(myGA.getJustificationInfo().growRightLimit); + * System.out.println(myGA.getJustificationInfo().shrinkLeftLimit); + * System.out.println(myGA.getJustificationInfo().shrinkPriority); + * System.out.println(myGA.getJustificationInfo().shrinkRightLimit); + * System.out.println(myGA.getJustificationInfo().weight); */ float advance = getAdvance(); - return new GlyphJustificationInfo( - advance, - false, - GlyphJustificationInfo.PRIORITY_INTERCHAR, - advance / 3, - advance / 3, - false, - GlyphJustificationInfo.PRIORITY_WHITESPACE, - 0, - 0); + return new GlyphJustificationInfo(advance, false, + GlyphJustificationInfo.PRIORITY_INTERCHAR, advance / 3, advance / 3, false, + GlyphJustificationInfo.PRIORITY_WHITESPACE, 0, 0); } } - diff --git a/awt/java/awt/font/ImageGraphicAttribute.java b/awt/java/awt/font/ImageGraphicAttribute.java index 41f90b8..d6d4758 100644 --- a/awt/java/awt/font/ImageGraphicAttribute.java +++ b/awt/java/awt/font/ImageGraphicAttribute.java @@ -18,6 +18,7 @@ * @author Ilya S. Okomin * @version $Revision$ */ + package java.awt.font; import java.awt.Graphics2D; @@ -27,44 +28,57 @@ import java.awt.geom.Rectangle2D; import org.apache.harmony.misc.HashCode; /** - * The ImageGraphicAttribute class provides an opportunity to insert - * images to a text. + * The ImageGraphicAttribute class provides an opportunity to insert images to a + * text. + * + * @since Android 1.0 */ public final class ImageGraphicAttribute extends GraphicAttribute { // Image object rendered by this ImageGraphicAttribute - /** The image. */ + /** + * The image. + */ private Image fImage; // X coordinate of the origin point - /** The origin x. */ + /** + * The origin x. + */ private float fOriginX; // Y coordinate of the origin point - /** The origin y. */ + /** + * The origin y. + */ private float fOriginY; // the width of the image object - /** The img width. */ + /** + * The img width. + */ private float fImgWidth; // the height of the image object - /** The img height. */ + /** + * The img height. + */ private float fImgHeight; /** * Instantiates a new ImageGraphicAttribute with the specified image, * alignment and origins. * - * @param image the Image to be rendered by ImageGraphicAttribute. - * @param alignment the alignment of the ImageGraphicAttribute. - * @param originX the origin X coordinate in the image of - * ImageGraphicAttribute. - * @param originY the origin Y coordinate in the image of - * ImageGraphicAttribute. + * @param image + * the Image to be rendered by ImageGraphicAttribute. + * @param alignment + * the alignment of the ImageGraphicAttribute. + * @param originX + * the origin X coordinate in the image of ImageGraphicAttribute. + * @param originY + * the origin Y coordinate in the image of ImageGraphicAttribute. */ - public ImageGraphicAttribute(Image image, int alignment, float originX, - float originY) { + public ImageGraphicAttribute(Image image, int alignment, float originX, float originY) { super(alignment); this.fImage = image; @@ -80,8 +94,10 @@ public final class ImageGraphicAttribute extends GraphicAttribute { * Instantiates a new ImageGraphicAttribute with the specified image and * alignment. * - * @param image the Image to be rendered by ImageGraphicAttribute. - * @param alignment the alignment of the ImageGraphicAttribute. + * @param image + * the Image to be rendered by ImageGraphicAttribute. + * @param alignment + * the alignment of the ImageGraphicAttribute. */ public ImageGraphicAttribute(Image image, int alignment) { this(image, alignment, 0, 0); @@ -105,10 +121,10 @@ public final class ImageGraphicAttribute extends GraphicAttribute { * Compares the specified ImageGraphicAttribute object with this * ImageGraphicAttribute object. * - * @param iga the ImageGraphicAttribute object to be compared. - * + * @param iga + * the ImageGraphicAttribute object to be compared. * @return true, if the specified ImageGraphicAttribute object is equal to - * this ImageGraphicAttribute object, false otherwise. + * this ImageGraphicAttribute object, false otherwise. */ public boolean equals(ImageGraphicAttribute iga) { if (iga == null) { @@ -119,26 +135,23 @@ public final class ImageGraphicAttribute extends GraphicAttribute { return true; } - return (fOriginX == iga.fOriginX && - fOriginY == iga.fOriginY && - getAlignment() == iga.getAlignment() && - fImage.equals(iga.fImage)); + return (fOriginX == iga.fOriginX && fOriginY == iga.fOriginY + && getAlignment() == iga.getAlignment() && fImage.equals(iga.fImage)); } /** * Compares the specified Object with this ImageGraphicAttribute object. - * - * @param obj the Object to be compared. * + * @param obj + * the Object to be compared. * @return true, if the specified Object is equal to this - * ImageGraphicAttribute object, false otherwise. + * ImageGraphicAttribute object, false otherwise. */ @Override public boolean equals(Object obj) { try { - return equals((ImageGraphicAttribute) obj); - } - catch(ClassCastException e) { + return equals((ImageGraphicAttribute)obj); + } catch (ClassCastException e) { return false; } @@ -149,9 +162,6 @@ public final class ImageGraphicAttribute extends GraphicAttribute { g2.drawImage(fImage, (int)(x - fOriginX), (int)(y - fOriginY), null); } - /** - * @see java.awt.font.GraphicAttribute#getAdvance() - */ @Override public float getAdvance() { return Math.max(0, fImgWidth - fOriginX); @@ -167,13 +177,9 @@ public final class ImageGraphicAttribute extends GraphicAttribute { return new Rectangle2D.Float(-fOriginX, -fOriginY, fImgWidth, fImgHeight); } - /** - * @see java.awt.font.GraphicAttribute#getDescent() - */ @Override public float getDescent() { return Math.max(0, fImgHeight - fOriginY); } } - diff --git a/awt/java/awt/font/LineBreakMeasurer.java b/awt/java/awt/font/LineBreakMeasurer.java index efce615..4800093 100644 --- a/awt/java/awt/font/LineBreakMeasurer.java +++ b/awt/java/awt/font/LineBreakMeasurer.java @@ -21,64 +21,69 @@ package java.awt.font; -import java.text.AttributedCharacterIterator; -//???AWT: import java.text.BreakIterator; +import java.text.AttributedCharacterIterator; //???AWT: import java.text.BreakIterator; import org.apache.harmony.awt.internal.nls.Messages; /** - * The class LineBreakMeasurer provides methods to measure the graphical - * representation of a text in order to determine where to add line - * breaks so the resulting line of text fits its wrapping width. - * The wrapping width defines the visual width of the paragraph. + * The class LineBreakMeasurer provides methods to measure the graphical + * representation of a text in order to determine where to add line breaks so + * the resulting line of text fits its wrapping width. The wrapping width + * defines the visual width of the paragraph. + * + * @since Android 1.0 */ public final class LineBreakMeasurer { - - /** The tm. */ + + /** + * The tm. + */ private TextMeasurer tm = null; - //???AWT private BreakIterator bi = null; - /** The position. */ + + // ???AWT private BreakIterator bi = null; + /** + * The position. + */ private int position = 0; - - /** The maxpos. */ + + /** + * The maxpos. + */ int maxpos = 0; /** * Instantiates a new LineBreakMeasurer object for the specified text. * - * @param text the AttributedCharacterIterator object which contains - * text with at least one character. - * @param frc the FontRenderContext represented information - * about graphic device. + * @param text + * the AttributedCharacterIterator object which contains text + * with at least one character. + * @param frc + * the FontRenderContext represented information about graphic + * device. */ public LineBreakMeasurer(AttributedCharacterIterator text, FontRenderContext frc) { - //???AWT: this(text, BreakIterator.getLineInstance(), frc); + // ???AWT: this(text, BreakIterator.getLineInstance(), frc); } - /* ???AWT - public LineBreakMeasurer( - AttributedCharacterIterator text, - BreakIterator bi, - FontRenderContext frc - ) { - tm = new TextMeasurer(text, frc); - this.bi = bi; - this.bi.setText(text); - position = text.getBeginIndex(); - maxpos = tm.aci.getEndIndex(); - } - */ + /* + * ???AWT public LineBreakMeasurer( AttributedCharacterIterator text, + * BreakIterator bi, FontRenderContext frc ) { tm = new TextMeasurer(text, + * frc); this.bi = bi; this.bi.setText(text); position = + * text.getBeginIndex(); maxpos = tm.aci.getEndIndex(); } + */ /** - * Deletes a character from the specified position of the text, - * updates this LineBreakMeasurer object. + * Deletes a character from the specified position of the text, updates this + * LineBreakMeasurer object. * - * @param newText the new text. - * @param pos the posion of the character which is deleted. + * @param newText + * the new text. + * @param pos + * the position of the character which is deleted. */ public void deleteChar(AttributedCharacterIterator newText, int pos) { tm.deleteChar(newText, pos); - //???AWT: bi.setText(newText); + // ???AWT: bi.setText(newText); position = newText.getBeginIndex(); @@ -88,22 +93,24 @@ public final class LineBreakMeasurer { /** * Gets current position of this LineBreakMeasurer. * - * @return current position of this LineBreakMeasurer + * @return the current position of this LineBreakMeasurer */ public int getPosition() { return position; } /** - * Insertes a character at the specified position in the text, - * updates this LineBreakMeasurer object. + * Inserts a character at the specified position in the text, updates this + * LineBreakMeasurer object. * - * @param newText the new text. - * @param pos the posion of the character which is inserted. + * @param newText + * the new text. + * @param pos + * the position of the character which is inserted. */ public void insertChar(AttributedCharacterIterator newText, int pos) { tm.insertChar(newText, pos); -// ???AWT: bi.setText(newText); + // ???AWT: bi.setText(newText); position = newText.getBeginIndex(); @@ -111,21 +118,23 @@ public final class LineBreakMeasurer { } /** - * Returns the next line of text, updates current position in this + * Returns the next line of text, updates current position in this * LineBreakMeasurer. * - * @param wrappingWidth the maximum visible line width. - * @param offsetLimit the limit point withing the text indicating - * that no further text should be included on the line; the paragraph break. - * @param requireNextWord if true, null is returned (the entire word at the current - * position does not fit within the wrapping width); - * if false, a valid layout is returned that includes at least the - * character at the current position. - * - * @return the next TextLayout which begins at the current position and - * represents the next line of text with width wrappingWidth, null is - * returned if the entire word at the current position does not fit within - * the wrapping width. + * @param wrappingWidth + * the maximum visible line width. + * @param offsetLimit + * the limit point within the text indicating that no further + * text should be included on the line; the paragraph break. + * @param requireNextWord + * if true, null is returned (the entire word at the current + * position does not fit within the wrapping width); if false, a + * valid layout is returned that includes at least the character + * at the current position. + * @return the next TextLayout which begins at the current position and + * represents the next line of text with width wrappingWidth, null + * is returned if the entire word at the current position does not + * fit within the wrapping width. */ public TextLayout nextLayout(float wrappingWidth, int offsetLimit, boolean requireNextWord) { if (position == maxpos) { @@ -145,8 +154,8 @@ public final class LineBreakMeasurer { /** * Returns the next line of text. * - * @param wrappingWidth the maximum visible line width. - * + * @param wrappingWidth + * the maximum visible line width. * @return the next line of text. */ public TextLayout nextLayout(float wrappingWidth) { @@ -156,8 +165,8 @@ public final class LineBreakMeasurer { /** * Returns the end position of the next line of text. * - * @param wrappingWidth the maximum visible line width. - * + * @param wrappingWidth + * the maximum visible line width. * @return the end position of the next line of text. */ public int nextOffset(float wrappingWidth) { @@ -167,22 +176,22 @@ public final class LineBreakMeasurer { /** * Returns the end position of the next line of text. * - * @param wrappingWidth the maximum visible line width. - * @param offsetLimit the limit point withing the text indicating - * that no further text should be included on the line; the paragraph break. - * @param requireNextWord if true, the current position is returned - * if the entire next word does not fit within wrappingWidth; - * if false, the offset returned is at least one greater than the current - * position. - * + * @param wrappingWidth + * the maximum visible line width. + * @param offsetLimit + * the limit point withing the text indicating that no further + * text should be included on the line; the paragraph break. + * @param requireNextWord + * if true, the current position is returned if the entire next + * word does not fit within wrappingWidth; if false, the offset + * returned is at least one greater than the current position. * @return the end position of the next line of text. - * - * @throws IllegalArgumentException if the offsetLimit is less than - * the current position. + * @throws IllegalArgumentException + * if the offsetLimit is less than the current position. */ public int nextOffset(float wrappingWidth, int offsetLimit, boolean requireNextWord) { if (offsetLimit <= position) { - // awt.203=Offset limit should be greater than current position. + // awt.203=Offset limit should be greater than current position. throw new IllegalArgumentException(Messages.getString("awt.203")); //$NON-NLS-1$ } @@ -193,22 +202,20 @@ public final class LineBreakMeasurer { int breakPos = tm.getLineBreakIndex(position, wrappingWidth); int correctedPos = breakPos; - // This check is required because bi.preceding(maxpos) throws an exception - /* ???AWT - if (breakPos == maxpos) { - correctedPos = maxpos; - } else if (Character.isWhitespace(bi.getText().setIndex(breakPos))) { - correctedPos = bi.following(breakPos); - } else { - correctedPos = bi.preceding(breakPos); - } - */ - + // This check is required because bi.preceding(maxpos) throws an + // exception + /* + * ???AWT if (breakPos == maxpos) { correctedPos = maxpos; } else if + * (Character.isWhitespace(bi.getText().setIndex(breakPos))) { + * correctedPos = bi.following(breakPos); } else { correctedPos = + * bi.preceding(breakPos); } + */ + if (position >= correctedPos) { if (requireNextWord) { correctedPos = position; } else { - correctedPos = Math.max(position+1, breakPos); + correctedPos = Math.max(position + 1, breakPos); } } @@ -218,7 +225,8 @@ public final class LineBreakMeasurer { /** * Sets the new position of this LineBreakMeasurer. * - * @param pos the new position of this LineBreakMeasurer. + * @param pos + * the new position of this LineBreakMeasurer. */ public void setPosition(int pos) { if (tm.aci.getBeginIndex() > pos || maxpos < pos) { @@ -228,4 +236,3 @@ public final class LineBreakMeasurer { position = pos; } } - diff --git a/awt/java/awt/font/LineMetrics.java b/awt/java/awt/font/LineMetrics.java index 2857187..4b03e5d 100644 --- a/awt/java/awt/font/LineMetrics.java +++ b/awt/java/awt/font/LineMetrics.java @@ -18,22 +18,24 @@ * @author Ilya S. Okomin * @version $Revision$ */ + package java.awt.font; /** - * The LineMetrics class provides information such as concerning how the text - * is positioned with respect to the base line, such as ascent, descent, - * and leading. + * The LineMetrics class provides information such as concerning how the text is + * positioned with respect to the base line, such as ascent, descent, and + * leading. * + * @since Android 1.0 */ public abstract class LineMetrics { /** - * Gets the baseline offsets of the text according to the - * the baseline of this text. + * Gets the baseline offsets of the text according to the the baseline of + * this text. * - * @return the baseline offsets of the text according to the - * the baseline of this text. + * @return the baseline offsets of the text according to the the baseline of + * this text. */ public abstract float[] getBaselineOffsets(); @@ -45,11 +47,11 @@ public abstract class LineMetrics { public abstract int getNumChars(); /** - * Gets the baseline index, returns one of the following - * index: ROMAN_BASELINE, CENTER_BASELINE, HANGING_BASELINE. + * Gets the baseline index, returns one of the following index: + * ROMAN_BASELINE, CENTER_BASELINE, HANGING_BASELINE. * - * @return the baseline index: ROMAN_BASELINE, CENTER_BASELINE - * or HANGING_BASELINE. + * @return the baseline index: ROMAN_BASELINE, CENTER_BASELINE or + * HANGING_BASELINE. */ public abstract int getBaselineIndex(); @@ -89,11 +91,11 @@ public abstract class LineMetrics { public abstract float getLeading(); /** - * Gets the height of the text as a sum of the ascent, the descent - * and the leading. + * Gets the height of the text as a sum of the ascent, the descent and the + * leading. * - * @return the height of the text as a sum of the ascent, the descent - * and the leading. + * @return the height of the text as a sum of the ascent, the descent and + * the leading. */ public abstract float getHeight(); @@ -112,4 +114,3 @@ public abstract class LineMetrics { public abstract float getAscent(); } - diff --git a/awt/java/awt/font/MultipleMaster.java b/awt/java/awt/font/MultipleMaster.java index 773bfcf..d264f24 100644 --- a/awt/java/awt/font/MultipleMaster.java +++ b/awt/java/awt/font/MultipleMaster.java @@ -18,38 +18,44 @@ * @author Ilya S. Okomin * @version $Revision$ */ + package java.awt.font; import java.awt.Font; /** - * The MultipleMaster interface provides methods to manipulate MultipleMaster + * The MultipleMaster interface provides methods to manipulate MultipleMaster * type fonts and retrieve graphical and design data from them. + * + * @since Android 1.0 */ public interface MultipleMaster { /** - * Derives a new multiple master font based on the specified - * parameters. - * - * @param glyphWidths float array which represents width of each glyph - * in font space. - * @param avgStemWidth the average stem width in font space. - * @param typicalCapHeight the typical upper case char height. - * @param typicalXHeight the typical lower case char height. - * @param italicAngle the slope angle for italics. + * Derives a new multiple master font based on the specified parameters. * + * @param glyphWidths + * float array which represents width of each glyph in font + * space. + * @param avgStemWidth + * the average stem width in font space. + * @param typicalCapHeight + * the typical upper case char height. + * @param typicalXHeight + * the typical lower case char height. + * @param italicAngle + * the slope angle for italics. * @return a MultipleMaster font. */ - public Font deriveMMFont(float[] glyphWidths, float avgStemWidth, - float typicalCapHeight, float typicalXHeight, float italicAngle); + public Font deriveMMFont(float[] glyphWidths, float avgStemWidth, float typicalCapHeight, + float typicalXHeight, float italicAngle); /** - * Derives a new multiple master font based on the design axis values - * contained in the specified array. - * - * @param axes an float array which contains axis values. + * Derives a new multiple master font based on the design axis values + * contained in the specified array. * + * @param axes + * an float array which contains axis values. * @return a MultipleMaster font. */ public Font deriveMMFont(float[] axes); @@ -62,25 +68,24 @@ public interface MultipleMaster { public float[] getDesignAxisDefaults(); /** - * Gets the array of design axis names. + * Gets the array of design axis names. * - * @return the array of design axis names. + * @return the array of design axis names. */ public String[] getDesignAxisNames(); /** - * Gets the array of design axis ranges. + * Gets the array of design axis ranges. * * @return the array of design axis ranges. */ public float[] getDesignAxisRanges(); /** - * Gets the number of multiple master design controls. + * Gets the number of multiple master design controls. * * @return the number of multiple master design controls. */ public int getNumDesignAxes(); } - diff --git a/awt/java/awt/font/OpenType.java b/awt/java/awt/font/OpenType.java index 53cb6c0..db66911 100644 --- a/awt/java/awt/font/OpenType.java +++ b/awt/java/awt/font/OpenType.java @@ -18,318 +18,323 @@ * @author Ilya S. Okomin * @version $Revision$ */ + package java.awt.font; /** - * The OpenType interface provides constants and methods for getting - * instance data for fonts of type OpenType and TrueType. For more information, - * see the <a href="http://partners.adobe.com/public/developer/opentype/index_spec.html">OpenType specification</a>. + * The OpenType interface provides constants and methods for getting instance + * data for fonts of type OpenType and TrueType. For more information, see the + * <a + * href="http://partners.adobe.com/public/developer/opentype/index_spec.html"> + * OpenType specification</a>. + * + * @since Android 1.0 */ public interface OpenType { - /** - * The Constant TAG_ACNT indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_ACNT indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_ACNT = 1633906292; - /** - * The Constant TAG_AVAR indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_AVAR indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_AVAR = 1635148146; - /** - * The Constant TAG_BASE indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_BASE indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_BASE = 1111577413; - /** - * The Constant TAG_BDAT indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_BDAT indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_BDAT = 1650745716; - /** - * The Constant TAG_BLOC indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_BLOC indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_BLOC = 1651273571; - /** - * The Constant TAG_BSLN indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_BSLN indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_BSLN = 1651731566; - /** - * The Constant TAG_CFF indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_CFF indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_CFF = 1128678944; - /** - * The Constant TAG_CMAP indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_CMAP indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_CMAP = 1668112752; - /** - * The Constant TAG_CVAR indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_CVAR indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_CVAR = 1668702578; - /** - * The Constant TAG_CVT indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_CVT indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_CVT = 1668707360; - /** - * The Constant TAG_DSIG indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_DSIG indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_DSIG = 1146308935; - /** - * The Constant TAG_EBDT indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_EBDT indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_EBDT = 1161970772; - /** - * The Constant TAG_EBLC indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_EBLC indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_EBLC = 1161972803; - /** - * The Constant TAG_EBSC indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_EBSC indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_EBSC = 1161974595; - /** - * The Constant TAG_FDSC indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_FDSC indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_FDSC = 1717859171; - /** - * The Constant TAG_FEAT indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_FEAT indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_FEAT = 1717920116; - /** - * The Constant TAG_FMTX indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_FMTX indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_FMTX = 1718449272; - /** - * The Constant TAG_FPGM indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_FPGM indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_FPGM = 1718642541; - /** - * The Constant TAG_FVAR indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_FVAR indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_FVAR = 1719034226; - /** - * The Constant TAG_GASP indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_GASP indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_GASP = 1734439792; - /** - * The Constant TAG_GDEF indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_GDEF indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_GDEF = 1195656518; - /** - * The Constant TAG_GLYF indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_GLYF indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_GLYF = 1735162214; - /** - * The Constant TAG_GPOS indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_GPOS indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_GPOS = 1196445523; - /** - * The Constant TAG_GSUB indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_GSUB indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_GSUB = 1196643650; - /** - * The Constant TAG_GVAR indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_GVAR indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_GVAR = 1735811442; - /** - * The Constant TAG_HDMX indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_HDMX indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_HDMX = 1751412088; - /** - * The Constant TAG_HEAD indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_HEAD indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_HEAD = 1751474532; - /** - * The Constant TAG_HHEA indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_HHEA indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_HHEA = 1751672161; - /** - * The Constant TAG_HMTX indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_HMTX indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_HMTX = 1752003704; - /** - * The Constant TAG_JSTF indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_JSTF indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_JSTF = 1246975046; - /** - * The Constant TAG_JUST indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_JUST indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_JUST = 1786082164; - /** - * The Constant TAG_KERN indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_KERN indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_KERN = 1801810542; - /** - * The Constant TAG_LCAR indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_LCAR indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_LCAR = 1818452338; - /** - * The Constant TAG_LOCA indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_LOCA indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_LOCA = 1819239265; - /** - * The Constant TAG_LTSH indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_LTSH indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_LTSH = 1280594760; - /** - * The Constant TAG_MAXP indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_MAXP indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_MAXP = 1835104368; - /** - * The Constant TAG_MMFX indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_MMFX indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_MMFX = 1296909912; - /** - * The Constant TAG_MMSD indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_MMSD indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_MMSD = 1296913220; - /** - * The Constant TAG_MORT indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_MORT indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_MORT = 1836020340; - /** - * The Constant TAG_NAME indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_NAME indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_NAME = 1851878757; - /** - * The Constant TAG_OPBD indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_OPBD indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_OPBD = 1836020340; - /** - * The Constant TAG_OS2 indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_OS2 indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_OS2 = 1330851634; - /** - * The Constant TAG_PCLT indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_PCLT indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_PCLT = 1346587732; - /** - * The Constant TAG_POST indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_POST indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_POST = 1886352244; - /** - * The Constant TAG_PREP indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_PREP indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_PREP = 1886545264; - /** - * The Constant TAG_PROP indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_PROP indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_PROP = 1886547824; - /** - * The Constant TAG_TRAK indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_TRAK indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_TRAK = 1953653099; - /** - * The Constant TAG_TYP1 indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_TYP1 indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_TYP1 = 1954115633; - /** - * The Constant TAG_VDMX indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_VDMX indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_VDMX = 1447316824; - /** - * The Constant TAG_VHEA indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_VHEA indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_VHEA = 1986553185; - /** - * The Constant TAG_VMTX indicates corresponding table tag - * in the Open Type Specification. + /** + * The Constant TAG_VMTX indicates corresponding table tag in the Open Type + * Specification. */ public static final int TAG_VMTX = 1986884728; @@ -341,70 +346,73 @@ public interface OpenType { public int getVersion(); /** - * Gets the table for a specified tag. - * Sfnt tables include cmap, name and head items. - * - * @param sfntTag the sfnt tag. + * Gets the table for a specified tag. Sfnt tables include cmap, name and + * head items. * - * @return a byte array contains the font data corresponding - * to the specified tag. + * @param sfntTag + * the sfnt tag. + * @return a byte array contains the font data corresponding to the + * specified tag. */ public byte[] getFontTable(int sfntTag); /** - * Gets the table for a specified tag. - * Sfnt tables include cmap, name and head items. - * - * @param sfntTag the sfnt tag. - * @param offset the offset of the returned table. - * @param count the number of returned table. + * Gets the table for a specified tag. Sfnt tables include cmap, name and + * head items. * - * @return the table corresponding to sfntTag and containing - * the bytes starting at offset byte and including count bytes. + * @param sfntTag + * the sfnt tag. + * @param offset + * the offset of the returned table. + * @param count + * the number of returned table. + * @return the table corresponding to sfntTag and containing the bytes + * starting at offset byte and including count bytes. */ public byte[] getFontTable(int sfntTag, int offset, int count); /** - * Gets the table for a specified tag. - * Sfnt tables include cmap, name and head items. - * - * @param strSfntTag the str sfnt tag as a String. + * Gets the table for a specified tag. Sfnt tables include cmap, name and + * head items. * - * @return a byte array contains the font data corresponding - * to the specified tag. + * @param strSfntTag + * the str sfnt tag as a String. + * @return a byte array contains the font data corresponding to the + * specified tag. */ public byte[] getFontTable(String strSfntTag); /** - * Gets the table for a specified tag. - * Sfnt tables include cmap, name and head items. - * - * @param strSfntTag the sfnt tag as a String. - * @param offset the offset of the returned table. - * @param count the number of returned table. + * Gets the table for a specified tag. Sfnt tables include cmap, name and + * head items. * - * @return the table corresponding to sfntTag and containing - * the bytes starting at offset byte and including count bytes. + * @param strSfntTag + * the sfnt tag as a String. + * @param offset + * the offset of the returned table. + * @param count + * the number of returned table. + * @return the table corresponding to sfntTag and containing the bytes + * starting at offset byte and including count bytes. */ public byte[] getFontTable(String strSfntTag, int offset, int count); /** - * Gets the table size for a specified tag. - * - * @param strSfntTag the sfnt tag as a String. + * Gets the table size for a specified tag. * + * @param strSfntTag + * the sfnt tag as a String. * @return the table size for a specified tag. */ public int getFontTableSize(String strSfntTag); /** - * Gets the table size for a specified tag. - * - * @param sfntTag the sfnt tag. + * Gets the table size for a specified tag. * + * @param sfntTag + * the sfnt tag. * @return the table size for a specified tag. */ public int getFontTableSize(int sfntTag); } - diff --git a/awt/java/awt/font/ShapeGraphicAttribute.java b/awt/java/awt/font/ShapeGraphicAttribute.java index 45199fd..182bffd 100644 --- a/awt/java/awt/font/ShapeGraphicAttribute.java +++ b/awt/java/awt/font/ShapeGraphicAttribute.java @@ -18,6 +18,7 @@ * @author Ilya S. Okomin * @version $Revision$ */ + package java.awt.font; import java.awt.BasicStroke; @@ -29,61 +30,75 @@ import java.awt.geom.Rectangle2D; import org.apache.harmony.misc.HashCode; - /** - * The ShapeGraphicAttribute class provides an opportunity to insert - * shapes to a text. + * The ShapeGraphicAttribute class provides an opportunity to insert shapes to a + * text. + * + * @since Android 1.0 */ public final class ShapeGraphicAttribute extends GraphicAttribute { // shape to render - /** The shape. */ + /** + * The shape. + */ private Shape fShape; - + // flag, if the shape should be stroked (true) or filled (false) - /** The stroke. */ + /** + * The stroke. + */ private boolean fStroke; // bounds of the shape - /** The bounds. */ + /** + * The bounds. + */ private Rectangle2D fBounds; - + // X coordinate of the origin point - /** The origin x. */ + /** + * The origin x. + */ private float fOriginX; - + // Y coordinate of the origin point - /** The origin y. */ + /** + * The origin y. + */ private float fOriginY; // width of the shape - /** The shape width. */ + /** + * The shape width. + */ private float fShapeWidth; - + // height of the shape - /** The shape height. */ + /** + * The shape height. + */ private float fShapeHeight; - /** - * The Constant STROKE indicates whether the Shape is stroked - * or not. + /** + * The Constant STROKE indicates whether the Shape is stroked or not. */ public static final boolean STROKE = true; - /** - * The Constant FILL indicates whether the Shape is filled - * or not. */ + /** + * The Constant FILL indicates whether the Shape is filled or not. + */ public static final boolean FILL = false; /** - * Instantiates a new ShapeGraphicAttribute object for the specified - * Shape. + * Instantiates a new ShapeGraphicAttribute object for the specified Shape. * - * @param shape the shape to be rendered by this - * ShapeGraphicAttribute. - * @param alignment the alignment of this ShapeGraphicAttribute. - * @param stroke true if the Shape is stroked, - * false if the Shape is filled. + * @param shape + * the shape to be rendered by this ShapeGraphicAttribute. + * @param alignment + * the alignment of this ShapeGraphicAttribute. + * @param stroke + * true if the Shape is stroked, false if the Shape is filled. */ public ShapeGraphicAttribute(Shape shape, int alignment, boolean stroke) { super(alignment); @@ -91,7 +106,7 @@ public final class ShapeGraphicAttribute extends GraphicAttribute { this.fShape = shape; this.fStroke = stroke; - this.fBounds = fShape.getBounds2D(); + this.fBounds = fShape.getBounds2D(); this.fOriginX = (float)fBounds.getMinX(); this.fOriginY = (float)fBounds.getMinY(); @@ -118,10 +133,10 @@ public final class ShapeGraphicAttribute extends GraphicAttribute { * Compares this ShapeGraphicAttribute object to the specified * ShapeGraphicAttribute object. * - * @param sga the ShapeGraphicAttribute object to be compared. - * - * @return true, if this ShapeGraphicAttribute object is equal - * to the specified ShapeGraphicAttribute object, false otherwise. + * @param sga + * the ShapeGraphicAttribute object to be compared. + * @return true, if this ShapeGraphicAttribute object is equal to the + * specified ShapeGraphicAttribute object, false otherwise. */ public boolean equals(ShapeGraphicAttribute sga) { if (sga == null) { @@ -132,27 +147,24 @@ public final class ShapeGraphicAttribute extends GraphicAttribute { return true; } - return ( fStroke == sga.fStroke && - getAlignment() == sga.getAlignment() && - fShape.equals(sga.fShape)); + return (fStroke == sga.fStroke && getAlignment() == sga.getAlignment() && fShape + .equals(sga.fShape)); } /** - * Compares this ShapeGraphicAttribute object to the specified - * Object. + * Compares this ShapeGraphicAttribute object to the specified Object. * - * @param obj the Object to be compared. - * - * @return true, if this ShapeGraphicAttribute object is equal - * to the specified Object, false otherwise. + * @param obj + * the Object to be compared. + * @return true, if this ShapeGraphicAttribute object is equal to the + * specified Object, false otherwise. */ @Override public boolean equals(Object obj) { try { - return equals((ShapeGraphicAttribute) obj); - } - catch(ClassCastException e) { + return equals((ShapeGraphicAttribute)obj); + } catch (ClassCastException e) { return false; } } @@ -160,7 +172,7 @@ public final class ShapeGraphicAttribute extends GraphicAttribute { @Override public void draw(Graphics2D g2, float x, float y) { AffineTransform at = AffineTransform.getTranslateInstance(x, y); - if (fStroke == STROKE){ + if (fStroke == STROKE) { Stroke oldStroke = g2.getStroke(); g2.setStroke(new BasicStroke()); g2.draw(at.createTransformedShape(fShape)); @@ -192,4 +204,3 @@ public final class ShapeGraphicAttribute extends GraphicAttribute { } } - diff --git a/awt/java/awt/font/TextHitInfo.java b/awt/java/awt/font/TextHitInfo.java index 17bbf71..6460eba 100644 --- a/awt/java/awt/font/TextHitInfo.java +++ b/awt/java/awt/font/TextHitInfo.java @@ -23,29 +23,36 @@ package java.awt.font; import org.apache.harmony.misc.HashCode; - /** - * The TextHitInfo class provides information about a caret position - * in a text model for insertion or deletion of a character in a text. - * The TextHitInfo defines two biases of the character: leading or trailing. - * Leading position means the left edge of the specified character - * (TextHitInfo.leading(2) method for "text" returns the left side of "x"). - * Trailing position means the right edge of the specified character - * (TextHitInfo.trailing(2) method for "text" returns the right side of "x"). + * The TextHitInfo class provides information about a caret position in a text + * model for insertion or deletion of a character in a text. The TextHitInfo + * defines two biases of the character: leading or trailing. Leading position + * means the left edge of the specified character (TextHitInfo.leading(2) method + * for "text" returns the left side of "x"). Trailing position means the right + * edge of the specified character (TextHitInfo.trailing(2) method for "text" + * returns the right side of "x"). + * + * @since Android 1.0 */ public final class TextHitInfo { - - /** The char idx. */ + + /** + * The char idx. + */ private int charIdx; // Represents character index in the line - - /** The is trailing. */ + + /** + * The is trailing. + */ private boolean isTrailing; /** * Instantiates a new text hit info. * - * @param idx the idx - * @param isTrailing the is trailing + * @param idx + * the idx. + * @param isTrailing + * the is trailing. */ private TextHitInfo(int idx, boolean isTrailing) { charIdx = idx; @@ -53,90 +60,82 @@ public final class TextHitInfo { } /** - * To string. + * Returns the textual string representation of this TextHitInfo instance. * - * @return the string + * @return the string representation. */ @Override public String toString() { - return new String( - "TextHitInfo[" + charIdx + ", " + //$NON-NLS-1$ //$NON-NLS-2$ - (isTrailing?"Trailing":"Leading") + "]" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return new String("TextHitInfo[" + charIdx + ", " + //$NON-NLS-1$ //$NON-NLS-2$ + (isTrailing ? "Trailing" : "Leading") + "]" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ ); } /** * Compares this TextHitInfo object with the specified object. * - * @param obj the Object to be compared. - * - * @return true, if the specified object is a TextHitInfo object - * with the same data values as this TextHitInfo, false otherwise. + * @param obj + * the Object to be compared. + * @return true, if the specified object is a TextHitInfo object with the + * same data values as this TextHitInfo, false otherwise. */ @Override public boolean equals(Object obj) { if (obj instanceof TextHitInfo) { - return equals((TextHitInfo) obj); + return equals((TextHitInfo)obj); } return false; } /** - * Compares this TextHitInfo object with the specified TextHitInfo - * object. - * - * @param thi the TextHitInfo object to be compared. + * Compares this TextHitInfo object with the specified TextHitInfo object. * + * @param thi + * the TextHitInfo object to be compared. * @return true, if this TextHitInfo object has the same data values as the - * specified TextHitInfo object, false otherwise. + * specified TextHitInfo object, false otherwise. */ public boolean equals(TextHitInfo thi) { - return - thi != null && - thi.charIdx == charIdx && - thi.isTrailing == isTrailing; + return thi != null && thi.charIdx == charIdx && thi.isTrailing == isTrailing; } /** - * Gets a TextHitInfo object with its character index - * at the specified offset from the character index of - * this TextHitInfo. + * Gets a TextHitInfo object with its character index at the specified + * offset from the character index of this TextHitInfo. * - * @param offset the offset. - * - * @return the TextHitInfo. + * @param offset + * the offset. + * @return the TextHitInfo. */ public TextHitInfo getOffsetHit(int offset) { return new TextHitInfo(charIdx + offset, isTrailing); } /** - * Gets a TextHitInfo associated with the other side of - * the insertion point. - * + * Gets a TextHitInfo associated with the other side of the insertion point. + * * @return the other hit. */ public TextHitInfo getOtherHit() { - return isTrailing ? - new TextHitInfo(charIdx+1, false) : - new TextHitInfo(charIdx-1, true); + return isTrailing ? new TextHitInfo(charIdx + 1, false) + : new TextHitInfo(charIdx - 1, true); } /** - * Returns true if the leading edge of the character is hit, - * false if the trailing edge of the character is hit. + * Returns true if the leading edge of the character is hit, false if the + * trailing edge of the character is hit. * - * @return true if the leading edge of the character is hit, - * false if the trailing edge of the character is hit. + * @return true if the leading edge of the character is hit, false if the + * trailing edge of the character is hit. */ public boolean isLeadingEdge() { return !isTrailing; } /** - * Hash code. + * Returns the hash code value of this TextHitInfo instance. * - * @return the int + * @return the hash code value. */ @Override public int hashCode() { @@ -146,11 +145,11 @@ public final class TextHitInfo { /** * Gets the insertion index. * - * @return the insertion index: character index if the leading edge - * is hit, or character index + 1 if the trailing edge is hit. + * @return the insertion index: character index if the leading edge is hit, + * or character index + 1 if the trailing edge is hit. */ public int getInsertionIndex() { - return isTrailing ? charIdx+1 : charIdx; + return isTrailing ? charIdx + 1 : charIdx; } /** @@ -163,52 +162,52 @@ public final class TextHitInfo { } /** - * Returns a TextHitInfo associated with the trailing edge of - * the character at the specified char index. + * Returns a TextHitInfo associated with the trailing edge of the character + * at the specified char index. * - * @param charIndex the char index. - * - * @return the TextHitInfo associated with the trailing edge of - * the character at the specified char index. + * @param charIndex + * the char index. + * @return the TextHitInfo associated with the trailing edge of the + * character at the specified char index. */ public static TextHitInfo trailing(int charIndex) { return new TextHitInfo(charIndex, true); } /** - * Returns a TextHitInfo object associated with the leading edge - * of the character at the specified char index. - * - * @param charIndex the char index. + * Returns a TextHitInfo object associated with the leading edge of the + * character at the specified char index. * - * @return the TextHitInfo object associated with the leading edge - * of the character at the specified char index. + * @param charIndex + * the char index. + * @return the TextHitInfo object associated with the leading edge of the + * character at the specified char index. */ public static TextHitInfo leading(int charIndex) { return new TextHitInfo(charIndex, false); } /** - * Returns a (trailing) TextHitInfo object associated with the character + * Returns a (trailing) TextHitInfo object associated with the character * before the specified offset. * - * @param offset the offset. - * - * @return the TextHitInfo object associated with the character - * before the specified offset. + * @param offset + * the offset. + * @return the TextHitInfo object associated with the character before the + * specified offset. */ public static TextHitInfo beforeOffset(int offset) { - return new TextHitInfo(offset-1, true); + return new TextHitInfo(offset - 1, true); } /** - * Returns a (leading) TextHitInfo object associated with the character + * Returns a (leading) TextHitInfo object associated with the character * after the specified offset. * - * @param offset the offset. - * - * @return the TextHitInfo object associated with the character - * after the specified offset. + * @param offset + * the offset. + * @return the TextHitInfo object associated with the character after the + * specified offset. */ public static TextHitInfo afterOffset(int offset) { return new TextHitInfo(offset, false); diff --git a/awt/java/awt/font/TextLayout.java b/awt/java/awt/font/TextLayout.java index e80afd0..cc6f0ba 100644 --- a/awt/java/awt/font/TextLayout.java +++ b/awt/java/awt/font/TextLayout.java @@ -39,18 +39,19 @@ import org.apache.harmony.awt.internal.nls.Messages; /** * The TextLayout class defines the graphical representation of character data. - * This class provides method for obtaining information about cursor - * positioning and movement, split cursors for text with different directions, - * logical and visual highlighting, multiple baselines, hits, justification, - * ascent, descent, and advance, and rendering. A TextLayout object can be - * rendered using Graphics context. + * This class provides method for obtaining information about cursor positioning + * and movement, split cursors for text with different directions, logical and + * visual highlighting, multiple baselines, hits, justification, ascent, + * descent, and advance, and rendering. A TextLayout object can be rendered + * using Graphics context. + * + * @since Android 1.0 */ public final class TextLayout implements Cloneable { /** - * The CaretPolicy class provides a policy for obtaining the - * caret location. The single getStrongCaret method specifies - * the policy. + * The CaretPolicy class provides a policy for obtaining the caret location. + * The single getStrongCaret method specifies the policy. */ public static class CaretPolicy { @@ -62,14 +63,15 @@ public final class TextLayout implements Cloneable { } /** - * Returns whichever of the two specified TextHitInfo objects - * has the stronger caret (higher character level) in the - * specified TextLayout. - * - * @param hit1 the first TextHitInfo of the specified TextLayout. - * @param hit2 the second TextHitInfo of the specified TextLayout. - * @param layout the TextLayout. + * Returns whichever of the two specified TextHitInfo objects has the + * stronger caret (higher character level) in the specified TextLayout. * + * @param hit1 + * the first TextHitInfo of the specified TextLayout. + * @param hit2 + * the second TextHitInfo of the specified TextLayout. + * @param layout + * the TextLayout. * @return the TextHitInfo with the stronger caret. */ public TextHitInfo getStrongCaret(TextHitInfo hit1, TextHitInfo hit2, TextLayout layout) { @@ -87,50 +89,64 @@ public final class TextLayout implements Cloneable { } - /** + /** * The Constant DEFAULT_CARET_POLICY indicates the default caret policy. */ public static final TextLayout.CaretPolicy DEFAULT_CARET_POLICY = new CaretPolicy(); - /** The breaker. */ + /** + * The breaker. + */ private TextRunBreaker breaker; - - /** The metrics valid. */ + + /** + * The metrics valid. + */ private boolean metricsValid = false; - - /** The tmc. */ + + /** + * The tmc. + */ private TextMetricsCalculator tmc; - - /** The metrics. */ + + /** + * The metrics. + */ private BasicMetrics metrics; - - /** The caret manager. */ + + /** + * The caret manager. + */ private CaretManager caretManager; - - /** The justification width. */ + + /** + * The justification width. + */ float justificationWidth = -1; /** - * Instantiates a new TextLayout object from the specified string - * and Font. + * Instantiates a new TextLayout object from the specified string and Font. * - * @param string the string to be displayed. - * @param font the font of the text. - * @param frc the FontRenderContext object for obtaining - * information about a graphics device. + * @param string + * the string to be displayed. + * @param font + * the font of the text. + * @param frc + * the FontRenderContext object for obtaining information about a + * graphics device. */ public TextLayout(String string, Font font, FontRenderContext frc) { - if (string == null){ + if (string == null) { // awt.01='{0}' parameter is null throw new IllegalArgumentException(Messages.getString("awt.01", "string")); //$NON-NLS-1$ //$NON-NLS-2$ } - - if (font == null){ + + if (font == null) { // awt.01='{0}' parameter is null throw new IllegalArgumentException(Messages.getString("awt.01", "font")); //$NON-NLS-1$ //$NON-NLS-2$ } - if (string.length() == 0){ + if (string.length() == 0) { // awt.02='{0}' parameter has zero length throw new IllegalArgumentException(Messages.getString("awt.02", "string")); //$NON-NLS-1$ //$NON-NLS-2$ } @@ -142,35 +158,35 @@ public final class TextLayout implements Cloneable { } /** - * Instantiates a new TextLayout from the specified text and - * a map of attributes. + * Instantiates a new TextLayout from the specified text and a map of + * attributes. * - * @param string the string to be displayed. - * @param attributes the attributes to be used for obtaining the text - * style. - * @param frc the FontRenderContext object for obtaining - * information about a graphics device. + * @param string + * the string to be displayed. + * @param attributes + * the attributes to be used for obtaining the text style. + * @param frc + * the FontRenderContext object for obtaining information about a + * graphics device. */ - public TextLayout( - String string, + public TextLayout(String string, Map<? extends java.text.AttributedCharacterIterator.Attribute, ?> attributes, - FontRenderContext frc ) { - if (string == null){ + FontRenderContext frc) { + if (string == null) { // awt.01='{0}' parameter is null throw new IllegalArgumentException(Messages.getString("awt.01", "string")); //$NON-NLS-1$ //$NON-NLS-2$ } - - if (attributes == null){ + + if (attributes == null) { // awt.01='{0}' parameter is null throw new IllegalArgumentException(Messages.getString("awt.01", "attributes")); //$NON-NLS-1$ //$NON-NLS-2$ } - - if (string.length() == 0){ + + if (string.length() == 0) { // awt.02='{0}' parameter has zero length throw new IllegalArgumentException(Messages.getString("awt.02", "string")); //$NON-NLS-1$ //$NON-NLS-2$ } - - + AttributedString as = new AttributedString(string); as.addAttributes(attributes, 0, string.length()); this.breaker = new TextRunBreaker(as.getIterator(), frc); @@ -180,17 +196,19 @@ public final class TextLayout implements Cloneable { /** * Instantiates a new TextLayout from the AttributedCharacterIterator. * - * @param text the AttributedCharacterIterator. - * @param frc the FontRenderContext object for obtaining - * information about a graphics device. + * @param text + * the AttributedCharacterIterator. + * @param frc + * the FontRenderContext object for obtaining information about a + * graphics device. */ public TextLayout(AttributedCharacterIterator text, FontRenderContext frc) { - if (text == null){ + if (text == null) { // awt.03='{0}' iterator parameter is null throw new IllegalArgumentException(Messages.getString("awt.03", "text")); //$NON-NLS-1$ //$NON-NLS-2$ } - - if (text.getBeginIndex() == text.getEndIndex()){ + + if (text.getBeginIndex() == text.getEndIndex()) { // awt.04='{0}' iterator parameter has zero length throw new IllegalArgumentException(Messages.getString("awt.04", "text")); //$NON-NLS-1$ //$NON-NLS-2$ } @@ -202,7 +220,8 @@ public final class TextLayout implements Cloneable { /** * Instantiates a new text layout. * - * @param breaker the breaker + * @param breaker + * the breaker. */ TextLayout(TextRunBreaker breaker) { this.breaker = breaker; @@ -226,7 +245,7 @@ public final class TextLayout implements Cloneable { */ @Override protected Object clone() { - TextLayout res = new TextLayout((TextRunBreaker) breaker.clone()); + TextLayout res = new TextLayout((TextRunBreaker)breaker.clone()); if (justificationWidth >= 0) { res.handleJustify(justificationWidth); @@ -238,10 +257,10 @@ public final class TextLayout implements Cloneable { /** * Compares this TextLayout object to the specified TextLayout object. * - * @param layout the TextLayout object to be compared. - * - * @return true, if this TextLayout object is equal to - * the specified TextLayout object, false otherwise. + * @param layout + * the TextLayout object to be compared. + * @return true, if this TextLayout object is equal to the specified + * TextLayout object, false otherwise. */ public boolean equals(TextLayout layout) { if (layout == null) { @@ -253,14 +272,14 @@ public final class TextLayout implements Cloneable { /** * Compares this TextLayout object to the specified Object. * - * @param obj the Object to be compared. - * - * @return true, if this TextLayout object is equal to - * the specified Object, false otherwise. + * @param obj + * the Object to be compared. + * @return true, if this TextLayout object is equal to the specified Object, + * false otherwise. */ @Override public boolean equals(Object obj) { - return obj instanceof TextLayout ? equals((TextLayout) obj) : false; + return obj instanceof TextLayout ? equals((TextLayout)obj) : false; } /** @@ -274,16 +293,19 @@ public final class TextLayout implements Cloneable { } /** - * Draws this TextLayout at the specified location with the - * specified Graphics2D context. + * Draws this TextLayout at the specified location with the specified + * Graphics2D context. * - * @param g2d the Graphics2D object which renders this TextLayout. - * @param x the X coordinate of the TextLayout origin. - * @param y the Y coordinate of the TextLayout origin. + * @param g2d + * the Graphics2D object which renders this TextLayout. + * @param x + * the X coordinate of the TextLayout origin. + * @param y + * the Y coordinate of the TextLayout origin. */ public void draw(Graphics2D g2d, float x, float y) { updateMetrics(); - breaker.drawSegments(g2d, x ,y); + breaker.drawSegments(g2d, x, y); } /** @@ -325,15 +347,15 @@ public final class TextLayout implements Cloneable { */ public byte getBaseline() { updateMetrics(); - return (byte) metrics.getBaseLineIndex(); + return (byte)metrics.getBaseLineIndex(); } /** - * Gets the float array of offsets for the baselines which - * are used in this TextLayout. + * Gets the float array of offsets for the baselines which are used in this + * TextLayout. * - * @return the float array of offsets for the baselines which - * are used in this TextLayout. + * @return the float array of offsets for the baselines which are used in + * this TextLayout. */ public float[] getBaselineOffsets() { updateMetrics(); @@ -341,14 +363,15 @@ public final class TextLayout implements Cloneable { } /** - * Gets the black box bounds of the characters in the specified area. - * The black box bounds is an Shape which contains all - * bounding boxes of all the glyphs of the characters - * between firstEndpoint and secondEndpoint parameters values. - * - * @param firstEndpoint the first point of the area. - * @param secondEndpoint the second point of the area. + * Gets the black box bounds of the characters in the specified area. The + * black box bounds is an Shape which contains all bounding boxes of all the + * glyphs of the characters between firstEndpoint and secondEndpoint + * parameters values. * + * @param firstEndpoint + * the first point of the area. + * @param secondEndpoint + * the second point of the area. * @return the Shape which contains black box bounds. */ public Shape getBlackBoxBounds(int firstEndpoint, int secondEndpoint) { @@ -372,8 +395,8 @@ public final class TextLayout implements Cloneable { /** * Gets information about the caret of the specified TextHitInfo. * - * @param hitInfo the TextHitInfo. - * + * @param hitInfo + * the TextHitInfo. * @return the information about the caret of the specified TextHitInfo. */ public float[] getCaretInfo(TextHitInfo hitInfo) { @@ -382,12 +405,13 @@ public final class TextLayout implements Cloneable { } /** - * Gets information about the caret of the specified TextHitInfo - * of a character in this TextLayout. - * - * @param hitInfo the TextHitInfo of a character in this TextLayout. - * @param bounds the bounds to which the caret info is constructed. + * Gets information about the caret of the specified TextHitInfo of a + * character in this TextLayout. * + * @param hitInfo + * the TextHitInfo of a character in this TextLayout. + * @param bounds + * the bounds to which the caret info is constructed. * @return the caret of the specified TextHitInfo. */ public float[] getCaretInfo(TextHitInfo hitInfo, Rectangle2D bounds) { @@ -396,12 +420,13 @@ public final class TextLayout implements Cloneable { } /** - * Gets a Shape which represents the caret of the specified TextHitInfo - * in the bounds of this TextLayout. - * - * @param hitInfo the TextHitInfo. - * @param bounds the bounds to which the caret info is constructed. + * Gets a Shape which represents the caret of the specified TextHitInfo in + * the bounds of this TextLayout. * + * @param hitInfo + * the TextHitInfo. + * @param bounds + * the bounds to which the caret info is constructed. * @return the Shape which represents the caret. */ public Shape getCaretShape(TextHitInfo hitInfo, Rectangle2D bounds) { @@ -410,11 +435,11 @@ public final class TextLayout implements Cloneable { } /** - * Gets a Shape which represents the caret of the specified TextHitInfo - * in the bounds of this TextLayout. - * - * @param hitInfo the TextHitInfo. + * Gets a Shape which represents the caret of the specified TextHitInfo in + * the bounds of this TextLayout. * + * @param hitInfo + * the TextHitInfo. * @return the Shape which represents the caret. */ public Shape getCaretShape(TextHitInfo hitInfo) { @@ -423,45 +448,47 @@ public final class TextLayout implements Cloneable { } /** - * Gets two Shapes for the strong and weak carets with - * default caret policy and null bounds: the first element - * is the strong caret, the second is the weak caret or null. + * Gets two Shapes for the strong and weak carets with default caret policy + * and null bounds: the first element is the strong caret, the second is the + * weak caret or null. * - * @param offset an offset in the TextLayout. - * - * @return an array of two Shapes corresponded to the strong - * and weak carets. + * @param offset + * an offset in the TextLayout. + * @return an array of two Shapes corresponded to the strong and weak + * carets. */ public Shape[] getCaretShapes(int offset) { return getCaretShapes(offset, null, TextLayout.DEFAULT_CARET_POLICY); } /** - * Gets two Shapes for the strong and weak carets with - * the default caret policy: the first element is the strong - * caret, the second is the weak caret or null. - * - * @param offset an offset in the TextLayout. - * @param bounds the bounds to which to extend the carets. + * Gets two Shapes for the strong and weak carets with the default caret + * policy: the first element is the strong caret, the second is the weak + * caret or null. * - * @return an array of two Shapes corresponded to the strong - * and weak carets. + * @param offset + * an offset in the TextLayout. + * @param bounds + * the bounds to which to extend the carets. + * @return an array of two Shapes corresponded to the strong and weak + * carets. */ public Shape[] getCaretShapes(int offset, Rectangle2D bounds) { return getCaretShapes(offset, bounds, TextLayout.DEFAULT_CARET_POLICY); } /** - * Gets two Shapes for the strong and weak carets: the first - * element is the strong caret, the second is the weak caret - * or null. - * - * @param offset an offset in the TextLayout. - * @param bounds the bounds to which to extend the carets. - * @param policy the specified CaretPolicy. + * Gets two Shapes for the strong and weak carets: the first element is the + * strong caret, the second is the weak caret or null. * - * @return an array of two Shapes corresponded to the strong - * and weak carets. + * @param offset + * an offset in the TextLayout. + * @param bounds + * the bounds to which to extend the carets. + * @param policy + * the specified CaretPolicy. + * @return an array of two Shapes corresponded to the strong and weak + * carets. */ public Shape[] getCaretShapes(int offset, Rectangle2D bounds, TextLayout.CaretPolicy policy) { if (offset < 0 || offset > breaker.getCharCount()) { @@ -483,15 +510,15 @@ public final class TextLayout implements Cloneable { } /** - * Gets the level of the character with the specified index. - * - * @param index the specified index of the character. + * Gets the level of the character with the specified index. * + * @param index + * the specified index of the character. * @return the level of the character. */ public byte getCharacterLevel(int index) { if (index == -1 || index == getCharacterCount()) { - return (byte) breaker.getBaseLevel(); + return (byte)breaker.getBaseLevel(); } return breaker.getLevel(index); } @@ -507,16 +534,15 @@ public final class TextLayout implements Cloneable { } /** - * Gets the TextLayout wich is justified with the specified - * width related to this TextLayout. - * - * @param justificationWidth the width which is used - * for justification. + * Gets the TextLayout wich is justified with the specified width related to + * this TextLayout. * + * @param justificationWidth + * the width which is used for justification. * @return a TextLayout justified to the specified width. - * - * @throws Error the error occures if this TextLayout has been - * already justified. + * @throws Error + * the error occures if this TextLayout has been already + * justified. */ public TextLayout getJustifiedLayout(float justificationWidth) throws Error { float justification = breaker.getJustification(); @@ -528,7 +554,7 @@ public final class TextLayout implements Cloneable { return this; } - TextLayout justifiedLayout = new TextLayout((TextRunBreaker) breaker.clone()); + TextLayout justifiedLayout = new TextLayout((TextRunBreaker)breaker.clone()); justifiedLayout.handleJustify(justificationWidth); return justifiedLayout; } @@ -544,15 +570,15 @@ public final class TextLayout implements Cloneable { } /** - * Gets a Shape representing the logical selection betweeen - * the specified endpoints and extended to the natural - * bounds of this TextLayout. - * - * @param firstEndpoint the first selected endpoint within the area of characters - * @param secondEndpoint the second selected endpoint within the area of characters + * Gets a Shape representing the logical selection betweeen the specified + * endpoints and extended to the natural bounds of this TextLayout. * - * @return a Shape represented the logical selection betweeen - * the specified endpoints. + * @param firstEndpoint + * the first selected endpoint within the area of characters + * @param secondEndpoint + * the second selected endpoint within the area of characters + * @return a Shape represented the logical selection betweeen the specified + * endpoints. */ public Shape getLogicalHighlightShape(int firstEndpoint, int secondEndpoint) { updateMetrics(); @@ -560,22 +586,19 @@ public final class TextLayout implements Cloneable { } /** - * Gets a Shape representing the logical selection betweeen - * the specified endpoints and extended to the specified - * bounds of this TextLayout. + * Gets a Shape representing the logical selection betweeen the specified + * endpoints and extended to the specified bounds of this TextLayout. * - * @param firstEndpoint the first selected endpoint within the area of characters - * @param secondEndpoint the second selected endpoint within the area of characters - * @param bounds the specified bounds of this TextLayout. - * - * @return a Shape represented the logical selection betweeen - * the specified endpoints. + * @param firstEndpoint + * the first selected endpoint within the area of characters + * @param secondEndpoint + * the second selected endpoint within the area of characters + * @param bounds + * the specified bounds of this TextLayout. + * @return a Shape represented the logical selection betweeen the specified + * endpoints. */ - public Shape getLogicalHighlightShape( - int firstEndpoint, - int secondEndpoint, - Rectangle2D bounds - ) { + public Shape getLogicalHighlightShape(int firstEndpoint, int secondEndpoint, Rectangle2D bounds) { updateMetrics(); if (firstEndpoint > secondEndpoint) { @@ -583,62 +606,51 @@ public final class TextLayout implements Cloneable { // awt.197=Endpoints are out of range throw new IllegalArgumentException(Messages.getString("awt.197")); //$NON-NLS-1$ } - return caretManager.getLogicalHighlightShape( - secondEndpoint, - firstEndpoint, - bounds, - this - ); + return caretManager.getLogicalHighlightShape(secondEndpoint, firstEndpoint, bounds, + this); } if (firstEndpoint < 0 || secondEndpoint > breaker.getCharCount()) { // awt.197=Endpoints are out of range throw new IllegalArgumentException(Messages.getString("awt.197")); //$NON-NLS-1$ } - return caretManager.getLogicalHighlightShape( - firstEndpoint, - secondEndpoint, - bounds, - this - ); + return caretManager.getLogicalHighlightShape(firstEndpoint, secondEndpoint, bounds, this); } /** - * Gets the logical ranges of text which corresponds to a visual - * selection. - * - * @param hit1 the first endpoint of the visual range. - * @param hit2 the second endpoint of the visual range. + * Gets the logical ranges of text which corresponds to a visual selection. * - * @return the logical ranges of text which corresponds to a visual - * selection. + * @param hit1 + * the first endpoint of the visual range. + * @param hit2 + * the second endpoint of the visual range. + * @return the logical ranges of text which corresponds to a visual + * selection. */ public int[] getLogicalRangesForVisualSelection(TextHitInfo hit1, TextHitInfo hit2) { return caretManager.getLogicalRangesForVisualSelection(hit1, hit2); } /** - * Gets the TextHitInfo for the next caret to the left (or - * up at the end of the line) of the specified offset. - * - * @param offset the offset in this TextLayout. + * Gets the TextHitInfo for the next caret to the left (or up at the end of + * the line) of the specified offset. * - * @return the TextHitInfo for the next caret to the left (or - * up at the end of the line) of the specified hit, or null - * if there is no hit. + * @param offset + * the offset in this TextLayout. + * @return the TextHitInfo for the next caret to the left (or up at the end + * of the line) of the specified hit, or null if there is no hit. */ public TextHitInfo getNextLeftHit(int offset) { return getNextLeftHit(offset, DEFAULT_CARET_POLICY); } /** - * Gets the TextHitInfo for the next caret to the left (or - * up at the end of the line) of the specified hit. + * Gets the TextHitInfo for the next caret to the left (or up at the end of + * the line) of the specified hit. * - * @param hitInfo the initial hit. - * - * @return the TextHitInfo for the next caret to the left (or - * up at the end of the line) of the specified hit, or null - * if there is no hit. + * @param hitInfo + * the initial hit. + * @return the TextHitInfo for the next caret to the left (or up at the end + * of the line) of the specified hit, or null if there is no hit. */ public TextHitInfo getNextLeftHit(TextHitInfo hitInfo) { breaker.createAllSegments(); @@ -646,15 +658,15 @@ public final class TextLayout implements Cloneable { } /** - * Gets the TextHitInfo for the next caret to the left (or - * up at the end of the line) of the specified offset, given the - * specified caret policy. - * - * @param offset the offset in this TextLayout. - * @param policy the policy to be used for obtaining the strong caret. + * Gets the TextHitInfo for the next caret to the left (or up at the end of + * the line) of the specified offset, given the specified caret policy. * - * @return the TextHitInfo for the next caret to the left of the - * specified offset, or null if there is no hit. + * @param offset + * the offset in this TextLayout. + * @param policy + * the policy to be used for obtaining the strong caret. + * @return the TextHitInfo for the next caret to the left of the specified + * offset, or null if there is no hit. */ public TextHitInfo getNextLeftHit(int offset, TextLayout.CaretPolicy policy) { if (offset < 0 || offset > breaker.getCharCount()) { @@ -673,14 +685,14 @@ public final class TextLayout implements Cloneable { } /** - * Gets the TextHitInfo for the next caret to the right (or - * down at the end of the line) of the specified hit. - * - * @param hitInfo the initial hit. + * Gets the TextHitInfo for the next caret to the right (or down at the end + * of the line) of the specified hit. * - * @return the TextHitInfo for the next caret to the right (or - * down at the end of the line) of the specified hit, or null - * if there is no hit. + * @param hitInfo + * the initial hit. + * @return the TextHitInfo for the next caret to the right (or down at the + * end of the line) of the specified hit, or null if there is no + * hit. */ public TextHitInfo getNextRightHit(TextHitInfo hitInfo) { breaker.createAllSegments(); @@ -688,28 +700,28 @@ public final class TextLayout implements Cloneable { } /** - * Gets the TextHitInfo for the next caret to the right (or - * down at the end of the line) of the specified offset. + * Gets the TextHitInfo for the next caret to the right (or down at the end + * of the line) of the specified offset. * - * @param offset the offset in this TextLayout. - * - * @return the TextHitInfo for the next caret to the right of the - * specified offset, or null if there is no hit. + * @param offset + * the offset in this TextLayout. + * @return the TextHitInfo for the next caret to the right of the specified + * offset, or null if there is no hit. */ public TextHitInfo getNextRightHit(int offset) { return getNextRightHit(offset, DEFAULT_CARET_POLICY); } /** - * Gets the TextHitInfo for the next caret to the right (or - * down at the end of the line) of the specified offset, given the - * specified caret policy. - * - * @param offset the offset in this TextLayout. - * @param policy the policy to be used for obtaining the strong caret. + * Gets the TextHitInfo for the next caret to the right (or down at the end + * of the line) of the specified offset, given the specified caret policy. * - * @return the TextHitInfo for the next caret to the right of the - * specified offset, or null if there is no hit. + * @param offset + * the offset in this TextLayout. + * @param policy + * the policy to be used for obtaining the strong caret. + * @return the TextHitInfo for the next caret to the right of the specified + * offset, or null if there is no hit. */ public TextHitInfo getNextRightHit(int offset, TextLayout.CaretPolicy policy) { if (offset < 0 || offset > breaker.getCharCount()) { @@ -730,10 +742,9 @@ public final class TextLayout implements Cloneable { /** * Gets the outline of this TextLayout as a Shape. * - * @param xform the AffineTransform to be used to transform - * the outline before returning it, or null if no transformation - * is desired. - * + * @param xform + * the AffineTransform to be used to transform the outline before + * returning it, or null if no transformation is desired. * @return the outline of this TextLayout as a Shape. */ public Shape getOutline(AffineTransform xform) { @@ -749,8 +760,8 @@ public final class TextLayout implements Cloneable { } /** - * Gets the visible advance of this TextLayout which is defined as - * diffence between leading (advance) and trailing whitespace. + * Gets the visible advance of this TextLayout which is defined as diffence + * between leading (advance) and trailing whitespace. * * @return the visible advance of this TextLayout. */ @@ -764,15 +775,13 @@ public final class TextLayout implements Cloneable { if (lastNonWhitespace < 0) { return 0; - } else if (lastNonWhitespace == getCharacterCount()-1) { + } else if (lastNonWhitespace == getCharacterCount() - 1) { return getAdvance(); } else if (justificationWidth >= 0) { // Layout is justified return justificationWidth; } else { - breaker.pushSegments( - breaker.getACI().getBeginIndex(), - lastNonWhitespace + breaker.getACI().getBeginIndex() + 1 - ); + breaker.pushSegments(breaker.getACI().getBeginIndex(), lastNonWhitespace + + breaker.getACI().getBeginIndex() + 1); breaker.createAllSegments(); @@ -784,14 +793,16 @@ public final class TextLayout implements Cloneable { } /** - * Gets a Shape which corresponds to the highlighted (selected) area - * based on two hit locations within the text and extends to the bounds. - * - * @param hit1 the first text hit location. - * @param hit2 the second text hit location. - * @param bounds the rectangle that the highlighted area should be - * extended or restricted to. + * Gets a Shape which corresponds to the highlighted (selected) area based + * on two hit locations within the text and extends to the bounds. * + * @param hit1 + * the first text hit location. + * @param hit2 + * the second text hit location. + * @param bounds + * the rectangle that the highlighted area should be extended or + * restricted to. * @return a Shape which corresponds to the highlighted (selected) area. */ public Shape getVisualHighlightShape(TextHitInfo hit1, TextHitInfo hit2, Rectangle2D bounds) { @@ -799,12 +810,13 @@ public final class TextLayout implements Cloneable { } /** - * Gets a Shape which corresponds to the highlighted (selected) area - * based on two hit locations within the text. - * - * @param hit1 the first text hit location. - * @param hit2 the second text hit location. + * Gets a Shape which corresponds to the highlighted (selected) area based + * on two hit locations within the text. * + * @param hit1 + * the first text hit location. + * @param hit2 + * the second text hit location. * @return a Shape which corresponds to the highlighted (selected) area. */ public Shape getVisualHighlightShape(TextHitInfo hit1, TextHitInfo hit2) { @@ -813,23 +825,23 @@ public final class TextLayout implements Cloneable { } /** - * Gets the TextHitInfo for a hit on the opposite side of the - * specified hit's caret. - * - * @param hitInfo the specified TextHitInfo. + * Gets the TextHitInfo for a hit on the opposite side of the specified + * hit's caret. * - * @return the TextHitInfo for a hit on the opposite side of the - * specified hit's caret. + * @param hitInfo + * the specified TextHitInfo. + * @return the TextHitInfo for a hit on the opposite side of the specified + * hit's caret. */ public TextHitInfo getVisualOtherHit(TextHitInfo hitInfo) { return caretManager.getVisualOtherHit(hitInfo); } /** - * Justifies the text; this method should be overridden - * by subclasses. + * Justifies the text; this method should be overridden by subclasses. * - * @param justificationWidth the width for justification. + * @param justificationWidth + * the width for justification. */ protected void handleJustify(float justificationWidth) { float justification = breaker.getJustification(); @@ -851,54 +863,54 @@ public final class TextLayout implements Cloneable { } /** - * Returns a TextHitInfo object that gives information on which - * division point (between two characters) is corresponds to a - * hit (such as a mouse click) at the specified coordinates. + * Returns a TextHitInfo object that gives information on which division + * point (between two characters) is corresponds to a hit (such as a mouse + * click) at the specified coordinates. * - * @param x the X coordinate in this TextLayout. - * @param y the Y coordinate in this TextLayout. - * - * TextHitInfo object cooresponding to the given coordinates - * within the text. + * @param x + * the X coordinate in this TextLayout. + * @param y + * the Y coordinate in this TextLayout. TextHitInfo object + * corresponding to the given coordinates within the text. + * @return the information about the character at the specified position. */ public TextHitInfo hitTestChar(float x, float y) { return hitTestChar(x, y, getBounds()); } /** - * Returns a TextHitInfo object that gives information on which - * division point (between two characters) is corresponds to a - * hit (such as a mouse click) at the specified coordinates within - * the specified text rectangle. - * - * @param x the X coordinate in this TextLayout. - * @param y the Y coordinate in this TextLayout. - * @param bounds the bounds of the text area. + * Returns a TextHitInfo object that gives information on which division + * point (between two characters) is corresponds to a hit (such as a mouse + * click) at the specified coordinates within the specified text rectangle. * - * TextHitInfo object cooresponding to the given coordinates - * within the text. + * @param x + * the X coordinate in this TextLayout. + * @param y + * the Y coordinate in this TextLayout. + * @param bounds + * the bounds of the text area. TextHitInfo object corresponding + * to the given coordinates within the text. + * @return the information about the character at the specified position. */ public TextHitInfo hitTestChar(float x, float y, Rectangle2D bounds) { if (x > bounds.getMaxX()) { - return breaker.isLTR() ? - TextHitInfo.trailing(breaker.getCharCount() - 1) : TextHitInfo.leading(0); + return breaker.isLTR() ? TextHitInfo.trailing(breaker.getCharCount() - 1) : TextHitInfo + .leading(0); } if (x < bounds.getMinX()) { - return breaker.isLTR() ? - TextHitInfo.leading(0) : TextHitInfo.trailing(breaker.getCharCount() - 1); + return breaker.isLTR() ? TextHitInfo.leading(0) : TextHitInfo.trailing(breaker + .getCharCount() - 1); } return breaker.hitTest(x, y); } /** - * Returns true if this TextLayout has a "left to right" - * direction. + * Returns true if this TextLayout has a "left to right" direction. * - * @return true if this TextLayout has a "left to right" - * direction, false if this TextLayout has a "right to left" - * direction. + * @return true if this TextLayout has a "left to right" direction, false if + * this TextLayout has a "right to left" direction. */ public boolean isLeftToRight() { return breaker.isLTR(); @@ -913,4 +925,3 @@ public final class TextLayout implements Cloneable { return false; } } - diff --git a/awt/java/awt/font/TextMeasurer.java b/awt/java/awt/font/TextMeasurer.java index 017f3d9..9741f59 100644 --- a/awt/java/awt/font/TextMeasurer.java +++ b/awt/java/awt/font/TextMeasurer.java @@ -21,7 +21,6 @@ package java.awt.font; - import java.text.AttributedCharacterIterator; import org.apache.harmony.awt.gl.font.TextMetricsCalculator; @@ -29,26 +28,38 @@ import org.apache.harmony.awt.gl.font.TextRunBreaker; /** * The TextMeasurer class provides utilities for line break operations. + * + * @since Android 1.0 */ public final class TextMeasurer implements Cloneable { - - /** The aci. */ + + /** + * The aci. + */ AttributedCharacterIterator aci; - - /** The frc. */ + + /** + * The frc. + */ FontRenderContext frc; - - /** The breaker. */ + + /** + * The breaker. + */ TextRunBreaker breaker = null; - - /** The tmc. */ + + /** + * The tmc. + */ TextMetricsCalculator tmc = null; /** * Instantiates a new text measurer from the specified text. * - * @param text the source text. - * @param frc the FontRenderContext. + * @param text + * the source text. + * @param frc + * the FontRenderContext. */ public TextMeasurer(AttributedCharacterIterator text, FontRenderContext frc) { this.aci = text; @@ -58,17 +69,19 @@ public final class TextMeasurer implements Cloneable { } /** - * Replaces the current text with the new text, inserting a break - * character at the specified insert position. + * Replaces the current text with the new text, inserting a break character + * at the specified insert position. * - * @param newParagraph the new paragraph text. - * @param insertPos the position in the text where the character is inserted. + * @param newParagraph + * the new paragraph text. + * @param insertPos + * the position in the text where the character is inserted. */ public void insertChar(AttributedCharacterIterator newParagraph, int insertPos) { AttributedCharacterIterator oldAci = aci; aci = newParagraph; - if ((oldAci.getEndIndex() - oldAci.getBeginIndex()) - - (aci.getEndIndex() - aci.getBeginIndex()) != -1) { + if ((oldAci.getEndIndex() - oldAci.getBeginIndex()) + - (aci.getEndIndex() - aci.getBeginIndex()) != -1) { breaker = new TextRunBreaker(aci, this.frc); tmc = new TextMetricsCalculator(breaker); } else { @@ -77,17 +90,19 @@ public final class TextMeasurer implements Cloneable { } /** - * Replaces the current text with the new text and deletes a - * character at the specified position. + * Replaces the current text with the new text and deletes a character at + * the specified position. * - * @param newParagraph the paragraph text after deletion. - * @param deletePos the position in the text where the character is removed. + * @param newParagraph + * the paragraph text after deletion. + * @param deletePos + * the position in the text where the character is removed. */ public void deleteChar(AttributedCharacterIterator newParagraph, int deletePos) { AttributedCharacterIterator oldAci = aci; aci = newParagraph; - if ((oldAci.getEndIndex() - oldAci.getBeginIndex()) - - (aci.getEndIndex() - aci.getBeginIndex()) != 1) { + if ((oldAci.getEndIndex() - oldAci.getBeginIndex()) + - (aci.getEndIndex() - aci.getBeginIndex()) != 1) { breaker = new TextRunBreaker(aci, this.frc); tmc = new TextMetricsCalculator(breaker); } else { @@ -102,39 +117,39 @@ public final class TextMeasurer implements Cloneable { */ @Override protected Object clone() { - return new TextMeasurer((AttributedCharacterIterator) aci.clone(), frc); + return new TextMeasurer((AttributedCharacterIterator)aci.clone(), frc); } /** * Returns a TextLayout of the specified character range. * - * @param start the index of the first character. - * @param limit the index after the last character. - * - * @return a TextLayout for the characters beginning at "start" up - * to "end". + * @param start + * the index of the first character. + * @param limit + * the index after the last character. + * @return a TextLayout for the characters beginning at "start" up to "end". */ public TextLayout getLayout(int start, int limit) { breaker.pushSegments(start - aci.getBeginIndex(), limit - aci.getBeginIndex()); breaker.createAllSegments(); - TextLayout layout = new TextLayout((TextRunBreaker) breaker.clone()); + TextLayout layout = new TextLayout((TextRunBreaker)breaker.clone()); breaker.popSegments(); return layout; } /** - * Returns the graphical width of a line beginning at "start" - * parameter and including characters up to "end" parameter. - * "start" and "end" are absolute indices, not relative to the - * "start" of the paragraph. - * - * @param start the character index at which to start measuring. - * @param end the character index at which to stop measuring. + * Returns the graphical width of a line beginning at "start" parameter and + * including characters up to "end" parameter. "start" and "end" are + * absolute indices, not relative to the "start" of the paragraph. * - * @return the graphical width of a line beginning at "start" - * and including characters up to "end". + * @param start + * the character index at which to start measuring. + * @param end + * the character index at which to stop measuring. + * @return the graphical width of a line beginning at "start" and including + * characters up to "end". */ public float getAdvanceBetween(int start, int end) { breaker.pushSegments(start - aci.getBeginIndex(), end - aci.getBeginIndex()); @@ -147,21 +162,21 @@ public final class TextMeasurer implements Cloneable { } /** - * Returns the index of the first character which is not fit on - * a line beginning at start and possible measuring up to maxAdvance - * in graphical width. - * - * @param start he character index at which to start measuring. - * @param maxAdvance the graphical width in which the line must fit. - * - * @return the index after the last character that is fit on a line - * beginning at start, which is not longer than maxAdvance in graphical + * Returns the index of the first character which is not fit on a line + * beginning at start and possible measuring up to maxAdvance in graphical * width. + * + * @param start + * he character index at which to start measuring. + * @param maxAdvance + * the graphical width in which the line must fit. + * @return the index after the last character that is fit on a line + * beginning at start, which is not longer than maxAdvance in + * graphical width. */ public int getLineBreakIndex(int start, float maxAdvance) { breaker.createAllSegments(); - return breaker.getLineBreakIndex( - start - aci.getBeginIndex(), maxAdvance) + aci.getBeginIndex(); + return breaker.getLineBreakIndex(start - aci.getBeginIndex(), maxAdvance) + + aci.getBeginIndex(); } } - diff --git a/awt/java/awt/font/TransformAttribute.java b/awt/java/awt/font/TransformAttribute.java index 7c9b0bd..ff2caa2 100644 --- a/awt/java/awt/font/TransformAttribute.java +++ b/awt/java/awt/font/TransformAttribute.java @@ -18,6 +18,7 @@ * @author Ilya S. Okomin * @version $Revision$ */ + package java.awt.font; import java.awt.geom.AffineTransform; @@ -28,28 +29,34 @@ import org.apache.harmony.awt.internal.nls.Messages; /** * The TransformAttribute class is a wrapper for the AffineTransform class in * order to use it as attribute. + * + * @since Android 1.0 */ public final class TransformAttribute implements Serializable { - - /** The Constant serialVersionUID. */ + + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = 3356247357827709530L; // affine transform of this TransformAttribute instance - /** The transform. */ + /** + * The transform. + */ private AffineTransform fTransform; /** - * Instantiates a new TransformAttribute from the specified - * AffineTransform. + * Instantiates a new TransformAttribute from the specified AffineTransform. * - * @param transform the AffineTransform to be wrapped. + * @param transform + * the AffineTransform to be wrapped. */ public TransformAttribute(AffineTransform transform) { if (transform == null) { // awt.94=transform can not be null throw new IllegalArgumentException(Messages.getString("awt.94")); //$NON-NLS-1$ } - if (!transform.isIdentity()){ + if (!transform.isIdentity()) { this.fTransform = new AffineTransform(transform); } } @@ -60,7 +67,7 @@ public final class TransformAttribute implements Serializable { * @return the initial AffineTransform which is wrapped. */ public AffineTransform getTransform() { - if (fTransform != null){ + if (fTransform != null) { return new AffineTransform(fTransform); } return new AffineTransform(); @@ -69,12 +76,11 @@ public final class TransformAttribute implements Serializable { /** * Checks if this transform is an identity transform. * - * @return true, if this transform is an identity transform, - * false otherwise. + * @return true, if this transform is an identity transform, false + * otherwise. */ public boolean isIdentity() { return (fTransform == null); } } - diff --git a/awt/java/awt/font/package.html b/awt/java/awt/font/package.html new file mode 100644 index 0000000..788dcc0 --- /dev/null +++ b/awt/java/awt/font/package.html @@ -0,0 +1,8 @@ +<html> + <body> + <p> + This package contains classes to support the representation of different types of fonts for example TrueType fonts. + </p> + @since Android 1.0 + </body> +</html> diff --git a/awt/java/awt/geom/AffineTransform.java b/awt/java/awt/geom/AffineTransform.java index 5fd3934..8a6938c 100644 --- a/awt/java/awt/geom/AffineTransform.java +++ b/awt/java/awt/geom/AffineTransform.java @@ -18,6 +18,7 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt.geom; import java.awt.Shape; @@ -28,76 +29,118 @@ import org.apache.harmony.awt.internal.nls.Messages; import org.apache.harmony.misc.HashCode; /** - * The Class AffineTransform represents a linear transformation - * (rotation, scaling, or shear) followed by a translation that - * acts on a coordinate space. It preserves colinearity of points - * and ratios of distances between collinear points: so if A, B, - * and C are on a line, then after the space has been transformed - * via the affine transform, the images of the three points will - * still be on a line, and the ratio of the distance from A to B - * with the distance from B to C will be the same as the corresponding - * ratio in the image space. + * The Class AffineTransform represents a linear transformation (rotation, + * scaling, or shear) followed by a translation that acts on a coordinate space. + * It preserves collinearity of points and ratios of distances between collinear + * points: so if A, B, and C are on a line, then after the space has been + * transformed via the affine transform, the images of the three points will + * still be on a line, and the ratio of the distance from A to B with the + * distance from B to C will be the same as the corresponding ratio in the image + * space. + * + * @since Android 1.0 */ public class AffineTransform implements Cloneable, Serializable { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = 1330973210523860834L; - /** The Constant TYPE_IDENTITY. */ + /** + * The Constant TYPE_IDENTITY. + */ public static final int TYPE_IDENTITY = 0; - - /** The Constant TYPE_TRANSLATION. */ + + /** + * The Constant TYPE_TRANSLATION. + */ public static final int TYPE_TRANSLATION = 1; - - /** The Constant TYPE_UNIFORM_SCALE. */ + + /** + * The Constant TYPE_UNIFORM_SCALE. + */ public static final int TYPE_UNIFORM_SCALE = 2; - - /** The Constant TYPE_GENERAL_SCALE. */ + + /** + * The Constant TYPE_GENERAL_SCALE. + */ public static final int TYPE_GENERAL_SCALE = 4; - - /** The Constant TYPE_QUADRANT_ROTATION. */ + + /** + * The Constant TYPE_QUADRANT_ROTATION. + */ public static final int TYPE_QUADRANT_ROTATION = 8; - - /** The Constant TYPE_GENERAL_ROTATION. */ + + /** + * The Constant TYPE_GENERAL_ROTATION. + */ public static final int TYPE_GENERAL_ROTATION = 16; - - /** The Constant TYPE_GENERAL_TRANSFORM. */ + + /** + * The Constant TYPE_GENERAL_TRANSFORM. + */ public static final int TYPE_GENERAL_TRANSFORM = 32; - - /** The Constant TYPE_FLIP. */ + + /** + * The Constant TYPE_FLIP. + */ public static final int TYPE_FLIP = 64; - - /** The Constant TYPE_MASK_SCALE. */ + + /** + * The Constant TYPE_MASK_SCALE. + */ public static final int TYPE_MASK_SCALE = TYPE_UNIFORM_SCALE | TYPE_GENERAL_SCALE; - - /** The Constant TYPE_MASK_ROTATION. */ + + /** + * The Constant TYPE_MASK_ROTATION. + */ public static final int TYPE_MASK_ROTATION = TYPE_QUADRANT_ROTATION | TYPE_GENERAL_ROTATION; - /** The <code>TYPE_UNKNOWN</code> is an initial type value. */ + /** + * The <code>TYPE_UNKNOWN</code> is an initial type value. + */ static final int TYPE_UNKNOWN = -1; - - /** The min value equivalent to zero. If absolute value less then ZERO it considered as zero. */ + + /** + * The min value equivalent to zero. If absolute value less then ZERO it + * considered as zero. + */ static final double ZERO = 1E-10; - - /** The values of transformation matrix. */ + + /** + * The values of transformation matrix. + */ double m00; - - /** The m10. */ + + /** + * The m10. + */ double m10; - - /** The m01. */ + + /** + * The m01. + */ double m01; - - /** The m11. */ + + /** + * The m11. + */ double m11; - - /** The m02. */ + + /** + * The m02. + */ double m02; - - /** The m12. */ + + /** + * The m12. + */ double m12; - /** The transformation <code>type</code>. */ + /** + * The transformation <code>type</code>. + */ transient int type; /** @@ -111,10 +154,11 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Instantiates a new affine transform that has the same data as - * the given AffineTransform. + * Instantiates a new affine transform that has the same data as the given + * AffineTransform. * - * @param t the transform to copy. + * @param t + * the transform to copy. */ public AffineTransform(AffineTransform t) { this.type = t.type; @@ -128,15 +172,21 @@ public class AffineTransform implements Cloneable, Serializable { /** * Instantiates a new affine transform by specifying the values of the 2x3 - * transformation matrix as floats. The type is set to the default - * type: <code>TYPE_UNKNOWN</code> - * - * @param m00 the m00 entry in the transformation matrix. - * @param m10 the m10 entry in the transformation matrix. - * @param m01 the m01 entry in the transformation matrix. - * @param m11 the m11 entry in the transformation matrix. - * @param m02 the m02 entry in the transformation matrix. - * @param m12 the m12 entry in the transformation matrix. + * transformation matrix as floats. The type is set to the default type: + * <code>TYPE_UNKNOWN</code> + * + * @param m00 + * the m00 entry in the transformation matrix. + * @param m10 + * the m10 entry in the transformation matrix. + * @param m01 + * the m01 entry in the transformation matrix. + * @param m11 + * the m11 entry in the transformation matrix. + * @param m02 + * the m02 entry in the transformation matrix. + * @param m12 + * the m12 entry in the transformation matrix. */ public AffineTransform(float m00, float m10, float m01, float m11, float m02, float m12) { this.type = TYPE_UNKNOWN; @@ -150,15 +200,21 @@ public class AffineTransform implements Cloneable, Serializable { /** * Instantiates a new affine transform by specifying the values of the 2x3 - * transformation matrix as doubles. The type is set to the default - * type: <code>TYPE_UNKNOWN</code> - * - * @param m00 the m00 entry in the transformation matrix. - * @param m10 the m10 entry in the transformation matrix. - * @param m01 the m01 entry in the transformation matrix. - * @param m11 the m11 entry in the transformation matrix. - * @param m02 the m02 entry in the transformation matrix. - * @param m12 the m12 entry in the transformation matrix. + * transformation matrix as doubles. The type is set to the default type: + * <code>TYPE_UNKNOWN</code> + * + * @param m00 + * the m00 entry in the transformation matrix. + * @param m10 + * the m10 entry in the transformation matrix. + * @param m01 + * the m01 entry in the transformation matrix. + * @param m11 + * the m11 entry in the transformation matrix. + * @param m02 + * the m02 entry in the transformation matrix. + * @param m12 + * the m12 entry in the transformation matrix. */ public AffineTransform(double m00, double m10, double m01, double m11, double m02, double m12) { this.type = TYPE_UNKNOWN; @@ -171,20 +227,20 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Instantiates a new affine transform by reading the values of the - * transformation matrix from an array of floats. The mapping from the - * array to the matrix starts with <code>matrix[0]</code> giving the - * top-left entry of the matrix and - * proceeds with the usual left-to-right and top-down ordering. + * Instantiates a new affine transform by reading the values of the + * transformation matrix from an array of floats. The mapping from the array + * to the matrix starts with <code>matrix[0]</code> giving the top-left + * entry of the matrix and proceeds with the usual left-to-right and + * top-down ordering. * <p> - * If the array has only four entries, then the two entries of the - * last row of the transformation matrix default to zero. - * - * @param matrix the array of four or six floats giving the values - * of the matrix. - * - * @throws ArrayIndexOutOfBoundsException if the size of the array - * is 0, 1, 2, 3, or 5. + * If the array has only four entries, then the two entries of the last row + * of the transformation matrix default to zero. + * + * @param matrix + * the array of four or six floats giving the values of the + * matrix. + * @throws ArrayIndexOutOfBoundsException + * if the size of the array is 0, 1, 2, 3, or 5. */ public AffineTransform(float[] matrix) { this.type = TYPE_UNKNOWN; @@ -199,20 +255,20 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Instantiates a new affine transform by reading the values of the + * Instantiates a new affine transform by reading the values of the * transformation matrix from an array of doubles. The mapping from the - * array to the matrix starts with <code>matrix[0]</code> giving the - * top-left entry of the matrix and - * proceeds with the usual left-to-right and top-down ordering. + * array to the matrix starts with <code>matrix[0]</code> giving the + * top-left entry of the matrix and proceeds with the usual left-to-right + * and top-down ordering. * <p> - * If the array has only four entries, then the two entries of the - * last row of the transformation matrix default to zero. - * - * @param matrix the array of four or six doubles giving the values - * of the matrix. - * - * @throws ArrayIndexOutOfBoundsException if the size of the array - * is 0, 1, 2, 3, or 5. + * If the array has only four entries, then the two entries of the last row + * of the transformation matrix default to zero. + * + * @param matrix + * the array of four or six doubles giving the values of the + * matrix. + * @throws ArrayIndexOutOfBoundsException + * if the size of the array is 0, 1, 2, 3, or 5. */ public AffineTransform(double[] matrix) { this.type = TYPE_UNKNOWN; @@ -226,27 +282,26 @@ public class AffineTransform implements Cloneable, Serializable { } } - /** * Returns type of the affine transformation. * <p> - * The type is computed as follows: Label the entries of the - * transformation matrix as three rows (m00, m01), (m10, m11), and - * (m02, m12). Then if the original basis vectors are (1, 0) and (0, 1), - * the new basis vectors after transformation are given by (m00, m01) - * and (m10, m11), and the translation vector is (m02, m12). + * The type is computed as follows: Label the entries of the transformation + * matrix as three rows (m00, m01), (m10, m11), and (m02, m12). Then if the + * original basis vectors are (1, 0) and (0, 1), the new basis vectors after + * transformation are given by (m00, m01) and (m10, m11), and the + * translation vector is (m02, m12). + * <p> + * The types are classified as follows: <br/> TYPE_IDENTITY - no change<br/> + * TYPE_TRANSLATION - The translation vector isn't zero<br/> + * TYPE_UNIFORM_SCALE - The new basis vectors have equal length<br/> + * TYPE_GENERAL_SCALE - The new basis vectors dont' have equal length<br/> + * TYPE_FLIP - The new basis vector orientation differs from the original + * one<br/> TYPE_QUADRANT_ROTATION - The new basis is a rotation of the + * original by 90, 180, 270, or 360 degrees<br/> TYPE_GENERAL_ROTATION - The + * new basis is a rotation of the original by an arbitrary angle<br/> + * TYPE_GENERAL_TRANSFORM - The transformation can't be inverted.<br/> * <p> - * The types are classified as follows: <br/> - * TYPE_IDENTITY - no change<br/> - * TYPE_TRANSLATION - The translation vector isn't zero<br/> - * TYPE_UNIFORM_SCALE - The new basis vectors have equal length<br/> - * TYPE_GENERAL_SCALE - The new basis vectors dont' have equal length<br/> - * TYPE_FLIP - The new basis vector orientation differs from the original one<br/> - * TYPE_QUADRANT_ROTATION - The new basis is a rotation of the original by 90, 180, 270, or 360 degrees<br/> - * TYPE_GENERAL_ROTATION - The new basis is a rotation of the original by an arbitrary angle<br/> - * TYPE_GENERAL_TRANSFORM - The transformation can't be inverted.<br/> - * <p> - * Note that multiple types are possible, thus the types can be combined + * Note that multiple types are possible, thus the types can be combined * using bitwise combinations. * * @return the type of the Affine Transform. @@ -265,11 +320,10 @@ public class AffineTransform implements Cloneable, Serializable { if (m02 != 0.0 || m12 != 0.0) { type |= TYPE_TRANSLATION; - } else - if (m00 == 1.0 && m11 == 1.0 && m01 == 0.0 && m10 == 0.0) { - type = TYPE_IDENTITY; - return type; - } + } else if (m00 == 1.0 && m11 == 1.0 && m01 == 0.0 && m10 == 0.0) { + type = TYPE_IDENTITY; + return type; + } if (m00 * m11 - m01 * m10 < 0.0) { type |= TYPE_FLIP; @@ -279,26 +333,22 @@ public class AffineTransform implements Cloneable, Serializable { double dy = m01 * m01 + m11 * m11; if (dx != dy) { type |= TYPE_GENERAL_SCALE; - } else - if (dx != 1.0) { - type |= TYPE_UNIFORM_SCALE; - } + } else if (dx != 1.0) { + type |= TYPE_UNIFORM_SCALE; + } - if ((m00 == 0.0 && m11 == 0.0) || - (m10 == 0.0 && m01 == 0.0 && (m00 < 0.0 || m11 < 0.0))) - { + if ((m00 == 0.0 && m11 == 0.0) || (m10 == 0.0 && m01 == 0.0 && (m00 < 0.0 || m11 < 0.0))) { type |= TYPE_QUADRANT_ROTATION; - } else - if (m01 != 0.0 || m10 != 0.0) { - type |= TYPE_GENERAL_ROTATION; - } + } else if (m01 != 0.0 || m10 != 0.0) { + type |= TYPE_GENERAL_ROTATION; + } return type; } /** - * Gets the scale x entry of the transformation matrix - * (the upper left matrix entry). + * Gets the scale x entry of the transformation matrix (the upper left + * matrix entry). * * @return the scale x value. */ @@ -307,8 +357,8 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Gets the scale y entry of the transformation matrix - * (the lower right entry of the linear transformation). + * Gets the scale y entry of the transformation matrix (the lower right + * entry of the linear transformation). * * @return the scale y value. */ @@ -317,8 +367,8 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Gets the shear x entry of the transformation matrix - * (the upper right entry of the linear transformation). + * Gets the shear x entry of the transformation matrix (the upper right + * entry of the linear transformation). * * @return the shear x value. */ @@ -327,8 +377,8 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Gets the shear y entry of the transformation matrix - * (the lower left entry of the linear transformation). + * Gets the shear y entry of the transformation matrix (the lower left entry + * of the linear transformation). * * @return the shear y value. */ @@ -364,15 +414,15 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Writes the values of the transformation matrix into the given - * array of doubles. If the array has length 4, only the linear - * transformation part will be written into it. If it has length - * greater than 4, the translation vector will be included as well. - * - * @param matrix the array to fill with the values of the matrix. - * - * @throws ArrayIndexOutOfBoundsException if the size of the array - * is 0, 1, 2, 3, or 5. + * Writes the values of the transformation matrix into the given array of + * doubles. If the array has length 4, only the linear transformation part + * will be written into it. If it has length greater than 4, the translation + * vector will be included as well. + * + * @param matrix + * the array to fill with the values of the matrix. + * @throws ArrayIndexOutOfBoundsException + * if the size of the array is 0, 1, 2, 3, or 5. */ public void getMatrix(double[] matrix) { matrix[0] = m00; @@ -397,12 +447,18 @@ public class AffineTransform implements Cloneable, Serializable { /** * Sets the transform in terms of a list of double values. * - * @param m00 the m00 coordinate of the transformation matrix. - * @param m10 the m10 coordinate of the transformation matrix. - * @param m01 the m01 coordinate of the transformation matrix. - * @param m11 the m11 coordinate of the transformation matrix. - * @param m02 the m02 coordinate of the transformation matrix. - * @param m12 the m12 coordinate of the transformation matrix. + * @param m00 + * the m00 coordinate of the transformation matrix. + * @param m10 + * the m10 coordinate of the transformation matrix. + * @param m01 + * the m01 coordinate of the transformation matrix. + * @param m11 + * the m11 coordinate of the transformation matrix. + * @param m02 + * the m02 coordinate of the transformation matrix. + * @param m12 + * the m12 coordinate of the transformation matrix. */ public void setTransform(double m00, double m10, double m01, double m11, double m02, double m12) { this.type = TYPE_UNKNOWN; @@ -415,10 +471,11 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Sets the transform's data to match the data of the transform - * sent as a parameter. + * Sets the transform's data to match the data of the transform sent as a + * parameter. * - * @param t the transform that gives the new values. + * @param t + * the transform that gives the new values. */ public void setTransform(AffineTransform t) { type = t.type; @@ -435,15 +492,16 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Sets the transformation to a translation alone. - * Sets the linear part of the transformation to identity - * and the translation vector to the values sent as parameters. - * Sets the type to <code>TYPE_IDENTITY</code> - * if the resulting AffineTransformation is the identity - * transformation, otherwise sets it to <code>TYPE_TRANSLATION</code>. - * - * @param mx the distance to translate in the x direction. - * @param my the distance to translate in the y direction. + * Sets the transformation to a translation alone. Sets the linear part of + * the transformation to identity and the translation vector to the values + * sent as parameters. Sets the type to <code>TYPE_IDENTITY</code> if the + * resulting AffineTransformation is the identity transformation, otherwise + * sets it to <code>TYPE_TRANSLATION</code>. + * + * @param mx + * the distance to translate in the x direction. + * @param my + * the distance to translate in the y direction. */ public void setToTranslation(double mx, double my) { m00 = m11 = 1.0; @@ -458,14 +516,15 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Sets the transformation to being a scale alone, eliminating - * rotation, shear, and translation elements. - * Sets the type to <code>TYPE_IDENTITY</code> - * if the resulting AffineTransformation is the identity - * transformation, otherwise sets it to <code>TYPE_UNKNOWN</code>. - * - * @param scx the scaling factor in the x direction. - * @param scy the scaling factor in the y direction. + * Sets the transformation to being a scale alone, eliminating rotation, + * shear, and translation elements. Sets the type to + * <code>TYPE_IDENTITY</code> if the resulting AffineTransformation is the + * identity transformation, otherwise sets it to <code>TYPE_UNKNOWN</code>. + * + * @param scx + * the scaling factor in the x direction. + * @param scy + * the scaling factor in the y direction. */ public void setToScale(double scx, double scy) { m00 = scx; @@ -479,14 +538,15 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Sets the transformation to being a shear alone, eliminating - * rotation, scaling, and translation elements. - * Sets the type to <code>TYPE_IDENTITY</code> - * if the resulting AffineTransformation is the identity - * transformation, otherwise sets it to <code>TYPE_UNKNOWN</code>. - * - * @param shx the shearing factor in the x direction. - * @param shy the shearing factor in the y direction. + * Sets the transformation to being a shear alone, eliminating rotation, + * scaling, and translation elements. Sets the type to + * <code>TYPE_IDENTITY</code> if the resulting AffineTransformation is the + * identity transformation, otherwise sets it to <code>TYPE_UNKNOWN</code>. + * + * @param shx + * the shearing factor in the x direction. + * @param shy + * the shearing factor in the y direction. */ public void setToShear(double shx, double shy) { m00 = m11 = 1.0; @@ -501,13 +561,13 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Sets the transformation to being a rotation alone, eliminating - * shearing, scaling, and translation elements. - * Sets the type to <code>TYPE_IDENTITY</code> - * if the resulting AffineTransformation is the identity - * transformation, otherwise sets it to <code>TYPE_UNKNOWN</code>. + * Sets the transformation to being a rotation alone, eliminating shearing, + * scaling, and translation elements. Sets the type to + * <code>TYPE_IDENTITY</code> if the resulting AffineTransformation is the + * identity transformation, otherwise sets it to <code>TYPE_UNKNOWN</code>. * - * @param angle the angle of rotation in radians. + * @param angle + * the angle of rotation in radians. */ public void setToRotation(double angle) { double sin = Math.sin(angle); @@ -515,11 +575,10 @@ public class AffineTransform implements Cloneable, Serializable { if (Math.abs(cos) < ZERO) { cos = 0.0; sin = sin > 0.0 ? 1.0 : -1.0; - } else - if (Math.abs(sin) < ZERO) { - sin = 0.0; - cos = cos > 0.0 ? 1.0 : -1.0; - } + } else if (Math.abs(sin) < ZERO) { + sin = 0.0; + cos = cos > 0.0 ? 1.0 : -1.0; + } m00 = m11 = cos; m01 = -sin; m10 = sin; @@ -528,13 +587,15 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Sets the transformation to being a rotation followed by a - * translation. + * Sets the transformation to being a rotation followed by a translation. * Sets the type to <code>TYPE_UNKNOWN</code>. * - * @param angle the angle of rotation in radians. - * @param px the distance to translate in the x direction. - * @param py the distance to translate in the y direction. + * @param angle + * the angle of rotation in radians. + * @param px + * the distance to translate in the x direction. + * @param py + * the distance to translate in the y direction. */ public void setToRotation(double angle, double px, double py) { setToRotation(angle); @@ -544,15 +605,16 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Creates a new AffineTransformation that is a translation alone - * with the translation vector given by the values sent as parameters. - * The new transformation's type is <code>TYPE_IDENTITY</code> - * if the AffineTransformation is the identity - * transformation, otherwise it's <code>TYPE_TRANSLATION</code>. - * - * @param mx the distance to translate in the x direction. - * @param my the distance to translate in the y direction. - + * Creates a new AffineTransformation that is a translation alone with the + * translation vector given by the values sent as parameters. The new + * transformation's type is <code>TYPE_IDENTITY</code> if the + * AffineTransformation is the identity transformation, otherwise it's + * <code>TYPE_TRANSLATION</code>. + * + * @param mx + * the distance to translate in the x direction. + * @param my + * the distance to translate in the y direction. * @return the new AffineTransformation. */ public static AffineTransform getTranslateInstance(double mx, double my) { @@ -562,14 +624,15 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Creates a new AffineTransformation that is a scale alone. - * The new transformation's type is <code>TYPE_IDENTITY</code> - * if the AffineTransformation is the identity - * transformation, otherwise it's <code>TYPE_UNKNOWN</code>. - * - * @param scx the scaling factor in the x direction. - * @param scY the scaling factor in the y direction. - * + * Creates a new AffineTransformation that is a scale alone. The new + * transformation's type is <code>TYPE_IDENTITY</code> if the + * AffineTransformation is the identity transformation, otherwise it's + * <code>TYPE_UNKNOWN</code>. + * + * @param scx + * the scaling factor in the x direction. + * @param scY + * the scaling factor in the y direction. * @return the new AffineTransformation. */ public static AffineTransform getScaleInstance(double scx, double scY) { @@ -579,14 +642,15 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Creates a new AffineTransformation that is a shear alone. - * The new transformation's type is <code>TYPE_IDENTITY</code> - * if the AffineTransformation is the identity - * transformation, otherwise it's <code>TYPE_UNKNOWN</code>. - * - * @param shx the shearing factor in the x direction. - * @param shy the shearing factor in the y direction. - * + * Creates a new AffineTransformation that is a shear alone. The new + * transformation's type is <code>TYPE_IDENTITY</code> if the + * AffineTransformation is the identity transformation, otherwise it's + * <code>TYPE_UNKNOWN</code>. + * + * @param shx + * the shearing factor in the x direction. + * @param shy + * the shearing factor in the y direction. * @return the new AffineTransformation. */ public static AffineTransform getShearInstance(double shx, double shy) { @@ -596,13 +660,13 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Creates a new AffineTransformation that is a rotation alone. - * The new transformation's type is <code>TYPE_IDENTITY</code> - * if the AffineTransformation is the identity - * transformation, otherwise it's <code>TYPE_UNKNOWN</code>. - * - * @param angle the angle of rotation in radians. + * Creates a new AffineTransformation that is a rotation alone. The new + * transformation's type is <code>TYPE_IDENTITY</code> if the + * AffineTransformation is the identity transformation, otherwise it's + * <code>TYPE_UNKNOWN</code>. * + * @param angle + * the angle of rotation in radians. * @return the new AffineTransformation. */ public static AffineTransform getRotateInstance(double angle) { @@ -612,14 +676,15 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Creates a new AffineTransformation that is a rotation followed by a - * translation. - * Sets the type to <code>TYPE_UNKNOWN</code>. - * - * @param angle the angle of rotation in radians. - * @param x the distance to translate in the x direction. - * @param y the distance to translate in the y direction. - * + * Creates a new AffineTransformation that is a rotation followed by a + * translation. Sets the type to <code>TYPE_UNKNOWN</code>. + * + * @param angle + * the angle of rotation in radians. + * @param x + * the distance to translate in the x direction. + * @param y + * the distance to translate in the y direction. * @return the new AffineTransformation. */ public static AffineTransform getRotateInstance(double angle, double x, double y) { @@ -631,8 +696,10 @@ public class AffineTransform implements Cloneable, Serializable { /** * Applies a translation to this AffineTransformation. * - * @param mx the distance to translate in the x direction. - * @param my the distance to translate in the y direction. + * @param mx + * the distance to translate in the x direction. + * @param my + * the distance to translate in the y direction. */ public void translate(double mx, double my) { concatenate(AffineTransform.getTranslateInstance(mx, my)); @@ -641,8 +708,10 @@ public class AffineTransform implements Cloneable, Serializable { /** * Applies a scaling transformation to this AffineTransformation. * - * @param scx the scaling factor in the x direction. - * @param scy the scaling factor in the y direction. + * @param scx + * the scaling factor in the x direction. + * @param scy + * the scaling factor in the y direction. */ public void scale(double scx, double scy) { concatenate(AffineTransform.getScaleInstance(scx, scy)); @@ -651,8 +720,10 @@ public class AffineTransform implements Cloneable, Serializable { /** * Applies a shearing transformation to this AffineTransformation. * - * @param shx the shearing factor in the x direction. - * @param shy the shearing factor in the y direction. + * @param shx + * the shearing factor in the x direction. + * @param shy + * the shearing factor in the y direction. */ public void shear(double shx, double shy) { concatenate(AffineTransform.getShearInstance(shx, shy)); @@ -661,19 +732,23 @@ public class AffineTransform implements Cloneable, Serializable { /** * Applies a rotation transformation to this AffineTransformation. * - * @param angle the angle of rotation in radians. + * @param angle + * the angle of rotation in radians. */ public void rotate(double angle) { concatenate(AffineTransform.getRotateInstance(angle)); } /** - * Applies a rotation and translation transformation to this + * Applies a rotation and translation transformation to this * AffineTransformation. * - * @param angle the angle of rotation in radians. - * @param px the distance to translate in the x direction. - * @param py the distance to translate in the y direction. + * @param angle + * the angle of rotation in radians. + * @param px + * the distance to translate in the x direction. + * @param py + * the distance to translate in the y direction. */ public void rotate(double angle, double px, double py) { concatenate(AffineTransform.getRotateInstance(angle, px, py)); @@ -682,36 +757,40 @@ public class AffineTransform implements Cloneable, Serializable { /** * Multiplies the matrix representations of two AffineTransform objects. * - * @param t1 - the AffineTransform object is a multiplicand - * @param t2 - the AffineTransform object is a multiplier - * - * @return an AffineTransform object that is the result of t1 multiplied by the matrix t2. + * @param t1 + * - the AffineTransform object is a multiplicand + * @param t2 + * - the AffineTransform object is a multiplier + * @return an AffineTransform object that is the result of t1 multiplied by + * the matrix t2. */ AffineTransform multiply(AffineTransform t1, AffineTransform t2) { - return new AffineTransform( - t1.m00 * t2.m00 + t1.m10 * t2.m01, // m00 - t1.m00 * t2.m10 + t1.m10 * t2.m11, // m01 - t1.m01 * t2.m00 + t1.m11 * t2.m01, // m10 - t1.m01 * t2.m10 + t1.m11 * t2.m11, // m11 + return new AffineTransform(t1.m00 * t2.m00 + t1.m10 * t2.m01, // m00 + t1.m00 * t2.m10 + t1.m10 * t2.m11, // m01 + t1.m01 * t2.m00 + t1.m11 * t2.m01, // m10 + t1.m01 * t2.m10 + t1.m11 * t2.m11, // m11 t1.m02 * t2.m00 + t1.m12 * t2.m01 + t2.m02, // m02 t1.m02 * t2.m10 + t1.m12 * t2.m11 + t2.m12);// m12 } /** - * Applies the given AffineTransform to this AffineTransform - * via matrix multiplication. + * Applies the given AffineTransform to this AffineTransform via matrix + * multiplication. * - * @param t the AffineTransform to apply to this AffineTransform. + * @param t + * the AffineTransform to apply to this AffineTransform. */ public void concatenate(AffineTransform t) { setTransform(multiply(t, this)); } /** - * Changes the current AffineTransform the one obtained by - * taking the transform t and applying this AffineTransform to it. + * Changes the current AffineTransform the one obtained by taking the + * transform t and applying this AffineTransform to it. * - * @param t the AffineTransform that this AffineTransform is multiplied by. + * @param t + * the AffineTransform that this AffineTransform is multiplied + * by. */ public void preConcatenate(AffineTransform t) { setTransform(multiply(this, t)); @@ -721,9 +800,9 @@ public class AffineTransform implements Cloneable, Serializable { * Creates an AffineTransform that is the inverse of this transform. * * @return the affine transform that is the inverse of this AffineTransform. - * - * @throws NoninvertibleTransformException if this AffineTransform cannot be - * inverted (the determinant of the linear transformation part is zero). + * @throws NoninvertibleTransformException + * if this AffineTransform cannot be inverted (the determinant + * of the linear transformation part is zero). */ public AffineTransform createInverse() throws NoninvertibleTransformException { double det = getDeterminant(); @@ -731,25 +810,26 @@ public class AffineTransform implements Cloneable, Serializable { // awt.204=Determinant is zero throw new NoninvertibleTransformException(Messages.getString("awt.204")); //$NON-NLS-1$ } - return new AffineTransform( - m11 / det, // m00 + return new AffineTransform(m11 / det, // m00 -m10 / det, // m10 -m01 / det, // m01 - m00 / det, // m11 + m00 / det, // m11 (m01 * m12 - m11 * m02) / det, // m02 - (m10 * m02 - m00 * m12) / det // m12 + (m10 * m02 - m00 * m12) / det // m12 ); } /** * Apply the current AffineTransform to the point. * - * @param src the original point. - * @param dst Point2D object to be filled with the destination - * coordinates (where the original point is sent by this AffineTransform). May be null. - * - * @return the point in the AffineTransform's image space where the - * original point is sent. + * @param src + * the original point. + * @param dst + * Point2D object to be filled with the destination coordinates + * (where the original point is sent by this AffineTransform). + * May be null. + * @return the point in the AffineTransform's image space where the original + * point is sent. */ public Point2D transform(Point2D src, Point2D dst) { if (dst == null) { @@ -770,25 +850,29 @@ public class AffineTransform implements Cloneable, Serializable { /** * Applies this AffineTransform to an array of points. * - * @param src the array of points to be transformed. - * @param srcOff the offset in the source point array of the first point - * to be transformed. - * @param dst the point array where the images of the points (after - * applying the AffineTransformation) should be placed. - * @param dstOff the offset in the destination array where the new - * values should be written. - * @param length the number of points to transform. - * - * @throws ArrayIndexOutOfBoundsException if - * <code>srcOff + length > src.length</code> or - * <code>dstOff + length > dst.length</code>. + * @param src + * the array of points to be transformed. + * @param srcOff + * the offset in the source point array of the first point to be + * transformed. + * @param dst + * the point array where the images of the points (after applying + * the AffineTransformation) should be placed. + * @param dstOff + * the offset in the destination array where the new values + * should be written. + * @param length + * the number of points to transform. + * @throws ArrayIndexOutOfBoundsException + * if <code>srcOff + length > src.length</code> or + * <code>dstOff + length > dst.length</code>. */ public void transform(Point2D[] src, int srcOff, Point2D[] dst, int dstOff, int length) { while (--length >= 0) { - Point2D srcPoint = src[srcOff++]; + Point2D srcPoint = src[srcOff++]; double x = srcPoint.getX(); double y = srcPoint.getY(); - Point2D dstPoint = dst[dstOff]; + Point2D dstPoint = dst[dstOff]; if (dstPoint == null) { if (srcPoint instanceof Point2D.Double) { dstPoint = new Point2D.Double(); @@ -800,27 +884,31 @@ public class AffineTransform implements Cloneable, Serializable { dst[dstOff++] = dstPoint; } } - + /** - * Applies this AffineTransform to a set of points given - * as an array of double values where every two values in the array - * give the coordinates of a point; the even-indexed values giving the - * x coordinates and the odd-indexed values giving the y coordinates. - * - * @param src the array of points to be transformed. - * @param srcOff the offset in the source point array of the first point - * to be transformed. - * @param dst the point array where the images of the points (after - * applying the AffineTransformation) should be placed. - * @param dstOff the offset in the destination array where the new - * values should be written. - * @param length the number of points to transform. - * - * @throws ArrayIndexOutOfBoundsException if - * <code>srcOff + length*2 > src.length</code> or - * <code>dstOff + length*2 > dst.length</code>. + * Applies this AffineTransform to a set of points given as an array of + * double values where every two values in the array give the coordinates of + * a point; the even-indexed values giving the x coordinates and the + * odd-indexed values giving the y coordinates. + * + * @param src + * the array of points to be transformed. + * @param srcOff + * the offset in the source point array of the first point to be + * transformed. + * @param dst + * the point array where the images of the points (after applying + * the AffineTransformation) should be placed. + * @param dstOff + * the offset in the destination array where the new values + * should be written. + * @param length + * the number of points to transform. + * @throws ArrayIndexOutOfBoundsException + * if <code>srcOff + length*2 > src.length</code> or + * <code>dstOff + length*2 > dst.length</code>. */ - public void transform(double[] src, int srcOff, double[] dst, int dstOff, int length) { + public void transform(double[] src, int srcOff, double[] dst, int dstOff, int length) { int step = 2; if (src == dst && srcOff < dstOff && dstOff < srcOff + length * 2) { srcOff = srcOff + length * 2 - 2; @@ -838,23 +926,27 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Applies this AffineTransform to a set of points given - * as an array of float values where every two values in the array - * give the coordinates of a point; the even-indexed values giving the - * x coordinates and the odd-indexed values giving the y coordinates. - * - * @param src the array of points to be transformed. - * @param srcOff the offset in the source point array of the first point - * to be transformed. - * @param dst the point array where the images of the points (after - * applying the AffineTransformation) should be placed. - * @param dstOff the offset in the destination array where the new - * values should be written. - * @param length the number of points to transform. - * - * @throws ArrayIndexOutOfBoundsException if - * <code>srcOff + length*2 > src.length</code> or - * <code>dstOff + length*2 > dst.length</code>. + * Applies this AffineTransform to a set of points given as an array of + * float values where every two values in the array give the coordinates of + * a point; the even-indexed values giving the x coordinates and the + * odd-indexed values giving the y coordinates. + * + * @param src + * the array of points to be transformed. + * @param srcOff + * the offset in the source point array of the first point to be + * transformed. + * @param dst + * the point array where the images of the points (after applying + * the AffineTransformation) should be placed. + * @param dstOff + * the offset in the destination array where the new values + * should be written. + * @param length + * the number of points to transform. + * @throws ArrayIndexOutOfBoundsException + * if <code>srcOff + length*2 > src.length</code> or + * <code>dstOff + length*2 > dst.length</code>. */ public void transform(float[] src, int srcOff, float[] dst, int dstOff, int length) { int step = 2; @@ -872,26 +964,30 @@ public class AffineTransform implements Cloneable, Serializable { dstOff += step; } } - + /** - * Applies this AffineTransform to a set of points given - * as an array of float values where every two values in the array - * give the coordinates of a point; the even-indexed values giving the - * x coordinates and the odd-indexed values giving the y coordinates. - * The destination coordinates are given as values of type <code>double</code>. - * - * @param src the array of points to be transformed. - * @param srcOff the offset in the source point array of the first point - * to be transformed. - * @param dst the point array where the images of the points (after - * applying the AffineTransformation) should be placed. - * @param dstOff the offset in the destination array where the new - * values should be written. - * @param length the number of points to transform. - * - * @throws ArrayIndexOutOfBoundsException if - * <code>srcOff + length*2 > src.length</code> or - * <code>dstOff + length*2 > dst.length</code>. + * Applies this AffineTransform to a set of points given as an array of + * float values where every two values in the array give the coordinates of + * a point; the even-indexed values giving the x coordinates and the + * odd-indexed values giving the y coordinates. The destination coordinates + * are given as values of type <code>double</code>. + * + * @param src + * the array of points to be transformed. + * @param srcOff + * the offset in the source point array of the first point to be + * transformed. + * @param dst + * the point array where the images of the points (after applying + * the AffineTransformation) should be placed. + * @param dstOff + * the offset in the destination array where the new values + * should be written. + * @param length + * the number of points to transform. + * @throws ArrayIndexOutOfBoundsException + * if <code>srcOff + length*2 > src.length</code> or + * <code>dstOff + length*2 > dst.length</code>. */ public void transform(float[] src, int srcOff, double[] dst, int dstOff, int length) { while (--length >= 0) { @@ -903,24 +999,28 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Applies this AffineTransform to a set of points given - * as an array of double values where every two values in the array - * give the coordinates of a point; the even-indexed values giving the - * x coordinates and the odd-indexed values giving the y coordinates. - * The destination coordinates are given as values of type <code>float</code>. - * - * @param src the array of points to be transformed. - * @param srcOff the offset in the source point array of the first point - * to be transformed. - * @param dst the point array where the images of the points (after - * applying the AffineTransformation) should be placed. - * @param dstOff the offset in the destination array where the new - * values should be written. - * @param length the number of points to transform. - * - * @throws ArrayIndexOutOfBoundsException if - * <code>srcOff + length*2 > src.length</code> or - * <code>dstOff + length*2 > dst.length</code>. + * Applies this AffineTransform to a set of points given as an array of + * double values where every two values in the array give the coordinates of + * a point; the even-indexed values giving the x coordinates and the + * odd-indexed values giving the y coordinates. The destination coordinates + * are given as values of type <code>float</code>. + * + * @param src + * the array of points to be transformed. + * @param srcOff + * the offset in the source point array of the first point to be + * transformed. + * @param dst + * the point array where the images of the points (after applying + * the AffineTransformation) should be placed. + * @param dstOff + * the offset in the destination array where the new values + * should be written. + * @param length + * the number of points to transform. + * @throws ArrayIndexOutOfBoundsException + * if <code>srcOff + length*2 > src.length</code> or + * <code>dstOff + length*2 > dst.length</code>. */ public void transform(double[] src, int srcOff, float[] dst, int dstOff, int length) { while (--length >= 0) { @@ -932,15 +1032,16 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Transforms the point according to the linear transformation - * part of this AffineTransformation (without applying the translation). - * - * @param src the original point. - * @param dst the point object where the result of the delta transform - * is written. - * - * @return the result of applying the delta transform (linear part - * only) to the original point. + * Transforms the point according to the linear transformation part of this + * AffineTransformation (without applying the translation). + * + * @param src + * the original point. + * @param dst + * the point object where the result of the delta transform is + * written. + * @return the result of applying the delta transform (linear part only) to + * the original point. */ // TODO: is this right? if dst is null, we check what it's an // instance of? Shouldn't it be src instanceof Point2D.Double? @@ -961,24 +1062,28 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Applies the linear transformation part of this AffineTransform - * (ignoring the translation part) to a set of points given - * as an array of double values where every two values in the array - * give the coordinates of a point; the even-indexed values giving the - * x coordinates and the odd-indexed values giving the y coordinates. - * - * @param src the array of points to be transformed. - * @param srcOff the offset in the source point array of the first point - * to be transformed. - * @param dst the point array where the images of the points (after - * applying the delta transformation) should be placed. - * @param dstOff the offset in the destination array where the new - * values should be written. - * @param length the number of points to transform. - * - * @throws ArrayIndexOutOfBoundsException if - * <code>srcOff + length*2 > src.length</code> or - * <code>dstOff + length*2 > dst.length</code>. + * Applies the linear transformation part of this AffineTransform (ignoring + * the translation part) to a set of points given as an array of double + * values where every two values in the array give the coordinates of a + * point; the even-indexed values giving the x coordinates and the + * odd-indexed values giving the y coordinates. + * + * @param src + * the array of points to be transformed. + * @param srcOff + * the offset in the source point array of the first point to be + * transformed. + * @param dst + * the point array where the images of the points (after applying + * the delta transformation) should be placed. + * @param dstOff + * the offset in the destination array where the new values + * should be written. + * @param length + * the number of points to transform. + * @throws ArrayIndexOutOfBoundsException + * if <code>srcOff + length*2 > src.length</code> or + * <code>dstOff + length*2 > dst.length</code>. */ public void deltaTransform(double[] src, int srcOff, double[] dst, int dstOff, int length) { while (--length >= 0) { @@ -990,19 +1095,21 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Transforms the point according to the inverse of this AffineTransformation. - * - * @param src the original point. - * @param dst the point object where the result of the inverse transform - * is written (may be null). - * - * @return the result of applying the inverse transform. - * Inverse transform. + * Transforms the point according to the inverse of this + * AffineTransformation. * - * @throws NoninvertibleTransformException if this AffineTransform cannot be - * inverted (the determinant of the linear transformation part is zero). + * @param src + * the original point. + * @param dst + * the point object where the result of the inverse transform is + * written (may be null). + * @return the result of applying the inverse transform. Inverse transform. + * @throws NoninvertibleTransformException + * if this AffineTransform cannot be inverted (the determinant + * of the linear transformation part is zero). */ - public Point2D inverseTransform(Point2D src, Point2D dst) throws NoninvertibleTransformException { + public Point2D inverseTransform(Point2D src, Point2D dst) + throws NoninvertibleTransformException { double det = getDeterminant(); if (Math.abs(det) < ZERO) { // awt.204=Determinant is zero @@ -1025,29 +1132,33 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Applies the inverse of this AffineTransform to a set of points given - * as an array of double values where every two values in the array - * give the coordinates of a point; the even-indexed values giving the - * x coordinates and the odd-indexed values giving the y coordinates. - * - * @param src the array of points to be transformed. - * @param srcOff the offset in the source point array of the first point - * to be transformed. - * @param dst the point array where the images of the points (after - * applying the inverse of the AffineTransformation) should be placed. - * @param dstOff the offset in the destination array where the new - * values should be written. - * @param length the number of points to transform. - * - * @throws ArrayIndexOutOfBoundsException if - * <code>srcOff + length*2 > src.length</code> or - * <code>dstOff + length*2 > dst.length</code>. - * @throws NoninvertibleTransformException if this AffineTransform cannot be - * inverted (the determinant of the linear transformation part is zero). + * Applies the inverse of this AffineTransform to a set of points given as + * an array of double values where every two values in the array give the + * coordinates of a point; the even-indexed values giving the x coordinates + * and the odd-indexed values giving the y coordinates. + * + * @param src + * the array of points to be transformed. + * @param srcOff + * the offset in the source point array of the first point to be + * transformed. + * @param dst + * the point array where the images of the points (after applying + * the inverse of the AffineTransformation) should be placed. + * @param dstOff + * the offset in the destination array where the new values + * should be written. + * @param length + * the number of points to transform. + * @throws ArrayIndexOutOfBoundsException + * if <code>srcOff + length*2 > src.length</code> or + * <code>dstOff + length*2 > dst.length</code>. + * @throws NoninvertibleTransformException + * if this AffineTransform cannot be inverted (the determinant + * of the linear transformation part is zero). */ public void inverseTransform(double[] src, int srcOff, double[] dst, int dstOff, int length) - throws NoninvertibleTransformException - { + throws NoninvertibleTransformException { double det = getDeterminant(); if (Math.abs(det) < ZERO) { // awt.204=Determinant is zero @@ -1063,13 +1174,13 @@ public class AffineTransform implements Cloneable, Serializable { } /** - * Creates a new shape whose data is given by applying this - * AffineTransform to the specified shape. - * - * @param src the original shape whose data is to be transformed. + * Creates a new shape whose data is given by applying this AffineTransform + * to the specified shape. * - * @return the new shape found by applying this AffineTransform to - * the original shape. + * @param src + * the original shape whose data is to be transformed. + * @return the new shape found by applying this AffineTransform to the + * original shape. */ public Shape createTransformedShape(Shape src) { if (src == null) { @@ -1086,9 +1197,7 @@ public class AffineTransform implements Cloneable, Serializable { @Override public String toString() { - return - getClass().getName() + - "[[" + m00 + ", " + m01 + ", " + m02 + "], [" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + return getClass().getName() + "[[" + m00 + ", " + m01 + ", " + m02 + "], [" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + m10 + ", " + m11 + ", " + m12 + "]]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } @@ -1120,39 +1229,39 @@ public class AffineTransform implements Cloneable, Serializable { } if (obj instanceof AffineTransform) { AffineTransform t = (AffineTransform)obj; - return - m00 == t.m00 && m01 == t.m01 && - m02 == t.m02 && m10 == t.m10 && - m11 == t.m11 && m12 == t.m12; + return m00 == t.m00 && m01 == t.m01 && m02 == t.m02 && m10 == t.m10 && m11 == t.m11 + && m12 == t.m12; } return false; } - /** * Writes the AffineTrassform object to the output steam. * - * @param stream - the output stream - * - * @throws IOException - if there are I/O errors while writing to the output strem + * @param stream + * - the output stream. + * @throws IOException + * - if there are I/O errors while writing to the output stream. */ private void writeObject(java.io.ObjectOutputStream stream) throws IOException { stream.defaultWriteObject(); } - /** * Read the AffineTransform object from the input stream. * - * @param stream - the input steam - * - * @throws IOException - if there are I/O errors while reading from the input strem - * @throws ClassNotFoundException - if class could not be found + * @param stream + * - the input stream. + * @throws IOException + * - if there are I/O errors while reading from the input + * stream. + * @throws ClassNotFoundException + * - if class could not be found. */ - private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException { + private void readObject(java.io.ObjectInputStream stream) throws IOException, + ClassNotFoundException { stream.defaultReadObject(); type = TYPE_UNKNOWN; } } - diff --git a/awt/java/awt/geom/Arc2D.java b/awt/java/awt/geom/Arc2D.java index bc1e95c..56f5cd3 100644 --- a/awt/java/awt/geom/Arc2D.java +++ b/awt/java/awt/geom/Arc2D.java @@ -18,6 +18,7 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt.geom; import java.util.NoSuchElementException; @@ -25,59 +26,77 @@ import java.util.NoSuchElementException; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Class Arc2D represents a segment of a curve inscribed - * in a rectangle. The curve is defined by a start angle and an - * extent angle (the end angle minus the start angle) as - * a pie wedge whose point is in the center of the rectangle. - * The Arc2D as a shape may be either OPEN (including nothing - * but the curved arc segment itself), CHORD (the curved arc - * segment closed by a connecting segment from the end to the - * beginning of the arc, or PIE (the segments from the end - * of the arc to the center of the rectangle and from the - * center of the rectangle back to the arc's start point are - * included). + * The Class Arc2D represents a segment of a curve inscribed in a rectangle. The + * curve is defined by a start angle and an extent angle (the end angle minus + * the start angle) as a pie wedge whose point is in the center of the + * rectangle. The Arc2D as a shape may be either OPEN (including nothing but the + * curved arc segment itself), CHORD (the curved arc segment closed by a + * connecting segment from the end to the beginning of the arc, or PIE (the + * segments from the end of the arc to the center of the rectangle and from the + * center of the rectangle back to the arc's start point are included). + * + * @since Android 1.0 */ public abstract class Arc2D extends RectangularShape { - /** The arc type OPEN indicates that the shape includes only the - * curved arc segment. */ + /** + * The arc type OPEN indicates that the shape includes only the curved arc + * segment. + */ public final static int OPEN = 0; - - /** The arc type CHORD indicates that as a shape the connecting - * segment from the end point of the curved arc to the beginning - * point is included. */ + + /** + * The arc type CHORD indicates that as a shape the connecting segment from + * the end point of the curved arc to the beginning point is included. + */ public final static int CHORD = 1; - - /** The arc type PIE indicates that as a shape the two segments - * from the arc's endpoint to the center of the rectangle and from - * the center of the rectangle to the arc's endpoint are included. */ + + /** + * The arc type PIE indicates that as a shape the two segments from the + * arc's endpoint to the center of the rectangle and from the center of the + * rectangle to the arc's endpoint are included. + */ public final static int PIE = 2; /** - * The Class Float is a subclass of Arc2D in which all of the - * data values are given as floats. + * The Class Float is a subclass of Arc2D in which all of the data values + * are given as floats. + * * @see Arc2D.Double + * @since Android 1.0 */ public static class Float extends Arc2D { - /** The x coordinate of the upper left corner of the rectangle that - * contains the arc. */ + /** + * The x coordinate of the upper left corner of the rectangle that + * contains the arc. + */ public float x; - - /** The y coordinate of the upper left corner of the rectangle that - * contains the arc. */ + + /** + * The y coordinate of the upper left corner of the rectangle that + * contains the arc. + */ public float y; - - /** The width of the rectangle that contains the arc. */ + + /** + * The width of the rectangle that contains the arc. + */ public float width; - - /** The height of the rectangle that contains the arc. */ + + /** + * The height of the rectangle that contains the arc. + */ public float height; - - /** The start angle of the arc in degrees. */ + + /** + * The start angle of the arc in degrees. + */ public float start; - - /** The width angle of the arc in degrees. */ + + /** + * The width angle of the arc in degrees. + */ public float extent; /** @@ -90,8 +109,9 @@ public abstract class Arc2D extends RectangularShape { /** * Instantiates a new Arc2D of the specified type with float values. * - * @param type the type of the new Arc2D, either {@link Arc2D#OPEN}, - * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + * @param type + * the type of the new Arc2D, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. */ public Float(int type) { super(type); @@ -100,20 +120,26 @@ public abstract class Arc2D extends RectangularShape { /** * Instantiates a Arc2D with the specified float-valued data. * - * @param x the x coordinate of the upper left corner of the rectangle that - * contains the arc. - * @param y the y coordinate of the upper left corner of the rectangle that - * contains the arc. - * @param width the width of the rectangle that - * contains the arc. - * @param height the height of the rectangle that - * contains the arc. - * @param start the start angle of the arc in degrees. - * @param extent the width angle of the arc in degrees. - * @param type the type of the new Arc2D, either {@link Arc2D#OPEN}, - * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + * @param x + * the x coordinate of the upper left corner of the rectangle + * that contains the arc. + * @param y + * the y coordinate of the upper left corner of the rectangle + * that contains the arc. + * @param width + * the width of the rectangle that contains the arc. + * @param height + * the height of the rectangle that contains the arc. + * @param start + * the start angle of the arc in degrees. + * @param extent + * the width angle of the arc in degrees. + * @param type + * the type of the new Arc2D, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. */ - public Float(float x, float y, float width, float height, float start, float extent, int type) { + public Float(float x, float y, float width, float height, float start, float extent, + int type) { super(type); this.x = x; this.y = y; @@ -124,14 +150,18 @@ public abstract class Arc2D extends RectangularShape { } /** - * Instantiates a new Angle2D with the specified float-valued data - * and the bounding rectangle given by the parameter bounds. + * Instantiates a new Angle2D with the specified float-valued data and + * the bounding rectangle given by the parameter bounds. * - * @param bounds the bounding rectangle of the Angle2D. - * @param start the start angle of the arc in degrees. - * @param extent the width angle of the arc in degrees. - * @param type the type of the new Arc2D, either {@link Arc2D#OPEN}, - * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + * @param bounds + * the bounding rectangle of the Angle2D. + * @param start + * the start angle of the arc in degrees. + * @param extent + * the width angle of the arc in degrees. + * @param type + * the type of the new Arc2D, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. */ public Float(Rectangle2D bounds, float start, float extent, int type) { super(type); @@ -148,8 +178,8 @@ public abstract class Arc2D extends RectangularShape { return x; } - @Override - public double getY() { + @Override + public double getY() { return y; } @@ -179,9 +209,8 @@ public abstract class Arc2D extends RectangularShape { } @Override - public void setArc(double x, double y, double width, double height, - double start, double extent, int type) - { + public void setArc(double x, double y, double width, double height, double start, + double extent, int type) { this.setArcType(type); this.x = (float)x; this.y = (float)y; @@ -209,30 +238,44 @@ public abstract class Arc2D extends RectangularShape { } /** - * The Class Double is a subclass of Arc2D in which all of the - * data values are given as doubles. + * The Class Double is a subclass of Arc2D in which all of the data values + * are given as doubles. + * * @see Arc2D.Float + * @since Android 1.0 */ public static class Double extends Arc2D { - /** The x coordinate of the upper left corner of the rectangle that - * contains the arc. */ + /** + * The x coordinate of the upper left corner of the rectangle that + * contains the arc. + */ public double x; - - /** The y coordinate of the upper left corner of the rectangle that - * contains the arc. */ + + /** + * The y coordinate of the upper left corner of the rectangle that + * contains the arc. + */ public double y; - - /** The width of the rectangle that contains the arc. */ + + /** + * The width of the rectangle that contains the arc. + */ public double width; - - /** The height of the rectangle that contains the arc. */ + + /** + * The height of the rectangle that contains the arc. + */ public double height; - - /** The start angle of the arc in degrees. */ + + /** + * The start angle of the arc in degrees. + */ public double start; - - /** The width angle of the arc in degrees. */ + + /** + * The width angle of the arc in degrees. + */ public double extent; /** @@ -245,8 +288,9 @@ public abstract class Arc2D extends RectangularShape { /** * Instantiates a new Arc2D of the specified type with double values. * - * @param type the type of the new Arc2D, either {@link Arc2D#OPEN}, - * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + * @param type + * the type of the new Arc2D, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. */ public Double(int type) { super(type); @@ -255,22 +299,26 @@ public abstract class Arc2D extends RectangularShape { /** * Instantiates a Arc2D with the specified double-valued data. * - * @param x the x coordinate of the upper left corner of the rectangle that - * contains the arc. - * @param y the y coordinate of the upper left corner of the rectangle that - * contains the arc. - * @param width the width of the rectangle that - * contains the arc. - * @param height the height of the rectangle that - * contains the arc. - * @param start the start angle of the arc in degrees. - * @param extent the width angle of the arc in degrees. - * @param type the type of the new Arc2D, either {@link Arc2D#OPEN}, - * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + * @param x + * the x coordinate of the upper left corner of the rectangle + * that contains the arc. + * @param y + * the y coordinate of the upper left corner of the rectangle + * that contains the arc. + * @param width + * the width of the rectangle that contains the arc. + * @param height + * the height of the rectangle that contains the arc. + * @param start + * the start angle of the arc in degrees. + * @param extent + * the width angle of the arc in degrees. + * @param type + * the type of the new Arc2D, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. */ - public Double(double x, double y, double width, double height, - double start, double extent, int type) - { + public Double(double x, double y, double width, double height, double start, double extent, + int type) { super(type); this.x = x; this.y = y; @@ -281,14 +329,18 @@ public abstract class Arc2D extends RectangularShape { } /** - * Instantiates a new Angle2D with the specified float-valued data - * and the bounding rectangle given by the parameter bounds. + * Instantiates a new Angle2D with the specified float-valued data and + * the bounding rectangle given by the parameter bounds. * - * @param bounds the bounding rectangle of the Angle2D. - * @param start the start angle of the arc in degrees. - * @param extent the width angle of the arc in degrees. - * @param type the type of the new Arc2D, either {@link Arc2D#OPEN}, - * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + * @param bounds + * the bounding rectangle of the Angle2D. + * @param start + * the start angle of the arc in degrees. + * @param extent + * the width angle of the arc in degrees. + * @param type + * the type of the new Arc2D, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. */ public Double(Rectangle2D bounds, double start, double extent, int type) { super(type); @@ -336,9 +388,8 @@ public abstract class Arc2D extends RectangularShape { } @Override - public void setArc(double x, double y, double width, double height, - double start, double extent, int type) - { + public void setArc(double x, double y, double width, double height, double start, + double extent, int type) { this.setArcType(type); this.x = x; this.y = y; @@ -366,73 +417,116 @@ public abstract class Arc2D extends RectangularShape { } /** - * The Class Iterator is the subclass of PathIterator that is used to + * The Class Iterator is the subclass of PathIterator that is used to * traverse the boundary of a shape of type Arc2D. */ class Iterator implements PathIterator { - /** The x coordinate of the center of the arc's bounding rectangle. */ + /** + * The x coordinate of the center of the arc's bounding rectangle. + */ double x; - /** The y coordinate of the center of the arc's bounding rectangle. */ + /** + * The y coordinate of the center of the arc's bounding rectangle. + */ double y; - /** Half of the width of the arc's bounding rectangle (the radius in the case of a circular arc). */ + /** + * Half of the width of the arc's bounding rectangle (the radius in the + * case of a circular arc). + */ double width; - - /** Half of the height of the arc's bounding rectangle (the radius in the case of a circular arc). */ + + /** + * Half of the height of the arc's bounding rectangle (the radius in the + * case of a circular arc). + */ double height; - - /** The start angle of the arc in degrees. */ + + /** + * The start angle of the arc in degrees. + */ double angle; - - /** The angle extent in degrees. */ + + /** + * The angle extent in degrees. + */ double extent; - - /** The closure type of the arc. */ + + /** + * The closure type of the arc. + */ int type; - - /** The path iterator transformation. */ + + /** + * The path iterator transformation. + */ AffineTransform t; - - /** The current segment index. */ + + /** + * The current segment index. + */ int index; - - /** The number of arc segments the source arc subdivided to be approximated by Bezier curves. Depends on extent value. */ + + /** + * The number of arc segments the source arc subdivided to be + * approximated by Bezier curves. Depends on extent value. + */ int arcCount; - - /** The number of line segments. Depends on closure type. */ + + /** + * The number of line segments. Depends on closure type. + */ int lineCount; - - /** The step to calculate next arc subdivision point. */ + + /** + * The step to calculate next arc subdivision point. + */ double step; - - /** The temporary value of cosinus of the current angle. */ + + /** + * The temporary value of cosinus of the current angle. + */ double cos; - /** The temporary value of sinus of the current angle. */ + /** + * The temporary value of sinus of the current angle. + */ double sin; - + /** The coefficient to calculate control points of Bezier curves. */ double k; - - /** The temporary value of x coordinate of the Bezier curve control vector. */ + + /** + * The temporary value of x coordinate of the Bezier curve control + * vector. + */ double kx; - /** The temporary value of y coordinate of the Bezier curve control vector. */ + /** + * The temporary value of y coordinate of the Bezier curve control + * vector. + */ double ky; - - /** The x coordinate of the first path point (MOVE_TO). */ + + /** + * The x coordinate of the first path point (MOVE_TO). + */ double mx; - - /** The y coordinate of the first path point (MOVE_TO). */ + + /** + * The y coordinate of the first path point (MOVE_TO). + */ double my; /** * Constructs a new Arc2D.Iterator for given line and transformation * - * @param a - the source Arc2D object - * @param t the AffineTransformation. + * @param a + * the source Arc2D object. + * @param t + * the AffineTransformation. */ Iterator(Arc2D a, AffineTransform t) { if (width < 0 || height < 0) { @@ -462,8 +556,7 @@ public abstract class Arc2D extends RectangularShape { } else { arcCount = (int)Math.rint(Math.abs(extent) / 90.0); step = Math.toRadians(extent / arcCount); - k = 4.0 / 3.0 * (1.0 - Math.cos(step / 2.0)) - / Math.sin(step / 2.0); + k = 4.0 / 3.0 * (1.0 - Math.cos(step / 2.0)) / Math.sin(step / 2.0); } lineCount = 0; @@ -578,13 +671,16 @@ public abstract class Arc2D extends RectangularShape { } - /** The closure type of the arc. */ + /** + * The closure type of the arc. + */ private int type; /** * Instantiates a new arc2D. * - * @param type the closure type. + * @param type + * the closure type. */ protected Arc2D(int type) { setArcType(type); @@ -595,11 +691,16 @@ public abstract class Arc2D extends RectangularShape { * object with values either of type float or of type double depending on * whether this Arc2D instance is of type Float or Double. * - * @param x the x coordinate of the upper left corner of the bounding rectangle. - * @param y the y coordinate of the upper left corner of the bounding rectangle. - * @param width the width of the bounding rectangle. - * @param height the height of the bounding rectangle. - * + * @param x + * the x coordinate of the upper left corner of the bounding + * rectangle. + * @param y + * the y coordinate of the upper left corner of the bounding + * rectangle. + * @param width + * the width of the bounding rectangle. + * @param height + * the height of the bounding rectangle. * @return the corresponding Rectangle2D object. */ protected abstract Rectangle2D makeBounds(double x, double y, double width, double height); @@ -621,39 +722,46 @@ public abstract class Arc2D extends RectangularShape { /** * Sets the start angle. * - * @param start the new start angle. + * @param start + * the new start angle. */ public abstract void setAngleStart(double start); /** * Sets the width angle. * - * @param extent the new width angle. + * @param extent + * the new width angle. */ public abstract void setAngleExtent(double extent); /** * Sets the data values that define the arc. * - * @param x the x coordinate of the upper left corner of the rectangle that - * contains the arc. - * @param y the y coordinate of the upper left corner of the rectangle that - * contains the arc. - * @param width the width of the rectangle that - * contains the arc. - * @param height the height of the rectangle that - * contains the arc. - * @param start the start angle of the arc in degrees. - * @param extent the width angle of the arc in degrees. - * @param type the type of the new Arc2D, either {@link Arc2D#OPEN}, - * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + * @param x + * the x coordinate of the upper left corner of the rectangle + * that contains the arc. + * @param y + * the y coordinate of the upper left corner of the rectangle + * that contains the arc. + * @param width + * the width of the rectangle that contains the arc. + * @param height + * the height of the rectangle that contains the arc. + * @param start + * the start angle of the arc in degrees. + * @param extent + * the width angle of the arc in degrees. + * @param type + * the type of the new Arc2D, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. */ - public abstract void setArc(double x, double y, double width, - double height, double start, double extent, int type); + public abstract void setArc(double x, double y, double width, double height, double start, + double extent, int type); /** - * Gets the arc type, either {@link Arc2D#OPEN}, - * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + * Gets the arc type, either {@link Arc2D#OPEN}, {@link Arc2D#CHORD}, or + * {@link Arc2D#PIE}. * * @return the arc type. */ @@ -662,10 +770,11 @@ public abstract class Arc2D extends RectangularShape { } /** - * Sets the arc type, either {@link Arc2D#OPEN}, - * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + * Sets the arc type, either {@link Arc2D#OPEN}, {@link Arc2D#CHORD}, or + * {@link Arc2D#PIE}. * - * @param type the new arc type. + * @param type + * the new arc type. */ public void setArcType(int type) { if (type != OPEN && type != CHORD && type != PIE) { @@ -682,9 +791,8 @@ public abstract class Arc2D extends RectangularShape { */ public Point2D getStartPoint() { double a = Math.toRadians(getAngleStart()); - return new Point2D.Double( - getX() + (1.0 + Math.cos(a)) * getWidth() / 2.0, - getY() + (1.0 - Math.sin(a)) * getHeight() / 2.0); + return new Point2D.Double(getX() + (1.0 + Math.cos(a)) * getWidth() / 2.0, getY() + + (1.0 - Math.sin(a)) * getHeight() / 2.0); } /** @@ -694,9 +802,8 @@ public abstract class Arc2D extends RectangularShape { */ public Point2D getEndPoint() { double a = Math.toRadians(getAngleStart() + getAngleExtent()); - return new Point2D.Double( - getX() + (1.0 + Math.cos(a)) * getWidth() / 2.0, - getY() + (1.0 - Math.sin(a)) * getHeight() / 2.0); + return new Point2D.Double(getX() + (1.0 + Math.cos(a)) * getWidth() / 2.0, getY() + + (1.0 - Math.sin(a)) * getHeight() / 2.0); } public Rectangle2D getBounds2D() { @@ -712,8 +819,8 @@ public abstract class Arc2D extends RectangularShape { Point2D p2 = getEndPoint(); double bx1 = containsAngle(180.0) ? rx1 : Math.min(p1.getX(), p2.getX()); - double by1 = containsAngle(90.0) ? ry1 : Math.min(p1.getY(), p2.getY()); - double bx2 = containsAngle(0.0) ? rx2 : Math.max(p1.getX(), p2.getX()); + double by1 = containsAngle(90.0) ? ry1 : Math.min(p1.getY(), p2.getY()); + double bx2 = containsAngle(0.0) ? rx2 : Math.max(p1.getX(), p2.getX()); double by2 = containsAngle(270.0) ? ry2 : Math.max(p1.getY(), p2.getY()); if (type == PIE) { @@ -735,12 +842,17 @@ public abstract class Arc2D extends RectangularShape { /** * Sets the data that defines the arc. * - * @param point the upper left corner of the bounding rectangle. - * @param size the size of the bounding rectangle. - * @param start the start angle of the arc in degrees. - * @param extent the angle witdth of the arc in degrees. - * @param type the closure type, either {@link Arc2D#OPEN}, - * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + * @param point + * the upper left corner of the bounding rectangle. + * @param size + * the size of the bounding rectangle. + * @param start + * the start angle of the arc in degrees. + * @param extent + * the angle width of the arc in degrees. + * @param type + * the closure type, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. */ public void setArc(Point2D point, Dimension2D size, double start, double extent, int type) { setArc(point.getX(), point.getY(), size.getWidth(), size.getHeight(), start, extent, type); @@ -749,11 +861,15 @@ public abstract class Arc2D extends RectangularShape { /** * Sets the data that defines the arc. * - * @param rect the arc's bounding rectangle. - * @param start the start angle of the arc in degrees. - * @param extent the angle witdth of the arc in degrees. - * @param type the closure type, either {@link Arc2D#OPEN}, - * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + * @param rect + * the arc's bounding rectangle. + * @param start + * the start angle of the arc in degrees. + * @param extent + * the angle width of the arc in degrees. + * @param type + * the closure type, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. */ public void setArc(Rectangle2D rect, double start, double extent, int type) { setArc(rect.getX(), rect.getY(), rect.getWidth(), rect.getHeight(), start, extent, type); @@ -762,47 +878,60 @@ public abstract class Arc2D extends RectangularShape { /** * Sets the data that defines the arc by copying it from another Arc2D. * - * @param arc the arc whose data is copied into this arc. + * @param arc + * the arc whose data is copied into this arc. */ public void setArc(Arc2D arc) { - setArc(arc.getX(), arc.getY(), arc.getWidth(), arc.getHeight(), arc - .getAngleStart(), arc.getAngleExtent(), arc.getArcType()); + setArc(arc.getX(), arc.getY(), arc.getWidth(), arc.getHeight(), arc.getAngleStart(), arc + .getAngleExtent(), arc.getArcType()); } /** * Sets the data for a circular arc by giving its center and radius. * - * @param x the x coordinate of the center of the circle. - * @param y the y coordinate of the center of the circle. - * @param radius the radius of the circle. - * @param start the start angle of the arc in degrees. - * @param extent the angle witdth of the arc in degrees. - * @param type the closure type, either {@link Arc2D#OPEN}, - * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + * @param x + * the x coordinate of the center of the circle. + * @param y + * the y coordinate of the center of the circle. + * @param radius + * the radius of the circle. + * @param start + * the start angle of the arc in degrees. + * @param extent + * the angle width of the arc in degrees. + * @param type + * the closure type, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. */ - public void setArcByCenter(double x, double y, double radius, double start, double extent, int type) { + public void setArcByCenter(double x, double y, double radius, double start, double extent, + int type) { setArc(x - radius, y - radius, radius * 2.0, radius * 2.0, start, extent, type); } /** - * Sets the arc data for a circular arc based on two tangent lines - * and the radius. The two tangent lines are the lines from p1 - * to p2 and from p2 to p3, which determine a unique circle - * with the given radius. The start and end points of the arc - * are the points where the circle touches the two lines, and - * the arc itself is the shorter of the two circle segments - * determined by the two points (in other words, it is the - * piece of the circle that is closer to the lines' intersection - * point p2 and forms a concave shape with the segments from p1 to p2 - * and from p2 to p3). + * Sets the arc data for a circular arc based on two tangent lines and the + * radius. The two tangent lines are the lines from p1 to p2 and from p2 to + * p3, which determine a unique circle with the given radius. The start and + * end points of the arc are the points where the circle touches the two + * lines, and the arc itself is the shorter of the two circle segments + * determined by the two points (in other words, it is the piece of the + * circle that is closer to the lines' intersection point p2 and forms a + * concave shape with the segments from p1 to p2 and from p2 to p3). * - * @param p1 a point which determines one of the two tanget lines (with p2). - * @param p2 the point of intersection of the two tangent lines. - * @param p3 a point which determines one of the two tanget lines (with p2). - * @param radius the radius of the circular arc. + * @param p1 + * a point which determines one of the two tangent lines (with + * p2). + * @param p2 + * the point of intersection of the two tangent lines. + * @param p3 + * a point which determines one of the two tangent lines (with + * p2). + * @param radius + * the radius of the circular arc. */ public void setArcByTangent(Point2D p1, Point2D p2, Point2D p3, double radius) { - // Used simple geometric calculations of arc center, radius and angles by tangents + // Used simple geometric calculations of arc center, radius and angles + // by tangents double a1 = -Math.atan2(p1.getY() - p2.getY(), p1.getX() - p2.getX()); double a2 = -Math.atan2(p3.getY() - p2.getY(), p3.getX() - p2.getX()); double am = (a1 + a2) / 2.0; @@ -821,10 +950,11 @@ public abstract class Arc2D extends RectangularShape { } /** - * Sets a new start angle to be the angle given by the the vector - * from the current center point to the specified point. + * Sets a new start angle to be the angle given by the the vector from the + * current center point to the specified point. * - * @param point the point that determines the new start angle. + * @param point + * the point that determines the new start angle. */ public void setAngleStart(Point2D point) { double angle = Math.atan2(point.getY() - getCenterY(), point.getX() - getCenterX()); @@ -832,20 +962,23 @@ public abstract class Arc2D extends RectangularShape { } /** - * Sets the angles in terms of vectors from the current arc center - * to the points (x1, y1) and (x2, y2). The start angle is given - * by the vector from the current center to the point (x1, y1) and - * the end angle is given by the vector from the center to the point - * (x2, y2). + * Sets the angles in terms of vectors from the current arc center to the + * points (x1, y1) and (x2, y2). The start angle is given by the vector from + * the current center to the point (x1, y1) and the end angle is given by + * the vector from the center to the point (x2, y2). * - * @param x1 the x coordinate of the point whose vector from the center - * point determines the new start angle of the arc. - * @param y1 the y coordinate of the point whose vector from the center - * point determines the new start angle of the arc. - * @param x2 the x coordinate of the point whose vector from the center - * point determines the new end angle of the arc. - * @param y2 the y coordinate of the point whose vector from the center - * point determines the new end angle of the arc. + * @param x1 + * the x coordinate of the point whose vector from the center + * point determines the new start angle of the arc. + * @param y1 + * the y coordinate of the point whose vector from the center + * point determines the new start angle of the arc. + * @param x2 + * the x coordinate of the point whose vector from the center + * point determines the new end angle of the arc. + * @param y2 + * the y coordinate of the point whose vector from the center + * point determines the new end angle of the arc. */ public void setAngles(double x1, double y1, double x2, double y2) { double cx = getCenterX(); @@ -861,29 +994,30 @@ public abstract class Arc2D extends RectangularShape { } /** - * Sets the angles in terms of vectors from the current arc center - * to the points p1 and p2. The start angle is given - * by the vector from the current center to the point p1 and - * the end angle is given by the vector from the center to the point - * p2. + * Sets the angles in terms of vectors from the current arc center to the + * points p1 and p2. The start angle is given by the vector from the current + * center to the point p1 and the end angle is given by the vector from the + * center to the point p2. * - * @param p1 the point whose vector from the center - * point determines the new start angle of the arc. - * @param p2 the point whose vector from the center - * point determines the new end angle of the arc. + * @param p1 + * the point whose vector from the center point determines the + * new start angle of the arc. + * @param p2 + * the point whose vector from the center point determines the + * new end angle of the arc. */ public void setAngles(Point2D p1, Point2D p2) { setAngles(p1.getX(), p1.getY(), p2.getX(), p2.getY()); } /** - * Normalizes the angle by removing extra winding (past 360 degrees) - * and placing it in the positive degree range. + * Normalizes the angle by removing extra winding (past 360 degrees) and + * placing it in the positive degree range. * - * @param angle - the source angle in degrees - * - * @return an angle between 0 and 360 degrees which corresponds - * to the same direction vector as the source angle. + * @param angle + * the source angle in degrees. + * @return an angle between 0 and 360 degrees which corresponds to the same + * direction vector as the source angle. */ double getNormAngle(double angle) { double n = Math.floor(angle / 360.0); @@ -893,10 +1027,10 @@ public abstract class Arc2D extends RectangularShape { /** * Determines whether the given angle is contained in the span of the arc. * - * @param angle the angle to test in degrees. - * - * @return true, if the given angle is between the start angle and - * the end angle of the arc. + * @param angle + * the angle to test in degrees. + * @return true, if the given angle is between the start angle and the end + * angle of the arc. */ public boolean containsAngle(double angle) { double extent = getAngleExtent(); @@ -912,8 +1046,7 @@ public abstract class Arc2D extends RectangularShape { if (a2 < 0.0) { return angle >= a2 + 360.0 || angle <= a1; } - return extent > 0.0 ? a1 <= angle && angle <= a2 : a2 <= angle - && angle <= a1; + return extent > 0.0 ? a1 <= angle && angle <= a2 : a2 <= angle && angle <= a1; } public boolean contains(double px, double py) { @@ -931,8 +1064,7 @@ public abstract class Arc2D extends RectangularShape { return true; } - boolean containsAngle = containsAngle(Math.toDegrees(-Math - .atan2(ny, nx))); + boolean containsAngle = containsAngle(Math.toDegrees(-Math.atan2(ny, nx))); if (type == PIE) { return containsAngle; } @@ -943,14 +1075,13 @@ public abstract class Arc2D extends RectangularShape { Line2D l = new Line2D.Double(getStartPoint(), getEndPoint()); int ccw1 = l.relativeCCW(px, py); int ccw2 = l.relativeCCW(getCenterX(), getCenterY()); - return ccw1 == 0 || ccw2 == 0 - || ((ccw1 + ccw2) == 0 ^ absExtent > 180.0); + return ccw1 == 0 || ccw2 == 0 || ((ccw1 + ccw2) == 0 ^ absExtent > 180.0); } public boolean contains(double rx, double ry, double rw, double rh) { - if (!(contains(rx, ry) && contains(rx + rw, ry) - && contains(rx + rw, ry + rh) && contains(rx, ry + rh))) { + if (!(contains(rx, ry) && contains(rx + rw, ry) && contains(rx + rw, ry + rh) && contains( + rx, ry + rh))) { return false; } @@ -1003,9 +1134,8 @@ public abstract class Arc2D extends RectangularShape { } if (type == PIE) { - if (r.intersectsLine(p1.getX(), p1.getY(), cx, cy) || - r.intersectsLine(p2.getX(), p2.getY(), cx, cy)) - { + if (r.intersectsLine(p1.getX(), p1.getY(), cx, cy) + || r.intersectsLine(p2.getX(), p2.getY(), cx, cy)) { return true; } } else { @@ -1025,4 +1155,3 @@ public abstract class Arc2D extends RectangularShape { } } - diff --git a/awt/java/awt/geom/Area.java b/awt/java/awt/geom/Area.java index bc27d4e..e6619e3 100644 --- a/awt/java/awt/geom/Area.java +++ b/awt/java/awt/geom/Area.java @@ -18,6 +18,7 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt.geom; import java.awt.Rectangle; @@ -27,13 +28,18 @@ import java.awt.geom.Rectangle2D; import java.util.NoSuchElementException; import org.apache.harmony.awt.internal.nls.Messages; +import org.apache.harmony.luni.util.NotImplementedException; /** * The Class Area provides a minimal implementation for a generic shape. + * + * @since Android 1.0 */ public class Area implements Shape, Cloneable { - /** The source Shape object. */ + /** + * The source Shape object. + */ Shape s; /** @@ -80,7 +86,8 @@ public class Area implements Shape, Cloneable { /** * Instantiates a new area with data given by the specified shape. * - * @param s the shape that gives the data for this Area + * @param s + * the shape that gives the data for this Area. */ public Area(Shape s) { if (s == null) { @@ -114,11 +121,11 @@ public class Area implements Shape, Cloneable { /** * Tests whether the object is equal to this Area. * - * @param obj the object to compare - * - * @return true, if successful - * - * @throws NotImplementedException if this method is not implemented + * @param obj + * the object to compare. + * @return true, if successful. + * @throws NotImplementedException + * if this method is not implemented. */ public boolean equals(Area obj) throws org.apache.harmony.luni.util.NotImplementedException { throw new RuntimeException("Not implemented"); //$NON-NLS-1$ @@ -140,7 +147,7 @@ public class Area implements Shape, Cloneable { } public Rectangle2D getBounds2D() { - return s == null ? new Rectangle2D.Double(): s.getBounds2D(); + return s == null ? new Rectangle2D.Double() : s.getBounds2D(); } public PathIterator getPathIterator(AffineTransform t) { @@ -154,32 +161,34 @@ public class Area implements Shape, Cloneable { /** * Adds the specified area to this area. * - * @param area the area to add to this area - * - * @throws NotImplementedException if this method is not implemented + * @param area + * the area to add to this area. + * @throws NotImplementedException + * if this method is not implemented. */ public void add(Area area) throws org.apache.harmony.luni.util.NotImplementedException { throw new RuntimeException("Not implemented"); //$NON-NLS-1$ } /** - * Performs an exclusive or operation between this shape and the - * specified shape. + * Performs an exclusive or operation between this shape and the specified + * shape. * - * @param area the area to XOR against this area - * - * @throws NotImplementedException if this method is not implemented + * @param area + * the area to XOR against this area. + * @throws NotImplementedException + * if this method is not implemented. */ public void exclusiveOr(Area area) throws org.apache.harmony.luni.util.NotImplementedException { throw new RuntimeException("Not implemented"); //$NON-NLS-1$ } /** - * Extracts a Rectangle2D from the source shape if the underlying shape - * data describes a rectangle. + * Extracts a Rectangle2D from the source shape if the underlying shape data + * describes a rectangle. * - * @return a Rectangle2D object if the source shape is rectangle, - * or null if shape is empty or not rectangle. + * @return a Rectangle2D object if the source shape is rectangle, or null if + * shape is empty or not rectangle. */ Rectangle2D extractRectangle() { if (s == null) { @@ -189,7 +198,7 @@ public class Area implements Shape, Cloneable { int count = 0; PathIterator p = s.getPathIterator(null); float[] coords = new float[6]; - while(!p.isDone()) { + while (!p.isDone()) { int type = p.currentSegment(coords); if (count > 12 || type == PathIterator.SEG_QUADTO || type == PathIterator.SEG_CUBICTO) { return null; @@ -198,21 +207,22 @@ public class Area implements Shape, Cloneable { points[count++] = coords[1]; p.next(); } - if (points[0] == points[6] && points[6] == points[8] && points[2] == points[4] && - points[1] == points[3] && points[3] == points[9] && points[5] == points[7]) - { - return new Rectangle2D.Float(points[0], points[1], points[2] - points[0], points[7] - points[1]); + if (points[0] == points[6] && points[6] == points[8] && points[2] == points[4] + && points[1] == points[3] && points[3] == points[9] && points[5] == points[7]) { + return new Rectangle2D.Float(points[0], points[1], points[2] - points[0], points[7] + - points[1]); } return null; } - + /** - * Reduces the size of this Area by intersecting it with the - * specified Area if they are both rectangles. + * Reduces the size of this Area by intersecting it with the specified Area + * if they are both rectangles. * - * @see java.awt.geom.Rectangle2D#intersect(Rectangle2D, Rectangle2D, Rectangle2D) - * - * @param area the area + * @see java.awt.geom.Rectangle2D#intersect(Rectangle2D, Rectangle2D, + * Rectangle2D) + * @param area + * the area. */ public void intersect(Area area) { Rectangle2D src1 = extractRectangle(); @@ -225,9 +235,10 @@ public class Area implements Shape, Cloneable { /** * Subtract the specified area from this area. * - * @param area the area to subtract - * - * @throws NotImplementedException if this method is not implemented + * @param area + * the area to subtract. + * @throws NotImplementedException + * if this method is not implemented. */ public void subtract(Area area) throws org.apache.harmony.luni.util.NotImplementedException { throw new RuntimeException("Not implemented"); //$NON-NLS-1$ @@ -236,9 +247,9 @@ public class Area implements Shape, Cloneable { /** * Checks if this Area is empty. * - * @return true, if this Area is empty - * - * @throws NotImplementedException if this method is not implemented + * @return true, if this Area is empty. + * @throws NotImplementedException + * if this method is not implemented. */ public boolean isEmpty() throws org.apache.harmony.luni.util.NotImplementedException { throw new RuntimeException("Not implemented"); //$NON-NLS-1$ @@ -247,9 +258,9 @@ public class Area implements Shape, Cloneable { /** * Checks if this Area is polygonal. * - * @return true, if this Area is polygonal - * - * @throws NotImplementedException if this method is not implemented + * @return true, if this Area is polygonal. + * @throws NotImplementedException + * if this method is not implemented. */ public boolean isPolygonal() throws org.apache.harmony.luni.util.NotImplementedException { throw new RuntimeException("Not implemented"); //$NON-NLS-1$ @@ -258,9 +269,9 @@ public class Area implements Shape, Cloneable { /** * Checks if this Area is rectangular. * - * @return true, if this Area is rectangular - * - * @throws NotImplementedException if this method is not implemented + * @return true, if this Area is rectangular. + * @throws NotImplementedException + * if this method is not implemented. */ public boolean isRectangular() throws org.apache.harmony.luni.util.NotImplementedException { throw new RuntimeException("Not implemented"); //$NON-NLS-1$ @@ -269,9 +280,9 @@ public class Area implements Shape, Cloneable { /** * Checks if this Area is singular. * - * @return true, if this Area is singular - * - * @throws NotImplementedException if this method is not implemented + * @return true, if this Area is singular. + * @throws NotImplementedException + * if this method is not implemented. */ public boolean isSingular() throws org.apache.harmony.luni.util.NotImplementedException { throw new RuntimeException("Not implemented"); //$NON-NLS-1$ @@ -280,30 +291,32 @@ public class Area implements Shape, Cloneable { /** * Resets the data of this Area. * - * @throws NotImplementedException if this method is not implemented + * @throws NotImplementedException + * if this method is not implemented. */ public void reset() throws org.apache.harmony.luni.util.NotImplementedException { throw new RuntimeException("Not implemented"); //$NON-NLS-1$ } /** - * Transforms the data of this Area according to the specified + * Transforms the data of this Area according to the specified * AffineTransform. * - * @param t the transform to use to transform the data + * @param t + * the transform to use to transform the data. */ public void transform(AffineTransform t) { s = t.createTransformedShape(s); } /** - * Creates a new Area that is the result of transforming the data - * of this Area according to the specified AffineTransform. - * - * @param t the transform to use to transform the data + * Creates a new Area that is the result of transforming the data of this + * Area according to the specified AffineTransform. * - * @return the new Area that is the result of transforming the data - * of this Area according to the specified AffineTransform. + * @param t + * the transform to use to transform the data. + * @return the new Area that is the result of transforming the data of this + * Area according to the specified AffineTransform. */ public Area createTransformedArea(AffineTransform t) { return s == null ? new Area() : new Area(t.createTransformedShape(s)); diff --git a/awt/java/awt/geom/CubicCurve2D.java b/awt/java/awt/geom/CubicCurve2D.java index 3e440c8..1ddedf3 100644 --- a/awt/java/awt/geom/CubicCurve2D.java +++ b/awt/java/awt/geom/CubicCurve2D.java @@ -18,6 +18,7 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt.geom; import java.awt.Rectangle; @@ -28,49 +29,69 @@ import org.apache.harmony.awt.gl.Crossing; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Class CubicCurve2D is a Shape that represents a segment of a - * quadratic (Bezier) curve. The curved segment is determined by four points: - * a start point, an end point, and two control points. - * The control points give information about the tangent and next - * derivative at the endpoints according to the standard theory of - * Bezier curves. For more information on Bezier curves, - * see <a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve">this article</a>. + * The Class CubicCurve2D is a Shape that represents a segment of a quadratic + * (Bezier) curve. The curved segment is determined by four points: a start + * point, an end point, and two control points. The control points give + * information about the tangent and next derivative at the endpoints according + * to the standard theory of Bezier curves. For more information on Bezier + * curves, see <a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve">this + * article</a>. + * + * @since Android 1.0 */ public abstract class CubicCurve2D implements Shape, Cloneable { /** - * The Class Float is the subclass of CubicCurve2D that has all - * of its data values stored with float-level precision. + * The Class Float is the subclass of CubicCurve2D that has all of its data + * values stored with float-level precision. + * + * @since Android 1.0 */ public static class Float extends CubicCurve2D { - /** The x coordinate of the starting point. */ + /** + * The x coordinate of the starting point. + */ public float x1; - - /** The y coordinate of the starting point. */ + + /** + * The y coordinate of the starting point. + */ public float y1; - - /** The x coordinate of the first control point. */ + + /** + * The x coordinate of the first control point. + */ public float ctrlx1; - - /** The y coordinate of the first control point. */ + + /** + * The y coordinate of the first control point. + */ public float ctrly1; - - /** The x coordinate of the second control point. */ + + /** + * The x coordinate of the second control point. + */ public float ctrlx2; - - /** The y coordinate of the second control point. */ + + /** + * The y coordinate of the second control point. + */ public float ctrly2; - - /** The x coordinate of the end point. */ + + /** + * The x coordinate of the end point. + */ public float x2; - - /** The y coordinate of the end point. */ + + /** + * The y coordinate of the end point. + */ public float y2; /** - * Instantiates a new float-valued CubicCurve2D with all coordinate values - * set to zero. + * Instantiates a new float-valued CubicCurve2D with all coordinate + * values set to zero. */ public Float() { } @@ -79,16 +100,25 @@ public abstract class CubicCurve2D implements Shape, Cloneable { * Instantiates a new float-valued CubicCurve2D with the specified * coordinate values. * - * @param x1 the x coordinate of the starting point - * @param y1 the y coordinate of the starting point - * @param ctrlx1 the x coordinate of the first control point - * @param ctrly1 the y coordinate of the first control point - * @param ctrlx2 the x coordinate of the second control point - * @param ctrly2 the y coordinate of the second control point - * @param x2 the x coordinate of the end point - * @param y2 the y coordinate of the end point + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param ctrlx1 + * the x coordinate of the first control point. + * @param ctrly1 + * the y coordinate of the first control point. + * @param ctrlx2 + * the x coordinate of the second control point. + * @param ctrly2 + * the y coordinate of the second control point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. */ - public Float(float x1, float y1, float ctrlx1, float ctrly1, float ctrlx2, float ctrly2, float x2, float y2) { + public Float(float x1, float y1, float ctrlx1, float ctrly1, float ctrlx2, float ctrly2, + float x2, float y2) { setCurve(x1, y1, ctrlx1, ctrly1, ctrlx2, ctrly2, x2, y2); } @@ -153,9 +183,8 @@ public abstract class CubicCurve2D implements Shape, Cloneable { } @Override - public void setCurve(double x1, double y1, double ctrlx1, double ctrly1, - double ctrlx2, double ctrly2, double x2, double y2) - { + public void setCurve(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, + double ctrly2, double x2, double y2) { this.x1 = (float)x1; this.y1 = (float)y1; this.ctrlx1 = (float)ctrlx1; @@ -169,18 +198,25 @@ public abstract class CubicCurve2D implements Shape, Cloneable { /** * Sets the data values of the curve. * - * @param x1 the x coordinate of the starting point - * @param y1 the y coordinate of the starting point - * @param ctrlx1 the x coordinate of the first control point - * @param ctrly1 the y coordinate of the first control point - * @param ctrlx2 the x coordinate of the second control point - * @param ctrly2 the y coordinate of the second control point - * @param x2 the x coordinate of the end point - * @param y2 the y coordinate of the end point + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param ctrlx1 + * the x coordinate of the first control point. + * @param ctrly1 + * the y coordinate of the first control point. + * @param ctrlx2 + * the x coordinate of the second control point. + * @param ctrly2 + * the y coordinate of the second control point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. */ - public void setCurve(float x1, float y1, float ctrlx1, float ctrly1, - float ctrlx2, float ctrly2, float x2, float y2) - { + public void setCurve(float x1, float y1, float ctrlx1, float ctrly1, float ctrlx2, + float ctrly2, float x2, float y2) { this.x1 = x1; this.y1 = y1; this.ctrlx1 = ctrlx1; @@ -201,38 +237,56 @@ public abstract class CubicCurve2D implements Shape, Cloneable { } /** - * The Class Double is the subclass of CubicCurve2D that has all - * of its data values stored with double-level precision. + * The Class Double is the subclass of CubicCurve2D that has all of its data + * values stored with double-level precision. + * + * @since Android 1.0 */ public static class Double extends CubicCurve2D { - /** The x coordinate of the starting point. */ + /** + * The x coordinate of the starting point. + */ public double x1; - - /** The y coordinate of the starting point. */ + + /** + * The y coordinate of the starting point. + */ public double y1; - - /** The x coordinate of the first control point. */ + + /** + * The x coordinate of the first control point. + */ public double ctrlx1; - - /** The y coordinate of the first control point. */ + + /** + * The y coordinate of the first control point. + */ public double ctrly1; - - /** The x coordinate of the second control point. */ + + /** + * The x coordinate of the second control point. + */ public double ctrlx2; - - /** The y coordinate of the second control point. */ + + /** + * The y coordinate of the second control point. + */ public double ctrly2; - - /** The x coordinate of the end point. */ + + /** + * The x coordinate of the end point. + */ public double x2; - - /** The y coordinate of the end point. */ + + /** + * The y coordinate of the end point. + */ public double y2; /** - * Instantiates a new double-valued CubicCurve2D with all coordinate values - * set to zero. + * Instantiates a new double-valued CubicCurve2D with all coordinate + * values set to zero. */ public Double() { } @@ -241,17 +295,25 @@ public abstract class CubicCurve2D implements Shape, Cloneable { * Instantiates a new double-valued CubicCurve2D with the specified * coordinate values. * - * @param x1 the x coordinate of the starting point - * @param y1 the y coordinate of the starting point - * @param ctrlx1 the x coordinate of the first control point - * @param ctrly1 the y coordinate of the first control point - * @param ctrlx2 the x coordinate of the second control point - * @param ctrly2 the y coordinate of the second control point - * @param x2 the x coordinate of the end point - * @param y2 the y coordinate of the end point + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param ctrlx1 + * the x coordinate of the first control point. + * @param ctrly1 + * the y coordinate of the first control point. + * @param ctrlx2 + * the x coordinate of the second control point. + * @param ctrly2 + * the y coordinate of the second control point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. */ - public Double(double x1, double y1, double ctrlx1, double ctrly1, - double ctrlx2, double ctrly2, double x2, double y2) { + public Double(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, + double ctrly2, double x2, double y2) { setCurve(x1, y1, ctrlx1, ctrly1, ctrlx2, ctrly2, x2, y2); } @@ -316,9 +378,8 @@ public abstract class CubicCurve2D implements Shape, Cloneable { } @Override - public void setCurve(double x1, double y1, double ctrlx1, double ctrly1, - double ctrlx2, double ctrly2, double x2, double y2) - { + public void setCurve(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, + double ctrly2, double x2, double y2) { this.x1 = x1; this.y1 = y1; this.ctrlx1 = ctrlx1; @@ -339,27 +400,36 @@ public abstract class CubicCurve2D implements Shape, Cloneable { } /* - * CubicCurve2D path iterator + * CubicCurve2D path iterator */ /** * The Iterator class for the Shape CubicCurve2D. */ class Iterator implements PathIterator { - /** The source CubicCurve2D object. */ + /** + * The source CubicCurve2D object. + */ CubicCurve2D c; - - /** The path iterator transformation. */ + + /** + * The path iterator transformation. + */ AffineTransform t; - - /** The current segmenet index. */ + + /** + * The current segment index. + */ int index; /** - * Constructs a new CubicCurve2D.Iterator for given line and transformation + * Constructs a new CubicCurve2D.Iterator for given line and + * transformation * - * @param c - the source CubicCurve2D object - * @param t the t + * @param c + * the source CubicCurve2D object. + * @param t + * the affine transformation object. */ Iterator(CubicCurve2D c, AffineTransform t) { this.c = c; @@ -443,42 +513,42 @@ public abstract class CubicCurve2D implements Shape, Cloneable { /** * Gets the x coordinate of the starting point. * - * @return the x coordinate of the starting point + * @return the x coordinate of the starting point. */ public abstract double getX1(); /** * Gets the y coordinate of the starting point. * - * @return the y coordinate of the starting point + * @return the y coordinate of the starting point. */ public abstract double getY1(); /** * Gets the starting point. * - * @return the starting point + * @return the starting point. */ public abstract Point2D getP1(); /** * Gets the x coordinate of the first control point. * - * @return the x coordinate of the first control point + * @return the x coordinate of the first control point. */ public abstract double getCtrlX1(); /** * Gets the y coordinate of the first control point. * - * @return the y coordinate of the first control point + * @return the y coordinate of the first control point. */ public abstract double getCtrlY1(); /** * Gets the second control point. * - * @return the second control point + * @return the second control point. */ public abstract Point2D getCtrlP1(); @@ -499,42 +569,50 @@ public abstract class CubicCurve2D implements Shape, Cloneable { /** * Gets the second control point. * - * @return the second control point + * @return the second control point. */ public abstract Point2D getCtrlP2(); /** * Gets the x coordinate of the end point. * - * @return the x coordinate of the end point + * @return the x coordinate of the end point. */ public abstract double getX2(); /** * Gets the y coordinate of the end point. * - * @return the y coordinate of the end point + * @return the y coordinate of the end point. */ public abstract double getY2(); /** * Gets the end point. * - * @return the end point + * @return the end point. */ public abstract Point2D getP2(); /** * Sets the data of the curve. * - * @param x1 the x coordinate of the starting point - * @param y1 the y coordinate of the starting point - * @param ctrlx1 the x coordinate of the first control point - * @param ctrly1 the y coordinate of the first control point - * @param ctrlx2 the x coordinate of the second control point - * @param ctrly2 the y coordinate of the second control point - * @param x2 the x coordinate of the end point - * @param y2 the y coordinate of the end point + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param ctrlx1 + * the x coordinate of the first control point. + * @param ctrly1 + * the y coordinate of the first control point. + * @param ctrlx2 + * the x coordinate of the second control point. + * @param ctrly2 + * the y coordinate of the second control point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. */ public abstract void setCurve(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2); @@ -542,224 +620,238 @@ public abstract class CubicCurve2D implements Shape, Cloneable { /** * Sets the data of the curve as point objects. * - * @param p1 the starting point - * @param cp1 the first control point - * @param cp2 the second control point - * @param p2 the end point - * - * @throws NullPointerException if any of the points is null. + * @param p1 + * the starting point. + * @param cp1 + * the first control point. + * @param cp2 + * the second control point. + * @param p2 + * the end point. + * @throws NullPointerException + * if any of the points is null. */ public void setCurve(Point2D p1, Point2D cp1, Point2D cp2, Point2D p2) { - setCurve( - p1.getX(), p1.getY(), - cp1.getX(), cp1.getY(), - cp2.getX(), cp2.getY(), - p2.getX(), p2.getY()); + setCurve(p1.getX(), p1.getY(), cp1.getX(), cp1.getY(), cp2.getX(), cp2.getY(), p2.getX(), + p2.getY()); } /** - * Sets the data of the curve by reading the data from an array - * of values. The values are read in the same order as the arguments - * of the method {@link CubicCurve2D#setCurve(double, double, double, double, double, double, double, double)}. - * - * @param coords the array of values containing the new coordinates - * @param offset the offset of the data to read within the array + * Sets the data of the curve by reading the data from an array of values. + * The values are read in the same order as the arguments of the method + * {@link CubicCurve2D#setCurve(double, double, double, double, double, double, double, double)} + * . * - * @throws ArrayIndexOutOfBoundsException if coords.length < offset + 8. - * @throws NullPointerException if the coordinate array is null. + * @param coords + * the array of values containing the new coordinates. + * @param offset + * the offset of the data to read within the array. + * @throws ArrayIndexOutOfBoundsException + * if {@code coords.length} < offset + 8. + * @throws NullPointerException + * if the coordinate array is null. */ public void setCurve(double[] coords, int offset) { - setCurve( - coords[offset + 0], coords[offset + 1], - coords[offset + 2], coords[offset + 3], - coords[offset + 4], coords[offset + 5], - coords[offset + 6], coords[offset + 7]); + setCurve(coords[offset + 0], coords[offset + 1], coords[offset + 2], coords[offset + 3], + coords[offset + 4], coords[offset + 5], coords[offset + 6], coords[offset + 7]); } /** - * Sets the data of the curve by reading the data from an array - * of points. The values are read in the same order as the arguments - * of the method {@link CubicCurve2D#setCurve(Point2D, Point2D, Point2D, Point2D)} + * Sets the data of the curve by reading the data from an array of points. + * The values are read in the same order as the arguments of the method + * {@link CubicCurve2D#setCurve(Point2D, Point2D, Point2D, Point2D)} * - * @param points the array of points containing the new coordinates - * @param offset the offset of the data to read within the array - * - * @throws ArrayIndexOutOfBoundsException if points.length < offset + . - * @throws NullPointerException if the point array is null. + * @param points + * the array of points containing the new coordinates. + * @param offset + * the offset of the data to read within the array. + * @throws ArrayIndexOutOfBoundsException + * if {@code points.length} < offset + . + * @throws NullPointerException + * if the point array is null. */ public void setCurve(Point2D[] points, int offset) { - setCurve( - points[offset + 0].getX(), points[offset + 0].getY(), - points[offset + 1].getX(), points[offset + 1].getY(), - points[offset + 2].getX(), points[offset + 2].getY(), + setCurve(points[offset + 0].getX(), points[offset + 0].getY(), points[offset + 1].getX(), + points[offset + 1].getY(), points[offset + 2].getX(), points[offset + 2].getY(), points[offset + 3].getX(), points[offset + 3].getY()); } /** * Sets the data of the curve by copying it from another CubicCurve2D. * - * @param curve the curve to copy the data points from - * - * @throws NullPointerException if the curve is null. + * @param curve + * the curve to copy the data points from. + * @throws NullPointerException + * if the curve is null. */ public void setCurve(CubicCurve2D curve) { - setCurve( - curve.getX1(), curve.getY1(), - curve.getCtrlX1(), curve.getCtrlY1(), - curve.getCtrlX2(), curve.getCtrlY2(), - curve.getX2(), curve.getY2()); + setCurve(curve.getX1(), curve.getY1(), curve.getCtrlX1(), curve.getCtrlY1(), curve + .getCtrlX2(), curve.getCtrlY2(), curve.getX2(), curve.getY2()); } /** - * Gets the square of the flatness of this curve, where the flatness is the - * maximum distance from the curves control points to the - * line segment connecting the two points. + * Gets the square of the flatness of this curve, where the flatness is the + * maximum distance from the curves control points to the line segment + * connecting the two points. * - * @return the square of the flatness + * @return the square of the flatness. */ public double getFlatnessSq() { - return getFlatnessSq( - getX1(), getY1(), - getCtrlX1(), getCtrlY1(), - getCtrlX2(), getCtrlY2(), + return getFlatnessSq(getX1(), getY1(), getCtrlX1(), getCtrlY1(), getCtrlX2(), getCtrlY2(), getX2(), getY2()); } /** - * Gets the square of the flatness of the cubic curve segment - * defined by the specified values. + * Gets the square of the flatness of the cubic curve segment defined by the + * specified values. * - * @param x1 the x coordinate of the starting point - * @param y1 the y coordinate of the starting point - * @param ctrlx1 the x coordinate of the first control point - * @param ctrly1 the y coordinate of the first control point - * @param ctrlx2 the x coordinate of the second control point - * @param ctrly2 the y coordinate of the second control point - * @param x2 the x coordinate of the end point - * @param y2 the y coordinate of the end point - * - * @return the square of the flatness + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param ctrlx1 + * the x coordinate of the first control point. + * @param ctrly1 + * the y coordinate of the first control point. + * @param ctrlx2 + * the x coordinate of the second control point. + * @param ctrly2 + * the y coordinate of the second control point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. + * @return the square of the flatness. */ public static double getFlatnessSq(double x1, double y1, double ctrlx1, double ctrly1, - double ctrlx2, double ctrly2, double x2, double y2) - { - return Math.max( - Line2D.ptSegDistSq(x1, y1, x2, y2, ctrlx1, ctrly1), - Line2D.ptSegDistSq(x1, y1, x2, y2, ctrlx2, ctrly2)); + double ctrlx2, double ctrly2, double x2, double y2) { + return Math.max(Line2D.ptSegDistSq(x1, y1, x2, y2, ctrlx1, ctrly1), Line2D.ptSegDistSq(x1, + y1, x2, y2, ctrlx2, ctrly2)); } /** - * Gets the square of the flatness of the cubic curve segment - * defined by the specified values. The values are read in the same order as the arguments - * of the method {@link CubicCurve2D#getFlatnessSq(double, double, double, double, double, double, double, double)}. - * - * @param coords the array of points containing the new coordinates - * @param offset the offset of the data to read within the array + * Gets the square of the flatness of the cubic curve segment defined by the + * specified values. The values are read in the same order as the arguments + * of the method + * {@link CubicCurve2D#getFlatnessSq(double, double, double, double, double, double, double, double)} + * . * - * @return the square of the flatness - * - * @throws ArrayIndexOutOfBoundsException if points.length < offset + . - * @throws NullPointerException if the point array is null. + * @param coords + * the array of points containing the new coordinates. + * @param offset + * the offset of the data to read within the array. + * @return the square of the flatness. + * @throws ArrayIndexOutOfBoundsException + * if points.length < offset + . + * @throws NullPointerException + * if the point array is null. */ public static double getFlatnessSq(double coords[], int offset) { - return getFlatnessSq( - coords[offset + 0], coords[offset + 1], - coords[offset + 2], coords[offset + 3], - coords[offset + 4], coords[offset + 5], - coords[offset + 6], coords[offset + 7]); + return getFlatnessSq(coords[offset + 0], coords[offset + 1], coords[offset + 2], + coords[offset + 3], coords[offset + 4], coords[offset + 5], coords[offset + 6], + coords[offset + 7]); } /** - * Gets the flatness of this curve, where the flatness is the - * maximum distance from the curves control points to the - * line segment connecting the two points. + * Gets the flatness of this curve, where the flatness is the maximum + * distance from the curves control points to the line segment connecting + * the two points. * - * @return the flatness of this curve + * @return the flatness of this curve. */ public double getFlatness() { - return getFlatness( - getX1(), getY1(), - getCtrlX1(), getCtrlY1(), - getCtrlX2(), getCtrlY2(), + return getFlatness(getX1(), getY1(), getCtrlX1(), getCtrlY1(), getCtrlX2(), getCtrlY2(), getX2(), getY2()); } /** - * Gets the flatness of the cubic curve segment - * defined by the specified values. - * - * @param x1 the x coordinate of the starting point - * @param y1 the y coordinate of the starting point - * @param ctrlx1 the x coordinate of the first control point - * @param ctrly1 the y coordinate of the first control point - * @param ctrlx2 the x coordinate of the second control point - * @param ctrly2 the y coordinate of the second control point - * @param x2 the x coordinate of the end point - * @param y2 the y coordinate of the end point + * Gets the flatness of the cubic curve segment defined by the specified + * values. * - * @return the flatness + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param ctrlx1 + * the x coordinate of the first control point. + * @param ctrly1 + * the y coordinate of the first control point. + * @param ctrlx2 + * the x coordinate of the second control point. + * @param ctrly2 + * the y coordinate of the second control point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. + * @return the flatness. */ public static double getFlatness(double x1, double y1, double ctrlx1, double ctrly1, - double ctrlx2, double ctrly2, double x2, double y2) - { + double ctrlx2, double ctrly2, double x2, double y2) { return Math.sqrt(getFlatnessSq(x1, y1, ctrlx1, ctrly1, ctrlx2, ctrly2, x2, y2)); } /** - * Gets the flatness of the cubic curve segment - * defined by the specified values. The values are read in the same order as the arguments - * of the method {@link CubicCurve2D#getFlatness(double, double, double, double, double, double, double, double)}. + * Gets the flatness of the cubic curve segment defined by the specified + * values. The values are read in the same order as the arguments of the + * method + * {@link CubicCurve2D#getFlatness(double, double, double, double, double, double, double, double)} + * . * - * @param coords the array of points containing the new coordinates - * @param offset the offset of the data to read within the array - * - * @return the flatness - * - * @throws ArrayIndexOutOfBoundsException if points.length < offset + . - * @throws NullPointerException if the point array is null. + * @param coords + * the array of points containing the new coordinates. + * @param offset + * the offset of the data to read within the array. + * @return the flatness. + * @throws ArrayIndexOutOfBoundsException + * if points.length < offset + . + * @throws NullPointerException + * if the point array is null. */ public static double getFlatness(double coords[], int offset) { - return getFlatness( - coords[offset + 0], coords[offset + 1], - coords[offset + 2], coords[offset + 3], - coords[offset + 4], coords[offset + 5], - coords[offset + 6], coords[offset + 7]); + return getFlatness(coords[offset + 0], coords[offset + 1], coords[offset + 2], + coords[offset + 3], coords[offset + 4], coords[offset + 5], coords[offset + 6], + coords[offset + 7]); } /** - * Creates the data for two cubic curves by dividing this - * curve in two. The division point is the point on the curve - * that is closest to the average of curve's two control points. - * The two new control points (nearest the new endpoint) are computed - * by averaging the original control points with the new endpoint. - * The data of this curve is left unchanged. - * - * @param left the CubicCurve2D where the left (start) segment's - * data is written - * @param right the CubicCurve2D where the right (end) segment's - * data is written + * Creates the data for two cubic curves by dividing this curve in two. The + * division point is the point on the curve that is closest to the average + * of curve's two control points. The two new control points (nearest the + * new endpoint) are computed by averaging the original control points with + * the new endpoint. The data of this curve is left unchanged. * - * @throws NullPointerException if either curve is null. + * @param left + * the CubicCurve2D where the left (start) segment's data is + * written. + * @param right + * the CubicCurve2D where the right (end) segment's data is + * written. + * @throws NullPointerException + * if either curve is null. */ public void subdivide(CubicCurve2D left, CubicCurve2D right) { subdivide(this, left, right); } /** - * Creates the data for two cubic curves by dividing the specified - * curve in two. The division point is the point on the curve - * that is closest to the average of curve's two control points. - * The two new control points (nearest the new endpoint) are computed - * by averaging the original control points with the new endpoint. - * The data of the source curve is left unchanged. + * Creates the data for two cubic curves by dividing the specified curve in + * two. The division point is the point on the curve that is closest to the + * average of curve's two control points. The two new control points + * (nearest the new endpoint) are computed by averaging the original control + * points with the new endpoint. The data of the source curve is left + * unchanged. * - * @param src the original curve to be divided in two - * @param left the CubicCurve2D where the left (start) segment's - * data is written - * @param right the CubicCurve2D where the right (end) segment's - * data is written - * - * @throws NullPointerException if either curve is null. + * @param src + * the original curve to be divided in two. + * @param left + * the CubicCurve2D where the left (start) segment's data is + * written. + * @param right + * the CubicCurve2D where the right (end) segment's data is + * written. + * @throws NullPointerException + * if either curve is null. */ public static void subdivide(CubicCurve2D src, CubicCurve2D left, CubicCurve2D right) { double x1 = src.getX1(); @@ -791,27 +883,36 @@ public abstract class CubicCurve2D implements Shape, Cloneable { } /** - * Creates the data for two cubic curves by dividing the specified - * curve in two. The division point is the point on the curve - * that is closest to the average of curve's two control points. - * The two new control points (nearest the new endpoint) are computed - * by averaging the original control points with the new endpoint. - * The data of the source curve is left unchanged. The data for the - * three curves is read/written in the usual order: { x1, y1, - * ctrlx1, ctrly1, ctrlx2, crtry2, x2, y3 } - * - * @param src the array that gives the data values for the source curve - * @param srcOff the offset in the src array to read the values from - * @param left the array where the coordinates of the start curve should be written - * @param leftOff the offset in the left array to start writing the values - * @param right the array where the coordinates of the end curve should be written - * @param rightOff the offset in the right array to start writing the values + * Creates the data for two cubic curves by dividing the specified curve in + * two. The division point is the point on the curve that is closest to the + * average of curve's two control points. The two new control points + * (nearest the new endpoint) are computed by averaging the original control + * points with the new endpoint. The data of the source curve is left + * unchanged. The data for the three curves is read/written in the usual + * order: { x1, y1, ctrlx1, ctrly1, ctrlx2, crtry2, x2, y3 } * - * @throws ArrayIndexOutOfBoundsException if src.length < srcoff + 8 - * or if left.length < leftOff + 8 or if right.length < rightOff + 8. - * @throws NullPointerException if one of the arrays is null. + * @param src + * the array that gives the data values for the source curve. + * @param srcOff + * the offset in the src array to read the values from. + * @param left + * the array where the coordinates of the start curve should be + * written. + * @param leftOff + * the offset in the left array to start writing the values. + * @param right + * the array where the coordinates of the end curve should be + * written. + * @param rightOff + * the offset in the right array to start writing the values. + * @throws ArrayIndexOutOfBoundsException + * if src.length < srcoff + 8 or if left.length < leftOff + 8 or + * if right.length < rightOff + 8. + * @throws NullPointerException + * if one of the arrays is null. */ - public static void subdivide(double src[], int srcOff, double left[], int leftOff, double right[], int rightOff) { + public static void subdivide(double src[], int srcOff, double left[], int leftOff, + double right[], int rightOff) { double x1 = src[srcOff + 0]; double y1 = src[srcOff + 1]; double cx1 = src[srcOff + 2]; @@ -855,42 +956,43 @@ public abstract class CubicCurve2D implements Shape, Cloneable { } /** - * Finds the roots of the cubic polynomial. This is - * accomplished by finding the (real) values of x that solve - * the following equation: eqn[3]*x*x*x + eqn[2]*x*x + eqn[1]*x + eqn[0] = 0. - * The solutions are written back into the array eqn starting - * from the index 0 in the array. The return value tells how - * many array elements have been changed by this method call. + * Finds the roots of the cubic polynomial. This is accomplished by finding + * the (real) values of x that solve the following equation: eqn[3]*x*x*x + + * eqn[2]*x*x + eqn[1]*x + eqn[0] = 0. The solutions are written back into + * the array eqn starting from the index 0 in the array. The return value + * tells how many array elements have been changed by this method call. * - * @param eqn an array containing the coefficients of the - * cubic polynomial to solve. - * - * @return the number of roots of the cubic polynomial - * - * @throws ArrayIndexOutOfBoundsException if eqn.length < 4. - * @throws NullPointerException if the array is null. + * @param eqn + * an array containing the coefficients of the cubic polynomial + * to solve. + * @return the number of roots of the cubic polynomial. + * @throws ArrayIndexOutOfBoundsException + * if eqn.length < 4. + * @throws NullPointerException + * if the array is null. */ public static int solveCubic(double eqn[]) { return solveCubic(eqn, eqn); } /** - * Finds the roots of the cubic polynomial. This is - * accomplished by finding the (real) values of x that solve - * the following equation: eqn[3]*x*x*x + eqn[2]*x*x + eqn[1]*x + eqn[0] = 0. - * The solutions are written into the array res starting - * from the index 0 in the array. The return value tells how - * many array elements have been changed by this method call. - * - * @param eqn an array containing the coefficients of the - * cubic polynomial to solve. - * @param res the array that this method writes the results into - * - * @return the number of roots of the cubic polynomial + * Finds the roots of the cubic polynomial. This is accomplished by finding + * the (real) values of x that solve the following equation: eqn[3]*x*x*x + + * eqn[2]*x*x + eqn[1]*x + eqn[0] = 0. The solutions are written into the + * array res starting from the index 0 in the array. The return value tells + * how many array elements have been changed by this method call. * - * @throws ArrayIndexOutOfBoundsException if eqn.length < 4 or - * if res.length is less than the number of roots. - * @throws NullPointerException if either array is null. + * @param eqn + * an array containing the coefficients of the cubic polynomial + * to solve. + * @param res + * the array that this method writes the results into. + * @return the number of roots of the cubic polynomial. + * @throws ArrayIndexOutOfBoundsException + * if eqn.length < 4 or if res.length is less than the number of + * roots. + * @throws NullPointerException + * if either array is null. */ public static int solveCubic(double eqn[], double res[]) { return Crossing.solveCubic(eqn, res); diff --git a/awt/java/awt/geom/Dimension2D.java b/awt/java/awt/geom/Dimension2D.java index eef63e6..ea081c5 100644 --- a/awt/java/awt/geom/Dimension2D.java +++ b/awt/java/awt/geom/Dimension2D.java @@ -18,12 +18,15 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt.geom; /** - * The Class Dimension2D represents a size (width and height) of a - * geometric object. It stores double-valued data in order to be compatible - * with high-precision geometric operations. + * The Class Dimension2D represents a size (width and height) of a geometric + * object. It stores double-valued data in order to be compatible with + * high-precision geometric operations. + * + * @since Android 1.0 */ public abstract class Dimension2D implements Cloneable { @@ -36,31 +39,34 @@ public abstract class Dimension2D implements Cloneable { /** * Gets the width. * - * @return the width + * @return the width. */ public abstract double getWidth(); /** * Gets the height. * - * @return the height + * @return the height. */ public abstract double getHeight(); /** * Sets the width and height. * - * @param width the width - * @param height the height + * @param width + * the width. + * @param height + * the height. */ public abstract void setSize(double width, double height); /** - * Sets the width and height based on the data of another - * Dimension2D object. + * Sets the width and height based on the data of another Dimension2D + * object. * - * @param d the Dimension2D object providing the data to copy - * into this Dimension2D object + * @param d + * the Dimension2D object providing the data to copy into this + * Dimension2D object. */ public void setSize(Dimension2D d) { setSize(d.getWidth(), d.getHeight()); @@ -75,4 +81,3 @@ public abstract class Dimension2D implements Cloneable { } } } - diff --git a/awt/java/awt/geom/Ellipse2D.java b/awt/java/awt/geom/Ellipse2D.java index 33464af..89fd0d0 100644 --- a/awt/java/awt/geom/Ellipse2D.java +++ b/awt/java/awt/geom/Ellipse2D.java @@ -18,6 +18,7 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt.geom; import java.util.NoSuchElementException; @@ -25,29 +26,41 @@ import java.util.NoSuchElementException; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Class Ellipse2D describes an ellipse defined by a rectangular - * area in which it is inscribed. + * The Class Ellipse2D describes an ellipse defined by a rectangular area in + * which it is inscribed. + * + * @since Android 1.0 */ public abstract class Ellipse2D extends RectangularShape { /** - * The Class Float is the subclass of Ellipse2D that has all - * of its data values stored with float-level precision. + * The Class Float is the subclass of Ellipse2D that has all of its data + * values stored with float-level precision. + * + * @since Android 1.0 */ public static class Float extends Ellipse2D { - /** The x coordinate of the upper left corner of the ellipse's - * bounding rectangle. */ + /** + * The x coordinate of the upper left corner of the ellipse's bounding + * rectangle. + */ public float x; - - /** The y coordinate of the upper left corner of the ellipse's - * bounding rectangle. */ + + /** + * The y coordinate of the upper left corner of the ellipse's bounding + * rectangle. + */ public float y; - - /** The width of the ellipse's bounding rectangle. */ + + /** + * The width of the ellipse's bounding rectangle. + */ public float width; - - /** The height of the ellipse's bounding rectangle. */ + + /** + * The height of the ellipse's bounding rectangle. + */ public float height; /** @@ -59,12 +72,16 @@ public abstract class Ellipse2D extends RectangularShape { /** * Instantiates a new float-valued Ellipse2D with the specified data. * - * @param x the x coordinate of the upper left corner of the ellipse's - * bounding rectangle - * @param y the y coordinate of the upper left corner of the ellipse's - * bounding rectangle - * @param width the width of the ellipse's bounding rectangle - * @param height the height of the ellipse's bounding rectangle + * @param x + * the x coordinate of the upper left corner of the ellipse's + * bounding rectangle. + * @param y + * the y coordinate of the upper left corner of the ellipse's + * bounding rectangle. + * @param width + * the width of the ellipse's bounding rectangle. + * @param height + * the height of the ellipse's bounding rectangle. */ public Float(float x, float y, float width, float height) { setFrame(x, y, width, height); @@ -98,12 +115,16 @@ public abstract class Ellipse2D extends RectangularShape { /** * Sets the data of the ellipse's bounding rectangle. * - * @param x the x coordinate of the upper left corner of the ellipse's - * bounding rectangle - * @param y the y coordinate of the upper left corner of the ellipse's - * bounding rectangle - * @param width the width of the ellipse's bounding rectangle - * @param height the height of the ellipse's bounding rectangle + * @param x + * the x coordinate of the upper left corner of the ellipse's + * bounding rectangle. + * @param y + * the y coordinate of the upper left corner of the ellipse's + * bounding rectangle. + * @param width + * the width of the ellipse's bounding rectangle. + * @param height + * the height of the ellipse's bounding rectangle. */ public void setFrame(float x, float y, float width, float height) { this.x = x; @@ -126,23 +147,33 @@ public abstract class Ellipse2D extends RectangularShape { } /** - * The Class Double is the subclass of Ellipse2D that has all - * of its data values stored with double-level precision. + * The Class Double is the subclass of Ellipse2D that has all of its data + * values stored with double-level precision. + * + * @since Android 1.0 */ public static class Double extends Ellipse2D { - /** The x coordinate of the upper left corner of the ellipse's - * bounding rectangle. */ + /** + * The x coordinate of the upper left corner of the ellipse's bounding + * rectangle. + */ public double x; - - /** The y coordinate of the upper left corner of the ellipse's - * bounding rectangle. */ + + /** + * The y coordinate of the upper left corner of the ellipse's bounding + * rectangle. + */ public double y; - - /** The width of the ellipse's bounding rectangle. */ + + /** + * The width of the ellipse's bounding rectangle. + */ public double width; - - /** The height of the ellipse's bounding rectangle. */ + + /** + * The height of the ellipse's bounding rectangle. + */ public double height; /** @@ -152,15 +183,18 @@ public abstract class Ellipse2D extends RectangularShape { } /** - * Instantiates a new double-valued Ellipse2D with the specified - * data. + * Instantiates a new double-valued Ellipse2D with the specified data. * - * @param x the x coordinate of the upper left corner of the ellipse's - * bounding rectangle - * @param y the y coordinate of the upper left corner of the ellipse's - * bounding rectangle - * @param width the width of the ellipse's bounding rectangle - * @param height the height of the ellipse's bounding rectangle + * @param x + * the x coordinate of the upper left corner of the ellipse's + * bounding rectangle. + * @param y + * the y coordinate of the upper left corner of the ellipse's + * bounding rectangle. + * @param width + * the width of the ellipse's bounding rectangle. + * @param height + * the height of the ellipse's bounding rectangle. */ public Double(double x, double y, double width, double height) { setFrame(x, y, width, height); @@ -205,7 +239,7 @@ public abstract class Ellipse2D extends RectangularShape { } /* - * Ellipse2D path iterator + * Ellipse2D path iterator */ /** * The subclass of PathIterator to traverse an Ellipse2D. @@ -213,46 +247,72 @@ public abstract class Ellipse2D extends RectangularShape { class Iterator implements PathIterator { /* - * Ellipse is subdivided into four quarters by x and y axis. Each part approximated by - * cubic Bezier curve. Arc in first quarter is started in (a, 0) and finished in (0, b) points. - * Control points for cubic curve wiil be (a, 0), (a, m), (n, b) and (0, b) where n and m are - * calculated based on requirement Bezier curve in point 0.5 should lay on the arc. + * Ellipse is subdivided into four quarters by x and y axis. Each part + * approximated by cubic Bezier curve. Arc in first quarter is started + * in (a, 0) and finished in (0, b) points. Control points for cubic + * curve wiil be (a, 0), (a, m), (n, b) and (0, b) where n and m are + * calculated based on requirement Bezier curve in point 0.5 should lay + * on the arc. */ - /** The coefficient to calculate control points of Bezier curves. */ + /** + * The coefficient to calculate control points of Bezier curves. + */ final double u = 2.0 / 3.0 * (Math.sqrt(2.0) - 1.0); - /** The points coordinates calculation table. */ + /** + * The points coordinates calculation table. + */ final double points[][] = { - { 1.0, 0.5 + u, 0.5 + u, 1.0, 0.5, 1.0 }, - { 0.5 - u, 1.0, 0.0, 0.5 + u, 0.0, 0.5 }, - { 0.0, 0.5 - u, 0.5 - u, 0.0, 0.5, 0.0 }, - { 0.5 + u, 0.0, 1.0, 0.5 - u, 1.0, 0.5 } + { + 1.0, 0.5 + u, 0.5 + u, 1.0, 0.5, 1.0 + }, { + 0.5 - u, 1.0, 0.0, 0.5 + u, 0.0, 0.5 + }, { + 0.0, 0.5 - u, 0.5 - u, 0.0, 0.5, 0.0 + }, { + 0.5 + u, 0.0, 1.0, 0.5 - u, 1.0, 0.5 + } }; - /** The x coordinate of left-upper corner of the ellipse bounds. */ + /** + * The x coordinate of left-upper corner of the ellipse bounds. + */ double x; - - /** The y coordinate of left-upper corner of the ellipse bounds. */ + + /** + * The y coordinate of left-upper corner of the ellipse bounds. + */ double y; - - /** The width of the ellipse bounds. */ + + /** + * The width of the ellipse bounds. + */ double width; - - /** The height of the ellipse bounds. */ + + /** + * The height of the ellipse bounds. + */ double height; - /** The path iterator transformation. */ + /** + * The path iterator transformation. + */ AffineTransform t; - /** The current segmenet index. */ + /** + * The current segment index. + */ int index; /** - * Constructs a new Ellipse2D.Iterator for given ellipse and transformation + * Constructs a new Ellipse2D.Iterator for given ellipse and + * transformation * - * @param e - the source Ellipse2D object - * @param t the t + * @param e + * the source Ellipse2D object. + * @param t + * the affine transformation object. */ Iterator(Ellipse2D e, AffineTransform t) { this.x = e.getX(); @@ -389,15 +449,10 @@ public abstract class Ellipse2D extends RectangularShape { double rx2 = rx + rw; double ry2 = ry + rh; - return - contains(rx1, ry1) && - contains(rx2, ry1) && - contains(rx2, ry2) && - contains(rx1, ry2); + return contains(rx1, ry1) && contains(rx2, ry1) && contains(rx2, ry2) && contains(rx1, ry2); } public PathIterator getPathIterator(AffineTransform at) { return new Iterator(this, at); } } - diff --git a/awt/java/awt/geom/FlatteningPathIterator.java b/awt/java/awt/geom/FlatteningPathIterator.java index ca5c7c2..8208f39 100644 --- a/awt/java/awt/geom/FlatteningPathIterator.java +++ b/awt/java/awt/geom/FlatteningPathIterator.java @@ -18,6 +18,7 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt.geom; import java.util.NoSuchElementException; @@ -25,104 +26,139 @@ import java.util.NoSuchElementException; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Class FlatteningPathIterator takes a PathIterator for traversing - * a curved shape and flattens it by estimating the curve as a series - * of line segments. The flattening factor indicates how far the - * estimating line segments are allowed to be from the actual curve: - * the FlatteningPathIterator will keep dividing each curved segment - * into smaller and smaller flat segments until either the segments - * are withing the flattening factor of the curve or until the buffer - * limit is reached. + * The Class FlatteningPathIterator takes a PathIterator for traversing a curved + * shape and flattens it by estimating the curve as a series of line segments. + * The flattening factor indicates how far the estimating line segments are + * allowed to be from the actual curve: the FlatteningPathIterator will keep + * dividing each curved segment into smaller and smaller flat segments until + * either the segments are within the flattening factor of the curve or until + * the buffer limit is reached. + * + * @since Android 1.0 */ public class FlatteningPathIterator implements PathIterator { - /** The default points buffer size. */ + /** + * The default points buffer size. + */ private static final int BUFFER_SIZE = 16; - - /** The default curve subdivision limit. */ + + /** + * The default curve subdivision limit. + */ private static final int BUFFER_LIMIT = 16; - /** The points buffer capacity. */ + /** + * The points buffer capacity. + */ private static final int BUFFER_CAPACITY = 16; - - /** The type of current segment to be flat. */ + + /** + * The type of current segment to be flat. + */ int bufType; - - /** The curve subdivision limit. */ + + /** + * The curve subdivision limit. + */ int bufLimit; - - /** The current points buffer size. */ + + /** + * The current points buffer size. + */ int bufSize; - - /** The inner cursor position in points buffer. */ + + /** + * The inner cursor position in points buffer. + */ int bufIndex; - - /** The current subdivision count. */ + + /** + * The current subdivision count. + */ int bufSubdiv; - /** The points buffer. */ + /** + * The points buffer. + */ double buf[]; - - /** The indicator of empty points buffer. */ + + /** + * The indicator of empty points buffer. + */ boolean bufEmpty = true; - - /** The source PathIterator. */ + + /** + * The source PathIterator. + */ PathIterator p; - - /** The flatness of new path. */ + + /** + * The flatness of new path. + */ double flatness; - - /** The square of flatness. */ + + /** + * The square of flatness. + */ double flatness2; - - /** The x coordinate of previous path segment. */ + + /** + * The x coordinate of previous path segment. + */ double px; - /** The y coordinate of previous path segment. */ + /** + * The y coordinate of previous path segment. + */ double py; - - /** The tamporary buffer for getting points from PathIterator. */ + + /** + * The temporary buffer for getting points from PathIterator. + */ double coords[] = new double[6]; /** - * Instantiates a new flattening path iterator given the path - * iterator for a (possibly) curved path and a flattening factor - * which indicates how close together the points on the curve - * should be chosen. The buffer limit defaults to 16 which means - * that each curve will be divided into no more than 16 segments - * regardless of the flattening factor. - * - * @param path the path iterator of the original curve - * @param flatness the flattening factor that indicates how far the - * flat path is allowed to be from the actual curve in order to - * decide when to stop dividing the path into smaller and smaller - * segments. + * Instantiates a new flattening path iterator given the path iterator for a + * (possibly) curved path and a flattening factor which indicates how close + * together the points on the curve should be chosen. The buffer limit + * defaults to 16 which means that each curve will be divided into no more + * than 16 segments regardless of the flattening factor. * - * @throws IllegalArgumentException if the flatness is less than zero. - * @throws NullPointerException if the path is null. + * @param path + * the path iterator of the original curve. + * @param flatness + * the flattening factor that indicates how far the flat path is + * allowed to be from the actual curve in order to decide when to + * stop dividing the path into smaller and smaller segments. + * @throws IllegalArgumentException + * if the flatness is less than zero. + * @throws NullPointerException + * if the path is null. */ public FlatteningPathIterator(PathIterator path, double flatness) { this(path, flatness, BUFFER_LIMIT); } /** - * Instantiates a new flattening path iterator given the path - * iterator for a (possibly) curved path and a flattening factor - * and a buffer limit. The FlatteningPathIterator will keep - * dividing each curved segment into smaller and smaller flat segments - * until either the segments are withing the flattening factor of the - * curve or until the buffer limit is reached. + * Instantiates a new flattening path iterator given the path iterator for a + * (possibly) curved path and a flattening factor and a buffer limit. The + * FlatteningPathIterator will keep dividing each curved segment into + * smaller and smaller flat segments until either the segments are within + * the flattening factor of the curve or until the buffer limit is reached. * - * @param path the path iterator of the original curve - * @param flatness the flattening factor that indicates how far the - * flat path is allowed to be from the actual curve in order to - * decide when to stop dividing the path into smaller and smaller - * segments. - * @param limit the maximum number of flat segments to divide each - * curve into - * - * @throws IllegalArgumentException if the flatness or limit is less than zero. - * @throws NullPointerException if the path is null. + * @param path + * the path iterator of the original curve. + * @param flatness + * the flattening factor that indicates how far the flat path is + * allowed to be from the actual curve in order to decide when to + * stop dividing the path into smaller and smaller segments. + * @param limit + * the maximum number of flat segments to divide each curve into. + * @throws IllegalArgumentException + * if the flatness or limit is less than zero. + * @throws NullPointerException + * if the path is null. */ public FlatteningPathIterator(PathIterator path, double flatness, int limit) { if (flatness < 0.0) { @@ -149,7 +185,7 @@ public class FlatteningPathIterator implements PathIterator { /** * Gets the flattening factor. * - * @return the flattening factor + * @return the flattening factor. */ public double getFlatness() { return flatness; @@ -158,7 +194,7 @@ public class FlatteningPathIterator implements PathIterator { /** * Gets the maximum number of subdivisions per curved segment. * - * @return the maximum number of subdivisions per curved segment + * @return the maximum number of subdivisions per curved segment. */ public int getRecursionLimit() { return bufLimit; @@ -173,12 +209,13 @@ public class FlatteningPathIterator implements PathIterator { } /** - * Calculates flat path points for current segment of the source shape. - * - * Line segment is flat by itself. Flatness of quad and cubic curves evaluated by getFlatnessSq() method. - * Curves subdivided until current flatness is bigger than user defined and subdivision limit isn't exhausted. - * Single source segment translated to series of buffer points. The less flatness the bigger serries. - * Every currentSegment() call extract one point from the buffer. When series completed evaluate() takes next source shape segment. + * Calculates flat path points for current segment of the source shape. Line + * segment is flat by itself. Flatness of quad and cubic curves evaluated by + * getFlatnessSq() method. Curves subdivided until current flatness is + * bigger than user defined and subdivision limit isn't exhausted. Single + * source segment translated to series of buffer points. The less flatness + * the bigger series. Every currentSegment() call extract one point from the + * buffer. When series completed evaluate() takes next source shape segment. */ void evaluate() { if (bufEmpty) { @@ -186,99 +223,95 @@ public class FlatteningPathIterator implements PathIterator { } switch (bufType) { - case SEG_MOVETO: - case SEG_LINETO: - px = coords[0]; - py = coords[1]; - break; - case SEG_QUADTO: - if (bufEmpty) { - bufIndex -= 6; - buf[bufIndex + 0] = px; - buf[bufIndex + 1] = py; - System.arraycopy(coords, 0, buf, bufIndex + 2, 4); - bufSubdiv = 0; - } - - while (bufSubdiv < bufLimit) { - if (QuadCurve2D.getFlatnessSq(buf, bufIndex) < flatness2) { - break; + case SEG_MOVETO: + case SEG_LINETO: + px = coords[0]; + py = coords[1]; + break; + case SEG_QUADTO: + if (bufEmpty) { + bufIndex -= 6; + buf[bufIndex + 0] = px; + buf[bufIndex + 1] = py; + System.arraycopy(coords, 0, buf, bufIndex + 2, 4); + bufSubdiv = 0; } - // Realloc buffer - if (bufIndex <= 4) { - double tmp[] = new double[bufSize + BUFFER_CAPACITY]; - System.arraycopy( - buf, bufIndex, - tmp, bufIndex + BUFFER_CAPACITY, - bufSize - bufIndex); - buf = tmp; - bufSize += BUFFER_CAPACITY; - bufIndex += BUFFER_CAPACITY; + while (bufSubdiv < bufLimit) { + if (QuadCurve2D.getFlatnessSq(buf, bufIndex) < flatness2) { + break; + } + + // Realloc buffer + if (bufIndex <= 4) { + double tmp[] = new double[bufSize + BUFFER_CAPACITY]; + System.arraycopy(buf, bufIndex, tmp, bufIndex + BUFFER_CAPACITY, bufSize + - bufIndex); + buf = tmp; + bufSize += BUFFER_CAPACITY; + bufIndex += BUFFER_CAPACITY; + } + + QuadCurve2D.subdivide(buf, bufIndex, buf, bufIndex - 4, buf, bufIndex); + + bufIndex -= 4; + bufSubdiv++; } - QuadCurve2D.subdivide(buf, bufIndex, buf, bufIndex - 4, buf, bufIndex); - - bufIndex -= 4; - bufSubdiv++; - } - - bufIndex += 4; - px = buf[bufIndex]; - py = buf[bufIndex + 1]; - - bufEmpty = (bufIndex == bufSize - 2); - if (bufEmpty) { - bufIndex = bufSize; - bufType = SEG_LINETO; - } else { - bufSubdiv--; - } - break; - case SEG_CUBICTO: - if (bufEmpty) { - bufIndex -= 8; - buf[bufIndex + 0] = px; - buf[bufIndex + 1] = py; - System.arraycopy(coords, 0, buf, bufIndex + 2, 6); - bufSubdiv = 0; - } + bufIndex += 4; + px = buf[bufIndex]; + py = buf[bufIndex + 1]; - while (bufSubdiv < bufLimit) { - if (CubicCurve2D.getFlatnessSq(buf, bufIndex) < flatness2) { - break; + bufEmpty = (bufIndex == bufSize - 2); + if (bufEmpty) { + bufIndex = bufSize; + bufType = SEG_LINETO; + } else { + bufSubdiv--; } - - // Realloc buffer - if (bufIndex <= 6) { - double tmp[] = new double[bufSize + BUFFER_CAPACITY]; - System.arraycopy( - buf, bufIndex, - tmp, bufIndex + BUFFER_CAPACITY, - bufSize - bufIndex); - buf = tmp; - bufSize += BUFFER_CAPACITY; - bufIndex += BUFFER_CAPACITY; + break; + case SEG_CUBICTO: + if (bufEmpty) { + bufIndex -= 8; + buf[bufIndex + 0] = px; + buf[bufIndex + 1] = py; + System.arraycopy(coords, 0, buf, bufIndex + 2, 6); + bufSubdiv = 0; } - CubicCurve2D.subdivide(buf, bufIndex, buf, bufIndex - 6, buf, bufIndex); - - bufIndex -= 6; - bufSubdiv++; - } + while (bufSubdiv < bufLimit) { + if (CubicCurve2D.getFlatnessSq(buf, bufIndex) < flatness2) { + break; + } + + // Realloc buffer + if (bufIndex <= 6) { + double tmp[] = new double[bufSize + BUFFER_CAPACITY]; + System.arraycopy(buf, bufIndex, tmp, bufIndex + BUFFER_CAPACITY, bufSize + - bufIndex); + buf = tmp; + bufSize += BUFFER_CAPACITY; + bufIndex += BUFFER_CAPACITY; + } + + CubicCurve2D.subdivide(buf, bufIndex, buf, bufIndex - 6, buf, bufIndex); + + bufIndex -= 6; + bufSubdiv++; + } - bufIndex += 6; - px = buf[bufIndex]; - py = buf[bufIndex + 1]; + bufIndex += 6; + px = buf[bufIndex]; + py = buf[bufIndex + 1]; - bufEmpty = (bufIndex == bufSize - 2); - if (bufEmpty) { - bufIndex = bufSize; - bufType = SEG_LINETO; - } else { - bufSubdiv--; - } - break; + bufEmpty = (bufIndex == bufSize - 2); + if (bufEmpty) { + bufIndex = bufSize; + bufType = SEG_LINETO; + } else { + bufSubdiv--; + } + break; } } @@ -323,4 +356,3 @@ public class FlatteningPathIterator implements PathIterator { return type; } } - diff --git a/awt/java/awt/geom/GeneralPath.java b/awt/java/awt/geom/GeneralPath.java index 36b01c4..0669bc7 100644 --- a/awt/java/awt/geom/GeneralPath.java +++ b/awt/java/awt/geom/GeneralPath.java @@ -18,6 +18,7 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt.geom; import java.awt.Rectangle; @@ -28,81 +29,116 @@ import org.apache.harmony.awt.gl.Crossing; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Class GeneralPath represents a shape whose outline is given - * by different types of curved and straight segments. + * The class GeneralPath represents a shape whose outline is given by different + * types of curved and straight segments. + * + * @since Android 1.0 */ public final class GeneralPath implements Shape, Cloneable { - /** The Constant WIND_EVEN_ODD see {@link PathIterator#WIND_EVEN_ODD}. */ + /** + * The Constant WIND_EVEN_ODD see {@link PathIterator#WIND_EVEN_ODD}. + */ public static final int WIND_EVEN_ODD = PathIterator.WIND_EVEN_ODD; - - /** The Constant WIND_NON_ZERO see {@link PathIterator#WIND_NON_ZERO}. */ + + /** + * The Constant WIND_NON_ZERO see {@link PathIterator#WIND_NON_ZERO}. + */ public static final int WIND_NON_ZERO = PathIterator.WIND_NON_ZERO; - /** The buffers size. */ + /** + * The buffers size. + */ private static final int BUFFER_SIZE = 10; - - /** The buffers capacity. */ + + /** + * The buffers capacity. + */ private static final int BUFFER_CAPACITY = 10; - /** The point's types buffer. */ + /** + * The point's types buffer. + */ byte[] types; - - /** The points buffer. */ + + /** + * The points buffer. + */ float[] points; - - /** The point's type buffer size. */ + + /** + * The point's type buffer size. + */ int typeSize; - - /** The points buffer size. */ + + /** + * The points buffer size. + */ int pointSize; - - /** The path rule. */ + + /** + * The path rule. + */ int rule; - /** The space amount in points buffer for different segmenet's types. */ + /** + * The space amount in points buffer for different segmenet's types. + */ static int pointShift[] = { - 2, // MOVETO - 2, // LINETO - 4, // QUADTO - 6, // CUBICTO - 0}; // CLOSE + 2, // MOVETO + 2, // LINETO + 4, // QUADTO + 6, // CUBICTO + 0 + }; // CLOSE /* - * GeneralPath path iterator + * GeneralPath path iterator */ /** - * The Class Iterator is the subclass of Iterator for traversing the - * outline of a GeneralPath. + * The Class Iterator is the subclass of Iterator for traversing the outline + * of a GeneralPath. */ class Iterator implements PathIterator { - /** The current cursor position in types buffer. */ + /** + * The current cursor position in types buffer. + */ int typeIndex; - - /** The current cursor position in points buffer. */ + + /** + * The current cursor position in points buffer. + */ int pointIndex; - - /** The source GeneralPath object. */ + + /** + * The source GeneralPath object. + */ GeneralPath p; - - /** The path iterator transformation. */ + + /** + * The path iterator transformation. + */ AffineTransform t; /** - * Constructs a new GeneralPath.Iterator for given general path + * Constructs a new GeneralPath.Iterator for given general path. * - * @param path - the source GeneralPath object + * @param path + * the source GeneralPath object. */ Iterator(GeneralPath path) { this(path, null); } /** - * Constructs a new GeneralPath.Iterator for given general path and transformation + * Constructs a new GeneralPath.Iterator for given general path and + * transformation. * - * @param path - the source GeneralPath object - * @param at - the AffineTransform object to apply rectangle path + * @param path + * the source GeneralPath object. + * @param at + * the AffineTransform object to apply rectangle path. */ Iterator(GeneralPath path, AffineTransform at) { this.p = path; @@ -156,33 +192,35 @@ public final class GeneralPath implements Shape, Cloneable { } /** - * Instantiates a new general path with the winding rule set - * to {@link PathIterator#WIND_NON_ZERO} and the initial capacity - * (number of segments) set to the default value 10. + * Instantiates a new general path with the winding rule set to + * {@link PathIterator#WIND_NON_ZERO} and the initial capacity (number of + * segments) set to the default value 10. */ public GeneralPath() { this(WIND_NON_ZERO, BUFFER_SIZE); } /** - * Instantiates a new general path with the given winding rule - * and the initial capacity (number of segments) set to the - * default value 10. + * Instantiates a new general path with the given winding rule and the + * initial capacity (number of segments) set to the default value 10. * - * @param rule the winding rule, either {@link PathIterator#WIND_EVEN_ODD} - * or {@link PathIterator#WIND_NON_ZERO} + * @param rule + * the winding rule, either {@link PathIterator#WIND_EVEN_ODD} or + * {@link PathIterator#WIND_NON_ZERO}. */ public GeneralPath(int rule) { this(rule, BUFFER_SIZE); } /** - * Instantiates a new general path with the given winding rule - * and initial capacity (number of segments). + * Instantiates a new general path with the given winding rule and initial + * capacity (number of segments). * - * @param rule the winding rule, either {@link PathIterator#WIND_EVEN_ODD} - * or {@link PathIterator#WIND_NON_ZERO} - * @param initialCapacity the number of segments the path is set to hold + * @param rule + * the winding rule, either {@link PathIterator#WIND_EVEN_ODD} or + * {@link PathIterator#WIND_NON_ZERO}. + * @param initialCapacity + * the number of segments the path is set to hold. */ public GeneralPath(int rule, int initialCapacity) { setWindingRule(rule); @@ -193,7 +231,8 @@ public final class GeneralPath implements Shape, Cloneable { /** * Creates a new GeneralPath from the outline of the given shape. * - * @param shape the shape + * @param shape + * the shape. */ public GeneralPath(Shape shape) { this(WIND_NON_ZERO, BUFFER_SIZE); @@ -203,14 +242,15 @@ public final class GeneralPath implements Shape, Cloneable { } /** - * Sets the winding rule, which determines how to decide whether - * a point that isn't on the path itself is inside or outside of - * the shape. - * - * @param rule the new winding rule + * Sets the winding rule, which determines how to decide whether a point + * that isn't on the path itself is inside or outside of the shape. * - * @throws IllegalArgumentException if the winding rule is neither - * {@link PathIterator#WIND_EVEN_ODD} nor {@link PathIterator#WIND_NON_ZERO}. + * @param rule + * the new winding rule. + * @throws IllegalArgumentException + * if the winding rule is neither + * {@link PathIterator#WIND_EVEN_ODD} nor + * {@link PathIterator#WIND_NON_ZERO}. */ public void setWindingRule(int rule) { if (rule != WIND_EVEN_ODD && rule != WIND_NON_ZERO) { @@ -223,8 +263,8 @@ public final class GeneralPath implements Shape, Cloneable { /** * Gets the winding rule. * - * @return the winding rule, either {@link PathIterator#WIND_EVEN_ODD} - * or {@link PathIterator#WIND_NON_ZERO} + * @return the winding rule, either {@link PathIterator#WIND_EVEN_ODD} or + * {@link PathIterator#WIND_NON_ZERO}. */ public int getWindingRule() { return rule; @@ -232,15 +272,16 @@ public final class GeneralPath implements Shape, Cloneable { /** * Checks the point data buffer sizes to see whether pointCount additional - * point-data elements can fit. (Note that the number of point data - * elements to add is more than one per point -- it depends on the type - * of point being added.) Reallocates the buffers to enlarge the size if necessary. + * point-data elements can fit. (Note that the number of point data elements + * to add is more than one per point -- it depends on the type of point + * being added.) Reallocates the buffers to enlarge the size if necessary. * - * @param pointCount - the number of point data elements to be added - * @param checkMove whether to check for existing points - * - * @throws IllegalPathStateException checkMove is true and the - * path is currently empty. + * @param pointCount + * the number of point data elements to be added. + * @param checkMove + * whether to check for existing points. + * @throws IllegalPathStateException + * checkMove is true and the path is currently empty. */ void checkBuf(int pointCount, boolean checkMove) { if (checkMove && typeSize == 0) { @@ -260,11 +301,13 @@ public final class GeneralPath implements Shape, Cloneable { } /** - * Appends a new point to the end of this general path, disconnected - * from the existing path. + * Appends a new point to the end of this general path, disconnected from + * the existing path. * - * @param x the x coordinate of the next point to append - * @param y the y coordinate of the next point to append + * @param x + * the x coordinate of the next point to append. + * @param y + * the y coordinate of the next point to append. */ public void moveTo(float x, float y) { if (typeSize > 0 && types[typeSize - 1] == PathIterator.SEG_MOVETO) { @@ -279,12 +322,13 @@ public final class GeneralPath implements Shape, Cloneable { } /** - * Appends a new segment to the end of this general path by making - * a straight line segment from the current endpoint to the - * given new point. + * Appends a new segment to the end of this general path by making a + * straight line segment from the current endpoint to the given new point. * - * @param x the x coordinate of the next point to append - * @param y the y coordinate of the next point to append + * @param x + * the x coordinate of the next point to append. + * @param y + * the y coordinate of the next point to append. */ public void lineTo(float x, float y) { checkBuf(2, true); @@ -294,14 +338,18 @@ public final class GeneralPath implements Shape, Cloneable { } /** - * Appends a new segment to the end of this general path by making - * a quadratic curve from the current endpoint to the point (x2, y2) - * using the point (x1, y1) as the quadratic curve's control point. + * Appends a new segment to the end of this general path by making a + * quadratic curve from the current endpoint to the point (x2, y2) using the + * point (x1, y1) as the quadratic curve's control point. * - * @param x1 the x coordinate of the quadratic curve's control point - * @param y1 the y coordinate of the quadratic curve's control point - * @param x2 the x coordinate of the quadratic curve's end point - * @param y2 the y coordinate of the quadratic curve's end point + * @param x1 + * the x coordinate of the quadratic curve's control point. + * @param y1 + * the y coordinate of the quadratic curve's control point. + * @param x2 + * the x coordinate of the quadratic curve's end point. + * @param y2 + * the y coordinate of the quadratic curve's end point. */ public void quadTo(float x1, float y1, float x2, float y2) { checkBuf(4, true); @@ -313,18 +361,27 @@ public final class GeneralPath implements Shape, Cloneable { } /** - * Appends a new segment to the end of this general path by making - * a cubic curve from the current endpoint to the point (x3, y3) - * using (x1, y1) and (x2, y2) as control points. + * Appends a new segment to the end of this general path by making a cubic + * curve from the current endpoint to the point (x3, y3) using (x1, y1) and + * (x2, y2) as control points. * * @see java.awt.geom.CubicCurve2D - * - * @param x1 the x coordinate of the new cubic segment's first control point - * @param y1 the y coordinate of the new cubic segment's first control point - * @param x2 the x coordinate of the new cubic segment's second control point - * @param y2 the y coordinate of the new cubic segment's second control point - * @param x3 the x coordinate of the new cubic segment's end point - * @param y3 the y coordinate of the new cubic segment's end point + * @param x1 + * the x coordinate of the new cubic segment's first control + * point. + * @param y1 + * the y coordinate of the new cubic segment's first control + * point. + * @param x2 + * the x coordinate of the new cubic segment's second control + * point. + * @param y2 + * the y coordinate of the new cubic segment's second control + * point. + * @param x3 + * the x coordinate of the new cubic segment's end point. + * @param y3 + * the y coordinate of the new cubic segment's end point. */ public void curveTo(float x1, float y1, float x2, float y2, float x3, float y3) { checkBuf(6, true); @@ -338,8 +395,8 @@ public final class GeneralPath implements Shape, Cloneable { } /** - * Appends the type information to declare that the current - * endpoint closes the curve. + * Appends the type information to declare that the current endpoint closes + * the curve. */ public void closePath() { if (typeSize == 0 || types[typeSize - 1] != PathIterator.SEG_CLOSE) { @@ -349,15 +406,17 @@ public final class GeneralPath implements Shape, Cloneable { } /** - * Appends the outline of the specified shape onto the end - * of this GeneralPath. - * - * @param shape the shape whose outline is to be appended - * @param connect true to connect this path's current - * endpoint to the first point of the shape's outline or - * false to append the shape's outline without connecting it + * Appends the outline of the specified shape onto the end of this + * GeneralPath. * - * @throws NullPointerException if the shape parameter is null + * @param shape + * the shape whose outline is to be appended. + * @param connect + * true to connect this path's current endpoint to the first + * point of the shape's outline or false to append the shape's + * outline without connecting it. + * @throws NullPointerException + * if the shape parameter is null. */ public void append(Shape shape, boolean connect) { PathIterator p = shape.getPathIterator(null); @@ -365,42 +424,43 @@ public final class GeneralPath implements Shape, Cloneable { } /** - * Appends the path defined by the specified PathIterator onto the end - * of this GeneralPath. + * Appends the path defined by the specified PathIterator onto the end of + * this GeneralPath. * - * @param path the PathIterator that defines the new path to append - * @param connect true to connect this path's current - * endpoint to the first point of the shape's outline or - * false to append the shape's outline without connecting it + * @param path + * the PathIterator that defines the new path to append. + * @param connect + * true to connect this path's current endpoint to the first + * point of the shape's outline or false to append the shape's + * outline without connecting it. */ public void append(PathIterator path, boolean connect) { while (!path.isDone()) { float coords[] = new float[6]; switch (path.currentSegment(coords)) { - case PathIterator.SEG_MOVETO: - if (!connect || typeSize == 0) { - moveTo(coords[0], coords[1]); + case PathIterator.SEG_MOVETO: + if (!connect || typeSize == 0) { + moveTo(coords[0], coords[1]); + break; + } + if (types[typeSize - 1] != PathIterator.SEG_CLOSE + && points[pointSize - 2] == coords[0] + && points[pointSize - 1] == coords[1]) { + break; + } + // NO BREAK; + case PathIterator.SEG_LINETO: + lineTo(coords[0], coords[1]); break; - } - if (types[typeSize - 1] != PathIterator.SEG_CLOSE && - points[pointSize - 2] == coords[0] && - points[pointSize - 1] == coords[1]) - { + case PathIterator.SEG_QUADTO: + quadTo(coords[0], coords[1], coords[2], coords[3]); + break; + case PathIterator.SEG_CUBICTO: + curveTo(coords[0], coords[1], coords[2], coords[3], coords[4], coords[5]); + break; + case PathIterator.SEG_CLOSE: + closePath(); break; - } - // NO BREAK; - case PathIterator.SEG_LINETO: - lineTo(coords[0], coords[1]); - break; - case PathIterator.SEG_QUADTO: - quadTo(coords[0], coords[1], coords[2], coords[3]); - break; - case PathIterator.SEG_CUBICTO: - curveTo(coords[0], coords[1], coords[2], coords[3], coords[4], coords[5]); - break; - case PathIterator.SEG_CLOSE: - closePath(); - break; } path.next(); connect = false; @@ -410,7 +470,7 @@ public final class GeneralPath implements Shape, Cloneable { /** * Gets the current end point of the path. * - * @return the current end point of the path + * @return the current end point of the path. */ public Point2D getCurrentPoint() { if (typeSize == 0) { @@ -431,9 +491,9 @@ public final class GeneralPath implements Shape, Cloneable { } /** - * Resets the GeneralPath to being an empty path. The underlying - * point and segment data is not deleted but rather the end indices - * of the data arrays are set to zero. + * Resets the GeneralPath to being an empty path. The underlying point and + * segment data is not deleted but rather the end indices of the data arrays + * are set to zero. */ public void reset() { typeSize = 0; @@ -441,23 +501,24 @@ public final class GeneralPath implements Shape, Cloneable { } /** - * Transform all of the coordinates of this path according to the - * specified AffineTransform. + * Transform all of the coordinates of this path according to the specified + * AffineTransform. * - * @param t the AffineTransform + * @param t + * the AffineTransform. */ public void transform(AffineTransform t) { t.transform(points, 0, points, 0, pointSize / 2); } /** - * Creates a new GeneralPath whose data is given by this path's - * data transformed according to the specified AffineTransform. - * - * @param t the AffineTransform + * Creates a new GeneralPath whose data is given by this path's data + * transformed according to the specified AffineTransform. * - * @return the new GeneralPath whose data is given by this path's - * data transformed according to the specified AffineTransform + * @param t + * the AffineTransform. + * @return the new GeneralPath whose data is given by this path's data + * transformed according to the specified AffineTransform. */ public Shape createTransformedShape(AffineTransform t) { GeneralPath p = (GeneralPath)clone(); @@ -480,16 +541,14 @@ public final class GeneralPath implements Shape, Cloneable { float x = points[i--]; if (x < rx1) { rx1 = x; - } else - if (x > rx2) { - rx2 = x; - } + } else if (x > rx2) { + rx2 = x; + } if (y < ry1) { ry1 = y; - } else - if (y > ry2) { - ry2 = y; - } + } else if (y > ry2) { + ry2 = y; + } } } return new Rectangle2D.Float(rx1, ry1, rx2 - rx1, ry2 - ry1); @@ -500,14 +559,14 @@ public final class GeneralPath implements Shape, Cloneable { } /** - * Checks the cross count (number of times a ray from the point - * crosses the shape's boundary) to determine whether the number - * of crossings corresponds to a point inside the shape or not - * (according to the shape's path rule). - * - * @param cross - the point's cross count + * Checks the cross count (number of times a ray from the point crosses the + * shape's boundary) to determine whether the number of crossings + * corresponds to a point inside the shape or not (according to the shape's + * path rule). * - * @return true if the point is inside the path, or false otherwise + * @param cross + * the point's cross count. + * @return true if the point is inside the path, or false otherwise. */ boolean isInside(int cross) { if (rule == WIND_NON_ZERO) { @@ -553,7 +612,7 @@ public final class GeneralPath implements Shape, Cloneable { @Override public Object clone() { try { - GeneralPath p = (GeneralPath) super.clone(); + GeneralPath p = (GeneralPath)super.clone(); p.types = types.clone(); p.points = points.clone(); return p; @@ -563,4 +622,3 @@ public final class GeneralPath implements Shape, Cloneable { } } - diff --git a/awt/java/awt/geom/IllegalPathStateException.java b/awt/java/awt/geom/IllegalPathStateException.java index 7f459e7..750ba29 100644 --- a/awt/java/awt/geom/IllegalPathStateException.java +++ b/awt/java/awt/geom/IllegalPathStateException.java @@ -18,16 +18,21 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt.geom; /** - * The Class IllegalPathStateException indicates errors where the - * current state of a path object is imcompatible with the desired - * action, such as performing non-trivial actions on an empty path. + * The Class IllegalPathStateException indicates errors where the current state + * of a path object is incompatible with the desired action, such as performing + * non-trivial actions on an empty path. + * + * @since Android 1.0 */ public class IllegalPathStateException extends RuntimeException { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -5158084205220481094L; /** @@ -37,14 +42,14 @@ public class IllegalPathStateException extends RuntimeException { } /** - * Instantiates a new illegal path state exception with the - * specified detail message. + * Instantiates a new illegal path state exception with the specified detail + * message. * - * @param s the details of the error + * @param s + * the details of the error. */ public IllegalPathStateException(String s) { super(s); } } - diff --git a/awt/java/awt/geom/Line2D.java b/awt/java/awt/geom/Line2D.java index a53c470..fcd51b6 100644 --- a/awt/java/awt/geom/Line2D.java +++ b/awt/java/awt/geom/Line2D.java @@ -18,6 +18,7 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt.geom; import java.awt.Rectangle; @@ -27,55 +28,71 @@ import java.util.NoSuchElementException; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Class Line2D represents a line whose data is given in - * high-precision values appropriate for graphical operations. + * The Class Line2D represents a line whose data is given in high-precision + * values appropriate for graphical operations. + * + * @since Android 1.0 */ public abstract class Line2D implements Shape, Cloneable { /** - * The Class Float is the subclass of Line2D that has all - * of its data values stored with float-level precision. + * The Class Float is the subclass of Line2D that has all of its data values + * stored with float-level precision. + * + * @since Android 1.0 */ public static class Float extends Line2D { - /** The x coordinate of the starting point. */ + /** + * The x coordinate of the starting point. + */ public float x1; - - /** The y coordinate of the starting point. */ + + /** + * The y coordinate of the starting point. + */ public float y1; - - /** The x coordinate of the end point. */ + + /** + * The x coordinate of the end point. + */ public float x2; - - /** The y coordinate of the end point. */ + + /** + * The y coordinate of the end point. + */ public float y2; /** - * Instantiates a new float-valued Line2D with - * its data values set to zero. + * Instantiates a new float-valued Line2D with its data values set to + * zero. */ public Float() { } /** - * Instantiates a new float-valued Line2D with - * the specified endpoints. + * Instantiates a new float-valued Line2D with the specified endpoints. * - * @param x1 the x coordinate of the starting point - * @param y1 the y coordinate of the starting point - * @param x2 the x coordinate of the end point - * @param y2 the y coordinate of the end point + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. */ public Float(float x1, float y1, float x2, float y2) { setLine(x1, y1, x2, y2); } /** - * Instantiates a new float-valued Line2D with - * the specified endpoints. + * Instantiates a new float-valued Line2D with the specified endpoints. * - * @param p1 the starting point - * @param p2 the end point + * @param p1 + * the starting point. + * @param p2 + * the end point. */ public Float(Point2D p1, Point2D p2) { setLine(p1, p2); @@ -122,10 +139,14 @@ public abstract class Line2D implements Shape, Cloneable { /** * Sets the data values that define the line. * - * @param x1 the x coordinate of the starting point - * @param y1 the y coordinate of the starting point - * @param x2 the x coordinate of the end point - * @param y2 the y coordinate of the end point + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. */ public void setLine(float x1, float y1, float x2, float y2) { this.x1 = x1; @@ -155,49 +176,63 @@ public abstract class Line2D implements Shape, Cloneable { } /** - * The Class Double is the subclass of Line2D that has all - * of its data values stored with double-level precision. + * The Class Double is the subclass of Line2D that has all of its data + * values stored with double-level precision. + * + * @since Android 1.0 */ public static class Double extends Line2D { - /** The x coordinate of the starting point. */ + /** + * The x coordinate of the starting point. + */ public double x1; - - /** The y coordinate of the starting point. */ + + /** + * The y coordinate of the starting point. + */ public double y1; - - /** The x coordinate of the end point. */ + + /** + * The x coordinate of the end point. + */ public double x2; - - /** The y coordinate of the end point. */ + + /** + * The y coordinate of the end point. + */ public double y2; /** - * Instantiates a new double-valued Line2D with - * its data values set to zero. + * Instantiates a new double-valued Line2D with its data values set to + * zero. */ public Double() { } /** - * Instantiates a new double-valued Line2D with - * the specified endpoints. + * Instantiates a new double-valued Line2D with the specified endpoints. * - * @param x1 the x coordinate of the starting point - * @param y1 the y coordinate of the starting point - * @param x2 the x coordinate of the end point - * @param y2 the y coordinate of the end point + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. */ public Double(double x1, double y1, double x2, double y2) { setLine(x1, y1, x2, y2); } /** - * Instantiates a new double-valued Line2D with - * the specified endpoints. + * Instantiates a new double-valued Line2D with the specified endpoints. * - * @param p1 the starting point - * @param p2 the end point + * @param p1 + * the starting point. + * @param p2 + * the end point. */ public Double(Point2D p1, Point2D p2) { setLine(p1, p2); @@ -262,36 +297,50 @@ public abstract class Line2D implements Shape, Cloneable { } /* - * Line2D path iterator + * Line2D path iterator */ /** * The subclass of PathIterator to traverse a Line2D. */ class Iterator implements PathIterator { - /** The x coordinate of the start line point. */ + /** + * The x coordinate of the start line point. + */ double x1; - - /** The y coordinate of the start line point. */ + + /** + * The y coordinate of the start line point. + */ double y1; - - /** The x coordinate of the end line point. */ + + /** + * The x coordinate of the end line point. + */ double x2; - - /** The y coordinate of the end line point. */ + + /** + * The y coordinate of the end line point. + */ double y2; - /** The path iterator transformation. */ + /** + * The path iterator transformation. + */ AffineTransform t; - /** The current segmenet index. */ + /** + * The current segment index. + */ int index; /** - * Constructs a new Line2D.Iterator for given line and transformation + * Constructs a new Line2D.Iterator for given line and transformation. * - * @param l - the source Line2D object - * @param at - the AffineTransform object to apply rectangle path + * @param l + * the source Line2D object. + * @param at + * the AffineTransform object to apply rectangle path. */ Iterator(Line2D l, AffineTransform at) { this.x1 = l.getX1(); @@ -366,60 +415,66 @@ public abstract class Line2D implements Shape, Cloneable { /** * Gets the x coordinate of the starting point. * - * @return the x coordinate of the starting point + * @return the x coordinate of the starting point. */ public abstract double getX1(); /** * Gets the y coordinate of the starting point. * - * @return the y coordinate of the starting point + * @return the y coordinate of the starting point. */ public abstract double getY1(); /** * Gets the x coordinate of the end point. * - * @return the x2 + * @return the x2. */ public abstract double getX2(); /** * Gets the y coordinate of the end point. * - * @return the y coordinate of the end point + * @return the y coordinate of the end point. */ public abstract double getY2(); /** * Gets the p the starting point. * - * @return the p the starting point + * @return the p the starting point. */ public abstract Point2D getP1(); /** * Gets the p end point. * - * @return the p end point + * @return the p end point. */ public abstract Point2D getP2(); /** * Sets the line's endpoints. * - * @param x1 the x coordinate of the starting point - * @param y1 the y coordinate of the starting point - * @param x2 the x coordinate of the end point - * @param y2 the y coordinate of the end point + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. */ public abstract void setLine(double x1, double y1, double x2, double y2); /** * Sets the line's endpoints. * - * @param p1 the starting point - * @param p2 the end point + * @param p1 + * the starting point. + * @param p2 + * the end point. */ public void setLine(Point2D p1, Point2D p2) { setLine(p1.getX(), p1.getY(), p2.getX(), p2.getY()); @@ -428,39 +483,44 @@ public abstract class Line2D implements Shape, Cloneable { /** * Sets the line's endpoints by copying the data from another Line2D. * - * @param line the Line2D to copy the endpoint data from + * @param line + * the Line2D to copy the endpoint data from. */ public void setLine(Line2D line) { setLine(line.getX1(), line.getY1(), line.getX2(), line.getY2()); } public Rectangle getBounds() { - return getBounds2D().getBounds(); + return getBounds2D().getBounds(); } /** - * Tells where the point is with respect to the line segment, - * given the orientation of the line segment. If the ray - * found by extending the line segment from its starting point - * is rotated, this method tells whether the ray - * should rotate in a clockwise direction or a counter-clockwise - * direction to hit the point first. The return value is 0 if the - * point is on the line segment, it's 1 if the point is on the ray - * or if the ray should rotate in a counter-clockwise direction to get to the - * point, and it's -1 if the ray should rotate in a clockwise - * direction to get to the point or if the point is on the line - * determined by the line segment but not on the ray from the - * segment's starting point and through its end point. - * - * @param x1 the x coordinate of the starting point of the line segment - * @param y1 the y coordinate of the starting point of the line segment - * @param x2 the x coordinate of the end point of the line segment - * @param y2 the y coordinate of the end point of the line segment - * @param px the x coordinate of the test point - * @param py the p coordinate of the test point - * - * @return the value that describes where the point is with respect to the line segment, - * given the orientation of the line segment + * Tells where the point is with respect to the line segment, given the + * orientation of the line segment. If the ray found by extending the line + * segment from its starting point is rotated, this method tells whether the + * ray should rotate in a clockwise direction or a counter-clockwise + * direction to hit the point first. The return value is 0 if the point is + * on the line segment, it's 1 if the point is on the ray or if the ray + * should rotate in a counter-clockwise direction to get to the point, and + * it's -1 if the ray should rotate in a clockwise direction to get to the + * point or if the point is on the line determined by the line segment but + * not on the ray from the segment's starting point and through its end + * point. + * + * @param x1 + * the x coordinate of the starting point of the line segment. + * @param y1 + * the y coordinate of the starting point of the line segment. + * @param x2 + * the x coordinate of the end point of the line segment. + * @param y2 + * the y coordinate of the end point of the line segment. + * @param px + * the x coordinate of the test point. + * @param py + * the p coordinate of the test point. + * @return the value that describes where the point is with respect to the + * line segment, given the orientation of the line segment. */ public static int relativeCCW(double x1, double y1, double x2, double y2, double px, double py) { /* @@ -487,47 +547,46 @@ public abstract class Line2D implements Shape, Cloneable { } /** - * Tells where the point is with respect to this line segment, - * given the orientation of this line segment. If the ray - * found by extending the line segment from its starting point - * is rotated, this method tells whether the ray - * should rotate in a clockwise direction or a counter-clockwise - * direction to hit the point first. The return value is 0 if the - * point is on the line segment, it's 1 if the point is on the ray - * or if the ray should rotate in a counter-clockwise direction to get to the - * point, and it's -1 if the ray should rotate in a clockwise - * direction to get to the point or if the point is on the line - * determined by the line segment but not on the ray from the - * segment's starting point and through its end point. - * - * @param px the x coordinate of the test point - * @param py the p coordinate of the test point - * - * @return the value that describes where the point is with respect to - * this line segment, given the orientation of this line segment + * Tells where the point is with respect to this line segment, given the + * orientation of this line segment. If the ray found by extending the line + * segment from its starting point is rotated, this method tells whether the + * ray should rotate in a clockwise direction or a counter-clockwise + * direction to hit the point first. The return value is 0 if the point is + * on the line segment, it's 1 if the point is on the ray or if the ray + * should rotate in a counter-clockwise direction to get to the point, and + * it's -1 if the ray should rotate in a clockwise direction to get to the + * point or if the point is on the line determined by the line segment but + * not on the ray from the segment's starting point and through its end + * point. + * + * @param px + * the x coordinate of the test point. + * @param py + * the p coordinate of the test point. + * @return the value that describes where the point is with respect to this + * line segment, given the orientation of this line segment. */ public int relativeCCW(double px, double py) { return relativeCCW(getX1(), getY1(), getX2(), getY2(), px, py); } /** - * Tells where the point is with respect to this line segment, - * given the orientation of this line segment. If the ray - * found by extending the line segment from its starting point - * is rotated, this method tells whether the ray - * should rotate in a clockwise direction or a counter-clockwise - * direction to hit the point first. The return value is 0 if the - * point is on the line segment, it's 1 if the point is on the ray - * or if the ray should rotate in a counter-clockwise direction to get to the - * point, and it's -1 if the ray should rotate in a clockwise - * direction to get to the point or if the point is on the line - * determined by the line segment but not on the ray from the - * segment's starting point and through its end point. - * - * @param p the test point - * - * @return the value that describes where the point is with respect to - * this line segment, given the orientation of this line segment + * Tells where the point is with respect to this line segment, given the + * orientation of this line segment. If the ray found by extending the line + * segment from its starting point is rotated, this method tells whether the + * ray should rotate in a clockwise direction or a counter-clockwise + * direction to hit the point first. The return value is 0 if the point is + * on the line segment, it's 1 if the point is on the ray or if the ray + * should rotate in a counter-clockwise direction to get to the point, and + * it's -1 if the ray should rotate in a clockwise direction to get to the + * point or if the point is on the line determined by the line segment but + * not on the ray from the segment's starting point and through its end + * point. + * + * @param p + * the test point. + * @return the value that describes where the point is with respect to this + * line segment, given the orientation of this line segment. */ public int relativeCCW(Point2D p) { return relativeCCW(getX1(), getY1(), getX2(), getY2(), p.getX(), p.getY()); @@ -536,28 +595,31 @@ public abstract class Line2D implements Shape, Cloneable { /** * Tells whether the two line segments cross. * - * @param x1 the x coordinate of the starting point of the first segment - * @param y1 the y coordinate of the starting point of the first segment - * @param x2 the x coordinate of the end point of the first segment - * @param y2 the y coordinate of the end point of the first segment - * @param x3 the x coordinate of the starting point of the second segment - * @param y3 the y coordinate of the starting point of the second segment - * @param x4 the x coordinate of the end point of the second segment - * @param y4 the y coordinate of the end point of the second segment - * - * @return true, if the two line segments cross - */ - public static boolean linesIntersect(double x1, double y1, double x2, - double y2, double x3, double y3, double x4, double y4) - { + * @param x1 + * the x coordinate of the starting point of the first segment. + * @param y1 + * the y coordinate of the starting point of the first segment. + * @param x2 + * the x coordinate of the end point of the first segment. + * @param y2 + * the y coordinate of the end point of the first segment. + * @param x3 + * the x coordinate of the starting point of the second segment. + * @param y3 + * the y coordinate of the starting point of the second segment. + * @param x4 + * the x coordinate of the end point of the second segment. + * @param y4 + * the y coordinate of the end point of the second segment. + * @return true, if the two line segments cross. + */ + public static boolean linesIntersect(double x1, double y1, double x2, double y2, double x3, + double y3, double x4, double y4) { /* * A = (x2-x1, y2-y1) B = (x3-x1, y3-y1) C = (x4-x1, y4-y1) D = (x4-x3, - * y4-y3) = C-B E = (x1-x3, y1-y3) = -B F = (x2-x3, y2-y3) = A-B - * - * Result is ((AxB) * (AxC) <=0) and ((DxE) * (DxF) <= 0) - * - * DxE = (C-B)x(-B) = BxB-CxB = BxC DxF = (C-B)x(A-B) = CxA-CxB-BxA+BxB = - * AxB+BxC-AxC + * y4-y3) = C-B E = (x1-x3, y1-y3) = -B F = (x2-x3, y2-y3) = A-B Result + * is ((AxB) (AxC) <=0) and ((DxE) (DxF) <= 0) DxE = (C-B)x(-B) = + * BxB-CxB = BxC DxF = (C-B)x(A-B) = CxA-CxB-BxA+BxB = AxB+BxC-AxC */ x2 -= x1; // A @@ -573,16 +635,14 @@ public abstract class Line2D implements Shape, Cloneable { // Online if (AvB == 0.0 && AvC == 0.0) { if (x2 != 0.0) { - return - (x4 * x3 <= 0.0) || - ((x3 * x2 >= 0.0) && - (x2 > 0.0 ? x3 <= x2 || x4 <= x2 : x3 >= x2 || x4 >= x2)); + return (x4 * x3 <= 0.0) + || ((x3 * x2 >= 0.0) && (x2 > 0.0 ? x3 <= x2 || x4 <= x2 : x3 >= x2 + || x4 >= x2)); } if (y2 != 0.0) { - return - (y4 * y3 <= 0.0) || - ((y3 * y2 >= 0.0) && - (y2 > 0.0 ? y3 <= y2 || y4 <= y2 : y3 >= y2 || y4 >= y2)); + return (y4 * y3 <= 0.0) + || ((y3 * y2 >= 0.0) && (y2 > 0.0 ? y3 <= y2 || y4 <= y2 : y3 >= y2 + || y4 >= y2)); } return false; } @@ -595,12 +655,15 @@ public abstract class Line2D implements Shape, Cloneable { /** * Tells whether the specified line segments crosses this line segment. * - * @param x1 the x coordinate of the starting point of the test segment - * @param y1 the y coordinate of the starting point of the test segment - * @param x2 the x coordinate of the end point of the test segment - * @param y2 the y coordinate of the end point of the test segment - * - * @return true, if the specified line segments crosses this line segment + * @param x1 + * the x coordinate of the starting point of the test segment. + * @param y1 + * the y coordinate of the starting point of the test segment. + * @param x2 + * the x coordinate of the end point of the test segment. + * @param y2 + * the y coordinate of the end point of the test segment. + * @return true, if the specified line segments crosses this line segment. */ public boolean intersectsLine(double x1, double y1, double x2, double y2) { return linesIntersect(x1, y1, x2, y2, getX1(), getY1(), getX2(), getY2()); @@ -609,31 +672,37 @@ public abstract class Line2D implements Shape, Cloneable { /** * Tells whether the specified line segments crosses this line segment. * - * @param l the test segment - * - * @return true, if the specified line segments crosses this line segment - * - * @throws NullPointerException if l is null + * @param l + * the test segment. + * @return true, if the specified line segments crosses this line segment. + * @throws NullPointerException + * if l is null. */ public boolean intersectsLine(Line2D l) { - return linesIntersect(l.getX1(), l.getY1(), l.getX2(), l.getY2(), getX1(), getY1(), getX2(), getY2()); + return linesIntersect(l.getX1(), l.getY1(), l.getX2(), l.getY2(), getX1(), getY1(), + getX2(), getY2()); } /** - * Gives the square of the distance between the point and the - * line segment. - * - * @param x1 the x coordinate of the starting point of the line segment - * @param y1 the y coordinate of the starting point of the line segment - * @param x2 the x coordinate of the end point of the line segment - * @param y2 the y coordinate of the end point of the line segment - * @param px the x coordinate of the test point - * @param py the y coordinate of the test point - * - * @return the the square of the distance between the point and the - * line segment - */ - public static double ptSegDistSq(double x1, double y1, double x2, double y2, double px, double py) { + * Gives the square of the distance between the point and the line segment. + * + * @param x1 + * the x coordinate of the starting point of the line segment. + * @param y1 + * the y coordinate of the starting point of the line segment. + * @param x2 + * the x coordinate of the end point of the line segment. + * @param y2 + * the y coordinate of the end point of the line segment. + * @param px + * the x coordinate of the test point. + * @param py + * the y coordinate of the test point. + * @return the the square of the distance between the point and the line + * segment. + */ + public static double ptSegDistSq(double x1, double y1, double x2, double y2, double px, + double py) { /* * A = (x2 - x1, y2 - y1) P = (px - x1, py - y1) */ @@ -661,92 +730,95 @@ public abstract class Line2D implements Shape, Cloneable { } /** - * Gives the distance between the point and the - * line segment. - * - * @param x1 the x coordinate of the starting point of the line segment - * @param y1 the y coordinate of the starting point of the line segment - * @param x2 the x coordinate of the end point of the line segment - * @param y2 the y coordinate of the end point of the line segment - * @param px the x coordinate of the test point - * @param py the y coordinate of the test point - * - * @return the the distance between the point and the - * line segment + * Gives the distance between the point and the line segment. + * + * @param x1 + * the x coordinate of the starting point of the line segment. + * @param y1 + * the y coordinate of the starting point of the line segment. + * @param x2 + * the x coordinate of the end point of the line segment. + * @param y2 + * the y coordinate of the end point of the line segment. + * @param px + * the x coordinate of the test point. + * @param py + * the y coordinate of the test point. + * @return the the distance between the point and the line segment. */ public static double ptSegDist(double x1, double y1, double x2, double y2, double px, double py) { return Math.sqrt(ptSegDistSq(x1, y1, x2, y2, px, py)); } /** - * Gives the square of the distance between the point and this - * line segment. - * - * @param px the x coordinate of the test point - * @param py the y coordinate of the test point + * Gives the square of the distance between the point and this line segment. * - * @return the the square of the distance between the point and this - * line segment + * @param px + * the x coordinate of the test point. + * @param py + * the y coordinate of the test point. + * @return the the square of the distance between the point and this line + * segment. */ public double ptSegDistSq(double px, double py) { return ptSegDistSq(getX1(), getY1(), getX2(), getY2(), px, py); } /** - * Gives the square of the distance between the point and this - * line segment. + * Gives the square of the distance between the point and this line segment. * - * @param p the test point - * - * @return the square of the distance between the point and this - * line segment + * @param p + * the test point. + * @return the square of the distance between the point and this line + * segment. */ public double ptSegDistSq(Point2D p) { return ptSegDistSq(getX1(), getY1(), getX2(), getY2(), p.getX(), p.getY()); } /** - * Gives the distance between the point and this - * line segment. - * - * @param px the x coordinate of the test point - * @param py the y coordinate of the test point + * Gives the distance between the point and this line segment. * - * @return the distance between the point and this - * line segment + * @param px + * the x coordinate of the test point. + * @param py + * the y coordinate of the test point. + * @return the distance between the point and this line segment. */ public double ptSegDist(double px, double py) { return ptSegDist(getX1(), getY1(), getX2(), getY2(), px, py); } /** - * Gives the distance between the point and this - * line segment. + * Gives the distance between the point and this line segment. * - * @param p the test point - * - * @return the distance between the point and this - * line segment + * @param p + * the test point. + * @return the distance between the point and this line segment. */ public double ptSegDist(Point2D p) { return ptSegDist(getX1(), getY1(), getX2(), getY2(), p.getX(), p.getY()); } /** - * Gives the square of the distance between the point and the - * line. - * - * @param x1 the x coordinate of the starting point of the line segment - * @param y1 the y coordinate of the starting point of the line segment - * @param x2 the x coordinate of the end point of the line segment - * @param y2 the y coordinate of the end point of the line segment - * @param px the x coordinate of the test point - * @param py the y coordinate of the test point - * - * @return the square of the distance between the point and the - * line - */ - public static double ptLineDistSq(double x1, double y1, double x2, double y2, double px, double py) { + * Gives the square of the distance between the point and the line. + * + * @param x1 + * the x coordinate of the starting point of the line segment. + * @param y1 + * the y coordinate of the starting point of the line segment. + * @param x2 + * the x coordinate of the end point of the line segment. + * @param y2 + * the y coordinate of the end point of the line segment. + * @param px + * the x coordinate of the test point. + * @param py + * the y coordinate of the test point. + * @return the square of the distance between the point and the line. + */ + public static double ptLineDistSq(double x1, double y1, double x2, double y2, double px, + double py) { x2 -= x1; y2 -= y1; px -= x1; @@ -756,72 +828,77 @@ public abstract class Line2D implements Shape, Cloneable { } /** - * Gives the square of the distance between the point and the - * line. - * - * @param x1 the x coordinate of the starting point of the line segment - * @param y1 the y coordinate of the starting point of the line segment - * @param x2 the x coordinate of the end point of the line segment - * @param y2 the y coordinate of the end point of the line segment - * @param px the x coordinate of the test point - * @param py the y coordinate of the test point - * - * @return the square of the distance between the point and the - * line + * Gives the square of the distance between the point and the line. + * + * @param x1 + * the x coordinate of the starting point of the line segment. + * @param y1 + * the y coordinate of the starting point of the line segment. + * @param x2 + * the x coordinate of the end point of the line segment. + * @param y2 + * the y coordinate of the end point of the line segment. + * @param px + * the x coordinate of the test point. + * @param py + * the y coordinate of the test point. + * @return the square of the distance between the point and the line. */ public static double ptLineDist(double x1, double y1, double x2, double y2, double px, double py) { return Math.sqrt(ptLineDistSq(x1, y1, x2, y2, px, py)); } /** - * Gives the square of the distance between the point and the - * line determined by this Line2D. + * Gives the square of the distance between the point and the line + * determined by this Line2D. * - * @param px the x coordinate of the test point - * @param py the y coordinate of the test point - * - * @return the square of the distance between the point and the - * line determined by this Line2D + * @param px + * the x coordinate of the test point. + * @param py + * the y coordinate of the test point. + * @return the square of the distance between the point and the line + * determined by this Line2D. */ public double ptLineDistSq(double px, double py) { return ptLineDistSq(getX1(), getY1(), getX2(), getY2(), px, py); } /** - * Gives the square of the distance between the point and the - * line determined by this Line2D. - * - * @param p the test point + * Gives the square of the distance between the point and the line + * determined by this Line2D. * - * @return the square of the distance between the point and the - * line determined by this Line2D + * @param p + * the test point. + * @return the square of the distance between the point and the line + * determined by this Line2D. */ public double ptLineDistSq(Point2D p) { return ptLineDistSq(getX1(), getY1(), getX2(), getY2(), p.getX(), p.getY()); } /** - * Gives the distance between the point and the - * line determined by this Line2D. + * Gives the distance between the point and the line determined by this + * Line2D. * - * @param px the x coordinate of the test point - * @param py the y coordinate of the test point - * - * @return the distance between the point and the - * line determined by this Line2D + * @param px + * the x coordinate of the test point. + * @param py + * the y coordinate of the test point. + * @return the distance between the point and the line determined by this + * Line2D. */ public double ptLineDist(double px, double py) { return ptLineDist(getX1(), getY1(), getX2(), getY2(), px, py); } /** - * Gives the distance between the point and the - * line determined by this Line2D. - * - * @param p the test point + * Gives the distance between the point and the line determined by this + * Line2D. * - * @return the distance between the point and the - * line determined by this Line2D + * @param p + * the test point. + * @return the distance between the point and the line determined by this + * Line2D. */ public double ptLineDist(Point2D p) { return ptLineDist(getX1(), getY1(), getX2(), getY2(), p.getX(), p.getY()); diff --git a/awt/java/awt/geom/NoninvertibleTransformException.java b/awt/java/awt/geom/NoninvertibleTransformException.java index 2b7b542..a4e6f0f 100644 --- a/awt/java/awt/geom/NoninvertibleTransformException.java +++ b/awt/java/awt/geom/NoninvertibleTransformException.java @@ -18,26 +18,31 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt.geom; /** - * The Class NoninvertibleTransformException is the exception that is thrown - * when an action requires inverting an {@link AffineTransform} that is - * not invertible (has determinant 0). + * The Class NoninvertibleTransformException is the exception that is thrown + * when an action requires inverting an {@link AffineTransform} that is not + * invertible (has determinant 0). + * + * @since Android 1.0 */ public class NoninvertibleTransformException extends java.lang.Exception { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = 6137225240503990466L; /** - * Instantiates a new noninvertible transform exception. + * Instantiates a new non-invertible transform exception. * - * @param s the error message + * @param s + * the error message. */ public NoninvertibleTransformException(String s) { super(s); } } - diff --git a/awt/java/awt/geom/PathIterator.java b/awt/java/awt/geom/PathIterator.java index 5a98083..2d1c0ff 100644 --- a/awt/java/awt/geom/PathIterator.java +++ b/awt/java/awt/geom/PathIterator.java @@ -18,72 +18,87 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt.geom; /** - * The Interface PathIterator represents an iterator object that can - * be used to traverse the outline of a {@link java.awt.Shape}. - * It returns points along the boundary of the Shape - * which may be actual vertices (in the case of a shape made of line - * segments) or may be points on a curved segment with the distance - * between the points determined by a chosen flattening factor. + * The Interface PathIterator represents an iterator object that can be used to + * traverse the outline of a {@link java.awt.Shape}. It returns points along the + * boundary of the Shape which may be actual vertices (in the case of a shape + * made of line segments) or may be points on a curved segment with the distance + * between the points determined by a chosen flattening factor. * <p> - * If the shape is closed, the outline is traversed in the counter-clockwise - * direction. That means that moving forward along the boundary is to travel - * in such a way that the interior of the shape is to the left of the - * outline path and the exterior of the shape is to the right of the outline - * path. The interior and exterior of the shape are determined by a - * winding rule. + * If the shape is closed, the outline is traversed in the counter-clockwise + * direction. That means that moving forward along the boundary is to travel in + * such a way that the interior of the shape is to the left of the outline path + * and the exterior of the shape is to the right of the outline path. The + * interior and exterior of the shape are determined by a winding rule. + * </p> + * + * @since Android 1.0 */ public interface PathIterator { - /** The Constant WIND_EVEN_ODD indicates the winding rule that says - * that a point is outside the shape if any infinite ray from the point - * crosses the outline of the shape an even number of times, otherwise - * it is inside. */ + /** + * The Constant WIND_EVEN_ODD indicates the winding rule that says that a + * point is outside the shape if any infinite ray from the point crosses the + * outline of the shape an even number of times, otherwise it is inside. + */ public static final int WIND_EVEN_ODD = 0; - - /** The Constant WIND_NON_ZERO indicates the winding rule that says that - * a point is inside the shape if every infinite ray starting from that - * point crosses the outline of the shape a non-zero number of times. */ + + /** + * The Constant WIND_NON_ZERO indicates the winding rule that says that a + * point is inside the shape if every infinite ray starting from that point + * crosses the outline of the shape a non-zero number of times. + */ public static final int WIND_NON_ZERO = 1; - /** The Constant SEG_MOVETO indicates that to follow the shape's outline - * from the previous point to the current point, the cursor (traversal - * point) should be placed directly on the current point. */ - public static final int SEG_MOVETO = 0; - - /** The Constant SEG_LINETO indicates that to follow the shape's outline - * from the previous point to the current point, the cursor (traversal - * point) should follow a straight line. */ - public static final int SEG_LINETO = 1; - - /** The Constant SEG_QUADTO indicates that to follow the shape's outline - * from the previous point to the current point, the cursor (traversal - * point) should follow a quadratic curve. */ - public static final int SEG_QUADTO = 2; - - /** The Constant SEG_CUBICTO indicates that to follow the shape's outline - * from the previous point to the current point, the cursor (traversal - * point) should follow a cubic curve. */ + /** + * The Constant SEG_MOVETO indicates that to follow the shape's outline from + * the previous point to the current point, the cursor (traversal point) + * should be placed directly on the current point. + */ + public static final int SEG_MOVETO = 0; + + /** + * The Constant SEG_LINETO indicates that to follow the shape's outline from + * the previous point to the current point, the cursor (traversal point) + * should follow a straight line. + */ + public static final int SEG_LINETO = 1; + + /** + * The Constant SEG_QUADTO indicates that to follow the shape's outline from + * the previous point to the current point, the cursor (traversal point) + * should follow a quadratic curve. + */ + public static final int SEG_QUADTO = 2; + + /** + * The Constant SEG_CUBICTO indicates that to follow the shape's outline + * from the previous point to the current point, the cursor (traversal + * point) should follow a cubic curve. + */ public static final int SEG_CUBICTO = 3; - - /** The Constant SEG_CLOSE indicates that the previous point was the end - * of the shape's outline. */ - public static final int SEG_CLOSE = 4; + + /** + * The Constant SEG_CLOSE indicates that the previous point was the end of + * the shape's outline. + */ + public static final int SEG_CLOSE = 4; /** * Gets the winding rule, either {@link PathIterator#WIND_EVEN_ODD} or * {@link PathIterator#WIND_NON_ZERO}. * - * @return the winding rule + * @return the winding rule. */ public int getWindingRule(); /** * Checks if this PathIterator has been completely traversed. * - * @return true, if this PathIterator has been completely traversed + * @return true, if this PathIterator has been completely traversed. */ public boolean isDone(); @@ -93,40 +108,39 @@ public interface PathIterator { public void next(); /** - * Gets the coordinates of the next vertex point along the shape's outline - * and a flag that indicates what kind of segment to use in order to - * connect the previous vertex point to the current vertex point to form - * the current segment. - * - * @param coords the array that the coordinates of the end point of the current - * segment are written into. + * Gets the coordinates of the next vertex point along the shape's outline + * and a flag that indicates what kind of segment to use in order to connect + * the previous vertex point to the current vertex point to form the current + * segment. * - * @return the flag that indicates how to follow the shape's outline - * from the previous point to the current one, chosen from - * the following constants: - * {@link PathIterator#SEG_MOVETO}, {@link PathIterator#SEG_LINETO}, - * {@link PathIterator#SEG_QUADTO}, {@link PathIterator#SEG_CUBICTO}, - * or {@link PathIterator#SEG_CLOSE} + * @param coords + * the array that the coordinates of the end point of the current + * segment are written into. + * @return the flag that indicates how to follow the shape's outline from + * the previous point to the current one, chosen from the following + * constants: {@link PathIterator#SEG_MOVETO}, + * {@link PathIterator#SEG_LINETO}, {@link PathIterator#SEG_QUADTO}, + * {@link PathIterator#SEG_CUBICTO}, or + * {@link PathIterator#SEG_CLOSE}. */ public int currentSegment(float[] coords); /** - * Gets the coordinates of the next vertex point along the shape's outline - * and a flag that indicates what kind of segment to use in order to - * connect the previous vertex point to the current vertex point to form - * the current segment. + * Gets the coordinates of the next vertex point along the shape's outline + * and a flag that indicates what kind of segment to use in order to connect + * the previous vertex point to the current vertex point to form the current + * segment. * - * @param coords the array that the coordinates of the end point of the current - * segment are written into. - * - * @return the flag that indicates how to follow the shape's outline - * from the previous point to the current one, chosen from - * the following constants: - * {@link PathIterator#SEG_MOVETO}, {@link PathIterator#SEG_LINETO}, - * {@link PathIterator#SEG_QUADTO}, {@link PathIterator#SEG_CUBICTO}, - * or {@link PathIterator#SEG_CLOSE} + * @param coords + * the array that the coordinates of the end point of the current + * segment are written into. + * @return the flag that indicates how to follow the shape's outline from + * the previous point to the current one, chosen from the following + * constants: {@link PathIterator#SEG_MOVETO}, + * {@link PathIterator#SEG_LINETO}, {@link PathIterator#SEG_QUADTO}, + * {@link PathIterator#SEG_CUBICTO}, or + * {@link PathIterator#SEG_CLOSE}. */ public int currentSegment(double[] coords); } - diff --git a/awt/java/awt/geom/Point2D.java b/awt/java/awt/geom/Point2D.java index 7719e67..f7026c8 100644 --- a/awt/java/awt/geom/Point2D.java +++ b/awt/java/awt/geom/Point2D.java @@ -18,40 +18,51 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt.geom; import org.apache.harmony.misc.HashCode; /** - * The Class Point2D represents a point whose data is given in - * high-precision values appropriate for graphical operations. + * The Class Point2D represents a point whose data is given in high-precision + * values appropriate for graphical operations. + * + * @since Android 1.0 */ public abstract class Point2D implements Cloneable { /** - * The Class Float is the subclass of Point2D that has all - * of its data values stored with float-level precision. + * The Class Float is the subclass of Point2D that has all of its data + * values stored with float-level precision. + * + * @since Android 1.0 */ public static class Float extends Point2D { - /** The x coordinate. */ + /** + * The x coordinate. + */ public float x; - - /** The y coordinate. */ + + /** + * The y coordinate. + */ public float y; /** - * Instantiates a new float-valued Point2D with its data - * set to zero. + * Instantiates a new float-valued Point2D with its data set to zero. */ public Float() { } /** - * Instantiates a new float-valued Point2D with the specified coordinates. + * Instantiates a new float-valued Point2D with the specified + * coordinates. * - * @param x the x coordinate - * @param y the y coordinate + * @param x + * the x coordinate. + * @param y + * the y coordinate. */ public Float(float x, float y) { this.x = x; @@ -71,8 +82,10 @@ public abstract class Point2D implements Cloneable { /** * Sets the point's coordinates. * - * @param x the x coordinate - * @param y the y coordinate + * @param x + * the x coordinate. + * @param y + * the y coordinate. */ public void setLocation(float x, float y) { this.x = x; @@ -92,29 +105,37 @@ public abstract class Point2D implements Cloneable { } /** - * The Class Double is the subclass of Point2D that has all - * of its data values stored with double-level precision. + * The Class Double is the subclass of Point2D that has all of its data + * values stored with double-level precision. + * + * @since Android 1.0 */ public static class Double extends Point2D { - /** The x coordinate. */ + /** + * The x coordinate. + */ public double x; - - /** The y coordinate. */ + + /** + * The y coordinate. + */ public double y; /** - * Instantiates a new double-valued Point2D with its data - * set to zero. + * Instantiates a new double-valued Point2D with its data set to zero. */ public Double() { } /** - * Instantiates a new double-valued Point2D with the specified coordinates. + * Instantiates a new double-valued Point2D with the specified + * coordinates. * - * @param x the x coordinate - * @param y the y coordinate + * @param x + * the x coordinate. + * @param y + * the y coordinate. */ public Double(double x, double y) { this.x = x; @@ -152,29 +173,32 @@ public abstract class Point2D implements Cloneable { /** * Gets the x coordinate. * - * @return the x coordinate + * @return the x coordinate. */ public abstract double getX(); /** * Gets the y coordinate. * - * @return the y coordinate + * @return the y coordinate. */ public abstract double getY(); /** * Sets the point's coordinates. * - * @param x the x coordinate - * @param y the y coordinate + * @param x + * the x coordinate. + * @param y + * the y coordinate. */ public abstract void setLocation(double x, double y); /** * Sets the point's coordinates by copying them from another point. * - * @param p the point to copy the data from + * @param p + * the point to copy the data from. */ public void setLocation(Point2D p) { setLocation(p.getX(), p.getY()); @@ -183,12 +207,15 @@ public abstract class Point2D implements Cloneable { /** * Finds the square of the distance between the two specified points. * - * @param x1 the x coordinate of the first point - * @param y1 the y coordinate of the first point - * @param x2 the x coordinate of the second point - * @param y2 the y coordinate of the second point - * - * @return the square of the distance between the two specified points + * @param x1 + * the x coordinate of the first point. + * @param y1 + * the y coordinate of the first point. + * @param x2 + * the x coordinate of the second point. + * @param y2 + * the y coordinate of the second point. + * @return the square of the distance between the two specified points. */ public static double distanceSq(double x1, double y1, double x2, double y2) { x2 -= x1; @@ -197,23 +224,28 @@ public abstract class Point2D implements Cloneable { } /** - * Finds the square of the distance between this point and the specified point. - * - * @param px the x coordinate of the point - * @param py the y coordinate of the point + * Finds the square of the distance between this point and the specified + * point. * - * @return the square of the distance between this point and the specified point + * @param px + * the x coordinate of the point. + * @param py + * the y coordinate of the point. + * @return the square of the distance between this point and the specified + * point. */ public double distanceSq(double px, double py) { return Point2D.distanceSq(getX(), getY(), px, py); } /** - * Finds the square of the distance between this point and the specified point. + * Finds the square of the distance between this point and the specified + * point. * - * @param p the other point - * - * @return the square of the distance between this point and the specified point + * @param p + * the other point. + * @return the square of the distance between this point and the specified + * point. */ public double distanceSq(Point2D p) { return Point2D.distanceSq(getX(), getY(), p.getX(), p.getY()); @@ -222,12 +254,15 @@ public abstract class Point2D implements Cloneable { /** * Finds the distance between the two specified points. * - * @param x1 the x coordinate of the first point - * @param y1 the y coordinate of the first point - * @param x2 the x coordinate of the second point - * @param y2 the y coordinate of the second point - * - * @return the distance between the two specified points + * @param x1 + * the x coordinate of the first point. + * @param y1 + * the y coordinate of the first point. + * @param x2 + * the x coordinate of the second point. + * @param y2 + * the y coordinate of the second point. + * @return the distance between the two specified points. */ public static double distance(double x1, double y1, double x2, double y2) { return Math.sqrt(distanceSq(x1, y1, x2, y2)); @@ -236,10 +271,11 @@ public abstract class Point2D implements Cloneable { /** * Finds the distance between this point and the specified point. * - * @param px the x coordinate of the point - * @param py the y coordinate of the point - * - * @return the distance between this point and the specified point + * @param px + * the x coordinate of the point. + * @param py + * the y coordinate of the point. + * @return the distance between this point and the specified point. */ public double distance(double px, double py) { return Math.sqrt(distanceSq(px, py)); @@ -248,9 +284,9 @@ public abstract class Point2D implements Cloneable { /** * Finds the distance between this point and the specified point. * - * @param p the other point - * - * @return the distance between this point and the specified point + * @param p + * the other point. + * @return the distance between this point and the specified point. */ public double distance(Point2D p) { return Math.sqrt(distanceSq(p)); @@ -279,10 +315,9 @@ public abstract class Point2D implements Cloneable { return true; } if (obj instanceof Point2D) { - Point2D p = (Point2D) obj; + Point2D p = (Point2D)obj; return getX() == p.getX() && getY() == p.getY(); } return false; } } - diff --git a/awt/java/awt/geom/QuadCurve2D.java b/awt/java/awt/geom/QuadCurve2D.java index 64ea6d6..7a86a48 100644 --- a/awt/java/awt/geom/QuadCurve2D.java +++ b/awt/java/awt/geom/QuadCurve2D.java @@ -18,6 +18,7 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt.geom; import java.awt.Rectangle; @@ -28,42 +29,58 @@ import org.apache.harmony.awt.gl.Crossing; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Class QuadCurve2D is a Shape that represents a segment of a - * quadratic (Bezier) curve. The curved segment is determined by three points: - * a start point, an end point, and a control point. The line from the control - * point to the starting point gives the tangent to the curve at the - * starting point, and the line from the control point to the end point - * gives the tangent to the curve at the end point. + * The Class QuadCurve2D is a Shape that represents a segment of a quadratic + * (Bezier) curve. The curved segment is determined by three points: a start + * point, an end point, and a control point. The line from the control point to + * the starting point gives the tangent to the curve at the starting point, and + * the line from the control point to the end point gives the tangent to the + * curve at the end point. + * + * @since Android 1.0 */ public abstract class QuadCurve2D implements Shape, Cloneable { /** - * The Class Float is the subclass of QuadCurve2D that has all - * of its data values stored with float-level precision. + * The Class Float is the subclass of QuadCurve2D that has all of its data + * values stored with float-level precision. + * + * @since Android 1.0 */ public static class Float extends QuadCurve2D { - /** The x coordinate of the starting point of the curved segment. */ + /** + * The x coordinate of the starting point of the curved segment. + */ public float x1; - - /** The y coordinate of the starting point of the curved segment. */ + + /** + * The y coordinate of the starting point of the curved segment. + */ public float y1; - - /** The x coordinate of the control point. */ + + /** + * The x coordinate of the control point. + */ public float ctrlx; - - /** The y coordinate of the control point. */ + + /** + * The y coordinate of the control point. + */ public float ctrly; - - /** The x coordinate of the end point of the curved segment. */ + + /** + * The x coordinate of the end point of the curved segment. + */ public float x2; - - /** The y coordinate of the end point of the curved segment. */ + + /** + * The y coordinate of the end point of the curved segment. + */ public float y2; /** - * Instantiates a new float-valued QuadCurve2D with all coordinate values - * set to zero. + * Instantiates a new float-valued QuadCurve2D with all coordinate + * values set to zero. */ public Float() { } @@ -72,12 +89,20 @@ public abstract class QuadCurve2D implements Shape, Cloneable { * Instantiates a new float-valued QuadCurve2D with the specified * coordinate values. * - * @param x1 the x coordinate of the starting point of the curved segment - * @param y1 the y coordinate of the starting point of the curved segment - * @param ctrlx the x coordinate of the control point - * @param ctrly the y coordinate of the control point - * @param x2 the x coordinate of the end point of the curved segment - * @param y2 the y coordinate of the end point of the curved segment + * @param x1 + * the x coordinate of the starting point of the curved + * segment. + * @param y1 + * the y coordinate of the starting point of the curved + * segment. + * @param ctrlx + * the x coordinate of the control point. + * @param ctrly + * the y coordinate of the control point. + * @param x2 + * the x coordinate of the end point of the curved segment. + * @param y2 + * the y coordinate of the end point of the curved segment. */ public Float(float x1, float y1, float ctrlx, float ctrly, float x2, float y2) { setCurve(x1, y1, ctrlx, ctrly, x2, y2); @@ -141,12 +166,20 @@ public abstract class QuadCurve2D implements Shape, Cloneable { /** * Sets the data values of the curve. * - * @param x1 the x coordinate of the starting point of the curved segment - * @param y1 the y coordinate of the starting point of the curved segment - * @param ctrlx the x coordinate of the control point - * @param ctrly the y coordinate of the control point - * @param x2 the x coordinate of the end point of the curved segment - * @param y2 the y coordinate of the end point of the curved segment + * @param x1 + * the x coordinate of the starting point of the curved + * segment. + * @param y1 + * the y coordinate of the starting point of the curved + * segment. + * @param ctrlx + * the x coordinate of the control point. + * @param ctrly + * the y coordinate of the control point. + * @param x2 + * the x coordinate of the end point of the curved segment. + * @param y2 + * the y coordinate of the end point of the curved segment. */ public void setCurve(float x1, float y1, float ctrlx, float ctrly, float x2, float y2) { this.x1 = x1; @@ -167,32 +200,46 @@ public abstract class QuadCurve2D implements Shape, Cloneable { } /** - * The Class Double is the subclass of QuadCurve2D that has all - * of its data values stored with double-level precision. + * The Class Double is the subclass of QuadCurve2D that has all of its data + * values stored with double-level precision. + * + * @since Android 1.0 */ public static class Double extends QuadCurve2D { - /** The x coordinate of the starting point of the curved segment. */ + /** + * The x coordinate of the starting point of the curved segment. + */ public double x1; - - /** The y coordinate of the starting point of the curved segment. */ + + /** + * The y coordinate of the starting point of the curved segment. + */ public double y1; - - /** The x coordinate of the control point. */ + + /** + * The x coordinate of the control point. + */ public double ctrlx; - - /** The y coordinate of the control point. */ + + /** + * The y coordinate of the control point. + */ public double ctrly; - - /** The x coordinate of the end point of the curved segment. */ + + /** + * The x coordinate of the end point of the curved segment. + */ public double x2; - - /** The y coordinate of the end point of the curved segment. */ + + /** + * The y coordinate of the end point of the curved segment. + */ public double y2; /** - * Instantiates a new double-valued QuadCurve2D with all coordinate values - * set to zero. + * Instantiates a new double-valued QuadCurve2D with all coordinate + * values set to zero. */ public Double() { } @@ -201,12 +248,20 @@ public abstract class QuadCurve2D implements Shape, Cloneable { * Instantiates a new double-valued QuadCurve2D with the specified * coordinate values. * - * @param x1 the x coordinate of the starting point of the curved segment - * @param y1 the y coordinate of the starting point of the curved segment - * @param ctrlx the x coordinate of the control point - * @param ctrly the y coordinate of the control point - * @param x2 the x coordinate of the end point of the curved segment - * @param y2 the y coordinate of the end point of the curved segment + * @param x1 + * the x coordinate of the starting point of the curved + * segment. + * @param y1 + * the y coordinate of the starting point of the curved + * segment. + * @param ctrlx + * the x coordinate of the control point. + * @param ctrly + * the y coordinate of the control point. + * @param x2 + * the x coordinate of the end point of the curved segment. + * @param y2 + * the y coordinate of the end point of the curved segment. */ public Double(double x1, double y1, double ctrlx, double ctrly, double x2, double y2) { setCurve(x1, y1, ctrlx, ctrly, x2, y2); @@ -277,28 +332,37 @@ public abstract class QuadCurve2D implements Shape, Cloneable { } /* - * QuadCurve2D path iterator + * QuadCurve2D path iterator */ /** * The PathIterator for a Quad2D curve. */ class Iterator implements PathIterator { - /** The source QuadCurve2D object. */ + /** + * The source QuadCurve2D object. + */ QuadCurve2D c; - /** The path iterator transformation. */ + /** + * The path iterator transformation. + */ AffineTransform t; - /** The current segment index. */ + /** + * The current segment index. + */ int index; /** - * Constructs a new QuadCurve2D.Iterator for given curve and transformation + * Constructs a new QuadCurve2D.Iterator for given curve and + * transformation * - * @param q - the source QuadCurve2D object - * @param t the AffineTransform that acts on the coordinates before - * returning them (or null) + * @param q + * the source QuadCurve2D object. + * @param t + * the AffineTransform that acts on the coordinates before + * returning them (or null). */ Iterator(QuadCurve2D q, AffineTransform t) { this.c = q; @@ -380,284 +444,307 @@ public abstract class QuadCurve2D implements Shape, Cloneable { /** * Gets the x coordinate of the starting point. * - * @return the x coordinate of the starting point + * @return the x coordinate of the starting point. */ public abstract double getX1(); /** * Gets the y coordinate of the starting point. * - * @return the y coordinate of the starting point + * @return the y coordinate of the starting point. */ public abstract double getY1(); /** * Gets the starting point. * - * @return the starting point + * @return the starting point. */ public abstract Point2D getP1(); /** * Gets the x coordinate of the control point. * - * @return the x coordinate of the control point + * @return the x coordinate of the control point. */ public abstract double getCtrlX(); /** * Gets the y coordinate of the control point. * - * @return y coordinate of the control point + * @return y coordinate of the control point. */ public abstract double getCtrlY(); /** * Gets the control point. * - * @return the control point + * @return the control point. */ public abstract Point2D getCtrlPt(); /** * Gets the x coordinate of the end point. * - * @return the x coordinate of the end point + * @return the x coordinate of the end point. */ public abstract double getX2(); /** * Gets the y coordinate of the end point. * - * @return the y coordinate of the end point + * @return the y coordinate of the end point. */ public abstract double getY2(); /** * Gets the end point. * - * @return the end point + * @return the end point. */ public abstract Point2D getP2(); /** * Sets the data of the curve. * - * @param x1 the x coordinate of the starting point of the curved segment - * @param y1 the y coordinate of the starting point of the curved segment - * @param ctrlx the x coordinate of the control point - * @param ctrly the y coordinate of the control point - * @param x2 the x coordinate of the end point of the curved segment - * @param y2 the y coordinate of the end point of the curved segment + * @param x1 + * the x coordinate of the starting point of the curved segment. + * @param y1 + * the y coordinate of the starting point of the curved segment. + * @param ctrlx + * the x coordinate of the control point. + * @param ctrly + * the y coordinate of the control point. + * @param x2 + * the x coordinate of the end point of the curved segment. + * @param y2 + * the y coordinate of the end point of the curved segment. */ - public abstract void setCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2); + public abstract void setCurve(double x1, double y1, double ctrlx, double ctrly, double x2, + double y2); /** * Sets the data of the curve. * - * @param p1 the starting point of the curved segment - * @param cp the control point - * @param p2 the end point of the curved segment - * - * @throws NullPointerException if any of the three points is null. + * @param p1 + * the starting point of the curved segment. + * @param cp + * the control point. + * @param p2 + * the end point of the curved segment. + * @throws NullPointerException + * if any of the three points is null. */ public void setCurve(Point2D p1, Point2D cp, Point2D p2) { setCurve(p1.getX(), p1.getY(), cp.getX(), cp.getY(), p2.getX(), p2.getY()); } /** - * Sets the data of the curve by reading the data from an array - * of values. The values are read in the same order as the arguments - * of the method {@link QuadCurve2D#setCurve(double, double, double, double, double, double)}. - * - * @param coords the array of values containing the new coordinates - * @param offset the offset of the data to read within the array - * - * @throws ArrayIndexOutOfBoundsException if coords.length < offset + 6. - * @throws NullPointerException if the coordinate array is null. + * Sets the data of the curve by reading the data from an array of values. + * The values are read in the same order as the arguments of the method + * {@link QuadCurve2D#setCurve(double, double, double, double, double, double)} + * . + * + * @param coords + * the array of values containing the new coordinates. + * @param offset + * the offset of the data to read within the array. + * @throws ArrayIndexOutOfBoundsException + * if {@code coords.length} < offset + 6. + * @throws NullPointerException + * if the coordinate array is null. */ public void setCurve(double[] coords, int offset) { - setCurve( - coords[offset + 0], coords[offset + 1], - coords[offset + 2], coords[offset + 3], + setCurve(coords[offset + 0], coords[offset + 1], coords[offset + 2], coords[offset + 3], coords[offset + 4], coords[offset + 5]); } /** - * Sets the data of the curve by reading the data from an array - * of points. The values are read in the same order as the arguments - * of the method {@link QuadCurve2D#setCurve(Point2D, Point2D, Point2D)} - * - * @param points the array of points containing the new coordinates - * @param offset the offset of the data to read within the array - * - * @throws ArrayIndexOutOfBoundsException if points.length < offset + 3. - * @throws NullPointerException if the point array is null. + * Sets the data of the curve by reading the data from an array of points. + * The values are read in the same order as the arguments of the method + * {@link QuadCurve2D#setCurve(Point2D, Point2D, Point2D)}. + * + * @param points + * the array of points containing the new coordinates. + * @param offset + * the offset of the data to read within the array. + * @throws ArrayIndexOutOfBoundsException + * if points.length < offset + 3. + * @throws NullPointerException + * if the point array is null. */ public void setCurve(Point2D[] points, int offset) { - setCurve( - points[offset + 0].getX(), points[offset + 0].getY(), - points[offset + 1].getX(), points[offset + 1].getY(), - points[offset + 2].getX(), points[offset + 2].getY()); + setCurve(points[offset + 0].getX(), points[offset + 0].getY(), points[offset + 1].getX(), + points[offset + 1].getY(), points[offset + 2].getX(), points[offset + 2].getY()); } /** * Sets the data of the curve by copying it from another QuadCurve2D. * - * @param curve the curve to copy the data points from - * - * @throws NullPointerException if the curve is null. + * @param curve + * the curve to copy the data points from. + * @throws NullPointerException + * if the curve is null. */ public void setCurve(QuadCurve2D curve) { - setCurve( - curve.getX1(), curve.getY1(), - curve.getCtrlX(), curve.getCtrlY(), - curve.getX2(), curve.getY2()); + setCurve(curve.getX1(), curve.getY1(), curve.getCtrlX(), curve.getCtrlY(), curve.getX2(), + curve.getY2()); } /** - * Gets the square of the distance from the control point to the - * straight line segment connecting the start point and the end point - * for this curve. + * Gets the square of the distance from the control point to the straight + * line segment connecting the start point and the end point for this curve. * - * @return the square of the distance from the control point to the - * straight line segment connecting the start point and the end point. + * @return the square of the distance from the control point to the straight + * line segment connecting the start point and the end point. */ public double getFlatnessSq() { - return Line2D.ptSegDistSq( - getX1(), getY1(), - getX2(), getY2(), - getCtrlX(), getCtrlY()); + return Line2D.ptSegDistSq(getX1(), getY1(), getX2(), getY2(), getCtrlX(), getCtrlY()); } /** - * Gets the square of the distance from the control point to the - * straight line segment connecting the start point and the end point. - * - * @param x1 the x coordinate of the starting point of the curved segment - * @param y1 the y coordinate of the starting point of the curved segment - * @param ctrlx the x coordinate of the control point - * @param ctrly the y coordinate of the control point - * @param x2 the x coordinate of the end point of the curved segment - * @param y2 the y coordinate of the end point of the curved segment - * - * @return the square of the distance from the control point to the - * straight line segment connecting the start point and the end point. + * Gets the square of the distance from the control point to the straight + * line segment connecting the start point and the end point. + * + * @param x1 + * the x coordinate of the starting point of the curved segment. + * @param y1 + * the y coordinate of the starting point of the curved segment. + * @param ctrlx + * the x coordinate of the control point. + * @param ctrly + * the y coordinate of the control point. + * @param x2 + * the x coordinate of the end point of the curved segment. + * @param y2 + * the y coordinate of the end point of the curved segment. + * @return the square of the distance from the control point to the straight + * line segment connecting the start point and the end point. */ - public static double getFlatnessSq(double x1, double y1, double ctrlx, double ctrly, double x2, double y2) { + public static double getFlatnessSq(double x1, double y1, double ctrlx, double ctrly, double x2, + double y2) { return Line2D.ptSegDistSq(x1, y1, x2, y2, ctrlx, ctrly); } /** - * Gets the square of the distance from the control point to the - * straight line segment connecting the start point and the end point - * by reading the coordinates of the points from an array of values. - * The values are read in the same order as the arguments - * of the method {@link QuadCurve2D#getFlatnessSq(double, double, double, double, double, double)}. - * - * @param coords the array of points containing the coordinates to use for - * the calculation - * @param offset the offset of the data to read within the array - * - * @return the square of the distance from the control point to the - * straight line segment connecting the start point and the end point. - * - * @throws ArrayIndexOutOfBoundsException if coords.length < offset + 6. - * @throws NullPointerException if the coordinate array is null. + * Gets the square of the distance from the control point to the straight + * line segment connecting the start point and the end point by reading the + * coordinates of the points from an array of values. The values are read in + * the same order as the arguments of the method + * {@link QuadCurve2D#getFlatnessSq(double, double, double, double, double, double)} + * . + * + * @param coords + * the array of points containing the coordinates to use for the + * calculation + * @param offset + * the offset of the data to read within the array + * @return the square of the distance from the control point to the straight + * line segment connecting the start point and the end point. + * @throws ArrayIndexOutOfBoundsException + * if {@code coords.length} < offset + 6. + * @throws NullPointerException + * if the coordinate array is null. */ public static double getFlatnessSq(double coords[], int offset) { - return Line2D.ptSegDistSq( - coords[offset + 0], coords[offset + 1], - coords[offset + 4], coords[offset + 5], - coords[offset + 2], coords[offset + 3]); + return Line2D.ptSegDistSq(coords[offset + 0], coords[offset + 1], coords[offset + 4], + coords[offset + 5], coords[offset + 2], coords[offset + 3]); } /** - * Gets the distance from the control point to the - * straight line segment connecting the start point and the end point - * of this QuadCurve2D. + * Gets the distance from the control point to the straight line segment + * connecting the start point and the end point of this QuadCurve2D. * - * @return the the distance from the control point to the - * straight line segment connecting the start point and the end point - * of this QuadCurve2D + * @return the the distance from the control point to the straight line + * segment connecting the start point and the end point of this + * QuadCurve2D. */ public double getFlatness() { return Line2D.ptSegDist(getX1(), getY1(), getX2(), getY2(), getCtrlX(), getCtrlY()); } /** - * Gets the distance from the control point to the - * straight line segment connecting the start point and the end point. - * - * @param x1 the x coordinate of the starting point of the curved segment - * @param y1 the y coordinate of the starting point of the curved segment - * @param ctrlx the x coordinate of the control point - * @param ctrly the y coordinate of the control point - * @param x2 the x coordinate of the end point of the curved segment - * @param y2 the y coordinate of the end point of the curved segment - * - * @return the the distance from the control point to the - * straight line segment connecting the start point and the end point + * Gets the distance from the control point to the straight line segment + * connecting the start point and the end point. + * + * @param x1 + * the x coordinate of the starting point of the curved segment. + * @param y1 + * the y coordinate of the starting point of the curved segment. + * @param ctrlx + * the x coordinate of the control point. + * @param ctrly + * the y coordinate of the control point. + * @param x2 + * the x coordinate of the end point of the curved segment. + * @param y2 + * the y coordinate of the end point of the curved segment. + * @return the the distance from the control point to the straight line + * segment connecting the start point and the end point. */ - public static double getFlatness(double x1, double y1, double ctrlx, - double ctrly, double x2, double y2) - { + public static double getFlatness(double x1, double y1, double ctrlx, double ctrly, double x2, + double y2) { return Line2D.ptSegDist(x1, y1, x2, y2, ctrlx, ctrly); } /** - * Gets the the distance from the control point to the - * straight line segment connecting the start point and the end point. - * The values are read in the same order as the arguments - * of the method {@link QuadCurve2D#getFlatness(double, double, double, double, double, double)}. - * - * @param coords the array of points containing the coordinates to use for - * the calculation - * @param offset the offset of the data to read within the array - * - * @return the the distance from the control point to the - * straight line segment connecting the start point and the end point - * - * @throws ArrayIndexOutOfBoundsException if coords.length < offset + 6. - * @throws NullPointerException if the coordinate array is null. + * Gets the the distance from the control point to the straight line segment + * connecting the start point and the end point. The values are read in the + * same order as the arguments of the method + * {@link QuadCurve2D#getFlatness(double, double, double, double, double, double)} + * . + * + * @param coords + * the array of points containing the coordinates to use for the + * calculation. + * @param offset + * the offset of the data to read within the array. + * @return the the distance from the control point to the straight line + * segment connecting the start point and the end point. + * @throws ArrayIndexOutOfBoundsException + * if {code coords.length} < offset + 6. + * @throws NullPointerException + * if the coordinate array is null. */ public static double getFlatness(double coords[], int offset) { - return Line2D.ptSegDist( - coords[offset + 0], coords[offset + 1], - coords[offset + 4], coords[offset + 5], - coords[offset + 2], coords[offset + 3]); + return Line2D.ptSegDist(coords[offset + 0], coords[offset + 1], coords[offset + 4], + coords[offset + 5], coords[offset + 2], coords[offset + 3]); } /** - * Creates the data for two quadratic curves by dividing this - * curve in two. The division point is the point on the curve - * that is closest to this curve's control point. The data of - * this curve is left unchanged. - * - * @param left the QuadCurve2D where the left (start) segment's - * data is written - * @param right the QuadCurve2D where the right (end) segment's - * data is written - * - * @throws NullPointerException if either curve is null. + * Creates the data for two quadratic curves by dividing this curve in two. + * The division point is the point on the curve that is closest to this + * curve's control point. The data of this curve is left unchanged. + * + * @param left + * the QuadCurve2D where the left (start) segment's data is + * written. + * @param right + * the QuadCurve2D where the right (end) segment's data is + * written. + * @throws NullPointerException + * if either curve is null. */ public void subdivide(QuadCurve2D left, QuadCurve2D right) { subdivide(this, left, right); } /** - * Creates the data for two quadratic curves by dividing a source - * curve in two. The division point is the point on the curve - * that is closest to the source curve's control point. The data of - * the source curve is left unchanged. - * - * @param src the curve that provides the initial data - * @param left the QuadCurve2D where the left (start) segment's - * data is written - * @param right the QuadCurve2D where the right (end) segment's - * data is written - * - * @throws NullPointerException if one of the curves is null. + * Creates the data for two quadratic curves by dividing a source curve in + * two. The division point is the point on the curve that is closest to the + * source curve's control point. The data of the source curve is left + * unchanged. + * + * @param src + * the curve that provides the initial data. + * @param left + * the QuadCurve2D where the left (start) segment's data is + * written. + * @param right + * the QuadCurve2D where the right (end) segment's data is + * written. + * @throws NullPointerException + * if one of the curves is null. */ public static void subdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right) { double x1 = src.getX1(); @@ -681,26 +768,33 @@ public abstract class QuadCurve2D implements Shape, Cloneable { } /** - * Creates the data for two quadratic curves by dividing a source - * curve in two. The division point is the point on the curve - * that is closest to the source curve's control point. The data - * for the three curves is read and written from arrays of values in - * the usual order: x1, y1, cx, cy, x2, y2. - * - * @param src the array that gives the data values for the source curve - * @param srcoff the offset in the src array to read the values from - * @param left the array where the coordinates of the start curve should be written - * @param leftOff the offset in the left array to start writing the values - * @param right the array where the coordinates of the end curve should be written - * @param rightOff the offset in the right array to start writing the values - * - * @throws ArrayIndexOutOfBoundsException if src.length < srcoff + 6 - * or if left.length < leftOff + 6 or if right.length < rightOff + 6. - * @throws NullPointerException if one of the arrays is null. + * Creates the data for two quadratic curves by dividing a source curve in + * two. The division point is the point on the curve that is closest to the + * source curve's control point. The data for the three curves is read and + * written from arrays of values in the usual order: x1, y1, cx, cy, x2, y2. + * + * @param src + * the array that gives the data values for the source curve. + * @param srcoff + * the offset in the src array to read the values from. + * @param left + * the array where the coordinates of the start curve should be + * written. + * @param leftOff + * the offset in the left array to start writing the values. + * @param right + * the array where the coordinates of the end curve should be + * written. + * @param rightOff + * the offset in the right array to start writing the values. + * @throws ArrayIndexOutOfBoundsException + * if {@code src.length} < srcoff + 6 or if {@code left.length} + * < leftOff + 6 or if {@code right.length} < rightOff + 6. + * @throws NullPointerException + * if one of the arrays is null. */ - public static void subdivide(double src[], int srcoff, double left[], - int leftOff, double right[], int rightOff) - { + public static void subdivide(double src[], int srcoff, double left[], int leftOff, + double right[], int rightOff) { double x1 = src[srcoff + 0]; double y1 = src[srcoff + 1]; double cx = src[srcoff + 2]; @@ -732,42 +826,43 @@ public abstract class QuadCurve2D implements Shape, Cloneable { } /** - * Finds the roots of the quadratic polynomial. This is - * accomplished by finding the (real) values of x that solve - * the following equation: eqn[2]*x*x + eqn[1]*x + eqn[0] = 0. - * The solutions are written back into the array eqn starting - * from the index 0 in the array. The return value tells how - * many array elements have been changed by this method call. - * - * @param eqn an array containing the coefficients of the - * quadratic polynomial to solve. - * - * @return the number of roots of the quadratic polynomial - * - * @throws ArrayIndexOutOfBoundsException if eqn.length < 3. - * @throws NullPointerException if the array is null. + * Finds the roots of the quadratic polynomial. This is accomplished by + * finding the (real) values of x that solve the following equation: + * eqn[2]*x*x + eqn[1]*x + eqn[0] = 0. The solutions are written back into + * the array eqn starting from the index 0 in the array. The return value + * tells how many array elements have been changed by this method call. + * + * @param eqn + * an array containing the coefficients of the quadratic + * polynomial to solve. + * @return the number of roots of the quadratic polynomial. + * @throws ArrayIndexOutOfBoundsException + * if {@code eqn.length} < 3. + * @throws NullPointerException + * if the array is null. */ public static int solveQuadratic(double eqn[]) { return solveQuadratic(eqn, eqn); } /** - * Finds the roots of the quadratic polynomial. This is - * accomplished by finding the (real) values of x that solve - * the following equation: eqn[2]*x*x + eqn[1]*x + eqn[0] = 0. - * The solutions are written into the array res starting - * from the index 0 in the array. The return value tells how - * many array elements have been written by this method call. - * - * @param eqn an array containing the coefficients of the - * quadratic polynomial to solve. - * @param res the array that this method writes the results into - * - * @return the number of roots of the quadratic polynomial - * - * @throws ArrayIndexOutOfBoundsException if eqn.length < 3 or - * if res.length is less than the number of roots. - * @throws NullPointerException if either array is null. + * Finds the roots of the quadratic polynomial. This is accomplished by + * finding the (real) values of x that solve the following equation: + * eqn[2]*x*x + eqn[1]*x + eqn[0] = 0. The solutions are written into the + * array res starting from the index 0 in the array. The return value tells + * how many array elements have been written by this method call. + * + * @param eqn + * an array containing the coefficients of the quadratic + * polynomial to solve. + * @param res + * the array that this method writes the results into. + * @return the number of roots of the quadratic polynomial. + * @throws ArrayIndexOutOfBoundsException + * if {@code eqn.length} < 3 or if {@code res.length} is less + * than the number of roots. + * @throws NullPointerException + * if either array is null. */ public static int solveQuadratic(double eqn[], double res[]) { return Crossing.solveQuad(eqn, res); @@ -821,4 +916,3 @@ public abstract class QuadCurve2D implements Shape, Cloneable { } } - diff --git a/awt/java/awt/geom/Rectangle2D.java b/awt/java/awt/geom/Rectangle2D.java index d33dd91..8166134 100644 --- a/awt/java/awt/geom/Rectangle2D.java +++ b/awt/java/awt/geom/Rectangle2D.java @@ -18,6 +18,7 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt.geom; import java.util.NoSuchElementException; @@ -26,44 +27,64 @@ import org.apache.harmony.awt.internal.nls.Messages; import org.apache.harmony.misc.HashCode; /** - * The Class Rectangle2D represents a rectangle whose coordinates are given - * with the correct precision to be used with the Graphics2D classes. + * The Class Rectangle2D represents a rectangle whose coordinates are given with + * the correct precision to be used with the Graphics2D classes. + * + * @since Android 1.0 */ public abstract class Rectangle2D extends RectangularShape { - /** The Constant OUT_LEFT is a mask that is used to indicate that a - * given point is outside the rectangle and to its left. */ - public static final int OUT_LEFT = 1; - - /** The Constant OUT_TOP is a mask that is used to indicate that a - * given point is outside the rectangle and above it. */ - public static final int OUT_TOP = 2; - - /** The Constant OUT_RIGHT is a mask that is used to indicate that a - * given point is outside the rectangle and to its right. */ - public static final int OUT_RIGHT = 4; - - /** The Constant OUT_BOTTOM is a mask that is used to indicate that a - * given point is outside the rectangle and above it. */ + /** + * The Constant OUT_LEFT is a mask that is used to indicate that a given + * point is outside the rectangle and to its left. + */ + public static final int OUT_LEFT = 1; + + /** + * The Constant OUT_TOP is a mask that is used to indicate that a given + * point is outside the rectangle and above it. + */ + public static final int OUT_TOP = 2; + + /** + * The Constant OUT_RIGHT is a mask that is used to indicate that a given + * point is outside the rectangle and to its right. + */ + public static final int OUT_RIGHT = 4; + + /** + * The Constant OUT_BOTTOM is a mask that is used to indicate that a given + * point is outside the rectangle and above it. + */ public static final int OUT_BOTTOM = 8; /** - * The Class Float is the subclass of Rectangle2D that represents a + * The Class Float is the subclass of Rectangle2D that represents a * rectangle whose data values are given as floats (with float-level * precision). + * + * @since Android 1.0 */ public static class Float extends Rectangle2D { - /** The x coordinate of the rectangle's upper left corner. */ + /** + * The x coordinate of the rectangle's upper left corner. + */ public float x; - - /** The y coordinate of the rectangle's upper left corner. */ + + /** + * The y coordinate of the rectangle's upper left corner. + */ public float y; - - /** The width of the rectangle. */ + + /** + * The width of the rectangle. + */ public float width; - - /** The height of the rectangle. */ + + /** + * The height of the rectangle. + */ public float height; /** @@ -75,10 +96,14 @@ public abstract class Rectangle2D extends RectangularShape { /** * Instantiates a new rectangle with the specified float-precision data. * - * @param x the x coordinate of the rectangle's upper left corner - * @param y the y coordinate of the rectangle's upper left corner - * @param width the width of the rectangle - * @param height the height of the rectangle + * @param x + * the x coordinate of the rectangle's upper left corner. + * @param y + * the y coordinate of the rectangle's upper left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. */ public Float(float x, float y, float width, float height) { setRect(x, y, width, height); @@ -112,10 +137,14 @@ public abstract class Rectangle2D extends RectangularShape { /** * Sets the rectangle's data to the given values. * - * @param x the x coordinate of the rectangle's upper left corner - * @param y the y coordinate of the rectangle's upper left corner - * @param width the width of the rectangle - * @param height the height of the rectangle + * @param x + * the x coordinate of the rectangle's upper left corner. + * @param y + * the y coordinate of the rectangle's upper left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. */ public void setRect(float x, float y, float width, float height) { this.x = x; @@ -146,23 +175,19 @@ public abstract class Rectangle2D extends RectangularShape { if (width <= 0.0f) { code |= OUT_LEFT | OUT_RIGHT; - } else - if (px < x) { - code |= OUT_LEFT; - } else - if (px > x + width) { - code |= OUT_RIGHT; - } + } else if (px < x) { + code |= OUT_LEFT; + } else if (px > x + width) { + code |= OUT_RIGHT; + } if (height <= 0.0f) { code |= OUT_TOP | OUT_BOTTOM; - } else - if (py < y) { - code |= OUT_TOP; - } else - if (py > y + height) { - code |= OUT_BOTTOM; - } + } else if (py < y) { + code |= OUT_TOP; + } else if (py > y + height) { + code |= OUT_BOTTOM; + } return code; } @@ -198,29 +223,41 @@ public abstract class Rectangle2D extends RectangularShape { @Override public String toString() { - // The output format based on 1.5 release behaviour. It could be obtained in the following way + // The output format based on 1.5 release behaviour. It could be + // obtained in the following way // System.out.println(new Rectangle2D.Float().toString()) - return getClass().getName() + "[x=" + x + ",y=" + y + ",width=" + width + ",height=" + height + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ + return getClass().getName() + + "[x=" + x + ",y=" + y + ",width=" + width + ",height=" + height + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ } } /** - * The Class Double is the subclass of Rectangle2D that represents a - * rectangle whose data values are given as doubles (with double-precision-level - * precision). + * The Class Double is the subclass of Rectangle2D that represents a + * rectangle whose data values are given as doubles (with + * double-precision-level precision). + * + * @since Android 1.0 */ public static class Double extends Rectangle2D { - /** The x coordinate of the rectangle's upper left corner. */ + /** + * The x coordinate of the rectangle's upper left corner. + */ public double x; - - /** The y coordinate of the rectangle's upper left corner. */ + + /** + * The y coordinate of the rectangle's upper left corner. + */ public double y; - - /** The width of the rectangle. */ + + /** + * The width of the rectangle. + */ public double width; - - /** The height of the rectangle. */ + + /** + * The height of the rectangle. + */ public double height; /** @@ -232,10 +269,14 @@ public abstract class Rectangle2D extends RectangularShape { /** * Instantiates a new rectangle with the given double values. * - * @param x the x coordinate of the rectangle's upper left corner - * @param y the y coordinate of the rectangle's upper left corner - * @param width the width of the rectangle - * @param height the height of the rectangle + * @param x + * the x coordinate of the rectangle's upper left corner. + * @param y + * the y coordinate of the rectangle's upper left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. */ public Double(double x, double y, double width, double height) { setRect(x, y, width, height); @@ -288,23 +329,19 @@ public abstract class Rectangle2D extends RectangularShape { if (width <= 0.0) { code |= OUT_LEFT | OUT_RIGHT; - } else - if (px < x) { - code |= OUT_LEFT; - } else - if (px > x + width) { - code |= OUT_RIGHT; - } + } else if (px < x) { + code |= OUT_LEFT; + } else if (px > x + width) { + code |= OUT_RIGHT; + } if (height <= 0.0) { code |= OUT_TOP | OUT_BOTTOM; - } else - if (py < y) { - code |= OUT_TOP; - } else - if (py > y + height) { - code |= OUT_BOTTOM; - } + } else if (py < y) { + code |= OUT_TOP; + } else if (py > y + height) { + code |= OUT_BOTTOM; + } return code; } @@ -330,45 +367,60 @@ public abstract class Rectangle2D extends RectangularShape { @Override public String toString() { - // The output format based on 1.5 release behaviour. It could be obtained in the following way + // The output format based on 1.5 release behaviour. It could be + // obtained in the following way // System.out.println(new Rectangle2D.Double().toString()) - return getClass().getName() + "[x=" + x + ",y=" + y + ",width=" + width + ",height=" + height + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ + return getClass().getName() + + "[x=" + x + ",y=" + y + ",width=" + width + ",height=" + height + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ } } /** - * The Class Iterator provides - * access to the coordinates of the Rectangle2D's boundary modified - * by an AffineTransform. + * The Class Iterator provides access to the coordinates of the + * Rectangle2D's boundary modified by an AffineTransform. */ class Iterator implements PathIterator { - /** The x coordinate of the rectangle's upper left corner. */ + /** + * The x coordinate of the rectangle's upper left corner. + */ double x; - - /** The y coordinate of the rectangle's upper left corner. */ + + /** + * The y coordinate of the rectangle's upper left corner. + */ double y; - - - /** The width of the rectangle. */ + + /** + * The width of the rectangle. + */ double width; - - /** The height of the rectangle. */ + + /** + * The height of the rectangle. + */ double height; - - /** The AffineTransform that is used to modify the coordinates - * that are returned by the path iterator. */ + + /** + * The AffineTransform that is used to modify the coordinates that are + * returned by the path iterator. + */ AffineTransform t; - - /** The current segment index. */ + + /** + * The current segment index. + */ int index; - + /** - * Constructs a new Rectangle2D.Iterator for given rectangle and transformation. + * Constructs a new Rectangle2D.Iterator for given rectangle and + * transformation. * - * @param r - the source Rectangle2D object - * @param at - the AffineTransform object to apply to the coordinates - * before returning them + * @param r + * the source Rectangle2D object. + * @param at + * the AffineTransform object to apply to the coordinates + * before returning them. */ Iterator(Rectangle2D r, AffineTransform at) { this.x = r.getX(); @@ -407,23 +459,23 @@ public abstract class Rectangle2D extends RectangularShape { coords[1] = y; } else { type = SEG_LINETO; - switch(index) { - case 1: - coords[0] = x + width; - coords[1] = y; - break; - case 2: - coords[0] = x + width; - coords[1] = y + height; - break; - case 3: - coords[0] = x; - coords[1] = y + height; - break; - case 4: - coords[0] = x; - coords[1] = y; - break; + switch (index) { + case 1: + coords[0] = x + width; + coords[1] = y; + break; + case 2: + coords[0] = x + width; + coords[1] = y + height; + break; + case 3: + coords[0] = x; + coords[1] = y + height; + break; + case 4: + coords[0] = x; + coords[1] = y; + break; } } if (t != null) { @@ -446,23 +498,23 @@ public abstract class Rectangle2D extends RectangularShape { type = SEG_MOVETO; } else { type = SEG_LINETO; - switch(index) { - case 1: - coords[0] = (float)(x + width); - coords[1] = (float)y; - break; - case 2: - coords[0] = (float)(x + width); - coords[1] = (float)(y + height); - break; - case 3: - coords[0] = (float)x; - coords[1] = (float)(y + height); - break; - case 4: - coords[0] = (float)x; - coords[1] = (float)y; - break; + switch (index) { + case 1: + coords[0] = (float)(x + width); + coords[1] = (float)y; + break; + case 2: + coords[0] = (float)(x + width); + coords[1] = (float)(y + height); + break; + case 3: + coords[0] = (float)x; + coords[1] = (float)(y + height); + break; + case 4: + coords[0] = (float)x; + coords[1] = (float)y; + break; } } if (t != null) { @@ -474,7 +526,7 @@ public abstract class Rectangle2D extends RectangularShape { } /** - * Instantiates a new rectangle2 d. + * Instantiates a new Rectangle2D. */ protected Rectangle2D() { } @@ -482,58 +534,64 @@ public abstract class Rectangle2D extends RectangularShape { /** * Sets the rectangle's location and dimension. * - * @param x the x coordinate of the rectangle's upper left corner - * @param y the y coordinate of the rectangle's upper left corner - * @param width the width of the rectangle - * @param height the height of the rectangle + * @param x + * the x coordinate of the rectangle's upper left corner. + * @param y + * the y coordinate of the rectangle's upper left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. */ public abstract void setRect(double x, double y, double width, double height); /** - * Gets the location of the point with respect to the rectangle and - * packs the information into a single int using the bitmasks - * {@link Rectangle2D#OUT_LEFT}, {@link Rectangle2D#OUT_RIGHT}, - * {@link Rectangle2D#OUT_TOP}, and {@link Rectangle2D#OUT_BOTTOM}. - * If the rectangle has zero or negative width, then every point - * is regarded as being both to the left and to the right of the - * rectangle. Similarly, if the height is zero or negative then - * all points are considered to be both both above and below it. - * - * @param x the x coordinate of the point to check - * @param y the y coordinate of the point to check + * Gets the location of the point with respect to the rectangle and packs + * the information into a single integer using the bitmasks + * {@link Rectangle2D#OUT_LEFT}, {@link Rectangle2D#OUT_RIGHT}, + * {@link Rectangle2D#OUT_TOP}, and {@link Rectangle2D#OUT_BOTTOM}. If the + * rectangle has zero or negative width, then every point is regarded as + * being both to the left and to the right of the rectangle. Similarly, if + * the height is zero or negative then all points are considered to be both + * both above and below it. * + * @param x + * the x coordinate of the point to check. + * @param y + * the y coordinate of the point to check. * @return the point's location with respect to the rectangle. */ public abstract int outcode(double x, double y); /** - * Creates an new rectangle that is the intersection of this rectangle - * with the given rectangle. The resulting rectangle may be empty. - * The data of this rectangle is left unchanged. - * - * @param r the rectangle to intersect with this rectangle. + * Creates an new rectangle that is the intersection of this rectangle with + * the given rectangle. The resulting rectangle may be empty. The data of + * this rectangle is left unchanged. * + * @param r + * the rectangle to intersect with this rectangle. * @return the new rectangle given by intersection. */ public abstract Rectangle2D createIntersection(Rectangle2D r); /** - * Creates an new rectangle that is the union of this rectangle - * with the given rectangle. The new rectangle is the smallest - * rectangle which contains both this rectangle and the rectangle - * specified as a parameter. The data of this rectangle is left unchanged. - * - * @param r the rectangle to combine with this rectangle + * Creates an new rectangle that is the union of this rectangle with the + * given rectangle. The new rectangle is the smallest rectangle which + * contains both this rectangle and the rectangle specified as a parameter. + * The data of this rectangle is left unchanged. * - * @return the new rectangle given by union + * @param r + * the rectangle to combine with this rectangle. + * @return the new rectangle given by union. */ public abstract Rectangle2D createUnion(Rectangle2D r); /** - * Sets the data of this rectangle to match the data of the given - * rectangle. + * Sets the data of this rectangle to match the data of the given rectangle. * - * @param r the rectangle whose data is to be copied into this rectangle's fields. + * @param r + * the rectangle whose data is to be copied into this rectangle's + * fields. */ public void setRect(Rectangle2D r) { setRect(r.getX(), r.getY(), r.getWidth(), r.getHeight()); @@ -549,61 +607,63 @@ public abstract class Rectangle2D extends RectangularShape { } /** - * Determines whether any part of the line segment between (and including) - * the two given points touches any - * part of the rectangle, including its boundary. + * Determines whether any part of the line segment between (and including) + * the two given points touches any part of the rectangle, including its + * boundary. * - * @param x1 the x coordinate of one of the points that determines the - * line segment to test - * @param y1 the y coordinate of one of the points that determines the - * line segment to test - * @param x2 the x coordinate of one of the points that determines the - * line segment to test - * @param y2 the y coordinate of one of the points that determines the - * line segment to test - * - * @return true, if at least one point of the line segment between the - * two points matches any point of the interior of the rectangle or the - * rectangle's boundary. + * @param x1 + * the x coordinate of one of the points that determines the line + * segment to test. + * @param y1 + * the y coordinate of one of the points that determines the line + * segment to test. + * @param x2 + * the x coordinate of one of the points that determines the line + * segment to test. + * @param y2 + * the y coordinate of one of the points that determines the line + * segment to test. + * @return true, if at least one point of the line segment between the two + * points matches any point of the interior of the rectangle or the + * rectangle's boundary. */ public boolean intersectsLine(double x1, double y1, double x2, double y2) { double rx1 = getX(); double ry1 = getY(); double rx2 = rx1 + getWidth(); double ry2 = ry1 + getHeight(); - return - (rx1 <= x1 && x1 <= rx2 && ry1 <= y1 && y1 <= ry2) || - (rx1 <= x2 && x2 <= rx2 && ry1 <= y2 && y2 <= ry2) || - Line2D.linesIntersect(rx1, ry1, rx2, ry2, x1, y1, x2, y2) || - Line2D.linesIntersect(rx2, ry1, rx1, ry2, x1, y1, x2, y2); + return (rx1 <= x1 && x1 <= rx2 && ry1 <= y1 && y1 <= ry2) + || (rx1 <= x2 && x2 <= rx2 && ry1 <= y2 && y2 <= ry2) + || Line2D.linesIntersect(rx1, ry1, rx2, ry2, x1, y1, x2, y2) + || Line2D.linesIntersect(rx2, ry1, rx1, ry2, x1, y1, x2, y2); } /** - * Determines whether any part of the specified line segment touches any + * Determines whether any part of the specified line segment touches any * part of the rectangle, including its boundary. * - * @param l the line segment to test - * - * @return true, if at least one point of the given line segment - * matches any point of the interior of the rectangle or the - * rectangle's boundary. + * @param l + * the line segment to test. + * @return true, if at least one point of the given line segment matches any + * point of the interior of the rectangle or the rectangle's + * boundary. */ public boolean intersectsLine(Line2D l) { return intersectsLine(l.getX1(), l.getY1(), l.getX2(), l.getY2()); } /** - * Gets the location of the point with respect to the rectangle and - * packs the information into a single int using the bitmasks - * {@link Rectangle2D#OUT_LEFT}, {@link Rectangle2D#OUT_RIGHT}, - * {@link Rectangle2D#OUT_TOP}, and {@link Rectangle2D#OUT_BOTTOM}. - * If the rectangle has zero or negative width, then every point - * is regarded as being both to the left and to the right of the - * rectangle. Similarly, if the height is zero or negative then - * all points are considered to be both both above and below it. - * - * @param p the point to check + * Gets the location of the point with respect to the rectangle and packs + * the information into a single integer using the bitmasks + * {@link Rectangle2D#OUT_LEFT}, {@link Rectangle2D#OUT_RIGHT}, + * {@link Rectangle2D#OUT_TOP}, and {@link Rectangle2D#OUT_BOTTOM}. If the + * rectangle has zero or negative width, then every point is regarded as + * being both to the left and to the right of the rectangle. Similarly, if + * the height is zero or negative then all points are considered to be both + * both above and below it. * + * @param p + * the point to check. * @return the point's location with respect to the rectangle. */ public int outcode(Point2D p) { @@ -620,9 +680,7 @@ public abstract class Rectangle2D extends RectangularShape { double x2 = x1 + getWidth(); double y2 = y1 + getHeight(); - return - x1 <= x && x < x2 && - y1 <= y && y < y2; + return x1 <= x && x < x2 && y1 <= y && y < y2; } public boolean intersects(double x, double y, double width, double height) { @@ -635,9 +693,7 @@ public abstract class Rectangle2D extends RectangularShape { double x2 = x1 + getWidth(); double y2 = y1 + getHeight(); - return - x + width > x1 && x < x2 && - y + height > y1 && y < y2; + return x + width > x1 && x < x2 && y + height > y1 && y < y2; } public boolean contains(double x, double y, double width, double height) { @@ -650,19 +706,21 @@ public abstract class Rectangle2D extends RectangularShape { double x2 = x1 + getWidth(); double y2 = y1 + getHeight(); - return - x1 <= x && x + width <= x2 && - y1 <= y && y + height <= y2; + return x1 <= x && x + width <= x2 && y1 <= y && y + height <= y2; } /** - * Changes the data values of the destination rectangle to match - * the intersection of the two source rectangles, leaving the - * two source rectangles unchanged. The resulting rectangle may be empty. + * Changes the data values of the destination rectangle to match the + * intersection of the two source rectangles, leaving the two source + * rectangles unchanged. The resulting rectangle may be empty. * - * @param src1 one of the two source rectangles giving the data to intersect - * @param src2 one of the two source rectangles giving the data to intersect - * @param dst the destination object where the data of the intersection is written + * @param src1 + * one of the two source rectangles giving the data to intersect. + * @param src2 + * one of the two source rectangles giving the data to intersect. + * @param dst + * the destination object where the data of the intersection is + * written. */ public static void intersect(Rectangle2D src1, Rectangle2D src2, Rectangle2D dst) { double x1 = Math.max(src1.getMinX(), src2.getMinX()); @@ -673,14 +731,17 @@ public abstract class Rectangle2D extends RectangularShape { } /** - * Changes the data values of the destination rectangle to match - * the union of the two source rectangles, leaving the - * two source rectangles unchanged. The union is the smallest rectangle - * tha completely covers the two source rectangles. + * Changes the data values of the destination rectangle to match the union + * of the two source rectangles, leaving the two source rectangles + * unchanged. The union is the smallest rectangle that completely covers the + * two source rectangles. * - * @param src1 one of the two source rectangles giving the data - * @param src2 one of the two source rectangles giving the data - * @param dst the destination object where the data of the union is written + * @param src1 + * one of the two source rectangles giving the data. + * @param src2 + * one of the two source rectangles giving the data. + * @param dst + * the destination object where the data of the union is written. */ public static void union(Rectangle2D src1, Rectangle2D src2, Rectangle2D dst) { double x1 = Math.min(src1.getMinX(), src2.getMinX()); @@ -693,8 +754,12 @@ public abstract class Rectangle2D extends RectangularShape { /** * Enlarges the rectangle so that it includes the given point. * - * @param x the x coordinate of the new point to be covered by the rectangle - * @param y the y coordinate of the new point to be covered by the rectangle + * @param x + * the x coordinate of the new point to be covered by the + * rectangle. + * @param y + * the y coordinate of the new point to be covered by the + * rectangle. */ public void add(double x, double y) { double x1 = Math.min(getMinX(), x); @@ -707,7 +772,8 @@ public abstract class Rectangle2D extends RectangularShape { /** * Enlarges the rectangle so that it includes the given point. * - * @param p the new point to be covered by the rectangle + * @param p + * the new point to be covered by the rectangle. */ public void add(Point2D p) { add(p.getX(), p.getY()); @@ -716,7 +782,8 @@ public abstract class Rectangle2D extends RectangularShape { /** * Enlarges the rectangle so that it covers the given rectangle. * - * @param r the new rectangle to be covered by this rectangle + * @param r + * the new rectangle to be covered by this rectangle. */ public void add(Rectangle2D r) { union(this, r, this); @@ -748,14 +815,10 @@ public abstract class Rectangle2D extends RectangularShape { } if (obj instanceof Rectangle2D) { Rectangle2D r = (Rectangle2D)obj; - return - getX() == r.getX() && - getY() == r.getY() && - getWidth() == r.getWidth() && - getHeight() == r.getHeight(); + return getX() == r.getX() && getY() == r.getY() && getWidth() == r.getWidth() + && getHeight() == r.getHeight(); } return false; } } - diff --git a/awt/java/awt/geom/RectangularShape.java b/awt/java/awt/geom/RectangularShape.java index 0a77dfd..0b0d05c 100644 --- a/awt/java/awt/geom/RectangularShape.java +++ b/awt/java/awt/geom/RectangularShape.java @@ -18,17 +18,19 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt.geom; import java.awt.Rectangle; import java.awt.Shape; /** - * The Class RectangularShape represents a Shape whose data is - * (at least partially) described by a rectangular frame. This includes - * shapes which are obviously rectangular (such as Rectangle2D) as well as - * shapes like Arc2D which are largely determined by the rectangle they - * fit inside. + * The Class RectangularShape represents a Shape whose data is (at least + * partially) described by a rectangular frame. This includes shapes which are + * obviously rectangular (such as Rectangle2D) as well as shapes like Arc2D + * which are largely determined by the rectangle they fit inside. + * + * @since Android 1.0 */ public abstract class RectangularShape implements Shape, Cloneable { @@ -67,25 +69,30 @@ public abstract class RectangularShape implements Shape, Cloneable { public abstract double getHeight(); /** - * Checks if this is an empty rectangle: one with zero as its width or height. + * Checks if this is an empty rectangle: one with zero as its width or + * height. * * @return true, if the width or height is empty. */ public abstract boolean isEmpty(); /** - * Sets the data for the bounding rectangle in terms of double values. + * Sets the data for the bounding rectangle in terms of double values. * - * @param x the x coordinate of the upper left corner of the rectangle. - * @param y the y coordinate of the upper left corner of the rectangle. - * @param w the width of the rectangle. - * @param h the height of the rectangle. + * @param x + * the x coordinate of the upper left corner of the rectangle. + * @param y + * the y coordinate of the upper left corner of the rectangle. + * @param w + * the width of the rectangle. + * @param h + * the height of the rectangle. */ public abstract void setFrame(double x, double y, double w, double h); /** - * Gets the minimum x value of the bounding rectangle (the x - * coordinate of the upper left corner of the rectangle). + * Gets the minimum x value of the bounding rectangle (the x coordinate of + * the upper left corner of the rectangle). * * @return the minimum x value of the bounding rectangle. */ @@ -94,8 +101,8 @@ public abstract class RectangularShape implements Shape, Cloneable { } /** - * Gets the minimum y value of the bounding rectangle (the y - * coordinate of the upper left corner of the rectangle). + * Gets the minimum y value of the bounding rectangle (the y coordinate of + * the upper left corner of the rectangle). * * @return the minimum y value of the bounding rectangle. */ @@ -104,9 +111,8 @@ public abstract class RectangularShape implements Shape, Cloneable { } /** - * Gets the maximum x value of the bounding rectangle (the x - * coordinate of the upper left corner of the rectangle plus the - * rectangle's width). + * Gets the maximum x value of the bounding rectangle (the x coordinate of + * the upper left corner of the rectangle plus the rectangle's width). * * @return the maximum x value of the bounding rectangle. */ @@ -115,9 +121,8 @@ public abstract class RectangularShape implements Shape, Cloneable { } /** - * Gets the maximum y value of the bounding rectangle (the y - * coordinate of the upper left corner of the rectangle plus the - * rectangle's height). + * Gets the maximum y value of the bounding rectangle (the y coordinate of + * the upper left corner of the rectangle plus the rectangle's height). * * @return the maximum y value of the bounding rectangle. */ @@ -144,8 +149,8 @@ public abstract class RectangularShape implements Shape, Cloneable { } /** - * Places the rectangle's size and location data in a new Rectangle2D - * object and returns it. + * Places the rectangle's size and location data in a new Rectangle2D object + * and returns it. * * @return the bounding rectangle as a new Rectangle2D object. */ @@ -154,21 +159,24 @@ public abstract class RectangularShape implements Shape, Cloneable { } /** - * Sets the bounding rectangle in terms of a Point2D which gives its - * upper left corner and a Dimension2D object giving its width and height. + * Sets the bounding rectangle in terms of a Point2D which gives its upper + * left corner and a Dimension2D object giving its width and height. * - * @param loc the new upper left corner coordinate. - * @param size the new size dimensions. + * @param loc + * the new upper left corner coordinate. + * @param size + * the new size dimensions. */ public void setFrame(Point2D loc, Dimension2D size) { setFrame(loc.getX(), loc.getY(), size.getWidth(), size.getHeight()); } /** - * Sets the bounding rectangle to match the data contained in the - * specified Rectangle2D. + * Sets the bounding rectangle to match the data contained in the specified + * Rectangle2D. * - * @param r the rectangle that gives the new frame data. + * @param r + * the rectangle that gives the new frame data. */ public void setFrame(Rectangle2D r) { setFrame(r.getX(), r.getY(), r.getWidth(), r.getHeight()); @@ -176,12 +184,17 @@ public abstract class RectangularShape implements Shape, Cloneable { /** * Sets the framing rectangle given two opposite corners. Any two corners - * may be used in any order as long as they are diagonally opposite one another. + * may be used in any order as long as they are diagonally opposite one + * another. * - * @param x1 the x coordinate of one of the corner points. - * @param y1 the y coordinate of one of the corner points. - * @param x2 the x coordinate of the other corner point. - * @param y2 the y coordinate of the other corner point. + * @param x1 + * the x coordinate of one of the corner points. + * @param y1 + * the y coordinate of one of the corner points. + * @param x2 + * the x coordinate of the other corner point. + * @param y2 + * the y coordinate of the other corner point. */ public void setFrameFromDiagonal(double x1, double y1, double x2, double y2) { double rx, ry, rw, rh; @@ -204,10 +217,13 @@ public abstract class RectangularShape implements Shape, Cloneable { /** * Sets the framing rectangle given two opposite corners. Any two corners - * may be used in any order as long as they are diagonally opposite one another. + * may be used in any order as long as they are diagonally opposite one + * another. * - * @param p1 one of the corner points. - * @param p2 the other corner point. + * @param p1 + * one of the corner points. + * @param p2 + * the other corner point. */ public void setFrameFromDiagonal(Point2D p1, Point2D p2) { setFrameFromDiagonal(p1.getX(), p1.getY(), p2.getX(), p2.getY()); @@ -217,10 +233,14 @@ public abstract class RectangularShape implements Shape, Cloneable { * Sets the framing rectangle given the center point and one corner. Any * corner may be used. * - * @param centerX the x coordinate of the center point. - * @param centerY the y coordinate of the center point. - * @param cornerX the x coordinate of one of the corner points. - * @param cornerY the y coordinate of one of the corner points. + * @param centerX + * the x coordinate of the center point. + * @param centerY + * the y coordinate of the center point. + * @param cornerX + * the x coordinate of one of the corner points. + * @param cornerY + * the y coordinate of one of the corner points. */ public void setFrameFromCenter(double centerX, double centerY, double cornerX, double cornerY) { double width = Math.abs(cornerX - centerX); @@ -232,8 +252,10 @@ public abstract class RectangularShape implements Shape, Cloneable { * Sets the framing rectangle given the center point and one corner. Any * corner may be used. * - * @param center the center point. - * @param corner a corner point. + * @param center + * the center point. + * @param corner + * a corner point. */ public void setFrameFromCenter(Point2D center, Point2D corner) { setFrameFromCenter(center.getX(), center.getY(), corner.getX(), corner.getY()); @@ -273,4 +295,3 @@ public abstract class RectangularShape implements Shape, Cloneable { } } - diff --git a/awt/java/awt/geom/RoundRectangle2D.java b/awt/java/awt/geom/RoundRectangle2D.java index 680a146..8fbddd6 100644 --- a/awt/java/awt/geom/RoundRectangle2D.java +++ b/awt/java/awt/geom/RoundRectangle2D.java @@ -18,6 +18,7 @@ * @author Denis M. Kishenko * @version $Revision$ */ + package java.awt.geom; import java.util.NoSuchElementException; @@ -25,53 +26,74 @@ import java.util.NoSuchElementException; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Class RoundRectangle2D describes a rectangle with rounded - * corners with high-precision data that is appropriate for geometric - * operations. + * The Class RoundRectangle2D describes a rectangle with rounded corners with + * high-precision data that is appropriate for geometric operations. + * + * @since Android 1.0 */ public abstract class RoundRectangle2D extends RectangularShape { /** - * The Class Float is the subclass of RoundRectangle2D that has all - * of its data values stored with float-level precision. + * The Class Float is the subclass of RoundRectangle2D that has all of its + * data values stored with float-level precision. + * + * @since Android 1.0 */ public static class Float extends RoundRectangle2D { - /** The x coordinate of the rectangle's upper left corner. */ + /** + * The x coordinate of the rectangle's upper left corner. + */ public float x; - - /** The y coordinate of the rectangle's upper left corner. */ + + /** + * The y coordinate of the rectangle's upper left corner. + */ public float y; - - /** The width of the rectangle. */ + + /** + * The width of the rectangle. + */ public float width; - - /** The height of the rectangle. */ + + /** + * The height of the rectangle. + */ public float height; - - /** The arcwidth of the rounded corners. */ + + /** + * The arc width of the rounded corners. + */ public float arcwidth; - - /** The archeight of the rounded corners. */ + + /** + * The arc height of the rounded corners. + */ public float archeight; /** - * Instantiates a new float-valued RoundRectangle2D with - * its data-values set to zero. + * Instantiates a new float-valued RoundRectangle2D with its data-values + * set to zero. */ public Float() { } /** - * Instantiates a new float-valued RoundRectangle2D with - * the specified data values + * Instantiates a new float-valued RoundRectangle2D with the specified + * data values. * - * @param x the x coordinate of the rectangle's upper left corner - * @param y the y coordinate of the rectangle's upper left corner - * @param width the width of the rectangle - * @param height the height of the rectangle - * @param arcwidth the arcwidth of the rounded corners - * @param archeight the archeight of the rounded corners + * @param x + * the x coordinate of the rectangle's upper left corner. + * @param y + * the y coordinate of the rectangle's upper left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. + * @param arcwidth + * the arc width of the rounded corners. + * @param archeight + * the arc height of the rounded corners. */ public Float(float x, float y, float width, float height, float arcwidth, float archeight) { setRoundRect(x, y, width, height, arcwidth, archeight); @@ -113,16 +135,23 @@ public abstract class RoundRectangle2D extends RectangularShape { } /** - * Sets the data of the round rect. + * Sets the data of the round rectangle. * - * @param x the x coordinate of the rectangle's upper left corner - * @param y the y coordinate of the rectangle's upper left corner - * @param width the width of the rectangle - * @param height the height of the rectangle - * @param arcwidth the arcwidth of the rounded corners - * @param archeight the archeight of the rounded corners + * @param x + * the x coordinate of the rectangle's upper left corner. + * @param y + * the y coordinate of the rectangle's upper left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. + * @param arcwidth + * the arc width of the rounded corners. + * @param archeight + * the arc height of the rounded corners. */ - public void setRoundRect(float x, float y, float width, float height, float arcwidth, float archeight) { + public void setRoundRect(float x, float y, float width, float height, float arcwidth, + float archeight) { this.x = x; this.y = y; this.width = width; @@ -132,7 +161,8 @@ public abstract class RoundRectangle2D extends RectangularShape { } @Override - public void setRoundRect(double x, double y, double width, double height, double arcwidth, double archeight) { + public void setRoundRect(double x, double y, double width, double height, double arcwidth, + double archeight) { this.x = (float)x; this.y = (float)y; this.width = (float)width; @@ -157,48 +187,69 @@ public abstract class RoundRectangle2D extends RectangularShape { } /** - * The Class Double is the subclass of RoundRectangle2D that has all - * of its data values stored with double-level precision. + * The Class Double is the subclass of RoundRectangle2D that has all of its + * data values stored with double-level precision. + * + * @since Android 1.0 */ public static class Double extends RoundRectangle2D { - /** The x coordinate of the rectangle's upper left corner. */ + /** + * The x coordinate of the rectangle's upper left corner. + */ public double x; - - /** The y coordinate of the rectangle's upper left corner. */ + + /** + * The y coordinate of the rectangle's upper left corner. + */ public double y; - - /** The width of the rectangle. */ + + /** + * The width of the rectangle. + */ public double width; - - /** The height of the rectangle. */ + + /** + * The height of the rectangle. + */ public double height; - - /** The arcwidth of the rounded corners. */ + + /** + * The arc width of the rounded corners. + */ public double arcwidth; - - /** The archeight of the rounded corners. */ + + /** + * The arc height of the rounded corners. + */ public double archeight; /** - * Instantiates a new double-valued RoundRectangle2D with - * its data-values set to zero. + * Instantiates a new double-valued RoundRectangle2D with its + * data-values set to zero. */ public Double() { } /** - * Instantiates a new double-valued RoundRectangle2D with - * the specified data values. + * Instantiates a new double-valued RoundRectangle2D with the specified + * data values. * - * @param x the x coordinate of the rectangle's upper left corner - * @param y the y coordinate of the rectangle's upper left corner - * @param width the width of the rectangle - * @param height the height of the rectangle - * @param arcwidth the arcwidth of the rounded corners - * @param archeight the archeight of the rounded corners + * @param x + * the x coordinate of the rectangle's upper left corner. + * @param y + * the y coordinate of the rectangle's upper left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. + * @param arcwidth + * the arc width of the rounded corners. + * @param archeight + * the arc height of the rounded corners. */ - public Double(double x, double y, double width, double height, double arcwidth, double archeight) { + public Double(double x, double y, double width, double height, double arcwidth, + double archeight) { setRoundRect(x, y, width, height, arcwidth, archeight); } @@ -238,7 +289,8 @@ public abstract class RoundRectangle2D extends RectangularShape { } @Override - public void setRoundRect(double x, double y, double width, double height, double arcwidth, double archeight) { + public void setRoundRect(double x, double y, double width, double height, double arcwidth, + double archeight) { this.x = x; this.y = y; this.width = width; @@ -263,7 +315,7 @@ public abstract class RoundRectangle2D extends RectangularShape { } /* - * RoundRectangle2D path iterator + * RoundRectangle2D path iterator */ /** * The subclass of PathIterator to traverse a RoundRectangle2D. @@ -274,70 +326,101 @@ public abstract class RoundRectangle2D extends RectangularShape { * Path for round corners generated the same way as Ellipse2D */ - /** The coefficient to calculate control points of Bezier curves. */ + /** + * The coefficient to calculate control points of Bezier curves. + */ double u = 0.5 - 2.0 / 3.0 * (Math.sqrt(2.0) - 1.0); - /** The points coordinates calculation table. */ + /** + * The points coordinates calculation table. + */ double points[][] = { - { 0.0, 0.5, 0.0, 0.0 }, // MOVETO - { 1.0, -0.5, 0.0, 0.0 }, // LINETO - { 1.0, -u, 0.0, 0.0, // CUBICTO - 1.0, 0.0, 0.0, u, - 1.0, 0.0, 0.0, 0.5 }, - { 1.0, 0.0, 1.0, -0.5 }, // LINETO - { 1.0, 0.0, 1.0, -u, // CUBICTO - 1.0, -u, 1.0, 0.0, - 1.0, -0.5, 1.0, 0.0 }, - { 0.0, 0.5, 1.0, 0.0 }, // LINETO - { 0.0, u, 1.0, 0.0, // CUBICTO - 0.0, 0.0, 1.0, -u, - 0.0, 0.0, 1.0, -0.5 }, - { 0.0, 0.0, 0.0, 0.5 }, // LINETO - { 0.0, 0.0, 0.0, u, // CUBICTO - 0.0, u, 0.0, 0.0, - 0.0, 0.5, 0.0, 0.0 } }; - - /** The segment types correspond to points array. */ + { + 0.0, 0.5, 0.0, 0.0 + }, // MOVETO + { + 1.0, -0.5, 0.0, 0.0 + }, // LINETO + { + 1.0, -u, 0.0, 0.0, // CUBICTO + 1.0, 0.0, 0.0, u, 1.0, 0.0, 0.0, 0.5 + }, { + 1.0, 0.0, 1.0, -0.5 + }, // LINETO + { + 1.0, 0.0, 1.0, -u, // CUBICTO + 1.0, -u, 1.0, 0.0, 1.0, -0.5, 1.0, 0.0 + }, { + 0.0, 0.5, 1.0, 0.0 + }, // LINETO + { + 0.0, u, 1.0, 0.0, // CUBICTO + 0.0, 0.0, 1.0, -u, 0.0, 0.0, 1.0, -0.5 + }, { + 0.0, 0.0, 0.0, 0.5 + }, // LINETO + { + 0.0, 0.0, 0.0, u, // CUBICTO + 0.0, u, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0 + } + }; + + /** + * The segment types correspond to points array. + */ int types[] = { - SEG_MOVETO, - SEG_LINETO, - SEG_CUBICTO, - SEG_LINETO, - SEG_CUBICTO, - SEG_LINETO, - SEG_CUBICTO, - SEG_LINETO, - SEG_CUBICTO}; - - /** The x coordinate of left-upper corner of the round rectangle bounds. */ + SEG_MOVETO, SEG_LINETO, SEG_CUBICTO, SEG_LINETO, SEG_CUBICTO, SEG_LINETO, + SEG_CUBICTO, SEG_LINETO, SEG_CUBICTO + }; + + /** + * The x coordinate of left-upper corner of the round rectangle bounds. + */ double x; - - /** The y coordinate of left-upper corner of the round rectangle bounds. */ + + /** + * The y coordinate of left-upper corner of the round rectangle bounds. + */ double y; - - /** The width of the round rectangle bounds. */ + + /** + * The width of the round rectangle bounds. + */ double width; - - /** The height of the round rectangle bounds. */ + + /** + * The height of the round rectangle bounds. + */ double height; - - /** The width of arc corners of the round rectangle. */ + + /** + * The width of arc corners of the round rectangle. + */ double aw; - - /** The height of arc corners of the round rectangle. */ + + /** + * The height of arc corners of the round rectangle. + */ double ah; - /** The path iterator transformation. */ + /** + * The path iterator transformation. + */ AffineTransform t; - /** The current segmenet index. */ + /** + * The current segment index. + */ int index; /** - * Constructs a new RoundRectangle2D.Iterator for given round rectangle and transformation. + * Constructs a new RoundRectangle2D.Iterator for given round rectangle + * and transformation. * - * @param rr - the source RoundRectangle2D object - * @param at - the AffineTransform object to apply rectangle path + * @param rr + * - the source RoundRectangle2D object + * @param at + * - the AffineTransform object to apply rectangle path */ Iterator(RoundRectangle2D rr, AffineTransform at) { this.x = rr.getX(); @@ -415,41 +498,48 @@ public abstract class RoundRectangle2D extends RectangularShape { /** * Gets the arc width. * - * @return the arc width + * @return the arc width. */ public abstract double getArcWidth(); /** * Gets the arc height. * - * @return the arc height + * @return the arc height. */ public abstract double getArcHeight(); /** * Sets the data of the RoundRectangle2D. * - * @param x the x coordinate of the rectangle's upper left corner - * @param y the y coordinate of the rectangle's upper left corner - * @param width the width of the rectangle - * @param height the height of the rectangle - * @param arcWidth the arcwidth of the rounded corners - * @param arcHeight the archeight of the rounded corners + * @param x + * the x coordinate of the rectangle's upper left corner. + * @param y + * the y coordinate of the rectangle's upper left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. + * @param arcWidth + * the arc width of the rounded corners. + * @param arcHeight + * the arc height of the rounded corners. */ public abstract void setRoundRect(double x, double y, double width, double height, double arcWidth, double arcHeight); /** - * Sets the data of the RoundRectangle2D by copying the values - * from an existing RoundRectangle2D. + * Sets the data of the RoundRectangle2D by copying the values from an + * existing RoundRectangle2D. * - * @param rr the round rectangle to copy the data from - * - * @throws NullPointerException if rr is null + * @param rr + * the round rectangle to copy the data from. + * @throws NullPointerException + * if rr is null. */ public void setRoundRect(RoundRectangle2D rr) { - setRoundRect(rr.getX(), rr.getY(), rr.getWidth(), rr.getHeight(), rr - .getArcWidth(), rr.getArcHeight()); + setRoundRect(rr.getX(), rr.getY(), rr.getWidth(), rr.getHeight(), rr.getArcWidth(), rr + .getArcHeight()); } @Override @@ -478,21 +568,19 @@ public abstract class RoundRectangle2D extends RectangularShape { if (px < rx1 + aw) { cx = rx1 + aw; - } else - if (px > rx2 - aw) { - cx = rx2 - aw; - } else { - return true; - } + } else if (px > rx2 - aw) { + cx = rx2 - aw; + } else { + return true; + } if (py < ry1 + ah) { cy = ry1 + ah; - } else - if (py > ry2 - ah) { - cy = ry2 - ah; - } else { - return true; - } + } else if (py > ry2 - ah) { + cy = ry2 - ah; + } else { + return true; + } px = (px - cx) / aw; py = (py - cy) / ah; @@ -537,11 +625,7 @@ public abstract class RoundRectangle2D extends RectangularShape { double rx2 = rx + rw; double ry2 = ry + rh; - return - contains(rx1, ry1) && - contains(rx2, ry1) && - contains(rx2, ry2) && - contains(rx1, ry2); + return contains(rx1, ry1) && contains(rx2, ry1) && contains(rx2, ry2) && contains(rx1, ry2); } public PathIterator getPathIterator(AffineTransform at) { @@ -549,4 +633,3 @@ public abstract class RoundRectangle2D extends RectangularShape { } } - diff --git a/awt/java/awt/geom/package.html b/awt/java/awt/geom/package.html new file mode 100644 index 0000000..e3a236e --- /dev/null +++ b/awt/java/awt/geom/package.html @@ -0,0 +1,8 @@ +<html> + <body> + <p> + This package contains classes and interfaces related to Java2D shapes and geometry. + </p> + @since Android 1.0 + </body> +</html> diff --git a/awt/java/awt/im/InputContext.java b/awt/java/awt/im/InputContext.java index 3468474..cce5148 100644 --- a/awt/java/awt/im/InputContext.java +++ b/awt/java/awt/im/InputContext.java @@ -26,6 +26,12 @@ import java.util.Locale; import org.apache.harmony.awt.im.InputMethodContext; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class InputContext { protected InputContext() { } diff --git a/awt/java/awt/im/InputMethodHighlight.java b/awt/java/awt/im/InputMethodHighlight.java index 53bb20b..865d47c 100644 --- a/awt/java/awt/im/InputMethodHighlight.java +++ b/awt/java/awt/im/InputMethodHighlight.java @@ -25,6 +25,12 @@ import java.awt.font.TextAttribute; import org.apache.harmony.awt.internal.nls.Messages; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public class InputMethodHighlight { public static final int RAW_TEXT = 0; diff --git a/awt/java/awt/im/InputMethodRequests.java b/awt/java/awt/im/InputMethodRequests.java index bdd25e6..b12d397 100644 --- a/awt/java/awt/im/InputMethodRequests.java +++ b/awt/java/awt/im/InputMethodRequests.java @@ -24,6 +24,12 @@ import java.awt.Rectangle; import java.awt.font.TextHitInfo; import java.text.AttributedCharacterIterator; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface InputMethodRequests { public AttributedCharacterIterator cancelLatestCommittedText(AttributedCharacterIterator.Attribute[] attributes); diff --git a/awt/java/awt/im/InputSubset.java b/awt/java/awt/im/InputSubset.java index 02a1049..708881e 100644 --- a/awt/java/awt/im/InputSubset.java +++ b/awt/java/awt/im/InputSubset.java @@ -20,6 +20,12 @@ */ package java.awt.im; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public final class InputSubset extends Character.Subset { public static final InputSubset LATIN = new InputSubset("LATIN"); //$NON-NLS-1$ diff --git a/awt/java/awt/im/spi/InputMethod.java b/awt/java/awt/im/spi/InputMethod.java index 2c98c46..67a8834 100644 --- a/awt/java/awt/im/spi/InputMethod.java +++ b/awt/java/awt/im/spi/InputMethod.java @@ -24,6 +24,12 @@ import java.awt.AWTEvent; import java.awt.Rectangle; import java.util.Locale; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface InputMethod { public void activate(); diff --git a/awt/java/awt/im/spi/InputMethodContext.java b/awt/java/awt/im/spi/InputMethodContext.java index ca33e87..bfc773c 100644 --- a/awt/java/awt/im/spi/InputMethodContext.java +++ b/awt/java/awt/im/spi/InputMethodContext.java @@ -26,6 +26,12 @@ import java.awt.im.InputMethodRequests; import java.text.AttributedCharacterIterator; //???AWT: import javax.swing.JFrame; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface InputMethodContext extends InputMethodRequests { // ???AWT: public JFrame createInputMethodJFrame(String title, boolean attachToInputContext); diff --git a/awt/java/awt/im/spi/InputMethodDescriptor.java b/awt/java/awt/im/spi/InputMethodDescriptor.java index 3068cac..c800bc1 100644 --- a/awt/java/awt/im/spi/InputMethodDescriptor.java +++ b/awt/java/awt/im/spi/InputMethodDescriptor.java @@ -24,6 +24,12 @@ import java.awt.AWTException; import java.awt.Image; import java.util.Locale; +/** + * This class is not supported in Android 1.0. It is merely provided to maintain + * interface compatibility with desktop Java implementations. + * + * @since Android 1.0 + */ public interface InputMethodDescriptor { public Locale[] getAvailableLocales() throws AWTException; diff --git a/awt/java/awt/image/AffineTransformOp.java b/awt/java/awt/image/AffineTransformOp.java index 546837a..db25e1a 100644 --- a/awt/java/awt/image/AffineTransformOp.java +++ b/awt/java/awt/image/AffineTransformOp.java @@ -32,50 +32,60 @@ import org.apache.harmony.awt.gl.AwtImageBackdoorAccessor; import org.apache.harmony.awt.internal.nls.Messages; /** - * The AffineTransform class translates coordinates from 2D coordinates - * in the source image or Raster to 2D coordinates in the destination - * image or Raster using Affine transformation. The number of bands in - * the source Raster should equal to the number of bands in the destination - * Raster. + * The AffineTransform class translates coordinates from 2D coordinates in the + * source image or Raster to 2D coordinates in the destination image or Raster + * using affine transformation. The number of bands in the source Raster should + * equal to the number of bands in the destination Raster. + * + * @since Android 1.0 */ public class AffineTransformOp implements BufferedImageOp, RasterOp { - - /** - * The Constant TYPE_NEAREST_NEIGHBOR indicates nearest-neighbor - * interpolation type. + + /** + * The Constant TYPE_NEAREST_NEIGHBOR indicates nearest-neighbor + * interpolation type. */ public static final int TYPE_NEAREST_NEIGHBOR = 1; - - /** - * The Constant TYPE_BILINEAR indicates bilinear interpolation type. + + /** + * The Constant TYPE_BILINEAR indicates bilinear interpolation type. */ public static final int TYPE_BILINEAR = 2; - - /** The Constant TYPE_BICUBIC indicates bicubic interpolation type. */ + + /** + * The Constant TYPE_BICUBIC indicates bi-cubic interpolation type. + */ public static final int TYPE_BICUBIC = 3; - /** The i type. */ + /** + * The i type. + */ private int iType; // interpolation type - - /** The at. */ + + /** + * The at. + */ private AffineTransform at; - - /** The hints. */ + + /** + * The hints. + */ private RenderingHints hints; static { // TODO - uncomment - //System.loadLibrary("imageops"); + // System.loadLibrary("imageops"); } /** - * Instantiates a new AffineTransformOp with the specified - * AffineTransform and RenderingHints object which defines - * the interpolation type. + * Instantiates a new AffineTransformOp with the specified AffineTransform + * and RenderingHints object which defines the interpolation type. * - * @param xform the AffineTransform. - * @param hints the RenderingHints object which defines - * the interpolation type. + * @param xform + * the AffineTransform. + * @param hints + * the RenderingHints object which defines the interpolation + * type. */ public AffineTransformOp(AffineTransform xform, RenderingHints hints) { this(xform, TYPE_NEAREST_NEIGHBOR); @@ -95,20 +105,22 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { // Determine from rendering quality if (hint == RenderingHints.VALUE_RENDER_QUALITY) { this.iType = TYPE_BILINEAR; - // For speed use nearest neighbor + // For speed use nearest neighbor } } } } /** - * Instantiates a new AffineTransformOp with the specified - * AffineTransform and a specified interpolation type from the - * list of predefined interpolation types. + * Instantiates a new AffineTransformOp with the specified AffineTransform + * and a specified interpolation type from the list of predefined + * interpolation types. * - * @param xform the AffineTransform. - * @param interp the one of predefined interpolation types: - * TYPE_NEAREST_NEIGHBOR, TYPE_BILINEAR, or TYPE_BICUBIC. + * @param xform + * the AffineTransform. + * @param interp + * the one of predefined interpolation types: + * TYPE_NEAREST_NEIGHBOR, TYPE_BILINEAR, or TYPE_BICUBIC. */ public AffineTransformOp(AffineTransform xform, int interp) { if (Math.abs(xform.getDeterminant()) <= Double.MIN_VALUE) { @@ -116,7 +128,7 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { throw new ImagingOpException(Messages.getString("awt.24F", xform)); //$NON-NLS-1$ } - this.at = (AffineTransform) xform.clone(); + this.at = (AffineTransform)xform.clone(); if (interp != TYPE_NEAREST_NEIGHBOR && interp != TYPE_BILINEAR && interp != TYPE_BICUBIC) { // awt.250=Unknown interpolation type: {0} @@ -129,7 +141,7 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { /** * Gets the interpolation type. * - * @return the interpolation type + * @return the interpolation type. */ public final int getInterpolationType() { return iType; @@ -165,7 +177,7 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { * @return the AffineTransform. */ public final AffineTransform getTransform() { - return (AffineTransform) at.clone(); + return (AffineTransform)at.clone(); } public final Point2D getPoint2D(Point2D srcPt, Point2D dstPt) { @@ -177,21 +189,19 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { } public final Rectangle2D getBounds2D(Raster src) { - // We position source raster to (0,0) even if it is translated child raster. + // We position source raster to (0,0) even if it is translated child + // raster. // This means that we need only width and height of the src int width = src.getWidth(); int height = src.getHeight(); float[] corners = { - 0, 0, - width, 0, - width, height, - 0, height + 0, 0, width, 0, width, height, 0, height }; at.transform(corners, 0, corners, 0, 4); - Rectangle2D.Float bounds = new Rectangle2D.Float(corners[0], corners[1], 0 , 0); + Rectangle2D.Float bounds = new Rectangle2D.Float(corners[0], corners[1], 0, 0); bounds.add(corners[2], corners[3]); bounds.add(corners[4], corners[5]); bounds.add(corners[6], corners[7]); @@ -208,17 +218,14 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { double dstHeight = newBounds.getY() + newBounds.getHeight(); if (dstWidth <= 0 || dstHeight <= 0) { - // awt.251=Transformed width ({0}) and height ({1}) should be greater than 0 - throw new RasterFormatException( - Messages.getString("awt.251", dstWidth, dstHeight)); //$NON-NLS-1$ + // awt.251=Transformed width ({0}) and height ({1}) should be + // greater than 0 + throw new RasterFormatException(Messages.getString("awt.251", dstWidth, dstHeight)); //$NON-NLS-1$ } if (destCM != null) { - return new BufferedImage(destCM, - destCM.createCompatibleWritableRaster((int)dstWidth, (int)dstHeight), - destCM.isAlphaPremultiplied(), - null - ); + return new BufferedImage(destCM, destCM.createCompatibleWritableRaster((int)dstWidth, + (int)dstHeight), destCM.isAlphaPremultiplied(), null); } ColorModel cm = src.getColorModel(); @@ -229,23 +236,18 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { } // OK, we can get source color model - return new BufferedImage(cm, - src.getRaster().createCompatibleWritableRaster((int)dstWidth, (int)dstHeight), - cm.isAlphaPremultiplied(), - null - ); + return new BufferedImage(cm, src.getRaster().createCompatibleWritableRaster((int)dstWidth, + (int)dstHeight), cm.isAlphaPremultiplied(), null); } - public WritableRaster createCompatibleDestRaster (Raster src) { + public WritableRaster createCompatibleDestRaster(Raster src) { // Here approach is other then in createCompatibleDestImage - // destination should include only // transformed image, but not (0,0) in source coordinate system Rectangle2D newBounds = getBounds2D(src); - return src.createCompatibleWritableRaster( - (int) newBounds.getX(), (int) newBounds.getY(), - (int) newBounds.getWidth(), (int)newBounds.getHeight() - ); + return src.createCompatibleWritableRaster((int)newBounds.getX(), (int)newBounds.getY(), + (int)newBounds.getWidth(), (int)newBounds.getHeight()); } public final BufferedImage filter(BufferedImage src, BufferedImage dst) { @@ -257,10 +259,8 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { ColorModel srcCM = src.getColorModel(); BufferedImage finalDst = null; - if ( - srcCM instanceof IndexColorModel && - (iType != TYPE_NEAREST_NEIGHBOR || srcCM.getPixelSize() % 8 != 0) - ) { + if (srcCM instanceof IndexColorModel + && (iType != TYPE_NEAREST_NEIGHBOR || srcCM.getPixelSize() % 8 != 0)) { src = ((IndexColorModel)srcCM).convertToIntDiscrete(src.getRaster(), true); srcCM = src.getColorModel(); } @@ -269,15 +269,10 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { dst = createCompatibleDestImage(src, srcCM); } else { if (!srcCM.equals(dst.getColorModel())) { - // Treat BufferedImage.TYPE_INT_RGB and BufferedImage.TYPE_INT_ARGB as same - if ( - !( - (src.getType() == BufferedImage.TYPE_INT_RGB || - src.getType() == BufferedImage.TYPE_INT_ARGB) && - (dst.getType() == BufferedImage.TYPE_INT_RGB || - dst.getType() == BufferedImage.TYPE_INT_ARGB) - ) - ) { + // Treat BufferedImage.TYPE_INT_RGB and + // BufferedImage.TYPE_INT_ARGB as same + if (!((src.getType() == BufferedImage.TYPE_INT_RGB || src.getType() == BufferedImage.TYPE_INT_ARGB) && (dst + .getType() == BufferedImage.TYPE_INT_RGB || dst.getType() == BufferedImage.TYPE_INT_ARGB))) { finalDst = dst; dst = createCompatibleDestImage(src, srcCM); } @@ -287,10 +282,11 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { // Skip alpha channel for TYPE_INT_RGB images if (slowFilter(src.getRaster(), dst.getRaster()) != 0) { // awt.21F=Unable to transform source - throw new ImagingOpException (Messages.getString("awt.21F")); //$NON-NLS-1$ - // TODO - uncomment - //if (ippFilter(src.getRaster(), dst.getRaster(), src.getType()) != 0) - //throw new ImagingOpException ("Unable to transform source"); + throw new ImagingOpException(Messages.getString("awt.21F")); //$NON-NLS-1$ + // TODO - uncomment + // if (ippFilter(src.getRaster(), dst.getRaster(), src.getType()) != + // 0) + // throw new ImagingOpException ("Unable to transform source"); } if (finalDst != null) { @@ -320,9 +316,9 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { if (slowFilter(src, dst) != 0) { // awt.21F=Unable to transform source throw new ImagingOpException(Messages.getString("awt.21F")); //$NON-NLS-1$ - // TODO - uncomment - //if (ippFilter(src, dst, BufferedImage.TYPE_CUSTOM) != 0) - // throw new ImagingOpException("Unable to transform source"); + // TODO - uncomment + // if (ippFilter(src, dst, BufferedImage.TYPE_CUSTOM) != 0) + // throw new ImagingOpException("Unable to transform source"); } return dst; @@ -332,11 +328,13 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { /** * Ipp filter. * - * @param src the src - * @param dst the dst - * @param imageType the image type - * - * @return the int + * @param src + * the src. + * @param dst + * the dst. + * @param imageType + * the image type. + * @return the int. */ @SuppressWarnings("unused") private int ippFilter(Raster src, WritableRaster dst, int imageType) { @@ -349,8 +347,8 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { case BufferedImage.TYPE_INT_RGB: case BufferedImage.TYPE_INT_BGR: { channels = 4; - srcStride = src.getWidth()*4; - dstStride = dst.getWidth()*4; + srcStride = src.getWidth() * 4; + dstStride = dst.getWidth() * 4; skipChannel = true; break; } @@ -360,8 +358,8 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { case BufferedImage.TYPE_4BYTE_ABGR: case BufferedImage.TYPE_4BYTE_ABGR_PRE: { channels = 4; - srcStride = src.getWidth()*4; - dstStride = dst.getWidth()*4; + srcStride = src.getWidth() * 4; + dstStride = dst.getWidth() * 4; break; } @@ -375,12 +373,13 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { case BufferedImage.TYPE_3BYTE_BGR: { channels = 3; - srcStride = src.getWidth()*3; - dstStride = dst.getWidth()*3; + srcStride = src.getWidth() * 3; + dstStride = dst.getWidth() * 3; break; } - case BufferedImage.TYPE_USHORT_GRAY: // TODO - could be done in native code? + case BufferedImage.TYPE_USHORT_GRAY: // TODO - could be done in + // native code? case BufferedImage.TYPE_USHORT_565_RGB: case BufferedImage.TYPE_USHORT_555_RGB: case BufferedImage.TYPE_BYTE_BINARY: { @@ -391,34 +390,29 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { SampleModel srcSM = src.getSampleModel(); SampleModel dstSM = dst.getSampleModel(); - if ( - srcSM instanceof PixelInterleavedSampleModel && - dstSM instanceof PixelInterleavedSampleModel - ) { + if (srcSM instanceof PixelInterleavedSampleModel + && dstSM instanceof PixelInterleavedSampleModel) { // Check PixelInterleavedSampleModel - if ( - srcSM.getDataType() != DataBuffer.TYPE_BYTE || - dstSM.getDataType() != DataBuffer.TYPE_BYTE - ) { + if (srcSM.getDataType() != DataBuffer.TYPE_BYTE + || dstSM.getDataType() != DataBuffer.TYPE_BYTE) { return slowFilter(src, dst); } - channels = srcSM.getNumBands(); // Have IPP functions for 1, 3 and 4 channels + channels = srcSM.getNumBands(); // Have IPP functions for 1, + // 3 and 4 channels if (channels != 1 && channels != 3 && channels != 4) { return slowFilter(src, dst); } int dataTypeSize = DataBuffer.getDataTypeSize(srcSM.getDataType()) / 8; - srcStride = ((ComponentSampleModel) srcSM).getScanlineStride() * dataTypeSize; - dstStride = ((ComponentSampleModel) dstSM).getScanlineStride() * dataTypeSize; - } else if ( - srcSM instanceof SinglePixelPackedSampleModel && - dstSM instanceof SinglePixelPackedSampleModel - ) { + srcStride = ((ComponentSampleModel)srcSM).getScanlineStride() * dataTypeSize; + dstStride = ((ComponentSampleModel)dstSM).getScanlineStride() * dataTypeSize; + } else if (srcSM instanceof SinglePixelPackedSampleModel + && dstSM instanceof SinglePixelPackedSampleModel) { // Check SinglePixelPackedSampleModel - SinglePixelPackedSampleModel sppsm1 = (SinglePixelPackedSampleModel) srcSM; - SinglePixelPackedSampleModel sppsm2 = (SinglePixelPackedSampleModel) dstSM; + SinglePixelPackedSampleModel sppsm1 = (SinglePixelPackedSampleModel)srcSM; + SinglePixelPackedSampleModel sppsm2 = (SinglePixelPackedSampleModel)dstSM; // No IPP function for this type if (sppsm1.getDataType() == DataBuffer.TYPE_USHORT) { @@ -432,15 +426,13 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { } // Check compatibility of sample models - if ( - sppsm1.getDataType() != sppsm2.getDataType() || - !Arrays.equals(sppsm1.getBitOffsets(), sppsm2.getBitOffsets()) || - !Arrays.equals(sppsm1.getBitMasks(), sppsm2.getBitMasks()) - ) { + if (sppsm1.getDataType() != sppsm2.getDataType() + || !Arrays.equals(sppsm1.getBitOffsets(), sppsm2.getBitOffsets()) + || !Arrays.equals(sppsm1.getBitMasks(), sppsm2.getBitMasks())) { return slowFilter(src, dst); } - for (int i=0; i<channels; i++) { + for (int i = 0; i < channels; i++) { if (sppsm1.getSampleSize(i) != 8) { return slowFilter(src, dst); } @@ -460,12 +452,9 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { // Fill offsets if there's a child raster if (src.getParent() != null || dst.getParent() != null) { - if ( - src.getSampleModelTranslateX() != 0 || - src.getSampleModelTranslateY() != 0 || - dst.getSampleModelTranslateX() != 0 || - dst.getSampleModelTranslateY() != 0 - ) { + if (src.getSampleModelTranslateX() != 0 || src.getSampleModelTranslateY() != 0 + || dst.getSampleModelTranslateX() != 0 + || dst.getSampleModelTranslateY() != 0) { offsets = new int[4]; offsets[0] = -src.getSampleModelTranslateX() + src.getMinX(); offsets[1] = -src.getSampleModelTranslateY() + src.getMinY(); @@ -492,20 +481,19 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { return -1; // Unknown data buffer type } - return ippAffineTransform( - m00, m01, m02, m10, m11, m12, - srcData, src.getWidth(), src.getHeight(), srcStride, - dstData, dst.getWidth(), dst.getHeight(), dstStride, - iType, channels, skipChannel, offsets); + return ippAffineTransform(m00, m01, m02, m10, m11, m12, srcData, src.getWidth(), src + .getHeight(), srcStride, dstData, dst.getWidth(), dst.getHeight(), dstStride, + iType, channels, skipChannel, offsets); } /** * Slow filter. * - * @param src the src - * @param dst the dst - * - * @return the int + * @param src + * the src. + * @param dst + * the dst. + * @return the int. */ private int slowFilter(Raster src, WritableRaster dst) { // TODO: make correct interpolation @@ -518,7 +506,7 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { AffineTransform inv = null; try { - inv = at.createInverse(); + inv = at.createInverse(); } catch (NoninvertibleTransformException e) { return -1; } @@ -552,7 +540,7 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { int px = sx >> 8; int py = sy >> 8; if (px >= minSrcX && py >= minSrcY && px < maxSrcX && py < maxSrcY) { - Object val = src.getDataElements(px , py , null); + Object val = src.getDataElements(px, py, null); dst.setDataElements(x, y, val); } sx += hx; @@ -585,33 +573,46 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { /** * Ipp affine transform. * - * @param m00 the m00 - * @param m01 the m01 - * @param m02 the m02 - * @param m10 the m10 - * @param m11 the m11 - * @param m12 the m12 - * @param src the src - * @param srcWidth the src width - * @param srcHeight the src height - * @param srcStride the src stride - * @param dst the dst - * @param dstWidth the dst width - * @param dstHeight the dst height - * @param dstStride the dst stride - * @param iType the i type - * @param channels the channels - * @param skipChannel the skip channel - * @param offsets the offsets - * - * @return the int + * @param m00 + * the m00. + * @param m01 + * the m01. + * @param m02 + * the m02. + * @param m10 + * the m10. + * @param m11 + * the m11. + * @param m12 + * the m12. + * @param src + * the src. + * @param srcWidth + * the src width. + * @param srcHeight + * the src height. + * @param srcStride + * the src stride. + * @param dst + * the dst. + * @param dstWidth + * the dst width. + * @param dstHeight + * the dst height. + * @param dstStride + * the dst stride. + * @param iType + * the i type. + * @param channels + * the channels. + * @param skipChannel + * the skip channel. + * @param offsets + * the offsets. + * @return the int. */ - private native int ippAffineTransform( - double m00, double m01, - double m02, double m10, - double m11, double m12, - Object src, int srcWidth, int srcHeight, int srcStride, - Object dst, int dstWidth, int dstHeight, int dstStride, - int iType, int channels, boolean skipChannel, - int offsets[]); + private native int ippAffineTransform(double m00, double m01, double m02, double m10, + double m11, double m12, Object src, int srcWidth, int srcHeight, int srcStride, + Object dst, int dstWidth, int dstHeight, int dstStride, int iType, int channels, + boolean skipChannel, int offsets[]); }
\ No newline at end of file diff --git a/awt/java/awt/image/AreaAveragingScaleFilter.java b/awt/java/awt/image/AreaAveragingScaleFilter.java index f4933db..7fb138e 100644 --- a/awt/java/awt/image/AreaAveragingScaleFilter.java +++ b/awt/java/awt/image/AreaAveragingScaleFilter.java @@ -18,72 +18,101 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.util.Arrays; - /** - * The AreaAveragingScaleFilter class scales the source image using - * area averaging algorithm. This algorithm provides a source image - * with a new image containing the resampled image. + * The AreaAveragingScaleFilter class scales the source image using area + * averaging algorithm. This algorithm provides a source image with a new image + * containing the resampled image. + * + * @since Android 1.0 */ public class AreaAveragingScaleFilter extends ReplicateScaleFilter { - /** The Constant rgbCM. */ + /** + * The Constant rgbCM. + */ private static final ColorModel rgbCM = ColorModel.getRGBdefault(); - - /** The Constant averagingFlags. */ - private static final int averagingFlags = (ImageConsumer.TOPDOWNLEFTRIGHT | - ImageConsumer.COMPLETESCANLINES); - - /** The reset. */ - private boolean reset = true; // Flag for used superclass filter - - /** The inited. */ + + /** + * The Constant averagingFlags. + */ + private static final int averagingFlags = (ImageConsumer.TOPDOWNLEFTRIGHT | ImageConsumer.COMPLETESCANLINES); + + /** + * The reset. + */ + private boolean reset = true; // Flag for used superclass filter + + /** + * The inited. + */ private boolean inited = false; // All data inited - /** The sum_r. */ + /** + * The sum_r. + */ private int sum_r[]; // Array for average Red samples - - /** The sum_g. */ + + /** + * The sum_g. + */ private int sum_g[]; // Array for average Green samples - - /** The sum_b. */ + + /** + * The sum_b. + */ private int sum_b[]; // Array for average Blue samples - - /** The sum_a. */ + + /** + * The sum_a. + */ private int sum_a[]; // Array for average Alpha samples - /** The buff. */ - private int buff[]; // Stride buffer - - /** The avg factor. */ - private int avgFactor; // Global averaging factor - - /** The cached dy. */ - private int cachedDY; // Cached number of the destination scanline - - /** The cached dv rest. */ - private int cachedDVRest; // Cached value of rest src scanlines for sum - // pixel samples - // Because data if transfering by whole scanlines - // we are caching only Y coordinate values - /** - * Instantiates a new AreaAveragingScaleFilter object which scales - * a source image with the specified width and height. + * The buff. + */ + private int buff[]; // Stride buffer + + /** + * The avg factor. + */ + private int avgFactor; // Global averaging factor + + /** + * The cached dy. + */ + private int cachedDY; // Cached number of the destination scanline + + /** + * The cached dv rest. + */ + private int cachedDVRest; // Cached value of rest src scanlines for sum + + // pixel samples + // Because data if transferring by whole scanlines + // we are caching only Y coordinate values + + /** + * Instantiates a new AreaAveragingScaleFilter object which scales a source + * image with the specified width and height. * - * @param width the scaled width of the image. - * @param height the scaled height of the image. + * @param width + * the scaled width of the image. + * @param height + * the scaled height of the image. */ public AreaAveragingScaleFilter(int width, int height) { super(width, height); } @Override - public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize) { - if(reset) { + public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, + int scansize) { + if (reset) { super.setPixels(x, y, w, h, model, pixels, off, scansize); } else { setFilteredPixels(x, y, w, h, model, pixels, off, scansize); @@ -91,8 +120,9 @@ public class AreaAveragingScaleFilter extends ReplicateScaleFilter { } @Override - public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize) { - if(reset) { + public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, + int scansize) { + if (reset) { super.setPixels(x, y, w, h, model, pixels, off, scansize); } else { setFilteredPixels(x, y, w, h, model, pixels, off, scansize); @@ -106,37 +136,44 @@ public class AreaAveragingScaleFilter extends ReplicateScaleFilter { } /** - * This method implements the Area Averaging Scale filter. - * The description of algorithm is presented in Java API Specification. - * - * Arrays sum_r, sum_g, sum_b, sum_a have length equals width of destination - * image. In each array's element is accumulating pixel's component values, - * proportional to the area which source pixels will occupy in destination - * image. Then that values will divide by Global averaging - * factor (area of the destination image) for receiving - * average values of destination pixels. + * This method implements the Area Averaging Scale filter. The description + * of algorithm is presented in Java API Specification. Arrays sum_r, sum_g, + * sum_b, sum_a have length equals width of destination image. In each + * array's element is accumulating pixel's component values, proportional to + * the area which source pixels will occupy in destination image. Then that + * values will divide by Global averaging factor (area of the destination + * image) for receiving average values of destination pixels. * - * @param x - Src pixels X coordinate - * @param y - Src pixels Y coordinate - * @param w - width of the area of Src pixels - * @param h - height of the area of Src pixels - * @param model - Color Model of Src pixels - * @param pixels - array of Src pixels - * @param off - offset into the Src pixels array - * @param scansize - length of scanline in the pixels array + * @param x + * the source pixels X coordinate. + * @param y + * the source pixels Y coordinate. + * @param w + * the width of the area of the source pixels. + * @param h + * the height of the area of the source pixels. + * @param model + * the color model of the source pixels. + * @param pixels + * the array of source pixels. + * @param off + * the offset into the source pixels array. + * @param scansize + * the length of scanline in the pixels array. */ - private void setFilteredPixels(int x, int y, int w, int h, ColorModel model, Object pixels, int off, int scansize){ - if(!inited){ + private void setFilteredPixels(int x, int y, int w, int h, ColorModel model, Object pixels, + int off, int scansize) { + if (!inited) { initialize(); } int srcX, srcY, dx, dy; int svRest, dvRest, shRest, dhRest, vDif, hDif; - if(y == 0){ + if (y == 0) { dy = 0; dvRest = srcHeight; - }else{ + } else { dy = cachedDY; dvRest = cachedDVRest; } @@ -166,9 +203,9 @@ public class AreaAveragingScaleFilter extends ReplicateScaleFilter { int rgb, pix; if (pixels instanceof int[]) { - pix = ((int[]) pixels)[srcOff + srcX]; + pix = ((int[])pixels)[srcOff + srcX]; } else { - pix = ((byte[]) pixels)[srcOff + srcX] & 0xff; + pix = ((byte[])pixels)[srcOff + srcX] & 0xff; } rgb = model.getRGB(pix); @@ -208,7 +245,7 @@ public class AreaAveragingScaleFilter extends ReplicateScaleFilter { if (dvRest == 0) { // averaging destination pixel's values - for(int i = 0; i < destWidth; i++){ + for (int i = 0; i < destWidth; i++) { int a = (sum_a[i] / avgFactor) & 0xff; int r = (sum_r[i] / avgFactor) & 0xff; int g = (sum_g[i] / avgFactor) & 0xff; @@ -216,8 +253,7 @@ public class AreaAveragingScaleFilter extends ReplicateScaleFilter { int frgb = (a << 24) | (r << 16) | (g << 8) | b; buff[i] = frgb; } - consumer.setPixels(0, dy, destWidth, 1, rgbCM, buff, 0, - destWidth); + consumer.setPixels(0, dy, destWidth, 1, rgbCM, buff, 0, destWidth); dy++; dvRest = srcHeight; Arrays.fill(sum_a, 0); @@ -236,18 +272,17 @@ public class AreaAveragingScaleFilter extends ReplicateScaleFilter { /** * Initialization of the auxiliary data. */ - private void initialize(){ + private void initialize() { - sum_a = new int[destWidth]; - sum_r = new int[destWidth]; - sum_g = new int[destWidth]; - sum_b = new int[destWidth]; + sum_a = new int[destWidth]; + sum_r = new int[destWidth]; + sum_g = new int[destWidth]; + sum_b = new int[destWidth]; - buff = new int[destWidth]; + buff = new int[destWidth]; outpixbuf = buff; - avgFactor = srcWidth * srcHeight; + avgFactor = srcWidth * srcHeight; inited = true; } } - diff --git a/awt/java/awt/image/AwtImageBackdoorAccessorImpl.java b/awt/java/awt/image/AwtImageBackdoorAccessorImpl.java index ce85ddd..6dffee8 100644 --- a/awt/java/awt/image/AwtImageBackdoorAccessorImpl.java +++ b/awt/java/awt/image/AwtImageBackdoorAccessorImpl.java @@ -20,6 +20,7 @@ * Created on 23.11.2005 * */ + package java.awt.image; import java.awt.Image; @@ -40,41 +41,43 @@ import org.apache.harmony.awt.internal.nls.Messages; /** * This class not part of public API. It useful for receiving package private * data from other packages. + * + * @since Android 1.0 */ class AwtImageBackdoorAccessorImpl extends AwtImageBackdoorAccessor { - static void init(){ + static void init() { inst = new AwtImageBackdoorAccessorImpl(); } @Override public Surface getImageSurface(Image image) { - if (image instanceof BufferedImage){ + if (image instanceof BufferedImage) { return ((BufferedImage)image).getImageSurface(); - } else if (image instanceof GLVolatileImage){ + } else if (image instanceof GLVolatileImage) { return ((GLVolatileImage)image).getImageSurface(); } return null; } @Override - public boolean isGrayPallete(IndexColorModel icm){ + public boolean isGrayPallete(IndexColorModel icm) { return icm.isGrayPallete(); } @Override public Object getData(DataBuffer db) { - if (db instanceof DataBufferByte){ + if (db instanceof DataBufferByte) { return ((DataBufferByte)db).getData(); - } else if (db instanceof DataBufferUShort){ + } else if (db instanceof DataBufferUShort) { return ((DataBufferUShort)db).getData(); - } else if (db instanceof DataBufferShort){ + } else if (db instanceof DataBufferShort) { return ((DataBufferShort)db).getData(); - } else if (db instanceof DataBufferInt){ + } else if (db instanceof DataBufferInt) { return ((DataBufferInt)db).getData(); - } else if (db instanceof DataBufferFloat){ + } else if (db instanceof DataBufferFloat) { return ((DataBufferFloat)db).getData(); - } else if (db instanceof DataBufferDouble){ + } else if (db instanceof DataBufferDouble) { return ((DataBufferDouble)db).getData(); } else { // awt.235=Wrong Data Buffer type : {0} @@ -85,7 +88,7 @@ class AwtImageBackdoorAccessorImpl extends AwtImageBackdoorAccessor { @Override public int[] getDataInt(DataBuffer db) { - if (db instanceof DataBufferInt){ + if (db instanceof DataBufferInt) { return ((DataBufferInt)db).getData(); } return null; @@ -93,7 +96,7 @@ class AwtImageBackdoorAccessorImpl extends AwtImageBackdoorAccessor { @Override public byte[] getDataByte(DataBuffer db) { - if (db instanceof DataBufferByte){ + if (db instanceof DataBufferByte) { return ((DataBufferByte)db).getData(); } return null; @@ -101,7 +104,7 @@ class AwtImageBackdoorAccessorImpl extends AwtImageBackdoorAccessor { @Override public short[] getDataShort(DataBuffer db) { - if (db instanceof DataBufferShort){ + if (db instanceof DataBufferShort) { return ((DataBufferShort)db).getData(); } return null; @@ -109,7 +112,7 @@ class AwtImageBackdoorAccessorImpl extends AwtImageBackdoorAccessor { @Override public short[] getDataUShort(DataBuffer db) { - if (db instanceof DataBufferUShort){ + if (db instanceof DataBufferUShort) { return ((DataBufferUShort)db).getData(); } return null; @@ -117,7 +120,7 @@ class AwtImageBackdoorAccessorImpl extends AwtImageBackdoorAccessor { @Override public double[] getDataDouble(DataBuffer db) { - if (db instanceof DataBufferDouble){ + if (db instanceof DataBufferDouble) { return ((DataBufferDouble)db).getData(); } return null; @@ -125,7 +128,7 @@ class AwtImageBackdoorAccessorImpl extends AwtImageBackdoorAccessor { @Override public float[] getDataFloat(DataBuffer db) { - if (db instanceof DataBufferFloat){ + if (db instanceof DataBufferFloat) { return ((DataBufferFloat)db).getData(); } return null; diff --git a/awt/java/awt/image/BandCombineOp.java b/awt/java/awt/image/BandCombineOp.java index cd77a21..da2cc89 100644 --- a/awt/java/awt/image/BandCombineOp.java +++ b/awt/java/awt/image/BandCombineOp.java @@ -32,82 +32,124 @@ import org.apache.harmony.awt.gl.AwtImageBackdoorAccessor; import org.apache.harmony.awt.internal.nls.Messages; /** - * The BandCombineOp class translates coordinates from - * coordinates in the source Raster to coordinates in - * the destination Raster by an arbitrary linear combination - * of the bands in a source Raster, using a specified matrix. - * The number of bands in the matrix should equal to - * the number of bands in the source Raster plus 1. + * The BandCombineOp class translates coordinates from coordinates in the source + * Raster to coordinates in the destination Raster by an arbitrary linear + * combination of the bands in a source Raster, using a specified matrix. The + * number of bands in the matrix should equal to the number of bands in the + * source Raster plus 1. + * + * @since Android 1.0 */ public class BandCombineOp implements RasterOp { - - /** The Constant offsets3c. */ - static final int offsets3c[] = {16, 8, 0}; - - /** The Constant offsets4ac. */ - static final int offsets4ac[] = {16, 8, 0, 24}; - - /** The Constant masks3c. */ - static final int masks3c[] = {0xFF0000, 0xFF00, 0xFF}; - - /** The Constant masks4ac. */ - static final int masks4ac[] = {0xFF0000, 0xFF00, 0xFF, 0xFF000000}; - - /** The Constant piOffsets. */ - private static final int piOffsets[] = {0, 1, 2}; - - /** The Constant piInvOffsets. */ - private static final int piInvOffsets[] = {2, 1, 0}; - - /** The Constant TYPE_BYTE3C. */ + + /** + * The Constant offsets3c. + */ + static final int offsets3c[] = { + 16, 8, 0 + }; + + /** + * The Constant offsets4ac. + */ + static final int offsets4ac[] = { + 16, 8, 0, 24 + }; + + /** + * The Constant masks3c. + */ + static final int masks3c[] = { + 0xFF0000, 0xFF00, 0xFF + }; + + /** + * The Constant masks4ac. + */ + static final int masks4ac[] = { + 0xFF0000, 0xFF00, 0xFF, 0xFF000000 + }; + + /** + * The Constant piOffsets. + */ + private static final int piOffsets[] = { + 0, 1, 2 + }; + + /** + * The Constant piInvOffsets. + */ + private static final int piInvOffsets[] = { + 2, 1, 0 + }; + + /** + * The Constant TYPE_BYTE3C. + */ private static final int TYPE_BYTE3C = 0; - - /** The Constant TYPE_BYTE4AC. */ + + /** + * The Constant TYPE_BYTE4AC. + */ private static final int TYPE_BYTE4AC = 1; - - /** The Constant TYPE_USHORT3C. */ + + /** + * The Constant TYPE_USHORT3C. + */ private static final int TYPE_USHORT3C = 2; - - /** The Constant TYPE_SHORT3C. */ + + /** + * The Constant TYPE_SHORT3C. + */ private static final int TYPE_SHORT3C = 3; - /** The mx width. */ + /** + * The mx width. + */ private int mxWidth; - - /** The mx height. */ + + /** + * The mx height. + */ private int mxHeight; - - /** The matrix. */ + + /** + * The matrix. + */ private float matrix[][]; - - /** The r hints. */ + + /** + * The r hints. + */ private RenderingHints rHints; static { // XXX - todo - //System.loadLibrary("imageops"); + // System.loadLibrary("imageops"); } /** - * Instantiates a new BandCombineOp object with the specified - * matrix. + * Instantiates a new BandCombineOp object with the specified matrix. * - * @param matrix the specified matrix for band combining. - * @param hints the RenderingHints. + * @param matrix + * the specified matrix for band combining. + * @param hints + * the RenderingHints. */ public BandCombineOp(float matrix[][], RenderingHints hints) { this.mxHeight = matrix.length; this.mxWidth = matrix[0].length; this.matrix = new float[mxHeight][mxWidth]; - for (int i=0; i<mxHeight; i++){ + for (int i = 0; i < mxHeight; i++) { System.arraycopy(matrix[i], 0, this.matrix[i], 0, mxWidth); } this.rHints = hints; } - public final RenderingHints getRenderingHints(){ + public final RenderingHints getRenderingHints() { return this.rHints; } @@ -119,14 +161,14 @@ public class BandCombineOp implements RasterOp { public final float[][] getMatrix() { float res[][] = new float[mxHeight][mxWidth]; - for (int i=0; i<mxHeight; i++) { + for (int i = 0; i < mxHeight; i++) { System.arraycopy(matrix[i], 0, res[i], 0, mxWidth); } return res; } - public final Point2D getPoint2D (Point2D srcPoint, Point2D dstPoint) { + public final Point2D getPoint2D(Point2D srcPoint, Point2D dstPoint) { if (dstPoint == null) { dstPoint = new Point2D.Float(); } @@ -135,17 +177,19 @@ public class BandCombineOp implements RasterOp { return dstPoint; } - public final Rectangle2D getBounds2D(Raster src){ + public final Rectangle2D getBounds2D(Raster src) { return src.getBounds(); } - public WritableRaster createCompatibleDestRaster (Raster src) { + public WritableRaster createCompatibleDestRaster(Raster src) { int numBands = src.getNumBands(); - if (mxWidth != numBands && mxWidth != (numBands+1) || numBands != mxHeight) { + if (mxWidth != numBands && mxWidth != (numBands + 1) || numBands != mxHeight) { // awt.254=Number of bands in the source raster ({0}) is - // incompatible with the matrix [{1}x{2}] + // incompatible with the matrix [{1}x{2}] throw new IllegalArgumentException(Messages.getString("awt.254", //$NON-NLS-1$ - new Object[]{numBands, mxWidth, mxHeight})); + new Object[] { + numBands, mxWidth, mxHeight + })); } return src.createCompatibleWritableRaster(src.getWidth(), src.getHeight()); @@ -154,27 +198,31 @@ public class BandCombineOp implements RasterOp { public WritableRaster filter(Raster src, WritableRaster dst) { int numBands = src.getNumBands(); - if (mxWidth != numBands && mxWidth != (numBands+1)) { + if (mxWidth != numBands && mxWidth != (numBands + 1)) { // awt.254=Number of bands in the source raster ({0}) is - // incompatible with the matrix [{1}x{2}] - throw new IllegalArgumentException( - Messages.getString("awt.254", //$NON-NLS-1$ - new Object[]{numBands, mxWidth, mxHeight})); + // incompatible with the matrix [{1}x{2}] + throw new IllegalArgumentException(Messages.getString("awt.254", //$NON-NLS-1$ + new Object[] { + numBands, mxWidth, mxHeight + })); } if (dst == null) { dst = createCompatibleDestRaster(src); } else if (dst.getNumBands() != mxHeight) { - // awt.255=Number of bands in the destination raster ({0}) is incompatible with the matrix [{1}x{2}] + // awt.255=Number of bands in the destination raster ({0}) is + // incompatible with the matrix [{1}x{2}] throw new IllegalArgumentException(Messages.getString("awt.255", //$NON-NLS-1$ - new Object[]{dst.getNumBands(), mxWidth, mxHeight})); + new Object[] { + dst.getNumBands(), mxWidth, mxHeight + })); } // XXX - todo - //if (ippFilter(src, dst) != 0) + // if (ippFilter(src, dst) != 0) if (verySlowFilter(src, dst) != 0) { // awt.21F=Unable to transform source - throw new ImagingOpException (Messages.getString("awt.21F")); //$NON-NLS-1$ + throw new ImagingOpException(Messages.getString("awt.21F")); //$NON-NLS-1$ } return dst; @@ -184,23 +232,29 @@ public class BandCombineOp implements RasterOp { * The Class SampleModelInfo. */ private static final class SampleModelInfo { - - /** The channels. */ + + /** + * The channels. + */ int channels; - - /** The channels order. */ + + /** + * The channels order. + */ int channelsOrder[]; - - /** The stride. */ + + /** + * The stride. + */ int stride; } /** * Check sample model. * - * @param sm the sm - * - * @return the sample model info + * @param sm + * the sm. + * @return the sample model info. */ private final SampleModelInfo checkSampleModel(SampleModel sm) { SampleModelInfo ret = new SampleModelInfo(); @@ -212,12 +266,12 @@ public class BandCombineOp implements RasterOp { } ret.channels = sm.getNumBands(); - ret.stride = ((ComponentSampleModel) sm).getScanlineStride(); - ret.channelsOrder = ((ComponentSampleModel) sm).getBandOffsets(); + ret.stride = ((ComponentSampleModel)sm).getScanlineStride(); + ret.channelsOrder = ((ComponentSampleModel)sm).getBandOffsets(); } else if (sm instanceof SinglePixelPackedSampleModel) { // Check SinglePixelPackedSampleModel - SinglePixelPackedSampleModel sppsm1 = (SinglePixelPackedSampleModel) sm; + SinglePixelPackedSampleModel sppsm1 = (SinglePixelPackedSampleModel)sm; ret.channels = sppsm1.getNumBands(); if (sppsm1.getDataType() != DataBuffer.TYPE_INT) { @@ -225,7 +279,7 @@ public class BandCombineOp implements RasterOp { } // Check sample models - for (int i=0; i<ret.channels; i++) { + for (int i = 0; i < ret.channels; i++) { if (sppsm1.getSampleSize(i) != 8) { return null; } @@ -233,7 +287,7 @@ public class BandCombineOp implements RasterOp { ret.channelsOrder = new int[ret.channels]; int bitOffsets[] = sppsm1.getBitOffsets(); - for (int i=0; i<ret.channels; i++) { + for (int i = 0; i < ret.channels; i++) { if (bitOffsets[i] % 8 != 0) { return null; } @@ -253,10 +307,11 @@ public class BandCombineOp implements RasterOp { /** * Slow filter. * - * @param src the src - * @param dst the dst - * - * @return the int + * @param src + * the src. + * @param dst + * the dst. + * @return the int. */ private final int slowFilter(Raster src, WritableRaster dst) { int res = 0; @@ -272,8 +327,8 @@ public class BandCombineOp implements RasterOp { // Fill offsets if there's a child raster if (src.getParent() != null || dst.getParent() != null) { - if (src.getSampleModelTranslateX() != 0 || src.getSampleModelTranslateY() != 0 || - dst.getSampleModelTranslateX() != 0 || dst.getSampleModelTranslateY() != 0) { + if (src.getSampleModelTranslateX() != 0 || src.getSampleModelTranslateY() != 0 + || dst.getSampleModelTranslateX() != 0 || dst.getSampleModelTranslateY() != 0) { offsets = new int[4]; offsets[0] = -src.getSampleModelTranslateX() + src.getMinX(); offsets[1] = -src.getSampleModelTranslateY() + src.getMinY(); @@ -282,23 +337,22 @@ public class BandCombineOp implements RasterOp { } } - int rmxWidth = (srcInfo.channels+1); // width of the reordered matrix - float reorderedMatrix[] = new float[rmxWidth*dstInfo.channels]; - for (int j=0; j<dstInfo.channels; j++) { + int rmxWidth = (srcInfo.channels + 1); // width of the reordered matrix + float reorderedMatrix[] = new float[rmxWidth * dstInfo.channels]; + for (int j = 0; j < dstInfo.channels; j++) { if (j >= dstInfo.channelsOrder.length) { continue; } - for (int i=0; i<srcInfo.channels; i++) { + for (int i = 0; i < srcInfo.channels; i++) { if (i >= srcInfo.channelsOrder.length) { break; } - reorderedMatrix[dstInfo.channelsOrder[j]*rmxWidth + srcInfo.channelsOrder[i]] = - matrix[j][i]; + reorderedMatrix[dstInfo.channelsOrder[j] * rmxWidth + srcInfo.channelsOrder[i]] = matrix[j][i]; } if (mxWidth == rmxWidth) { - reorderedMatrix[(dstInfo.channelsOrder[j]+1)*rmxWidth - 1] = matrix[j][mxWidth-1]; + reorderedMatrix[(dstInfo.channelsOrder[j] + 1) * rmxWidth - 1] = matrix[j][mxWidth - 1]; } } @@ -311,11 +365,9 @@ public class BandCombineOp implements RasterOp { return -1; // Unknown data buffer type } - simpleCombineBands( - srcData, src.getWidth(), src.getHeight(), srcInfo.stride, srcInfo.channels, - dstData, dstInfo.stride, dstInfo.channels, - reorderedMatrix, offsets - ); + simpleCombineBands(srcData, src.getWidth(), src.getHeight(), srcInfo.stride, + srcInfo.channels, dstData, dstInfo.stride, dstInfo.channels, reorderedMatrix, + offsets); return res; } @@ -323,10 +375,11 @@ public class BandCombineOp implements RasterOp { /** * Very slow filter. * - * @param src the src - * @param dst the dst - * - * @return the int + * @param src + * the src. + * @param dst + * the dst. + * @return the int. */ private int verySlowFilter(Raster src, WritableRaster dst) { int numBands = src.getNumBands(); @@ -337,33 +390,35 @@ public class BandCombineOp implements RasterOp { int dstMinX = dst.getMinX(); int dstY = dst.getMinY(); - int dX = src.getWidth();//< dst.getWidth() ? src.getWidth() : dst.getWidth(); - int dY = src.getHeight();//< dst.getHeight() ? src.getHeight() : dst.getHeight(); + int dX = src.getWidth();// < dst.getWidth() ? src.getWidth() : + // dst.getWidth(); + int dY = src.getHeight();// < dst.getHeight() ? src.getHeight() : + // dst.getHeight(); float sample; - int srcPixels[] = new int[numBands*dX*dY]; - int dstPixels[] = new int[mxHeight*dX*dY]; + int srcPixels[] = new int[numBands * dX * dY]; + int dstPixels[] = new int[mxHeight * dX * dY]; srcPixels = src.getPixels(srcMinX, srcY, dX, dY, srcPixels); if (numBands == mxWidth) { - for (int i=0, j=0; i<srcPixels.length; i+=numBands) { + for (int i = 0, j = 0; i < srcPixels.length; i += numBands) { for (int dstB = 0; dstB < mxHeight; dstB++) { sample = 0f; for (int srcB = 0; srcB < numBands; srcB++) { - sample += matrix[dstB][srcB] * srcPixels[i+srcB]; + sample += matrix[dstB][srcB] * srcPixels[i + srcB]; } - dstPixels[j++] = (int) sample; + dstPixels[j++] = (int)sample; } } } else { - for (int i=0, j=0; i<srcPixels.length; i+=numBands) { + for (int i = 0, j = 0; i < srcPixels.length; i += numBands) { for (int dstB = 0; dstB < mxHeight; dstB++) { sample = 0f; for (int srcB = 0; srcB < numBands; srcB++) { - sample += matrix[dstB][srcB] * srcPixels[i+srcB]; + sample += matrix[dstB][srcB] * srcPixels[i + srcB]; } - dstPixels[j++] = (int) (sample + matrix[dstB][numBands]); + dstPixels[j++] = (int)(sample + matrix[dstB][numBands]); } } } @@ -373,14 +428,15 @@ public class BandCombineOp implements RasterOp { return 0; } - //TODO remove when method is used + // TODO remove when method is used /** * Ipp filter. * - * @param src the src - * @param dst the dst - * - * @return the int + * @param src + * the src. + * @param dst + * the dst. + * @return the int. */ @SuppressWarnings("unused") private int ippFilter(Raster src, WritableRaster dst) { @@ -393,56 +449,39 @@ public class BandCombineOp implements RasterOp { int srcBands = src.getNumBands(); int dstBands = dst.getNumBands(); - if ( - dstBands != 3 || - (srcBands != 3 && - !(srcBands == 4 && - matrix[0][3] == 0 && - matrix[1][3] == 0 && - matrix[2][3] == 0) - ) - ) { + if (dstBands != 3 + || (srcBands != 3 && !(srcBands == 4 && matrix[0][3] == 0 && matrix[1][3] == 0 && matrix[2][3] == 0))) { return slowFilter(src, dst); } SampleModel srcSM = src.getSampleModel(); SampleModel dstSM = dst.getSampleModel(); - if ( - srcSM instanceof SinglePixelPackedSampleModel && - dstSM instanceof SinglePixelPackedSampleModel - ) { + if (srcSM instanceof SinglePixelPackedSampleModel + && dstSM instanceof SinglePixelPackedSampleModel) { // Check SinglePixelPackedSampleModel - SinglePixelPackedSampleModel sppsm1 = (SinglePixelPackedSampleModel) srcSM; - SinglePixelPackedSampleModel sppsm2 = (SinglePixelPackedSampleModel) dstSM; + SinglePixelPackedSampleModel sppsm1 = (SinglePixelPackedSampleModel)srcSM; + SinglePixelPackedSampleModel sppsm2 = (SinglePixelPackedSampleModel)dstSM; - if ( - sppsm1.getDataType() != DataBuffer.TYPE_INT || - sppsm2.getDataType() != DataBuffer.TYPE_INT - ) { + if (sppsm1.getDataType() != DataBuffer.TYPE_INT + || sppsm2.getDataType() != DataBuffer.TYPE_INT) { return slowFilter(src, dst); } // Check sample models - if ( - !Arrays.equals(sppsm2.getBitOffsets(), offsets3c) || - !Arrays.equals(sppsm2.getBitMasks(), masks3c) - ) { + if (!Arrays.equals(sppsm2.getBitOffsets(), offsets3c) + || !Arrays.equals(sppsm2.getBitMasks(), masks3c)) { return slowFilter(src, dst); } if (srcBands == 3) { - if ( - !Arrays.equals(sppsm1.getBitOffsets(), offsets3c) || - !Arrays.equals(sppsm1.getBitMasks(), masks3c) - ) { + if (!Arrays.equals(sppsm1.getBitOffsets(), offsets3c) + || !Arrays.equals(sppsm1.getBitMasks(), masks3c)) { return slowFilter(src, dst); } } else if (srcBands == 4) { - if ( - !Arrays.equals(sppsm1.getBitOffsets(), offsets4ac) || - !Arrays.equals(sppsm1.getBitMasks(), masks4ac) - ) { + if (!Arrays.equals(sppsm1.getBitOffsets(), offsets4ac) + || !Arrays.equals(sppsm1.getBitMasks(), masks4ac)) { return slowFilter(src, dst); } } @@ -452,10 +491,8 @@ public class BandCombineOp implements RasterOp { srcStride = sppsm1.getScanlineStride() * 4; dstStride = sppsm2.getScanlineStride() * 4; - } else if ( - srcSM instanceof PixelInterleavedSampleModel && - dstSM instanceof PixelInterleavedSampleModel - ) { + } else if (srcSM instanceof PixelInterleavedSampleModel + && dstSM instanceof PixelInterleavedSampleModel) { if (srcBands != 3) { return slowFilter(src, dst); } @@ -477,15 +514,12 @@ public class BandCombineOp implements RasterOp { } // Check PixelInterleavedSampleModel - PixelInterleavedSampleModel pism1 = (PixelInterleavedSampleModel) srcSM; - PixelInterleavedSampleModel pism2 = (PixelInterleavedSampleModel) dstSM; - - if ( - srcDataType != pism2.getDataType() || - pism1.getPixelStride() != 3 || - pism2.getPixelStride() != 3 || - !Arrays.equals(pism1.getBandOffsets(), pism2.getBandOffsets()) - ) { + PixelInterleavedSampleModel pism1 = (PixelInterleavedSampleModel)srcSM; + PixelInterleavedSampleModel pism2 = (PixelInterleavedSampleModel)dstSM; + + if (srcDataType != pism2.getDataType() || pism1.getPixelStride() != 3 + || pism2.getPixelStride() != 3 + || !Arrays.equals(pism1.getBandOffsets(), pism2.getBandOffsets())) { return slowFilter(src, dst); } @@ -507,8 +541,8 @@ public class BandCombineOp implements RasterOp { // Fill offsets if there's a child raster if (src.getParent() != null || dst.getParent() != null) { - if (src.getSampleModelTranslateX() != 0 || src.getSampleModelTranslateY() != 0 || - dst.getSampleModelTranslateX() != 0 || dst.getSampleModelTranslateY() != 0) { + if (src.getSampleModelTranslateX() != 0 || src.getSampleModelTranslateY() != 0 + || dst.getSampleModelTranslateX() != 0 || dst.getSampleModelTranslateY() != 0) { offsets = new int[4]; offsets[0] = -src.getSampleModelTranslateX() + src.getMinX(); offsets[1] = -src.getSampleModelTranslateY() + src.getMinY(); @@ -532,79 +566,93 @@ public class BandCombineOp implements RasterOp { // IPP treats big endian integers like BGR, so we have to // swap columns 1 and 3 and rows 1 and 3 for (int i = 0; i < mxHeight; i++) { - ippMatrix[i*4] = matrix[2-i][2]; - ippMatrix[i*4+1] = matrix[2-i][1]; - ippMatrix[i*4+2] = matrix[2-i][0]; + ippMatrix[i * 4] = matrix[2 - i][2]; + ippMatrix[i * 4 + 1] = matrix[2 - i][1]; + ippMatrix[i * 4 + 2] = matrix[2 - i][0]; if (mxWidth == 4) { - ippMatrix[i*4+3] = matrix[2-i][3]; + ippMatrix[i * 4 + 3] = matrix[2 - i][3]; } else if (mxWidth == 5) { - ippMatrix[i*4+3] = matrix[2-i][4]; + ippMatrix[i * 4 + 3] = matrix[2 - i][4]; } } } else { for (int i = 0; i < mxHeight; i++) { - ippMatrix[i*4] = matrix[i][0]; - ippMatrix[i*4+1] = matrix[i][1]; - ippMatrix[i*4+2] = matrix[i][2]; + ippMatrix[i * 4] = matrix[i][0]; + ippMatrix[i * 4 + 1] = matrix[i][1]; + ippMatrix[i * 4 + 2] = matrix[i][2]; if (mxWidth == 4) { - ippMatrix[i*4+3] = matrix[i][3]; + ippMatrix[i * 4 + 3] = matrix[i][3]; } else if (mxWidth == 5) { - ippMatrix[i*4+3] = matrix[i][4]; + ippMatrix[i * 4 + 3] = matrix[i][4]; } } } - return ippColorTwist( - srcData, src.getWidth(), src.getHeight(), srcStride, - dstData, dst.getWidth(), dst.getHeight(), dstStride, - ippMatrix, type, offsets, inPlace); + return ippColorTwist(srcData, src.getWidth(), src.getHeight(), srcStride, dstData, dst + .getWidth(), dst.getHeight(), dstStride, ippMatrix, type, offsets, inPlace); } /** * Ipp color twist. * - * @param srcData the src data - * @param srcWidth the src width - * @param srcHeight the src height - * @param srcStride the src stride - * @param dstData the dst data - * @param dstWidth the dst width - * @param dstHeight the dst height - * @param dstStride the dst stride - * @param ippMatrix the ipp matrix - * @param type the type - * @param offsets the offsets - * @param inPlace the in place - * - * @return the int + * @param srcData + * the src data. + * @param srcWidth + * the src width. + * @param srcHeight + * the src height. + * @param srcStride + * the src stride. + * @param dstData + * the dst data. + * @param dstWidth + * the dst width. + * @param dstHeight + * the dst height. + * @param dstStride + * the dst stride. + * @param ippMatrix + * the ipp matrix. + * @param type + * the type. + * @param offsets + * the offsets. + * @param inPlace + * the in place. + * @return the int. */ - private final native int ippColorTwist( - Object srcData, int srcWidth, int srcHeight, int srcStride, - Object dstData, int dstWidth, int dstHeight, int dstStride, - float ippMatrix[], int type, int offsets[], boolean inPlace - ); + private final native int ippColorTwist(Object srcData, int srcWidth, int srcHeight, + int srcStride, Object dstData, int dstWidth, int dstHeight, int dstStride, + float ippMatrix[], int type, int offsets[], boolean inPlace); /** * Simple combine bands. * - * @param srcData the src data - * @param srcWidth the src width - * @param srcHeight the src height - * @param srcStride the src stride - * @param srcChannels the src channels - * @param dstData the dst data - * @param dstStride the dst stride - * @param dstChannels the dst channels - * @param m the m - * @param offsets the offsets - * - * @return the int + * @param srcData + * the src data. + * @param srcWidth + * the src width. + * @param srcHeight + * the src height. + * @param srcStride + * the src stride. + * @param srcChannels + * the src channels. + * @param dstData + * the dst data. + * @param dstStride + * the dst stride. + * @param dstChannels + * the dst channels. + * @param m + * the m. + * @param offsets + * the offsets. + * @return the int. */ - private final native int simpleCombineBands( - Object srcData, int srcWidth, int srcHeight, int srcStride, int srcChannels, - Object dstData, int dstStride, int dstChannels, - float m[], int offsets[] - ); + private final native int simpleCombineBands(Object srcData, int srcWidth, int srcHeight, + int srcStride, int srcChannels, Object dstData, int dstStride, int dstChannels, + float m[], int offsets[]); } diff --git a/awt/java/awt/image/BandedSampleModel.java b/awt/java/awt/image/BandedSampleModel.java index 392e44c..0aa30d7 100644 --- a/awt/java/awt/image/BandedSampleModel.java +++ b/awt/java/awt/image/BandedSampleModel.java @@ -18,24 +18,26 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import org.apache.harmony.awt.internal.nls.Messages; /** - * The BandedSampleModel class provides samples of pixels in an image - * which is stored in a band interleaved method. Each pixel's sample - * takes one data element of the DataBuffer. The pixel stride for a - * BandedSampleModel is one. + * The BandedSampleModel class provides samples of pixels in an image which is + * stored in a band interleaved method. Each pixel's sample takes one data + * element of the DataBuffer. The pixel stride for a BandedSampleModel is one. + * + * @since Android 1.0 */ public final class BandedSampleModel extends ComponentSampleModel { /** * Creates the indices. * - * @param numBands the num bands - * - * @return the int[] + * @param numBands + * the num bands. + * @return the int[]. */ private static int[] createIndices(int numBands) { int indices[] = new int[numBands]; @@ -48,9 +50,9 @@ public final class BandedSampleModel extends ComponentSampleModel { /** * Creates the offsets. * - * @param numBands the num bands - * - * @return the int[] + * @param numBands + * the num bands. + * @return the int[]. */ private static int[] createOffsets(int numBands) { int offsets[] = new int[numBands]; @@ -61,41 +63,48 @@ public final class BandedSampleModel extends ComponentSampleModel { } /** - * Instantiates a new BandedSampleModel object with the specified - * data type of samples, the width, height and bands number - * of image data. + * Instantiates a new BandedSampleModel object with the specified data type + * of samples, the width, height and bands number of image data. * - * @param dataType the data type of samples. - * @param w the width of image data. - * @param h the height of image data. - * @param numBands the number of bands. + * @param dataType + * the data type of samples. + * @param w + * the width of image data. + * @param h + * the height of image data. + * @param numBands + * the number of bands. */ public BandedSampleModel(int dataType, int w, int h, int numBands) { - this(dataType, w, h, w, BandedSampleModel.createIndices(numBands), - BandedSampleModel.createOffsets(numBands)); + this(dataType, w, h, w, BandedSampleModel.createIndices(numBands), BandedSampleModel + .createOffsets(numBands)); } /** - * Instantiates a new BandedSampleModel object with the specified - * data type of samples, the width, height and bands number - * of image data. + * Instantiates a new BandedSampleModel object with the specified data type + * of samples, the width, height and bands number of image data. * - * @param dataType the data type of samples. - * @param w the width of image data. - * @param h the height of image data. - * @param scanlineStride the scanline stride of the of the image data. - * @param bankIndices the array of the bank indecies. - * @param bandOffsets the array of the band offsets. + * @param dataType + * the data type of samples. + * @param w + * the width of image data. + * @param h + * the height of image data. + * @param scanlineStride + * the scanline stride of the of the image data. + * @param bankIndices + * the array of the bank indices. + * @param bandOffsets + * the array of the band offsets. */ - public BandedSampleModel(int dataType, int w, int h, int scanlineStride, - int bankIndices[], int bandOffsets[]) { + public BandedSampleModel(int dataType, int w, int h, int scanlineStride, int bankIndices[], + int bandOffsets[]) { super(dataType, w, h, 1, scanlineStride, bankIndices, bandOffsets); } @Override public SampleModel createCompatibleSampleModel(int w, int h) { - return new BandedSampleModel(dataType, w, h, w, bankIndices, - bandOffsets); + return new BandedSampleModel(dataType, w, h, w, bankIndices, bandOffsets); } @Override @@ -104,22 +113,22 @@ public final class BandedSampleModel extends ComponentSampleModel { int size = scanlineStride * height; switch (dataType) { - case DataBuffer.TYPE_BYTE: - data = new DataBufferByte(size, numBanks); - break; - case DataBuffer.TYPE_SHORT: - case DataBuffer.TYPE_USHORT: - data = new DataBufferShort(size, numBanks); - break; - case DataBuffer.TYPE_INT: - data = new DataBufferInt(size, numBanks); - break; - case DataBuffer.TYPE_FLOAT: - data = new DataBufferFloat(size, numBanks); - break; - case DataBuffer.TYPE_DOUBLE: - data = new DataBufferDouble(size, numBanks); - break; + case DataBuffer.TYPE_BYTE: + data = new DataBufferByte(size, numBanks); + break; + case DataBuffer.TYPE_SHORT: + case DataBuffer.TYPE_USHORT: + data = new DataBufferShort(size, numBanks); + break; + case DataBuffer.TYPE_INT: + data = new DataBufferInt(size, numBanks); + break; + case DataBuffer.TYPE_FLOAT: + data = new DataBufferFloat(size, numBanks); + break; + case DataBuffer.TYPE_DOUBLE: + data = new DataBufferDouble(size, numBanks); + break; } return data; @@ -129,7 +138,8 @@ public final class BandedSampleModel extends ComponentSampleModel { @Override public SampleModel createSubsetSampleModel(int[] bands) { if (bands.length > numBands) { - // awt.64=The number of the bands in the subset is greater than the number of bands in the sample model + // awt.64=The number of the bands in the subset is greater than the + // number of bands in the sample model throw new RasterFormatException(Messages.getString("awt.64")); //$NON-NLS-1$ } @@ -141,94 +151,93 @@ public final class BandedSampleModel extends ComponentSampleModel { offsets[i] = bandOffsets[bands[i]]; } - return new BandedSampleModel(dataType, width, height, scanlineStride, - indices, offsets); + return new BandedSampleModel(dataType, width, height, scanlineStride, indices, offsets); } @Override public Object getDataElements(int x, int y, Object obj, DataBuffer data) { switch (dataType) { - case DataBuffer.TYPE_BYTE: { - byte bdata[]; + case DataBuffer.TYPE_BYTE: { + byte bdata[]; - if (obj == null) { - bdata = new byte[numBands]; - } else { - bdata = (byte[]) obj; - } + if (obj == null) { + bdata = new byte[numBands]; + } else { + bdata = (byte[])obj; + } - for (int i = 0; i < numBands; i++) { - bdata[i] = (byte) getSample(x, y, i, data); - } + for (int i = 0; i < numBands; i++) { + bdata[i] = (byte)getSample(x, y, i, data); + } - obj = bdata; - break; - } - case DataBuffer.TYPE_SHORT: - case DataBuffer.TYPE_USHORT: { - short sdata[]; - - if (obj == null) { - sdata = new short[numBands]; - } else { - sdata = (short[]) obj; + obj = bdata; + break; } + case DataBuffer.TYPE_SHORT: + case DataBuffer.TYPE_USHORT: { + short sdata[]; + + if (obj == null) { + sdata = new short[numBands]; + } else { + sdata = (short[])obj; + } - for (int i = 0; i < numBands; i++) { - sdata[i] = (short) getSample(x, y, i, data); + for (int i = 0; i < numBands; i++) { + sdata[i] = (short)getSample(x, y, i, data); + } + + obj = sdata; + break; } + case DataBuffer.TYPE_INT: { + int idata[]; - obj = sdata; - break; - } - case DataBuffer.TYPE_INT: { - int idata[]; + if (obj == null) { + idata = new int[numBands]; + } else { + idata = (int[])obj; + } - if (obj == null) { - idata = new int[numBands]; - } else { - idata = (int[]) obj; - } + for (int i = 0; i < numBands; i++) { + idata[i] = getSample(x, y, i, data); + } - for (int i = 0; i < numBands; i++) { - idata[i] = getSample(x, y, i, data); + obj = idata; + break; } + case DataBuffer.TYPE_FLOAT: { + float fdata[]; - obj = idata; - break; - } - case DataBuffer.TYPE_FLOAT: { - float fdata[]; + if (obj == null) { + fdata = new float[numBands]; + } else { + fdata = (float[])obj; + } - if (obj == null) { - fdata = new float[numBands]; - } else { - fdata = (float[]) obj; - } + for (int i = 0; i < numBands; i++) { + fdata[i] = getSampleFloat(x, y, i, data); + } - for (int i = 0; i < numBands; i++) { - fdata[i] = getSampleFloat(x, y, i, data); + obj = fdata; + break; } + case DataBuffer.TYPE_DOUBLE: { + double ddata[]; - obj = fdata; - break; - } - case DataBuffer.TYPE_DOUBLE: { - double ddata[]; + if (obj == null) { + ddata = new double[numBands]; + } else { + ddata = (double[])obj; + } - if (obj == null) { - ddata = new double[numBands]; - } else { - ddata = (double[]) obj; - } + for (int i = 0; i < numBands; i++) { + ddata[i] = getSampleDouble(x, y, i, data); + } - for (int i = 0; i < numBands; i++) { - ddata[i] = getSampleDouble(x, y, i, data); + obj = ddata; + break; } - - obj = ddata; - break; - } } return obj; @@ -257,8 +266,7 @@ public final class BandedSampleModel extends ComponentSampleModel { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } - return data.getElem(bankIndices[b], y * scanlineStride + x + - bandOffsets[b]); + return data.getElem(bankIndices[b], y * scanlineStride + x + bandOffsets[b]); } @Override @@ -268,8 +276,7 @@ public final class BandedSampleModel extends ComponentSampleModel { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } - return data.getElemDouble(bankIndices[b], y * scanlineStride + x + - bandOffsets[b]); + return data.getElemDouble(bankIndices[b], y * scanlineStride + x + bandOffsets[b]); } @Override @@ -279,13 +286,11 @@ public final class BandedSampleModel extends ComponentSampleModel { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } - return data.getElemFloat(bankIndices[b], y * scanlineStride + x + - bandOffsets[b]); + return data.getElemFloat(bankIndices[b], y * scanlineStride + x + bandOffsets[b]); } @Override - public int[] getSamples(int x, int y, int w, int h, int b, int iArray[], - DataBuffer data) { + public int[] getSamples(int x, int y, int w, int h, int b, int iArray[], DataBuffer data) { int samples[]; int idx = 0; @@ -317,41 +322,41 @@ public final class BandedSampleModel extends ComponentSampleModel { @Override public void setDataElements(int x, int y, Object obj, DataBuffer data) { switch (dataType) { - case DataBuffer.TYPE_BYTE: - byte bdata[] = (byte[]) obj; - for (int i = 0; i < numBands; i++) { - setSample(x, y, i, bdata[i] & 0xff, data); - } - break; + case DataBuffer.TYPE_BYTE: + byte bdata[] = (byte[])obj; + for (int i = 0; i < numBands; i++) { + setSample(x, y, i, bdata[i] & 0xff, data); + } + break; - case DataBuffer.TYPE_SHORT: - case DataBuffer.TYPE_USHORT: - short sdata[] = (short[]) obj; - for (int i = 0; i < numBands; i++) { - setSample(x, y, i, sdata[i] & 0xffff, data); - } - break; + case DataBuffer.TYPE_SHORT: + case DataBuffer.TYPE_USHORT: + short sdata[] = (short[])obj; + for (int i = 0; i < numBands; i++) { + setSample(x, y, i, sdata[i] & 0xffff, data); + } + break; - case DataBuffer.TYPE_INT: - int idata[] = (int[]) obj; - for (int i = 0; i < numBands; i++) { - setSample(x, y, i, idata[i], data); - } - break; + case DataBuffer.TYPE_INT: + int idata[] = (int[])obj; + for (int i = 0; i < numBands; i++) { + setSample(x, y, i, idata[i], data); + } + break; - case DataBuffer.TYPE_FLOAT: - float fdata[] = (float[]) obj; - for (int i = 0; i < numBands; i++) { - setSample(x, y, i, fdata[i], data); - } - break; + case DataBuffer.TYPE_FLOAT: + float fdata[] = (float[])obj; + for (int i = 0; i < numBands; i++) { + setSample(x, y, i, fdata[i], data); + } + break; - case DataBuffer.TYPE_DOUBLE: - double ddata[] = (double[]) obj; - for (int i = 0; i < numBands; i++) { - setSample(x, y, i, ddata[i], data); - } - break; + case DataBuffer.TYPE_DOUBLE: + double ddata[] = (double[])obj; + for (int i = 0; i < numBands; i++) { + setSample(x, y, i, ddata[i], data); + } + break; } } @@ -363,8 +368,7 @@ public final class BandedSampleModel extends ComponentSampleModel { } @Override - public void setPixels(int x, int y, int w, int h, int iArray[], - DataBuffer data) { + public void setPixels(int x, int y, int w, int h, int iArray[], DataBuffer data) { int idx = 0; for (int i = y; i < y + h; i++) { @@ -383,8 +387,7 @@ public final class BandedSampleModel extends ComponentSampleModel { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } - data.setElemDouble(bankIndices[b], y * scanlineStride + x + - bandOffsets[b], s); + data.setElemDouble(bankIndices[b], y * scanlineStride + x + bandOffsets[b], s); } @Override @@ -394,8 +397,7 @@ public final class BandedSampleModel extends ComponentSampleModel { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } - data.setElemFloat(bankIndices[b], y * scanlineStride + x + - bandOffsets[b], s); + data.setElemFloat(bankIndices[b], y * scanlineStride + x + bandOffsets[b], s); } @Override @@ -405,13 +407,11 @@ public final class BandedSampleModel extends ComponentSampleModel { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } - data.setElem(bankIndices[b], y * scanlineStride + x + - bandOffsets[b], s); + data.setElem(bankIndices[b], y * scanlineStride + x + bandOffsets[b], s); } @Override - public void setSamples(int x, int y, int w, int h, int b, int iArray[], - DataBuffer data) { + public void setSamples(int x, int y, int w, int h, int b, int iArray[], DataBuffer data) { int idx = 0; for (int i = y; i < y + h; i++) { @@ -423,4 +423,3 @@ public final class BandedSampleModel extends ComponentSampleModel { } } - diff --git a/awt/java/awt/image/BufferStrategy.java b/awt/java/awt/image/BufferStrategy.java index e0508f0..3c8779d 100644 --- a/awt/java/awt/image/BufferStrategy.java +++ b/awt/java/awt/image/BufferStrategy.java @@ -18,35 +18,37 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.awt.BufferCapabilities; import java.awt.Graphics; /** - * The BufferStrategy abstract class provides an opportunity - * to organize the buffers for a Canvas or Window. The BufferStrategy - * implementation depends on hardware and software limitations. - * These limitations are detectible through the capabilities - * object which can be obtained by the GraphicsConfiguration of the Canvas - * or Window. + * The BufferStrategy abstract class provides an opportunity to organize the + * buffers for a Canvas or Window. The BufferStrategy implementation depends on + * hardware and software limitations. These limitations are detectable through + * the capabilities object which can be obtained by the GraphicsConfiguration of + * the Canvas or Window. + * + * @since Android 1.0 */ public abstract class BufferStrategy { /** - * Returns true if the drawing buffer was lost since the last call - * of getDrawGraphics. + * Returns true if the drawing buffer was lost since the last call of + * getDrawGraphics. * - * @return true if the drawing buffer was lost since the last call - * of getDrawGraphics, false otherwise. + * @return true if the drawing buffer was lost since the last call of + * getDrawGraphics, false otherwise. */ public abstract boolean contentsLost(); /** - * Returns true if the drawing buffer is restored from a lost state. + * Returns true if the drawing buffer is restored from a lost state. * - * @return true if the drawing buffer is restored from a lost state, - * false otherwise. + * @return true if the drawing buffer is restored from a lost state, false + * otherwise. */ public abstract boolean contentsRestored(); diff --git a/awt/java/awt/image/BufferedImage.java b/awt/java/awt/image/BufferedImage.java index d305d66..c9d58d9 100644 --- a/awt/java/awt/image/BufferedImage.java +++ b/awt/java/awt/image/BufferedImage.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import com.android.internal.awt.AndroidGraphics2D; @@ -39,184 +40,215 @@ import org.apache.harmony.awt.gl.Surface; import org.apache.harmony.awt.gl.image.BufferedImageSource; import org.apache.harmony.awt.internal.nls.Messages; - /** - * The BufferedImage class describes an Image which contains a buffer - * of image data and includes a ColorModel and a Raster for this data. - * This class provides methods for obtaining and setting the Raster - * and for manipulating the ColorModel parameters. + * The BufferedImage class describes an Image which contains a buffer of image + * data and includes a ColorModel and a Raster for this data. This class + * provides methods for obtaining and setting the Raster and for manipulating + * the ColorModel parameters. + * + * @since Android 1.0 */ -public class BufferedImage extends -Image implements WritableRenderedImage, Transparency{ +public class BufferedImage extends Image implements WritableRenderedImage, Transparency { - /** - * The Constant TYPE_CUSTOM indicates that Image type - * is unknown. + /** + * The Constant TYPE_CUSTOM indicates that Image type is unknown. */ public static final int TYPE_CUSTOM = 0; - /** - * The Constant TYPE_INT_RGB indicates an image with - * 8 bit RGB color components, it has a DirectColorModel - * without alpha. + /** + * The Constant TYPE_INT_RGB indicates an image with 8 bit RGB color + * components, it has a DirectColorModel without alpha. */ public static final int TYPE_INT_RGB = 1; - /** - * The Constant TYPE_INT_ARGB indicates an image with - * 8 bit RGBA color components, it has a DirectColorModel - * with alpha. + /** + * The Constant TYPE_INT_ARGB indicates an image with 8 bit RGBA color + * components, it has a DirectColorModel with alpha. */ public static final int TYPE_INT_ARGB = 2; - /** - * The Constant TYPE_INT_ARGB_PRE indicates an image with - * 8 bit RGBA color components, it has a DirectColorModel - * with alpha, and image data is premultiplied by alpha. + /** + * The Constant TYPE_INT_ARGB_PRE indicates an image with 8 bit RGBA color + * components, it has a DirectColorModel with alpha, and image data is + * pre-multiplied by alpha. */ public static final int TYPE_INT_ARGB_PRE = 3; - /** - * The Constant TYPE_INT_BGR indicates an image with - * 8 bit RGB color components, BGR color model - * (with the colors Blue, Green, and Red). There is no - * alpha. The image has a DirectColorModel. + /** + * The Constant TYPE_INT_BGR indicates an image with 8 bit RGB color + * components, BGR color model (with the colors Blue, Green, and Red). There + * is no alpha. The image has a DirectColorModel. */ public static final int TYPE_INT_BGR = 4; - /** - * The Constant TYPE_3BYTE_BGR indicates an image with - * 8 bit RGB color components, BGR color model - * (with the colors Blue, Green, and Red stored in 3 bytes). - * There is no alpha. The image has a ComponentColorModel. + /** + * The Constant TYPE_3BYTE_BGR indicates an image with 8 bit RGB color + * components, BGR color model (with the colors Blue, Green, and Red stored + * in 3 bytes). There is no alpha. The image has a ComponentColorModel. */ public static final int TYPE_3BYTE_BGR = 5; - /** - * The Constant TYPE_4BYTE_ABGR indicates an image with - * 8 bit RGBA color components stored in 3 bytes and 1 byte of alpha. - * It has a ComponentColorModel with alpha. + /** + * The Constant TYPE_4BYTE_ABGR indicates an image with 8 bit RGBA color + * components stored in 3 bytes and 1 byte of alpha. It has a + * ComponentColorModel with alpha. */ public static final int TYPE_4BYTE_ABGR = 6; - /** - * The Constant TYPE_4BYTE_ABGR_PRE indicates an image with - * 8 bit RGBA color components stored in 3 bytes and 1 byte - * for alpha. The image has a ComponentColorModel with alpha. - * The color data is premultiplied with alpha. + /** + * The Constant TYPE_4BYTE_ABGR_PRE indicates an image with 8 bit RGBA color + * components stored in 3 bytes and 1 byte for alpha. The image has a + * ComponentColorModel with alpha. The color data is pre-multiplied with + * alpha. */ public static final int TYPE_4BYTE_ABGR_PRE = 7; - /** - * The Constant TYPE_USHORT_565_RGB indicates an image with - * 565 RGB color components (5-bits red, 6-bits green, 5-bits blue) - * with no alpha. This image has a DirectColorModel. + /** + * The Constant TYPE_USHORT_565_RGB indicates an image with 565 RGB color + * components (5-bits red, 6-bits green, 5-bits blue) with no alpha. This + * image has a DirectColorModel. */ public static final int TYPE_USHORT_565_RGB = 8; - /** - * The Constant TYPE_USHORT_555_RGB indicates an image with - * 555 RGB color components (5-bits red, 5-bits green, 5-bits blue) - * with no alpha. This image has a DirectColorModel. + /** + * The Constant TYPE_USHORT_555_RGB indicates an image with 555 RGB color + * components (5-bits red, 5-bits green, 5-bits blue) with no alpha. This + * image has a DirectColorModel. */ public static final int TYPE_USHORT_555_RGB = 9; - /** - * The Constant TYPE_BYTE_GRAY indicates a unsigned byte - * image. This image has a ComponentColorModel with - * a CS_GRAY ColorSpace. + /** + * The Constant TYPE_BYTE_GRAY indicates a unsigned byte image. This image + * has a ComponentColorModel with a CS_GRAY ColorSpace. */ public static final int TYPE_BYTE_GRAY = 10; - /** - * The Constant TYPE_USHORT_GRAY indicates an unsigned short - * image. This image has a ComponentColorModel with a CS_GRAY - * ColorSpace. + /** + * The Constant TYPE_USHORT_GRAY indicates an unsigned short image. This + * image has a ComponentColorModel with a CS_GRAY ColorSpace. */ public static final int TYPE_USHORT_GRAY = 11; - /** - * The Constant TYPE_BYTE_BINARY indicates an opaque byte-packed - * 1, 2 or 4 bit image. The image has an IndexColorModel without - * alpha. + /** + * The Constant TYPE_BYTE_BINARY indicates an opaque byte-packed 1, 2 or 4 + * bit image. The image has an IndexColorModel without alpha. */ public static final int TYPE_BYTE_BINARY = 12; - /** - * The Constant TYPE_BYTE_INDEXED indicates an indexed byte image. + /** + * The Constant TYPE_BYTE_INDEXED indicates an indexed byte image. */ public static final int TYPE_BYTE_INDEXED = 13; - /** The Constant ALPHA_MASK. */ + /** + * The Constant ALPHA_MASK. + */ private static final int ALPHA_MASK = 0xff000000; - /** The Constant RED_MASK. */ + /** + * The Constant RED_MASK. + */ private static final int RED_MASK = 0x00ff0000; - /** The Constant GREEN_MASK. */ + /** + * The Constant GREEN_MASK. + */ private static final int GREEN_MASK = 0x0000ff00; - /** The Constant BLUE_MASK. */ + /** + * The Constant BLUE_MASK. + */ private static final int BLUE_MASK = 0x000000ff; - /** The Constant RED_BGR_MASK. */ + /** + * The Constant RED_BGR_MASK. + */ private static final int RED_BGR_MASK = 0x000000ff; - /** The Constant GREEN_BGR_MASK. */ + /** + * The Constant GREEN_BGR_MASK. + */ private static final int GREEN_BGR_MASK = 0x0000ff00; - /** The Constant BLUE_BGR_MASK. */ + /** + * The Constant BLUE_BGR_MASK. + */ private static final int BLUE_BGR_MASK = 0x00ff0000; - /** The Constant RED_565_MASK. */ + /** + * The Constant RED_565_MASK. + */ private static final int RED_565_MASK = 0xf800; - /** The Constant GREEN_565_MASK. */ + /** + * The Constant GREEN_565_MASK. + */ private static final int GREEN_565_MASK = 0x07e0; - /** The Constant BLUE_565_MASK. */ + /** + * The Constant BLUE_565_MASK. + */ private static final int BLUE_565_MASK = 0x001f; - /** The Constant RED_555_MASK. */ + /** + * The Constant RED_555_MASK. + */ private static final int RED_555_MASK = 0x7c00; - /** The Constant GREEN_555_MASK. */ + /** + * The Constant GREEN_555_MASK. + */ private static final int GREEN_555_MASK = 0x03e0; - /** The Constant BLUE_555_MASK. */ + /** + * The Constant BLUE_555_MASK. + */ private static final int BLUE_555_MASK = 0x001f; - /** The cm. */ + /** + * The cm. + */ private ColorModel cm; - /** The raster. */ + /** + * The raster. + */ private final WritableRaster raster; - /** The image type. */ + /** + * The image type. + */ private final int imageType; - /** The properties. */ + /** + * The properties. + */ private Hashtable<?, ?> properties; - // Surface of the Buffered Image - used for blitting one Buffered Image + // Surface of the Buffered Image - used for blitting one Buffered Image // on the other one or on the Component - /** The image surf. */ + /** + * The image surf. + */ private final ImageSurface imageSurf; /** - * Instantiates a new BufferedImage with the specified ColorModel, - * and WritableRaster objects. The Raster data can be - * be divided or multiplied by alpha. It depends on the - * alphaPremultiplied state in the ColorModel. + * Instantiates a new BufferedImage with the specified ColorModel, and + * WritableRaster objects. The Raster data can be be divided or multiplied + * by alpha. It depends on the alphaPremultiplied state in the ColorModel. * - * @param cm the ColorModel of the new image. - * @param raster the WritableRaster of the new image. - * @param isRasterPremultiplied if true the data of the specified - * Raster is premultiplied by alpha. - * @param properties the properties of new Image. - */ - public BufferedImage(ColorModel cm, WritableRaster raster, - boolean isRasterPremultiplied, Hashtable<?, ?> properties) { + * @param cm + * the ColorModel of the new image. + * @param raster + * the WritableRaster of the new image. + * @param isRasterPremultiplied + * if true the data of the specified Raster is pre-multiplied by + * alpha. + * @param properties + * the properties of new Image. + */ + public BufferedImage(ColorModel cm, WritableRaster raster, boolean isRasterPremultiplied, + Hashtable<?, ?> properties) { if (!cm.isCompatibleRaster(raster)) { // awt.4D=The raster is incompatible with this ColorModel throw new IllegalArgumentException(Messages.getString("awt.4D")); //$NON-NLS-1$ @@ -227,7 +259,7 @@ Image implements WritableRenderedImage, Transparency{ throw new IllegalArgumentException(Messages.getString("awt.228")); //$NON-NLS-1$ } - this.cm = cm; + this.cm = cm; this.raster = raster; this.properties = properties; @@ -240,47 +272,52 @@ Image implements WritableRenderedImage, Transparency{ /** * Instantiates a new BufferedImage with the specified width, height - * predefined image type (TYPE_BYTE_BINARY or TYPE_BYTE_INDEXED) - * and the specified IndexColorModel. + * predefined image type (TYPE_BYTE_BINARY or TYPE_BYTE_INDEXED) and the + * specified IndexColorModel. * - * @param width the width of new image. - * @param height the height of new image. - * @param imageType the predefined image type. - * @param cm the specified IndexColorModel. + * @param width + * the width of new image. + * @param height + * the height of new image. + * @param imageType + * the predefined image type. + * @param cm + * the specified IndexColorModel. */ - public BufferedImage(int width, int height, int imageType, - IndexColorModel cm) { + public BufferedImage(int width, int height, int imageType, IndexColorModel cm) { switch (imageType) { - case TYPE_BYTE_BINARY: - if (cm.hasAlpha()) { - // awt.227=This image type can't have alpha - throw new IllegalArgumentException(Messages.getString("awt.227")); //$NON-NLS-1$ - } - int pixel_bits = 0; - int mapSize = cm.getMapSize(); - if (mapSize <= 2) { - pixel_bits = 1; - } else if (mapSize <= 4) { - pixel_bits = 2; - } else if (mapSize <= 16) { - pixel_bits = 4; - } else { - // awt.221=The imageType is TYPE_BYTE_BINARY and the color map has more than 16 entries - throw new IllegalArgumentException(Messages.getString("awt.221")); //$NON-NLS-1$ - } + case TYPE_BYTE_BINARY: + if (cm.hasAlpha()) { + // awt.227=This image type can't have alpha + throw new IllegalArgumentException(Messages.getString("awt.227")); //$NON-NLS-1$ + } + int pixel_bits = 0; + int mapSize = cm.getMapSize(); + if (mapSize <= 2) { + pixel_bits = 1; + } else if (mapSize <= 4) { + pixel_bits = 2; + } else if (mapSize <= 16) { + pixel_bits = 4; + } else { + // awt.221=The imageType is TYPE_BYTE_BINARY and the color + // map has more than 16 entries + throw new IllegalArgumentException(Messages.getString("awt.221")); //$NON-NLS-1$ + } - raster = Raster.createPackedRaster(DataBuffer.TYPE_BYTE, width, - height, 1, pixel_bits, null); - break; + raster = Raster.createPackedRaster(DataBuffer.TYPE_BYTE, width, height, 1, + pixel_bits, null); + break; - case TYPE_BYTE_INDEXED: - raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, - width, height, 1, null); - break; + case TYPE_BYTE_INDEXED: + raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, width, height, 1, + null); + break; - default: - // awt.222=The imageType is not TYPE_BYTE_BINARY or TYPE_BYTE_INDEXED - throw new IllegalArgumentException(Messages.getString("awt.222")); //$NON-NLS-1$ + default: + // awt.222=The imageType is not TYPE_BYTE_BINARY or + // TYPE_BYTE_INDEXED + throw new IllegalArgumentException(Messages.getString("awt.222")); //$NON-NLS-1$ } @@ -296,187 +333,159 @@ Image implements WritableRenderedImage, Transparency{ } /** - * Instantiates a new BufferedImage with the specified width, height - * and predefined image type. + * Instantiates a new BufferedImage with the specified width, height and + * predefined image type. * - * @param width the width of new image. - * @param height the height of new image. - * @param imageType the predefined image type. + * @param width + * the width of new image. + * @param height + * the height of new image. + * @param imageType + * the predefined image type. */ public BufferedImage(int width, int height, int imageType) { switch (imageType) { - case TYPE_INT_RGB: - cm = new DirectColorModel(24, RED_MASK, GREEN_MASK, BLUE_MASK); - raster = cm.createCompatibleWritableRaster(width, height); - break; - - case TYPE_INT_ARGB: - cm = ColorModel.getRGBdefault(); - raster = cm.createCompatibleWritableRaster(width, height); - break; - - case TYPE_INT_ARGB_PRE: - cm = new DirectColorModel( - ColorSpace.getInstance(ColorSpace.CS_sRGB), - 32, - RED_MASK, - GREEN_MASK, - BLUE_MASK, - ALPHA_MASK, - true, - DataBuffer.TYPE_INT); - - raster = cm.createCompatibleWritableRaster(width, height); - break; - - case TYPE_INT_BGR: - cm = new DirectColorModel(24, - RED_BGR_MASK, - GREEN_BGR_MASK, - BLUE_BGR_MASK); - - raster = cm.createCompatibleWritableRaster(width, height); - break; - - case TYPE_3BYTE_BGR: { - int bits[] = { 8, 8, 8 }; - int bandOffsets[] = { 2, 1, 0 }; - cm = new ComponentColorModel( - ColorSpace.getInstance(ColorSpace.CS_sRGB), - bits, - false, - false, - Transparency.OPAQUE, - DataBuffer.TYPE_BYTE); - - raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, - width, height, width * 3, 3, bandOffsets, null); + case TYPE_INT_RGB: + cm = new DirectColorModel(24, RED_MASK, GREEN_MASK, BLUE_MASK); + raster = cm.createCompatibleWritableRaster(width, height); + break; + + case TYPE_INT_ARGB: + cm = ColorModel.getRGBdefault(); + raster = cm.createCompatibleWritableRaster(width, height); + break; + + case TYPE_INT_ARGB_PRE: + cm = new DirectColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), 32, RED_MASK, + GREEN_MASK, BLUE_MASK, ALPHA_MASK, true, DataBuffer.TYPE_INT); + + raster = cm.createCompatibleWritableRaster(width, height); + break; + + case TYPE_INT_BGR: + cm = new DirectColorModel(24, RED_BGR_MASK, GREEN_BGR_MASK, BLUE_BGR_MASK); + + raster = cm.createCompatibleWritableRaster(width, height); + break; + + case TYPE_3BYTE_BGR: { + int bits[] = { + 8, 8, 8 + }; + int bandOffsets[] = { + 2, 1, 0 + }; + cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), bits, + false, false, Transparency.OPAQUE, DataBuffer.TYPE_BYTE); + + raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, width, height, + width * 3, 3, bandOffsets, null); } - break; - - case TYPE_4BYTE_ABGR: { - int bits[] = { 8, 8, 8, 8 }; - int bandOffsets[] = { 3, 2, 1, 0 }; - cm = new ComponentColorModel( - ColorSpace.getInstance(ColorSpace.CS_sRGB), - bits, - true, - false, - Transparency.TRANSLUCENT, - DataBuffer.TYPE_BYTE); - - raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, - width, height, width * 4, 4, bandOffsets, null); + break; + + case TYPE_4BYTE_ABGR: { + int bits[] = { + 8, 8, 8, 8 + }; + int bandOffsets[] = { + 3, 2, 1, 0 + }; + cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), bits, + true, false, Transparency.TRANSLUCENT, DataBuffer.TYPE_BYTE); + + raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, width, height, + width * 4, 4, bandOffsets, null); } - break; - - case TYPE_4BYTE_ABGR_PRE: { - int bits[] = { 8, 8, 8, 8 }; - int bandOffsets[] = { 3, 2, 1, 0 }; - cm = new ComponentColorModel( - ColorSpace.getInstance(ColorSpace.CS_sRGB), - bits, - true, - true, - Transparency.TRANSLUCENT, DataBuffer.TYPE_BYTE); - - raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, - width, height, width * 4, 4, bandOffsets, null); + break; + + case TYPE_4BYTE_ABGR_PRE: { + int bits[] = { + 8, 8, 8, 8 + }; + int bandOffsets[] = { + 3, 2, 1, 0 + }; + cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), bits, + true, true, Transparency.TRANSLUCENT, DataBuffer.TYPE_BYTE); + + raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, width, height, + width * 4, 4, bandOffsets, null); } - break; - - case TYPE_USHORT_565_RGB: - cm = new DirectColorModel( - ColorSpace.getInstance(ColorSpace.CS_sRGB), - 16, - RED_565_MASK, - GREEN_565_MASK, - BLUE_565_MASK, - 0, - false, - DataBuffer.TYPE_USHORT); - - raster = cm.createCompatibleWritableRaster(width, height); - break; - - case TYPE_USHORT_555_RGB: - cm = new DirectColorModel( - ColorSpace.getInstance(ColorSpace.CS_sRGB), - 15, - RED_555_MASK, - GREEN_555_MASK, - BLUE_555_MASK, - 0, - false, - DataBuffer.TYPE_USHORT); - - raster = cm.createCompatibleWritableRaster(width, height); - break; - - case TYPE_BYTE_GRAY: { - int bits[] = { 8 }; - cm = new ComponentColorModel( - ColorSpace.getInstance(ColorSpace.CS_GRAY), - bits, - false, - false, - Transparency.OPAQUE, - DataBuffer.TYPE_BYTE); - - raster = cm.createCompatibleWritableRaster(width, height); + break; + + case TYPE_USHORT_565_RGB: + cm = new DirectColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), 16, + RED_565_MASK, GREEN_565_MASK, BLUE_565_MASK, 0, false, + DataBuffer.TYPE_USHORT); + + raster = cm.createCompatibleWritableRaster(width, height); + break; + + case TYPE_USHORT_555_RGB: + cm = new DirectColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), 15, + RED_555_MASK, GREEN_555_MASK, BLUE_555_MASK, 0, false, + DataBuffer.TYPE_USHORT); + + raster = cm.createCompatibleWritableRaster(width, height); + break; + + case TYPE_BYTE_GRAY: { + int bits[] = { + 8 + }; + cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_GRAY), bits, + false, false, Transparency.OPAQUE, DataBuffer.TYPE_BYTE); + + raster = cm.createCompatibleWritableRaster(width, height); } - break; - - case TYPE_USHORT_GRAY: { - int bits[] = { 16 }; - cm = new ComponentColorModel( - ColorSpace.getInstance(ColorSpace.CS_GRAY), - bits, - false, - false, - Transparency.OPAQUE, - DataBuffer.TYPE_USHORT); - raster = cm.createCompatibleWritableRaster(width, height); + break; + + case TYPE_USHORT_GRAY: { + int bits[] = { + 16 + }; + cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_GRAY), bits, + false, false, Transparency.OPAQUE, DataBuffer.TYPE_USHORT); + raster = cm.createCompatibleWritableRaster(width, height); } - break; + break; - case TYPE_BYTE_BINARY: { - int colorMap[] = { 0, 0xffffff }; - cm = new IndexColorModel(1, 2, colorMap, 0, false, -1, - DataBuffer.TYPE_BYTE); + case TYPE_BYTE_BINARY: { + int colorMap[] = { + 0, 0xffffff + }; + cm = new IndexColorModel(1, 2, colorMap, 0, false, -1, DataBuffer.TYPE_BYTE); - raster = Raster.createPackedRaster(DataBuffer.TYPE_BYTE, width, - height, 1, 1, null); + raster = Raster.createPackedRaster(DataBuffer.TYPE_BYTE, width, height, 1, 1, null); } - break; - - case TYPE_BYTE_INDEXED: { - int colorMap[] = new int[256]; - int i = 0; - for (int r = 0; r < 256; r += 51) { - for (int g = 0; g < 256; g += 51) { - for (int b = 0; b < 256; b += 51) { - colorMap[i] = (r << 16) | (g << 8) | b; - i++; + break; + + case TYPE_BYTE_INDEXED: { + int colorMap[] = new int[256]; + int i = 0; + for (int r = 0; r < 256; r += 51) { + for (int g = 0; g < 256; g += 51) { + for (int b = 0; b < 256; b += 51) { + colorMap[i] = (r << 16) | (g << 8) | b; + i++; + } } } - } - int gray = 0x12; - for (; i < 256; i++, gray += 6) { - colorMap[i] = (gray << 16) | (gray << 8) | gray; - } - cm = new IndexColorModel(8, 256, colorMap, 0, false, -1, - DataBuffer.TYPE_BYTE); - raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, - width, height, 1, null); + int gray = 0x12; + for (; i < 256; i++, gray += 6) { + colorMap[i] = (gray << 16) | (gray << 8) | gray; + } + cm = new IndexColorModel(8, 256, colorMap, 0, false, -1, DataBuffer.TYPE_BYTE); + raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, width, height, 1, + null); } - break; - default: - // awt.224=Unknown image type - throw new IllegalArgumentException(Messages.getString("awt.224")); //$NON-NLS-1$ + break; + default: + // awt.224=Unknown image type + throw new IllegalArgumentException(Messages.getString("awt.224")); //$NON-NLS-1$ } this.imageType = imageType; imageSurf = createImageSurface(imageType); @@ -488,7 +497,7 @@ Image implements WritableRenderedImage, Transparency{ } public Object getProperty(String name) { - if(name == null) { + if (name == null) { // awt.225=Property name is null throw new NullPointerException(Messages.getString("awt.225")); //$NON-NLS-1$ } @@ -504,9 +513,8 @@ Image implements WritableRenderedImage, Transparency{ public WritableRaster copyData(WritableRaster outRaster) { if (outRaster == null) { - outRaster = Raster.createWritableRaster(raster.getSampleModel(), - new Point(raster.getSampleModelTranslateX(), - raster.getSampleModelTranslateY())); + outRaster = Raster.createWritableRaster(raster.getSampleModel(), new Point(raster + .getSampleModelTranslateX(), raster.getSampleModelTranslateY())); } int w = outRaster.getWidth(); @@ -530,8 +538,7 @@ Image implements WritableRenderedImage, Transparency{ SampleModel sm = raster.getSampleModel(); SampleModel nsm = sm.createCompatibleSampleModel(w, h); - WritableRaster outr = Raster.createWritableRaster(nsm, - rect.getLocation()); + WritableRaster outr = Raster.createWritableRaster(nsm, rect.getLocation()); Object data = null; data = raster.getDataElements(minX, minY, w, h, data); @@ -550,7 +557,7 @@ Image implements WritableRenderedImage, Transparency{ Vector<String> v = new Vector<String>(); for (Enumeration<?> e = properties.keys(); e.hasMoreElements();) { try { - v.add((String) e.nextElement()); + v.add((String)e.nextElement()); } catch (ClassCastException ex) { } } @@ -573,7 +580,7 @@ Image implements WritableRenderedImage, Transparency{ @Override public String toString() { return "BufferedImage@" + Integer.toHexString(hashCode()) + //$NON-NLS-1$ - ": type = " + imageType + " " + cm + " " + raster; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + ": type = " + imageType + " " + cm + " " + raster; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } public WritableRaster getWritableTile(int tileX, int tileY) { @@ -590,13 +597,12 @@ Image implements WritableRenderedImage, Transparency{ } /** - * Gets a WritableRaster object which contains the alpha channel of - * BufferedImage object with ColorModel objects that supports - * a separate alpha channel such as ComponentColorModel - * or DirectColorModel. + * Gets a WritableRaster object which contains the alpha channel of + * BufferedImage object with ColorModel objects that supports a separate + * alpha channel such as ComponentColorModel or DirectColorModel. * - * @return the WritableRaster object which contains the alpha - * channel of this BufferedImage. + * @return the WritableRaster object which contains the alpha channel of + * this BufferedImage. */ public WritableRaster getAlphaRaster() { return cm.getAlphaRaster(raster); @@ -643,10 +649,8 @@ Image implements WritableRenderedImage, Transparency{ int minX = raster.getMinX(); int minY = raster.getMinY(); - WritableRaster outr = Raster.createWritableRaster( - raster.getSampleModel(), - new Point(raster.getSampleModelTranslateX(), - raster.getSampleModelTranslateY())); + WritableRaster outr = Raster.createWritableRaster(raster.getSampleModel(), new Point(raster + .getSampleModelTranslateX(), raster.getSampleModelTranslateY())); Object data = null; @@ -678,11 +682,14 @@ Image implements WritableRenderedImage, Transparency{ /** * Gets the rectangular area of this BufferedImage as a subimage. * - * @param x the x coordinate. - * @param y the y coordinate. - * @param w the width of the subimage. - * @param h the height of the subimage. - * + * @param x + * the x coordinate. + * @param y + * the y coordinate. + * @param w + * the width of the subimage. + * @param h + * the height of the subimage. * @return the BufferedImage. */ public BufferedImage getSubimage(int x, int y, int w, int h) { @@ -697,18 +704,17 @@ Image implements WritableRenderedImage, Transparency{ } /** - * Creates the Graphics2D object which allows to draw into - * this BufferedImage. + * Creates the Graphics2D object which allows to draw into this + * BufferedImage. * * @return the graphics2D object. */ public Graphics2D createGraphics() { - GraphicsEnvironment ge = - GraphicsEnvironment.getLocalGraphicsEnvironment(); - //return ge.createGraphics(this); - //???AWT hack, FIXME - //return AndroidGraphics2D.getInstance(); - //throw new RuntimeException("Not implemented!"); + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); + // return ge.createGraphics(this); + // ???AWT hack, FIXME + // return AndroidGraphics2D.getInstance(); + // throw new RuntimeException("Not implemented!"); return null; } @@ -718,38 +724,44 @@ Image implements WritableRenderedImage, Transparency{ } /** - * Coerces the data to achieve the state which is specified by - * the isAlphaPremultiplied variable. + * Coerces the data to achieve the state which is specified by the + * isAlphaPremultiplied variable. * - * @param isAlphaPremultiplied the is alpha premultiplied state. + * @param isAlphaPremultiplied + * the is alpha pre-multiplied state. */ public void coerceData(boolean isAlphaPremultiplied) { - if (cm.hasAlpha() && - cm.isAlphaPremultiplied() != isAlphaPremultiplied) { + if (cm.hasAlpha() && cm.isAlphaPremultiplied() != isAlphaPremultiplied) { cm = cm.coerceData(raster, isAlphaPremultiplied); } } /** - * Gets an array of colors in the TYPE_INT_ARGB color model and - * default sRGB colorspace of the specified area of this - * BufferedImage. The result array is composed by the following - * algirithm: - * <p> - * pixel = rgbArray[offset + (y-startY)*scansize + (x-startX)] - * - * @param startX the start X area coordinate. - * @param startY the start Y area coordinate. - * @param w the width of the area. - * @param h the height of the area. - * @param rgbArray the result array will be stored to this array. - * @param offset the offset of the rgbArray array. - * @param scansize the scanline stride for the rgbArray. + * Gets an array of colors in the TYPE_INT_ARGB color model and default sRGB + * color space of the specified area of this BufferedImage. The result array + * is composed by the following algorithm: + * <p> + * pixel = rgbArray[offset + (y-startY)*scansize + (x-startX)] + * </p> * + * @param startX + * the start X area coordinate. + * @param startY + * the start Y area coordinate. + * @param w + * the width of the area. + * @param h + * the height of the area. + * @param rgbArray + * the result array will be stored to this array. + * @param offset + * the offset of the rgbArray array. + * @param scansize + * the scanline stride for the rgbArray. * @return an array of colors for the specified area. */ - public int[] getRGB(int startX, int startY, int w, int h, int[] rgbArray, - int offset, int scansize) { + public int[] getRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, + int scansize) { if (rgbArray == null) { rgbArray = new int[offset + h * scansize]; } @@ -765,38 +777,47 @@ Image implements WritableRenderedImage, Transparency{ } /** - * Sets RGB values from the specified array to the specified - * BufferedImage area. The pixels are in the default RGB color model - * (TYPE_INT_ARGB) and default sRGB color space. + * Sets RGB values from the specified array to the specified BufferedImage + * area. The pixels are in the default RGB color model (TYPE_INT_ARGB) and + * default sRGB color space. * - * @param startX the start X coordinate. - * @param startY the start Y coordinate. - * @param w the width of the BufferedImage area. - * @param h the height of the BufferedImage area. - * @param rgbArray the array of RGB values. - * @param offset the offset of the rgbArray array. - * @param scansize the scanline stride for the rgbArray. - */ - public void setRGB(int startX, int startY, int w, int h, int[] rgbArray, - int offset, int scansize) { + * @param startX + * the start X coordinate. + * @param startY + * the start Y coordinate. + * @param w + * the width of the BufferedImage area. + * @param h + * the height of the BufferedImage area. + * @param rgbArray + * the array of RGB values. + * @param offset + * the offset of the rgbArray array. + * @param scansize + * the scanline stride for the rgbArray. + */ + public void setRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, + int scansize) { int off = offset; for (int y = startY; y < startY + h; y++, off += scansize) { int i = off; for (int x = startX; x < startX + w; x++, i++) { - raster.setDataElements(x, y, - cm.getDataElements(rgbArray[i], null)); + raster.setDataElements(x, y, cm.getDataElements(rgbArray[i], null)); } } } /** - * Sets a the specified RGB value to the specified pixel of - * this BufferedImage. The pixel should be in the default - * RGB color model (TYPE_INT_ARGB) and default sRGB color space. - * - * @param x the X coordinate of the pixel. - * @param y the Y coordinate of the pixel. - * @param rgb the RGB value to be set. + * Sets a the specified RGB value to the specified pixel of this + * BufferedImage. The pixel should be in the default RGB color model + * (TYPE_INT_ARGB) and default sRGB color space. + * + * @param x + * the X coordinate of the pixel. + * @param y + * the Y coordinate of the pixel. + * @param rgb + * the RGB value to be set. */ public synchronized void setRGB(int x, int y, int rgb) { raster.setDataElements(x, y, cm.getDataElements(rgb, null)); @@ -814,25 +835,26 @@ Image implements WritableRenderedImage, Transparency{ } /** - * Gets a color in the TYPE_INT_ARGB color model and default - * sRGB colorspace of the specified pixel. - * - * @param x the X coordinate of the pixel. - * @param y the Y coordinate of the pixel. + * Gets a color in the TYPE_INT_ARGB color model and default sRGB color + * space of the specified pixel. * - * @return the color of the specified pixel in the TYPE_INT_ARGB - * color model and default sRGB colorspace. + * @param x + * the X coordinate of the pixel. + * @param y + * the Y coordinate of the pixel. + * @return the color of the specified pixel in the TYPE_INT_ARGB color model + * and default sRGB color space. */ public int getRGB(int x, int y) { return cm.getRGB(raster.getDataElements(x, y, null)); } /** - * Returnes true if alpha is premultiplied, - * false if alpha is not premultiplied or there is no alpha. + * Returns true if alpha is pre-multiplied, false if alpha is not + * pre-multiplied or there is no alpha. * - * @return true if alpha is premultiplied, - * false if alpha is not premultiplied or there is no alpha. + * @return true if alpha is pre-multiplied, false if alpha is not + * pre-multiplied or there is no alpha. */ public boolean isAlphaPremultiplied() { return cm.isAlphaPremultiplied(); @@ -907,9 +929,9 @@ Image implements WritableRenderedImage, Transparency{ /** * Creates the image surface. * - * @param type the type - * - * @return the image surface + * @param type + * the type. + * @return the image surface. */ private ImageSurface createImageSurface(int type) { return new ImageSurface(getColorModel(), getRaster(), type); @@ -918,7 +940,7 @@ Image implements WritableRenderedImage, Transparency{ /** * Gets the image surface. * - * @return the image surface + * @return the image surface. */ ImageSurface getImageSurface() { return imageSurf; @@ -928,4 +950,3 @@ Image implements WritableRenderedImage, Transparency{ return cm.getTransparency(); } } - diff --git a/awt/java/awt/image/BufferedImageFilter.java b/awt/java/awt/image/BufferedImageFilter.java index 44b3c2e..8b6fcf0 100644 --- a/awt/java/awt/image/BufferedImageFilter.java +++ b/awt/java/awt/image/BufferedImageFilter.java @@ -27,49 +27,72 @@ import org.apache.harmony.awt.gl.AwtImageBackdoorAccessor; import org.apache.harmony.awt.internal.nls.Messages; /** - * The BufferedImageFilter class provides filtering operations to - * the BufferedImage objects using operators which implement - * BufferedImageOp interface. + * The BufferedImageFilter class provides filtering operations to the + * BufferedImage objects using operators which implement BufferedImageOp + * interface. + * + * @since Android 1.0 */ public class BufferedImageFilter extends ImageFilter implements Cloneable { - - /** The Constant accessor. */ + + /** + * The Constant accessor. + */ private static final AwtImageBackdoorAccessor accessor = AwtImageBackdoorAccessor.getInstance(); - /** The op. */ + /** + * The op. + */ private BufferedImageOp op; - /** The raster. */ + /** + * The raster. + */ private WritableRaster raster; - /** The i data. */ + /** + * The i data. + */ private int iData[]; - - /** The b data. */ + + /** + * The b data. + */ private byte bData[]; - /** The width. */ + /** + * The width. + */ private int width; - - /** The height. */ + + /** + * The height. + */ private int height; - /** The cm. */ + /** + * The cm. + */ private ColorModel cm; - /** The forced rgb. */ + /** + * The forced rgb. + */ private boolean forcedRGB = false; - - /** The transfer type. */ + + /** + * The transfer type. + */ private int transferType = DataBuffer.TYPE_UNDEFINED; /** - * Instantiates a new BufferedImageFilter with the specified - * BufferedImageOp operator. + * Instantiates a new BufferedImageFilter with the specified BufferedImageOp + * operator. * - * @param op the specified BufferedImageOp operator. - * - * @throws NullPointerException if BufferedImageOp is null. + * @param op + * the specified BufferedImageOp operator. + * @throws NullPointerException + * if BufferedImageOp is null. */ public BufferedImageFilter(BufferedImageOp op) { if (op == null) { @@ -79,11 +102,11 @@ public class BufferedImageFilter extends ImageFilter implements Cloneable { } /** - * Gets the BufferedImageOp operator associated with this + * Gets the BufferedImageOp operator associated with this * BufferedImageFilter object. * - * @return the BufferedImageOp associated with this - * BufferedImageFilter object. + * @return the BufferedImageOp associated with this BufferedImageFilter + * object. */ public BufferedImageOp getBufferedImageOp() { return op; @@ -110,22 +133,14 @@ public class BufferedImageFilter extends ImageFilter implements Cloneable { } @Override - public void setPixels( - int x, int y, int - w, int h, - ColorModel model, byte[] pixels, - int off, int scansize - ) { + public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, + int scansize) { setPixels(x, y, w, h, model, pixels, off, scansize, true); } @Override - public void setPixels( - int x, int y, - int w, int h, - ColorModel model, int[] pixels, - int off, int scansize - ) { + public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, + int scansize) { setPixels(x, y, w, h, model, pixels, off, scansize, false); } @@ -163,22 +178,27 @@ public class BufferedImageFilter extends ImageFilter implements Cloneable { /** * Sets the pixels. * - * @param x the x - * @param y the y - * @param w the w - * @param h the h - * @param model the model - * @param pixels the pixels - * @param off the off - * @param scansize the scansize - * @param isByteData the is byte data + * @param x + * the x. + * @param y + * the y. + * @param w + * the w. + * @param h + * the h. + * @param model + * the model. + * @param pixels + * the pixels. + * @param off + * the off. + * @param scansize + * the scansize. + * @param isByteData + * the is byte data. */ - private void setPixels( - int x, int y, - int w, int h, - ColorModel model, Object pixels, - int off, int scansize, boolean isByteData - ) { + private void setPixels(int x, int y, int w, int h, ColorModel model, Object pixels, int off, + int scansize, boolean isByteData) { // Check bounds // Need to copy only the pixels that will fit into the destination area if (x < 0) { @@ -216,23 +236,24 @@ public class BufferedImageFilter extends ImageFilter implements Cloneable { boolean canArraycopy; // Process pixels - switch(transferType) { + switch (transferType) { case DataBuffer.TYPE_UNDEFINED: { if (isByteData) { transferType = DataBuffer.TYPE_BYTE; createRaster(transferType); - //bData = new byte[width*height]; + // bData = new byte[width*height]; canArraycopy = !forcedRGB; break; } transferType = DataBuffer.TYPE_INT; createRaster(transferType); - //iData = new int[width*height]; + // iData = new int[width*height]; canArraycopy = !forcedRGB || model.equals(ColorModel.getRGBdefault()); break; } // And proceed to copy the pixels case DataBuffer.TYPE_INT: { - if (isByteData) { // There are int data already but the new data are bytes + if (isByteData) { // There are int data already but the new data + // are bytes forceRGB(); canArraycopy = false; break; @@ -250,7 +271,8 @@ public class BufferedImageFilter extends ImageFilter implements Cloneable { // RGB conversion canArraycopy = false; break; - } default: { + } + default: { throw new IllegalStateException(Messages.getString("awt.06")); //$NON-NLS-1$ } } @@ -260,7 +282,7 @@ public class BufferedImageFilter extends ImageFilter implements Cloneable { int dstOffset = x + y * width; if (canArraycopy) { - Object dstArray = isByteData ? (Object) bData : (Object) iData; + Object dstArray = isByteData ? (Object)bData : (Object)iData; for (; off < maxOffset; off += scansize, dstOffset += width) { System.arraycopy(pixels, off, dstArray, dstOffset, w); } @@ -271,11 +293,8 @@ public class BufferedImageFilter extends ImageFilter implements Cloneable { int dstPos = dstOffset; int maxDstPos = dstOffset + w; for (; dstPos < maxDstPos; dstPos++, srcPos++) { - iData[dstPos] = model.getRGB( - isByteData ? - ((byte[])pixels)[srcPos] : - ((int[])pixels)[srcPos] - ); + iData[dstPos] = model.getRGB(isByteData ? ((byte[])pixels)[srcPos] + : ((int[])pixels)[srcPos]); } } } @@ -287,22 +306,24 @@ public class BufferedImageFilter extends ImageFilter implements Cloneable { private void forceRGB() { if (!forcedRGB) { forcedRGB = true; - int size = width*height; + int size = width * height; int rgbData[] = new int[size]; if (bData != null) { - for (int i=0; i<size; i++) { + for (int i = 0; i < size; i++) { rgbData[i] = cm.getRGB(bData[i]); } } else if (iData != null) { - for (int i=0; i<size; i++) { + for (int i = 0; i < size; i++) { rgbData[i] = cm.getRGB(iData[i]); } } cm = ColorModel.getRGBdefault(); DataBufferInt db = new DataBufferInt(rgbData, size); - int masks[] = new int[] {0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000}; + int masks[] = new int[] { + 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 + }; raster = Raster.createPackedRaster(db, width, height, width, masks, null); iData = accessor.getDataInt(db); bData = null; @@ -327,11 +348,12 @@ public class BufferedImageFilter extends ImageFilter implements Cloneable { /** * Creates the raster. * - * @param dataType the data type + * @param dataType + * the data type. */ private void createRaster(int dataType) { boolean createdValidBuffer = false; - try{ + try { raster = cm.createCompatibleWritableRaster(width, height); int rasterType = raster.getDataBuffer().getDataType(); if (rasterType == dataType) { @@ -354,13 +376,13 @@ public class BufferedImageFilter extends ImageFilter implements Cloneable { createdValidBuffer = false; } - if(cm == ColorModel.getRGBdefault()){ + if (cm == ColorModel.getRGBdefault()) { forcedRGB = true; } } else { createdValidBuffer = false; } - } catch(Exception e) { + } catch (Exception e) { createdValidBuffer = false; } diff --git a/awt/java/awt/image/BufferedImageOp.java b/awt/java/awt/image/BufferedImageOp.java index 85b9f4e..883a39d 100644 --- a/awt/java/awt/image/BufferedImageOp.java +++ b/awt/java/awt/image/BufferedImageOp.java @@ -18,6 +18,7 @@ * @author Alexey A. Petrenko * @version $Revision$ */ + package java.awt.image; import java.awt.RenderingHints; @@ -27,32 +28,36 @@ import java.awt.geom.Rectangle2D; /** * The BufferedImageOp interface provides methods for performing transformations * from source data to destination data for BufferedImage objects. An object - * implementing this interface can be passed into a BufferedImageFilter - * to operate on a BufferedImage. + * implementing this interface can be passed into a BufferedImageFilter to + * operate on a BufferedImage. + * + * @since Android 1.0 */ public interface BufferedImageOp { - + /** * Creates a destination image with the specified BufferedImage and - * ColorModel; this destination image is empty and has the correct size - * and number of bands. - * - * @param src the source BufferedImage. - * @param destCM the destination ColorModel. + * ColorModel; this destination image is empty and has the correct size and + * number of bands. * + * @param src + * the source BufferedImage. + * @param destCM + * the destination ColorModel. * @return the BufferedImage. */ public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM); /** - * Performs a filter operation on the source BufferedImage and stores - * the resulting BufferedImage to the destination BufferedImage. If - * the destination BufferedImage is null, a BufferedImage with an - * appropriate ColorModel is created. - * - * @param src the source BufferedImage. - * @param dest the destination BufferedImage, where the result is stored. + * Performs a filter operation on the source BufferedImage and stores the + * resulting BufferedImage to the destination BufferedImage. If the + * destination BufferedImage is null, a BufferedImage with an appropriate + * ColorModel is created. * + * @param src + * the source BufferedImage. + * @param dest + * the destination BufferedImage, where the result is stored. * @return the filtered BufferedImage. */ public BufferedImage filter(BufferedImage src, BufferedImage dest); @@ -60,19 +65,20 @@ public interface BufferedImageOp { /** * Gets the bounds of filtered image. * - * @param src the source BufferedImage to be filtered. - * + * @param src + * the source BufferedImage to be filtered. * @return the rectangle bounds of filtered image. */ public Rectangle2D getBounds2D(BufferedImage src); /** - * Gets the point of the destination image which corresponds - * to the specified point in the source image. - * - * @param srcPt the point of the source image. - * @param dstPt the point where the result will be stored. + * Gets the point of the destination image which corresponds to the + * specified point in the source image. * + * @param srcPt + * the point of the source image. + * @param dstPt + * the point where the result will be stored. * @return the destination point. */ public Point2D getPoint2D(Point2D srcPt, Point2D dstPt); diff --git a/awt/java/awt/image/ByteLookupTable.java b/awt/java/awt/image/ByteLookupTable.java index 043b533..27cee30 100644 --- a/awt/java/awt/image/ByteLookupTable.java +++ b/awt/java/awt/image/ByteLookupTable.java @@ -24,25 +24,29 @@ package java.awt.image; /** - * The ByteLookupTable class provides functionality for lookup operations, - * and is defined by an input byte array for bands or components of - * image and an offset value. - * The offset value will be subtracted from the input values before - * indexing the input arrays. The output of a lookup operation is + * The ByteLookupTable class provides functionality for lookup operations, and + * is defined by an input byte array for bands or components of image and an + * offset value. The offset value will be subtracted from the input values + * before indexing the input arrays. The output of a lookup operation is * represented as an array of unsigned bytes. + * + * @since Android 1.0 */ public class ByteLookupTable extends LookupTable { - - /** The data. */ + + /** + * The data. + */ private byte data[][]; - + /** - * Instantiates a new ByteLookupTable with the specified offset value - * and the specified byte array which represents the lookup table for - * all bands. + * Instantiates a new ByteLookupTable with the specified offset value and + * the specified byte array which represents the lookup table for all bands. * - * @param offset the offset value. - * @param data the data array of bytes. + * @param offset + * the offset value. + * @param data + * the data array of bytes. */ public ByteLookupTable(int offset, byte[] data) { super(offset, 1); @@ -54,12 +58,14 @@ public class ByteLookupTable extends LookupTable { } /** - * Instantiates a new ByteLookupTable with the specified offset value - * and the specified byte array of arrays which represents the lookup table - * for each band. + * Instantiates a new ByteLookupTable with the specified offset value and + * the specified byte array of arrays which represents the lookup table for + * each band. * - * @param offset the offset value. - * @param data the data array of bytes array for each band. + * @param offset + * the offset value. + * @param data + * the data array of bytes array for each band. */ public ByteLookupTable(int offset, byte[][] data) { super(offset, data.length); @@ -71,9 +77,9 @@ public class ByteLookupTable extends LookupTable { } /** - * Gets the lookup table of this ByteLookupTable object. If - * this ByteLookupTable object has one byte array for all bands, - * the returned array length is one. + * Gets the lookup table of this ByteLookupTable object. If this + * ByteLookupTable object has one byte array for all bands, the returned + * array length is one. * * @return the lookup table of this ByteLookupTable object. */ @@ -91,11 +97,11 @@ public class ByteLookupTable extends LookupTable { int offset = getOffset(); if (getNumComponents() == 1) { for (int i = 0; i < src.length; i++) { - dst[i] = data[0][src[i]-offset]; + dst[i] = data[0][src[i] - offset]; } } else { for (int i = 0; i < getNumComponents(); i++) { - dst[i] = data[i][src[i]-offset]; + dst[i] = data[i][src[i] - offset]; } } @@ -103,14 +109,14 @@ public class ByteLookupTable extends LookupTable { } /** - * Returns a byte array which contains samples of the specified - * pixel which is translated with the lookup table of this - * ByteLookupTable object. The resulted array is stored to - * the dst array. - * - * @param src the source array. - * @param dst the destination array where the result can be stored. + * Returns a byte array which contains samples of the specified pixel which + * is translated with the lookup table of this ByteLookupTable object. The + * resulted array is stored to the dst array. * + * @param src + * the source array. + * @param dst + * the destination array where the result can be stored. * @return the byte array of translated samples of a pixel. */ public byte[] lookupPixel(byte[] src, byte[] dst) { @@ -121,11 +127,11 @@ public class ByteLookupTable extends LookupTable { int offset = getOffset(); if (getNumComponents() == 1) { for (int i = 0; i < src.length; i++) { - dst[i] = data[0][src[i]-offset]; + dst[i] = data[0][src[i] - offset]; } } else { for (int i = 0; i < getNumComponents(); i++) { - dst[i] = data[i][src[i]-offset]; + dst[i] = data[i][src[i] - offset]; } } diff --git a/awt/java/awt/image/ColorConvertOp.java b/awt/java/awt/image/ColorConvertOp.java index 6d503d7..1a1700b 100644 --- a/awt/java/awt/image/ColorConvertOp.java +++ b/awt/java/awt/image/ColorConvertOp.java @@ -17,9 +17,9 @@ /** * @author Oleg V. Khaschansky * @version $Revision$ - */ -package java.awt.image; + */ +package java.awt.image; import java.awt.Graphics2D; import java.awt.Point; @@ -37,76 +37,94 @@ import org.apache.harmony.awt.gl.color.ICC_Transform; import org.apache.harmony.awt.internal.nls.Messages; /** - * The ColorConvertOp class converts the pixels of the data in the - * source image with the specified ColorSpace objects or an array - * of ICC_Profile objects. The result pixels are scaled to the precision - * of the destination image. + * The ColorConvertOp class converts the pixels of the data in the source image + * with the specified ColorSpace objects or an array of ICC_Profile objects. The + * result pixels are scaled to the precision of the destination image. + * + * @since Android 1.0 */ public class ColorConvertOp implements BufferedImageOp, RasterOp { // Unused but required by interfaces - /** The rendering hints. */ + /** + * The rendering hints. + */ RenderingHints renderingHints; - + // Sequence consisting of ColorSpace and ICC_Profile elements - /** The conversion sequence. */ - Object conversionSequence[] = new ICC_Profile[0]; // To eliminate checks for null - + /** + * The conversion sequence. + */ + Object conversionSequence[] = new ICC_Profile[0]; // To eliminate checks for + + // null + // Not null if ColorConvertOp is constructed from the array of ICC profiles - /** The mid profiles. */ - private ICC_Profile midProfiles[]; + /** + * The mid profiles. + */ + private ICC_Profile midProfiles[]; - /** The cc. */ + /** + * The cc. + */ private final ColorConverter cc = new ColorConverter(); - - /** The t creator. */ + + /** + * The t creator. + */ private final ICC_TransfomCreator tCreator = new ICC_TransfomCreator(); - - /** The is icc. */ + + /** + * The is icc. + */ private boolean isICC = true; - - + // Cached ICC_Transform /** * The Class ICC_TransfomCreator. */ private class ICC_TransfomCreator { - - /** The transform. */ + + /** + * The transform. + */ private ICC_Transform transform; - - /** The max components. */ + + /** + * The max components. + */ private int maxComponents; - + /** * For the full ICC case. * - * @param src the src - * @param dst the dst - * @param convSeq the conv seq - * - * @return the transform + * @param src + * the src. + * @param dst + * the dst. + * @param convSeq + * the conv seq. + * @return the transform. */ public ICC_Transform getTransform(ICC_Profile src, ICC_Profile dst, ICC_Profile convSeq[]) { - if (transform != null && - src == transform.getSrc() && - dst == transform.getDst()) { + if (transform != null && src == transform.getSrc() && dst == transform.getDst()) { return transform; } - + int length = convSeq.length; int srcFlg = 0, dstFlg = 0; - + if (length == 0 || src != convSeq[0]) { if (src != null) { srcFlg = 1; // need src profile } } - if (length == 0 || dst != convSeq[length-1]) { + if (length == 0 || dst != convSeq[length - 1]) { if (dst != null) { dstFlg = 1; // need dst profile } } - + ICC_Profile profiles[]; int nProfiles = length + srcFlg + dstFlg; if (nProfiles == length) { @@ -117,30 +135,31 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp { if (srcFlg != 0) { profiles[pos++] = src; } - for (int i=0; i<length; i++) { + for (int i = 0; i < length; i++) { profiles[pos++] = convSeq[i]; } if (dstFlg != 0) { profiles[pos++] = dst; } } - + return transform = new ICC_Transform(profiles); } - + /** - * Used only when there are non-ICC color spaces. - * Returns sequence of non-ICC color spaces and ICC transforms - * made from src, dst and conversionSequence. - * - * @param src the src - * @param dst the dst + * Used only when there are non-ICC color spaces. Returns sequence of + * non-ICC color spaces and ICC transforms made from src, dst and + * conversionSequence. * - * @return the sequence + * @param src + * the src. + * @param dst + * the dst. + * @return the sequence. */ public Object[] getSequence(Object src, Object dst) { ArrayList<Object> profiles = new ArrayList<Object>(10); - ArrayList<Object> sequence = new ArrayList<Object>(10); + ArrayList<Object> sequence = new ArrayList<Object>(10); // We need this profile anyway ICC_Profile xyzProfile = ICC_Profile.getInstance(ColorSpace.CS_CIEXYZ); @@ -149,41 +168,42 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp { int conversionLength = conversionSequence.length; if (conversionLength > 0) { conversionFirst = conversionSequence[0]; - conversionLast = conversionSequence[conversionLength-1]; + conversionLast = conversionSequence[conversionLength - 1]; } boolean iccSequenceStarted = false; - + if (src != conversionFirst && src != null) { if (src instanceof ICC_Profile) { profiles.add(src); iccSequenceStarted = true; } else { profiles.add(xyzProfile); - sequence.add(src); // Add non-ICC color space to the sequence - } + sequence.add(src); // Add non-ICC color space to the + // sequence + } } else { profiles.add(xyzProfile); } - - for (int i=0; i<conversionLength; i++) { + + for (int i = 0; i < conversionLength; i++) { if (conversionSequence[i] instanceof ICC_Profile) { profiles.add(conversionSequence[i]); iccSequenceStarted = true; } else if (iccSequenceStarted) { profiles.add(xyzProfile); - + // Eliminate same profiles if there are any // (e.g. xyzProfile may occur several times) Object prev = profiles.get(0); - for (int k=1; k<profiles.size(); k++) { + for (int k = 1; k < profiles.size(); k++) { if (prev == profiles.get(k)) { k--; profiles.remove(k); } prev = profiles.get(k); } - + // If only one profile left we skip the transform - // it can be only CIEXYZ if (profiles.size() > 1) { @@ -192,109 +212,111 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp { // Add non-ICC color space to the sequence sequence.add(conversionSequence[i]); } - + profiles.clear(); profiles.add(xyzProfile); - iccSequenceStarted = false; // Sequence of ICC profiles is processed + iccSequenceStarted = false; // Sequence of ICC profiles is + // processed } else { // Add non-ICC color space to the sequence - sequence.add(conversionSequence[i]); - } + sequence.add(conversionSequence[i]); + } } - - if (dst != conversionLast && dst != null) { // Add last profile if needed + + if (dst != conversionLast && dst != null) { // Add last profile if + // needed if (dst instanceof ICC_Profile) { profiles.add(dst); iccSequenceStarted = true; } else if (iccSequenceStarted) { profiles.add(xyzProfile); } else { - sequence.add(dst); // Add last non-ICC color space to the sequence + sequence.add(dst); // Add last non-ICC color space to the + // sequence } } - + if (iccSequenceStarted) { // Make last transform if needed sequence.add(new ICC_Transform(profiles.toArray(new ICC_Profile[0]))); if (dst != null && !(dst instanceof ICC_Profile)) { sequence.add(dst); // Add last non-ICC color space to the - // sequence + // sequence } } // Calculate max number of components // This number will be used for memory allocation maxComponents = 0; - Object o; - for (int i=0, size = sequence.size(); i<size; i++) { + Object o; + for (int i = 0, size = sequence.size(); i < size; i++) { o = sequence.get(i); if (o instanceof ICC_Transform) { - ICC_Transform t = (ICC_Transform) o; - maxComponents = - (maxComponents > t.getNumInputChannels() + 1) ? - maxComponents : - t.getNumInputChannels() + 1; - maxComponents = - (maxComponents > t.getNumOutputChannels() + 1) ? - maxComponents : - t.getNumOutputChannels() + 1; + ICC_Transform t = (ICC_Transform)o; + maxComponents = (maxComponents > t.getNumInputChannels() + 1) ? maxComponents + : t.getNumInputChannels() + 1; + maxComponents = (maxComponents > t.getNumOutputChannels() + 1) ? maxComponents + : t.getNumOutputChannels() + 1; } else { - ColorSpace cs = (ColorSpace) o; - maxComponents = - (maxComponents > cs.getNumComponents() + 1) ? - maxComponents : - cs.getNumComponents() + 1; - } + ColorSpace cs = (ColorSpace)o; + maxComponents = (maxComponents > cs.getNumComponents() + 1) ? maxComponents + : cs.getNumComponents() + 1; + } } - + return sequence.toArray(); } } - + /** - * Instantiates a new ColorConvertOp object using two specified - * ColorSpace objects. + * Instantiates a new ColorConvertOp object using two specified ColorSpace + * objects. * - * @param srcCS the source ColorSpace. - * @param dstCS the destination ColorSpace. - * @param hints the RenderingHints object used for - * the color conversion, or null. + * @param srcCS + * the source ColorSpace. + * @param dstCS + * the destination ColorSpace. + * @param hints + * the RenderingHints object used for the color conversion, or + * null. */ public ColorConvertOp(ColorSpace srcCS, ColorSpace dstCS, RenderingHints hints) { if (srcCS == null || dstCS == null) { throw new NullPointerException(Messages.getString("awt.25B")); //$NON-NLS-1$ } - + renderingHints = hints; - + boolean srcICC = srcCS instanceof ICC_ColorSpace; boolean dstICC = dstCS instanceof ICC_ColorSpace; - + if (srcICC && dstICC) { conversionSequence = new ICC_Profile[2]; } else { conversionSequence = new Object[2]; isICC = false; } - + if (srcICC) { - conversionSequence[0] = ((ICC_ColorSpace) srcCS).getProfile(); + conversionSequence[0] = ((ICC_ColorSpace)srcCS).getProfile(); } else { conversionSequence[0] = srcCS; } - + if (dstICC) { - conversionSequence[1] = ((ICC_ColorSpace) dstCS).getProfile(); + conversionSequence[1] = ((ICC_ColorSpace)dstCS).getProfile(); } else { conversionSequence[1] = dstCS; } } /** - * Instantiates a new ColorConvertOp object from the specified - * ICC_Profile objects. + * Instantiates a new ColorConvertOp object from the specified ICC_Profile + * objects. * - * @param profiles the array of ICC_Profile objects. - * @param hints the RenderingHints object used for - * the color conversion, or null. + * @param profiles + * the array of ICC_Profile objects. + * @param hints + * the RenderingHints object used for the color conversion, or + * null. */ public ColorConvertOp(ICC_Profile profiles[], RenderingHints hints) { if (profiles == null) { @@ -302,37 +324,39 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp { } renderingHints = hints; - + // This array is not used in the program logic, so don't need to copy it // Store it only to return back - midProfiles = profiles; - + midProfiles = profiles; + conversionSequence = new ICC_Profile[midProfiles.length]; - + // Add profiles to the conversion sequence - for (int i=0, length=midProfiles.length; i<length; i++) { + for (int i = 0, length = midProfiles.length; i < length; i++) { conversionSequence[i] = midProfiles[i]; - } + } } /** - * Instantiates a new ColorConvertOp object using the specified - * ColorSpace object. + * Instantiates a new ColorConvertOp object using the specified ColorSpace + * object. * - * @param cs the destination ColorSpace or an intermediate ColorSpace. - * @param hints the RenderingHints object used for - * the color conversion, or null. + * @param cs + * the destination ColorSpace or an intermediate ColorSpace. + * @param hints + * the RenderingHints object used for the color conversion, or + * null. */ public ColorConvertOp(ColorSpace cs, RenderingHints hints) { if (cs == null) { throw new NullPointerException(Messages.getString("awt.25B")); //$NON-NLS-1$ } - + renderingHints = hints; - + if (cs instanceof ICC_ColorSpace) { conversionSequence = new ICC_Profile[1]; - conversionSequence[0] = ((ICC_ColorSpace) cs).getProfile(); + conversionSequence[0] = ((ICC_ColorSpace)cs).getProfile(); } else { conversionSequence = new Object[1]; conversionSequence[0] = cs; @@ -341,11 +365,12 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp { } /** - * Instantiates a new ColorConvertOp object which converts from - * a source color space to a destination color space. + * Instantiates a new ColorConvertOp object which converts from a source + * color space to a destination color space. * - * @param hints the RenderingHints object used for - * the color conversion, or null. + * @param hints + * the RenderingHints object used for the color conversion, or + * null. */ public ColorConvertOp(RenderingHints hints) { renderingHints = hints; @@ -360,26 +385,26 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp { int nSrcColorComps, nDstColorComps; Object first = conversionSequence[0]; Object last = conversionSequence[conversionSequence.length - 1]; - + // Get the number of input/output color components if (isICC) { - srcPf = (ICC_Profile) first; - dstPf = (ICC_Profile) last; + srcPf = (ICC_Profile)first; + dstPf = (ICC_Profile)last; nSrcColorComps = srcPf.getNumComponents(); nDstColorComps = dstPf.getNumComponents(); } else { if (first instanceof ICC_Profile) { - srcPf = (ICC_Profile) first; + srcPf = (ICC_Profile)first; nSrcColorComps = srcPf.getNumComponents(); } else { - nSrcColorComps = ((ColorSpace) first).getNumComponents(); + nSrcColorComps = ((ColorSpace)first).getNumComponents(); } - + if (last instanceof ICC_Profile) { - dstPf = (ICC_Profile) last; + dstPf = (ICC_Profile)last; nDstColorComps = dstPf.getNumComponents(); } else { - nDstColorComps = ((ColorSpace) last).getNumComponents(); + nDstColorComps = ((ColorSpace)last).getNumComponents(); } } @@ -387,51 +412,45 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp { // transforms and with each other if (src.getNumBands() != nSrcColorComps) { // awt.25E=Incorrect number of source raster bands. Should be equal - // to the number of color components of source colorspace. + // to the number of color components of source colorspace. throw new IllegalArgumentException(Messages.getString("awt.25E")); //$NON-NLS-1$ } - + if (dst != null) { // Check destination raster - if (dst.getNumBands() != - nDstColorComps) { + if (dst.getNumBands() != nDstColorComps) { // awt.25F=Incorrect number of destination raster bands. Should - // be equal to the number of color components of destination - // colorspace. + // be equal to the number of color components of destination + // colorspace. throw new IllegalArgumentException(Messages.getString("awt.25F")); //$NON-NLS-1$ } - - if (src.getWidth() != dst.getWidth() || - src.getHeight() != dst.getHeight()) { + + if (src.getWidth() != dst.getWidth() || src.getHeight() != dst.getHeight()) { throw new IllegalArgumentException(Messages.getString("awt.260")); //$NON-NLS-1$ } - + } else { - dst = createCompatibleDestRaster(src); + dst = createCompatibleDestRaster(src); } - + if (isICC) { // Create transform - ICC_Transform t = tCreator.getTransform(srcPf, dstPf, - (ICC_Profile[])conversionSequence); - cc.translateColor(t, src, dst); + ICC_Transform t = tCreator + .getTransform(srcPf, dstPf, (ICC_Profile[])conversionSequence); + cc.translateColor(t, src, dst); } else { Object[] sequence = tCreator.getSequence(null, null); - + // Get data from the source raster ColorScaler scaler = new ColorScaler(); scaler.loadScalingData(src, null); float tmpData[][] = scaler.scaleNormalize(src); - + // Get source and destination color spaces - ColorSpace srcCS = (srcPf == null) ? - (ColorSpace) first: - new ICC_ColorSpace(srcPf); - ColorSpace dstCS = (dstPf == null) ? - (ColorSpace) last: - new ICC_ColorSpace(dstPf); - + ColorSpace srcCS = (srcPf == null) ? (ColorSpace)first : new ICC_ColorSpace(srcPf); + ColorSpace dstCS = (dstPf == null) ? (ColorSpace)last : new ICC_ColorSpace(dstPf); + applySequence(sequence, tmpData, srcCS, dstCS); - + scaler.loadScalingData(dst, null); scaler.unscaleNormalized(dst, tmpData); } @@ -442,36 +461,27 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp { public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM) { // If destination color model is passed only one line needed if (destCM != null) { - return new BufferedImage(destCM, - destCM.createCompatibleWritableRaster(src.getWidth(), src.getHeight()), - destCM.isAlphaPremultiplied(), - null); + return new BufferedImage(destCM, destCM.createCompatibleWritableRaster(src.getWidth(), + src.getHeight()), destCM.isAlphaPremultiplied(), null); } - + int nSpaces = conversionSequence.length; - + if (nSpaces < 1) { throw new IllegalArgumentException(Messages.getString("awt.261")); //$NON-NLS-1$ } - + // Get destination color space - Object destination = conversionSequence[nSpaces-1]; - ColorSpace dstCS = - (destination instanceof ColorSpace) ? - (ColorSpace) destination : - new ICC_ColorSpace((ICC_Profile) destination); - - ColorModel srcCM = src.getColorModel(); - ColorModel dstCM = new ComponentColorModel(dstCS, - srcCM.hasAlpha(), - srcCM.isAlphaPremultiplied(), - srcCM.getTransparency(), - srcCM.getTransferType()); - - return new BufferedImage(dstCM, - destCM.createCompatibleWritableRaster(src.getWidth(), src.getHeight()), - destCM.isAlphaPremultiplied(), - null); + Object destination = conversionSequence[nSpaces - 1]; + ColorSpace dstCS = (destination instanceof ColorSpace) ? (ColorSpace)destination + : new ICC_ColorSpace((ICC_Profile)destination); + + ColorModel srcCM = src.getColorModel(); + ColorModel dstCM = new ComponentColorModel(dstCS, srcCM.hasAlpha(), srcCM + .isAlphaPremultiplied(), srcCM.getTransparency(), srcCM.getTransferType()); + + return new BufferedImage(dstCM, destCM.createCompatibleWritableRaster(src.getWidth(), src + .getHeight()), destCM.isAlphaPremultiplied(), null); } public final BufferedImage filter(BufferedImage src, BufferedImage dst) { @@ -481,32 +491,31 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp { ColorModel srcCM = src.getColorModel(); // First handle index color model - if (srcCM instanceof IndexColorModel) { - src = ((IndexColorModel) srcCM).convertToIntDiscrete(src.getRaster(), false); + if (srcCM instanceof IndexColorModel) { + src = ((IndexColorModel)srcCM).convertToIntDiscrete(src.getRaster(), false); } - ColorSpace srcCS = srcCM.getColorSpace(); - + ColorSpace srcCS = srcCM.getColorSpace(); + BufferedImage res; boolean isDstIndex = false; if (dst != null) { - - if (src.getWidth() != dst.getWidth() || - src.getHeight() != dst.getHeight()) { - throw new IllegalArgumentException(Messages.getString("awt.263")); //$NON-NLS-1$ - } + + if (src.getWidth() != dst.getWidth() || src.getHeight() != dst.getHeight()) { + throw new IllegalArgumentException(Messages.getString("awt.263")); //$NON-NLS-1$ + } if (dst.getColorModel() instanceof IndexColorModel) { isDstIndex = true; res = createCompatibleDestImage(src, null); - } else { + } else { res = dst; - } + } } else { res = createCompatibleDestImage(src, null); } ColorModel dstCM = res.getColorModel(); ColorSpace dstCS = dstCM.getColorSpace(); - + ICC_Profile srcPf = null, dstPf = null; if (srcCS instanceof ICC_ColorSpace) { srcPf = ((ICC_ColorSpace)srcCS).getProfile(); @@ -514,31 +523,27 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp { if (dstCS instanceof ICC_ColorSpace) { dstPf = ((ICC_ColorSpace)dstCS).getProfile(); } - + boolean isFullICC = isICC && srcPf != null && dstPf != null; - + if (isFullICC) { - ICC_Transform t = - tCreator.getTransform(srcPf, dstPf, (ICC_Profile[]) conversionSequence); + ICC_Transform t = tCreator + .getTransform(srcPf, dstPf, (ICC_Profile[])conversionSequence); cc.translateColor(t, src, res); } else { // Perform non-ICC transform - Object sequence[] = tCreator.getSequence( - srcPf == null ? (Object) srcCS : srcPf, - dstPf == null ? (Object) dstCS : dstPf); - + Object sequence[] = tCreator.getSequence(srcPf == null ? (Object)srcCS : srcPf, + dstPf == null ? (Object)dstCS : dstPf); + int srcW = src.getWidth(); int srcH = src.getHeight(); - int numPixels = srcW*srcH; - - // Load all pixel data into array tmpData - float tmpData[][] = - new float[numPixels][tCreator.maxComponents]; - for (int row=0, dataPos=0; row<srcW; row++) { - for (int col=0; col<srcH; col++) { - tmpData[dataPos] = - srcCM.getNormalizedComponents( - src.getRaster().getDataElements(row, col, null), - tmpData[dataPos], 0); + int numPixels = srcW * srcH; + + // Load all pixel data into array tmpData + float tmpData[][] = new float[numPixels][tCreator.maxComponents]; + for (int row = 0, dataPos = 0; row < srcW; row++) { + for (int col = 0; col < srcH; col++) { + tmpData[dataPos] = srcCM.getNormalizedComponents(src.getRaster() + .getDataElements(row, col, null), tmpData[dataPos], 0); dataPos++; } } @@ -548,11 +553,11 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp { int alphaIdx = srcCM.numComponents - 1; if (srcCM.hasAlpha() && dstCM.hasAlpha()) { alpha = new float[numPixels]; - for (int i=0; i<numPixels; i++) { + for (int i = 0; i < numPixels; i++) { alpha[i] = tmpData[i][alphaIdx]; } } - + // Translate colors applySequence(sequence, tmpData, srcCS, dstCS); @@ -560,24 +565,24 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp { if (dstCM.hasAlpha()) { alphaIdx = dstCM.numComponents - 1; if (alpha != null) { - for (int i=0; i<numPixels; i++) { + for (int i = 0; i < numPixels; i++) { tmpData[i][alphaIdx] = alpha[i]; - } + } } else { - for (int i=0; i<numPixels; i++) { + for (int i = 0; i < numPixels; i++) { tmpData[i][alphaIdx] = 1f; - } + } } } - - // Store data back to the image - for (int row=0, dataPos=0; row<srcW; row++) { - for (int col=0; col<srcH; col++) { - res.getRaster().setDataElements(row, col, - dstCM.getDataElements(tmpData[dataPos++], 0 , null)); + + // Store data back to the image + for (int row = 0, dataPos = 0; row < srcW; row++) { + for (int col = 0; col < srcH; col++) { + res.getRaster().setDataElements(row, col, + dstCM.getDataElements(tmpData[dataPos++], 0, null)); } } - } + } if (isDstIndex) { // Convert image into indexed color Graphics2D g2d = dst.createGraphics(); @@ -585,59 +590,59 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp { g2d.dispose(); return dst; } - + return res; } /** * Apply sequence. * - * @param sequence the sequence - * @param tmpData the tmp data - * @param srcCS the src cs - * @param dstCS the dst cs + * @param sequence + * the sequence. + * @param tmpData + * the tmp data. + * @param srcCS + * the src cs. + * @param dstCS + * the dst cs. */ - private void applySequence( - Object sequence[], - float tmpData[][], - ColorSpace srcCS, - ColorSpace dstCS - ) { + private void applySequence(Object sequence[], float tmpData[][], ColorSpace srcCS, + ColorSpace dstCS) { ColorSpace xyzCS = ColorSpace.getInstance(ColorSpace.CS_CIEXYZ); - + int numPixels = tmpData.length; - + // First transform... if (sequence[0] instanceof ICC_Transform) { // ICC ICC_Transform t = (ICC_Transform)sequence[0]; cc.translateColor(t, tmpData, srcCS, xyzCS, numPixels); } else { // non ICC - for (int k=0; k<numPixels; k++) { - tmpData[k] = srcCS.toCIEXYZ(tmpData[k]); + for (int k = 0; k < numPixels; k++) { + tmpData[k] = srcCS.toCIEXYZ(tmpData[k]); } cc.loadScalingData(xyzCS); // prepare for scaling XYZ } - + for (Object element : sequence) { if (element instanceof ICC_Transform) { ICC_Transform t = (ICC_Transform)element; cc.translateColor(t, tmpData, null, null, numPixels); } else { - ColorSpace cs = (ColorSpace) element; - for (int k=0; k<numPixels; k++) { + ColorSpace cs = (ColorSpace)element; + for (int k = 0; k < numPixels; k++) { tmpData[k] = cs.fromCIEXYZ(tmpData[k]); - tmpData[k] = cs.toCIEXYZ(tmpData[k]); + tmpData[k] = cs.toCIEXYZ(tmpData[k]); } } } - + // Last transform... - if (sequence[sequence.length-1] instanceof ICC_Transform) { // ICC - ICC_Transform t = (ICC_Transform)sequence[sequence.length-1]; + if (sequence[sequence.length - 1] instanceof ICC_Transform) { // ICC + ICC_Transform t = (ICC_Transform)sequence[sequence.length - 1]; cc.translateColor(t, tmpData, xyzCS, dstCS, numPixels); } else { // non ICC - for (int k=0; k<numPixels; k++) { - tmpData[k] = dstCS.fromCIEXYZ(tmpData[k]); + for (int k = 0; k < numPixels; k++) { + tmpData[k] = dstCS.fromCIEXYZ(tmpData[k]); } } } @@ -647,38 +652,32 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp { dstPt.setLocation(srcPt); return dstPt; } - return new Point2D.Float((float) srcPt.getX(), (float) srcPt.getY()); + return new Point2D.Float((float)srcPt.getX(), (float)srcPt.getY()); } public WritableRaster createCompatibleDestRaster(Raster src) { int nComps = 0; int nSpaces = conversionSequence.length; - + if (nSpaces < 2) { throw new IllegalArgumentException(Messages.getString("awt.261")); //$NON-NLS-1$ } - - Object lastCS = conversionSequence[nSpaces-1]; + + Object lastCS = conversionSequence[nSpaces - 1]; if (lastCS instanceof ColorSpace) { - nComps = ((ColorSpace) lastCS).getNumComponents(); + nComps = ((ColorSpace)lastCS).getNumComponents(); } else { - nComps = ((ICC_Profile) lastCS).getNumComponents(); + nComps = ((ICC_Profile)lastCS).getNumComponents(); } - + // Calculate correct data type int dstDataType = src.getDataBuffer().getDataType(); - if (dstDataType != DataBuffer.TYPE_BYTE && - dstDataType != DataBuffer.TYPE_SHORT) { - dstDataType = DataBuffer.TYPE_SHORT; - } - - return Raster.createInterleavedRaster( - dstDataType, - src.getWidth(), - src.getHeight(), - nComps, - new Point(src.getMinX(), src.getMinY()) - ); + if (dstDataType != DataBuffer.TYPE_BYTE && dstDataType != DataBuffer.TYPE_SHORT) { + dstDataType = DataBuffer.TYPE_SHORT; + } + + return Raster.createInterleavedRaster(dstDataType, src.getWidth(), src.getHeight(), nComps, + new Point(src.getMinX(), src.getMinY())); } public final Rectangle2D getBounds2D(Raster src) { @@ -690,13 +689,13 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp { } /** - * Gets an array of ICC_Profiles objects which constructs - * this ColorConvertOp object or returns null if this ColorConvertOp - * is not constructed from array of ICC_Profiles. + * Gets an array of ICC_Profiles objects which constructs this + * ColorConvertOp object or returns null if this ColorConvertOp is not + * constructed from array of ICC_Profiles. * - * @return an array of ICC_Profiles objects which constructs - * this ColorConvertOp object or returns null if this ColorConvertOp - * is not constructed from array of ICC_Profiles. + * @return an array of ICC_Profiles objects which constructs this + * ColorConvertOp object or returns null if this ColorConvertOp is + * not constructed from array of ICC_Profiles. */ public final ICC_Profile[] getICC_Profiles() { if (midProfiles != null) { @@ -707,5 +706,5 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp { public final RenderingHints getRenderingHints() { return renderingHints; - } + } } diff --git a/awt/java/awt/image/ColorModel.java b/awt/java/awt/image/ColorModel.java index 945c087..1b084e1 100644 --- a/awt/java/awt/image/ColorModel.java +++ b/awt/java/awt/image/ColorModel.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.awt.Transparency; @@ -27,62 +28,95 @@ import java.util.Arrays; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Class ColorModel. + * The class ColorModel. + * + * @since Android 1.0 */ public abstract class ColorModel implements Transparency { - /** The pixel_bits. */ - protected int pixel_bits; // Pixel length in bits + /** + * The pixel_bits. + */ + protected int pixel_bits; // Pixel length in bits - /** The transfer type. */ + /** + * The transfer type. + */ protected int transferType; - /** The cs. */ + /** + * The cs. + */ ColorSpace cs; - /** The has alpha. */ + /** + * The has alpha. + */ boolean hasAlpha; - /** The is alpha premultiplied. */ + /** + * The is alpha premultiplied. + */ boolean isAlphaPremultiplied; - /** The transparency. */ + /** + * The transparency. + */ int transparency; - /** The num color components. */ + /** + * The num color components. + */ int numColorComponents; - /** The num components. */ + /** + * The num components. + */ int numComponents; - /** The bits. */ - int[] bits; // Array of components masks + /** + * The bits. + */ + int[] bits; // Array of components masks - /** The max values. */ + /** + * The max values. + */ int[] maxValues = null; // Max values that may be represent by color - // components - /** The max bit length. */ - int maxBitLength; // Max length color components in bits + // components - /** The RG bdefault. */ + /** + * The max bit length. + */ + int maxBitLength; // Max length color components in bits + + /** + * The RG bdefault. + */ private static ColorModel RGBdefault; /** * Instantiates a new color model with the specified values. * - * @param pixel_bits the pixel length in bits - * @param bits the array of component masks - * @param cspace the colorspace - * @param hasAlpha whether the color model has alpha - * @param isAlphaPremultiplied whether the alpha is premultiplied - * @param transparency the transparency strategy, @see java.awt.Transparency - * @param transferType the transfer type (primitive java type - * to use for the components) - */ - protected ColorModel(int pixel_bits, int[] bits, ColorSpace cspace, - boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, - int transferType) { + * @param pixel_bits + * the pixel length in bits. + * @param bits + * the array of component masks. + * @param cspace + * the color space. + * @param hasAlpha + * whether the color model has alpha. + * @param isAlphaPremultiplied + * whether the alpha is pre-multiplied. + * @param transparency + * the transparency strategy, @see java.awt.Transparency. + * @param transferType + * the transfer type (primitive java type to use for the + * components). + */ + protected ColorModel(int pixel_bits, int[] bits, ColorSpace cspace, boolean hasAlpha, + boolean isAlphaPremultiplied, int transparency, int transferType) { if (pixel_bits < 1) { // awt.26B=The number of bits in the pixel values is less than 1 @@ -113,8 +147,7 @@ public abstract class ColorModel implements Transparency { throw new IllegalArgumentException(Messages.getString("awt.26F")); //$NON-NLS-1$ } - if (transparency < Transparency.OPAQUE || - transparency > Transparency.TRANSLUCENT) { + if (transparency < Transparency.OPAQUE || transparency > Transparency.TRANSLUCENT) { // awt.270=The transparency is not a valid value throw new IllegalArgumentException(Messages.getString("awt.270")); //$NON-NLS-1$ } @@ -148,11 +181,12 @@ public abstract class ColorModel implements Transparency { } /** - * Instantiates a new color model with the specified pixel bit depth. - * The transferType is chosen based on the pixel bits, and the other - * data fields are given default values. + * Instantiates a new color model with the specified pixel bit depth. The + * transferType is chosen based on the pixel bits, and the other data fields + * are given default values. * - * @param bits the array of component masks + * @param bits + * the array of component masks. */ public ColorModel(int bits) { @@ -178,14 +212,17 @@ public abstract class ColorModel implements Transparency { * Gets the data elements from the specified component array, transforming * them according to rules of the color model. * - * @param components the components - * @param offset the offset in the normComponents array - * @param obj the array that the result is written to: an array of values - * whose length must be the number of components used by the color model and - * whose type depends on the transfer type (based on the pixel bit depth), - * or null to have the appropriate array created - * - * @return the array of data elements + * @param components + * the components. + * @param offset + * the offset in the normComponents array. + * @param obj + * the array that the result is written to: an array of values + * whose length must be the number of components used by the + * color model and whose type depends on the transfer type (based + * on the pixel bit depth), or null to have the appropriate array + * created. + * @return the array of data elements. */ public Object getDataElements(int[] components, int offset, Object obj) { throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$ @@ -195,33 +232,36 @@ public abstract class ColorModel implements Transparency { /** * Gets the data elements from the specified array of normalized components. * - * @param normComponents the array normalized components - * @param normOffset the offset in the normComponents array - * @param obj the array that the result is written to: an array of values - * whose length must be the number of components used by the color model and - * whose type depends on the transfer type (based on the pixel bit depth), - * or null to have the appropriate array created - * - * @return the array of data elements - */ - public Object getDataElements(float[] normComponents, int normOffset, - Object obj) { - int unnormComponents[] = getUnnormalizedComponents(normComponents, - normOffset, null, 0); + * @param normComponents + * the array normalized components. + * @param normOffset + * the offset in the normComponents array. + * @param obj + * the array that the result is written to: an array of values + * whose length must be the number of components used by the + * color model and whose type depends on the transfer type (based + * on the pixel bit depth), or null to have the appropriate array + * created. + * @return the array of data elements. + */ + public Object getDataElements(float[] normComponents, int normOffset, Object obj) { + int unnormComponents[] = getUnnormalizedComponents(normComponents, normOffset, null, 0); return getDataElements(unnormComponents, 0, obj); } /** - * Gets the data elements corresponding to the pixel determined by the - * RGB data. - * - * @param rgb the rgb int that defines the pixel - * @param pixel the array that the result is written to: an array of values - * whose length must be the number of components used by the color model and - * whose type depends on the transfer type (based on the pixel bit depth), - * or null to have the appropriate array created + * Gets the data elements corresponding to the pixel determined by the RGB + * data. * - * @return the array of data elements + * @param rgb + * the RGB integer value that defines the pixel. + * @param pixel + * the array that the result is written to: an array of values + * whose length must be the number of components used by the + * color model and whose type depends on the transfer type (based + * on the pixel bit depth), or null to have the appropriate array + * created. + * @return the array of data elements. */ public Object getDataElements(int rgb, Object pixel) { throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$ @@ -229,38 +269,38 @@ public abstract class ColorModel implements Transparency { } /** - * Gets the child raster corresponding to the alpha channel of the - * specified writable raster, or null if alpha is not supported. + * Gets the child raster corresponding to the alpha channel of the specified + * writable raster, or null if alpha is not supported. * - * @param raster the raster - * - * @return the alpha raster + * @param raster + * the raster. + * @return the alpha raster. */ public WritableRaster getAlphaRaster(WritableRaster raster) { return null; } /** - * Creates a new color model by coercing the data in the writable raster - * in accordance with the alpha strategy of this color model. - * - * @param raster the raster - * @param isAlphaPremultiplied whether the alpha is premultiplied in this - * color model + * Creates a new color model by coercing the data in the writable raster in + * accordance with the alpha strategy of this color model. * - * @return the new color model + * @param raster + * the raster. + * @param isAlphaPremultiplied + * whether the alpha is pre-multiplied in this color model + * @return the new color model. */ - public ColorModel coerceData(WritableRaster raster, - boolean isAlphaPremultiplied) { + public ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied) { throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$ "supported by this ColorModel"); //$NON-NLS-1$ } @Override public String toString() { - // The output format based on 1.5 release behaviour. + // The output format based on 1.5 release behavior. // It could be reveled such way: - // ColorModel cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB, + // ColorModel cm = new + // ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB, // false, false, Transparency.OPAQUE, DataBuffer.TYPE_BYTE); // System.out.println(cm.toString()); return "ColorModel: Color Space = " + cs.toString() + "; has alpha = " //$NON-NLS-1$ //$NON-NLS-2$ @@ -274,15 +314,17 @@ public abstract class ColorModel implements Transparency { /** * Gets the components of the pixel determined by the data array. * - * @param pixel the data array that defines the pixel (whose - * primitive type corresponds to the pixel length in bits, + * @param pixel + * the data array that defines the pixel (whose primitive type + * corresponds to the pixel length in bits. * @see ColorModel#getTransferType() - * @param components the the array where the resulting components - * are written (or null to prompt the method to create the return array) - * @param offset the offset that tells where the results should be written - * in the return array - * - * @return the array of components + * @param components + * the the array where the resulting components are written (or + * null to prompt the method to create the return array). + * @param offset + * the offset that tells where the results should be written in + * the return array. + * @return the array of components. */ public int[] getComponents(Object pixel, int[] components, int offset) { throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$ @@ -292,18 +334,20 @@ public abstract class ColorModel implements Transparency { /** * Gets the normalized components of the pixel determined by the data array. * - * @param pixel the data array that defines the pixel (whose - * primitive type corresponds to the pixel length in bits, + * @param pixel + * the data array that defines the pixel (whose primitive type + * corresponds to the pixel length in bits. * @see ColorModel#getTransferType() - * @param normComponents the array where the resulting normalised components - * are written (or null to prompt the method to create the return array) - * @param normOffset the offset that tells where the results should be written - * in the return array - * - * @return the array of normalized components + * @param normComponents + * the array where the resulting normalized components are + * written (or null to prompt the method to create the return + * array). + * @param normOffset + * the offset that tells where the results should be written in + * the return array. + * @return the array of normalized components. */ - public float[] getNormalizedComponents(Object pixel, - float[] normComponents, int normOffset) { + public float[] getNormalizedComponents(Object pixel, float[] normComponents, int normOffset) { if (pixel == null) { // awt.294=pixel is null @@ -311,8 +355,7 @@ public abstract class ColorModel implements Transparency { } int unnormComponents[] = getComponents(pixel, null, 0); - return getNormalizedComponents(unnormComponents, 0, normComponents, - normOffset); + return getNormalizedComponents(unnormComponents, 0, normComponents, normOffset); } @Override @@ -320,54 +363,52 @@ public abstract class ColorModel implements Transparency { if (!(obj instanceof ColorModel)) { return false; } - ColorModel cm = (ColorModel) obj; + ColorModel cm = (ColorModel)obj; - return (pixel_bits == cm.getPixelSize() && - transferType == cm.getTransferType() && - cs.getType() == cm.getColorSpace().getType() && - hasAlpha == cm.hasAlpha() && - isAlphaPremultiplied == cm.isAlphaPremultiplied() && - transparency == cm.getTransparency() && - numColorComponents == cm.getNumColorComponents() && - numComponents == cm.getNumComponents() && - Arrays.equals(bits, cm.getComponentSize())); + return (pixel_bits == cm.getPixelSize() && transferType == cm.getTransferType() + && cs.getType() == cm.getColorSpace().getType() && hasAlpha == cm.hasAlpha() + && isAlphaPremultiplied == cm.isAlphaPremultiplied() + && transparency == cm.getTransparency() + && numColorComponents == cm.getNumColorComponents() + && numComponents == cm.getNumComponents() && Arrays.equals(bits, cm + .getComponentSize())); } /** * Gets the red component of the pixel determined by the data array. * - * @param inData the data array that defines the pixel (whose - * primitive type corresponds to the pixel length in bits, + * @param inData + * the data array that defines the pixel (whose primitive type + * corresponds to the pixel length in bits. * @see ColorModel#getTransferType() - * - * @return the red + * @return the red. */ public int getRed(Object inData) { return getRed(constructPixel(inData)); } /** - * Gets the RGB int corresponding to the pixel defined by the data array. + * Gets the RGB integer value corresponding to the pixel defined by the data + * array. * - * @param inData the data array that defines the pixel (whose - * primitive type corresponds to the pixel length in bits, + * @param inData + * the data array that defines the pixel (whose primitive type + * corresponds to the pixel length in bits. * @see ColorModel#getTransferType() - * - * @return the int that gives the pixel's colors in RGB format + * @return the integer value that gives the pixel's colors in RGB format. */ public int getRGB(Object inData) { - return (getAlpha(inData) << 24 | getRed(inData) << 16 | - getGreen(inData) << 8 | getBlue(inData)); + return (getAlpha(inData) << 24 | getRed(inData) << 16 | getGreen(inData) << 8 | getBlue(inData)); } /** * Gets the green component of the pixel defined by the data array. * - * @param inData the data array that defines the pixel (whose - * primitive type corresponds to the pixel length in bits, + * @param inData + * the data array that defines the pixel (whose primitive type + * corresponds to the pixel length in bits. * @see ColorModel#getTransferType() - * - * @return the green + * @return the green. */ public int getGreen(Object inData) { return getGreen(constructPixel(inData)); @@ -376,11 +417,11 @@ public abstract class ColorModel implements Transparency { /** * Gets the blue component of the pixel defined by the data array. * - * @param inData the data array that defines the pixel (whose - * primitive type corresponds to the pixel length in bits, + * @param inData + * the data array that defines the pixel (whose primitive type + * corresponds to the pixel length in bits. * @see ColorModel#getTransferType() - * - * @return the blue + * @return the blue. */ public int getBlue(Object inData) { return getBlue(constructPixel(inData)); @@ -389,11 +430,11 @@ public abstract class ColorModel implements Transparency { /** * Gets the alpha component of the pixel defined by the data array. * - * @param inData the data array that defines the pixel (whose - * primitive type corresponds to the pixel length in bits, + * @param inData + * the data array that defines the pixel (whose primitive type + * corresponds to the pixel length in bits. * @see ColorModel#getTransferType() - * - * @return the alpha + * @return the alpha. */ public int getAlpha(Object inData) { return getAlpha(constructPixel(inData)); @@ -402,10 +443,11 @@ public abstract class ColorModel implements Transparency { /** * Creates a compatible writable raster. * - * @param w the width of the desired writable raster - * @param h the height of the desired writable raster - * - * @return the writable raster + * @param w + * the width of the desired writable raster. + * @param h + * the height of the desired writable raster. + * @return the writable raster. */ public WritableRaster createCompatibleWritableRaster(int w, int h) { throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$ @@ -415,9 +457,9 @@ public abstract class ColorModel implements Transparency { /** * Checks if the sample model is compatible with this color model. * - * @param sm the sample model - * - * @return true, if the sample model is compatible with this color model + * @param sm + * the sample model. + * @return true, if the sample model is compatible with this color model. */ public boolean isCompatibleSampleModel(SampleModel sm) { throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$ @@ -427,10 +469,11 @@ public abstract class ColorModel implements Transparency { /** * Creates the compatible sample model. * - * @param w the width of the desired sample model - * @param h the height of the desired sample model - * - * @return the sample model + * @param w + * the width of the desired sample model. + * @param h + * the height of the desired sample model. + * @return the sample model. */ public SampleModel createCompatibleSampleModel(int w, int h) { throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$ @@ -440,9 +483,9 @@ public abstract class ColorModel implements Transparency { /** * Checks if the specified raster is compatible with this color model. * - * @param raster the raster to inspect - * - * @return true, if the raster is compatible with this color model + * @param raster + * the raster to inspect. + * @return true, if the raster is compatible with this color model. */ public boolean isCompatibleRaster(Raster raster) { throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$ @@ -452,28 +495,32 @@ public abstract class ColorModel implements Transparency { /** * Gets the color space of this color model. * - * @return the color space + * @return the color space. */ public final ColorSpace getColorSpace() { return cs; } /** - * Gets the normalized components corresponding to the specified + * Gets the normalized components corresponding to the specified * unnormalized components. * - * @param components the array of unnormalized components - * @param offset the offset where the components should be read - * from the array of unnormalized components - * @param normComponents the array where the resulting normalised components - * are written (or null to prompt the method to create the return array) - * @param normOffset the offset that tells where the results should be written - * in the return array - * - * @return the normalized components - */ - public float[] getNormalizedComponents(int[] components, int offset, - float normComponents[], int normOffset) { + * @param components + * the array of unnormalized components. + * @param offset + * the offset where the components should be read from the array + * of unnormalized components. + * @param normComponents + * the array where the resulting normalized components are + * written (or null to prompt the method to create the return + * array). + * @param normOffset + * the offset that tells where the results should be written in + * the return array. + * @return the normalized components. + */ + public float[] getNormalizedComponents(int[] components, int offset, float normComponents[], + int normOffset) { if (bits == null) { // awt.26C=bits is null throw new UnsupportedOperationException(Messages.getString("awt.26C")); //$NON-NLS-1$ @@ -484,14 +531,12 @@ public abstract class ColorModel implements Transparency { } if (hasAlpha && isAlphaPremultiplied) { - float normAlpha = - (float) components[offset + numColorComponents] / - maxValues[numColorComponents]; + float normAlpha = (float)components[offset + numColorComponents] + / maxValues[numColorComponents]; if (normAlpha != 0.0f) { for (int i = 0; i < numColorComponents; i++) { - normComponents[normOffset + i] = - components[offset + i] / - (normAlpha * maxValues[i]); + normComponents[normOffset + i] = components[offset + i] + / (normAlpha * maxValues[i]); } normComponents[normOffset + numColorComponents] = normAlpha; } else { @@ -501,9 +546,7 @@ public abstract class ColorModel implements Transparency { } } else { for (int i = 0; i < numComponents; i++) { - normComponents[normOffset + i] = - (float) components[offset + i] / - maxValues[i]; + normComponents[normOffset + i] = (float)components[offset + i] / maxValues[i]; } } @@ -513,11 +556,12 @@ public abstract class ColorModel implements Transparency { /** * Gets the data element corresponding to the unnormalized components. * - * @param components the components - * @param offset the offset to start reading the components from the - * array of components - * - * @return the data element + * @param components + * the components. + * @param offset + * the offset to start reading the components from the array of + * components. + * @return the data element. */ public int getDataElement(int[] components, int offset) { throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$ @@ -525,21 +569,25 @@ public abstract class ColorModel implements Transparency { } /** - * Gets the unnormalized components corresponding to the specified + * Gets the unnormalized components corresponding to the specified * normalized components. * - * @param normComponents the array of normalized components - * @param normOffset the offset where the components should be read - * from the array of normalized components - * @param components the array where the resulting unnormalised components - * are written (or null to prompt the method to create the return array) - * @param offset the offset that tells where the results should be written - * in the return array - * - * @return the unnormalized components - */ - public int[] getUnnormalizedComponents(float normComponents[], - int normOffset, int components[], int offset) { + * @param normComponents + * the array of normalized components. + * @param normOffset + * the offset where the components should be read from the array + * of normalized components. + * @param components + * the array where the resulting unnormalized components are + * written (or null to prompt the method to create the return + * array). + * @param offset + * the offset that tells where the results should be written in + * the return array. + * @return the unnormalized components. + */ + public int[] getUnnormalizedComponents(float normComponents[], int normOffset, + int components[], int offset) { if (bits == null) { // awt.26C=bits is null @@ -547,7 +595,8 @@ public abstract class ColorModel implements Transparency { } if (normComponents.length - normOffset < numComponents) { - // awt.273=The length of normComponents minus normOffset is less than numComponents + // awt.273=The length of normComponents minus normOffset is less + // than numComponents throw new IllegalArgumentException(Messages.getString("awt.273")); //$NON-NLS-1$ } @@ -555,7 +604,8 @@ public abstract class ColorModel implements Transparency { components = new int[numComponents + offset]; } else { if (components.length - offset < numComponents) { - // awt.272=The length of components minus offset is less than numComponents + // awt.272=The length of components minus offset is less than + // numComponents throw new IllegalArgumentException(Messages.getString("awt.272")); //$NON-NLS-1$ } } @@ -563,17 +613,15 @@ public abstract class ColorModel implements Transparency { if (hasAlpha && isAlphaPremultiplied) { float alpha = normComponents[normOffset + numColorComponents]; for (int i = 0; i < numColorComponents; i++) { - components[offset + i] = (int) (normComponents[normOffset + i] - * maxValues[i] * alpha + 0.5f); + components[offset + i] = (int)(normComponents[normOffset + i] * maxValues[i] + * alpha + 0.5f); } - components[offset + numColorComponents] = - (int) (normComponents[normOffset + numColorComponents] * - maxValues[numColorComponents] + 0.5f); + components[offset + numColorComponents] = (int)(normComponents[normOffset + + numColorComponents] + * maxValues[numColorComponents] + 0.5f); } else { for (int i = 0; i < numComponents; i++) { - components[offset + i] = - (int) (normComponents[normOffset + i] * - maxValues[i] + 0.5f); + components[offset + i] = (int)(normComponents[normOffset + i] * maxValues[i] + 0.5f); } } @@ -583,30 +631,32 @@ public abstract class ColorModel implements Transparency { /** * Gets the data element corresponding to the normalized components. * - * @param normComponents the normalized components - * @param normOffset the offset where the normalized components should - * be read from the normalized component array - * - * @return the data element + * @param normComponents + * the normalized components. + * @param normOffset + * the offset where the normalized components should be read from + * the normalized component array. + * @return the data element. */ public int getDataElement(float normComponents[], int normOffset) { - int unnormComponents[] = getUnnormalizedComponents(normComponents, - normOffset, null, 0); + int unnormComponents[] = getUnnormalizedComponents(normComponents, normOffset, null, 0); return getDataElement(unnormComponents, 0); } /** - * Takes a pixel whose data is defined by an int, and writes the - * corresponding components into the components array, starting - * from the index offset. + * Takes a pixel whose data is defined by an integer, and writes the + * corresponding components into the components array, starting from the + * index offset. * - * @param pixel the pixel data - * @param components the data array to write the components to (or - * null to have the method create the return array) - * @param offset the offset that determines where the results are - * written in the components array - * - * @return the array of components corresponding to the pixel + * @param pixel + * the pixel data. + * @param components + * the data array to write the components to (or null to have the + * method create the return array). + * @param offset + * the offset that determines where the results are written in + * the components array. + * @return the array of components corresponding to the pixel. */ public int[] getComponents(int pixel, int components[], int offset) { throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$ @@ -616,45 +666,45 @@ public abstract class ColorModel implements Transparency { /** * Gets the red component of the pixel determined by the pixel data. * - * @param pixel the pixel data - * - * @return the red component of the pixel + * @param pixel + * the pixel. + * @return the red component of the given pixel. */ public abstract int getRed(int pixel); /** - * Takes the pixel data and returns the int corresponding - * to the pixel's color in RGB format. - * - * @param pixel the pixel data + * Takes the pixel data and returns the integer value corresponding to the + * pixel's color in RGB format. * - * @return the corresponding RGB int + * @param pixel + * the pixel data. + * @return the corresponding RGB integer value. */ public int getRGB(int pixel) { - return (getAlpha(pixel) << 24 | getRed(pixel) << 16 - | getGreen(pixel) << 8 | getBlue(pixel)); + return (getAlpha(pixel) << 24 | getRed(pixel) << 16 | getGreen(pixel) << 8 | getBlue(pixel)); } /** * Gets the green component of the pixel determined by the pixel data. * - * @param pixel the pixel data - * - * @return the green component of the pixel + * @param pixel + * the pixel. + * @return the green component of the given pixel. */ public abstract int getGreen(int pixel); /** * Gets the size of the desired component of this color model. * - * @param componentIdx the index that determines which component size to get - * - * @return the component size corresponding to the index - * - * @throws NullPointerException if this color model doesn't support - * an array of separate components. - * @throws ArrayIndexOutOfBoundsException if the index is negative or - * greater than or equal to the number of components + * @param componentIdx + * the index that determines which component size to get. + * @return the component size corresponding to the index. + * @throws NullPointerException + * if this color model doesn't support an array of separate + * components. + * @throws ArrayIndexOutOfBoundsException + * if the index is negative or greater than or equal to the + * number of components. */ public int getComponentSize(int componentIdx) { if (bits == null) { @@ -663,7 +713,8 @@ public abstract class ColorModel implements Transparency { } if (componentIdx < 0 || componentIdx >= bits.length) { - // awt.274=componentIdx is greater than the number of components or less than zero + // awt.274=componentIdx is greater than the number of components or + // less than zero throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.274")); //$NON-NLS-1$ } @@ -673,25 +724,25 @@ public abstract class ColorModel implements Transparency { /** * Gets the blue component of the pixel determined by the pixel data. * - * @param pixel the pixel - * - * @return the blue component of the pixel + * @param pixel + * the pixel. + * @return the blue component of the given pixel. */ public abstract int getBlue(int pixel); /** * Gets the alpha component of the pixel determined by the pixel data. * - * @param pixel the pixel - * - * @return the alpha component of the pixel + * @param pixel + * the pixel. + * @return the alpha component of the given pixel. */ public abstract int getAlpha(int pixel); /** * Gets the array of sizes of the different components. * - * @return the array of sizes of the different components + * @return the array of sizes of the different components. */ public int[] getComponentSize() { if (bits != null) { @@ -701,9 +752,9 @@ public abstract class ColorModel implements Transparency { } /** - * Checks if the alpha component is premultiplied. + * Checks if the alpha component is pre-multiplied. * - * @return true, if the alpha component is premultiplied + * @return true, if the alpha component is pre-multiplied. */ public final boolean isAlphaPremultiplied() { return isAlphaPremultiplied; @@ -712,7 +763,7 @@ public abstract class ColorModel implements Transparency { /** * Checks whether this color model supports alpha. * - * @return true, if this color model has alpha + * @return true, if this color model has alpha. */ public final boolean hasAlpha() { return hasAlpha; @@ -776,12 +827,12 @@ public abstract class ColorModel implements Transparency { } /** - * Gets the transfer type, which is the type of Java primitive - * value that corresponds to the bit length per pixel: either - * {@link DataBuffer#TYPE_BYTE}, {@link DataBuffer#TYPE_USHORT}, + * Gets the transfer type, which is the type of Java primitive value that + * corresponds to the bit length per pixel: either + * {@link DataBuffer#TYPE_BYTE}, {@link DataBuffer#TYPE_USHORT}, * {@link DataBuffer#TYPE_INT}, or {@link DataBuffer#TYPE_UNDEFINED}. * - * @return the transfer type + * @return the transfer type. */ public final int getTransferType() { return transferType; @@ -790,7 +841,7 @@ public abstract class ColorModel implements Transparency { /** * Gets the pixel size in bits. * - * @return the pixel size + * @return the pixel size. */ public int getPixelSize() { return pixel_bits; @@ -799,7 +850,7 @@ public abstract class ColorModel implements Transparency { /** * Gets the number of components of this color model. * - * @return the number of components + * @return the number of components. */ public int getNumComponents() { return numComponents; @@ -808,7 +859,7 @@ public abstract class ColorModel implements Transparency { /** * Gets the number of color components of this color model. * - * @return the number color components + * @return the number color components. */ public int getNumColorComponents() { return numColorComponents; @@ -817,12 +868,11 @@ public abstract class ColorModel implements Transparency { /** * Gets the default RGB color model. * - * @return the default RGB color model + * @return the default RGB color model. */ public static ColorModel getRGBdefault() { if (RGBdefault == null) { - RGBdefault = new DirectColorModel(32, 0x00ff0000, 0x0000ff00, - 0x000000ff, 0xff000000); + RGBdefault = new DirectColorModel(32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000); } return RGBdefault; } @@ -830,66 +880,69 @@ public abstract class ColorModel implements Transparency { /* * Construct INT pixel representation from Object * @param obj - * * @return */ /** * Construct pixel. * - * @param obj the obj - * - * @return the int + * @param obj + * the obj. + * @return the int. */ private int constructPixel(Object obj) { int pixel = 0; switch (getTransferType()) { - case DataBuffer.TYPE_BYTE: - byte[] bPixel = (byte[]) obj; - if(bPixel.length > 1) { - // awt.275=This pixel representation is not suuported by tis Color Model - throw new UnsupportedOperationException(Messages.getString("awt.275")); //$NON-NLS-1$ - } - pixel = bPixel[0] & 0xff; - break; - - case DataBuffer.TYPE_USHORT: - short[] sPixel = (short[]) obj; - if(sPixel.length > 1) { - // awt.275=This pixel representation is not suuported by tis Color Model - throw new UnsupportedOperationException(Messages.getString("awt.275")); //$NON-NLS-1$ - } - pixel = sPixel[0] & 0xffff; - break; - - case DataBuffer.TYPE_INT: - int[] iPixel = (int[]) obj; - if(iPixel.length > 1) { - // awt.275=This pixel representation is not suuported by tis Color Model - throw new UnsupportedOperationException(Messages.getString("awt.275")); //$NON-NLS-1$ - } - pixel = iPixel[0]; - break; + case DataBuffer.TYPE_BYTE: + byte[] bPixel = (byte[])obj; + if (bPixel.length > 1) { + // awt.275=This pixel representation is not suuported by tis + // Color Model + throw new UnsupportedOperationException(Messages.getString("awt.275")); //$NON-NLS-1$ + } + pixel = bPixel[0] & 0xff; + break; + + case DataBuffer.TYPE_USHORT: + short[] sPixel = (short[])obj; + if (sPixel.length > 1) { + // awt.275=This pixel representation is not suuported by tis + // Color Model + throw new UnsupportedOperationException(Messages.getString("awt.275")); //$NON-NLS-1$ + } + pixel = sPixel[0] & 0xffff; + break; + + case DataBuffer.TYPE_INT: + int[] iPixel = (int[])obj; + if (iPixel.length > 1) { + // awt.275=This pixel representation is not suuported by tis + // Color Model + throw new UnsupportedOperationException(Messages.getString("awt.275")); //$NON-NLS-1$ + } + pixel = iPixel[0]; + break; - default: - // awt.22D=This transferType ( {0} ) is not supported by this color model - throw new UnsupportedOperationException(Messages.getString("awt.22D", //$NON-NLS-1$ - transferType)); + default: + // awt.22D=This transferType ( {0} ) is not supported by this + // color model + throw new UnsupportedOperationException(Messages.getString("awt.22D", //$NON-NLS-1$ + transferType)); } return pixel; } /** - * Gets the transfer type, which is the type of Java primitive - * value that corresponds to the bit length per pixel: either - * {@link DataBuffer#TYPE_BYTE}, {@link DataBuffer#TYPE_USHORT}, + * Gets the transfer type, which is the type of Java primitive value that + * corresponds to the bit length per pixel: either + * {@link DataBuffer#TYPE_BYTE}, {@link DataBuffer#TYPE_USHORT}, * {@link DataBuffer#TYPE_INT}, or {@link DataBuffer#TYPE_UNDEFINED}. * - * @param bits the array of component masks - * - * @return the transfer type + * @param bits + * the array of component masks. + * @return the transfer type. */ static int getTransferType(int bits) { if (bits <= 8) { diff --git a/awt/java/awt/image/ComponentColorModel.java b/awt/java/awt/image/ComponentColorModel.java index a152f55..4328fd3 100644 --- a/awt/java/awt/image/ComponentColorModel.java +++ b/awt/java/awt/image/ComponentColorModel.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.awt.color.ColorSpace; @@ -26,154 +27,202 @@ import org.apache.harmony.awt.gl.color.LUTColorConverter; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Class ComponentColorModel represents a color model that is defined - * in terms of its components. + * The Class ComponentColorModel represents a color model that is defined in + * terms of its components. + * + * @since Android 1.0 */ public class ComponentColorModel extends ColorModel { - /** The signed. */ - private boolean signed; // Pixel samples are signed. - // Samples with TransferType DataBuffer.TYPE_BYTE, - // DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT - - // unsigned. Samples with others TransferType - - // signed. + /** + * The signed. + */ + private boolean signed; // Pixel samples are signed. + + // Samples with TransferType DataBuffer.TYPE_BYTE, + // DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT - + // unsigned. Samples with others TransferType - + // signed. - /** The integral. */ + /** + * The integral. + */ private boolean integral; // Pixel samples are integral. - // Samples with TransferType DataBuffer.TYPE_BYTE, - // DataBuffer.TYPE_USHORT, DataBuffer.Short and - // DataBuffer.TYPE_INT - integral. - /** The scale factors. */ - private float scaleFactors[]; // Array of factors for reduction components - // values into the form scaled from 0 to 255 + // Samples with TransferType DataBuffer.TYPE_BYTE, + // DataBuffer.TYPE_USHORT, DataBuffer.Short and + // DataBuffer.TYPE_INT - integral. - /** The donot support unnormalized. */ + /** + * The scale factors. + */ + private float scaleFactors[]; // Array of factors for reduction components + + // values into the form scaled from 0 to 255 + + /** + * The donot support unnormalized. + */ private boolean donotSupportUnnormalized; // This Color Model don't support - // unnormolized form - /** The need alpha divide. */ + // unnormolized form + + /** + * The need alpha divide. + */ private boolean needAlphaDivide; // hasAlpha && isAlphaPremultiplied - /** The calc value. */ - private boolean calcValue; // Value was culculated + /** + * The calc value. + */ + private boolean calcValue; // Value was culculated - /** The need scale. */ - private boolean needScale; // Normalized value need to scale + /** + * The need scale. + */ + private boolean needScale; // Normalized value need to scale - /** The min vals. */ - private float minVals[]; // Array of Min normalized values + /** + * The min vals. + */ + private float minVals[]; // Array of Min normalized values - /** The ranges. */ - private float ranges[]; // Array of range normalized values + /** + * The ranges. + */ + private float ranges[]; // Array of range normalized values - /** The alpha lut. */ - private byte alphaLUT[]; // Lookup table for scale alpha value + /** + * The alpha lut. + */ + private byte alphaLUT[]; // Lookup table for scale alpha value - /** The color lu ts. */ - private byte colorLUTs[][]; // Lookup tables for scale color values + /** + * The color lu ts. + */ + private byte colorLUTs[][]; // Lookup tables for scale color values - /** The from_ linea r_ rg b_ lut. */ - private byte from_LINEAR_RGB_LUT[]; // Lookup table for conversion from - // Linear RGB Color Space into sRGB + /** + * The from_ linea r_ rg b_ lut. + */ + private byte from_LINEAR_RGB_LUT[]; // Lookup table for conversion from + + // Linear RGB Color Space into sRGB + + /** + * The to_ linea r_8 rg b_ lut. + */ + private byte to_LINEAR_8RGB_LUT[]; // Lookup table for conversion from - /** The to_ linea r_8 rg b_ lut. */ - private byte to_LINEAR_8RGB_LUT[]; // Lookup table for conversion from - // sRGB Color Space into Linear RGB - // 8 bit + // sRGB Color Space into Linear RGB + // 8 bit - /** The to_ linea r_16 rg b_ lut. */ + /** + * The to_ linea r_16 rg b_ lut. + */ private short to_LINEAR_16RGB_LUT[]; // Lookup table for conversion from - // sRGB Color Space into Linear RGB - // 16 bit - /** The LINEA r_ rg b_ length. */ - private int LINEAR_RGB_Length; // Linear RGB bit length + // sRGB Color Space into Linear RGB + // 16 bit + + /** + * The LINEA r_ rg b_ length. + */ + private int LINEAR_RGB_Length; // Linear RGB bit length + + /** + * The factor. + */ + private float fFactor; // Scale factor - /** The factor. */ - private float fFactor; // Scale factor + /** + * The is_s rgb. + */ + private boolean is_sRGB; // ColorModel has sRGB ColorSpace - /** The is_s rgb. */ - private boolean is_sRGB; // ColorModel has sRGB ColorSpace + /** + * The is_ linea r_ rgb. + */ + private boolean is_LINEAR_RGB; // Color Model has Linear RGB Color - /** The is_ linea r_ rgb. */ - private boolean is_LINEAR_RGB; // Color Model has Linear RGB Color - // Space + // Space /** * Instantiates a new component color model. * - * @param colorSpace the color space - * @param bits the array of component masks - * @param hasAlpha whether the color model has alpha - * @param isAlphaPremultiplied whether the alpha is premultiplied - * @param transparency the transparency strategy, @see java.awt.Transparency - * @param transferType the transfer type (primitive java type - * to use for the components) + * @param colorSpace + * the color space. + * @param bits + * the array of component masks. + * @param hasAlpha + * whether the color model has alpha. + * @param isAlphaPremultiplied + * whether the alpha is pre-multiplied. + * @param transparency + * the transparency strategy, @see java.awt.Transparency. + * @param transferType + * the transfer type (primitive java type to use for the + * components). */ - public ComponentColorModel(ColorSpace colorSpace, int bits[], - boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, - int transferType) { - super(createPixelBits(colorSpace, hasAlpha, transferType), - validateBits(bits, colorSpace, hasAlpha, transferType), - colorSpace, hasAlpha, isAlphaPremultiplied, transparency, + public ComponentColorModel(ColorSpace colorSpace, int bits[], boolean hasAlpha, + boolean isAlphaPremultiplied, int transparency, int transferType) { + super(createPixelBits(colorSpace, hasAlpha, transferType), validateBits(bits, colorSpace, + hasAlpha, transferType), colorSpace, hasAlpha, isAlphaPremultiplied, transparency, transferType); needScale = false; switch (transferType) { - case DataBuffer.TYPE_BYTE: - case DataBuffer.TYPE_USHORT: - case DataBuffer.TYPE_INT: - signed = false; - integral = true; - donotSupportUnnormalized = false; - scaleFactors = new float[numComponents]; - for (int i = 0; i < numColorComponents; i++) { - scaleFactors[i] = 1.0f / maxValues[i]; - if (cs.getMinValue(i) != 0.0f || cs.getMaxValue(i) != 1.0f) { - donotSupportUnnormalized = true; + case DataBuffer.TYPE_BYTE: + case DataBuffer.TYPE_USHORT: + case DataBuffer.TYPE_INT: + signed = false; + integral = true; + donotSupportUnnormalized = false; + scaleFactors = new float[numComponents]; + for (int i = 0; i < numColorComponents; i++) { + scaleFactors[i] = 1.0f / maxValues[i]; + if (cs.getMinValue(i) != 0.0f || cs.getMaxValue(i) != 1.0f) { + donotSupportUnnormalized = true; + } } - } - if (hasAlpha) { - maxValues[numColorComponents] = - (1 << bits[numColorComponents]) - 1; - scaleFactors[numColorComponents] = - 1.0f / maxValues[numColorComponents]; - } - break; - case DataBuffer.TYPE_SHORT: - signed = true; - integral = true; - donotSupportUnnormalized = true; - scaleFactors = new float[numComponents]; - for (int i = 0; i < numComponents; i++) { - maxValues[i] = Short.MAX_VALUE; - scaleFactors[i] = 1.0f / maxValues[i]; - if (cs.getMinValue(i) != 0.0f || cs.getMaxValue(i) != 1.0f) { - needScale = true; + if (hasAlpha) { + maxValues[numColorComponents] = (1 << bits[numColorComponents]) - 1; + scaleFactors[numColorComponents] = 1.0f / maxValues[numColorComponents]; } - } - if (needScale) { - minVals = new float[numColorComponents]; - ranges = new float[numColorComponents]; - for (int i = 0; i < numColorComponents; i++) { - minVals[i] = cs.getMinValue(i); - ranges[i] = cs.getMaxValue(i) - minVals[i]; + break; + case DataBuffer.TYPE_SHORT: + signed = true; + integral = true; + donotSupportUnnormalized = true; + scaleFactors = new float[numComponents]; + for (int i = 0; i < numComponents; i++) { + maxValues[i] = Short.MAX_VALUE; + scaleFactors[i] = 1.0f / maxValues[i]; + if (cs.getMinValue(i) != 0.0f || cs.getMaxValue(i) != 1.0f) { + needScale = true; + } } - } - break; - case DataBuffer.TYPE_FLOAT: - case DataBuffer.TYPE_DOUBLE: - signed = true; - integral = false; - donotSupportUnnormalized = true; - break; - default: - // awt.215=transferType is not one of DataBuffer.TYPE_BYTE, - // DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, - // DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, or - // DataBuffer.TYPE_DOUBLE - throw new IllegalArgumentException(Messages.getString("awt.215")); //$NON-NLS-1$ + if (needScale) { + minVals = new float[numColorComponents]; + ranges = new float[numColorComponents]; + for (int i = 0; i < numColorComponents; i++) { + minVals[i] = cs.getMinValue(i); + ranges[i] = cs.getMaxValue(i) - minVals[i]; + } + } + break; + case DataBuffer.TYPE_FLOAT: + case DataBuffer.TYPE_DOUBLE: + signed = true; + integral = false; + donotSupportUnnormalized = true; + break; + default: + // awt.215=transferType is not one of DataBuffer.TYPE_BYTE, + // DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, + // DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, or + // DataBuffer.TYPE_DOUBLE + throw new IllegalArgumentException(Messages.getString("awt.215")); //$NON-NLS-1$ } needAlphaDivide = hasAlpha && isAlphaPremultiplied; @@ -183,36 +232,40 @@ public class ComponentColorModel extends ColorModel { /** * Instantiates a new component color model. * - * @param colorSpace the color space - * @param hasAlpha whether the color model has alpha - * @param isAlphaPremultiplied whether the alpha is premultiplied - * @param transparency the transparency strategy, @see java.awt.Transparency - * @param transferType the transfer type (primitive java type - * to use for the components) + * @param colorSpace + * the color space. + * @param hasAlpha + * whether the color model has alpha. + * @param isAlphaPremultiplied + * whether the alpha is pre-multiplied. + * @param transparency + * the transparency strategy, @see java.awt.Transparency. + * @param transferType + * the transfer type (primitive java type to use for the + * components). */ public ComponentColorModel(ColorSpace colorSpace, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType) { - - this(colorSpace, - createPixelBitsArray(colorSpace, hasAlpha, transferType), - hasAlpha, - isAlphaPremultiplied, - transparency, - transferType); + + this(colorSpace, createPixelBitsArray(colorSpace, hasAlpha, transferType), hasAlpha, + isAlphaPremultiplied, transparency, transferType); } /** * Validate bits. * - * @param bits the bits - * @param colorSpace the color space - * @param hasAlpha the has alpha - * @param transferType the transfer type - * - * @return the int[] + * @param bits + * the bits. + * @param colorSpace + * the color space. + * @param hasAlpha + * the has alpha. + * @param transferType + * the transfer type. + * @return the int[]. */ - private static int[] validateBits(int bits[], ColorSpace colorSpace, - boolean hasAlpha, int transferType) { + private static int[] validateBits(int bits[], ColorSpace colorSpace, boolean hasAlpha, + int transferType) { if (bits != null) { return bits; } @@ -235,14 +288,15 @@ public class ComponentColorModel extends ColorModel { /** * Creates the pixel bits. * - * @param colorSpace the color space - * @param hasAlpha the has alpha - * @param transferType the transfer type - * - * @return the int + * @param colorSpace + * the color space. + * @param hasAlpha + * the has alpha. + * @param transferType + * the transfer type. + * @return the int. */ - private static int createPixelBits(ColorSpace colorSpace, boolean hasAlpha, - int transferType) { + private static int createPixelBits(ColorSpace colorSpace, boolean hasAlpha, int transferType) { int numComponents = colorSpace.getNumComponents(); if (hasAlpha) { numComponents++; @@ -254,22 +308,24 @@ public class ComponentColorModel extends ColorModel { /** * Creates the pixel bits array. * - * @param colorSpace the color space - * @param hasAlpha the has alpha - * @param transferType the transfer type - * - * @return the int[] + * @param colorSpace + * the color space. + * @param hasAlpha + * the has alpha. + * @param transferType + * the transfer type. + * @return the int[]. */ - private static int[] createPixelBitsArray(ColorSpace colorSpace, - boolean hasAlpha, int transferType) { - + private static int[] createPixelBitsArray(ColorSpace colorSpace, boolean hasAlpha, + int transferType) { + int numComponents = colorSpace.getNumComponents(); if (hasAlpha) { numComponents++; } int bits[] = new int[numComponents]; - for(int i = 0; i < numComponents; i++){ + for (int i = 0; i < numComponents; i++) { bits[i] = DataBuffer.getDataTypeSize(transferType); } return bits; @@ -278,217 +334,200 @@ public class ComponentColorModel extends ColorModel { @Override public Object getDataElements(int components[], int offset, Object obj) { if (donotSupportUnnormalized) { - // awt.213=This ComponentColorModel does not support the unnormalized form + // awt.213=This ComponentColorModel does not support the + // unnormalized form throw new IllegalArgumentException(Messages.getString("awt.213")); //$NON-NLS-1$ } if (offset + numComponents > components.length) { - // awt.216=The components array is not large enough to hold all the color and alpha components + // awt.216=The components array is not large enough to hold all the + // color and alpha components throw new IllegalArgumentException(Messages.getString("awt.216")); //$NON-NLS-1$ } switch (transferType) { - case DataBuffer.TYPE_BYTE: - byte ba[]; - if (obj == null) { - ba = new byte[numComponents]; - } else { - ba = (byte[]) obj; - } - for (int i = 0, idx = offset; i < numComponents; i++, idx++) { - ba[i] = (byte) components[idx]; - } - return ba; - case DataBuffer.TYPE_USHORT: - short sa[]; - if (obj == null) { - sa = new short[numComponents]; - } else { - sa = (short[]) obj; - } - for (int i = 0, idx = offset; i < numComponents; i++, idx++) { - sa[i] = (short) components[idx]; - } - return sa; - case DataBuffer.TYPE_INT: - int ia[]; - if (obj == null) { - ia = new int[numComponents]; - } else { - ia = (int[]) obj; - } - for (int i = 0, idx = offset; i < numComponents; i++, idx++) { - ia[i] = components[idx]; - } - return ia; - default: - // awt.217=The transfer type of this ComponentColorModel is not one - // of the following transfer types: DataBuffer.TYPE_BYTE, - // DataBuffer.TYPE_USHORT, or DataBuffer.TYPE_INT - throw new UnsupportedOperationException(Messages - .getString("awt.217")); //$NON-NLS-1$ + case DataBuffer.TYPE_BYTE: + byte ba[]; + if (obj == null) { + ba = new byte[numComponents]; + } else { + ba = (byte[])obj; + } + for (int i = 0, idx = offset; i < numComponents; i++, idx++) { + ba[i] = (byte)components[idx]; + } + return ba; + case DataBuffer.TYPE_USHORT: + short sa[]; + if (obj == null) { + sa = new short[numComponents]; + } else { + sa = (short[])obj; + } + for (int i = 0, idx = offset; i < numComponents; i++, idx++) { + sa[i] = (short)components[idx]; + } + return sa; + case DataBuffer.TYPE_INT: + int ia[]; + if (obj == null) { + ia = new int[numComponents]; + } else { + ia = (int[])obj; + } + for (int i = 0, idx = offset; i < numComponents; i++, idx++) { + ia[i] = components[idx]; + } + return ia; + default: + // awt.217=The transfer type of this ComponentColorModel is not + // one + // of the following transfer types: DataBuffer.TYPE_BYTE, + // DataBuffer.TYPE_USHORT, or DataBuffer.TYPE_INT + throw new UnsupportedOperationException(Messages.getString("awt.217")); //$NON-NLS-1$ } } @Override - public Object getDataElements(float normComponents[], int normOffset, - Object obj) { + public Object getDataElements(float normComponents[], int normOffset, Object obj) { if (needScale) { for (int i = 0, idx = 0; i < numColorComponents; i++, idx++) { - normComponents[idx] = - (normComponents[idx] - minVals[i]) / ranges[i]; + normComponents[idx] = (normComponents[idx] - minVals[i]) / ranges[i]; } } switch (transferType) { - case DataBuffer.TYPE_BYTE: - byte ba[]; - if (obj == null) { - ba = new byte[numComponents]; - } else { - ba = (byte[]) obj; - } - - if (needAlphaDivide) { - float alpha = normComponents[normOffset + numColorComponents]; - for (int i = 0, idx = normOffset; i < numColorComponents; - i++, idx++) { - ba[i] = (byte) (normComponents[idx] * alpha * - maxValues[i] + 0.5f); - } - ba[numColorComponents] = - (byte) (normComponents[normOffset + numColorComponents] * - maxValues[numColorComponents] + 0.5f); - } else { - for (int i = 0, idx = normOffset; i < numComponents; - i++, idx++) { - ba[idx] = - (byte) (normComponents[idx] * maxValues[i] + 0.5f); + case DataBuffer.TYPE_BYTE: + byte ba[]; + if (obj == null) { + ba = new byte[numComponents]; + } else { + ba = (byte[])obj; } - } - return ba; - case DataBuffer.TYPE_USHORT: - short usa[]; - if (obj == null) { - usa = new short[numComponents]; - } else { - usa = (short[]) obj; - } - - if (needAlphaDivide) { - float alpha = normComponents[normOffset + numColorComponents]; - for (int i = 0, idx = 0; i < numColorComponents; i++, idx++) { - usa[i] = (short) (normComponents[idx] * alpha * - maxValues[i] + 0.5f); - } - usa[numColorComponents] = (short) (alpha * - maxValues[numColorComponents] + 0.5f); - } else { - for (int i = 0, idx = normOffset; i < numComponents; - i++, idx++) { - usa[i] = (short) (normComponents[idx] * - maxValues[i] + 0.5f); + if (needAlphaDivide) { + float alpha = normComponents[normOffset + numColorComponents]; + for (int i = 0, idx = normOffset; i < numColorComponents; i++, idx++) { + ba[i] = (byte)(normComponents[idx] * alpha * maxValues[i] + 0.5f); + } + ba[numColorComponents] = (byte)(normComponents[normOffset + numColorComponents] + * maxValues[numColorComponents] + 0.5f); + } else { + for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { + ba[idx] = (byte)(normComponents[idx] * maxValues[i] + 0.5f); + } } - } - return usa; + return ba; - case DataBuffer.TYPE_INT: - int ia[]; - if (obj == null) { - ia = new int[numComponents]; - } else { - ia = (int[]) obj; - } - - if (needAlphaDivide) { - float alpha = normComponents[normOffset + numColorComponents]; - for (int i = 0, idx = 0; i < numColorComponents; i++, idx++) { - ia[i] = (int) (normComponents[idx] * alpha * - maxValues[i] + 0.5f); - } - ia[numColorComponents] = (int) (alpha * - maxValues[numColorComponents] + 0.5f); - } else { - for (int i = 0, idx = normOffset; i < numComponents; - i++, idx++) { - ia[i] = (int) (normComponents[idx] * maxValues[i] + 0.5f); + case DataBuffer.TYPE_USHORT: + short usa[]; + if (obj == null) { + usa = new short[numComponents]; + } else { + usa = (short[])obj; } - } - return ia; - case DataBuffer.TYPE_SHORT: - short sa[]; - if (obj == null) { - sa = new short[numComponents]; - } else { - sa = (short[]) obj; - } + if (needAlphaDivide) { + float alpha = normComponents[normOffset + numColorComponents]; + for (int i = 0, idx = 0; i < numColorComponents; i++, idx++) { + usa[i] = (short)(normComponents[idx] * alpha * maxValues[i] + 0.5f); + } + usa[numColorComponents] = (short)(alpha * maxValues[numColorComponents] + 0.5f); + } else { + for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { + usa[i] = (short)(normComponents[idx] * maxValues[i] + 0.5f); + } + } + return usa; - if (needAlphaDivide) { - float alpha = normComponents[normOffset + numColorComponents]; - for (int i = 0, idx = 0; i < numColorComponents; i++, idx++) { - sa[i] = (short) (normComponents[idx] * alpha * - maxValues[i] + 0.5f); + case DataBuffer.TYPE_INT: + int ia[]; + if (obj == null) { + ia = new int[numComponents]; + } else { + ia = (int[])obj; } - sa[numColorComponents] = (short) (alpha * - maxValues[numColorComponents] + 0.5f); - } else { - for (int i = 0, idx = normOffset; i < numComponents; - i++, idx++) { - sa[i] = (short) (normComponents[idx] * - maxValues[i] + 0.5f); + + if (needAlphaDivide) { + float alpha = normComponents[normOffset + numColorComponents]; + for (int i = 0, idx = 0; i < numColorComponents; i++, idx++) { + ia[i] = (int)(normComponents[idx] * alpha * maxValues[i] + 0.5f); + } + ia[numColorComponents] = (int)(alpha * maxValues[numColorComponents] + 0.5f); + } else { + for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { + ia[i] = (int)(normComponents[idx] * maxValues[i] + 0.5f); + } } - } - return sa; + return ia; - case DataBuffer.TYPE_FLOAT: - float fa[]; - if (obj == null) { - fa = new float[numComponents]; - } else { - fa = (float[]) obj; - } + case DataBuffer.TYPE_SHORT: + short sa[]; + if (obj == null) { + sa = new short[numComponents]; + } else { + sa = (short[])obj; + } - if (needAlphaDivide) { - float alpha = normComponents[normOffset + numColorComponents]; - for (int i = 0, idx = 0; i < numColorComponents; i++, idx++) { - fa[i] = normComponents[idx] * alpha; + if (needAlphaDivide) { + float alpha = normComponents[normOffset + numColorComponents]; + for (int i = 0, idx = 0; i < numColorComponents; i++, idx++) { + sa[i] = (short)(normComponents[idx] * alpha * maxValues[i] + 0.5f); + } + sa[numColorComponents] = (short)(alpha * maxValues[numColorComponents] + 0.5f); + } else { + for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { + sa[i] = (short)(normComponents[idx] * maxValues[i] + 0.5f); + } } - fa[numColorComponents] = alpha; - } else { - for (int i = 0, idx = normOffset; i < numComponents; - i++, idx++) { - fa[i] = normComponents[idx]; + return sa; + + case DataBuffer.TYPE_FLOAT: + float fa[]; + if (obj == null) { + fa = new float[numComponents]; + } else { + fa = (float[])obj; } - } - return fa; - case DataBuffer.TYPE_DOUBLE: - double da[]; - if (obj == null) { - da = new double[numComponents]; - } else { - da = (double[]) obj; - } + if (needAlphaDivide) { + float alpha = normComponents[normOffset + numColorComponents]; + for (int i = 0, idx = 0; i < numColorComponents; i++, idx++) { + fa[i] = normComponents[idx] * alpha; + } + fa[numColorComponents] = alpha; + } else { + for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { + fa[i] = normComponents[idx]; + } + } + return fa; - if (needAlphaDivide) { - double alpha = normComponents[normOffset + numColorComponents]; - for (int i = 0, idx = 0; i < numColorComponents; i++, idx++) { - da[i] = normComponents[idx] * alpha; + case DataBuffer.TYPE_DOUBLE: + double da[]; + if (obj == null) { + da = new double[numComponents]; + } else { + da = (double[])obj; } - da[numColorComponents] = alpha; - } else { - for (int i = 0, idx = normOffset; i < numComponents; - i++, idx++) { - da[i] = normComponents[idx]; + + if (needAlphaDivide) { + double alpha = normComponents[normOffset + numColorComponents]; + for (int i = 0, idx = 0; i < numColorComponents; i++, idx++) { + da[i] = normComponents[idx] * alpha; + } + da[numColorComponents] = alpha; + } else { + for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { + da[i] = normComponents[idx]; + } } - } - return da; + return da; - default: - // awt.213=This ComponentColorModel does not support the unnormalized form - throw new IllegalArgumentException(Messages.getString("awt.213")); //$NON-NLS-1$ + default: + // awt.213=This ComponentColorModel does not support the + // unnormalized form + throw new IllegalArgumentException(Messages.getString("awt.213")); //$NON-NLS-1$ } } @@ -544,7 +583,7 @@ public class ComponentColorModel extends ColorModel { normComp[numColorComponents] = normAlpha; } } - if(hasAlpha && isAlphaPremultiplied){ + if (hasAlpha && isAlphaPremultiplied) { normComp[0] *= normComp[numColorComponents]; normComp[1] *= normComp[numColorComponents]; normComp[2] *= normComp[numColorComponents]; @@ -555,7 +594,7 @@ public class ComponentColorModel extends ColorModel { @Override public WritableRaster getAlphaRaster(WritableRaster raster) { - if(!hasAlpha) { + if (!hasAlpha) { return null; } @@ -564,13 +603,12 @@ public class ComponentColorModel extends ColorModel { int bandList[] = new int[1]; bandList[0] = raster.getNumBands() - 1; - return raster.createWritableChild(x, y, raster.getWidth(), - raster.getHeight(), x, y, bandList); + return raster.createWritableChild(x, y, raster.getWidth(), raster.getHeight(), x, y, + bandList); } @Override - public ColorModel coerceData(WritableRaster raster, - boolean isAlphaPremultiplied) { + public ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied) { if (!hasAlpha || this.isAlphaPremultiplied == isAlphaPremultiplied) { return this; } @@ -582,333 +620,311 @@ public class ComponentColorModel extends ColorModel { if (isAlphaPremultiplied) { switch (transferType) { - case DataBuffer.TYPE_BYTE: - case DataBuffer.TYPE_USHORT: - case DataBuffer.TYPE_INT: - float alphaFactor = maxValues[numColorComponents]; - int iComponents[] = null; - int iTransparentComponents[] = new int[numComponents]; - for (int i = 0; i < h; i++, minY++) { - for (int j = 0, x = minX; j < w; j++, x++) { - iComponents = raster.getPixel(x, minY, - iComponents); - if (iComponents[numColorComponents] == 0) { - raster.setPixel(x, minY, iTransparentComponents); - } else { - float alpha = - iComponents[numColorComponents] / - alphaFactor; - for (int n = 0; n < numColorComponents; n++) { - iComponents[n] = - (int) (alpha * iComponents[n] + 0.5f); + case DataBuffer.TYPE_BYTE: + case DataBuffer.TYPE_USHORT: + case DataBuffer.TYPE_INT: + float alphaFactor = maxValues[numColorComponents]; + int iComponents[] = null; + int iTransparentComponents[] = new int[numComponents]; + for (int i = 0; i < h; i++, minY++) { + for (int j = 0, x = minX; j < w; j++, x++) { + iComponents = raster.getPixel(x, minY, iComponents); + if (iComponents[numColorComponents] == 0) { + raster.setPixel(x, minY, iTransparentComponents); + } else { + float alpha = iComponents[numColorComponents] / alphaFactor; + for (int n = 0; n < numColorComponents; n++) { + iComponents[n] = (int)(alpha * iComponents[n] + 0.5f); + } + raster.setPixel(x, minY, iComponents); } - raster.setPixel(x, minY, iComponents); } - } - - } - break; - case DataBuffer.TYPE_SHORT: - float sAlphaFactor = maxValues[numColorComponents]; - short sComponents[] = null; - short sTransparentComponents[] = new short[numComponents]; - for (int i = 0; i < h; i++, minY++) { - for (int j = 0, x = minX; j < w; j++, x++) { - sComponents = (short[]) raster.getDataElements(x, minY, - sComponents); - if (sComponents[numColorComponents] == 0) { - raster.setDataElements(x, minY, - sTransparentComponents); - } else { - float alpha = - sComponents[numColorComponents] / - sAlphaFactor; - for (int n = 0; n < numColorComponents; n++) { - sComponents[n] = - (byte) (alpha * sComponents[n] + 0.5f); + } + break; + + case DataBuffer.TYPE_SHORT: + float sAlphaFactor = maxValues[numColorComponents]; + short sComponents[] = null; + short sTransparentComponents[] = new short[numComponents]; + for (int i = 0; i < h; i++, minY++) { + for (int j = 0, x = minX; j < w; j++, x++) { + sComponents = (short[])raster.getDataElements(x, minY, sComponents); + if (sComponents[numColorComponents] == 0) { + raster.setDataElements(x, minY, sTransparentComponents); + } else { + float alpha = sComponents[numColorComponents] / sAlphaFactor; + for (int n = 0; n < numColorComponents; n++) { + sComponents[n] = (byte)(alpha * sComponents[n] + 0.5f); + } + raster.setDataElements(x, minY, sComponents); } - raster.setDataElements(x, minY, sComponents); } - } - - } - break; - case DataBuffer.TYPE_FLOAT: - float fComponents[] = null; - float fTransparentComponents[] = new float[numComponents]; - for (int i = 0; i < h; i++, minY++) { - for (int j = 0, x = minX; j < w; j++, x++) { - fComponents = raster.getPixel(x, minY, fComponents); - if (fComponents[numColorComponents] == 0.0f) { - raster.setDataElements(x, minY, - fTransparentComponents); - } else { - float alpha = fComponents[numColorComponents]; - for (int n = 0; n < numColorComponents; n++) { - fComponents[n] = fComponents[n] * alpha; + } + break; + + case DataBuffer.TYPE_FLOAT: + float fComponents[] = null; + float fTransparentComponents[] = new float[numComponents]; + for (int i = 0; i < h; i++, minY++) { + for (int j = 0, x = minX; j < w; j++, x++) { + fComponents = raster.getPixel(x, minY, fComponents); + if (fComponents[numColorComponents] == 0.0f) { + raster.setDataElements(x, minY, fTransparentComponents); + } else { + float alpha = fComponents[numColorComponents]; + for (int n = 0; n < numColorComponents; n++) { + fComponents[n] = fComponents[n] * alpha; + } + raster.setPixel(x, minY, fComponents); } - raster.setPixel(x, minY, fComponents); } - } - } - break; - - case DataBuffer.TYPE_DOUBLE: - double dComponents[] = null; - double dTransparentComponents[] = new double[numComponents]; - for (int i = 0; i < h; i++, minY++) { - for (int j = 0, x = minX; j < w; j++, x++) { - dComponents = raster.getPixel(x, minY, dComponents); - if (dComponents[numColorComponents] == 0.0) { - raster.setPixel(x, minY, dTransparentComponents); - } else { - double alpha = dComponents[numColorComponents]; - for (int n = 0; n < numColorComponents; n++) { - dComponents[n] = dComponents[n] * alpha; + } + break; + + case DataBuffer.TYPE_DOUBLE: + double dComponents[] = null; + double dTransparentComponents[] = new double[numComponents]; + for (int i = 0; i < h; i++, minY++) { + for (int j = 0, x = minX; j < w; j++, x++) { + dComponents = raster.getPixel(x, minY, dComponents); + if (dComponents[numColorComponents] == 0.0) { + raster.setPixel(x, minY, dTransparentComponents); + } else { + double alpha = dComponents[numColorComponents]; + for (int n = 0; n < numColorComponents; n++) { + dComponents[n] = dComponents[n] * alpha; + } + raster.setPixel(x, minY, dComponents); } - raster.setPixel(x, minY, dComponents); } - } - } - break; + } + break; - default: - // awt.219=This transferType is not supported by this color model - throw new UnsupportedOperationException(Messages.getString("awt.219")); //$NON-NLS-1$ + default: + // awt.219=This transferType is not supported by this color + // model + throw new UnsupportedOperationException(Messages.getString("awt.219")); //$NON-NLS-1$ } } else { switch (transferType) { - case DataBuffer.TYPE_BYTE: - case DataBuffer.TYPE_USHORT: - case DataBuffer.TYPE_INT: - float alphaFactor = maxValues[numColorComponents]; - int iComponents[] = null; - int iTransparentComponents[] = new int[numComponents]; - for (int i = 0; i < h; i++, minY++) { - for (int j = 0, x = minX; j < w; j++, x++) { - iComponents = raster.getPixel(x, minY, - iComponents); - if (iComponents[numColorComponents] == 0) { - raster.setPixel(x, minY, iTransparentComponents); - } else { - float alpha = - iComponents[numColorComponents] / - alphaFactor; - for (int n = 0; n < numColorComponents; n++) { - iComponents[n] = - (int) (iComponents[n] / - alpha + 0.5f); + case DataBuffer.TYPE_BYTE: + case DataBuffer.TYPE_USHORT: + case DataBuffer.TYPE_INT: + float alphaFactor = maxValues[numColorComponents]; + int iComponents[] = null; + int iTransparentComponents[] = new int[numComponents]; + for (int i = 0; i < h; i++, minY++) { + for (int j = 0, x = minX; j < w; j++, x++) { + iComponents = raster.getPixel(x, minY, iComponents); + if (iComponents[numColorComponents] == 0) { + raster.setPixel(x, minY, iTransparentComponents); + } else { + float alpha = iComponents[numColorComponents] / alphaFactor; + for (int n = 0; n < numColorComponents; n++) { + iComponents[n] = (int)(iComponents[n] / alpha + 0.5f); + } + raster.setPixel(x, minY, iComponents); } - raster.setPixel(x, minY, iComponents); } - } - } - break; - - case DataBuffer.TYPE_SHORT: - float sAlphaFactor = maxValues[numColorComponents]; - short sComponents[] = null; - short sTransparentComponents[] = new short[numComponents]; - for (int i = 0; i < h; i++, minY++) { - for (int j = 0, x = minX; j < w; j++, x++) { - sComponents = (short[]) raster.getDataElements(x, minY, - sComponents); - if (sComponents[numColorComponents] == 0) { - raster.setDataElements(x, minY, - sTransparentComponents); - } else { - float alpha = - sComponents[numColorComponents] / - sAlphaFactor; - for (int n = 0; n < numColorComponents; n++) { - sComponents[n] = - (byte) (sComponents[n] / - alpha + 0.5f); + } + break; + + case DataBuffer.TYPE_SHORT: + float sAlphaFactor = maxValues[numColorComponents]; + short sComponents[] = null; + short sTransparentComponents[] = new short[numComponents]; + for (int i = 0; i < h; i++, minY++) { + for (int j = 0, x = minX; j < w; j++, x++) { + sComponents = (short[])raster.getDataElements(x, minY, sComponents); + if (sComponents[numColorComponents] == 0) { + raster.setDataElements(x, minY, sTransparentComponents); + } else { + float alpha = sComponents[numColorComponents] / sAlphaFactor; + for (int n = 0; n < numColorComponents; n++) { + sComponents[n] = (byte)(sComponents[n] / alpha + 0.5f); + } + raster.setDataElements(x, minY, sComponents); } - raster.setDataElements(x, minY, sComponents); } - } - } - break; - - case DataBuffer.TYPE_FLOAT: - float fComponents[] = null; - float fTransparentComponents[] = new float[numComponents]; - for (int i = 0; i < h; i++, minY++) { - for (int j = 0, x = minX; j < w; j++, x++) { - fComponents = raster.getPixel(x, minY, fComponents); - if (fComponents[numColorComponents] == 0.0f) { - raster.setDataElements(x, minY, - fTransparentComponents); - } else { - float alpha = fComponents[numColorComponents]; - for (int n = 0; n < numColorComponents; n++) { - fComponents[n] = fComponents[n] / alpha; + } + break; + + case DataBuffer.TYPE_FLOAT: + float fComponents[] = null; + float fTransparentComponents[] = new float[numComponents]; + for (int i = 0; i < h; i++, minY++) { + for (int j = 0, x = minX; j < w; j++, x++) { + fComponents = raster.getPixel(x, minY, fComponents); + if (fComponents[numColorComponents] == 0.0f) { + raster.setDataElements(x, minY, fTransparentComponents); + } else { + float alpha = fComponents[numColorComponents]; + for (int n = 0; n < numColorComponents; n++) { + fComponents[n] = fComponents[n] / alpha; + } + raster.setPixel(x, minY, fComponents); } - raster.setPixel(x, minY, fComponents); } - } - - } - break; - case DataBuffer.TYPE_DOUBLE: - double dComponents[] = null; - double dTransparentComponents[] = new double[numComponents]; - for (int i = 0; i < h; i++, minY++) { - for (int j = 0, x = minX; j < w; j++, x++) { - dComponents = raster.getPixel(x, minY, dComponents); - if (dComponents[numColorComponents] == 0.0) { - raster.setPixel(x, minY, dTransparentComponents); - } else { - double alpha = dComponents[numColorComponents]; - for (int n = 0; n < numColorComponents; n++) { - dComponents[n] = dComponents[n] / alpha; + } + break; + + case DataBuffer.TYPE_DOUBLE: + double dComponents[] = null; + double dTransparentComponents[] = new double[numComponents]; + for (int i = 0; i < h; i++, minY++) { + for (int j = 0, x = minX; j < w; j++, x++) { + dComponents = raster.getPixel(x, minY, dComponents); + if (dComponents[numColorComponents] == 0.0) { + raster.setPixel(x, minY, dTransparentComponents); + } else { + double alpha = dComponents[numColorComponents]; + for (int n = 0; n < numColorComponents; n++) { + dComponents[n] = dComponents[n] / alpha; + } + raster.setPixel(x, minY, dComponents); } - raster.setPixel(x, minY, dComponents); } - } - } - break; - default: - // awt.219=This transferType is not supported by this color model - throw new UnsupportedOperationException(Messages.getString("awt.219")); //$NON-NLS-1$ + } + break; + default: + // awt.219=This transferType is not supported by this color + // model + throw new UnsupportedOperationException(Messages.getString("awt.219")); //$NON-NLS-1$ } } if (!signed) { - return new ComponentColorModel(cs, bits, hasAlpha, - isAlphaPremultiplied, transparency, transferType); + return new ComponentColorModel(cs, bits, hasAlpha, isAlphaPremultiplied, transparency, + transferType); } - return new ComponentColorModel(cs, null, hasAlpha, - isAlphaPremultiplied, transparency, transferType); + return new ComponentColorModel(cs, null, hasAlpha, isAlphaPremultiplied, transparency, + transferType); } @Override public int[] getComponents(Object pixel, int[] components, int offset) { if (donotSupportUnnormalized) { - // awt.213=This ComponentColorModel does not support the unnormalized form + // awt.213=This ComponentColorModel does not support the + // unnormalized form throw new IllegalArgumentException(Messages.getString("awt.213")); //$NON-NLS-1$ } if (components == null) { components = new int[offset + numComponents]; } else if (offset + numComponents > components.length) { - // awt.218=The components array is not large enough to hold all the color and alpha components + // awt.218=The components array is not large enough to hold all the + // color and alpha components throw new IllegalArgumentException(Messages.getString("awt.218")); //$NON-NLS-1$ } switch (transferType) { - case DataBuffer.TYPE_BYTE: - byte ba[] = (byte[]) pixel; + case DataBuffer.TYPE_BYTE: + byte ba[] = (byte[])pixel; - for (int i = 0, idx = offset; i < numComponents; i++, idx++) { - components[idx] = ba[i] & 0xff; - } - return components; + for (int i = 0, idx = offset; i < numComponents; i++, idx++) { + components[idx] = ba[i] & 0xff; + } + return components; - case DataBuffer.TYPE_USHORT: - short sa[] = (short[]) pixel; - for (int i = 0, idx = offset; i < numComponents; i++, idx++) { - components[idx] = sa[i] & 0xffff; - } - return components; + case DataBuffer.TYPE_USHORT: + short sa[] = (short[])pixel; + for (int i = 0, idx = offset; i < numComponents; i++, idx++) { + components[idx] = sa[i] & 0xffff; + } + return components; - case DataBuffer.TYPE_INT: - int ia[] = (int[]) pixel; - for (int i = 0, idx = offset; i < numComponents; i++, idx++) { - components[idx] = ia[i]; - } - return components; - - default: - // awt.217=The transfer type of this ComponentColorModel is not one - // of the following transfer types: DataBuffer.TYPE_BYTE, - // DataBuffer.TYPE_USHORT, or DataBuffer.TYPE_INT - throw new UnsupportedOperationException(Messages - .getString("awt.217")); //$NON-NLS-1$ + case DataBuffer.TYPE_INT: + int ia[] = (int[])pixel; + for (int i = 0, idx = offset; i < numComponents; i++, idx++) { + components[idx] = ia[i]; + } + return components; + + default: + // awt.217=The transfer type of this ComponentColorModel is not + // one + // of the following transfer types: DataBuffer.TYPE_BYTE, + // DataBuffer.TYPE_USHORT, or DataBuffer.TYPE_INT + throw new UnsupportedOperationException(Messages.getString("awt.217")); //$NON-NLS-1$ } } @Override - public float[] getNormalizedComponents(Object pixel, - float normComponents[], int normOffset) { + public float[] getNormalizedComponents(Object pixel, float normComponents[], int normOffset) { if (normComponents == null) { normComponents = new float[numComponents + normOffset]; } switch (transferType) { - case DataBuffer.TYPE_BYTE: - byte ba[] = (byte[]) pixel; - for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { - normComponents[idx] = (ba[i] & 0xff) * scaleFactors[i]; - } - break; + case DataBuffer.TYPE_BYTE: + byte ba[] = (byte[])pixel; + for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { + normComponents[idx] = (ba[i] & 0xff) * scaleFactors[i]; + } + break; - case DataBuffer.TYPE_USHORT: - short usa[] = (short[]) pixel; - for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { - normComponents[idx] = (usa[i] & 0xffff) - * scaleFactors[i]; - } - break; + case DataBuffer.TYPE_USHORT: + short usa[] = (short[])pixel; + for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { + normComponents[idx] = (usa[i] & 0xffff) * scaleFactors[i]; + } + break; - case DataBuffer.TYPE_INT: - int ia[] = (int[]) pixel; - for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { - normComponents[idx] = ia[i] * scaleFactors[i]; - } - break; + case DataBuffer.TYPE_INT: + int ia[] = (int[])pixel; + for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { + normComponents[idx] = ia[i] * scaleFactors[i]; + } + break; - case DataBuffer.TYPE_SHORT: - short sa[] = (short[]) pixel; - for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { - normComponents[idx] = sa[i] * scaleFactors[i]; - } - break; + case DataBuffer.TYPE_SHORT: + short sa[] = (short[])pixel; + for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { + normComponents[idx] = sa[i] * scaleFactors[i]; + } + break; - case DataBuffer.TYPE_FLOAT: - float fa[] = (float[]) pixel; - for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { - normComponents[idx] = fa[i]; - } - break; + case DataBuffer.TYPE_FLOAT: + float fa[] = (float[])pixel; + for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { + normComponents[idx] = fa[i]; + } + break; - case DataBuffer.TYPE_DOUBLE: - double da[] = (double[]) pixel; - for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { - normComponents[idx] = (float) da[i]; - } - break; + case DataBuffer.TYPE_DOUBLE: + double da[] = (double[])pixel; + for (int i = 0, idx = normOffset; i < numComponents; i++, idx++) { + normComponents[idx] = (float)da[i]; + } + break; - default: - // awt.21A=This ComponentColorModel does not support this transferType - throw new IllegalArgumentException(Messages.getString("awt.21A")); //$NON-NLS-1$ + default: + // awt.21A=This ComponentColorModel does not support this + // transferType + throw new IllegalArgumentException(Messages.getString("awt.21A")); //$NON-NLS-1$ } if (needAlphaDivide) { float alpha = normComponents[normOffset + numColorComponents]; - for (int i = 0, idx = normOffset; i < numColorComponents; - i++, idx++) { + for (int i = 0, idx = normOffset; i < numColorComponents; i++, idx++) { normComponents[idx] /= alpha; } } if (needScale) { - for (int i = 0, idx = normOffset; i < numColorComponents; - i++, idx++) { - normComponents[idx] = minVals[i] + - ranges[i] * normComponents[idx]; + for (int i = 0, idx = normOffset; i < numColorComponents; i++, idx++) { + normComponents[idx] = minVals[i] + ranges[i] * normComponents[idx]; } } return normComponents; @@ -934,8 +950,7 @@ public class ComponentColorModel extends ColorModel { int gray = getRed(inData); return (alpha << 24 | gray << 16 | gray << 8 | gray); } - return (alpha << 24 | getRed(inData) << 16 | getGreen(inData) << 8 | - getBlue(inData)); + return (alpha << 24 | getRed(inData) << 16 | getGreen(inData) << 8 | getBlue(inData)); } @Override @@ -956,50 +971,50 @@ public class ComponentColorModel extends ColorModel { int alpha = 0; switch (transferType) { - case DataBuffer.TYPE_BYTE: { - byte ba[] = (byte[]) inData; - alpha = ba[numColorComponents] & 0xff; - if (bits[numColorComponents] != 8) { - return alphaLUT[alpha] & 0xff; + case DataBuffer.TYPE_BYTE: { + byte ba[] = (byte[])inData; + alpha = ba[numColorComponents] & 0xff; + if (bits[numColorComponents] != 8) { + return alphaLUT[alpha] & 0xff; + } + return alpha; } - return alpha; - } - case DataBuffer.TYPE_USHORT: { - short usa[] = (short[]) inData; - alpha = usa[numColorComponents] & 0xffff; - if (bits[numColorComponents] != 8) { - return alphaLUT[alpha] & 0xff; + case DataBuffer.TYPE_USHORT: { + short usa[] = (short[])inData; + alpha = usa[numColorComponents] & 0xffff; + if (bits[numColorComponents] != 8) { + return alphaLUT[alpha] & 0xff; + } + return alpha; } - return alpha; - } - case DataBuffer.TYPE_INT: { - int ia[] = (int[]) inData; - alpha = ia[numColorComponents]; - if (bits[numColorComponents] != 8) { - return alphaLUT[alpha] & 0xff; + case DataBuffer.TYPE_INT: { + int ia[] = (int[])inData; + alpha = ia[numColorComponents]; + if (bits[numColorComponents] != 8) { + return alphaLUT[alpha] & 0xff; + } + return alpha; } - return alpha; - } - case DataBuffer.TYPE_SHORT: { - short sa[] = (short[]) inData; - alpha = sa[numColorComponents]; - if (bits[numColorComponents] != 8) { - return alphaLUT[alpha] & 0xff; + case DataBuffer.TYPE_SHORT: { + short sa[] = (short[])inData; + alpha = sa[numColorComponents]; + if (bits[numColorComponents] != 8) { + return alphaLUT[alpha] & 0xff; + } + return alpha; + } + case DataBuffer.TYPE_FLOAT: { + float fa[] = (float[])inData; + return (int)(fa[numColorComponents] * 255.0f + 0.5f); + } + case DataBuffer.TYPE_DOUBLE: { + double da[] = (double[])inData; + return (int)(da[numColorComponents] * 255.0 + 0.5); + } + default: { + // awt.214=This Color Model doesn't support this transferType + throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ } - return alpha; - } - case DataBuffer.TYPE_FLOAT: { - float fa[] = (float[]) inData; - return (int) (fa[numColorComponents] * 255.0f + 0.5f); - } - case DataBuffer.TYPE_DOUBLE: { - double da[] = (double[]) inData; - return (int) (da[numColorComponents] * 255.0 + 0.5); - } - default: { - // awt.214=This Color Model doesn't support this transferType - throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ - } } } @@ -1032,14 +1047,14 @@ public class ComponentColorModel extends ColorModel { } switch (transferType) { - case DataBuffer.TYPE_BYTE: - case DataBuffer.TYPE_USHORT: - return new PixelInterleavedSampleModel(transferType, w, h, - numComponents, w * numComponents, bandOffsets); - - default: - return new ComponentSampleModel(transferType, w, h, numComponents, - w * numComponents, bandOffsets); + case DataBuffer.TYPE_BYTE: + case DataBuffer.TYPE_USHORT: + return new PixelInterleavedSampleModel(transferType, w, h, numComponents, w + * numComponents, bandOffsets); + + default: + return new ComponentSampleModel(transferType, w, h, numComponents, w + * numComponents, bandOffsets); } } @@ -1067,15 +1082,15 @@ public class ComponentColorModel extends ColorModel { } @Override - public float[] getNormalizedComponents(int components[], int offset, - float normComponents[], int normOffset) { + public float[] getNormalizedComponents(int components[], int offset, float normComponents[], + int normOffset) { if (donotSupportUnnormalized) { - // awt.213=This ComponentColorModel does not support the unnormalized form + // awt.213=This ComponentColorModel does not support the + // unnormalized form throw new IllegalArgumentException(Messages.getString("awt.213")); //$NON-NLS-1$ } - return super.getNormalizedComponents(components, offset, - normComponents, normOffset); + return super.getNormalizedComponents(components, offset, normComponents, normOffset); } @Override @@ -1085,28 +1100,30 @@ public class ComponentColorModel extends ColorModel { throw new IllegalArgumentException(Messages.getString("awt.212")); //$NON-NLS-1$ } if (donotSupportUnnormalized) { - // awt.213=This ComponentColorModel does not support the unnormalized form + // awt.213=This ComponentColorModel does not support the + // unnormalized form throw new IllegalArgumentException(Messages.getString("awt.213")); //$NON-NLS-1$ } return components[offset]; } @Override - public int[] getUnnormalizedComponents(float[] normComponents, - int normOffset, int[] components, int offset) { + public int[] getUnnormalizedComponents(float[] normComponents, int normOffset, + int[] components, int offset) { if (donotSupportUnnormalized) { - // awt.213=This ComponentColorModel does not support the unnormalized form + // awt.213=This ComponentColorModel does not support the + // unnormalized form throw new IllegalArgumentException(Messages.getString("awt.213")); //$NON-NLS-1$ } if (normComponents.length - normOffset < numComponents) { - // awt.21B=The length of normComponents minus normOffset is less than numComponents + // awt.21B=The length of normComponents minus normOffset is less + // than numComponents throw new IllegalArgumentException(Messages.getString("awt.21B")); //$NON-NLS-1$ } - return super.getUnnormalizedComponents(normComponents, normOffset, - components, offset); + return super.getUnnormalizedComponents(normComponents, normOffset, components, offset); } @Override @@ -1123,19 +1140,19 @@ public class ComponentColorModel extends ColorModel { Object pixel = getDataElements(normComponents, normOffset, null); switch (transferType) { - case DataBuffer.TYPE_BYTE: - byte ba[] = (byte[]) pixel; - return ba[0] & 0xff; - case DataBuffer.TYPE_USHORT: - short sa[] = (short[]) pixel; - return sa[0] & 0xffff; - case DataBuffer.TYPE_INT: - int ia[] = (int[]) pixel; - return ia[0]; - default: - // awt.211=Pixel values for this ColorModel are not conveniently - // representable as a single int - throw new IllegalArgumentException(Messages.getString("awt.211")); //$NON-NLS-1$ + case DataBuffer.TYPE_BYTE: + byte ba[] = (byte[])pixel; + return ba[0] & 0xff; + case DataBuffer.TYPE_USHORT: + short sa[] = (short[])pixel; + return sa[0] & 0xffff; + case DataBuffer.TYPE_INT: + int ia[] = (int[])pixel; + return ia[0]; + default: + // awt.211=Pixel values for this ColorModel are not conveniently + // representable as a single int + throw new IllegalArgumentException(Messages.getString("awt.211")); //$NON-NLS-1$ } } @@ -1146,7 +1163,8 @@ public class ComponentColorModel extends ColorModel { throw new IllegalArgumentException(Messages.getString("awt.212")); //$NON-NLS-1$ } if (donotSupportUnnormalized) { - // awt.213=This ComponentColorModel does not support the unnormalized form + // awt.213=This ComponentColorModel does not support the + // unnormalized form throw new IllegalArgumentException(Messages.getString("awt.213")); //$NON-NLS-1$ } @@ -1161,31 +1179,31 @@ public class ComponentColorModel extends ColorModel { @Override public int getRed(int pixel) { float rgb[] = toRGB(pixel); - return (int) (rgb[0] * 255.0f + 0.5f); + return (int)(rgb[0] * 255.0f + 0.5f); } @Override public int getRGB(int pixel) { - return (getAlpha(pixel) << 24) | (getRed(pixel) << 16) | - (getGreen(pixel) << 8) | getBlue(pixel); + return (getAlpha(pixel) << 24) | (getRed(pixel) << 16) | (getGreen(pixel) << 8) + | getBlue(pixel); } @Override public int getGreen(int pixel) { float rgb[] = toRGB(pixel); - return (int) (rgb[1] * 255.0f + 0.5f); + return (int)(rgb[1] * 255.0f + 0.5f); } @Override public int getBlue(int pixel) { float rgb[] = toRGB(pixel); - return (int) (rgb[2] * 255.0f + 0.5f); + return (int)(rgb[2] * 255.0f + 0.5f); } @Override public int getAlpha(int pixel) { - // This method throw IllegalArgumentException according to + // This method throw IllegalArgumentException according to // Java API Spacification if (signed) { // awt.210=The component value for this ColorModel is signed @@ -1210,24 +1228,19 @@ public class ComponentColorModel extends ColorModel { if (hasAlpha && bits[numColorComponents] != 8 && integral) { alphaLUT = new byte[maxValues[numColorComponents] + 1]; for (int i = 0; i <= maxValues[numColorComponents]; i++) { - alphaLUT[i] = (byte) (scaleFactors[numColorComponents] * i + - 0.5f); + alphaLUT[i] = (byte)(scaleFactors[numColorComponents] * i + 0.5f); } } if (is_LINEAR_RGB) { if (maxBitLength > 8) { LINEAR_RGB_Length = 16; - from_LINEAR_RGB_LUT = - LUTColorConverter.getFrom16lRGBtosRGB_LUT(); - to_LINEAR_16RGB_LUT = - LUTColorConverter.getFromsRGBto16lRGB_LUT(); + from_LINEAR_RGB_LUT = LUTColorConverter.getFrom16lRGBtosRGB_LUT(); + to_LINEAR_16RGB_LUT = LUTColorConverter.getFromsRGBto16lRGB_LUT(); } else { LINEAR_RGB_Length = 8; - from_LINEAR_RGB_LUT = - LUTColorConverter.getFrom8lRGBtosRGB_LUT(); - to_LINEAR_8RGB_LUT = - LUTColorConverter.getFromsRGBto8lRGB_LUT(); + from_LINEAR_RGB_LUT = LUTColorConverter.getFrom8lRGBtosRGB_LUT(); + to_LINEAR_8RGB_LUT = LUTColorConverter.getFromsRGBto8lRGB_LUT(); } fFactor = ((1 << LINEAR_RGB_Length) - 1); } else { @@ -1248,8 +1261,7 @@ public class ComponentColorModel extends ColorModel { } colorLUTs[i] = new byte[maxValues[i] + 1]; for (int j = 0; j <= maxValues[0]; j++) { - colorLUTs[i][j] = - (byte) (scaleFactors[i] * j + 0.5f); + colorLUTs[i][j] = (byte)(scaleFactors[i] * j + 0.5f); } } } @@ -1269,10 +1281,9 @@ public class ComponentColorModel extends ColorModel { for (int j = 0; j <= maxValues[0]; j++) { int idx; if (LINEAR_RGB_Length == 8) { - idx = (int) (scaleFactors[i] * j + 0.5f); + idx = (int)(scaleFactors[i] * j + 0.5f); } else { - idx = (int) (scaleFactors[i] * j * 257.0f + - 0.5f); + idx = (int)(scaleFactors[i] * j * 257.0f + 0.5f); } colorLUTs[i][j] = from_LINEAR_RGB_LUT[idx]; } @@ -1286,13 +1297,13 @@ public class ComponentColorModel extends ColorModel { /** * To rgb. * - * @param pixel - int representation of pixel - * - * @return - array of normalized sRGB components + * @param pixel + * the integer representation of the pixel. + * @return the array of normalized sRGB components. */ private float[] toRGB(int pixel) { - - // This method throw IllegalArgumentException according to + + // This method throw IllegalArgumentException according to // Java API Spacification if (signed) { // awt.210=The component value for this ColorModel is signed @@ -1307,23 +1318,23 @@ public class ComponentColorModel extends ColorModel { Object obj = null; switch (transferType) { - case DataBuffer.TYPE_BYTE: - byte ba[] = new byte[1]; - ba[0] = (byte) pixel; - obj = ba; - break; - - case DataBuffer.TYPE_USHORT: - short sa[] = new short[1]; - sa[0] = (short) pixel; - obj = sa; - break; - - case DataBuffer.TYPE_INT: - int ia[] = new int[1]; - ia[0] = pixel; - obj = ia; - break; + case DataBuffer.TYPE_BYTE: + byte ba[] = new byte[1]; + ba[0] = (byte)pixel; + obj = ba; + break; + + case DataBuffer.TYPE_USHORT: + short sa[] = new short[1]; + sa[0] = (short)pixel; + obj = sa; + break; + + case DataBuffer.TYPE_INT: + int ia[] = new int[1]; + ia[0] = pixel; + obj = ia; + break; } @@ -1331,12 +1342,13 @@ public class ComponentColorModel extends ColorModel { } /** - * Gets the rgb component. + * Gets the RGB component. * - * @param pixel - pixel - * @param idx - index of component - * - * @return - RGB value from 0 to 255 pixel's component + * @param pixel + * the pixel. + * @param idx + * the index of component. + * @return the RGB value from 0 to 255 pixel's component. */ private int getRGBComponent(Object pixel, int idx) { if (is_sRGB) { @@ -1355,117 +1367,116 @@ public class ComponentColorModel extends ColorModel { float normComp[] = getNormalizedComponents(pixel, null, 0); float rgbComp[] = cs.toRGB(normComp); - return (int) (rgbComp[idx] * 255.0f + 0.5f); + return (int)(rgbComp[idx] * 255.0f + 0.5f); } /** * Gets the def component. * - * @param pixel - pixel - * @param idx - index of component - * - * @return - tentative value of the pixel component + * @param pixel + * the pixel. + * @param idx + * the index of component. + * @return the tentative value of the pixel component. */ private int getDefComponent(Object pixel, int idx) { int comp = 0; calcValue = false; switch (transferType) { - case DataBuffer.TYPE_BYTE: - byte ba[] = (byte[]) pixel; - comp = ba[idx] & 0xff; - if (needAlphaDivide) { - int alpha = ba[numColorComponents] & 0xff; - if (alpha == 0) { - comp = 0; - } else { - float normAlpha = scaleFactors[numColorComponents] * alpha; - comp = (int) (comp * fFactor / normAlpha + 0.5f); + case DataBuffer.TYPE_BYTE: + byte ba[] = (byte[])pixel; + comp = ba[idx] & 0xff; + if (needAlphaDivide) { + int alpha = ba[numColorComponents] & 0xff; + if (alpha == 0) { + comp = 0; + } else { + float normAlpha = scaleFactors[numColorComponents] * alpha; + comp = (int)(comp * fFactor / normAlpha + 0.5f); + } + calcValue = true; } - calcValue = true; - } - return comp; - - case DataBuffer.TYPE_USHORT: - short usa[] = (short[]) pixel; - comp = usa[idx] & 0xffff; - if (needAlphaDivide) { - int alpha = usa[numColorComponents] & 0xffff; - if (alpha == 0) { - comp = 0; - } else { - float normAlpha = scaleFactors[numColorComponents] * alpha; - comp = (int) (comp * fFactor / normAlpha + 0.5f); + return comp; + + case DataBuffer.TYPE_USHORT: + short usa[] = (short[])pixel; + comp = usa[idx] & 0xffff; + if (needAlphaDivide) { + int alpha = usa[numColorComponents] & 0xffff; + if (alpha == 0) { + comp = 0; + } else { + float normAlpha = scaleFactors[numColorComponents] * alpha; + comp = (int)(comp * fFactor / normAlpha + 0.5f); + } + calcValue = true; } - calcValue = true; - } - return comp; - - case DataBuffer.TYPE_INT: - int ia[] = (int[]) pixel; - comp = ia[idx]; - if (needAlphaDivide) { - int alpha = ia[numColorComponents]; - if (alpha == 0) { - comp = 0; - } else { - float normAlpha = scaleFactors[numColorComponents] * alpha; - comp = (int) (comp * fFactor / normAlpha + 0.5f); + return comp; + + case DataBuffer.TYPE_INT: + int ia[] = (int[])pixel; + comp = ia[idx]; + if (needAlphaDivide) { + int alpha = ia[numColorComponents]; + if (alpha == 0) { + comp = 0; + } else { + float normAlpha = scaleFactors[numColorComponents] * alpha; + comp = (int)(comp * fFactor / normAlpha + 0.5f); + } + calcValue = true; } - calcValue = true; - } - return comp; - - case DataBuffer.TYPE_SHORT: - short sa[] = (short[]) pixel; - comp = sa[idx]; - if (needAlphaDivide) { - int alpha = sa[numColorComponents]; - if (alpha == 0) { - comp = 0; - } else { - float normAlpha = scaleFactors[numColorComponents] * alpha; - comp = (int) (comp * fFactor / normAlpha + 0.5f); + return comp; + + case DataBuffer.TYPE_SHORT: + short sa[] = (short[])pixel; + comp = sa[idx]; + if (needAlphaDivide) { + int alpha = sa[numColorComponents]; + if (alpha == 0) { + comp = 0; + } else { + float normAlpha = scaleFactors[numColorComponents] * alpha; + comp = (int)(comp * fFactor / normAlpha + 0.5f); + } + calcValue = true; } - calcValue = true; - } - return comp; - - case DataBuffer.TYPE_FLOAT: - float fa[] = (float[]) pixel; - if (needAlphaDivide) { - float alpha = fa[numColorComponents]; - if (fa[numColorComponents] == 0.0f) { - comp = 0; + return comp; + + case DataBuffer.TYPE_FLOAT: + float fa[] = (float[])pixel; + if (needAlphaDivide) { + float alpha = fa[numColorComponents]; + if (fa[numColorComponents] == 0.0f) { + comp = 0; + } else { + comp = (int)(fa[idx] * fFactor / alpha + 0.5f); + } } else { - comp = (int) (fa[idx] * fFactor / alpha + 0.5f); + comp = (int)(fa[idx] * fFactor + 0.5f); } - } else { - comp = (int) (fa[idx] * fFactor + 0.5f); - } - calcValue = true; - return comp; - - case DataBuffer.TYPE_DOUBLE: - double da[] = (double[]) pixel; - if (needAlphaDivide) { - if (da[numColorComponents] == 0.0) { - comp = 0; + calcValue = true; + return comp; + + case DataBuffer.TYPE_DOUBLE: + double da[] = (double[])pixel; + if (needAlphaDivide) { + if (da[numColorComponents] == 0.0) { + comp = 0; + } else { + comp = (int)(da[idx] * fFactor / da[numColorComponents] + 0.5); + } } else { - comp = (int) (da[idx] * fFactor / da[numColorComponents] + - 0.5); + comp = (int)(da[idx] * fFactor + 0.5); } - } else { - comp = (int) (da[idx] * fFactor + 0.5); - } - calcValue = true; - return comp; + calcValue = true; + return comp; - default: - // awt.214=This Color Model doesn't support this transferType - throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ + default: + // awt.214=This Color Model doesn't support this transferType + throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ } } } - diff --git a/awt/java/awt/image/ComponentSampleModel.java b/awt/java/awt/image/ComponentSampleModel.java index 2ff4f1a..7f81409 100644 --- a/awt/java/awt/image/ComponentSampleModel.java +++ b/awt/java/awt/image/ComponentSampleModel.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.util.Arrays; @@ -25,55 +26,73 @@ import java.util.Arrays; import org.apache.harmony.awt.internal.nls.Messages; /** - * The ComponentSampleModel class represents a set of image data whose - * each element - the sample of a pixel - takes one data element of - * the DataBuffer. + * The ComponentSampleModel class represents a set of image data whose each + * element - the sample of a pixel - takes one data element of the DataBuffer. * <p> - * The Bank indices denote the correspondence between the bank of data - * buffers and a band of image data. The Pixel stride is the number of data - * array elements between two samples for the same band on the same - * scanline. The pixel stride for a BandedSampleModel is one. The Scanline - * stride represents the number of data array elements between a - * specified sample and the corresponding sample in the same column in - * the next scanline. The array of band offsets gives the starting - * offsets within each data banks of the in the DataBuffer. The bank - * indices represents the indices within each bank of the DataBuffer - * corresponding to a band of image data. + * The Bank indices denote the correspondence between the bank of data buffers + * and a band of image data. The Pixel stride is the number of data array + * elements between two samples for the same band on the same scanline. The + * pixel stride for a BandedSampleModel is one. The scanline stride represents + * the number of data array elements between a specified sample and the + * corresponding sample in the same column in the next scanline. The array of + * band offsets gives the starting offsets within each data banks of the in the + * DataBuffer. The bank indices represents the indices within each bank of the + * DataBuffer corresponding to a band of image data. + * + * @since Android 1.0 */ public class ComponentSampleModel extends SampleModel { - /** The band offsets array of this ComponentSampleModel. */ + /** + * The band offsets array of this ComponentSampleModel. + */ protected int bandOffsets[]; - /** The bank indices array of this ComponentSampleModel. */ + /** + * The bank indices array of this ComponentSampleModel. + */ protected int bankIndices[]; - /** The number of bands in this ComponentSampleModel. */ + /** + * The number of bands in this ComponentSampleModel. + */ protected int numBands; - /** The number banks of this ComponentSampleModel. */ + /** + * The number banks of this ComponentSampleModel. + */ protected int numBanks; - /** The scanline stride of this ComponentSampleModel. */ + /** + * The scanline stride of this ComponentSampleModel. + */ protected int scanlineStride; - /** The pixel stride of this ComponentSampleModel. */ + /** + * The pixel stride of this ComponentSampleModel. + */ protected int pixelStride; /** - * Instantiates a new ComponentSampleModel with the specified - * properties. + * Instantiates a new ComponentSampleModel with the specified properties. * - * @param dataType the data type of samples. - * @param w the width of the image data. - * @param h the height of the image data. - * @param pixelStride the pixel stride of the image data. - * @param scanlineStride the scanline stride of the image data. - * @param bankIndices the array of the bank indices. - * @param bandOffsets the array of the band offsets. + * @param dataType + * the data type of samples. + * @param w + * the width of the image data. + * @param h + * the height of the image data. + * @param pixelStride + * the pixel stride of the image data. + * @param scanlineStride + * the scanline stride of the image data. + * @param bankIndices + * the array of the bank indices. + * @param bandOffsets + * the array of the band offsets. */ - public ComponentSampleModel(int dataType, int w, int h, int pixelStride, - int scanlineStride, int bankIndices[], int bandOffsets[]) { + public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, + int bankIndices[], int bandOffsets[]) { super(dataType, w, h, bandOffsets.length); @@ -113,18 +132,23 @@ public class ComponentSampleModel extends SampleModel { } /** - * Instantiates a new ComponentSampleModel with the specified - * properties. + * Instantiates a new ComponentSampleModel with the specified properties. * - * @param dataType the data type of the samples. - * @param w the width of the image data. - * @param h the height of the image data. - * @param pixelStride the pixel stride of the image data. - * @param scanlineStride the scanline stride of the image data. - * @param bandOffsets the band offsets. + * @param dataType + * the data type of the samples. + * @param w + * the width of the image data. + * @param h + * the height of the image data. + * @param pixelStride + * the pixel stride of the image data. + * @param scanlineStride + * the scanline stride of the image data. + * @param bandOffsets + * the band offsets. */ - public ComponentSampleModel(int dataType, int w, int h, int pixelStride, - int scanlineStride, int bandOffsets[]) { + public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, + int bandOffsets[]) { super(dataType, w, h, bandOffsets.length); if (pixelStride < 0) { @@ -156,81 +180,81 @@ public class ComponentSampleModel extends SampleModel { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } switch (dataType) { - case DataBuffer.TYPE_BYTE: - byte bdata[]; - if (obj == null) { - bdata = new byte[numBands]; - } else { - bdata = (byte[]) obj; - } + case DataBuffer.TYPE_BYTE: + byte bdata[]; + if (obj == null) { + bdata = new byte[numBands]; + } else { + bdata = (byte[])obj; + } - for (int i = 0; i < numBands; i++) { - bdata[i] = (byte) getSample(x, y, i, data); - } + for (int i = 0; i < numBands; i++) { + bdata[i] = (byte)getSample(x, y, i, data); + } - obj = bdata; - break; + obj = bdata; + break; - case DataBuffer.TYPE_SHORT: - case DataBuffer.TYPE_USHORT: - short sdata[]; - if (obj == null) { - sdata = new short[numBands]; - } else { - sdata = (short[]) obj; - } + case DataBuffer.TYPE_SHORT: + case DataBuffer.TYPE_USHORT: + short sdata[]; + if (obj == null) { + sdata = new short[numBands]; + } else { + sdata = (short[])obj; + } - for (int i = 0; i < numBands; i++) { - sdata[i] = (short) getSample(x, y, i, data); - } + for (int i = 0; i < numBands; i++) { + sdata[i] = (short)getSample(x, y, i, data); + } - obj = sdata; - break; + obj = sdata; + break; - case DataBuffer.TYPE_INT: - int idata[]; - if (obj == null) { - idata = new int[numBands]; - } else { - idata = (int[]) obj; - } + case DataBuffer.TYPE_INT: + int idata[]; + if (obj == null) { + idata = new int[numBands]; + } else { + idata = (int[])obj; + } - for (int i = 0; i < numBands; i++) { - idata[i] = getSample(x, y, i, data); - } + for (int i = 0; i < numBands; i++) { + idata[i] = getSample(x, y, i, data); + } - obj = idata; - break; + obj = idata; + break; - case DataBuffer.TYPE_FLOAT: - float fdata[]; - if (obj == null) { - fdata = new float[numBands]; - } else { - fdata = (float[]) obj; - } + case DataBuffer.TYPE_FLOAT: + float fdata[]; + if (obj == null) { + fdata = new float[numBands]; + } else { + fdata = (float[])obj; + } - for (int i = 0; i < numBands; i++) { - fdata[i] = getSampleFloat(x, y, i, data); - } + for (int i = 0; i < numBands; i++) { + fdata[i] = getSampleFloat(x, y, i, data); + } - obj = fdata; - break; + obj = fdata; + break; - case DataBuffer.TYPE_DOUBLE: - double ddata[]; - if (obj == null) { - ddata = new double[numBands]; - } else { - ddata = (double[]) obj; - } + case DataBuffer.TYPE_DOUBLE: + double ddata[]; + if (obj == null) { + ddata = new double[numBands]; + } else { + ddata = (double[])obj; + } - for (int i = 0; i < numBands; i++) { - ddata[i] = getSampleDouble(x, y, i, data); - } + for (int i = 0; i < numBands; i++) { + ddata[i] = getSampleDouble(x, y, i, data); + } - obj = ddata; - break; + obj = ddata; + break; } return obj; @@ -243,76 +267,75 @@ public class ComponentSampleModel extends SampleModel { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } switch (dataType) { - case DataBuffer.TYPE_BYTE: - byte barr[] = (byte[]) obj; - for (int i = 0; i < numBands; i++) { - setSample(x, y, i, barr[i] & 0xff, data); - } - break; + case DataBuffer.TYPE_BYTE: + byte barr[] = (byte[])obj; + for (int i = 0; i < numBands; i++) { + setSample(x, y, i, barr[i] & 0xff, data); + } + break; - case DataBuffer.TYPE_SHORT: - case DataBuffer.TYPE_USHORT: - short sarr[] = (short[]) obj; - for (int i = 0; i < numBands; i++) { - setSample(x, y, i, sarr[i] & 0xffff, data); - } - break; + case DataBuffer.TYPE_SHORT: + case DataBuffer.TYPE_USHORT: + short sarr[] = (short[])obj; + for (int i = 0; i < numBands; i++) { + setSample(x, y, i, sarr[i] & 0xffff, data); + } + break; - case DataBuffer.TYPE_INT: - int iarr[] = (int[]) obj; - for (int i = 0; i < numBands; i++) { - setSample(x, y, i, iarr[i], data); - } - break; + case DataBuffer.TYPE_INT: + int iarr[] = (int[])obj; + for (int i = 0; i < numBands; i++) { + setSample(x, y, i, iarr[i], data); + } + break; - case DataBuffer.TYPE_FLOAT: - float farr[] = (float[]) obj; - for (int i = 0; i < numBands; i++) { - setSample(x, y, i, farr[i], data); - } - break; + case DataBuffer.TYPE_FLOAT: + float farr[] = (float[])obj; + for (int i = 0; i < numBands; i++) { + setSample(x, y, i, farr[i], data); + } + break; - case DataBuffer.TYPE_DOUBLE: - double darr[] = (double[]) obj; - for (int i = 0; i < numBands; i++) { - setSample(x, y, i, darr[i], data); - } - break; + case DataBuffer.TYPE_DOUBLE: + double darr[] = (double[])obj; + for (int i = 0; i < numBands; i++) { + setSample(x, y, i, darr[i], data); + } + break; } } /** * Compares this ComponentSampleModel with the specified Object. * - * @param o the Object. - * - * @return true, if the object is a ComponentSampleModel with - * identical data values to this ComponentSampleModel, false otherwise. + * @param o + * the Object. + * @return true, if the object is a ComponentSampleModel with identical data + * values to this ComponentSampleModel, false otherwise. */ @Override public boolean equals(Object o) { if ((o == null) || !(o instanceof ComponentSampleModel)) { return false; } - ComponentSampleModel model = (ComponentSampleModel) o; - return this.width == model.width && this.height == model.height && - this.numBands == model.numBands && - this.dataType == model.dataType && - Arrays.equals(this.bandOffsets, model.bandOffsets) && - Arrays.equals(this.bankIndices, model.bankIndices) && - this.numBands == model.numBands && - this.numBanks == model.numBanks && - this.scanlineStride == model.scanlineStride && - this.pixelStride == model.pixelStride; + ComponentSampleModel model = (ComponentSampleModel)o; + return this.width == model.width && this.height == model.height + && this.numBands == model.numBands && this.dataType == model.dataType + && Arrays.equals(this.bandOffsets, model.bandOffsets) + && Arrays.equals(this.bankIndices, model.bankIndices) + && this.numBands == model.numBands && this.numBanks == model.numBanks + && this.scanlineStride == model.scanlineStride + && this.pixelStride == model.pixelStride; } - /** + /** * @see java.awt.image.SampleModel#createSubsetSampleModel(int[]) */ @Override public SampleModel createSubsetSampleModel(int bands[]) { if (bands.length > this.numBands) { - // awt.64=The number of the bands in the subset is greater than the number of bands in the sample model + // awt.64=The number of the bands in the subset is greater than the + // number of bands in the sample model throw new RasterFormatException(Messages.getString("awt.64")); //$NON-NLS-1$ } @@ -324,15 +347,15 @@ public class ComponentSampleModel extends SampleModel { offsets[i] = bandOffsets[bands[i]]; } - return new ComponentSampleModel(dataType, width, height, pixelStride, - scanlineStride, indices, offsets); + return new ComponentSampleModel(dataType, width, height, pixelStride, scanlineStride, + indices, offsets); } @Override public SampleModel createCompatibleSampleModel(int w, int h) { - return new ComponentSampleModel(dataType, w, h, pixelStride, - pixelStride * w, bankIndices, bandOffsets); + return new ComponentSampleModel(dataType, w, h, pixelStride, pixelStride * w, bankIndices, + bandOffsets); } @Override @@ -366,8 +389,7 @@ public class ComponentSampleModel extends SampleModel { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } - return data.getElem(bankIndices[b], y * scanlineStride + - x * pixelStride + bandOffsets[b]); + return data.getElem(bankIndices[b], y * scanlineStride + x * pixelStride + bandOffsets[b]); } @Override @@ -377,8 +399,8 @@ public class ComponentSampleModel extends SampleModel { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } - return data.getElemFloat(bankIndices[b], y * scanlineStride + - x * pixelStride + bandOffsets[b]); + return data.getElemFloat(bankIndices[b], y * scanlineStride + x * pixelStride + + bandOffsets[b]); } @Override @@ -388,15 +410,14 @@ public class ComponentSampleModel extends SampleModel { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } - return data.getElemDouble(bankIndices[b], y * scanlineStride + - x * pixelStride + bandOffsets[b]); + return data.getElemDouble(bankIndices[b], y * scanlineStride + x * pixelStride + + bandOffsets[b]); } @Override - public int[] getPixels(int x, int y, int w, int h, int iArray[], - DataBuffer data) { - if (x < 0 || y < 0 || x > this.width || x + w > this.width - || y > this.height || y + h > this.height) { + public int[] getPixels(int x, int y, int w, int h, int iArray[], DataBuffer data) { + if (x < 0 || y < 0 || x > this.width || x + w > this.width || y > this.height + || y + h > this.height) { // awt.63=Coordinates are not in bounds throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } @@ -421,8 +442,7 @@ public class ComponentSampleModel extends SampleModel { } @Override - public void setPixels(int x, int y, int w, int h, int iArray[], - DataBuffer data) { + public void setPixels(int x, int y, int w, int h, int iArray[], DataBuffer data) { if (x < 0 || y < 0 || x + w > this.width || y + h > this.height) { // awt.63=Coordinates are not in bounds throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ @@ -444,13 +464,11 @@ public class ComponentSampleModel extends SampleModel { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } - data.setElem(bankIndices[b], y * scanlineStride + x * pixelStride - + bandOffsets[b], s); + data.setElem(bankIndices[b], y * scanlineStride + x * pixelStride + bandOffsets[b], s); } @Override - public int[] getSamples(int x, int y, int w, int h, int b, int iArray[], - DataBuffer data) { + public int[] getSamples(int x, int y, int w, int h, int b, int iArray[], DataBuffer data) { if (x < 0 || y < 0 || x + w > this.width || y + h > this.height) { // awt.63=Coordinates are not in bounds throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ @@ -463,7 +481,7 @@ public class ComponentSampleModel extends SampleModel { } else { samples = iArray; } - + if (data == null) { // awt.295=data is null throw new NullPointerException(Messages.getString("awt.295")); //$NON-NLS-1$ @@ -479,8 +497,7 @@ public class ComponentSampleModel extends SampleModel { } @Override - public void setSamples(int x, int y, int w, int h, int b, int iArray[], - DataBuffer data) { + public void setSamples(int x, int y, int w, int h, int b, int iArray[], DataBuffer data) { if (x < 0 || y < 0 || x + w > this.width || y + h > this.height) { // awt.63=Coordinates are not in bounds throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ @@ -500,8 +517,7 @@ public class ComponentSampleModel extends SampleModel { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } - data.setElemFloat(bankIndices[b], y * scanlineStride + - x * pixelStride + bandOffsets[b], s); + data.setElemFloat(bankIndices[b], y * scanlineStride + x * pixelStride + bandOffsets[b], s); } @Override @@ -511,8 +527,9 @@ public class ComponentSampleModel extends SampleModel { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } - data.setElemDouble(bankIndices[b], y * scanlineStride + - x * pixelStride + bandOffsets[b], s); + data + .setElemDouble(bankIndices[b], y * scanlineStride + x * pixelStride + + bandOffsets[b], s); } @Override @@ -525,28 +542,27 @@ public class ComponentSampleModel extends SampleModel { maxOffset = bandOffsets[i]; } } - int size = (height - 1) * scanlineStride + - (width - 1) * pixelStride + maxOffset + 1; + int size = (height - 1) * scanlineStride + (width - 1) * pixelStride + maxOffset + 1; switch (dataType) { - case DataBuffer.TYPE_BYTE: - data = new DataBufferByte(size, numBanks); - break; - case DataBuffer.TYPE_SHORT: - data = new DataBufferShort(size, numBanks); - break; - case DataBuffer.TYPE_USHORT: - data = new DataBufferUShort(size, numBanks); - break; - case DataBuffer.TYPE_INT: - data = new DataBufferInt(size, numBanks); - break; - case DataBuffer.TYPE_FLOAT: - data = new DataBufferFloat(size, numBanks); - break; - case DataBuffer.TYPE_DOUBLE: - data = new DataBufferDouble(size, numBanks); - break; + case DataBuffer.TYPE_BYTE: + data = new DataBufferByte(size, numBanks); + break; + case DataBuffer.TYPE_SHORT: + data = new DataBufferShort(size, numBanks); + break; + case DataBuffer.TYPE_USHORT: + data = new DataBufferUShort(size, numBanks); + break; + case DataBuffer.TYPE_INT: + data = new DataBufferInt(size, numBanks); + break; + case DataBuffer.TYPE_FLOAT: + data = new DataBufferFloat(size, numBanks); + break; + case DataBuffer.TYPE_DOUBLE: + data = new DataBufferDouble(size, numBanks); + break; } return data; @@ -556,10 +572,12 @@ public class ComponentSampleModel extends SampleModel { /** * Gets the offset of the specified band of the specified pixel. * - * @param x the X coordinate of the pixel. - * @param y the Y coordinate of the pixel. - * @param b the band. - * + * @param x + * the X coordinate of the pixel. + * @param y + * the Y coordinate of the pixel. + * @param b + * the band. * @return the offset of the specified band of the specified pixel. */ public int getOffset(int x, int y, int b) { @@ -569,9 +587,10 @@ public class ComponentSampleModel extends SampleModel { /** * Gets the offset of the first band of the specified pixel. * - * @param x the X coordinate of pixel. - * @param y the Y coordinate of pixel. - * + * @param x + * the X coordinate of pixel. + * @param y + * the Y coordinate of pixel. * @return the offset of the first band of the specified pixel. */ public int getOffset(int x, int y) { @@ -595,8 +614,7 @@ public class ComponentSampleModel extends SampleModel { } /** - * Gets an array of bank indices corresponding to this - * ComponentSampleModel. + * Gets an array of bank indices corresponding to this ComponentSampleModel. * * @return the array of bank indices. */ @@ -605,7 +623,7 @@ public class ComponentSampleModel extends SampleModel { } /** - * Gets an array of the band offsets corresponding to this + * Gets an array of the band offsets corresponding to this * ComponentSampleModel. * * @return the array of band offsets. @@ -673,7 +691,7 @@ public class ComponentSampleModel extends SampleModel { /** * Gets the pixel stride. * - * @return the pixel stride + * @return the pixel stride. */ public final int getPixelStride() { return pixelStride; @@ -685,6 +703,3 @@ public class ComponentSampleModel extends SampleModel { } } - - - diff --git a/awt/java/awt/image/ConvolveOp.java b/awt/java/awt/image/ConvolveOp.java index bb588bc..6eb8909 100644 --- a/awt/java/awt/image/ConvolveOp.java +++ b/awt/java/awt/image/ConvolveOp.java @@ -32,47 +32,57 @@ import org.apache.harmony.awt.gl.AwtImageBackdoorAccessor; import org.apache.harmony.awt.internal.nls.Messages; /** - * The ConvolveOp class convolves from the source data - * to the destination using a convolution kernel. - * Each output pixel is represented as the result of multiplying - * the kernel and the surround of the input pixel. + * The ConvolveOp class convolves from the source data to the destination using + * a convolution kernel. Each output pixel is represented as the result of + * multiplying the kernel and the surround of the input pixel. + * + * @since Android 1.0 */ public class ConvolveOp implements BufferedImageOp, RasterOp { - /** - * The Constant EDGE_ZERO_FILL indicates that pixels at the edge of - * the destination image are set to zero. + /** + * The Constant EDGE_ZERO_FILL indicates that pixels at the edge of the + * destination image are set to zero. */ public static final int EDGE_ZERO_FILL = 0; - /** - * The Constant EDGE_NO_OP indicates that pixels at the edge of - * the source image are converted to the edge pixels in the - * destination without modification. + /** + * The Constant EDGE_NO_OP indicates that pixels at the edge of the source + * image are converted to the edge pixels in the destination without + * modification. */ public static final int EDGE_NO_OP = 1; - /** The kernel. */ + /** + * The kernel. + */ private Kernel kernel; - - /** The edge cond. */ + + /** + * The edge cond. + */ private int edgeCond; - - /** The rhs. */ + + /** + * The rhs. + */ private RenderingHints rhs = null; static { // TODO - //System.loadLibrary("imageops"); + // System.loadLibrary("imageops"); } /** - * Instantiates a new ConvolveOp object with the specified Kernel - * and specified edges condition. + * Instantiates a new ConvolveOp object with the specified Kernel and + * specified edges condition. * - * @param kernel the specified Kernel. - * @param edgeCondition the specified edge condition. - * @param hints the RenderingHints object, or null. + * @param kernel + * the specified Kernel. + * @param edgeCondition + * the specified edge condition. + * @param hints + * the RenderingHints object, or null. */ public ConvolveOp(Kernel kernel, int edgeCondition, RenderingHints hints) { this.kernel = kernel; @@ -81,10 +91,11 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { } /** - * Instantiates a new ConvolveOp object with the specified Kernel - * and EDGE_ZERO_FILL edge condition. + * Instantiates a new ConvolveOp object with the specified Kernel and + * EDGE_ZERO_FILL edge condition. * - * @param kernel the specified Kernel. + * @param kernel + * the specified Kernel. */ public ConvolveOp(Kernel kernel) { this.kernel = kernel; @@ -97,7 +108,7 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { * @return the Kernel object of this ConvolveOp. */ public final Kernel getKernel() { - return (Kernel) kernel.clone(); + return (Kernel)kernel.clone(); } public final RenderingHints getRenderingHints() { @@ -143,17 +154,11 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { dstCM = ColorModel.getRGBdefault(); } - WritableRaster r = - dstCM.isCompatibleSampleModel(src.getSampleModel()) ? - src.getRaster().createCompatibleWritableRaster(src.getWidth(), src.getHeight()) : - dstCM.createCompatibleWritableRaster(src.getWidth(), src.getHeight()); - - return new BufferedImage( - dstCM, - r, - dstCM.isAlphaPremultiplied(), - null - ); + WritableRaster r = dstCM.isCompatibleSampleModel(src.getSampleModel()) ? src.getRaster() + .createCompatibleWritableRaster(src.getWidth(), src.getHeight()) : dstCM + .createCompatibleWritableRaster(src.getWidth(), src.getHeight()); + + return new BufferedImage(dstCM, r, dstCM.isAlphaPremultiplied(), null); } public final WritableRaster filter(Raster src, WritableRaster dst) { @@ -162,7 +167,7 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { throw new NullPointerException(Messages.getString("awt.256")); //$NON-NLS-1$ } - if (src == dst){ + if (src == dst) { // awt.257=Source raster is equal to destination throw new IllegalArgumentException(Messages.getString("awt.257")); //$NON-NLS-1$ } @@ -170,17 +175,18 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { if (dst == null) { dst = createCompatibleDestRaster(src); } else if (src.getNumBands() != dst.getNumBands()) { - // awt.258=Number of source bands ({0}) is not equal to number of destination bands ({1}) - throw new IllegalArgumentException( - Messages.getString("awt.258", src.getNumBands(), dst.getNumBands())); //$NON-NLS-1$ + // awt.258=Number of source bands ({0}) is not equal to number of + // destination bands ({1}) + throw new IllegalArgumentException(Messages.getString( + "awt.258", src.getNumBands(), dst.getNumBands())); //$NON-NLS-1$ } // TODO - //if (ippFilter(src, dst, BufferedImage.TYPE_CUSTOM) != 0) - if (slowFilter(src, dst) != 0) { - // awt.21F=Unable to transform source - throw new ImagingOpException (Messages.getString("awt.21F")); //$NON-NLS-1$ - } + // if (ippFilter(src, dst, BufferedImage.TYPE_CUSTOM) != 0) + if (slowFilter(src, dst) != 0) { + // awt.21F=Unable to transform source + throw new ImagingOpException(Messages.getString("awt.21F")); //$NON-NLS-1$ + } return dst; } @@ -188,10 +194,11 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { /** * Slow filter. * - * @param src the src - * @param dst the dst - * - * @return the int + * @param src + * the src. + * @param dst + * the dst. + * @return the int. */ private int slowFilter(Raster src, WritableRaster dst) { try { @@ -219,7 +226,7 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { int[] masks = new int[numBands]; int[] sampleSizes = sm.getSampleSize(); - for (int i=0; i < numBands; i++){ + for (int i = 0; i < numBands; i++) { maxValues[i] = (1 << sampleSizes[i]) - 1; masks[i] = ~(maxValues[i]); } @@ -228,61 +235,56 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { float[] pixels = null; pixels = src.getPixels(srcMinX, srcMinY, srcWidth, srcHeight, pixels); float[] newPixels = new float[pixels.length]; - int rowLength = srcWidth*numBands; - if (this.edgeCond == ConvolveOp.EDGE_NO_OP){ + int rowLength = srcWidth * numBands; + if (this.edgeCond == ConvolveOp.EDGE_NO_OP) { // top int start = 0; - int length = yOrigin*rowLength; + int length = yOrigin * rowLength; System.arraycopy(pixels, start, newPixels, start, length); // bottom - start = (srcHeight - (kHeight - yOrigin - 1))*rowLength; - length = (kHeight - yOrigin - 1)*rowLength; + start = (srcHeight - (kHeight - yOrigin - 1)) * rowLength; + length = (kHeight - yOrigin - 1) * rowLength; System.arraycopy(pixels, start, newPixels, start, length); // middle - length = xOrigin*numBands; - int length1 = (kWidth - xOrigin - 1)*numBands; - start = yOrigin*rowLength; - int start1 = (yOrigin+1)*rowLength - length1; - for (int i = yOrigin; i < (srcHeight - (kHeight - yOrigin - 1)); i ++) { + length = xOrigin * numBands; + int length1 = (kWidth - xOrigin - 1) * numBands; + start = yOrigin * rowLength; + int start1 = (yOrigin + 1) * rowLength - length1; + for (int i = yOrigin; i < (srcHeight - (kHeight - yOrigin - 1)); i++) { System.arraycopy(pixels, start, newPixels, start, length); System.arraycopy(pixels, start1, newPixels, start1, length1); - start +=rowLength; - start1 +=rowLength; + start += rowLength; + start1 += rowLength; } } // Cycle over pixels to be calculated - for (int i = yOrigin; i < srcConvMaxY; i++){ - for (int j = xOrigin; j < srcConvMaxX; j++){ + for (int i = yOrigin; i < srcConvMaxY; i++) { + for (int j = xOrigin; j < srcConvMaxX; j++) { // Take kernel data in backward direction, convolution int kernelIdx = data.length - 1; int pixelIndex = i * rowLength + j * numBands; - for (int hIdx = 0, rasterHIdx = i - yOrigin; - hIdx < kHeight; - hIdx++, rasterHIdx++ - ){ - for (int wIdx = 0, rasterWIdx = j - xOrigin; - wIdx < kWidth; - wIdx++, rasterWIdx++ - ){ + for (int hIdx = 0, rasterHIdx = i - yOrigin; hIdx < kHeight; hIdx++, rasterHIdx++) { + for (int wIdx = 0, rasterWIdx = j - xOrigin; wIdx < kWidth; wIdx++, rasterWIdx++) { int curIndex = rasterHIdx * rowLength + rasterWIdx * numBands; - for (int idx=0; idx < numBands; idx++){ - newPixels[pixelIndex+idx] += data[kernelIdx] * pixels[curIndex+idx]; + for (int idx = 0; idx < numBands; idx++) { + newPixels[pixelIndex + idx] += data[kernelIdx] + * pixels[curIndex + idx]; } kernelIdx--; } } // Check for overflow now - for (int idx=0; idx < numBands; idx++){ - if (((int)newPixels[pixelIndex+idx] & masks[idx]) != 0) { - if (newPixels[pixelIndex+idx] < 0) { - newPixels[pixelIndex+idx] = 0; + for (int idx = 0; idx < numBands; idx++) { + if (((int)newPixels[pixelIndex + idx] & masks[idx]) != 0) { + if (newPixels[pixelIndex + idx] < 0) { + newPixels[pixelIndex + idx] = 0; } else { - newPixels[pixelIndex+idx] = maxValues[idx]; + newPixels[pixelIndex + idx] = maxValues[idx]; } } } @@ -302,7 +304,7 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { throw new NullPointerException(Messages.getString("awt.259")); //$NON-NLS-1$ } - if (src == dst){ + if (src == dst) { // awt.25A=Source equals to destination throw new IllegalArgumentException(Messages.getString("awt.25A")); //$NON-NLS-1$ } @@ -319,13 +321,10 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { dst = createCompatibleDestImage(src, srcCM); } else { if (!srcCM.equals(dst.getColorModel())) { - // Treat BufferedImage.TYPE_INT_RGB and BufferedImage.TYPE_INT_ARGB as same - if ( - !((src.getType() == BufferedImage.TYPE_INT_RGB || - src.getType() == BufferedImage.TYPE_INT_ARGB) && - (dst.getType() == BufferedImage.TYPE_INT_RGB || - dst.getType() == BufferedImage.TYPE_INT_ARGB)) - ) { + // Treat BufferedImage.TYPE_INT_RGB and + // BufferedImage.TYPE_INT_ARGB as same + if (!((src.getType() == BufferedImage.TYPE_INT_RGB || src.getType() == BufferedImage.TYPE_INT_ARGB) && (dst + .getType() == BufferedImage.TYPE_INT_RGB || dst.getType() == BufferedImage.TYPE_INT_ARGB))) { finalDst = dst; dst = createCompatibleDestImage(src, srcCM); } @@ -334,11 +333,11 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { // Skip alpha channel for TYPE_INT_RGB images // TODO - //if (ippFilter(src.getRaster(), dst.getRaster(), src.getType()) != 0) - if (slowFilter(src.getRaster(), dst.getRaster()) != 0) { - // awt.21F=Unable to transform source - throw new ImagingOpException (Messages.getString("awt.21F")); //$NON-NLS-1$ - } + // if (ippFilter(src.getRaster(), dst.getRaster(), src.getType()) != 0) + if (slowFilter(src.getRaster(), dst.getRaster()) != 0) { + // awt.21F=Unable to transform source + throw new ImagingOpException(Messages.getString("awt.21F")); //$NON-NLS-1$ + } if (finalDst != null) { Graphics2D g = finalDst.createGraphics(); @@ -355,11 +354,13 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { /** * Ipp filter. * - * @param src the src - * @param dst the dst - * @param imageType the image type - * - * @return the int + * @param src + * the src. + * @param dst + * the dst. + * @param imageType + * the image type. + * @return the int. */ @SuppressWarnings("unused") private int ippFilter(Raster src, WritableRaster dst, int imageType) { @@ -372,8 +373,8 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { case BufferedImage.TYPE_INT_RGB: case BufferedImage.TYPE_INT_BGR: { channels = 4; - srcStride = src.getWidth()*4; - dstStride = dst.getWidth()*4; + srcStride = src.getWidth() * 4; + dstStride = dst.getWidth() * 4; skipChannel = true; break; } @@ -383,8 +384,8 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { case BufferedImage.TYPE_4BYTE_ABGR: case BufferedImage.TYPE_4BYTE_ABGR_PRE: { channels = 4; - srcStride = src.getWidth()*4; - dstStride = dst.getWidth()*4; + srcStride = src.getWidth() * 4; + dstStride = dst.getWidth() * 4; break; } @@ -397,12 +398,13 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { case BufferedImage.TYPE_3BYTE_BGR: { channels = 3; - srcStride = src.getWidth()*3; - dstStride = dst.getWidth()*3; + srcStride = src.getWidth() * 3; + dstStride = dst.getWidth() * 3; break; } - case BufferedImage.TYPE_USHORT_GRAY: // TODO - could be done in native code? + case BufferedImage.TYPE_USHORT_GRAY: // TODO - could be done in + // native code? case BufferedImage.TYPE_USHORT_565_RGB: case BufferedImage.TYPE_USHORT_555_RGB: case BufferedImage.TYPE_BYTE_BINARY: { @@ -413,59 +415,51 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { SampleModel srcSM = src.getSampleModel(); SampleModel dstSM = dst.getSampleModel(); - if ( - srcSM instanceof PixelInterleavedSampleModel && - dstSM instanceof PixelInterleavedSampleModel - ) { + if (srcSM instanceof PixelInterleavedSampleModel + && dstSM instanceof PixelInterleavedSampleModel) { // Check PixelInterleavedSampleModel - if ( - srcSM.getDataType() != DataBuffer.TYPE_BYTE || - dstSM.getDataType() != DataBuffer.TYPE_BYTE - ) { + if (srcSM.getDataType() != DataBuffer.TYPE_BYTE + || dstSM.getDataType() != DataBuffer.TYPE_BYTE) { return slowFilter(src, dst); } - channels = srcSM.getNumBands(); // Have IPP functions for 1, 3 and 4 channels + channels = srcSM.getNumBands(); // Have IPP functions for 1, + // 3 and 4 channels if (!(channels == 1 || channels == 3 || channels == 4)) { return slowFilter(src, dst); } - srcStride = ((ComponentSampleModel) srcSM).getScanlineStride(); - dstStride = ((ComponentSampleModel) dstSM).getScanlineStride(); - } else if ( - srcSM instanceof SinglePixelPackedSampleModel && - dstSM instanceof SinglePixelPackedSampleModel - ) { + srcStride = ((ComponentSampleModel)srcSM).getScanlineStride(); + dstStride = ((ComponentSampleModel)dstSM).getScanlineStride(); + } else if (srcSM instanceof SinglePixelPackedSampleModel + && dstSM instanceof SinglePixelPackedSampleModel) { // Check SinglePixelPackedSampleModel - SinglePixelPackedSampleModel sppsm1 = (SinglePixelPackedSampleModel) srcSM; - SinglePixelPackedSampleModel sppsm2 = (SinglePixelPackedSampleModel) dstSM; + SinglePixelPackedSampleModel sppsm1 = (SinglePixelPackedSampleModel)srcSM; + SinglePixelPackedSampleModel sppsm2 = (SinglePixelPackedSampleModel)dstSM; channels = sppsm1.getNumBands(); - // TYPE_INT_RGB, TYPE_INT_ARGB... - if ( - sppsm1.getDataType() != DataBuffer.TYPE_INT || - sppsm2.getDataType() != DataBuffer.TYPE_INT || - !(channels == 3 || channels == 4) - ) { + // TYPE_INT_RGB, TYPE_INT_ARGB... + if (sppsm1.getDataType() != DataBuffer.TYPE_INT + || sppsm2.getDataType() != DataBuffer.TYPE_INT + || !(channels == 3 || channels == 4)) { return slowFilter(src, dst); } // Check compatibility of sample models - if ( - !Arrays.equals(sppsm1.getBitOffsets(), sppsm2.getBitOffsets()) || - !Arrays.equals(sppsm1.getBitMasks(), sppsm2.getBitMasks()) - ) { + if (!Arrays.equals(sppsm1.getBitOffsets(), sppsm2.getBitOffsets()) + || !Arrays.equals(sppsm1.getBitMasks(), sppsm2.getBitMasks())) { return slowFilter(src, dst); } - for (int i=0; i<channels; i++) { + for (int i = 0; i < channels; i++) { if (sppsm1.getSampleSize(i) != 8) { return slowFilter(src, dst); } } - if (channels == 3) { // Cannot skip channel, don't know which is alpha... + if (channels == 3) { // Cannot skip channel, don't know + // which is alpha... channels = 4; } @@ -477,12 +471,9 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { // Fill offsets if there's a child raster if (src.getParent() != null || dst.getParent() != null) { - if ( - src.getSampleModelTranslateX() != 0 || - src.getSampleModelTranslateY() != 0 || - dst.getSampleModelTranslateX() != 0 || - dst.getSampleModelTranslateY() != 0 - ) { + if (src.getSampleModelTranslateX() != 0 || src.getSampleModelTranslateY() != 0 + || dst.getSampleModelTranslateX() != 0 + || dst.getSampleModelTranslateY() != 0) { offsets = new int[4]; offsets[0] = -src.getSampleModelTranslateX() + src.getMinX(); offsets[1] = -src.getSampleModelTranslateY() + src.getMinY(); @@ -502,44 +493,53 @@ public class ConvolveOp implements BufferedImageOp, RasterOp { return -1; // Unknown data buffer type } - return ippFilter32f( - kernel.data, kernel.getWidth(), kernel.getHeight(), - kernel.getXOrigin(), kernel.getYOrigin(), edgeCond, - srcData, src.getWidth(), src.getHeight(), srcStride, - dstData, dst.getWidth(), dst.getHeight(), dstStride, - channels, skipChannel, offsets - ); + return ippFilter32f(kernel.data, kernel.getWidth(), kernel.getHeight(), + kernel.getXOrigin(), kernel.getYOrigin(), edgeCond, srcData, src.getWidth(), src + .getHeight(), srcStride, dstData, dst.getWidth(), dst.getHeight(), + dstStride, channels, skipChannel, offsets); } /** * Ipp filter32f. * - * @param kernel the kernel - * @param kWidth the k width - * @param kHeight the k height - * @param anchorX the anchor x - * @param anchorY the anchor y - * @param borderType the border type - * @param src the src - * @param srcWidth the src width - * @param srcHeight the src height - * @param srcStride the src stride - * @param dst the dst - * @param dstWidth the dst width - * @param dstHeight the dst height - * @param dstStride the dst stride - * @param channels the channels - * @param skipChannel the skip channel - * @param offsets the offsets - * - * @return the int + * @param kernel + * the kernel. + * @param kWidth + * the k width. + * @param kHeight + * the k height. + * @param anchorX + * the anchor x. + * @param anchorY + * the anchor y. + * @param borderType + * the border type. + * @param src + * the src. + * @param srcWidth + * the src width. + * @param srcHeight + * the src height. + * @param srcStride + * the src stride. + * @param dst + * the dst. + * @param dstWidth + * the dst width. + * @param dstHeight + * the dst height. + * @param dstStride + * the dst stride. + * @param channels + * the channels. + * @param skipChannel + * the skip channel. + * @param offsets + * the offsets. + * @return the int. */ - private native int ippFilter32f( - float kernel[], int kWidth, int kHeight, - int anchorX, int anchorY, int borderType, - Object src, int srcWidth, int srcHeight, int srcStride, - Object dst, int dstWidth, int dstHeight, int dstStride, - int channels, boolean skipChannel, int offsets[] - ); + private native int ippFilter32f(float kernel[], int kWidth, int kHeight, int anchorX, + int anchorY, int borderType, Object src, int srcWidth, int srcHeight, int srcStride, + Object dst, int dstWidth, int dstHeight, int dstStride, int channels, + boolean skipChannel, int offsets[]); } - diff --git a/awt/java/awt/image/CropImageFilter.java b/awt/java/awt/image/CropImageFilter.java index e90c44a..2f4ca78 100644 --- a/awt/java/awt/image/CropImageFilter.java +++ b/awt/java/awt/image/CropImageFilter.java @@ -18,28 +18,36 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.util.Hashtable; /** - * The CropImageFilter class crops a rectangular region of an source - * Image and provides a source for a new image containing the extracted - * region. + * The CropImageFilter class crops a rectangular region of an source Image and + * provides a source for a new image containing the extracted region. + * + * @since Android 1.0 */ public class CropImageFilter extends ImageFilter { - /** The HEIGHT. */ + /** + * The HEIGHT. + */ private final int X, Y, WIDTH, HEIGHT; /** - * Instantiates a new CropImageFilter object with the specified - * rectangular area. + * Instantiates a new CropImageFilter object with the specified rectangular + * area. * - * @param x the X coordinate of rectangular area. - * @param y the Y coordinate of rectangular area. - * @param w the width of rectangular area. - * @param h the height of rectangular area. + * @param x + * the X coordinate of rectangular area. + * @param y + * the Y coordinate of rectangular area. + * @param w + * the width of rectangular area. + * @param h + * the height of rectangular area. */ public CropImageFilter(int x, int y, int w, int h) { X = x; @@ -52,20 +60,20 @@ public class CropImageFilter extends ImageFilter { @Override public void setProperties(Hashtable<?, ?> props) { Hashtable<Object, Object> fprops; - if(props == null) { + if (props == null) { fprops = new Hashtable<Object, Object>(); } else { - fprops = (Hashtable<Object, Object>) props.clone(); + fprops = (Hashtable<Object, Object>)props.clone(); } String propName = "Crop Filters"; //$NON-NLS-1$ String prop = "x=" + X + "; y=" + Y + "; width=" + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - WIDTH + "; height=" + HEIGHT; //$NON-NLS-1$ + WIDTH + "; height=" + HEIGHT; //$NON-NLS-1$ Object o = fprops.get(propName); - if(o != null){ - if(o instanceof String){ + if (o != null) { + if (o instanceof String) { prop = (String)o + "; " + prop; //$NON-NLS-1$ - }else{ - prop = o.toString() + "; " + prop; //$NON-NLS-1$ + } else { + prop = o.toString() + "; " + prop; //$NON-NLS-1$ } } fprops.put(propName, prop); @@ -73,15 +81,14 @@ public class CropImageFilter extends ImageFilter { } @Override - public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize) { + public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, + int scansize) { - if(x + w < X || X + WIDTH < x || - y + h < Y || Y + HEIGHT < y) { + if (x + w < X || X + WIDTH < x || y + h < Y || Y + HEIGHT < y) { return; } - int destX, destY, destWidth, destHeight, endX, endY, - srcEndX, srcEndY; + int destX, destY, destWidth, destHeight, endX, endY, srcEndX, srcEndY; int newOffset = off; @@ -91,37 +98,36 @@ public class CropImageFilter extends ImageFilter { srcEndX = x + w; srcEndY = y + h; - if(x <= X){ + if (x <= X) { destX = 0; newOffset += X; - if(endX >= srcEndX){ + if (endX >= srcEndX) { destWidth = srcEndX - X; - }else{ + } else { destWidth = WIDTH; } - }else{ + } else { destX = x - X; - if(endX >= srcEndX){ + if (endX >= srcEndX) { destWidth = w; - }else{ + } else { destWidth = endX - x; } } - - if(y <= Y){ + if (y <= Y) { newOffset += scansize * (Y - y); destY = 0; - if(endY >= srcEndY){ + if (endY >= srcEndY) { destHeight = srcEndY - Y; - }else{ + } else { destHeight = HEIGHT; } - }else{ + } else { destY = y - Y; - if(endY >= srcEndY){ + if (endY >= srcEndY) { destHeight = h; - }else{ + } else { destHeight = endY - y; } } @@ -129,15 +135,14 @@ public class CropImageFilter extends ImageFilter { } @Override - public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize) { + public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, + int scansize) { - if(x + w < X || X + WIDTH < x || - y + h < Y || Y + HEIGHT < y) { + if (x + w < X || X + WIDTH < x || y + h < Y || Y + HEIGHT < y) { return; } - int destX, destY, destWidth, destHeight, endX, endY, - srcEndX, srcEndY; + int destX, destY, destWidth, destHeight, endX, endY, srcEndX, srcEndY; int newOffset = off; @@ -147,37 +152,36 @@ public class CropImageFilter extends ImageFilter { srcEndX = x + w; srcEndY = y + h; - if(x <= X){ + if (x <= X) { destX = 0; newOffset += X; - if(endX >= srcEndX){ + if (endX >= srcEndX) { destWidth = srcEndX - X; - }else{ + } else { destWidth = WIDTH; } - }else{ + } else { destX = x - X; - if(endX >= srcEndX){ + if (endX >= srcEndX) { destWidth = w; - }else{ + } else { destWidth = endX - x; } } - - if(y <= Y){ + if (y <= Y) { newOffset += scansize * (Y - y); destY = 0; - if(endY >= srcEndY){ + if (endY >= srcEndY) { destHeight = srcEndY - Y; - }else{ + } else { destHeight = HEIGHT; } - }else{ + } else { destY = y - Y; - if(endY >= srcEndY){ + if (endY >= srcEndY) { destHeight = h; - }else{ + } else { destHeight = endY - y; } } @@ -190,4 +194,3 @@ public class CropImageFilter extends ImageFilter { } } - diff --git a/awt/java/awt/image/DataBuffer.java b/awt/java/awt/image/DataBuffer.java index 6856aee..92f900f 100644 --- a/awt/java/awt/image/DataBuffer.java +++ b/awt/java/awt/image/DataBuffer.java @@ -18,65 +18,97 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import org.apache.harmony.awt.gl.image.DataBufferListener; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Class DataBuffer is a wrapper class for a data array - * to be used for the situation where a suite of functionality - * acts on a set of data in a consistent way even though the - * primitive type of the data may vary from one use to the next. + * The Class DataBuffer is a wrapper class for a data array to be used for the + * situation where a suite of functionality acts on a set of data in a + * consistent way even though the primitive type of the data may vary from one + * use to the next. + * + * @since Android 1.0 */ public abstract class DataBuffer { - /** The Constant TYPE_BYTE. */ + /** + * The Constant TYPE_BYTE. + */ public static final int TYPE_BYTE = 0; - /** The Constant TYPE_USHORT. */ + /** + * The Constant TYPE_USHORT. + */ public static final int TYPE_USHORT = 1; - /** The Constant TYPE_SHORT. */ + /** + * The Constant TYPE_SHORT. + */ public static final int TYPE_SHORT = 2; - /** The Constant TYPE_INT. */ + /** + * The Constant TYPE_INT. + */ public static final int TYPE_INT = 3; - /** The Constant TYPE_FLOAT. */ + /** + * The Constant TYPE_FLOAT. + */ public static final int TYPE_FLOAT = 4; - /** The Constant TYPE_DOUBLE. */ + /** + * The Constant TYPE_DOUBLE. + */ public static final int TYPE_DOUBLE = 5; - /** The Constant TYPE_UNDEFINED. */ + /** + * The Constant TYPE_UNDEFINED. + */ public static final int TYPE_UNDEFINED = 32; - /** The data type indicates the primitive type of the - * data in this DataBuffer. */ + /** + * The data type indicates the primitive type of the data in this + * DataBuffer. + */ protected int dataType; - /** The number of data arrays in this DataBuffer. */ + /** + * The number of data arrays in this DataBuffer. + */ protected int banks; - /** The starting index for reading the - * data from the first (or only) internal data array. */ + /** + * The starting index for reading the data from the first (or only) internal + * data array. + */ protected int offset; - /** The length (number of elements) of the data arrays. */ + /** + * The length (number of elements) of the data arrays. + */ protected int size; - /** The starting indices for reading the - * data from the internal data arrays. */ + /** + * The starting indices for reading the data from the internal data arrays. + */ protected int offsets[]; - - /** The data changed. */ + + /** + * The data changed. + */ boolean dataChanged = true; - - /** The data taken. */ + + /** + * The data taken. + */ boolean dataTaken = false; - - /** The listener. */ + + /** + * The listener. + */ DataBufferListener listener; static { @@ -86,11 +118,15 @@ public abstract class DataBuffer { /** * Instantiates a new data buffer. * - * @param dataType the data type - * @param size the length (number of elements) of the data arrays - * @param numBanks the number of data arrays to create - * @param offsets the starting indices for reading the - * data from the internal data arrays + * @param dataType + * the data type. + * @param size + * the length (number of elements) of the data arrays. + * @param numBanks + * the number of data arrays to create. + * @param offsets + * the starting indices for reading the data from the internal + * data arrays. */ protected DataBuffer(int dataType, int size, int numBanks, int[] offsets) { this.dataType = dataType; @@ -101,13 +137,17 @@ public abstract class DataBuffer { } /** - * Instantiates a new data buffer with all of the - * data arrays starting at the same index. + * Instantiates a new data buffer with all of the data arrays starting at + * the same index. * - * @param dataType the data type - * @param size the length (number of elements) of the data arrays - * @param numBanks the number of data arrays to create - * @param offset the offset to use for all of the data arrays + * @param dataType + * the data type. + * @param size + * the length (number of elements) of the data arrays. + * @param numBanks + * the number of data arrays to create. + * @param offset + * the offset to use for all of the data arrays. */ protected DataBuffer(int dataType, int size, int numBanks, int offset) { this.dataType = dataType; @@ -122,12 +162,15 @@ public abstract class DataBuffer { } /** - * Instantiates a new data buffer with all of the - * data arrays read from the beginning (at offset zero). + * Instantiates a new data buffer with all of the data arrays read from the + * beginning (at offset zero). * - * @param dataType the data type - * @param size the length (number of elements) of the data arrays - * @param numBanks the number of data arrays to create + * @param dataType + * the data type. + * @param size + * the length (number of elements) of the data arrays. + * @param numBanks + * the number of data arrays to create. */ protected DataBuffer(int dataType, int size, int numBanks) { this.dataType = dataType; @@ -138,11 +181,13 @@ public abstract class DataBuffer { } /** - * Instantiates a new data buffer with one internal data array - * read from the beginning (at offset zero). + * Instantiates a new data buffer with one internal data array read from the + * beginning (at offset zero). * - * @param dataType the data type - * @param size the length (number of elements) of the data arrays + * @param dataType + * the data type. + * @param size + * the length (number of elements) of the data arrays. */ protected DataBuffer(int dataType, int size) { this.dataType = dataType; @@ -153,165 +198,161 @@ public abstract class DataBuffer { } /** - * Sets the data value in the specified array at the - * specified index. + * Sets the data value in the specified array at the specified index. * - * @param bank the internal array to the data to - * @param i the index within the array where the data - * should be written - * @param val the value to write into the array + * @param bank + * the internal array to the data to. + * @param i + * the index within the array where the data should be written. + * @param val + * the value to write into the array. */ public abstract void setElem(int bank, int i, int val); /** - * Sets the float data value in the specified array at the - * specified index. + * Sets the float data value in the specified array at the specified index. * - * @param bank the internal array to the data to - * @param i the index within the array where the data - * should be written - * @param val the value to write into the array + * @param bank + * the internal array to the data to. + * @param i + * the index within the array where the data should be written. + * @param val + * the value to write into the array. */ public void setElemFloat(int bank, int i, float val) { - setElem(bank, i, (int) val); + setElem(bank, i, (int)val); } /** - * Sets the double data value in the specified array at the - * specified index. + * Sets the double data value in the specified array at the specified index. * - * @param bank the internal array to the data to - * @param i the index within the array where the data - * should be written - * @param val the value to write into the array + * @param bank + * the internal array to the data to. + * @param i + * the index within the array where the data should be written. + * @param val + * the value to write into the array. */ public void setElemDouble(int bank, int i, double val) { - setElem(bank, i, (int) val); + setElem(bank, i, (int)val); } /** - * Sets the data value in the first array at the - * specified index. + * Sets the data value in the first array at the specified index. * - * @param i the index within the array where the data - * should be written - * @param val the value to write into the array + * @param i + * the index within the array where the data should be written. + * @param val + * the value to write into the array. */ public void setElem(int i, int val) { setElem(0, i, val); } /** - * Gets the data value from the specified data array at the - * specified index. - * - * @param bank the data array to read from - * @param i the index within the array where the data - * should be read + * Gets the data value from the specified data array at the specified index. * - * @return the data element + * @param bank + * the data array to read from. + * @param i + * the index within the array where the data should be read. + * @return the data element. */ public abstract int getElem(int bank, int i); /** - * Gets the float-type data value from the specified - * data array at the specified index. - * - * @param bank the data array to read from - * @param i the index within the array where the data - * should be read + * Gets the float-type data value from the specified data array at the + * specified index. * - * @return the data element + * @param bank + * the data array to read from. + * @param i + * the index within the array where the data should be read. + * @return the data element. */ public float getElemFloat(int bank, int i) { return getElem(bank, i); } /** - * Gets the double-type data value from the specified - * data array at the specified index. - * - * @param bank the data array to read from - * @param i the index within the array where the data - * should be read + * Gets the double-type data value from the specified data array at the + * specified index. * - * @return the data element + * @param bank + * the data array to read from. + * @param i + * the index within the array where the data should be read. + * @return the data element. */ public double getElemDouble(int bank, int i) { return getElem(bank, i); } /** - * Sets the float data value in the first array at the - * specified index. + * Sets the float data value in the first array at the specified index. * - * @param i the index within the array where the data - * should be written - * @param val the value to write into the array + * @param i + * the index within the array where the data should be written. + * @param val + * the value to write into the array. */ public void setElemFloat(int i, float val) { setElemFloat(0, i, val); } /** - * Sets the double data value in the first array at the - * specified index. + * Sets the double data value in the first array at the specified index. * - * @param i the index within the array where the data - * should be written - * @param val the value to write into the array + * @param i + * the index within the array where the data should be written. + * @param val + * the value to write into the array. */ public void setElemDouble(int i, double val) { setElemDouble(0, i, val); } /** - * Gets the data value from the first - * data array at the specified index and returns it - * as an int. - * - * @param i the index within the array where the data - * should be read + * Gets the data value from the first data array at the specified index and + * returns it as an integer. * - * @return the data element + * @param i + * the index within the array where the data should be read. + * @return the data element. */ public int getElem(int i) { return getElem(0, i); } /** - * Gets the data value from the first - * data array at the specified index and returns it - * as a float. + * Gets the data value from the first data array at the specified index and + * returns it as a float. * - * @param i the index within the array where the data - * should be read - * - * @return the data element + * @param i + * the index within the array where the data should be read. + * @return the data element. */ public float getElemFloat(int i) { return getElem(0, i); } /** - * Gets the data value from the first - * data array at the specified index and returns it - * as a double. - * - * @param i the index within the array where the data - * should be read + * Gets the data value from the first data array at the specified index and + * returns it as a double. * - * @return the data element + * @param i + * the index within the array where the data should be read. + * @return the data element. */ public double getElemDouble(int i) { return getElem(i); } /** - * Gets the array giving the offsets corresponding - * to the internal data arrays. + * Gets the array giving the offsets corresponding to the internal data + * arrays. * - * @return the array of offsets + * @return the array of offsets. */ public int[] getOffsets() { return offsets; @@ -320,18 +361,16 @@ public abstract class DataBuffer { /** * Gets the size in bits of the primitive data type. * - * @return the size in bits of the primitive data type - + * @return the size in bits of the primitive data type. */ public int getSize() { return size; } /** - * Gets the offset corresponding to the first internal - * data array. + * Gets the offset corresponding to the first internal data array. * - * @return the offset + * @return the offset. */ public int getOffset() { return offset; @@ -340,7 +379,7 @@ public abstract class DataBuffer { /** * Gets the number of data arrays in this DataBuffer. * - * @return the number of data arrays + * @return the number of data arrays. */ public int getNumBanks() { return banks; @@ -349,7 +388,7 @@ public abstract class DataBuffer { /** * Gets the primitive type of this buffer's data. * - * @return the data type + * @return the data type. */ public int getDataType() { return this.dataType; @@ -358,85 +397,85 @@ public abstract class DataBuffer { /** * Gets the size in bits of the primitive data type. * - * @param type the primitive type - * - * @return the size in bits of the primitive data type + * @param type + * the primitive type. + * @return the size in bits of the primitive data type. */ public static int getDataTypeSize(int type) { switch (type) { - case TYPE_BYTE: - return 8; + case TYPE_BYTE: + return 8; - case TYPE_USHORT: - case TYPE_SHORT: - return 16; + case TYPE_USHORT: + case TYPE_SHORT: + return 16; - case TYPE_INT: - case TYPE_FLOAT: - return 32; + case TYPE_INT: + case TYPE_FLOAT: + return 32; - case TYPE_DOUBLE: - return 64; + case TYPE_DOUBLE: + return 64; - default: - // awt.22C=Unknown data type {0} - throw new IllegalArgumentException(Messages.getString("awt.22C", type)); //$NON-NLS-1$ + default: + // awt.22C=Unknown data type {0} + throw new IllegalArgumentException(Messages.getString("awt.22C", type)); //$NON-NLS-1$ } } - + /** * Notifies the listener that the data has changed. */ - void notifyChanged(){ - if(listener != null && !dataChanged){ + void notifyChanged() { + if (listener != null && !dataChanged) { dataChanged = true; listener.dataChanged(); } } - + /** * Notifies the listener that the data has been released. */ - void notifyTaken(){ - if(listener != null && !dataTaken){ + void notifyTaken() { + if (listener != null && !dataTaken) { dataTaken = true; listener.dataTaken(); } } - + /** * Release the data. */ - void releaseData(){ - if(listener != null && dataTaken){ + void releaseData() { + if (listener != null && dataTaken) { dataTaken = false; listener.dataReleased(); } } - + /** * Adds the data buffer listener. * - * @param listener the listener + * @param listener + * the listener. */ - void addDataBufferListener(DataBufferListener listener){ + void addDataBufferListener(DataBufferListener listener) { this.listener = listener; } - + /** * Removes the data buffer listener. */ - void removeDataBufferListener(){ + void removeDataBufferListener() { listener = null; } - + /** * Validate. */ - void validate(){ + void validate() { dataChanged = false; } - -} +} diff --git a/awt/java/awt/image/DataBufferByte.java b/awt/java/awt/image/DataBufferByte.java index 4d29c9c..3407de8 100644 --- a/awt/java/awt/image/DataBufferByte.java +++ b/awt/java/awt/image/DataBufferByte.java @@ -18,25 +18,32 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; /** - * The Class DataBufferByte is the subclass of DataBuffer - * for the case where the underlying data is of type byte. + * The Class DataBufferByte is the subclass of DataBuffer for the case where the + * underlying data is of type byte. + * + * @since Android 1.0 */ public final class DataBufferByte extends DataBuffer { - /** The data. */ + /** + * The data. + */ byte data[][]; /** * Instantiates a new data buffer of type unsigned short. * - * @param dataArrays the data arrays to copy the data from - * @param size the length (number of elements) to use - * from the data arrays - * @param offsets the starting indices for reading the - * data from the internal data arrays + * @param dataArrays + * the data arrays to copy the data from. + * @param size + * the length (number of elements) to use from the data arrays. + * @param offsets + * the starting indices for reading the data from the internal + * data arrays. */ public DataBufferByte(byte dataArrays[][], int size, int offsets[]) { super(TYPE_BYTE, size, dataArrays.length, offsets); @@ -46,9 +53,10 @@ public final class DataBufferByte extends DataBuffer { /** * Instantiates a new data buffer of type unsigned short. * - * @param dataArrays the data arrays to copy the data from - * @param size the length (number of elements) to use - * from the data arrays + * @param dataArrays + * the data arrays to copy the data from. + * @param size + * the length (number of elements) to use from the data arrays. */ public DataBufferByte(byte dataArrays[][], int size) { super(TYPE_BYTE, size, dataArrays.length); @@ -56,12 +64,15 @@ public final class DataBufferByte extends DataBuffer { } /** - * Instantiates a new data buffer of type unsigned short - * with a single underlying array of data. + * Instantiates a new data buffer of type unsigned short with a single + * underlying array of data. * - * @param dataArray the data array to copy the data from - * @param size the length (number of elements) to use - * @param offset the starting index to use when reading the data + * @param dataArray + * the data array to copy the data from. + * @param size + * the length (number of elements) to use. + * @param offset + * the starting index to use when reading the data. */ public DataBufferByte(byte dataArray[], int size, int offset) { super(TYPE_BYTE, size, 1, offset); @@ -70,12 +81,13 @@ public final class DataBufferByte extends DataBuffer { } /** - * Instantiates a new data buffer of type unsigned short - * with a single underlying array of data starting at - * index 0. + * Instantiates a new data buffer of type unsigned short with a single + * underlying array of data starting at index 0. * - * @param dataArray the data array to copy the data from - * @param size the length (number of elements) to use + * @param dataArray + * the data array to copy the data from. + * @param size + * the length (number of elements) to use. */ public DataBufferByte(byte dataArray[], int size) { super(TYPE_BYTE, size); @@ -84,12 +96,13 @@ public final class DataBufferByte extends DataBuffer { } /** - * Instantiates a new empty data buffer of type unsigned short - * with offsets equal to zero. + * Instantiates a new empty data buffer of type unsigned short with offsets + * equal to zero. * - * @param size the length (number of elements) to use - * from the data arrays - * @param numBanks the number of data arrays to create + * @param size + * the length (number of elements) to use from the data arrays. + * @param numBanks + * the number of data arrays to create. */ public DataBufferByte(int size, int numBanks) { super(TYPE_BYTE, size, numBanks); @@ -101,11 +114,11 @@ public final class DataBufferByte extends DataBuffer { } /** - * Instantiates a new empty data buffer of type unsigned short - * with a single underlying array of data starting at - * index 0. + * Instantiates a new empty data buffer of type unsigned short with a single + * underlying array of data starting at index 0. * - * @param size the length (number of elements) to use + * @param size + * the length (number of elements) to use. */ public DataBufferByte(int size) { super(TYPE_BYTE, size); @@ -115,13 +128,13 @@ public final class DataBufferByte extends DataBuffer { @Override public void setElem(int bank, int i, int val) { - data[bank][offsets[bank] + i] = (byte) val; + data[bank][offsets[bank] + i] = (byte)val; notifyChanged(); } @Override public void setElem(int i, int val) { - data[0][offset + i] = (byte) val; + data[0][offset + i] = (byte)val; notifyChanged(); } @@ -133,9 +146,9 @@ public final class DataBufferByte extends DataBuffer { /** * Gets the data of the specified internal data array. * - * @param bank the index of the desired data array - * - * @return the data + * @param bank + * the index of the desired data array. + * @return the data. */ public byte[] getData(int bank) { notifyTaken(); @@ -150,7 +163,7 @@ public final class DataBufferByte extends DataBuffer { /** * Gets the bank data. * - * @return the bank data + * @return the bank data. */ public byte[][] getBankData() { notifyTaken(); @@ -160,7 +173,7 @@ public final class DataBufferByte extends DataBuffer { /** * Gets the data of the first data array. * - * @return the data + * @return the data. */ public byte[] getData() { notifyTaken(); @@ -168,4 +181,3 @@ public final class DataBufferByte extends DataBuffer { } } - diff --git a/awt/java/awt/image/DataBufferDouble.java b/awt/java/awt/image/DataBufferDouble.java index fa3d324..5d0a516 100644 --- a/awt/java/awt/image/DataBufferDouble.java +++ b/awt/java/awt/image/DataBufferDouble.java @@ -18,26 +18,33 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; /** - * The Class DataBufferDouble is the subclass of DataBuffer - * for the case where the underlying data is of type double. + * The Class DataBufferDouble is the subclass of DataBuffer for the case where + * the underlying data is of type double. + * + * @since Android 1.0 */ public final class DataBufferDouble extends DataBuffer { - /** The data. */ + /** + * The data. + */ double data[][]; /** * Instantiates a new data buffer of type double. * - * @param dataArrays the data arrays to copy the data from - * @param size the length (number of elements) to use - * from the data arrays - * @param offsets the starting indices for reading the - * data from the internal data arrays - */ + * @param dataArrays + * the data arrays to copy the data from. + * @param size + * the length (number of elements) to use from the data arrays. + * @param offsets + * the starting indices for reading the data from the internal + * data arrays. + */ public DataBufferDouble(double dataArrays[][], int size, int offsets[]) { super(TYPE_DOUBLE, size, dataArrays.length, offsets); data = dataArrays.clone(); @@ -46,9 +53,10 @@ public final class DataBufferDouble extends DataBuffer { /** * Instantiates a new data buffer of type double. * - * @param dataArrays the data arrays to copy the data from - * @param size the length (number of elements) to use - * from the data arrays + * @param dataArrays + * the data arrays to copy the data from. + * @param size + * the length (number of elements) to use from the data arrays. */ public DataBufferDouble(double dataArrays[][], int size) { super(TYPE_DOUBLE, size, dataArrays.length); @@ -56,12 +64,15 @@ public final class DataBufferDouble extends DataBuffer { } /** - * Instantiates a new data buffer of type double - * with a single underlying array of data. + * Instantiates a new data buffer of type double with a single underlying + * array of data. * - * @param dataArray the data array to copy the data from - * @param size the length (number of elements) to use - * @param offset the starting index to use when reading the data + * @param dataArray + * the data array to copy the data from. + * @param size + * the length (number of elements) to use. + * @param offset + * the starting index to use when reading the data. */ public DataBufferDouble(double dataArray[], int size, int offset) { super(TYPE_DOUBLE, size, 1, offset); @@ -70,12 +81,13 @@ public final class DataBufferDouble extends DataBuffer { } /** - * Instantiates a new data buffer of type double - * with a single underlying array of data starting at - * index 0. + * Instantiates a new data buffer of type double with a single underlying + * array of data starting at index 0. * - * @param dataArray the data array to copy the data from - * @param size the length (number of elements) to use + * @param dataArray + * the data array to copy the data from. + * @param size + * the length (number of elements) to use. */ public DataBufferDouble(double dataArray[], int size) { super(TYPE_DOUBLE, size); @@ -84,12 +96,13 @@ public final class DataBufferDouble extends DataBuffer { } /** - * Instantiates a new empty data buffer of type double - * with offsets equal to zero. + * Instantiates a new empty data buffer of type double with offsets equal to + * zero. * - * @param size the length (number of elements) to use - * from the data arrays - * @param numBanks the number of data arrays to create + * @param size + * the length (number of elements) to use from the data arrays. + * @param numBanks + * the number of data arrays to create. */ public DataBufferDouble(int size, int numBanks) { super(TYPE_DOUBLE, size, numBanks); @@ -101,11 +114,11 @@ public final class DataBufferDouble extends DataBuffer { } /** - * Instantiates a new empty data buffer of type double - * with a single underlying array of data starting at - * index 0. + * Instantiates a new empty data buffer of type double with a single + * underlying array of data starting at index 0. * - * @param size the length (number of elements) to use + * @param size + * the length (number of elements) to use. */ public DataBufferDouble(int size) { super(TYPE_DOUBLE, size); @@ -139,12 +152,12 @@ public final class DataBufferDouble extends DataBuffer { @Override public int getElem(int bank, int i) { - return (int) (data[bank][offsets[bank] + i]); + return (int)(data[bank][offsets[bank] + i]); } @Override public float getElemFloat(int bank, int i) { - return (float) (data[bank][offsets[bank] + i]); + return (float)(data[bank][offsets[bank] + i]); } @Override @@ -167,9 +180,9 @@ public final class DataBufferDouble extends DataBuffer { /** * Gets the data of the specified internal data array. * - * @param bank the index of the desired data array - * - * @return the data + * @param bank + * the index of the desired data array. + * @return the data. */ public double[] getData(int bank) { notifyTaken(); @@ -178,12 +191,12 @@ public final class DataBufferDouble extends DataBuffer { @Override public int getElem(int i) { - return (int) (data[0][offset + i]); + return (int)(data[0][offset + i]); } @Override public float getElemFloat(int i) { - return (float) (data[0][offset + i]); + return (float)(data[0][offset + i]); } @Override @@ -194,7 +207,7 @@ public final class DataBufferDouble extends DataBuffer { /** * Gets the bank data. * - * @return the bank data + * @return the bank data. */ public double[][] getBankData() { notifyTaken(); @@ -204,11 +217,10 @@ public final class DataBufferDouble extends DataBuffer { /** * Gets the data of the first data array. * - * @return the data + * @return the data. */ public double[] getData() { notifyTaken(); return data[0]; } } - diff --git a/awt/java/awt/image/DataBufferFloat.java b/awt/java/awt/image/DataBufferFloat.java index e34245c..9a4a6bf 100644 --- a/awt/java/awt/image/DataBufferFloat.java +++ b/awt/java/awt/image/DataBufferFloat.java @@ -18,25 +18,32 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; /** - * The Class DataBufferFloat is the subclass of DataBuffer - * for the case where the underlying data is float. + * The Class DataBufferFloat is the subclass of DataBuffer for the case where + * the underlying data is float. + * + * @since Android 1.0 */ public final class DataBufferFloat extends DataBuffer { - /** The data. */ + /** + * The data. + */ float data[][]; /** * Instantiates a new data buffer of type float. * - * @param dataArrays the data arrays to copy the data from - * @param size the length (number of elements) to use - * from the data arrays - * @param offsets the starting indices for reading the - * data from the internal data arrays + * @param dataArrays + * the data arrays to copy the data from. + * @param size + * the length (number of elements) to use from the data arrays. + * @param offsets + * the starting indices for reading the data from the internal + * data arrays. */ public DataBufferFloat(float dataArrays[][], int size, int offsets[]) { super(TYPE_FLOAT, size, dataArrays.length, offsets); @@ -46,9 +53,10 @@ public final class DataBufferFloat extends DataBuffer { /** * Instantiates a new data buffer of type float. * - * @param dataArrays the data arrays to copy the data from - * @param size the length (number of elements) to use - * from the data arrays + * @param dataArrays + * the data arrays to copy the data from. + * @param size + * the length (number of elements) to use from the data arrays. */ public DataBufferFloat(float dataArrays[][], int size) { super(TYPE_FLOAT, size, dataArrays.length); @@ -56,12 +64,15 @@ public final class DataBufferFloat extends DataBuffer { } /** - * Instantiates a new data buffer of type float - * with a single underlying array of data. + * Instantiates a new data buffer of type float with a single underlying + * array of data. * - * @param dataArray the data array to copy the data from - * @param size the length (number of elements) to use - * @param offset the starting index to use when reading the data + * @param dataArray + * the data array to copy the data from. + * @param size + * the length (number of elements) to use. + * @param offset + * the starting index to use when reading the data. */ public DataBufferFloat(float dataArray[], int size, int offset) { super(TYPE_FLOAT, size, 1, offset); @@ -70,12 +81,13 @@ public final class DataBufferFloat extends DataBuffer { } /** - * Instantiates a new data buffer of type float - * with a single underlying array of data starting at - * index 0. + * Instantiates a new data buffer of type float with a single underlying + * array of data starting at index 0. * - * @param dataArray the data array to copy the data from - * @param size the length (number of elements) to use + * @param dataArray + * the data array to copy the data from. + * @param size + * the length (number of elements) to use. */ public DataBufferFloat(float dataArray[], int size) { super(TYPE_FLOAT, size); @@ -84,12 +96,13 @@ public final class DataBufferFloat extends DataBuffer { } /** - * Instantiates a new empty data buffer of type float - * with offsets equal to zero. + * Instantiates a new empty data buffer of type float with offsets equal to + * zero. * - * @param size the length (number of elements) to use - * from the data arrays - * @param numBanks the number of data arrays to create + * @param size + * the length (number of elements) to use from the data arrays. + * @param numBanks + * the number of data arrays to create. */ public DataBufferFloat(int size, int numBanks) { super(TYPE_FLOAT, size, numBanks); @@ -101,11 +114,11 @@ public final class DataBufferFloat extends DataBuffer { } /** - * Instantiates a new empty data buffer of type float - * with a single underlying array of data starting at - * index 0. + * Instantiates a new empty data buffer of type float with a single + * underlying array of data starting at index 0. * - * @param size the length (number of elements) to use + * @param size + * the length (number of elements) to use. */ public DataBufferFloat(int size) { super(TYPE_FLOAT, size); @@ -127,7 +140,7 @@ public final class DataBufferFloat extends DataBuffer { @Override public void setElemDouble(int bank, int i, double val) { - data[bank][offsets[bank] + i] = (float) val; + data[bank][offsets[bank] + i] = (float)val; notifyChanged(); } @@ -139,7 +152,7 @@ public final class DataBufferFloat extends DataBuffer { @Override public int getElem(int bank, int i) { - return (int) (data[bank][offsets[bank] + i]); + return (int)(data[bank][offsets[bank] + i]); } @Override @@ -160,16 +173,16 @@ public final class DataBufferFloat extends DataBuffer { @Override public void setElemDouble(int i, double val) { - data[0][offset + i] = (float) val; + data[0][offset + i] = (float)val; notifyChanged(); } /** * Gets the data of the specified internal data array. * - * @param bank the index of the desired array - * - * @return the data + * @param bank + * the index of the desired array. + * @return the data. */ public float[] getData(int bank) { notifyTaken(); @@ -178,7 +191,7 @@ public final class DataBufferFloat extends DataBuffer { @Override public int getElem(int i) { - return (int) (data[0][offset + i]); + return (int)(data[0][offset + i]); } @Override @@ -194,7 +207,7 @@ public final class DataBufferFloat extends DataBuffer { /** * Gets the bank data. * - * @return the bank data + * @return the bank data. */ public float[][] getBankData() { notifyTaken(); @@ -204,11 +217,10 @@ public final class DataBufferFloat extends DataBuffer { /** * Gets the data of the first data array. * - * @return the data + * @return the data. */ public float[] getData() { notifyTaken(); return data[0]; } } - diff --git a/awt/java/awt/image/DataBufferInt.java b/awt/java/awt/image/DataBufferInt.java index 43dc188..380a127 100644 --- a/awt/java/awt/image/DataBufferInt.java +++ b/awt/java/awt/image/DataBufferInt.java @@ -18,25 +18,32 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; /** - * The Class DataBufferInt is the subclass of DataBuffer - * for the case where the underlying data is of type int. + * The Class DataBufferInt is the subclass of DataBuffer for the case where the + * underlying data is of type integer. + * + * @since Android 1.0 */ public final class DataBufferInt extends DataBuffer { - /** The data. */ + /** + * The data. + */ int data[][]; /** - * Instantiates a new data buffer of type int. + * Instantiates a new data buffer of type integer. * - * @param dataArrays the data arrays to copy the data from - * @param size the length (number of elements) to use - * from the data arrays - * @param offsets the starting indices for reading the - * data from the internal data arrays + * @param dataArrays + * the data arrays to copy the data from. + * @param size + * the length (number of elements) to use from the data arrays. + * @param offsets + * the starting indices for reading the data from the internal + * data arrays. */ public DataBufferInt(int dataArrays[][], int size, int offsets[]) { super(TYPE_INT, size, dataArrays.length, offsets); @@ -44,11 +51,12 @@ public final class DataBufferInt extends DataBuffer { } /** - * Instantiates a new data buffer of type int. + * Instantiates a new data buffer of type integer. * - * @param dataArrays the data arrays to copy the data from - * @param size the length (number of elements) to use - * from the data arrays + * @param dataArrays + * the data arrays to copy the data from. + * @param size + * the length (number of elements) to use from the data arrays. */ public DataBufferInt(int dataArrays[][], int size) { super(TYPE_INT, size, dataArrays.length); @@ -56,12 +64,15 @@ public final class DataBufferInt extends DataBuffer { } /** - * Instantiates a new data buffer of type int - * with a single underlying array of data. + * Instantiates a new data buffer of type integer with a single underlying + * array of data. * - * @param dataArray the data array to copy the data from - * @param size the length (number of elements) to use - * @param offset the starting index to use when reading the data + * @param dataArray + * the data array to copy the data from. + * @param size + * the length (number of elements) to use. + * @param offset + * the starting index to use when reading the data. */ public DataBufferInt(int dataArray[], int size, int offset) { super(TYPE_INT, size, 1, offset); @@ -70,12 +81,13 @@ public final class DataBufferInt extends DataBuffer { } /** - * Instantiates a new data buffer of type int - * with a single underlying array of data starting at - * index 0. + * Instantiates a new data buffer of type integer with a single underlying + * array of data starting at index 0. * - * @param dataArray the data array to copy the data from - * @param size the length (number of elements) to use + * @param dataArray + * the data array to copy the data from. + * @param size + * the length (number of elements) to use. */ public DataBufferInt(int dataArray[], int size) { super(TYPE_INT, size); @@ -84,12 +96,13 @@ public final class DataBufferInt extends DataBuffer { } /** - * Instantiates a new empty data buffer of type int - * with offsets equal to zero. + * Instantiates a new empty data buffer of type integer with offsets equal + * to zero. * - * @param size the length (number of elements) to use - * from the data arrays - * @param numBanks the number of data arrays to create + * @param size + * the length (number of elements) to use from the data arrays. + * @param numBanks + * the number of data arrays to create. */ public DataBufferInt(int size, int numBanks) { super(TYPE_INT, size, numBanks); @@ -101,11 +114,11 @@ public final class DataBufferInt extends DataBuffer { } /** - * Instantiates a new empty data buffer of type int - * with a single underlying array of data starting at - * index 0. + * Instantiates a new empty data buffer of type integer with a single + * underlying array of data starting at index 0. * - * @param size the length (number of elements) to use + * @param size + * the length (number of elements) to use. */ public DataBufferInt(int size) { super(TYPE_INT, size); @@ -133,9 +146,9 @@ public final class DataBufferInt extends DataBuffer { /** * Gets the data of the specified internal data array. * - * @param bank the index of the desired data array - * - * @return the data + * @param bank + * the index of the desired data array. + * @return the data. */ public int[] getData(int bank) { notifyTaken(); @@ -150,7 +163,7 @@ public final class DataBufferInt extends DataBuffer { /** * Gets the bank data. * - * @return the bank data + * @return the bank data. */ public int[][] getBankData() { notifyTaken(); @@ -160,11 +173,10 @@ public final class DataBufferInt extends DataBuffer { /** * Gets the data of the first data array. * - * @return the data + * @return the data. */ public int[] getData() { notifyTaken(); return data[0]; } } - diff --git a/awt/java/awt/image/DataBufferShort.java b/awt/java/awt/image/DataBufferShort.java index 819ba4a..1b11b29 100644 --- a/awt/java/awt/image/DataBufferShort.java +++ b/awt/java/awt/image/DataBufferShort.java @@ -18,25 +18,32 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; /** - * The Class DataBufferShort is the subclass of DataBuffer - * for the case where the underlying data is short. + * The Class DataBufferShort is the subclass of DataBuffer for the case where + * the underlying data is short. + * + * @since Android 1.0 */ public final class DataBufferShort extends DataBuffer { - /** The data. */ + /** + * The data. + */ short data[][]; /** * Instantiates a new data buffer of type short. * - * @param dataArrays the data arrays to copy the data from - * @param size the length (number of elements) to use - * from the data arrays - * @param offsets the starting indices for reading the - * data from the internal data arrays + * @param dataArrays + * the data arrays to copy the data from. + * @param size + * the length (number of elements) to use from the data arrays. + * @param offsets + * the starting indices for reading the data from the internal + * data arrays. */ public DataBufferShort(short dataArrays[][], int size, int offsets[]) { super(TYPE_SHORT, size, dataArrays.length, offsets); @@ -46,9 +53,10 @@ public final class DataBufferShort extends DataBuffer { /** * Instantiates a new data buffer of type short. * - * @param dataArrays the data arrays to copy the data from - * @param size the length (number of elements) to use - * from the data arrays + * @param dataArrays + * the data arrays to copy the data from. + * @param size + * the length (number of elements) to use from the data arrays. */ public DataBufferShort(short dataArrays[][], int size) { super(TYPE_SHORT, size, dataArrays.length); @@ -56,13 +64,15 @@ public final class DataBufferShort extends DataBuffer { } /** - * Instantiates a new data buffer of type short - * with a single underlying array of data. + * Instantiates a new data buffer of type short with a single underlying + * array of data. * - * @param dataArray the data array to copy the data from - * @param size the length (number of elements) to use - * @param offset the starting index to use when reading the data - + * @param dataArray + * the data array to copy the data from. + * @param size + * the length (number of elements) to use. + * @param offset + * the starting index to use when reading the data. */ public DataBufferShort(short dataArray[], int size, int offset) { super(TYPE_SHORT, size, 1, offset); @@ -71,13 +81,13 @@ public final class DataBufferShort extends DataBuffer { } /** - * Instantiates a new data buffer of type short - * with a single underlying array of data starting at - * index 0. + * Instantiates a new data buffer of type short with a single underlying + * array of data starting at index 0. * - * @param dataArray the data array to copy the data from - * @param size the length (number of elements) to use - + * @param dataArray + * the data array to copy the data from. + * @param size + * the length (number of elements) to use. */ public DataBufferShort(short dataArray[], int size) { super(TYPE_SHORT, size); @@ -86,12 +96,12 @@ public final class DataBufferShort extends DataBuffer { } /** - * Instantiates a new data buffer of type short - * with offsets equal to zero. + * Instantiates a new data buffer of type short with offsets equal to zero. * - * @param size the length (number of elements) to use - * from the data arrays - * @param numBanks the number of data arrays to create + * @param size + * the length (number of elements) to use from the data arrays. + * @param numBanks + * the number of data arrays to create. */ public DataBufferShort(int size, int numBanks) { super(TYPE_SHORT, size, numBanks); @@ -103,11 +113,11 @@ public final class DataBufferShort extends DataBuffer { } /** - * Instantiates a new empty data buffer of type short - * with a single underlying array of data starting at - * index 0. + * Instantiates a new empty data buffer of type short with a single + * underlying array of data starting at index 0. * - * @param size the length (number of elements) to use + * @param size + * the length (number of elements) to use. */ public DataBufferShort(int size) { super(TYPE_SHORT, size); @@ -117,13 +127,13 @@ public final class DataBufferShort extends DataBuffer { @Override public void setElem(int bank, int i, int val) { - data[bank][offsets[bank] + i] = (short) val; + data[bank][offsets[bank] + i] = (short)val; notifyChanged(); } @Override public void setElem(int i, int val) { - data[0][offset + i] = (short) val; + data[0][offset + i] = (short)val; notifyChanged(); } @@ -135,9 +145,9 @@ public final class DataBufferShort extends DataBuffer { /** * Gets the data of the specified internal data array. * - * @param bank the index of the desired data array - * - * @return the data + * @param bank + * the index of the desired data array. + * @return the data. */ public short[] getData(int bank) { notifyTaken(); @@ -152,7 +162,7 @@ public final class DataBufferShort extends DataBuffer { /** * Gets the bank data. * - * @return the bank data + * @return the bank data. */ public short[][] getBankData() { notifyTaken(); @@ -162,11 +172,10 @@ public final class DataBufferShort extends DataBuffer { /** * Gets the data of the first data array. * - * @return the data + * @return the data. */ public short[] getData() { notifyTaken(); return data[0]; } } - diff --git a/awt/java/awt/image/DataBufferUShort.java b/awt/java/awt/image/DataBufferUShort.java index 7982678..58d9d83 100644 --- a/awt/java/awt/image/DataBufferUShort.java +++ b/awt/java/awt/image/DataBufferUShort.java @@ -18,34 +18,42 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Class DataBufferUShort is the subclass of DataBuffer - * for the case where the underlying data is unsigned short. + * The Class DataBufferUShort is the subclass of DataBuffer for the case where + * the underlying data is unsigned short. + * + * @since Android 1.0 */ public final class DataBufferUShort extends DataBuffer { - /** The data. */ + /** + * The data. + */ short data[][]; /** * Instantiates a new data buffer of type unsigned short. * - * @param dataArrays the data arrays to copy the data from - * @param size the length (number of elements) to use - * from the data arrays - * @param offsets the starting indices for reading the - * data from the internal data arrays + * @param dataArrays + * the data arrays to copy the data from. + * @param size + * the length (number of elements) to use from the data arrays. + * @param offsets + * the starting indices for reading the data from the internal + * data arrays. */ public DataBufferUShort(short dataArrays[][], int size, int offsets[]) { super(TYPE_USHORT, size, dataArrays.length, offsets); - for(int i = 0; i < dataArrays.length; i++){ - if(dataArrays[i].length < offsets[i] + size){ - // awt.28d=Length of dataArray[{0}] is less than size + offset[{1}] - throw new IllegalArgumentException(Messages.getString("awt.28D", i, i)); //$NON-NLS-1$ + for (int i = 0; i < dataArrays.length; i++) { + if (dataArrays[i].length < offsets[i] + size) { + // awt.28d=Length of dataArray[{0}] is less than size + + // offset[{1}] + throw new IllegalArgumentException(Messages.getString("awt.28D", i, i)); //$NON-NLS-1$ } } data = dataArrays.clone(); @@ -54,9 +62,10 @@ public final class DataBufferUShort extends DataBuffer { /** * Instantiates a new data buffer of type unsigned short. * - * @param dataArrays the data arrays to copy the data from - * @param size the length (number of elements) to use - * from the data arrays + * @param dataArrays + * the data arrays to copy the data from. + * @param size + * the length (number of elements) to use from the data arrays. */ public DataBufferUShort(short dataArrays[][], int size) { super(TYPE_USHORT, size, dataArrays.length); @@ -64,16 +73,19 @@ public final class DataBufferUShort extends DataBuffer { } /** - * Instantiates a new data buffer of type unsigned short - * with a single underlying array of data. + * Instantiates a new data buffer of type unsigned short with a single + * underlying array of data. * - * @param dataArray the data array to copy the data from - * @param size the length (number of elements) to use - * @param offset the starting index to use when reading the data + * @param dataArray + * the data array to copy the data from. + * @param size + * the length (number of elements) to use. + * @param offset + * the starting index to use when reading the data. */ public DataBufferUShort(short dataArray[], int size, int offset) { super(TYPE_USHORT, size, 1, offset); - if(dataArray.length < size + offset){ + if (dataArray.length < size + offset) { // awt.28E=Length of dataArray is less than size + offset throw new IllegalArgumentException(Messages.getString("awt.28E")); //$NON-NLS-1$ } @@ -82,12 +94,13 @@ public final class DataBufferUShort extends DataBuffer { } /** - * Instantiates a new data buffer of type unsigned short - * with a single underlying array of data starting at - * index 0. + * Instantiates a new data buffer of type unsigned short with a single + * underlying array of data starting at index 0. * - * @param dataArray the data array to copy the data from - * @param size the length (number of elements) to use + * @param dataArray + * the data array to copy the data from. + * @param size + * the length (number of elements) to use. */ public DataBufferUShort(short dataArray[], int size) { super(TYPE_USHORT, size); @@ -96,28 +109,29 @@ public final class DataBufferUShort extends DataBuffer { } /** - * Instantiates a new empty data buffer of type unsigned short - * with offsets equal to zero. + * Instantiates a new empty data buffer of type unsigned short with offsets + * equal to zero. * - * @param size the length (number of elements) to use - * from the data arrays - * @param numBanks the number of data arrays to create + * @param size + * the length (number of elements) to use from the data arrays. + * @param numBanks + * the number of data arrays to create. */ public DataBufferUShort(int size, int numBanks) { super(TYPE_USHORT, size, numBanks); data = new short[numBanks][]; - int i= 0; - while( i < numBanks) { + int i = 0; + while (i < numBanks) { data[i++] = new short[size]; } } /** - * Instantiates a new empty data buffer of type unsigned short - * with a single underlying array of data starting at - * index 0. + * Instantiates a new empty data buffer of type unsigned short with a single + * underlying array of data starting at index 0. * - * @param size the length (number of elements) to use + * @param size + * the length (number of elements) to use. */ public DataBufferUShort(int size) { super(TYPE_USHORT, size); @@ -145,9 +159,9 @@ public final class DataBufferUShort extends DataBuffer { /** * Gets the data of the specified internal data array. * - * @param bank the index of the desired data array - * - * @return the data + * @param bank + * the index of the desired data array. + * @return the data. */ public short[] getData(int bank) { notifyTaken(); @@ -162,7 +176,7 @@ public final class DataBufferUShort extends DataBuffer { /** * Gets the bank data. * - * @return the bank data + * @return the bank data. */ public short[][] getBankData() { notifyTaken(); @@ -172,11 +186,10 @@ public final class DataBufferUShort extends DataBuffer { /** * Gets the data of the first data array. * - * @return the data + * @return the data. */ public short[] getData() { notifyTaken(); return data[0]; } } - diff --git a/awt/java/awt/image/DirectColorModel.java b/awt/java/awt/image/DirectColorModel.java index 7a287c0..700eb7a 100644 --- a/awt/java/awt/image/DirectColorModel.java +++ b/awt/java/awt/image/DirectColorModel.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.awt.color.ColorSpace; @@ -28,104 +29,141 @@ import org.apache.harmony.awt.gl.color.LUTColorConverter; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Class DirectColorModel represents a standard (packed) RGB - * color model with additional support for converting between sRGB - * color space and 8 or 16 bit linear RGB color space using lookup tables. + * The Class DirectColorModel represents a standard (packed) RGB color model + * with additional support for converting between sRGB color space and 8 or 16 + * bit linear RGB color space using lookup tables. + * + * @since Android 1.0 */ public class DirectColorModel extends PackedColorModel { - /** The from_ linea r_ rg b_ lut. */ + /** + * The from_ linea r_ rg b_ lut. + */ private byte from_LINEAR_RGB_LUT[]; // Lookup table for conversion from - // Linear RGB Color Space into sRGB - /** The to_ linea r_8 rg b_ lut. */ - private byte to_LINEAR_8RGB_LUT[]; // Lookup table for conversion from - // sRGB Color Space into Linear RGB - // 8 bit + // Linear RGB Color Space into sRGB + + /** + * The to_ linea r_8 rg b_ lut. + */ + private byte to_LINEAR_8RGB_LUT[]; // Lookup table for conversion from - /** The to_ linea r_16 rg b_ lut. */ - private short to_LINEAR_16RGB_LUT[]; // Lookup table for conversion from - // sRGB Color Space into Linear RGB - // 16 bit + // sRGB Color Space into Linear RGB + // 8 bit - /** The alpha lut. */ - private byte alphaLUT[]; // Lookup table for scale alpha value + /** + * The to_ linea r_16 rg b_ lut. + */ + private short to_LINEAR_16RGB_LUT[]; // Lookup table for conversion from - /** The color lu ts. */ - private byte colorLUTs[][]; // Lookup tables for scale color values + // sRGB Color Space into Linear RGB + // 16 bit - /** The is_s rgb. */ - private boolean is_sRGB; // ColorModel has sRGB ColorSpace + /** + * The alpha lut. + */ + private byte alphaLUT[]; // Lookup table for scale alpha value + + /** + * The color lu ts. + */ + private byte colorLUTs[][]; // Lookup tables for scale color values + + /** + * The is_s rgb. + */ + private boolean is_sRGB; // ColorModel has sRGB ColorSpace + + /** + * The is_ linea r_ rgb. + */ + private boolean is_LINEAR_RGB; // Color Model has Linear RGB Color - /** The is_ linea r_ rgb. */ - private boolean is_LINEAR_RGB; // Color Model has Linear RGB Color - // Space + // Space - /** The LINEA r_ rg b_ length. */ - private int LINEAR_RGB_Length; // Linear RGB bit length + /** + * The LINEA r_ rg b_ length. + */ + private int LINEAR_RGB_Length; // Linear RGB bit length - /** The factor. */ - private float fFactor; // Scale factor + /** + * The factor. + */ + private float fFactor; // Scale factor /** * Instantiates a new direct color model. * - * @param space the color space - * @param bits the array of component masks - * @param rmask the bitmask corresponding to the red band - * @param gmask the bitmask corresponding to the green band - * @param bmask the bitmask corresponding to the blue band - * @param amask the bitmask corresponding to the alpha band - * @param isAlphaPremultiplied whether the alpha is premultiplied in this color model - * @param transferType the transfer type (primitive java type - * to use for the components) - * - * @throws IllegalArgumentException if the number of bits in the combined - * bitmasks for the color bands is less than one or greater than 32 + * @param space + * the color space. + * @param bits + * the array of component masks. + * @param rmask + * the bitmask corresponding to the red band. + * @param gmask + * the bitmask corresponding to the green band. + * @param bmask + * the bitmask corresponding to the blue band. + * @param amask + * the bitmask corresponding to the alpha band. + * @param isAlphaPremultiplied + * whether the alpha is pre-multiplied in this color model. + * @param transferType + * the transfer type (primitive java type to use for the + * components). + * @throws IllegalArgumentException + * if the number of bits in the combined bitmasks for the color + * bands is less than one or greater than 32. */ - public DirectColorModel(ColorSpace space, int bits, int rmask, int gmask, - int bmask, int amask, boolean isAlphaPremultiplied, - int transferType) { + public DirectColorModel(ColorSpace space, int bits, int rmask, int gmask, int bmask, int amask, + boolean isAlphaPremultiplied, int transferType) { super(space, bits, rmask, gmask, bmask, amask, isAlphaPremultiplied, - (amask == 0 ? Transparency.OPAQUE : Transparency.TRANSLUCENT), - transferType); + (amask == 0 ? Transparency.OPAQUE : Transparency.TRANSLUCENT), transferType); initLUTs(); } /** - * Instantiates a new direct color model, determining the transfer - * type from the bits array, the transparency from the alpha mask, - * and the default color space {@link ColorSpace#CS_sRGB}. + * Instantiates a new direct color model, determining the transfer type from + * the bits array, the transparency from the alpha mask, and the default + * color space {@link ColorSpace#CS_sRGB}. * - * @param bits the array of component masks - * @param rmask the bitmask corresponding to the red band - * @param gmask the bitmask corresponding to the green band - * @param bmask the bitmask corresponding to the blue band - * @param amask the bitmask corresponding to the alpha band + * @param bits + * the array of component masks. + * @param rmask + * the bitmask corresponding to the red band. + * @param gmask + * the bitmask corresponding to the green band. + * @param bmask + * the bitmask corresponding to the blue band. + * @param amask + * the bitmask corresponding to the alpha band. */ - public DirectColorModel(int bits, int rmask, int gmask, int bmask, - int amask) { + public DirectColorModel(int bits, int rmask, int gmask, int bmask, int amask) { - super(ColorSpace.getInstance(ColorSpace.CS_sRGB), bits, rmask, gmask, - bmask, amask, false, - (amask == 0 ? Transparency.OPAQUE : Transparency.TRANSLUCENT), - ColorModel.getTransferType(bits)); + super(ColorSpace.getInstance(ColorSpace.CS_sRGB), bits, rmask, gmask, bmask, amask, false, + (amask == 0 ? Transparency.OPAQUE : Transparency.TRANSLUCENT), ColorModel + .getTransferType(bits)); initLUTs(); } /** - * Instantiates a new direct color model with no alpha channel, - * determining the transfer type from the bits array, - * the default color space {@link ColorSpace#CS_sRGB}, - * and with the transparency set to {@link Transparency#OPAQUE}. + * Instantiates a new direct color model with no alpha channel, determining + * the transfer type from the bits array, the default color space + * {@link ColorSpace#CS_sRGB}, and with the transparency set to + * {@link Transparency#OPAQUE}. * - * @param bits the array of component masks - * @param rmask the bitmask corresponding to the red band - * @param gmask the bitmask corresponding to the green band - * @param bmask the bitmask corresponding to the blue band + * @param bits + * the array of component masks. + * @param rmask + * the bitmask corresponding to the red band. + * @param gmask + * the bitmask corresponding to the green band. + * @param bmask + * the bitmask corresponding to the blue band. */ public DirectColorModel(int bits, int rmask, int gmask, int bmask) { this(bits, rmask, gmask, bmask, 0); @@ -139,42 +177,42 @@ public class DirectColorModel extends PackedColorModel { } switch (transferType) { - case DataBuffer.TYPE_BYTE: - byte ba[]; - if (obj == null) { - ba = new byte[1]; - } else { - ba = (byte[]) obj; - } - ba[0] = (byte) pixel; - obj = ba; - break; - - case DataBuffer.TYPE_USHORT: - short sa[]; - if (obj == null) { - sa = new short[1]; - } else { - sa = (short[]) obj; - } - sa[0] = (short) pixel; - obj = sa; - break; + case DataBuffer.TYPE_BYTE: + byte ba[]; + if (obj == null) { + ba = new byte[1]; + } else { + ba = (byte[])obj; + } + ba[0] = (byte)pixel; + obj = ba; + break; - case DataBuffer.TYPE_INT: - int ia[]; - if (obj == null) { - ia = new int[1]; - } else { - ia = (int[]) obj; - } - ia[0] = pixel; - obj = ia; - break; + case DataBuffer.TYPE_USHORT: + short sa[]; + if (obj == null) { + sa = new short[1]; + } else { + sa = (short[])obj; + } + sa[0] = (short)pixel; + obj = sa; + break; + + case DataBuffer.TYPE_INT: + int ia[]; + if (obj == null) { + ia = new int[1]; + } else { + ia = (int[])obj; + } + ia[0] = pixel; + obj = ia; + break; - default: - // awt.214=This Color Model doesn't support this transferType - throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ + default: + // awt.214=This Color Model doesn't support this transferType + throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ } return obj; @@ -187,7 +225,7 @@ public class DirectColorModel extends PackedColorModel { if (pixel == null) { ia = new int[1]; } else { - ia = (int[]) pixel; + ia = (int[])pixel; } ia[0] = rgb; return ia; @@ -246,67 +284,66 @@ public class DirectColorModel extends PackedColorModel { int pxl = 0; if (hasAlpha) { float normAlpha = normComp[numColorComponents]; - alpha = (int) (normAlpha * maxValues[numColorComponents] + 0.5f); + alpha = (int)(normAlpha * maxValues[numColorComponents] + 0.5f); if (isAlphaPremultiplied) { - red = (int) (normComp[0] * normAlpha * maxValues[0] + 0.5f); - green = (int) (normComp[1] * normAlpha * maxValues[1] + 0.5f); - blue = (int) (normComp[2] * normAlpha * maxValues[2] + 0.5f); + red = (int)(normComp[0] * normAlpha * maxValues[0] + 0.5f); + green = (int)(normComp[1] * normAlpha * maxValues[1] + 0.5f); + blue = (int)(normComp[2] * normAlpha * maxValues[2] + 0.5f); } else { - red = (int) (normComp[0] * maxValues[0] + 0.5f); - green = (int) (normComp[1] * maxValues[1] + 0.5f); - blue = (int) (normComp[2] * maxValues[2] + 0.5f); + red = (int)(normComp[0] * maxValues[0] + 0.5f); + green = (int)(normComp[1] * maxValues[1] + 0.5f); + blue = (int)(normComp[2] * maxValues[2] + 0.5f); } pxl = (alpha << offsets[3]) & componentMasks[3]; } else { - red = (int) (normComp[0] * maxValues[0] + 0.5f); - green = (int) (normComp[1] * maxValues[1] + 0.5f); - blue = (int) (normComp[2] * maxValues[2] + 0.5f); + red = (int)(normComp[0] * maxValues[0] + 0.5f); + green = (int)(normComp[1] * maxValues[1] + 0.5f); + blue = (int)(normComp[2] * maxValues[2] + 0.5f); } - pxl |= ((red << offsets[0]) & componentMasks[0]) | - ((green << offsets[1]) & componentMasks[1]) | - ((blue << offsets[2]) & componentMasks[2]); + pxl |= ((red << offsets[0]) & componentMasks[0]) + | ((green << offsets[1]) & componentMasks[1]) + | ((blue << offsets[2]) & componentMasks[2]); switch (transferType) { - case DataBuffer.TYPE_BYTE: - byte ba[]; - if (pixel == null) { - ba = new byte[1]; - } else { - ba = (byte[]) pixel; - } - ba[0] = (byte) pxl; - return ba; + case DataBuffer.TYPE_BYTE: + byte ba[]; + if (pixel == null) { + ba = new byte[1]; + } else { + ba = (byte[])pixel; + } + ba[0] = (byte)pxl; + return ba; - case DataBuffer.TYPE_USHORT: - short sa[]; - if (pixel == null) { - sa = new short[1]; - } else { - sa = (short[]) pixel; - } - sa[0] = (short) pxl; - return sa; + case DataBuffer.TYPE_USHORT: + short sa[]; + if (pixel == null) { + sa = new short[1]; + } else { + sa = (short[])pixel; + } + sa[0] = (short)pxl; + return sa; - case DataBuffer.TYPE_INT: - int ia[]; - if (pixel == null) { - ia = new int[1]; - } else { - ia = (int[]) pixel; - } - ia[0] = pxl; - return ia; + case DataBuffer.TYPE_INT: + int ia[]; + if (pixel == null) { + ia = new int[1]; + } else { + ia = (int[])pixel; + } + ia[0] = pxl; + return ia; - default: - // awt.214=This Color Model doesn't support this transferType - throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ + default: + // awt.214=This Color Model doesn't support this transferType + throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ } } @Override - public final ColorModel coerceData(WritableRaster raster, - boolean isAlphaPremultiplied) { + public final ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied) { if (!hasAlpha || this.isAlphaPremultiplied == isAlphaPremultiplied) { return this; @@ -324,86 +361,82 @@ public class DirectColorModel extends PackedColorModel { if (isAlphaPremultiplied) { switch (transferType) { - case DataBuffer.TYPE_BYTE: - case DataBuffer.TYPE_USHORT: - case DataBuffer.TYPE_INT: - for (int i = 0; i < h; i++, minY++) { - for (int j = 0, x = minX; j < w; j++, x++) { - components = raster.getPixel(x, minY, components); - if (components[numColorComponents] == 0) { - raster.setPixel(x, minY, transparentComponents); - } else { - float alpha = - components[numColorComponents] / - alphaFactor; - for (int n = 0; n < numColorComponents; n++) { - components[n] = - (int) (alpha * components[n] + 0.5f); + case DataBuffer.TYPE_BYTE: + case DataBuffer.TYPE_USHORT: + case DataBuffer.TYPE_INT: + for (int i = 0; i < h; i++, minY++) { + for (int j = 0, x = minX; j < w; j++, x++) { + components = raster.getPixel(x, minY, components); + if (components[numColorComponents] == 0) { + raster.setPixel(x, minY, transparentComponents); + } else { + float alpha = components[numColorComponents] / alphaFactor; + for (int n = 0; n < numColorComponents; n++) { + components[n] = (int)(alpha * components[n] + 0.5f); + } + raster.setPixel(x, minY, components); } - raster.setPixel(x, minY, components); } - } - } - break; + } + break; - default: - // awt.214=This Color Model doesn't support this transferType - throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ + default: + // awt.214=This Color Model doesn't support this + // transferType + throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ } } else { switch (transferType) { - case DataBuffer.TYPE_BYTE: - case DataBuffer.TYPE_USHORT: - case DataBuffer.TYPE_INT: - for (int i = 0; i < h; i++, minY++) { - for (int j = 0, x = minX; j < w; j++, x++) { - components = raster.getPixel(x, minY, components); - if (components[numColorComponents] != 0) { - float alpha = - alphaFactor / components[numColorComponents]; - for (int n = 0; n < numColorComponents; n++) { - components[n] = - (int) (alpha * components[n] + 0.5f); + case DataBuffer.TYPE_BYTE: + case DataBuffer.TYPE_USHORT: + case DataBuffer.TYPE_INT: + for (int i = 0; i < h; i++, minY++) { + for (int j = 0, x = minX; j < w; j++, x++) { + components = raster.getPixel(x, minY, components); + if (components[numColorComponents] != 0) { + float alpha = alphaFactor / components[numColorComponents]; + for (int n = 0; n < numColorComponents; n++) { + components[n] = (int)(alpha * components[n] + 0.5f); + } + raster.setPixel(x, minY, components); } - raster.setPixel(x, minY, components); } - } - } - break; + } + break; - default: - // awt.214=This Color Model doesn't support this transferType - throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ + default: + // awt.214=This Color Model doesn't support this + // transferType + throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ } } - return new DirectColorModel(cs, pixel_bits, componentMasks[0], - componentMasks[1], componentMasks[2], componentMasks[3], - isAlphaPremultiplied, transferType); + return new DirectColorModel(cs, pixel_bits, componentMasks[0], componentMasks[1], + componentMasks[2], componentMasks[3], isAlphaPremultiplied, transferType); } @Override public String toString() { - // The output format based on 1.5 release behaviour. + // The output format based on 1.5 release behaviour. // It could be reveled such way: - // BufferedImage bi = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB); + // BufferedImage bi = new BufferedImage(1, 1, + // BufferedImage.TYPE_INT_ARGB); // ColorModel cm = bi.getColorModel(); // System.out.println(cm.toString()); String str = "DirectColorModel:" + " rmask = " + //$NON-NLS-1$ //$NON-NLS-2$ - Integer.toHexString(componentMasks[0]) + " gmask = " + //$NON-NLS-1$ - Integer.toHexString(componentMasks[1]) + " bmask = " + //$NON-NLS-1$ - Integer.toHexString(componentMasks[2]) + " amask = " + //$NON-NLS-1$ - (!hasAlpha ? "0" : Integer.toHexString(componentMasks[3])); //$NON-NLS-1$ + Integer.toHexString(componentMasks[0]) + " gmask = " + //$NON-NLS-1$ + Integer.toHexString(componentMasks[1]) + " bmask = " + //$NON-NLS-1$ + Integer.toHexString(componentMasks[2]) + " amask = " + //$NON-NLS-1$ + (!hasAlpha ? "0" : Integer.toHexString(componentMasks[3])); //$NON-NLS-1$ return str; } @Override - public final int[] getComponents(Object pixel, int components[], - int offset) { + public final int[] getComponents(Object pixel, int components[], int offset) { if (components == null) { components = new int[numComponents + offset]; @@ -412,25 +445,26 @@ public class DirectColorModel extends PackedColorModel { int intPixel = 0; switch (transferType) { - case DataBuffer.TYPE_BYTE: - byte ba[] = (byte[]) pixel; - intPixel = ba[0] & 0xff; - break; + case DataBuffer.TYPE_BYTE: + byte ba[] = (byte[])pixel; + intPixel = ba[0] & 0xff; + break; - case DataBuffer.TYPE_USHORT: - short sa[] = (short[]) pixel; - intPixel = sa[0] & 0xffff; - break; + case DataBuffer.TYPE_USHORT: + short sa[] = (short[])pixel; + intPixel = sa[0] & 0xffff; + break; - case DataBuffer.TYPE_INT: - int ia[] = (int[]) pixel; - intPixel = ia[0]; - break; + case DataBuffer.TYPE_INT: + int ia[] = (int[])pixel; + intPixel = ia[0]; + break; - default: - // awt.22D=This transferType ( {0} ) is not supported by this color model - throw new UnsupportedOperationException(Messages.getString("awt.22D", //$NON-NLS-1$ - transferType)); + default: + // awt.22D=This transferType ( {0} ) is not supported by this + // color model + throw new UnsupportedOperationException(Messages.getString("awt.22D", //$NON-NLS-1$ + transferType)); } return getComponents(intPixel, components, offset); @@ -440,24 +474,24 @@ public class DirectColorModel extends PackedColorModel { public int getRed(Object inData) { int pixel = 0; switch (transferType) { - case DataBuffer.TYPE_BYTE: - byte ba[] = (byte[]) inData; - pixel = ba[0] & 0xff; - break; + case DataBuffer.TYPE_BYTE: + byte ba[] = (byte[])inData; + pixel = ba[0] & 0xff; + break; - case DataBuffer.TYPE_USHORT: - short sa[] = (short[]) inData; - pixel = sa[0] & 0xffff; - break; + case DataBuffer.TYPE_USHORT: + short sa[] = (short[])inData; + pixel = sa[0] & 0xffff; + break; - case DataBuffer.TYPE_INT: - int ia[] = (int[]) inData; - pixel = ia[0]; - break; + case DataBuffer.TYPE_INT: + int ia[] = (int[])inData; + pixel = ia[0]; + break; - default: - // awt.214=This Color Model doesn't support this transferType - throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ + default: + // awt.214=This Color Model doesn't support this transferType + throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ } return getRed(pixel); } @@ -466,24 +500,24 @@ public class DirectColorModel extends PackedColorModel { public int getRGB(Object inData) { int pixel = 0; switch (transferType) { - case DataBuffer.TYPE_BYTE: - byte ba[] = (byte[]) inData; - pixel = ba[0] & 0xff; - break; + case DataBuffer.TYPE_BYTE: + byte ba[] = (byte[])inData; + pixel = ba[0] & 0xff; + break; - case DataBuffer.TYPE_USHORT: - short sa[] = (short[]) inData; - pixel = sa[0] & 0xffff; - break; + case DataBuffer.TYPE_USHORT: + short sa[] = (short[])inData; + pixel = sa[0] & 0xffff; + break; - case DataBuffer.TYPE_INT: - int ia[] = (int[]) inData; - pixel = ia[0]; - break; + case DataBuffer.TYPE_INT: + int ia[] = (int[])inData; + pixel = ia[0]; + break; - default: - // awt.214=This Color Model doesn't support this transferType - throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ + default: + // awt.214=This Color Model doesn't support this transferType + throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ } return getRGB(pixel); } @@ -492,24 +526,24 @@ public class DirectColorModel extends PackedColorModel { public int getGreen(Object inData) { int pixel = 0; switch (transferType) { - case DataBuffer.TYPE_BYTE: - byte ba[] = (byte[]) inData; - pixel = ba[0] & 0xff; - break; + case DataBuffer.TYPE_BYTE: + byte ba[] = (byte[])inData; + pixel = ba[0] & 0xff; + break; - case DataBuffer.TYPE_USHORT: - short sa[] = (short[]) inData; - pixel = sa[0] & 0xffff; - break; + case DataBuffer.TYPE_USHORT: + short sa[] = (short[])inData; + pixel = sa[0] & 0xffff; + break; - case DataBuffer.TYPE_INT: - int ia[] = (int[]) inData; - pixel = ia[0]; - break; + case DataBuffer.TYPE_INT: + int ia[] = (int[])inData; + pixel = ia[0]; + break; - default: - // awt.214=This Color Model doesn't support this transferType - throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ + default: + // awt.214=This Color Model doesn't support this transferType + throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ } return getGreen(pixel); } @@ -518,24 +552,24 @@ public class DirectColorModel extends PackedColorModel { public int getBlue(Object inData) { int pixel = 0; switch (transferType) { - case DataBuffer.TYPE_BYTE: - byte ba[] = (byte[]) inData; - pixel = ba[0] & 0xff; - break; + case DataBuffer.TYPE_BYTE: + byte ba[] = (byte[])inData; + pixel = ba[0] & 0xff; + break; - case DataBuffer.TYPE_USHORT: - short sa[] = (short[]) inData; - pixel = sa[0] & 0xffff; - break; + case DataBuffer.TYPE_USHORT: + short sa[] = (short[])inData; + pixel = sa[0] & 0xffff; + break; - case DataBuffer.TYPE_INT: - int ia[] = (int[]) inData; - pixel = ia[0]; - break; + case DataBuffer.TYPE_INT: + int ia[] = (int[])inData; + pixel = ia[0]; + break; - default: - // awt.214=This Color Model doesn't support this transferType - throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ + default: + // awt.214=This Color Model doesn't support this transferType + throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ } return getBlue(pixel); } @@ -544,24 +578,24 @@ public class DirectColorModel extends PackedColorModel { public int getAlpha(Object inData) { int pixel = 0; switch (transferType) { - case DataBuffer.TYPE_BYTE: - byte ba[] = (byte[]) inData; - pixel = ba[0] & 0xff; - break; + case DataBuffer.TYPE_BYTE: + byte ba[] = (byte[])inData; + pixel = ba[0] & 0xff; + break; - case DataBuffer.TYPE_USHORT: - short sa[] = (short[]) inData; - pixel = sa[0] & 0xffff; - break; + case DataBuffer.TYPE_USHORT: + short sa[] = (short[])inData; + pixel = sa[0] & 0xffff; + break; - case DataBuffer.TYPE_INT: - int ia[] = (int[]) inData; - pixel = ia[0]; - break; + case DataBuffer.TYPE_INT: + int ia[] = (int[])inData; + pixel = ia[0]; + break; - default: - // awt.214=This Color Model doesn't support this transferType - throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ + default: + // awt.214=This Color Model doesn't support this transferType + throw new UnsupportedOperationException(Messages.getString("awt.214")); //$NON-NLS-1$ } return getAlpha(pixel); } @@ -576,14 +610,11 @@ public class DirectColorModel extends PackedColorModel { int bandMasks[] = componentMasks.clone(); if (pixel_bits > 16) { - return Raster.createPackedRaster(DataBuffer.TYPE_INT, w, h, - bandMasks, null); + return Raster.createPackedRaster(DataBuffer.TYPE_INT, w, h, bandMasks, null); } else if (pixel_bits > 8) { - return Raster.createPackedRaster(DataBuffer.TYPE_USHORT, w, h, - bandMasks, null); + return Raster.createPackedRaster(DataBuffer.TYPE_USHORT, w, h, bandMasks, null); } else { - return Raster.createPackedRaster(DataBuffer.TYPE_BYTE, w, h, - bandMasks, null); + return Raster.createPackedRaster(DataBuffer.TYPE_BYTE, w, h, bandMasks, null); } } @@ -594,7 +625,7 @@ public class DirectColorModel extends PackedColorModel { return false; } - SinglePixelPackedSampleModel sppsm = (SinglePixelPackedSampleModel) sm; + SinglePixelPackedSampleModel sppsm = (SinglePixelPackedSampleModel)sm; if (sppsm.getNumBands() != numComponents) { return false; @@ -640,8 +671,8 @@ public class DirectColorModel extends PackedColorModel { @Override public final int getRGB(int pixel) { - return (getAlpha(pixel) << 24) | (getRed(pixel) << 16) | - (getGreen(pixel) << 8) | getBlue(pixel); + return (getAlpha(pixel) << 24) | (getRed(pixel) << 16) | (getGreen(pixel) << 8) + | getBlue(pixel); } @Override @@ -681,7 +712,7 @@ public class DirectColorModel extends PackedColorModel { /** * Gets the red mask. * - * @return the red mask + * @return the red mask. */ public final int getRedMask() { return componentMasks[0]; @@ -690,7 +721,7 @@ public class DirectColorModel extends PackedColorModel { /** * Gets the green mask. * - * @return the green mask + * @return the green mask. */ public final int getGreenMask() { return componentMasks[1]; @@ -699,7 +730,7 @@ public class DirectColorModel extends PackedColorModel { /** * Gets the blue mask. * - * @return the blue mask + * @return the blue mask. */ public final int getBlueMask() { return componentMasks[2]; @@ -708,7 +739,7 @@ public class DirectColorModel extends PackedColorModel { /** * Gets the alpha mask. * - * @return the alpha mask + * @return the alpha mask. */ public final int getAlphaMask() { if (hasAlpha) { @@ -727,16 +758,12 @@ public class DirectColorModel extends PackedColorModel { if (is_LINEAR_RGB) { if (maxBitLength > 8) { LINEAR_RGB_Length = 16; - from_LINEAR_RGB_LUT = - LUTColorConverter.getFrom16lRGBtosRGB_LUT(); - to_LINEAR_16RGB_LUT = - LUTColorConverter.getFromsRGBto16lRGB_LUT(); + from_LINEAR_RGB_LUT = LUTColorConverter.getFrom16lRGBtosRGB_LUT(); + to_LINEAR_16RGB_LUT = LUTColorConverter.getFromsRGBto16lRGB_LUT(); } else { LINEAR_RGB_Length = 8; - from_LINEAR_RGB_LUT = - LUTColorConverter.getFrom8lRGBtosRGB_LUT(); - to_LINEAR_8RGB_LUT = - LUTColorConverter.getFromsRGBto8lRGB_LUT(); + from_LINEAR_RGB_LUT = LUTColorConverter.getFrom8lRGBtosRGB_LUT(); + to_LINEAR_8RGB_LUT = LUTColorConverter.getFromsRGBto8lRGB_LUT(); } fFactor = ((1 << LINEAR_RGB_Length) - 1); } else { @@ -746,7 +773,7 @@ public class DirectColorModel extends PackedColorModel { if (hasAlpha && bits[3] != 8) { alphaLUT = new byte[maxValues[3] + 1]; for (int i = 0; i <= maxValues[3]; i++) { - alphaLUT[i] = (byte) (scales[3] * i + 0.5f); + alphaLUT[i] = (byte)(scales[3] * i + 0.5f); } } @@ -765,7 +792,7 @@ public class DirectColorModel extends PackedColorModel { } colorLUTs[i] = new byte[maxValues[i] + 1]; for (int j = 0; j <= maxValues[i]; j++) { - colorLUTs[i][j] = (byte) (scales[i] * j + 0.5f); + colorLUTs[i][j] = (byte)(scales[i] * j + 0.5f); } } } @@ -784,9 +811,9 @@ public class DirectColorModel extends PackedColorModel { for (int j = 0; j <= maxValues[0]; j++) { int idx; if (LINEAR_RGB_Length == 8) { - idx = (int) (scales[i] * j + 0.5f); + idx = (int)(scales[i] * j + 0.5f); } else { - idx = (int) (scales[i] * j * 257.0f + 0.5f); + idx = (int)(scales[i] * j * 257.0f + 0.5f); } colorLUTs[i][j] = from_LINEAR_RGB_LUT[idx]; } @@ -798,20 +825,20 @@ public class DirectColorModel extends PackedColorModel { } /** - * This method return RGB component value if Color Model has - * sRGB ColorSpace. + * This method return RGB component value if Color Model has sRGB + * ColorSpace. * - * @param pixel - INT representation of pixel - * @param idx - index of pixel component - * - * @return - value of the pixel component scaled fro 0 to 255 + * @param pixel + * the integer representation of the pixel. + * @param idx + * the index of the pixel component. + * @return the value of the pixel component scaled from 0 to 255. */ private int getComponentFrom_sRGB(int pixel, int idx) { int comp = (pixel & componentMasks[idx]) >> offsets[idx]; if (isAlphaPremultiplied) { int alpha = (pixel & componentMasks[3]) >>> offsets[3]; - comp = alpha == 0 ? 0 : (int) (scales[idx] * comp * 255.0f / - (scales[3] * alpha) + 0.5f); + comp = alpha == 0 ? 0 : (int)(scales[idx] * comp * 255.0f / (scales[3] * alpha) + 0.5f); } else if (bits[idx] != 8) { comp = colorLUTs[idx][comp] & 0xff; } @@ -819,21 +846,21 @@ public class DirectColorModel extends PackedColorModel { } /** - * This method return RGB component value if Color Model has - * Linear RGB ColorSpace. - * - * @param pixel - INT representation of pixel - * @param idx - index of pixel component + * This method return RGB component value if Color Model has Linear RGB + * ColorSpace. * - * @return - value of the pixel component scaled fro 0 to 255 + * @param pixel + * the integer representation of the pixel. + * @param idx + * the index of the pixel component. + * @return the value of the pixel component scaled from 0 to 255. */ private int getComponentFrom_LINEAR_RGB(int pixel, int idx) { int comp = (pixel & componentMasks[idx]) >> offsets[idx]; if (isAlphaPremultiplied) { float factor = ((1 << LINEAR_RGB_Length) - 1); int alpha = (pixel & componentMasks[3]) >> offsets[3]; - comp = alpha == 0 ? 0 : (int) (scales[idx] * comp * factor / - (scales[3] * alpha) + 0.5f); + comp = alpha == 0 ? 0 : (int)(scales[idx] * comp * factor / (scales[3] * alpha) + 0.5f); } else if (bits[idx] != LINEAR_RGB_Length) { comp = colorLUTs[idx][comp] & 0xff; } else { @@ -843,20 +870,20 @@ public class DirectColorModel extends PackedColorModel { } /** - * This method return RGB component value if Color Model has - * arbitrary RGB ColorSapce. + * This method return RGB component value if Color Model has arbitrary RGB + * ColorSapce. * - * @param pixel - INT representation of pixel - * @param idx - index of pixel component - * - * @return - value of the pixel component scaled fro 0 to 255 + * @param pixel + * the integer representation of the pixel. + * @param idx + * the index of the pixel component. + * @return the value of the pixel component scaled from 0 to 255. */ private int getComponentFrom_RGB(int pixel, int idx) { int components[] = getComponents(pixel, null, 0); float[] normComponents = getNormalizedComponents(components, 0, null, 0); float[] sRGBcomponents = cs.toRGB(normComponents); - return (int) (sRGBcomponents[idx] * 255.0f + 0.5f); + return (int)(sRGBcomponents[idx] * 255.0f + 0.5f); } } - diff --git a/awt/java/awt/image/FilteredImageSource.java b/awt/java/awt/image/FilteredImageSource.java index 6a41fa7..ed8558d 100644 --- a/awt/java/awt/image/FilteredImageSource.java +++ b/awt/java/awt/image/FilteredImageSource.java @@ -18,32 +18,42 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.util.Hashtable; - /** - * The FilteredImageSource class is used for producing image data for a new - * filtered version of the original image using the specified filter object. + * The FilteredImageSource class is used for producing image data for a new + * filtered version of the original image using the specified filter object. + * + * @since Android 1.0 */ public class FilteredImageSource implements ImageProducer { - /** The source. */ + /** + * The source. + */ private final ImageProducer source; - - /** The filter. */ + + /** + * The filter. + */ private final ImageFilter filter; - /** The cons table. */ + /** + * The cons table. + */ private final Hashtable<ImageConsumer, ImageConsumer> consTable = new Hashtable<ImageConsumer, ImageConsumer>(); /** - * Instantiates a new FilteredImageSource object with - * the specified ImageProducer and the ImageFilter objects. + * Instantiates a new FilteredImageSource object with the specified + * ImageProducer and the ImageFilter objects. * - * @param orig the specified ImageProducer. - * @param imgf the specified ImageFilter. + * @param orig + * the specified ImageProducer. + * @param imgf + * the specified ImageFilter. */ public FilteredImageSource(ImageProducer orig, ImageFilter imgf) { source = orig; @@ -51,7 +61,7 @@ public class FilteredImageSource implements ImageProducer { } public synchronized boolean isConsumer(ImageConsumer ic) { - if(ic != null) { + if (ic != null) { return consTable.containsKey(ic); } return false; @@ -64,14 +74,14 @@ public class FilteredImageSource implements ImageProducer { } public void requestTopDownLeftRightResend(ImageConsumer ic) { - if(ic != null && isConsumer(ic)){ - ImageFilter fic = (ImageFilter) consTable.get(ic); + if (ic != null && isConsumer(ic)) { + ImageFilter fic = (ImageFilter)consTable.get(ic); fic.resendTopDownLeftRight(source); } } public synchronized void removeConsumer(ImageConsumer ic) { - if(ic != null && isConsumer(ic)){ + if (ic != null && isConsumer(ic)) { ImageConsumer fic = consTable.get(ic); source.removeConsumer(fic); consTable.remove(ic); @@ -79,7 +89,7 @@ public class FilteredImageSource implements ImageProducer { } public synchronized void addConsumer(ImageConsumer ic) { - if(ic != null && !isConsumer(ic)){ + if (ic != null && !isConsumer(ic)) { ImageConsumer fic = filter.getFilterInstance(ic); source.addConsumer(fic); consTable.put(ic, fic); diff --git a/awt/java/awt/image/ImageConsumer.java b/awt/java/awt/image/ImageConsumer.java index 2eba290..caf87d1 100644 --- a/awt/java/awt/image/ImageConsumer.java +++ b/awt/java/awt/image/ImageConsumer.java @@ -18,148 +18,168 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.util.Hashtable; /** - * The ImageConsumer interface provides the data about the image - * and about how its data is delivered. A ImageProducer provides - * all of the information about the image using - * the methods defined in this interface. + * The ImageConsumer interface provides the data about the image and about how + * its data is delivered. A ImageProducer provides all of the information about + * the image using the methods defined in this interface. + * + * @since Android 1.0 */ public interface ImageConsumer { - /** - * The Constant RANDOMPIXELORDER indicates that the pixels are - * delivered in a random order. + /** + * The Constant RANDOMPIXELORDER indicates that the pixels are delivered in + * a random order. */ public static final int RANDOMPIXELORDER = 1; - /** - * The Constant TOPDOWNLEFTRIGHT indicates that the pixels are - * delivered in top-down, left-to-right order. + /** + * The Constant TOPDOWNLEFTRIGHT indicates that the pixels are delivered in + * top-down, left-to-right order. */ public static final int TOPDOWNLEFTRIGHT = 2; - /** - * The Constant COMPLETESCANLINES indicates that the pixels are - * delivered in complete scanline. + /** + * The Constant COMPLETESCANLINES indicates that the pixels are delivered in + * complete scanline. */ public static final int COMPLETESCANLINES = 4; - /** - * The Constant SINGLEPASS indicates that pixels are delivered - * in a single pass. + /** + * The Constant SINGLEPASS indicates that pixels are delivered in a single + * pass. */ public static final int SINGLEPASS = 8; - /** - * The Constant SINGLEFRAME indicates that image consists of - * single frame. + /** + * The Constant SINGLEFRAME indicates that image consists of single frame. */ public static final int SINGLEFRAME = 16; - /** + /** * The Constant IMAGEERROR indicates an image error during image producing. */ public static final int IMAGEERROR = 1; - /** - * The Constant SINGLEFRAMEDONE indicates that only one of the - * image's frames is completed. + /** + * The Constant SINGLEFRAMEDONE indicates that only one of the image's + * frames is completed. */ public static final int SINGLEFRAMEDONE = 2; - /** - * The Constant STATICIMAGEDONE indicates that the image is completed. + /** + * The Constant STATICIMAGEDONE indicates that the image is completed. */ public static final int STATICIMAGEDONE = 3; - /** - * The Constant IMAGEABORTED indicates that the image producing - * process is aborted. + /** + * The Constant IMAGEABORTED indicates that the image producing process is + * aborted. */ public static final int IMAGEABORTED = 4; /** * Sets the properties for the image associated with this ImageConsumer. * - * @param props the properties for the image associated with - * this ImageConsumer. + * @param props + * the properties for the image associated with this + * ImageConsumer. */ public void setProperties(Hashtable<?, ?> props); /** * Sets the ColorModel object. * - * @param model the new ColorModel. + * @param model + * the new ColorModel. */ public void setColorModel(ColorModel model); /** * Sets the pixels for the specified rectangular area of the image. * - * @param x the X coordinate of rectangular area. - * @param y the Y coordinate of rectangular area. - * @param w the width of rectangular area. - * @param h the height of rectangular area. - * @param model the specified ColorModel to be used for pixels - * converting. - * @param pixels the array of pixels. - * @param off the offset of pixels array. - * @param scansize the distance from the one row of pixels - * to the next row in the specified array. - */ - public void setPixels(int x, int y, int w, int h, ColorModel model, - int[] pixels, int off, int scansize); + * @param x + * the X coordinate of rectangular area. + * @param y + * the Y coordinate of rectangular area. + * @param w + * the width of rectangular area. + * @param h + * the height of rectangular area. + * @param model + * the specified ColorModel to be used for pixels converting. + * @param pixels + * the array of pixels. + * @param off + * the offset of pixels array. + * @param scansize + * the distance from the one row of pixels to the next row in the + * specified array. + */ + public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, + int scansize); /** * Sets the pixels for the specified rectangular area of the image. * - * @param x the X coordinate of rectangular area. - * @param y the Y coordinate of rectangular area. - * @param w the width of rectangular area. - * @param h the height of rectangular area. - * @param model the specified ColorModel to be used for pixels - * converting. - * @param pixels the array of pixels. - * @param off the offset of pixels array. - * @param scansize the distance from the one row of pixels - * to the next row in the specified array. - */ - public void setPixels(int x, int y, int w, int h, ColorModel model, - byte[] pixels, int off, int scansize); + * @param x + * the X coordinate of rectangular area. + * @param y + * the Y coordinate of rectangular area. + * @param w + * the width of rectangular area. + * @param h + * the height of rectangular area. + * @param model + * the specified ColorModel to be used for pixels converting. + * @param pixels + * the array of pixels. + * @param off + * the offset of pixels array. + * @param scansize + * the distance from the one row of pixels to the next row in the + * specified array. + */ + public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, + int scansize); /** * Sets the dimensions of a source image. * - * @param width the width of the image. - * @param height the height of the image. + * @param width + * the width of the image. + * @param height + * the height of the image. */ public void setDimensions(int width, int height); /** - * Sets the hint flags of pixels order, which is used by - * the ImageConsumer for obtaining pixels from the ImageProducer - * for which this ImageConsumer is added. + * Sets the hint flags of pixels order, which is used by the ImageConsumer + * for obtaining pixels from the ImageProducer for which this ImageConsumer + * is added. * - * @param hintflags the mask of hint flags. + * @param hintflags + * the mask of hint flags. */ public void setHints(int hintflags); /** * THis method is called in the one of the following cases: * <ul> - * <li>The ImageProducer (for which this ImageConsumer is added) - * has been delivered all pixels of the source image. </li> - * <li>A one frame of an animation has been completed. </li> - * <li> An error while loading or producing of the image has occured. - * </ul> + * <li>The ImageProducer (for which this ImageConsumer is added) has been + * delivered all pixels of the source image.</li> + * <li>A one frame of an animation has been completed.</li> + * <li>An error while loading or producing of the image has occurred. + * </ul> * - * @param status the status of image producing. + * @param status + * the status of image producing. */ public void imageComplete(int status); } - diff --git a/awt/java/awt/image/ImageFilter.java b/awt/java/awt/image/ImageFilter.java index e386d65..d2c9f50 100644 --- a/awt/java/awt/image/ImageFilter.java +++ b/awt/java/awt/image/ImageFilter.java @@ -18,17 +18,22 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.util.Hashtable; /** - * The ImageFilter class provides a filter for delivering image data - * from an ImageProducer to an ImageConsumer. + * The ImageFilter class provides a filter for delivering image data from an + * ImageProducer to an ImageConsumer. + * + * @since Android 1.0 */ public class ImageFilter implements ImageConsumer, Cloneable { - /** The consumer. */ + /** + * The consumer. + */ protected ImageConsumer consumer; /** @@ -39,16 +44,16 @@ public class ImageFilter implements ImageConsumer, Cloneable { } /** - * Gets an instance of an ImageFilter object which performs - * the filtering for the specified ImageConsumer. - * - * @param ic the specified ImageConsumer. + * Gets an instance of an ImageFilter object which performs the filtering + * for the specified ImageConsumer. * - * @return an ImageFilter used to perform the filtering for - * the specified ImageConsumer. + * @param ic + * the specified ImageConsumer. + * @return an ImageFilter used to perform the filtering for the specified + * ImageConsumer. */ public ImageFilter getFilterInstance(ImageConsumer ic) { - ImageFilter filter = (ImageFilter) clone(); + ImageFilter filter = (ImageFilter)clone(); filter.consumer = ic; return filter; } @@ -59,14 +64,14 @@ public class ImageFilter implements ImageConsumer, Cloneable { if (props == null) { fprops = new Hashtable<Object, Object>(); } else { - fprops = (Hashtable<Object, Object>) props.clone(); + fprops = (Hashtable<Object, Object>)props.clone(); } String propName = "Filters"; //$NON-NLS-1$ String prop = "Null filter"; //$NON-NLS-1$ Object o = fprops.get(propName); if (o != null) { if (o instanceof String) { - prop = (String) o + "; " + prop; //$NON-NLS-1$ + prop = (String)o + "; " + prop; //$NON-NLS-1$ } else { prop = o.toString() + "; " + prop; //$NON-NLS-1$ } @@ -90,11 +95,11 @@ public class ImageFilter implements ImageConsumer, Cloneable { } /** - * Responds to a request for a Top-Down-Left-Right ordered - * resend of the pixel data from an ImageConsumer. + * Responds to a request for a Top-Down-Left-Right ordered resend of the + * pixel data from an ImageConsumer. * - * @param ip the ImageProducer that provides this instance of - * the filter. + * @param ip + * the ImageProducer that provides this instance of the filter. */ public void resendTopDownLeftRight(ImageProducer ip) { ip.requestTopDownLeftRightResend(this); diff --git a/awt/java/awt/image/ImageObserver.java b/awt/java/awt/image/ImageObserver.java index 418bd07..21ec41b 100644 --- a/awt/java/awt/image/ImageObserver.java +++ b/awt/java/awt/image/ImageObserver.java @@ -18,82 +18,84 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.awt.Image; /** - * the ImageObserver interface is an asynchronous update interface - * for receiving notifications about Image construction status. + * the ImageObserver interface is an asynchronous update interface for receiving + * notifications about Image construction status. + * + * @since Android 1.0 */ public interface ImageObserver { - /** - * The Constant WIDTH indicates that the width of the image is - * available. + /** + * The Constant WIDTH indicates that the width of the image is available. */ public static final int WIDTH = 1; - /** - * The Constant HEIGHT indicates that the width of the image is - * available. + /** + * The Constant HEIGHT indicates that the width of the image is available. */ public static final int HEIGHT = 2; - /** - * The Constant PROPERTIES indicates that the properties of the image - * are available. + /** + * The Constant PROPERTIES indicates that the properties of the image are + * available. */ public static final int PROPERTIES = 4; /** - * The Constant SOMEBITS indicates that more bits needed for - * drawing a scaled variation of the image pixels are available. + * The Constant SOMEBITS indicates that more bits needed for drawing a + * scaled variation of the image pixels are available. */ public static final int SOMEBITS = 8; - /** - * The Constant FRAMEBITS indicates that complete frame of - * a image which was previously drawn is now available - * for drawing again. + /** + * The Constant FRAMEBITS indicates that complete frame of a image which was + * previously drawn is now available for drawing again. */ public static final int FRAMEBITS = 16; - /** - * The Constant ALLBITS indicates that an image which - * was previously drawn is now complete and can be drawn again. + /** + * The Constant ALLBITS indicates that an image which was previously drawn + * is now complete and can be drawn again. */ public static final int ALLBITS = 32; - /** - * The Constant ERROR indicates that error occured. + /** + * The Constant ERROR indicates that error occurred. */ public static final int ERROR = 64; - /** - * The Constant ABORT indicates that the image producing is - * aborted. + /** + * The Constant ABORT indicates that the image producing is aborted. */ public static final int ABORT = 128; /** - * This method is called when information about an Image - * interface becomes available. This method returns true - * if further updates are needed, false if not. - * - * @param img the image to be observed. - * @param infoflags the bitwise OR combination of information flags: - * ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, - * WIDTH. - * @param x the X coordinate. - * @param y the Y coordinate. - * @param width the width. - * @param height the height. + * This method is called when information about an Image interface becomes + * available. This method returns true if further updates are needed, false + * if not. * + * @param img + * the image to be observed. + * @param infoflags + * the bitwise OR combination of information flags: ABORT, + * ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, + * WIDTH. + * @param x + * the X coordinate. + * @param y + * the Y coordinate. + * @param width + * the width. + * @param height + * the height. * @return true if further updates are needed, false if not. */ - public boolean imageUpdate(Image img, int infoflags, int x, int y, - int width, int height); + public boolean imageUpdate(Image img, int infoflags, int x, int y, int width, int height); } - diff --git a/awt/java/awt/image/ImageProducer.java b/awt/java/awt/image/ImageProducer.java index 557ae08..9138be2 100644 --- a/awt/java/awt/image/ImageProducer.java +++ b/awt/java/awt/image/ImageProducer.java @@ -18,57 +18,62 @@ * @author Igor V. Stolyarov * @version $Revision$ */ -package java.awt.image; +package java.awt.image; /** - * The ImageProducer provides an interface for objects which produce - * the image data. ImageProducer is used for reconstructing the - * image. Each image contains an ImageProducer. + * The ImageProducer provides an interface for objects which produce the image + * data. ImageProducer is used for reconstructing the image. Each image contains + * an ImageProducer. + * + * @since Android 1.0 */ public interface ImageProducer { /** - * Checks if the specified ImageConsumer is registered with this + * Checks if the specified ImageConsumer is registered with this * ImageProvider or not. * - * @param ic the ImageConsumer to be checked. - * - * @return true, if the specified ImageConsumer is registered with this - * ImageProvider, false otherwise. + * @param ic + * the ImageConsumer to be checked. + * @return true, if the specified ImageConsumer is registered with this + * ImageProvider, false otherwise. */ public boolean isConsumer(ImageConsumer ic); /** - * Starts a reconstruction of the image data which will - * be delivered to this consumer. This method addes the - * specified ImageConsumer before reconstructing the image. + * Starts a reconstruction of the image data which will be delivered to this + * consumer. This method adds the specified ImageConsumer before + * reconstructing the image. * - * @param ic the specified ImageConsumer. + * @param ic + * the specified ImageConsumer. */ public void startProduction(ImageConsumer ic); /** - * Requests the ImageProducer to resend the image data - * in ImageConsumer.TOPDOWNLEFTRIGHT order. + * Requests the ImageProducer to resend the image data in + * ImageConsumer.TOPDOWNLEFTRIGHT order. * - * @param ic the specified ImageConsumer. + * @param ic + * the specified ImageConsumer. */ public void requestTopDownLeftRightResend(ImageConsumer ic); /** * Deregisters the specified ImageConsumer. * - * @param ic the specified ImageConsumer. + * @param ic + * the specified ImageConsumer. */ public void removeConsumer(ImageConsumer ic); /** * Adds the specified ImageConsumer object to this ImageProducer. * - * @param ic the specified ImageConsumer. + * @param ic + * the specified ImageConsumer. */ public void addConsumer(ImageConsumer ic); } - diff --git a/awt/java/awt/image/ImagingOpException.java b/awt/java/awt/image/ImagingOpException.java index ebcaba4..e0c0127 100644 --- a/awt/java/awt/image/ImagingOpException.java +++ b/awt/java/awt/image/ImagingOpException.java @@ -24,19 +24,24 @@ package java.awt.image; /** - * The ImagingOpException class provides error notification when - * the BufferedImageOp or RasterOp filter methods can not perform - * the desired filter operation. + * The ImagingOpException class provides error notification when the + * BufferedImageOp or RasterOp filter methods can not perform the desired filter + * operation. + * + * @since Android 1.0 */ public class ImagingOpException extends RuntimeException { - - /** The Constant serialVersionUID. */ + + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = 8026288481846276658L; /** * Instantiates a new ImagingOpException with a detail message. * - * @param s the detail message. + * @param s + * the detail message. */ public ImagingOpException(String s) { super(s); diff --git a/awt/java/awt/image/IndexColorModel.java b/awt/java/awt/image/IndexColorModel.java index a7043f4..0b06acd 100644 --- a/awt/java/awt/image/IndexColorModel.java +++ b/awt/java/awt/image/IndexColorModel.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.awt.Transparency; @@ -27,64 +28,92 @@ import java.math.BigInteger; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Class IndexColorModel represents a color model in which the - * color values of the pixels are read from a palette. + * The Class IndexColorModel represents a color model in which the color values + * of the pixels are read from a palette. + * + * @since Android 1.0 */ public class IndexColorModel extends ColorModel { - /** The color map. */ - private int colorMap[]; // Color Map + /** + * The color map. + */ + private int colorMap[]; // Color Map + + /** + * The map size. + */ + private int mapSize; // Color Map size + + /** + * The transparent index. + */ + private int transparentIndex; // Index of fully transparent pixel + + /** + * The gray palette. + */ + private boolean grayPalette; // Color Model has Color Map with Gray Pallete - /** The map size. */ - private int mapSize; // Color Map size + /** + * The valid bits. + */ + private BigInteger validBits; // Specify valid Color Map values - /** The transparent index. */ - private int transparentIndex; // Index of fully transparent pixel + /** + * The Constant CACHESIZE. + */ + private static final int CACHESIZE = 20; // Cache size. Cache used for - /** The gray palette. */ - private boolean grayPalette; // Color Model has Color Map with Gray Pallete + // improving performace of selection + // nearest color in Color Map - /** The valid bits. */ - private BigInteger validBits; // Specify valid Color Map values + /** + * The cachetable. + */ + private final int cachetable[] = new int[CACHESIZE * 2]; // Cache table - - /** The Constant CACHESIZE. */ - private static final int CACHESIZE = 20; // Cache size. Cache used for - // improving performace of selection - // nearest color in Color Map + // used for - /** The cachetable. */ - private final int cachetable[] = new int[CACHESIZE * 2]; // Cache table - used for - // storing RGB values and that appropriate indices - // in the Color Map - + // storing RGB values and that appropriate indices + // in the Color Map - /** The next insert idx. */ - private int nextInsertIdx = 0; // Next index for insertion into Cache table + /** + * The next insert idx. + */ + private int nextInsertIdx = 0; // Next index for insertion into Cache table - /** The total inserted. */ - private int totalInserted = 0; // Number of inserted values into Cache table + /** + * The total inserted. + */ + private int totalInserted = 0; // Number of inserted values into Cache table /** * Instantiates a new index color model. * - * @param bits the array of component masks - * @param size the size of the color map - * @param cmap the array that gives the color mapping - * @param start the start index of the color mapping data within the cmap array - * @param transferType the transfer type (primitive java type - * to use for the components) - * @param validBits a list of which bits represent valid colormap - * values, or null if all are valid - * - * @throws IllegalArgumentException if the size of the color map is - * less than one + * @param bits + * the array of component masks. + * @param size + * the size of the color map. + * @param cmap + * the array that gives the color mapping. + * @param start + * the start index of the color mapping data within the cmap + * array. + * @param transferType + * the transfer type (primitive java type to use for the + * components). + * @param validBits + * a list of which bits represent valid colormap values, or null + * if all are valid. + * @throws IllegalArgumentException + * if the size of the color map is less than one. */ - public IndexColorModel(int bits, int size, int cmap[], int start, - int transferType, BigInteger validBits) { + public IndexColorModel(int bits, int size, int cmap[], int start, int transferType, + BigInteger validBits) { - super(bits, IndexColorModel.createBits(true), - ColorSpace.getInstance(ColorSpace.CS_sRGB), true, false, - Transparency.OPAQUE, validateTransferType(transferType)); + super(bits, IndexColorModel.createBits(true), ColorSpace.getInstance(ColorSpace.CS_sRGB), + true, false, Transparency.OPAQUE, validateTransferType(transferType)); if (size < 1) { // awt.264=Size of the color map is less than 1 @@ -122,8 +151,7 @@ public class IndexColorModel extends ColorModel { if (transparency == Transparency.OPAQUE) { transparency = Transparency.BITMASK; } - } else if (alpha != alphaMask && - transparency != Transparency.TRANSLUCENT) { + } else if (alpha != alphaMask && transparency != Transparency.TRANSLUCENT) { transparency = Transparency.TRANSLUCENT; } @@ -135,25 +163,31 @@ public class IndexColorModel extends ColorModel { /** * Instantiates a new index color model. * - * @param bits the array of component masks - * @param size the size of the color map - * @param cmap the array that gives the color mapping - * @param start the start index of the color mapping data within the cmap array - * @param hasalpha whether this color model uses alpha - * @param trans the transparency supported, @see java.awt.Transparency - * @param transferType the transfer type (primitive java type - * to use for the components) - * - * @throws IllegalArgumentException if the size of the color map is - * less than one + * @param bits + * the array of component masks. + * @param size + * the size of the color map. + * @param cmap + * the array that gives the color mapping. + * @param start + * the start index of the color mapping data within the cmap + * array. + * @param hasalpha + * whether this color model uses alpha. + * @param trans + * the transparency supported, @see java.awt.Transparency. + * @param transferType + * the transfer type (primitive java type to use for the + * components). + * @throws IllegalArgumentException + * if the size of the color map is less than one. */ - public IndexColorModel(int bits, int size, int cmap[], int start, - boolean hasalpha, int trans, int transferType) { + public IndexColorModel(int bits, int size, int cmap[], int start, boolean hasalpha, int trans, + int transferType) { - super(bits, IndexColorModel.createBits(hasalpha || (trans >= 0)), - ColorSpace.getInstance(ColorSpace.CS_sRGB), - (hasalpha || (trans >= 0)), false, Transparency.OPAQUE, - validateTransferType(transferType)); + super(bits, IndexColorModel.createBits(hasalpha || (trans >= 0)), ColorSpace + .getInstance(ColorSpace.CS_sRGB), (hasalpha || (trans >= 0)), false, + Transparency.OPAQUE, validateTransferType(transferType)); if (size < 1) { // awt.264=Size of the color map is less than 1 @@ -192,8 +226,7 @@ public class IndexColorModel extends ColorModel { if (transparency == Transparency.OPAQUE) { transparency = Transparency.BITMASK; } - } else if (alpha != 0 - && transparency != Transparency.TRANSLUCENT) { + } else if (alpha != 0 && transparency != Transparency.TRANSLUCENT) { transparency = Transparency.TRANSLUCENT; } } else { @@ -205,55 +238,70 @@ public class IndexColorModel extends ColorModel { } /** - * Instantiates a new index color model by building the color map - * from arrays of red, green, blue, and alpha values. + * Instantiates a new index color model by building the color map from + * arrays of red, green, blue, and alpha values. * - * @param bits the array of component masks - * @param size the size of the color map - * @param r the array giving the red components of the entries in the color map - * @param g the array giving the green components of the entries in the color map - * @param b the array giving the blue components of the entries in the color map - * @param a the array giving the alpha components of the entries in the color map - * - * @throws IllegalArgumentException if the size of the color map is - * less than one - * @throws ArrayIndexOutOfBoundsException if the size of one of the - * component arrays is less than the size of the color map + * @param bits + * the array of component masks. + * @param size + * the size of the color map. + * @param r + * the array giving the red components of the entries in the + * color map. + * @param g + * the array giving the green components of the entries in the + * color map. + * @param b + * the array giving the blue components of the entries in the + * color map. + * @param a + * the array giving the alpha components of the entries in the + * color map. + * @throws IllegalArgumentException + * if the size of the color map is less than one. + * @throws ArrayIndexOutOfBoundsException + * if the size of one of the component arrays is less than the + * size of the color map. */ - public IndexColorModel(int bits, int size, byte r[], byte g[], byte b[], - byte a[]) { + public IndexColorModel(int bits, int size, byte r[], byte g[], byte b[], byte a[]) { - super(bits, IndexColorModel.createBits(true), - ColorSpace.getInstance(ColorSpace.CS_sRGB), true, false, - Transparency.OPAQUE, - validateTransferType(ColorModel.getTransferType(bits))); + super(bits, IndexColorModel.createBits(true), ColorSpace.getInstance(ColorSpace.CS_sRGB), + true, false, Transparency.OPAQUE, validateTransferType(ColorModel + .getTransferType(bits))); createColorMap(size, r, g, b, a, -1); checkPalette(); } /** - * Instantiates a new index color model by building the color map - * from arrays of red, green, and blue values. + * Instantiates a new index color model by building the color map from + * arrays of red, green, and blue values. * - * @param bits the array of component masks - * @param size the size of the color map - * @param r the array giving the red components of the entries in the color map - * @param g the array giving the green components of the entries in the color map - * @param b the array giving the blue components of the entries in the color map - * @param trans the transparency supported, @see java.awt.Transparency - * - * @throws IllegalArgumentException if the size of the color map is - * less than one - * @throws ArrayIndexOutOfBoundsException if the size of one of the - * component arrays is less than the size of the color map + * @param bits + * the array of component masks. + * @param size + * the size of the color map. + * @param r + * the array giving the red components of the entries in the + * color map. + * @param g + * the array giving the green components of the entries in the + * color map. + * @param b + * the array giving the blue components of the entries in the + * color map. + * @param trans + * the transparency supported, @see java.awt.Transparency. + * @throws IllegalArgumentException + * if the size of the color map is less than one. + * @throws ArrayIndexOutOfBoundsException + * if the size of one of the component arrays is less than the + * size of the color map. */ - public IndexColorModel(int bits, int size, byte r[], byte g[], byte b[], - int trans) { + public IndexColorModel(int bits, int size, byte r[], byte g[], byte b[], int trans) { - super(bits, IndexColorModel.createBits((trans >= 0)), - ColorSpace.getInstance(ColorSpace.CS_sRGB), (trans >= 0), false, - Transparency.OPAQUE, + super(bits, IndexColorModel.createBits((trans >= 0)), ColorSpace + .getInstance(ColorSpace.CS_sRGB), (trans >= 0), false, Transparency.OPAQUE, validateTransferType(ColorModel.getTransferType(bits))); createColorMap(size, r, g, b, null, trans); @@ -261,25 +309,32 @@ public class IndexColorModel extends ColorModel { } /** - * Instantiates a new index color model by building the color map - * from arrays of red, green, and blue values. - * - * @param bits the array of component masks - * @param size the size of the color map - * @param r the array giving the red components of the entries in the color map - * @param g the array giving the green components of the entries in the color map - * @param b the array giving the blue components of the entries in the color map + * Instantiates a new index color model by building the color map from + * arrays of red, green, and blue values. * - * @throws IllegalArgumentException if the size of the color map is - * less than one - * @throws ArrayIndexOutOfBoundsException if the size of one of the - * component arrays is less than the size of the color map + * @param bits + * the array of component masks. + * @param size + * the size of the color map. + * @param r + * the array giving the red components of the entries in the + * color map. + * @param g + * the array giving the green components of the entries in the + * color map. + * @param b + * the array giving the blue components of the entries in the + * color map. + * @throws IllegalArgumentException + * if the size of the color map is less than one. + * @throws ArrayIndexOutOfBoundsException + * if the size of one of the component arrays is less than the + * size of the color map. */ public IndexColorModel(int bits, int size, byte r[], byte g[], byte b[]) { - super(bits, IndexColorModel.createBits(false), - ColorSpace.getInstance(ColorSpace.CS_sRGB), false, false, - Transparency.OPAQUE, - validateTransferType(ColorModel.getTransferType(bits))); + super(bits, IndexColorModel.createBits(false), ColorSpace.getInstance(ColorSpace.CS_sRGB), + false, false, Transparency.OPAQUE, validateTransferType(ColorModel + .getTransferType(bits))); createColorMap(size, r, g, b, null, -1); checkPalette(); @@ -288,23 +343,27 @@ public class IndexColorModel extends ColorModel { /** * Instantiates a new index color model. * - * @param bits the array of component masks - * @param size the size of the color map - * @param cmap the array that gives the color mapping - * @param start the start index of the color mapping data within the cmap array - * @param hasalpha whether this color model uses alpha - * @param trans the transparency supported, @see java.awt.Transparency - * - * @throws IllegalArgumentException if the size of the color map is - * less than one + * @param bits + * the array of component masks. + * @param size + * the size of the color map. + * @param cmap + * the array that gives the color mapping. + * @param start + * the start index of the color mapping data within the cmap + * array. + * @param hasalpha + * whether this color model uses alpha. + * @param trans + * the transparency supported, @see java.awt.Transparency. + * @throws IllegalArgumentException + * if the size of the color map is less than one. */ - public IndexColorModel(int bits, int size, byte cmap[], int start, - boolean hasalpha, int trans) { + public IndexColorModel(int bits, int size, byte cmap[], int start, boolean hasalpha, int trans) { - super(bits, IndexColorModel.createBits(hasalpha || (trans >= 0)), - ColorSpace.getInstance(ColorSpace.CS_sRGB), - (hasalpha || (trans >= 0)), false, Transparency.OPAQUE, - validateTransferType(ColorModel.getTransferType(bits))); + super(bits, IndexColorModel.createBits(hasalpha || (trans >= 0)), ColorSpace + .getInstance(ColorSpace.CS_sRGB), (hasalpha || (trans >= 0)), false, + Transparency.OPAQUE, validateTransferType(ColorModel.getTransferType(bits))); if (size < 1) { // awt.264=Size of the color map is less than 1 @@ -319,13 +378,13 @@ public class IndexColorModel extends ColorModel { int alpha = 0xff000000; for (int i = 0; i < mapSize; i++) { - colorMap[i] = (cmap[start++] & 0xff) << 16 | - (cmap[start++] & 0xff) << 8 | (cmap[start++] & 0xff); + colorMap[i] = (cmap[start++] & 0xff) << 16 | (cmap[start++] & 0xff) << 8 + | (cmap[start++] & 0xff); if (trans == i) { if (transparency == Transparency.OPAQUE) { transparency = Transparency.BITMASK; } - if(hasalpha) { + if (hasalpha) { start++; } continue; @@ -340,8 +399,7 @@ public class IndexColorModel extends ColorModel { } } } else { - if (alpha != 0xff && - transparency != Transparency.TRANSLUCENT) { + if (alpha != 0xff && transparency != Transparency.TRANSLUCENT) { transparency = Transparency.TRANSLUCENT; } } @@ -360,25 +418,29 @@ public class IndexColorModel extends ColorModel { /** * Instantiates a new index color model. * - * @param bits the array of component masks - * @param size the size of the color map - * @param cmap the array that gives the color mapping - * @param start the start index of the color mapping data within the cmap array - * @param hasalpha whether this color model uses alpha - * - * @throws IllegalArgumentException if the size of the color map is - * less than one + * @param bits + * the array of component masks. + * @param size + * the size of the color map. + * @param cmap + * the array that gives the color mapping. + * @param start + * the start index of the color mapping data within the cmap + * array. + * @param hasalpha + * whether this color model uses alpha. + * @throws IllegalArgumentException + * if the size of the color map is less than one. */ - public IndexColorModel(int bits, int size, byte cmap[], int start, - boolean hasalpha) { + public IndexColorModel(int bits, int size, byte cmap[], int start, boolean hasalpha) { this(bits, size, cmap, start, hasalpha, -1); } @Override public Object getDataElements(int[] components, int offset, Object pixel) { - int rgb = (components[offset] << 16) | (components[offset + 1]) << 8 | - components[offset + 2]; + int rgb = (components[offset] << 16) | (components[offset + 1]) << 8 + | components[offset + 2]; if (hasAlpha) { rgb |= components[offset + 3] << 24; } else { @@ -419,7 +481,7 @@ public class IndexColorModel extends ColorModel { } } else if (alpha == 0 && transparentIndex > -1) { pixIdx = transparentIndex; - } else { + } else { int minAlphaError = 255; int minError = 195075; // 255^2 + 255^2 + 255^2 int alphaError; @@ -470,19 +532,19 @@ public class IndexColorModel extends ColorModel { /** * Converts an image from indexed to RGB format. * - * @param raster the raster containing the source image - * @param forceARGB whether to use the default RGB color model - * - * @return the buffered image - * - * @throws IllegalArgumentException if the raster is not compatible with - * this color model + * @param raster + * the raster containing the source image. + * @param forceARGB + * whether to use the default RGB color model. + * @return the buffered image. + * @throws IllegalArgumentException + * if the raster is not compatible with this color model. */ - public BufferedImage convertToIntDiscrete(Raster raster, - boolean forceARGB) { + public BufferedImage convertToIntDiscrete(Raster raster, boolean forceARGB) { if (!isCompatibleRaster(raster)) { - // awt.265=The raster argument is not compatible with this IndexColorModel + // awt.265=The raster argument is not compatible with this + // IndexColorModel throw new IllegalArgumentException(Messages.getString("awt.265")); //$NON-NLS-1$ } @@ -490,8 +552,7 @@ public class IndexColorModel extends ColorModel { if (forceARGB || transparency == Transparency.TRANSLUCENT) { model = ColorModel.getRGBdefault(); } else if (transparency == Transparency.BITMASK) { - model = new DirectColorModel(25, 0x00ff0000, 0x0000ff00, - 0x000000ff, 0x01000000); + model = new DirectColorModel(25, 0x00ff0000, 0x0000ff00, 0x000000ff, 0x01000000); } else { model = new DirectColorModel(24, 0x00ff0000, 0x0000ff00, 0x000000ff); } @@ -510,7 +571,7 @@ public class IndexColorModel extends ColorModel { for (int i = 0; i < h; i++, minY++) { obj = raster.getDataElements(minX, minY, w, 1, obj); if (obj instanceof byte[]) { - byte ba[] = (byte[]) obj; + byte ba[] = (byte[])obj; if (pixels == null) { pixels = new int[ba.length]; } @@ -518,7 +579,7 @@ public class IndexColorModel extends ColorModel { pixels[j] = colorMap[ba[j] & 0xff]; } } else if (obj instanceof short[]) { - short sa[] = (short[]) obj; + short sa[] = (short[])obj; if (pixels == null) { pixels = new int[sa.length]; } @@ -527,7 +588,7 @@ public class IndexColorModel extends ColorModel { } } if (obj instanceof int[]) { - int ia[] = (int[]) obj; + int ia[] = (int[])obj; if (pixels == null) { pixels = new int[ia.length]; } @@ -545,7 +606,7 @@ public class IndexColorModel extends ColorModel { /** * Gets the valid pixels. * - * @return the valid pixels + * @return the valid pixels. */ public BigInteger getValidPixels() { return validBits; @@ -553,14 +614,15 @@ public class IndexColorModel extends ColorModel { @Override public String toString() { - // The output format based on 1.5 release behaviour. + // The output format based on 1.5 release behaviour. // It could be reveled such way: - // BufferedImage bi = new BufferedImage(1, 1, BufferedImage.TYPE_BYTE_INDEXED); + // BufferedImage bi = new BufferedImage(1, 1, + // BufferedImage.TYPE_BYTE_INDEXED); // ColorModel cm = bi.getColorModel(); // System.out.println(cm.toString()); String str = "IndexColorModel: #pixel_bits = " + pixel_bits + //$NON-NLS-1$ - " numComponents = " + numComponents + " color space = " + cs + //$NON-NLS-1$ //$NON-NLS-2$ - " transparency = "; //$NON-NLS-1$ + " numComponents = " + numComponents + " color space = " + cs + //$NON-NLS-1$ //$NON-NLS-2$ + " transparency = "; //$NON-NLS-1$ if (transparency == Transparency.OPAQUE) { str = str + "Transparency.OPAQUE"; //$NON-NLS-1$ @@ -571,7 +633,7 @@ public class IndexColorModel extends ColorModel { } str = str + " transIndex = " + transparentIndex + " has alpha = " + //$NON-NLS-1$ //$NON-NLS-2$ - hasAlpha + " isAlphaPre = " + isAlphaPremultiplied; //$NON-NLS-1$ + hasAlpha + " isAlphaPre = " + isAlphaPremultiplied; //$NON-NLS-1$ return str; } @@ -580,13 +642,13 @@ public class IndexColorModel extends ColorModel { public int[] getComponents(Object pixel, int components[], int offset) { int pixIdx = -1; if (pixel instanceof byte[]) { - byte ba[] = (byte[]) pixel; + byte ba[] = (byte[])pixel; pixIdx = ba[0] & 0xff; } else if (pixel instanceof short[]) { - short sa[] = (short[]) pixel; + short sa[] = (short[])pixel; pixIdx = sa[0] & 0xffff; } else if (pixel instanceof int[]) { - int ia[] = (int[]) pixel; + int ia[] = (int[])pixel; pixIdx = ia[0]; } else { // awt.219=This transferType is not supported by this color model @@ -600,14 +662,11 @@ public class IndexColorModel extends ColorModel { public WritableRaster createCompatibleWritableRaster(int w, int h) { WritableRaster raster; if (pixel_bits == 1 || pixel_bits == 2 || pixel_bits == 4) { - raster = Raster.createPackedRaster(DataBuffer.TYPE_BYTE, w, h, 1, - pixel_bits, null); + raster = Raster.createPackedRaster(DataBuffer.TYPE_BYTE, w, h, 1, pixel_bits, null); } else if (pixel_bits <= 8) { - raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, w, h, - 1, null); + raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, w, h, 1, null); } else if (pixel_bits <= 16) { - raster = Raster.createInterleavedRaster(DataBuffer.TYPE_USHORT, w, - h, 1, null); + raster = Raster.createInterleavedRaster(DataBuffer.TYPE_USHORT, w, h, 1, null); } else { // awt.266=The number of bits in a pixel is greater than 16 throw new UnsupportedOperationException(Messages.getString("awt.266")); //$NON-NLS-1$ @@ -622,8 +681,7 @@ public class IndexColorModel extends ColorModel { return false; } - if (!(sm instanceof MultiPixelPackedSampleModel) - && !(sm instanceof ComponentSampleModel)) { + if (!(sm instanceof MultiPixelPackedSampleModel) && !(sm instanceof ComponentSampleModel)) { return false; } @@ -640,48 +698,45 @@ public class IndexColorModel extends ColorModel { @Override public SampleModel createCompatibleSampleModel(int w, int h) { if (pixel_bits == 1 || pixel_bits == 2 || pixel_bits == 4) { - return new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, w, h, - pixel_bits); + return new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, w, h, pixel_bits); } int bandOffsets[] = new int[1]; bandOffsets[0] = 0; - return new ComponentSampleModel(transferType, w, h, 1, w, - bandOffsets); + return new ComponentSampleModel(transferType, w, h, 1, w, bandOffsets); } @Override public boolean isCompatibleRaster(Raster raster) { int sampleSize = raster.getSampleModel().getSampleSize(0); - return (raster.getTransferType() == transferType && - raster.getNumBands() == 1 && (1 << sampleSize) >= mapSize); + return (raster.getTransferType() == transferType && raster.getNumBands() == 1 && (1 << sampleSize) >= mapSize); } @Override public int getDataElement(int components[], int offset) { int rgb = (components[offset] << 16) | (components[offset + 1]) << 8 | components[offset + 2]; - + if (hasAlpha) { rgb |= components[offset + 3] << 24; } else { rgb |= 0xff000000; } - + int pixel; switch (transferType) { - case DataBuffer.TYPE_BYTE: - byte ba[] = (byte[]) getDataElements(rgb, null); - pixel = ba[0] & 0xff; - break; - case DataBuffer.TYPE_USHORT: - short sa[] = (short[]) getDataElements(rgb, null); - pixel = sa[0] & 0xffff; - break; - default: - // awt.267=The transferType is invalid - throw new UnsupportedOperationException(Messages.getString("awt.267")); //$NON-NLS-1$ + case DataBuffer.TYPE_BYTE: + byte ba[] = (byte[])getDataElements(rgb, null); + pixel = ba[0] & 0xff; + break; + case DataBuffer.TYPE_USHORT: + short sa[] = (short[])getDataElements(rgb, null); + pixel = sa[0] & 0xffff; + break; + default: + // awt.267=The transferType is invalid + throw new UnsupportedOperationException(Messages.getString("awt.267")); //$NON-NLS-1$ } return pixel; @@ -690,7 +745,8 @@ public class IndexColorModel extends ColorModel { /** * Gets the color map. * - * @param rgb the destination array where the color map is written + * @param rgb + * the destination array where the color map is written. */ public final void getRGBs(int rgb[]) { System.arraycopy(colorMap, 0, rgb, 0, mapSize); @@ -699,44 +755,48 @@ public class IndexColorModel extends ColorModel { /** * Gets the red component of the color map. * - * @param r the destination array + * @param r + * the destination array. */ public final void getReds(byte r[]) { for (int i = 0; i < mapSize; i++) { - r[i] = (byte) (colorMap[i] >> 16); + r[i] = (byte)(colorMap[i] >> 16); } } /** * Gets the green component of the color map. * - * @param g the destination array + * @param g + * the destination array. */ public final void getGreens(byte g[]) { for (int i = 0; i < mapSize; i++) { - g[i] = (byte) (colorMap[i] >> 8); + g[i] = (byte)(colorMap[i] >> 8); } } /** * Gets the blue component of the color map. * - * @param b the destination array + * @param b + * the destination array. */ public final void getBlues(byte b[]) { for (int i = 0; i < mapSize; i++) { - b[i] = (byte) colorMap[i]; + b[i] = (byte)colorMap[i]; } } /** * Gets the alpha component of the color map. * - * @param a the destination array + * @param a + * the destination array. */ public final void getAlphas(byte a[]) { for (int i = 0; i < mapSize; i++) { - a[i] = (byte) (colorMap[i] >> 24); + a[i] = (byte)(colorMap[i] >> 24); } } @@ -759,9 +819,9 @@ public class IndexColorModel extends ColorModel { /** * Checks if the specified pixel is valid for this color model. * - * @param pixel the pixel - * - * @return true, if the pixel is valid + * @param pixel + * the pixel. + * @return true, if the pixel is valid. */ public boolean isValid(int pixel) { if (validBits == null) { @@ -803,7 +863,7 @@ public class IndexColorModel extends ColorModel { /** * Checks if this color model validates pixels. * - * @return true, if all pixels are valid, otherwise false + * @return true, if all pixels are valid, otherwise false. */ public boolean isValid() { return (validBits == null); @@ -818,7 +878,7 @@ public class IndexColorModel extends ColorModel { /** * Gets the index that represents the transparent pixel. * - * @return the index that represents the transparent pixel + * @return the index that represents the transparent pixel. */ public final int getTransparentPixel() { return transparentIndex; @@ -832,7 +892,7 @@ public class IndexColorModel extends ColorModel { /** * Gets the size of the color map. * - * @return the map size + * @return the map size. */ public final int getMapSize() { return mapSize; @@ -841,15 +901,20 @@ public class IndexColorModel extends ColorModel { /** * Creates the color map. * - * @param size the size - * @param r the r - * @param g the g - * @param b the b - * @param a the a - * @param trans the trans - */ - private void createColorMap(int size, byte r[], byte g[], byte b[], - byte a[], int trans) { + * @param size + * the size. + * @param r + * the r. + * @param g + * the g. + * @param b + * the b. + * @param a + * the a. + * @param trans + * the trans. + */ + private void createColorMap(int size, byte r[], byte g[], byte b[], byte a[], int trans) { if (size < 1) { // awt.264=Size of the color map is less than 1 throw new IllegalArgumentException(Messages.getString("awt.264")); //$NON-NLS-1$ @@ -867,8 +932,7 @@ public class IndexColorModel extends ColorModel { int alpha = 0; for (int i = 0; i < mapSize; i++) { - colorMap[i] = ((r[i] & 0xff) << 16) | ((g[i] & 0xff) << 8) | - (b[i] & 0xff); + colorMap[i] = ((r[i] & 0xff) << 16) | ((g[i] & 0xff) << 8) | (b[i] & 0xff); if (trans == i) { continue; @@ -900,7 +964,7 @@ public class IndexColorModel extends ColorModel { } /** - * This method checking, if Color Map has Gray Palette. + * This method checking, if Color Map has Gray palette. */ private void checkPalette() { grayPalette = false; @@ -911,8 +975,7 @@ public class IndexColorModel extends ColorModel { for (int i = 0; i < mapSize; i++) { rgb = colorMap[i]; - if (((rgb >> 16) & 0xff) != ((rgb >> 8) & 0xff) || - ((rgb >> 8) & 0xff) != (rgb & 0xff)) { + if (((rgb >> 16) & 0xff) != ((rgb >> 8) & 0xff) || ((rgb >> 8) & 0xff) != (rgb & 0xff)) { return; } } @@ -922,40 +985,39 @@ public class IndexColorModel extends ColorModel { /** * Construction an array pixel representation. * - * @param colorMapIdx - index into Color Map - * @param pixel - pixel - * - * @return - an array pixel representation + * @param colorMapIdx + * the index into Color Map. + * @param pixel + * the pixel + * @return the pixel representation array. */ private Object createDataObject(int colorMapIdx, Object pixel) { if (pixel == null) { switch (transferType) { - case DataBuffer.TYPE_BYTE: - byte[] ba = new byte[1]; - ba[0] = (byte) colorMapIdx; - pixel = ba; - break; - case DataBuffer.TYPE_USHORT: - short[] sa = new short[1]; - sa[0] = (short) colorMapIdx; - pixel = sa; - break; - default: - // awt.267=The transferType is invalid - throw new UnsupportedOperationException(Messages.getString("awt.267")); //$NON-NLS-1$ + case DataBuffer.TYPE_BYTE: + byte[] ba = new byte[1]; + ba[0] = (byte)colorMapIdx; + pixel = ba; + break; + case DataBuffer.TYPE_USHORT: + short[] sa = new short[1]; + sa[0] = (short)colorMapIdx; + pixel = sa; + break; + default: + // awt.267=The transferType is invalid + throw new UnsupportedOperationException(Messages.getString("awt.267")); //$NON-NLS-1$ } - } else if (pixel instanceof byte[] - && transferType == DataBuffer.TYPE_BYTE) { - byte ba[] = (byte[]) pixel; - ba[0] = (byte) colorMapIdx; + } else if (pixel instanceof byte[] && transferType == DataBuffer.TYPE_BYTE) { + byte ba[] = (byte[])pixel; + ba[0] = (byte)colorMapIdx; pixel = ba; - } else if (pixel instanceof short[]&& - transferType == DataBuffer.TYPE_USHORT) { - short[] sa = (short[]) pixel; - sa[0] = (short) colorMapIdx; + } else if (pixel instanceof short[] && transferType == DataBuffer.TYPE_USHORT) { + short[] sa = (short[])pixel; + sa[0] = (short)colorMapIdx; pixel = sa; } else if (pixel instanceof int[]) { - int ia[] = (int[]) pixel; + int ia[] = (int[])pixel; ia[0] = colorMapIdx; pixel = ia; } else { @@ -968,9 +1030,9 @@ public class IndexColorModel extends ColorModel { /** * Creates the bits. * - * @param hasAlpha the has alpha - * - * @return the int[] + * @param hasAlpha + * the has alpha. + * @return the int[]. */ private static int[] createBits(boolean hasAlpha) { @@ -993,28 +1055,26 @@ public class IndexColorModel extends ColorModel { /** * Validate transfer type. * - * @param transferType the transfer type - * - * @return the int + * @param transferType + * the transfer type. + * @return the int. */ private static int validateTransferType(int transferType) { - if (transferType != DataBuffer.TYPE_BYTE && - transferType != DataBuffer.TYPE_USHORT) { - // awt.269=The transferType is not one of DataBuffer.TYPE_BYTE or DataBuffer.TYPE_USHORT + if (transferType != DataBuffer.TYPE_BYTE && transferType != DataBuffer.TYPE_USHORT) { + // awt.269=The transferType is not one of DataBuffer.TYPE_BYTE or + // DataBuffer.TYPE_USHORT throw new IllegalArgumentException(Messages.getString("awt.269")); //$NON-NLS-1$ } return transferType; } /** - * Checks if is gray pallete. + * Checks if is gray palette. * - * @return true, if is gray pallete + * @return true, if is gray palette. */ - boolean isGrayPallete(){ + boolean isGrayPallete() { return grayPalette; } } - - diff --git a/awt/java/awt/image/Kernel.java b/awt/java/awt/image/Kernel.java index c6f00e2..a59d27a 100644 --- a/awt/java/awt/image/Kernel.java +++ b/awt/java/awt/image/Kernel.java @@ -27,38 +27,53 @@ import org.apache.harmony.awt.internal.nls.Messages; /** * The Kernel class provides a matrix. This matrix is stored as a float array - * which describes how a specified pixel affects the value calculated for - * the pixel's position in the output image of a filtering operation. - * The X, Y origins indicate the kernel matrix element which corresponds to - * the pixel position for which an output value is being calculated. + * which describes how a specified pixel affects the value calculated for the + * pixel's position in the output image of a filtering operation. The X, Y + * origins indicate the kernel matrix element which corresponds to the pixel + * position for which an output value is being calculated. + * + * @since Android 1.0 */ public class Kernel implements Cloneable { - - /** The x origin. */ + + /** + * The x origin. + */ private final int xOrigin; - - /** The y origin. */ + + /** + * The y origin. + */ private final int yOrigin; - - /** The width. */ + + /** + * The width. + */ private int width; - - /** The height. */ + + /** + * The height. + */ private int height; - - /** The data. */ + + /** + * The data. + */ float data[]; /** - * Instantiates a new Kernel with the specified float array. - * The width*height elements of the data array are copied. + * Instantiates a new Kernel with the specified float array. The + * width*height elements of the data array are copied. * - * @param width the width of the Kernel. - * @param height the height of the Kernel. - * @param data the data of Kernel. + * @param width + * the width of the Kernel. + * @param height + * the height of the Kernel. + * @param data + * the data of Kernel. */ public Kernel(int width, int height, float[] data) { - int dataLength = width*height; + int dataLength = width * height; if (data.length < dataLength) { // awt.22B=Length of data should not be less than width*height throw new IllegalArgumentException(Messages.getString("awt.22B")); //$NON-NLS-1$ @@ -70,8 +85,8 @@ public class Kernel implements Cloneable { this.data = new float[dataLength]; System.arraycopy(data, 0, this.data, 0, dataLength); - xOrigin = (width-1)/2; - yOrigin = (height-1)/2; + xOrigin = (width - 1) / 2; + yOrigin = (height - 1) / 2; } /** @@ -95,8 +110,8 @@ public class Kernel implements Cloneable { /** * Gets the float data array of this Kernel. * - * @param data the float array where the resulted data will be stored. - * + * @param data + * the float array where the resulted data will be stored. * @return the float data array of this Kernel. */ public final float[] getKernelData(float[] data) { diff --git a/awt/java/awt/image/LookupOp.java b/awt/java/awt/image/LookupOp.java index f9bd2c7..3362c5c 100644 --- a/awt/java/awt/image/LookupOp.java +++ b/awt/java/awt/image/LookupOp.java @@ -32,56 +32,76 @@ import org.apache.harmony.awt.gl.AwtImageBackdoorAccessor; import org.apache.harmony.awt.internal.nls.Messages; /** - * The LookupOp class perfoms a lookup operation which transforms a - * source image by filtering each band using a table of data. - * The table may contain a single array or it may contain a - * different data array for each band of the image. + * The LookupOp class performs a lookup operation which transforms a source + * image by filtering each band using a table of data. The table may contain a + * single array or it may contain a different data array for each band of the + * image. + * + * @since Android 1.0 */ public class LookupOp implements BufferedImageOp, RasterOp { - - /** The lut. */ + + /** + * The lut. + */ private final LookupTable lut; - - /** The hints. */ + + /** + * The hints. + */ private RenderingHints hints; - + // TODO remove when this field is used - /** The can use ipp. */ + /** + * The can use ipp. + */ @SuppressWarnings("unused") private final boolean canUseIpp; // We don't create levels/values when it is possible to reuse old - /** The cached levels. */ + /** + * The cached levels. + */ private int cachedLevels[]; - - /** The cached values. */ + + /** + * The cached values. + */ private int cachedValues[]; + // Number of channels for which cache is valid. - // If negative number of channels is same as positive but skipAlpha was specified - /** The valid for channels. */ + // If negative number of channels is same as positive but skipAlpha was + // specified + /** + * The valid for channels. + */ private int validForChannels; - /** The level initializer. */ + /** + * The level initializer. + */ static int levelInitializer[] = new int[0x10000]; static { // TODO // System.loadLibrary("imageops"); - for (int i=1; i<=0x10000; i++) { - levelInitializer[i-1] = i; + for (int i = 1; i <= 0x10000; i++) { + levelInitializer[i - 1] = i; } } /** - * Instantiates a new LookupOp object from the specified - * LookupTable object and a RenderingHints object. + * Instantiates a new LookupOp object from the specified LookupTable object + * and a RenderingHints object. * - * @param lookup the specified LookupTable object. - * @param hints the RenderingHints object or null. + * @param lookup + * the specified LookupTable object. + * @param hints + * the RenderingHints object or null. */ public LookupOp(LookupTable lookup, RenderingHints hints) { - if (lookup == null){ + if (lookup == null) { throw new NullPointerException(Messages.getString("awt.01", "lookup")); //$NON-NLS-1$ //$NON-NLS-2$ } lut = lookup; @@ -136,27 +156,16 @@ public class LookupOp implements BufferedImageOp, RasterOp { transferType = DataBuffer.TYPE_SHORT; } - dstCM = new ComponentColorModel( - dstCM.cs, - dstCM.hasAlpha(), - dstCM.isAlphaPremultiplied, - dstCM.transparency, - transferType - ); + dstCM = new ComponentColorModel(dstCM.cs, dstCM.hasAlpha(), + dstCM.isAlphaPremultiplied, dstCM.transparency, transferType); } } - WritableRaster r = - dstCM.isCompatibleSampleModel(src.getSampleModel()) ? - src.getRaster().createCompatibleWritableRaster(src.getWidth(), src.getHeight()) : - dstCM.createCompatibleWritableRaster(src.getWidth(), src.getHeight()); - - return new BufferedImage( - dstCM, - r, - dstCM.isAlphaPremultiplied(), - null - ); + WritableRaster r = dstCM.isCompatibleSampleModel(src.getSampleModel()) ? src.getRaster() + .createCompatibleWritableRaster(src.getWidth(), src.getHeight()) : dstCM + .createCompatibleWritableRaster(src.getWidth(), src.getHeight()); + + return new BufferedImage(dstCM, r, dstCM.isAlphaPremultiplied(), null); } public final WritableRaster filter(Raster src, WritableRaster dst) { @@ -166,25 +175,27 @@ public class LookupOp implements BufferedImageOp, RasterOp { if (src.getNumBands() != dst.getNumBands()) { throw new IllegalArgumentException(Messages.getString("awt.237")); //$NON-NLS-1$ } } - if (src.getWidth() != dst.getWidth()){ + if (src.getWidth() != dst.getWidth()) { throw new IllegalArgumentException(Messages.getString("awt.28F")); //$NON-NLS-1$ } } - if (src.getHeight() != dst.getHeight()){ + if (src.getHeight() != dst.getHeight()) { throw new IllegalArgumentException(Messages.getString("awt.290")); //$NON-NLS-1$ } } } if (lut.getNumComponents() != 1 && lut.getNumComponents() != src.getNumBands()) { - // awt.238=The number of arrays in the LookupTable does not meet the restrictions + // awt.238=The number of arrays in the LookupTable does not meet the + // restrictions throw new IllegalArgumentException(Messages.getString("awt.238")); //$NON-NLS-1$ } // TODO - // if (!canUseIpp || ippFilter(src, dst, BufferedImage.TYPE_CUSTOM, false) != 0) - if (slowFilter(src, dst, false) != 0) { - // awt.21F=Unable to transform source - throw new ImagingOpException (Messages.getString("awt.21F")); //$NON-NLS-1$ - } + // if (!canUseIpp || ippFilter(src, dst, BufferedImage.TYPE_CUSTOM, + // false) != 0) + if (slowFilter(src, dst, false) != 0) { + // awt.21F=Unable to transform source + throw new ImagingOpException(Messages.getString("awt.21F")); //$NON-NLS-1$ + } return dst; } @@ -202,18 +213,20 @@ public class LookupOp implements BufferedImageOp, RasterOp { int nLUTComponents = lut.getNumComponents(); boolean skipAlpha; if (srcCM.hasAlpha()) { - if (nLUTComponents == 1 || nLUTComponents == nComponents-1) { + if (nLUTComponents == 1 || nLUTComponents == nComponents - 1) { skipAlpha = true; } else if (nLUTComponents == nComponents) { skipAlpha = false; } else { - // awt.229=Number of components in the LUT does not match the number of bands + // awt.229=Number of components in the LUT does not match the + // number of bands throw new IllegalArgumentException(Messages.getString("awt.229")); //$NON-NLS-1$ } } else if (nLUTComponents == 1 || nLUTComponents == nComponents) { skipAlpha = false; } else { - // awt.229=Number of components in the LUT does not match the number of bands + // awt.229=Number of components in the LUT does not match the number + // of bands throw new IllegalArgumentException(Messages.getString("awt.229")); //$NON-NLS-1$ } @@ -222,21 +235,19 @@ public class LookupOp implements BufferedImageOp, RasterOp { finalDst = dst; dst = createCompatibleDestImage(src, null); } else { - if (src.getWidth() != dst.getWidth()){ + if (src.getWidth() != dst.getWidth()) { throw new IllegalArgumentException(Messages.getString("awt.291")); //$NON-NLS-1$ } - if (src.getHeight() != dst.getHeight()){ + if (src.getHeight() != dst.getHeight()) { throw new IllegalArgumentException(Messages.getString("awt.292")); //$NON-NLS-1$ } if (!srcCM.equals(dst.getColorModel())) { // Treat BufferedImage.TYPE_INT_RGB and // BufferedImage.TYPE_INT_ARGB as same - if (!((src.getType() == BufferedImage.TYPE_INT_RGB || src - .getType() == BufferedImage.TYPE_INT_ARGB) && (dst - .getType() == BufferedImage.TYPE_INT_RGB || dst - .getType() == BufferedImage.TYPE_INT_ARGB))) { + if (!((src.getType() == BufferedImage.TYPE_INT_RGB || src.getType() == BufferedImage.TYPE_INT_ARGB) && (dst + .getType() == BufferedImage.TYPE_INT_RGB || dst.getType() == BufferedImage.TYPE_INT_ARGB))) { finalDst = dst; dst = createCompatibleDestImage(src, null); } @@ -244,11 +255,12 @@ public class LookupOp implements BufferedImageOp, RasterOp { } // TODO - //if (!canUseIpp || ippFilter(src.getRaster(), dst.getRaster(), src.getType(), skipAlpha) != 0) - if (slowFilter(src.getRaster(), dst.getRaster(), skipAlpha) != 0) { - // awt.21F=Unable to transform source - throw new ImagingOpException (Messages.getString("awt.21F")); //$NON-NLS-1$ - } + // if (!canUseIpp || ippFilter(src.getRaster(), dst.getRaster(), + // src.getType(), skipAlpha) != 0) + if (slowFilter(src.getRaster(), dst.getRaster(), skipAlpha) != 0) { + // awt.21F=Unable to transform source + throw new ImagingOpException(Messages.getString("awt.21F")); //$NON-NLS-1$ + } if (finalDst != null) { Graphics2D g = finalDst.createGraphics(); @@ -264,11 +276,13 @@ public class LookupOp implements BufferedImageOp, RasterOp { /** * Slow filter. * - * @param src the src - * @param dst the dst - * @param skipAlpha the skip alpha - * - * @return the int + * @param src + * the src. + * @param dst + * the dst. + * @param skipAlpha + * the skip alpha. + * @return the int. */ private final int slowFilter(Raster src, WritableRaster dst, boolean skipAlpha) { int minSrcX = src.getMinX(); @@ -286,39 +300,39 @@ public class LookupOp implements BufferedImageOp, RasterOp { int[] pixels = null; int offset = lut.getOffset(); - if (lut instanceof ByteLookupTable){ + if (lut instanceof ByteLookupTable) { byte[][] byteData = ((ByteLookupTable)lut).getTable(); pixels = src.getPixels(minSrcX, minSrcY, srcWidth, srcHeight, pixels); - if (lut.getNumComponents() != 1){ - for (int i=0; i < pixels.length; i+= numBands){ - for (int b = 0; b < numBands2Process; b++){ - pixels[i+b] = byteData[b][pixels[i+b]-offset] & 0xFF; + if (lut.getNumComponents() != 1) { + for (int i = 0; i < pixels.length; i += numBands) { + for (int b = 0; b < numBands2Process; b++) { + pixels[i + b] = byteData[b][pixels[i + b] - offset] & 0xFF; } } } else { - for (int i=0; i < pixels.length; i+= numBands){ - for (int b = 0; b < numBands2Process; b++){ - pixels[i+b] = byteData[0][pixels[i+b]-offset] & 0xFF; + for (int i = 0; i < pixels.length; i += numBands) { + for (int b = 0; b < numBands2Process; b++) { + pixels[i + b] = byteData[0][pixels[i + b] - offset] & 0xFF; } } } dst.setPixels(minDstX, minDstY, srcWidth, srcHeight, pixels); - } else if (lut instanceof ShortLookupTable){ - short[][] shortData = ((ShortLookupTable)lut).getTable(); + } else if (lut instanceof ShortLookupTable) { + short[][] shortData = ((ShortLookupTable)lut).getTable(); pixels = src.getPixels(minSrcX, minSrcY, srcWidth, srcHeight, pixels); - if (lut.getNumComponents() != 1){ - for (int i=0; i < pixels.length; i+= numBands){ - for (int b = 0; b < numBands2Process; b++){ - pixels[i+b] = shortData[b][pixels[i+b]-offset] & 0xFFFF; + if (lut.getNumComponents() != 1) { + for (int i = 0; i < pixels.length; i += numBands) { + for (int b = 0; b < numBands2Process; b++) { + pixels[i + b] = shortData[b][pixels[i + b] - offset] & 0xFFFF; } } } else { - for (int i=0; i < pixels.length; i+= numBands){ - for (int b = 0; b < numBands2Process; b++){ - pixels[i+b] = shortData[0][pixels[i+b]-offset] & 0xFFFF; + for (int i = 0; i < pixels.length; i += numBands) { + for (int b = 0; b < numBands2Process; b++) { + pixels[i + b] = shortData[0][pixels[i + b] - offset] & 0xFFFF; } } } @@ -328,8 +342,8 @@ public class LookupOp implements BufferedImageOp, RasterOp { int pixel[] = new int[src.getNumBands()]; int maxY = minSrcY + srcHeight; int maxX = minSrcX + srcWidth; - for (int srcY=minSrcY, dstY = minDstY; srcY < maxY; srcY++, dstY++){ - for (int srcX=minSrcX, dstX = minDstX; srcX < maxX; srcX++, dstX++){ + for (int srcY = minSrcY, dstY = minDstY; srcY < maxY; srcY++, dstY++) { + for (int srcX = minSrcX, dstX = minDstX; srcX < maxX; srcX++, dstX++) { src.getPixel(srcX, srcY, pixel); lut.lookupPixel(pixel, pixel); dst.setPixel(dstX, dstY, pixel); @@ -343,16 +357,19 @@ public class LookupOp implements BufferedImageOp, RasterOp { /** * Creates the byte levels. * - * @param channels the channels - * @param skipAlpha the skip alpha - * @param levels the levels - * @param values the values - * @param channelsOrder the channels order + * @param channels + * the channels. + * @param skipAlpha + * the skip alpha. + * @param levels + * the levels. + * @param values + * the values. + * @param channelsOrder + * the channels order. */ - private final void createByteLevels( - int channels, boolean skipAlpha, - int levels[], int values[], int channelsOrder[] - ) { + private final void createByteLevels(int channels, boolean skipAlpha, int levels[], + int values[], int channelsOrder[]) { byte data[][] = ((ByteLookupTable)lut).getTable(); int nLevels = data[0].length; int offset = lut.getOffset(); @@ -360,18 +377,18 @@ public class LookupOp implements BufferedImageOp, RasterOp { // Use one data array for all channels or use several data arrays int dataIncrement = data.length > 1 ? 1 : 0; - for (int ch = 0, dataIdx = 0; ch<channels; dataIdx+=dataIncrement, ch++) { + for (int ch = 0, dataIdx = 0; ch < channels; dataIdx += dataIncrement, ch++) { int channelOffset = channelsOrder == null ? ch : channelsOrder[ch]; int channelBase = nLevels * channelOffset; // Skip last channel if needed, zero values are OK - // no changes to the channel information will be done in IPP - if ((channelOffset == channels-1 && skipAlpha) || (dataIdx >= data.length)) { + if ((channelOffset == channels - 1 && skipAlpha) || (dataIdx >= data.length)) { continue; } System.arraycopy(levelInitializer, offset, levels, channelBase, nLevels); - for (int from=0, to=channelBase; from<nLevels; from++, to++) { + for (int from = 0, to = channelBase; from < nLevels; from++, to++) { values[to] = data[dataIdx][from] & 0xFF; } } @@ -380,16 +397,19 @@ public class LookupOp implements BufferedImageOp, RasterOp { /** * Creates the short levels. * - * @param channels the channels - * @param skipAlpha the skip alpha - * @param levels the levels - * @param values the values - * @param channelsOrder the channels order + * @param channels + * the channels. + * @param skipAlpha + * the skip alpha. + * @param levels + * the levels. + * @param values + * the values. + * @param channelsOrder + * the channels order. */ - private final void createShortLevels( - int channels, boolean skipAlpha, - int levels[], int values[], int channelsOrder[] - ) { + private final void createShortLevels(int channels, boolean skipAlpha, int levels[], + int values[], int channelsOrder[]) { short data[][] = ((ShortLookupTable)lut).getTable(); int nLevels = data[0].length; int offset = lut.getOffset(); @@ -397,18 +417,18 @@ public class LookupOp implements BufferedImageOp, RasterOp { // Use one data array for all channels or use several data arrays int dataIncrement = data.length > 1 ? 1 : 0; - for (int ch = 0, dataIdx = 0; ch<channels; dataIdx+=dataIncrement, ch++) { + for (int ch = 0, dataIdx = 0; ch < channels; dataIdx += dataIncrement, ch++) { int channelOffset = channelsOrder == null ? ch : channelsOrder[ch]; // Skip last channel if needed, zero values are OK - // no changes to the channel information will be done in IPP - if ((channelOffset == channels-1 && skipAlpha) || (dataIdx >= data.length)) { + if ((channelOffset == channels - 1 && skipAlpha) || (dataIdx >= data.length)) { continue; } int channelBase = nLevels * channelOffset; System.arraycopy(levelInitializer, offset, levels, channelBase, nLevels); - for (int from=0, to=channelBase; from<nLevels; from++, to++) { + for (int from = 0, to = channelBase; from < nLevels; from++, to++) { values[to] = data[dataIdx][from] & 0xFFFF; } } @@ -418,18 +438,18 @@ public class LookupOp implements BufferedImageOp, RasterOp { /** * Ipp filter. * - * @param src the src - * @param dst the dst - * @param imageType the image type - * @param skipAlpha the skip alpha - * - * @return the int + * @param src + * the src. + * @param dst + * the dst. + * @param imageType + * the image type. + * @param skipAlpha + * the skip alpha. + * @return the int. */ @SuppressWarnings("unused") - private final int ippFilter( - Raster src, WritableRaster dst, - int imageType, boolean skipAlpha - ) { + private final int ippFilter(Raster src, WritableRaster dst, int imageType, boolean skipAlpha) { int res; int srcStride, dstStride; @@ -442,9 +462,11 @@ public class LookupOp implements BufferedImageOp, RasterOp { case BufferedImage.TYPE_INT_ARGB_PRE: case BufferedImage.TYPE_INT_RGB: { channels = 4; - srcStride = src.getWidth()*4; - dstStride = dst.getWidth()*4; - channelsOrder = new int[] {2, 1, 0, 3}; + srcStride = src.getWidth() * 4; + dstStride = dst.getWidth() * 4; + channelsOrder = new int[] { + 2, 1, 0, 3 + }; break; } @@ -452,8 +474,8 @@ public class LookupOp implements BufferedImageOp, RasterOp { case BufferedImage.TYPE_4BYTE_ABGR_PRE: case BufferedImage.TYPE_INT_BGR: { channels = 4; - srcStride = src.getWidth()*4; - dstStride = dst.getWidth()*4; + srcStride = src.getWidth() * 4; + dstStride = dst.getWidth() * 4; break; } @@ -466,9 +488,11 @@ public class LookupOp implements BufferedImageOp, RasterOp { case BufferedImage.TYPE_3BYTE_BGR: { channels = 3; - srcStride = src.getWidth()*3; - dstStride = dst.getWidth()*3; - channelsOrder = new int[] {2, 1, 0}; + srcStride = src.getWidth() * 3; + dstStride = dst.getWidth() * 3; + channelsOrder = new int[] { + 2, 1, 0 + }; break; } @@ -483,15 +507,11 @@ public class LookupOp implements BufferedImageOp, RasterOp { SampleModel srcSM = src.getSampleModel(); SampleModel dstSM = dst.getSampleModel(); - if ( - srcSM instanceof PixelInterleavedSampleModel && - dstSM instanceof PixelInterleavedSampleModel - ) { + if (srcSM instanceof PixelInterleavedSampleModel + && dstSM instanceof PixelInterleavedSampleModel) { // Check PixelInterleavedSampleModel - if ( - srcSM.getDataType() != DataBuffer.TYPE_BYTE || - dstSM.getDataType() != DataBuffer.TYPE_BYTE - ) { + if (srcSM.getDataType() != DataBuffer.TYPE_BYTE + || dstSM.getDataType() != DataBuffer.TYPE_BYTE) { return slowFilter(src, dst, skipAlpha); } @@ -501,40 +521,32 @@ public class LookupOp implements BufferedImageOp, RasterOp { return slowFilter(src, dst, skipAlpha); } - srcStride = ((ComponentSampleModel) srcSM).getScanlineStride(); - dstStride = ((ComponentSampleModel) dstSM).getScanlineStride(); + srcStride = ((ComponentSampleModel)srcSM).getScanlineStride(); + dstStride = ((ComponentSampleModel)dstSM).getScanlineStride(); - channelsOrder = ((ComponentSampleModel) srcSM).getBandOffsets(); - } else if ( - srcSM instanceof SinglePixelPackedSampleModel && - dstSM instanceof SinglePixelPackedSampleModel - ) { + channelsOrder = ((ComponentSampleModel)srcSM).getBandOffsets(); + } else if (srcSM instanceof SinglePixelPackedSampleModel + && dstSM instanceof SinglePixelPackedSampleModel) { // Check SinglePixelPackedSampleModel - SinglePixelPackedSampleModel sppsm1 = - (SinglePixelPackedSampleModel) srcSM; - SinglePixelPackedSampleModel sppsm2 = - (SinglePixelPackedSampleModel) dstSM; + SinglePixelPackedSampleModel sppsm1 = (SinglePixelPackedSampleModel)srcSM; + SinglePixelPackedSampleModel sppsm2 = (SinglePixelPackedSampleModel)dstSM; channels = sppsm1.getNumBands(); - // TYPE_INT_RGB, TYPE_INT_ARGB... - if ( - sppsm1.getDataType() != DataBuffer.TYPE_INT || - sppsm2.getDataType() != DataBuffer.TYPE_INT || - !(channels == 3 || channels == 4) - ) { + // TYPE_INT_RGB, TYPE_INT_ARGB... + if (sppsm1.getDataType() != DataBuffer.TYPE_INT + || sppsm2.getDataType() != DataBuffer.TYPE_INT + || !(channels == 3 || channels == 4)) { return slowFilter(src, dst, skipAlpha); } // Check compatibility of sample models - if ( - !Arrays.equals(sppsm1.getBitOffsets(), sppsm2.getBitOffsets()) || - !Arrays.equals(sppsm1.getBitMasks(), sppsm2.getBitMasks()) - ) { + if (!Arrays.equals(sppsm1.getBitOffsets(), sppsm2.getBitOffsets()) + || !Arrays.equals(sppsm1.getBitMasks(), sppsm2.getBitMasks())) { return slowFilter(src, dst, skipAlpha); } - for (int i=0; i<channels; i++) { + for (int i = 0; i < channels; i++) { if (sppsm1.getSampleSize(i) != 8) { return slowFilter(src, dst, skipAlpha); } @@ -542,11 +554,12 @@ public class LookupOp implements BufferedImageOp, RasterOp { channelsOrder = new int[channels]; int bitOffsets[] = sppsm1.getBitOffsets(); - for (int i=0; i<channels; i++) { + for (int i = 0; i < channels; i++) { channelsOrder[i] = bitOffsets[i] / 8; } - if (channels == 3) { // Don't skip channel now, could be optimized + if (channels == 3) { // Don't skip channel now, could be + // optimized channels = 4; } @@ -558,12 +571,9 @@ public class LookupOp implements BufferedImageOp, RasterOp { // Fill offsets if there's a child raster if (src.getParent() != null || dst.getParent() != null) { - if ( - src.getSampleModelTranslateX() != 0 || - src.getSampleModelTranslateY() != 0 || - dst.getSampleModelTranslateX() != 0 || - dst.getSampleModelTranslateY() != 0 - ) { + if (src.getSampleModelTranslateX() != 0 || src.getSampleModelTranslateY() != 0 + || dst.getSampleModelTranslateX() != 0 + || dst.getSampleModelTranslateY() != 0) { offsets = new int[4]; offsets[0] = -src.getSampleModelTranslateX() + src.getMinX(); offsets[1] = -src.getSampleModelTranslateY() + src.getMinY(); @@ -576,24 +586,25 @@ public class LookupOp implements BufferedImageOp, RasterOp { int levels[] = null, values[] = null; int channelMultiplier = skipAlpha ? -1 : 1; - if (channelMultiplier*channels == validForChannels) { // use existing levels/values + if (channelMultiplier * channels == validForChannels) { // use existing + // levels/values levels = cachedLevels; values = cachedValues; } else { // create new levels/values if (lut instanceof ByteLookupTable) { byte data[][] = ((ByteLookupTable)lut).getTable(); - levels = new int[channels*data[0].length]; - values = new int[channels*data[0].length]; + levels = new int[channels * data[0].length]; + values = new int[channels * data[0].length]; createByteLevels(channels, skipAlpha, levels, values, channelsOrder); } else if (lut instanceof ShortLookupTable) { short data[][] = ((ShortLookupTable)lut).getTable(); - levels = new int[channels*data[0].length]; - values = new int[channels*data[0].length]; + levels = new int[channels * data[0].length]; + values = new int[channels * data[0].length]; createShortLevels(channels, skipAlpha, levels, values, channelsOrder); } // cache levels/values - validForChannels = channelMultiplier*channels; + validForChannels = channelMultiplier * channels; cachedLevels = levels; cachedValues = values; } @@ -607,13 +618,8 @@ public class LookupOp implements BufferedImageOp, RasterOp { return -1; // Unknown data buffer type } - res = ippLUT( - srcData, src.getWidth(), src.getHeight(), srcStride, - dstData, dst.getWidth(), dst.getHeight(), dstStride, - levels, values, - channels, offsets, - false - ); + res = ippLUT(srcData, src.getWidth(), src.getHeight(), srcStride, dstData, dst.getWidth(), + dst.getHeight(), dstStride, levels, values, channels, offsets, false); return res; } @@ -621,27 +627,35 @@ public class LookupOp implements BufferedImageOp, RasterOp { /** * Ipp lut. * - * @param src the src - * @param srcWidth the src width - * @param srcHeight the src height - * @param srcStride the src stride - * @param dst the dst - * @param dstWidth the dst width - * @param dstHeight the dst height - * @param dstStride the dst stride - * @param levels the levels - * @param values the values - * @param channels the channels - * @param offsets the offsets - * @param linear the linear - * - * @return the int + * @param src + * the src. + * @param srcWidth + * the src width. + * @param srcHeight + * the src height. + * @param srcStride + * the src stride. + * @param dst + * the dst. + * @param dstWidth + * the dst width. + * @param dstHeight + * the dst height. + * @param dstStride + * the dst stride. + * @param levels + * the levels. + * @param values + * the values. + * @param channels + * the channels. + * @param offsets + * the offsets. + * @param linear + * the linear. + * @return the int. */ - final static native int ippLUT( - Object src, int srcWidth, int srcHeight, int srcStride, - Object dst, int dstWidth, int dstHeight, int dstStride, - int levels[], int values[], - int channels, int offsets[], - boolean linear - ); + final static native int ippLUT(Object src, int srcWidth, int srcHeight, int srcStride, + Object dst, int dstWidth, int dstHeight, int dstStride, int levels[], int values[], + int channels, int offsets[], boolean linear); } diff --git a/awt/java/awt/image/LookupTable.java b/awt/java/awt/image/LookupTable.java index d15f23c..e465a54 100644 --- a/awt/java/awt/image/LookupTable.java +++ b/awt/java/awt/image/LookupTable.java @@ -26,26 +26,33 @@ package java.awt.image; import org.apache.harmony.awt.internal.nls.Messages; /** - * This abstract LookupTable class represents lookup table which - * is defined with the number of components and offset value. - * ByteLookupTable and ShortLookupTable classes are subclasses of - * LookupTable which contains byte and short data tables as - * an input arrays for bands or components of image. + * This abstract LookupTable class represents lookup table which is defined with + * the number of components and offset value. ByteLookupTable and + * ShortLookupTable classes are subclasses of LookupTable which contains byte + * and short data tables as an input arrays for bands or components of image. + * + * @since Android 1.0 */ public abstract class LookupTable { - - /** The offset. */ + + /** + * The offset. + */ private int offset; - - /** The num components. */ + + /** + * The num components. + */ private int numComponents; /** - * Instantiates a new LookupTable with the specified offset value - * and number of components. + * Instantiates a new LookupTable with the specified offset value and number + * of components. * - * @param offset the offset value. - * @param numComponents the number of components. + * @param offset + * the offset value. + * @param numComponents + * the number of components. */ protected LookupTable(int offset, int numComponents) { if (offset < 0) { @@ -80,14 +87,15 @@ public abstract class LookupTable { } /** - * Returns a int array which contains samples of the specified - * pixel which is translated with the lookup table of this - * LookupTable. The resulted array is stored to the dst array. - * - * @param src the source array. - * @param dst the destination array where the result can be stored. + * Returns an integer array which contains samples of the specified pixel which + * is translated with the lookup table of this LookupTable. The resulted + * array is stored to the dst array. * - * @return the int array of translated samples of a pixel. + * @param src + * the source array. + * @param dst + * the destination array where the result can be stored. + * @return the integer array of translated samples of a pixel. */ public abstract int[] lookupPixel(int[] src, int[] dst); } diff --git a/awt/java/awt/image/MemoryImageSource.java b/awt/java/awt/image/MemoryImageSource.java index 983f19e..644fd40 100644 --- a/awt/java/awt/image/MemoryImageSource.java +++ b/awt/java/awt/image/MemoryImageSource.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.util.Hashtable; @@ -26,154 +27,211 @@ import java.util.Vector; import org.apache.harmony.awt.internal.nls.Messages; /** - * The MemoryImageSource class is used to produces pixels of an image from - * an array. This class can manage a memory image which - * contains an animation or custom rendering. + * The MemoryImageSource class is used to produces pixels of an image from an + * array. This class can manage a memory image which contains an animation or + * custom rendering. + * + * @since Android 1.0 */ public class MemoryImageSource implements ImageProducer { - /** The width. */ + /** + * The width. + */ int width; - - /** The height. */ + + /** + * The height. + */ int height; - - /** The cm. */ + + /** + * The cm. + */ ColorModel cm; - - /** The b data. */ + + /** + * The b data. + */ byte bData[]; - - /** The i data. */ + + /** + * The i data. + */ int iData[]; - - /** The offset. */ + + /** + * The offset. + */ int offset; - - /** The scanline. */ + + /** + * The scanline. + */ int scanline; - - /** The properties. */ + + /** + * The properties. + */ Hashtable<?, ?> properties; - - /** The consumers. */ + + /** + * The consumers. + */ Vector<ImageConsumer> consumers; - - /** The animated. */ + + /** + * The animated. + */ boolean animated; - - /** The fullbuffers. */ + + /** + * The fullbuffers. + */ boolean fullbuffers; - - /** The data type. */ + + /** + * The data type. + */ int dataType; - /** The Constant DATA_TYPE_BYTE. */ + /** + * The Constant DATA_TYPE_BYTE. + */ static final int DATA_TYPE_BYTE = 0; - - /** The Constant DATA_TYPE_INT. */ + + /** + * The Constant DATA_TYPE_INT. + */ static final int DATA_TYPE_INT = 1; /** - * Instantiates a new MemoryImageSource with the specified - * parameters. + * Instantiates a new MemoryImageSource with the specified parameters. * - * @param w the width of the rectangular area of pixels. - * @param h the height of the rectangular area of pixels. - * @param cm the specified ColorModel. - * @param pix the pixel array. - * @param off the offset in the pixel array. - * @param scan the distance from one pixel's row to the next - * in the pixel array. - * @param props the set of properties to be used for image - * processing. + * @param w + * the width of the rectangular area of pixels. + * @param h + * the height of the rectangular area of pixels. + * @param cm + * the specified ColorModel. + * @param pix + * the pixel array. + * @param off + * the offset in the pixel array. + * @param scan + * the distance from one pixel's row to the next in the pixel + * array. + * @param props + * the set of properties to be used for image processing. */ - public MemoryImageSource(int w, int h, ColorModel cm, int pix[], - int off, int scan, Hashtable<?, ?> props) { + public MemoryImageSource(int w, int h, ColorModel cm, int pix[], int off, int scan, + Hashtable<?, ?> props) { init(w, h, cm, pix, off, scan, props); } /** - * Instantiates a new MemoryImageSource with the specified - * parameters. + * Instantiates a new MemoryImageSource with the specified parameters. * - * @param w the width of the rectangular area of pixels. - * @param h the height of the rectangular area of pixels. - * @param cm the specified ColorModel. - * @param pix the pixel array. - * @param off the offset in the pixel array. - * @param scan the distance from one pixel's row to the next - * in the pixel array. - * @param props the set of properties to be used for image - * processing. + * @param w + * the width of the rectangular area of pixels. + * @param h + * the height of the rectangular area of pixels. + * @param cm + * the specified ColorModel. + * @param pix + * the pixel array. + * @param off + * the offset in the pixel array. + * @param scan + * the distance from one pixel's row to the next in the pixel + * array. + * @param props + * the set of properties to be used for image processing. */ - public MemoryImageSource(int w, int h, ColorModel cm, byte pix[], - int off, int scan, Hashtable<?, ?> props) { + public MemoryImageSource(int w, int h, ColorModel cm, byte pix[], int off, int scan, + Hashtable<?, ?> props) { init(w, h, cm, pix, off, scan, props); } /** - * Instantiates a new MemoryImageSource with the specified - * parameters and default RGB ColorModel. + * Instantiates a new MemoryImageSource with the specified parameters and + * default RGB ColorModel. * - * @param w the width of the rectangular area of pixels. - * @param h the height of the rectangular area of pixels. - * @param pix the pixel array. - * @param off the offset in the pixel array. - * @param scan the distance from one pixel's row to the next - * in the pixel array. - * @param props the set of properties to be used for image - * processing. + * @param w + * the width of the rectangular area of pixels. + * @param h + * the height of the rectangular area of pixels. + * @param pix + * the pixel array. + * @param off + * the offset in the pixel array. + * @param scan + * the distance from one pixel's row to the next in the pixel + * array. + * @param props + * the set of properties to be used for image processing. */ - public MemoryImageSource(int w, int h, int pix[], int off, int scan, - Hashtable<?, ?> props) { + public MemoryImageSource(int w, int h, int pix[], int off, int scan, Hashtable<?, ?> props) { init(w, h, ColorModel.getRGBdefault(), pix, off, scan, props); } /** - * Instantiates a new MemoryImageSource with the specified - * parameters. + * Instantiates a new MemoryImageSource with the specified parameters. * - * @param w the width of the rectangular area of pixels. - * @param h the height of the rectangular area of pixels. - * @param cm the specified ColorModel. - * @param pix the pixel array. - * @param off the offset in the pixel array. - * @param scan the distance from one pixel's row to the next - * in the pixel array. + * @param w + * the width of the rectangular area of pixels. + * @param h + * the height of the rectangular area of pixels. + * @param cm + * the specified ColorModel. + * @param pix + * the pixel array. + * @param off + * the offset in the pixel array. + * @param scan + * the distance from one pixel's row to the next in the pixel + * array. */ - public MemoryImageSource(int w, int h, ColorModel cm, int pix[], - int off, int scan) { + public MemoryImageSource(int w, int h, ColorModel cm, int pix[], int off, int scan) { init(w, h, cm, pix, off, scan, null); } /** - * Instantiates a new MemoryImageSource with the specified - * parameters. + * Instantiates a new MemoryImageSource with the specified parameters. * - * @param w the width of the rectangular area of pixels. - * @param h the height of the rectangular area of pixels. - * @param cm the specified ColorModel. - * @param pix the pixel array. - * @param off the offset in the pixel array. - * @param scan the distance from one pixel's row to the next - * in the pixel array. + * @param w + * the width of the rectangular area of pixels. + * @param h + * the height of the rectangular area of pixels. + * @param cm + * the specified ColorModel. + * @param pix + * the pixel array. + * @param off + * the offset in the pixel array. + * @param scan + * the distance from one pixel's row to the next in the pixel + * array. */ - public MemoryImageSource(int w, int h, ColorModel cm, byte pix[], - int off, int scan) { + public MemoryImageSource(int w, int h, ColorModel cm, byte pix[], int off, int scan) { init(w, h, cm, pix, off, scan, null); } /** - * Instantiates a new MemoryImageSource with the specified - * parameters and default RGB ColorModel. + * Instantiates a new MemoryImageSource with the specified parameters and + * default RGB ColorModel. * - * @param w the width of the rectangular area of pixels. - * @param h the height of the rectangular area of pixels. - * @param pix the pixels array. - * @param off the offset in the pixel array. - * @param scan the distance from one pixel's row to the next - * in the pixel array. + * @param w + * the width of the rectangular area of pixels. + * @param h + * the height of the rectangular area of pixels. + * @param pix + * the pixels array. + * @param off + * the offset in the pixel array. + * @param scan + * the distance from one pixel's row to the next in the pixel + * array. */ public MemoryImageSource(int w, int h, int pix[], int off, int scan) { init(w, h, ColorModel.getRGBdefault(), pix, off, scan, null); @@ -184,25 +242,25 @@ public class MemoryImageSource implements ImageProducer { } public void startProduction(ImageConsumer ic) { - if(!isConsumer(ic) && ic != null) { + if (!isConsumer(ic) && ic != null) { consumers.addElement(ic); } - try{ + try { setHeader(ic); setPixels(ic, 0, 0, width, height); - if(animated){ + if (animated) { ic.imageComplete(ImageConsumer.SINGLEFRAMEDONE); - }else{ + } else { ic.imageComplete(ImageConsumer.STATICIMAGEDONE); - if(isConsumer(ic)) { + if (isConsumer(ic)) { removeConsumer(ic); } } - }catch(Exception e){ - if(isConsumer(ic)) { + } catch (Exception e) { + if (isConsumer(ic)) { ic.imageComplete(ImageConsumer.IMAGEERROR); } - if(isConsumer(ic)) { + if (isConsumer(ic)) { removeConsumer(ic); } } @@ -216,26 +274,29 @@ public class MemoryImageSource implements ImageProducer { } public synchronized void addConsumer(ImageConsumer ic) { - if(ic == null || consumers.contains(ic)) { + if (ic == null || consumers.contains(ic)) { return; } consumers.addElement(ic); } /** - * Replaces the pixel data with a new pixel array for holding - * the pixels for this image. If an animation - * flag is set to true value by the setAnimated() method, - * the new pixels will be immediately delivered to the ImageConsumers. + * Replaces the pixel data with a new pixel array for holding the pixels for + * this image. If an animation flag is set to true value by the + * setAnimated() method, the new pixels will be immediately delivered to the + * ImageConsumers. * - * @param newpix the new pixel array. - * @param newmodel the new ColorModel. - * @param offset the offset in the array. - * @param scansize the distance from one row of pixels to the next row - * in the pixel array + * @param newpix + * the new pixel array. + * @param newmodel + * the new ColorModel. + * @param offset + * the offset in the array. + * @param scansize + * the distance from one row of pixels to the next row in the + * pixel array. */ - public synchronized void newPixels(int newpix[], ColorModel newmodel, - int offset, int scansize) { + public synchronized void newPixels(int newpix[], ColorModel newmodel, int offset, int scansize) { this.dataType = DATA_TYPE_INT; this.iData = newpix; this.cm = newmodel; @@ -245,19 +306,22 @@ public class MemoryImageSource implements ImageProducer { } /** - * Replaces the pixel data with a new pixel array for holding - * the pixels for this image. If an animation - * flag is set to true value by the setAnimated() method, - * the new pixels will be immediately delivered to the ImageConsumers. + * Replaces the pixel data with a new pixel array for holding the pixels for + * this image. If an animation flag is set to true value by the + * setAnimated() method, the new pixels will be immediately delivered to the + * ImageConsumers. * - * @param newpix the new pixel array. - * @param newmodel the new ColorModel. - * @param offset the offset in the array. - * @param scansize the distance from one row of pixels to the next row - * in the pixel array + * @param newpix + * the new pixel array. + * @param newmodel + * the new ColorModel. + * @param offset + * the offset in the array. + * @param scansize + * the distance from one row of pixels to the next row in the + * pixel array. */ - public synchronized void newPixels(byte newpix[], ColorModel newmodel, - int offset, int scansize) { + public synchronized void newPixels(byte newpix[], ColorModel newmodel, int offset, int scansize) { this.dataType = DATA_TYPE_BYTE; this.bData = newpix; this.cm = newmodel; @@ -267,33 +331,33 @@ public class MemoryImageSource implements ImageProducer { } /** - * Sets the full buffer updates flag to true. If this is an - * animated image, the image consumers hints are updated - * accordingly. + * Sets the full buffer updates flag to true. If this is an animated image, + * the image consumers hints are updated accordingly. * - * @param fullbuffers the true if the pixel buffer should be sent always. + * @param fullbuffers + * the true if the pixel buffer should be sent always. */ public synchronized void setFullBufferUpdates(boolean fullbuffers) { - if(this.fullbuffers == fullbuffers) { + if (this.fullbuffers == fullbuffers) { return; } this.fullbuffers = fullbuffers; - if(animated){ + if (animated) { Object consAr[] = consumers.toArray(); for (Object element : consAr) { ImageConsumer con = (ImageConsumer)element; - try{ - if(fullbuffers){ - con.setHints(ImageConsumer.TOPDOWNLEFTRIGHT | - ImageConsumer.COMPLETESCANLINES); - }else{ + try { + if (fullbuffers) { + con.setHints(ImageConsumer.TOPDOWNLEFTRIGHT + | ImageConsumer.COMPLETESCANLINES); + } else { con.setHints(ImageConsumer.RANDOMPIXELORDER); } - }catch(Exception e){ - if(isConsumer(con)) { + } catch (Exception e) { + if (isConsumer(con)) { con.imageComplete(ImageConsumer.IMAGEERROR); } - if(isConsumer(con)) { + if (isConsumer(con)) { removeConsumer(con); } } @@ -302,27 +366,28 @@ public class MemoryImageSource implements ImageProducer { } /** - * Sets the flag that tells whether this memory image has more - * than one frame (for animation): true for multiple frames, - * false if this class represents a single frame image. - * - * @param animated whether this image represents an animation. + * Sets the flag that tells whether this memory image has more than one + * frame (for animation): true for multiple frames, false if this class + * represents a single frame image. + * + * @param animated + * whether this image represents an animation. */ public synchronized void setAnimated(boolean animated) { - if(this.animated == animated) { + if (this.animated == animated) { return; } Object consAr[] = consumers.toArray(); for (Object element : consAr) { ImageConsumer con = (ImageConsumer)element; - try{ + try { con.imageComplete(ImageConsumer.STATICIMAGEDONE); - }catch(Exception e){ - if(isConsumer(con)) { + } catch (Exception e) { + if (isConsumer(con)) { con.imageComplete(ImageConsumer.IMAGEERROR); } } - if(isConsumer(con)){ + if (isConsumer(con)) { removeConsumer(con); } } @@ -330,60 +395,63 @@ public class MemoryImageSource implements ImageProducer { } /** - * Sends the specified rectangular area of the buffer to - * ImageConsumers and notifies them that an animation frame - * is completed only if framenotify parameter is true. - * That works only if the animated flag has been set to true - * by the setAnimated() method. If the full buffer update flag - * has been set to true by the setFullBufferUpdates() method, - * then the entire buffer will always be sent ignoring parameters. + * Sends the specified rectangular area of the buffer to ImageConsumers and + * notifies them that an animation frame is completed only if the {@code + * framenotify} parameter is true. That works only if the animated flag has + * been set to true by the setAnimated() method. If the full buffer update + * flag has been set to true by the setFullBufferUpdates() method, then the + * entire buffer will always be sent ignoring parameters. * - * @param x the X coordinate of the rectangular area. - * @param y the Y coordinate of rthe ectangular area. - * @param w the width of the rectangular area. - * @param h the height of the rectangular area. - * @param framenotify true if a SINGLEFRAMEDONE notification - * should be sent to the registered consumers, false otherwise. + * @param x + * the X coordinate of the rectangular area. + * @param y + * the Y coordinate of the rectangular area. + * @param w + * the width of the rectangular area. + * @param h + * the height of the rectangular area. + * @param framenotify + * true if a SINGLEFRAMEDONE notification should be sent to the + * registered consumers, false otherwise. */ - public synchronized void newPixels(int x, int y, int w, int h, - boolean framenotify) { - if(animated){ - if(fullbuffers){ + public synchronized void newPixels(int x, int y, int w, int h, boolean framenotify) { + if (animated) { + if (fullbuffers) { x = 0; y = 0; w = width; h = height; - }else{ - if(x < 0){ + } else { + if (x < 0) { w += x; x = 0; } - if(w > width) { + if (w > width) { w = width - x; } - if(y < 0){ + if (y < 0) { h += y; y = 0; } } - if(h > height) { + if (h > height) { h = height - y; } Object consAr[] = consumers.toArray(); for (Object element : consAr) { ImageConsumer con = (ImageConsumer)element; - try{ - if(w > 0 && h > 0) { + try { + if (w > 0 && h > 0) { setPixels(con, x, y, w, h); } - if(framenotify) { + if (framenotify) { con.imageComplete(ImageConsumer.SINGLEFRAMEDONE); } - }catch(Exception ex){ - if(isConsumer(con)) { + } catch (Exception ex) { + if (isConsumer(con)) { con.imageComplete(ImageConsumer.IMAGEERROR); } - if(isConsumer(con)) { + if (isConsumer(con)) { removeConsumer(con); } } @@ -392,26 +460,29 @@ public class MemoryImageSource implements ImageProducer { } /** - * Sends the specified rectangular area of the buffer to - * the ImageConsumers and notifies them that an animation frame - * is completed if the animated flag has been set to true - * by the setAnimated() method. If the full buffer update flag - * has been set to true by the setFullBufferUpdates() method, + * Sends the specified rectangular area of the buffer to the ImageConsumers + * and notifies them that an animation frame is completed if the animated + * flag has been set to true by the setAnimated() method. If the full buffer + * update flag has been set to true by the setFullBufferUpdates() method, * then the entire buffer will always be sent ignoring parameters. * - * @param x the X coordinate of the rectangular area. - * @param y the Y coordinate of the rectangular area. - * @param w the width of the rectangular area. - * @param h the height of the rectangular area. + * @param x + * the X coordinate of the rectangular area. + * @param y + * the Y coordinate of the rectangular area. + * @param w + * the width of the rectangular area. + * @param h + * the height of the rectangular area. */ public synchronized void newPixels(int x, int y, int w, int h) { newPixels(x, y, w, h, true); } /** - * Sends a new buffer of pixels to the ImageConsumers - * and notifies them that an animation frame is completed if - * the animated flag has been set to true by the setAnimated() method. + * Sends a new buffer of pixels to the ImageConsumers and notifies them that + * an animation frame is completed if the animated flag has been set to true + * by the setAnimated() method. */ public void newPixels() { newPixels(0, 0, width, height, true); @@ -420,16 +491,23 @@ public class MemoryImageSource implements ImageProducer { /** * Inits the. * - * @param width the width - * @param height the height - * @param model the model - * @param pixels the pixels - * @param off the off - * @param scan the scan - * @param prop the prop + * @param width + * the width. + * @param height + * the height. + * @param model + * the model. + * @param pixels + * the pixels. + * @param off + * the off. + * @param scan + * the scan. + * @param prop + * the prop. */ - private void init(int width, int height, ColorModel model, byte pixels[], - int off, int scan, Hashtable<?, ?> prop){ + private void init(int width, int height, ColorModel model, byte pixels[], int off, int scan, + Hashtable<?, ?> prop) { this.width = width; this.height = height; @@ -446,16 +524,23 @@ public class MemoryImageSource implements ImageProducer { /** * Inits the. * - * @param width the width - * @param height the height - * @param model the model - * @param pixels the pixels - * @param off the off - * @param scan the scan - * @param prop the prop + * @param width + * the width. + * @param height + * the height. + * @param model + * the model. + * @param pixels + * the pixels. + * @param off + * the off. + * @param scan + * the scan. + * @param prop + * the prop. */ - private void init(int width, int height, ColorModel model, int pixels[], - int off, int scan, Hashtable<?, ?> prop){ + private void init(int width, int height, ColorModel model, int pixels[], int off, int scan, + Hashtable<?, ?> prop) { this.width = width; this.height = height; @@ -471,42 +556,48 @@ public class MemoryImageSource implements ImageProducer { /** * Sets the pixels. * - * @param con the con - * @param x the x - * @param y the y - * @param w the w - * @param h the h + * @param con + * the con. + * @param x + * the x. + * @param y + * the y. + * @param w + * the w. + * @param h + * the h. */ - private void setPixels(ImageConsumer con, int x, int y, int w, int h){ + private void setPixels(ImageConsumer con, int x, int y, int w, int h) { int pixelOff = scanline * y + offset + x; - switch(dataType){ - case DATA_TYPE_BYTE: - con.setPixels(x, y, w, h, cm, bData, pixelOff, scanline); - break; - case DATA_TYPE_INT: - con.setPixels(x, y, w, h, cm, iData, pixelOff, scanline); - break; - default: - // awt.22A=Wrong type of pixels array - throw new IllegalArgumentException(Messages.getString("awt.22A")); //$NON-NLS-1$ + switch (dataType) { + case DATA_TYPE_BYTE: + con.setPixels(x, y, w, h, cm, bData, pixelOff, scanline); + break; + case DATA_TYPE_INT: + con.setPixels(x, y, w, h, cm, iData, pixelOff, scanline); + break; + default: + // awt.22A=Wrong type of pixels array + throw new IllegalArgumentException(Messages.getString("awt.22A")); //$NON-NLS-1$ } } /** * Sets the header. * - * @param con the new header + * @param con + * the new header. */ - private synchronized void setHeader(ImageConsumer con){ + private synchronized void setHeader(ImageConsumer con) { con.setDimensions(width, height); con.setProperties(properties); con.setColorModel(cm); - con.setHints(animated ? (fullbuffers ? (ImageConsumer.TOPDOWNLEFTRIGHT | - ImageConsumer.COMPLETESCANLINES) : ImageConsumer.RANDOMPIXELORDER) : - (ImageConsumer.TOPDOWNLEFTRIGHT | ImageConsumer.COMPLETESCANLINES | - ImageConsumer.SINGLEPASS | ImageConsumer.SINGLEFRAME)); + con + .setHints(animated ? (fullbuffers ? (ImageConsumer.TOPDOWNLEFTRIGHT | ImageConsumer.COMPLETESCANLINES) + : ImageConsumer.RANDOMPIXELORDER) + : (ImageConsumer.TOPDOWNLEFTRIGHT | ImageConsumer.COMPLETESCANLINES + | ImageConsumer.SINGLEPASS | ImageConsumer.SINGLEFRAME)); } } - diff --git a/awt/java/awt/image/MultiPixelPackedSampleModel.java b/awt/java/awt/image/MultiPixelPackedSampleModel.java index dd44b49..3dc13d8 100644 --- a/awt/java/awt/image/MultiPixelPackedSampleModel.java +++ b/awt/java/awt/image/MultiPixelPackedSampleModel.java @@ -18,72 +18,93 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import org.apache.harmony.awt.internal.nls.Messages; /** - * The MultiPixelPackedSampleModel class represents image data with one - * band. This class packs multiple pixels with one sample in one data - * element and supports the following data types: DataBuffer.TYPE_BYTE, - * DataBuffer.TYPE_USHORT, or DataBuffer.TYPE_INT. + * The MultiPixelPackedSampleModel class represents image data with one band. + * This class packs multiple pixels with one sample in one data element and + * supports the following data types: DataBuffer.TYPE_BYTE, + * DataBuffer.TYPE_USHORT, or DataBuffer.TYPE_INT. + * + * @since Android 1.0 */ public class MultiPixelPackedSampleModel extends SampleModel { - /** The pixel bit stride. */ + /** + * The pixel bit stride. + */ private int pixelBitStride; - /** The scanline stride. */ + /** + * The scanline stride. + */ private int scanlineStride; - /** The data bit offset. */ + /** + * The data bit offset. + */ private int dataBitOffset; - /** The bit mask. */ + /** + * The bit mask. + */ private int bitMask; - /** The data element size. */ + /** + * The data element size. + */ private int dataElementSize; - /** The pixels per data element. */ + /** + * The pixels per data element. + */ private int pixelsPerDataElement; /** * Instantiates a new MultiPixelPackedSampleModel with the specified * parameters. * - * @param dataType the data type of the samples. - * @param w the width of the image data. - * @param h the height of the image data. - * @param numberOfBits the number of bits per pixel. - * @param scanlineStride the scanline stride of the of the image data. - * @param dataBitOffset the array of the band offsets. + * @param dataType + * the data type of the samples. + * @param w + * the width of the image data. + * @param h + * the height of the image data. + * @param numberOfBits + * the number of bits per pixel. + * @param scanlineStride + * the scanline stride of the of the image data. + * @param dataBitOffset + * the array of the band offsets. */ - public MultiPixelPackedSampleModel(int dataType, int w, int h, - int numberOfBits, int scanlineStride, int dataBitOffset) { + public MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits, + int scanlineStride, int dataBitOffset) { super(dataType, w, h, 1); - if (dataType != DataBuffer.TYPE_BYTE && - dataType != DataBuffer.TYPE_USHORT && - dataType != DataBuffer.TYPE_INT) { + if (dataType != DataBuffer.TYPE_BYTE && dataType != DataBuffer.TYPE_USHORT + && dataType != DataBuffer.TYPE_INT) { // awt.61=Unsupported data type: {0} throw new IllegalArgumentException(Messages.getString("awt.61", //$NON-NLS-1$ dataType)); } this.scanlineStride = scanlineStride; - if(numberOfBits == 0) { + if (numberOfBits == 0) { // awt.20C=Number of Bits equals to zero throw new RasterFormatException(Messages.getString("awt.20C")); //$NON-NLS-1$ } this.pixelBitStride = numberOfBits; this.dataElementSize = DataBuffer.getDataTypeSize(dataType); - if(dataElementSize % pixelBitStride != 0) { - // awt.20D=The number of bits per pixel is not a power of 2 or pixels span data element boundaries + if (dataElementSize % pixelBitStride != 0) { + // awt.20D=The number of bits per pixel is not a power of 2 or + // pixels span data element boundaries throw new RasterFormatException(Messages.getString("awt.20D")); //$NON-NLS-1$ } - if(dataBitOffset % numberOfBits != 0) { + if (dataBitOffset % numberOfBits != 0) { // awt.20E=Data Bit offset is not a multiple of pixel bit stride throw new RasterFormatException(Messages.getString("awt.20E")); //$NON-NLS-1$ } @@ -97,17 +118,20 @@ public class MultiPixelPackedSampleModel extends SampleModel { * Instantiates a new MultiPixelPackedSampleModel with the specified * parameters. * - * @param dataType the data type of the samples. - * @param w the width of the image data. - * @param h the height of the image data. - * @param numberOfBits the number of bits per pixel. + * @param dataType + * the data type of the samples. + * @param w + * the width of the image data. + * @param h + * the height of the image data. + * @param numberOfBits + * the number of bits per pixel. */ - public MultiPixelPackedSampleModel(int dataType, int w, int h, - int numberOfBits) { + public MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits) { - this(dataType, w, h, numberOfBits, (numberOfBits * w + - DataBuffer.getDataTypeSize(dataType) - 1) / - DataBuffer.getDataTypeSize(dataType), 0); + this(dataType, w, h, numberOfBits, + (numberOfBits * w + DataBuffer.getDataTypeSize(dataType) - 1) + / DataBuffer.getDataTypeSize(dataType), 0); } @Override @@ -117,36 +141,36 @@ public class MultiPixelPackedSampleModel extends SampleModel { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } switch (getTransferType()) { - case DataBuffer.TYPE_BYTE: - byte bdata[]; - if (obj == null) { - bdata = new byte[1]; - } else { - bdata = (byte[]) obj; - } - bdata[0] = (byte) getSample(x, y, 0, data); - obj = bdata; - break; - case DataBuffer.TYPE_USHORT: - short sdata[]; - if (obj == null) { - sdata = new short[1]; - } else { - sdata = (short[]) obj; - } - sdata[0] = (short) getSample(x, y, 0, data); - obj = sdata; - break; - case DataBuffer.TYPE_INT: - int idata[]; - if (obj == null) { - idata = new int[1]; - } else { - idata = (int[]) obj; - } - idata[0] = getSample(x, y, 0, data); - obj = idata; - break; + case DataBuffer.TYPE_BYTE: + byte bdata[]; + if (obj == null) { + bdata = new byte[1]; + } else { + bdata = (byte[])obj; + } + bdata[0] = (byte)getSample(x, y, 0, data); + obj = bdata; + break; + case DataBuffer.TYPE_USHORT: + short sdata[]; + if (obj == null) { + sdata = new short[1]; + } else { + sdata = (short[])obj; + } + sdata[0] = (short)getSample(x, y, 0, data); + obj = sdata; + break; + case DataBuffer.TYPE_INT: + int idata[]; + if (obj == null) { + idata = new int[1]; + } else { + idata = (int[])obj; + } + idata[0] = getSample(x, y, 0, data); + obj = idata; + break; } return obj; @@ -158,14 +182,14 @@ public class MultiPixelPackedSampleModel extends SampleModel { } /** - * Compares this MultiPixelPackedSampleModel object with - * the specified object. - * - * @param o the Object to be compared. + * Compares this MultiPixelPackedSampleModel object with the specified + * object. * - * @return true, if the object is a MultiPixelPackedSampleModel - * with the same data parameter values as this MultiPixelPackedSampleModel, - * false otherwise. + * @param o + * the Object to be compared. + * @return true, if the object is a MultiPixelPackedSampleModel with the + * same data parameter values as this MultiPixelPackedSampleModel, + * false otherwise. */ @Override public boolean equals(Object o) { @@ -173,17 +197,14 @@ public class MultiPixelPackedSampleModel extends SampleModel { return false; } - MultiPixelPackedSampleModel model = (MultiPixelPackedSampleModel) o; - return this.width == model.width && - this.height == model.height && - this.numBands == model.numBands && - this.dataType == model.dataType && - this.pixelBitStride == model.pixelBitStride && - this.bitMask == model.bitMask && - this.pixelsPerDataElement == model.pixelsPerDataElement && - this.dataElementSize == model.dataElementSize && - this.dataBitOffset == model.dataBitOffset && - this.scanlineStride == model.scanlineStride; + MultiPixelPackedSampleModel model = (MultiPixelPackedSampleModel)o; + return this.width == model.width && this.height == model.height + && this.numBands == model.numBands && this.dataType == model.dataType + && this.pixelBitStride == model.pixelBitStride && this.bitMask == model.bitMask + && this.pixelsPerDataElement == model.pixelsPerDataElement + && this.dataElementSize == model.dataElementSize + && this.dataBitOffset == model.dataBitOffset + && this.scanlineStride == model.scanlineStride; } @Override @@ -231,8 +252,7 @@ public class MultiPixelPackedSampleModel extends SampleModel { int bitnum = dataBitOffset + x * pixelBitStride; int elem = data.getElem(y * scanlineStride + bitnum / dataElementSize); - int shift = dataElementSize - (bitnum & (dataElementSize - 1)) - - pixelBitStride; + int shift = dataElementSize - (bitnum & (dataElementSize - 1)) - pixelBitStride; return (elem >> shift) & bitMask; } @@ -253,15 +273,15 @@ public class MultiPixelPackedSampleModel extends SampleModel { int size = scanlineStride * height; switch (dataType) { - case DataBuffer.TYPE_BYTE: - dataBuffer = new DataBufferByte(size + (dataBitOffset + 7) / 8); - break; - case DataBuffer.TYPE_USHORT: - dataBuffer = new DataBufferUShort(size + (dataBitOffset + 15) / 16); - break; - case DataBuffer.TYPE_INT: - dataBuffer = new DataBufferInt(size + (dataBitOffset + 31) / 32); - break; + case DataBuffer.TYPE_BYTE: + dataBuffer = new DataBufferByte(size + (dataBitOffset + 7) / 8); + break; + case DataBuffer.TYPE_USHORT: + dataBuffer = new DataBufferUShort(size + (dataBitOffset + 15) / 16); + break; + case DataBuffer.TYPE_INT: + dataBuffer = new DataBufferInt(size + (dataBitOffset + 31) / 32); + break; } return dataBuffer; } @@ -269,14 +289,14 @@ public class MultiPixelPackedSampleModel extends SampleModel { /** * Gets the offset of the specified pixel in the data array. * - * @param x the X coordinate of the specified pixel. - * @param y the Y coordinate of the specified pixel. - * + * @param x + * the X coordinate of the specified pixel. + * @param y + * the Y coordinate of the specified pixel. * @return the offset of the specified pixel. */ public int getOffset(int x, int y) { - return y * scanlineStride + (x * pixelBitStride + dataBitOffset) / - dataElementSize; + return y * scanlineStride + (x * pixelBitStride + dataBitOffset) / dataElementSize; } @Override @@ -285,11 +305,11 @@ public class MultiPixelPackedSampleModel extends SampleModel { } /** - * Gets the bit offset in the data element which - * is stored for the specified pixel of a scanline. - * - * @param x the pixel. + * Gets the bit offset in the data element which is stored for the specified + * pixel of a scanline. * + * @param x + * the pixel. * @return the bit offset of the pixel in the data element. */ public int getBitOffset(int x) { @@ -298,7 +318,9 @@ public class MultiPixelPackedSampleModel extends SampleModel { @Override public int[] getSampleSize() { - int sampleSizes[] = { pixelBitStride }; + int sampleSizes[] = { + pixelBitStride + }; return sampleSizes; } @@ -396,54 +418,58 @@ public class MultiPixelPackedSampleModel extends SampleModel { } /** - * This method is used by other methods of this class. The behaviour of - * this method depends on the method which has been invoke this one. The - * argument methodId is used to choose valid behaviour in a particular case. - * If methodId is equal to 1 it means that this method has been invoked by - * the setDataElements() method, 2 - means setPixel(), and setSample() in - * any other cases. + * This method is used by other methods of this class. The behavior of this + * method depends on the method which has been invoke this one. The argument + * methodId is used to choose valid behavior in a particular case. If + * methodId is equal to 1 it means that this method has been invoked by the + * setDataElements() method, 2 - means setPixel(), and setSample() in any + * other cases. * - * @param x the x - * @param y the y - * @param obj the obj - * @param data the data - * @param methodId the method id - * @param s the s + * @param x + * the x. + * @param y + * the y. + * @param obj + * the obj. + * @param data + * the data. + * @param methodId + * the method id. + * @param s + * the s. */ - private void setSample(final int x, final int y, final Object obj, - final DataBuffer data, final int methodId, int s) { + private void setSample(final int x, final int y, final Object obj, final DataBuffer data, + final int methodId, int s) { if ((x < 0) || (y < 0) || (x >= this.width) || (y >= this.height)) { // awt.63=Coordinates are not in bounds - throw new ArrayIndexOutOfBoundsException(Messages - .getString("awt.63")); //$NON-NLS-1$ + throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } final int bitnum = dataBitOffset + x * pixelBitStride; final int idx = y * scanlineStride + bitnum / dataElementSize; - final int shift = dataElementSize - (bitnum & (dataElementSize - 1)) - - pixelBitStride; + final int shift = dataElementSize - (bitnum & (dataElementSize - 1)) - pixelBitStride; final int mask = ~(bitMask << shift); int elem = data.getElem(idx); switch (methodId) { - case 1: { // Invoked from setDataElements() - switch (getTransferType()) { - case DataBuffer.TYPE_BYTE: - s = ((byte[]) obj)[0] & 0xff; - break; - case DataBuffer.TYPE_USHORT: - s = ((short[]) obj)[0] & 0xffff; + case 1: { // Invoked from setDataElements() + switch (getTransferType()) { + case DataBuffer.TYPE_BYTE: + s = ((byte[])obj)[0] & 0xff; + break; + case DataBuffer.TYPE_USHORT: + s = ((short[])obj)[0] & 0xffff; + break; + case DataBuffer.TYPE_INT: + s = ((int[])obj)[0]; + break; + } break; - case DataBuffer.TYPE_INT: - s = ((int[]) obj)[0]; + } + case 2: { // Invoked from setPixel() + s = ((int[])obj)[0]; break; } - break; - } - case 2: { // Invoked from setPixel() - s = ((int[]) obj)[0]; - break; - } } elem &= mask; @@ -451,4 +477,3 @@ public class MultiPixelPackedSampleModel extends SampleModel { data.setElem(idx, elem); } } - diff --git a/awt/java/awt/image/PackedColorModel.java b/awt/java/awt/image/PackedColorModel.java index 7aaefbf..4d1c2e5 100644 --- a/awt/java/awt/image/PackedColorModel.java +++ b/awt/java/awt/image/PackedColorModel.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.awt.Transparency; @@ -27,44 +28,57 @@ import java.util.Arrays; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Class PackedColorModel represents a color model where the - * components are just the red, green, and blue bands, plus an alpha - * band if alpha is supported. + * The class PackedColorModel represents a color model where the components are + * just the red, green, and blue bands, plus an alpha band if alpha is + * supported. + * + * @since Android 1.0 */ public abstract class PackedColorModel extends ColorModel { - /** The component masks. */ + /** + * The component masks. + */ int componentMasks[]; - /** The offsets. */ + /** + * The offsets. + */ int offsets[]; - /** The scales. */ + /** + * The scales. + */ float scales[]; /** * Instantiates a new packed color model. * - * @param space the color space - * @param bits the array of component masks - * @param colorMaskArray the array that gives the bitmask corresponding - * to each color band (red, green, and blue) - * @param alphaMask the bitmask corresponding to the alpha band - * @param isAlphaPremultiplied whether the alpha is premultiplied in this color model - * @param trans the transparency strategy, @see java.awt.Transparency - * @param transferType the transfer type (primitive java type - * to use for the components) - * - * @throws IllegalArgumentException if the number of bits in the combined - * bitmasks for the color bands is less than one or greater than 32 + * @param space + * the color space. + * @param bits + * the array of component masks. + * @param colorMaskArray + * the array that gives the bitmask corresponding to each color + * band (red, green, and blue). + * @param alphaMask + * the bitmask corresponding to the alpha band. + * @param isAlphaPremultiplied + * whether the alpha is pre-multiplied in this color model. + * @param trans + * the transparency strategy, @see java.awt.Transparency. + * @param transferType + * the transfer type (primitive java type to use for the + * components). + * @throws IllegalArgumentException + * if the number of bits in the combined bitmasks for the color + * bands is less than one or greater than 32. */ - public PackedColorModel(ColorSpace space, int bits, int colorMaskArray[], - int alphaMask, boolean isAlphaPremultiplied, int trans, - int transferType) { + public PackedColorModel(ColorSpace space, int bits, int colorMaskArray[], int alphaMask, + boolean isAlphaPremultiplied, int trans, int transferType) { - super(bits, createBits(colorMaskArray, alphaMask), space, - (alphaMask == 0 ? false : true), isAlphaPremultiplied, trans, - validateTransferType(transferType)); + super(bits, createBits(colorMaskArray, alphaMask), space, (alphaMask == 0 ? false : true), + isAlphaPremultiplied, trans, validateTransferType(transferType)); if (pixel_bits < 1 || pixel_bits > 32) { // awt.236=The bits is less than 1 or greater than 32 @@ -89,27 +103,34 @@ public abstract class PackedColorModel extends ColorModel { /** * Instantiates a new packed color model. * - * @param space the color space - * @param bits the array of component masks - * @param rmask the bitmask corresponding to the red band - * @param gmask the bitmask corresponding to the green band - * @param bmask the bitmask corresponding to the blue band - * @param amask the bitmask corresponding to the alpha band - * @param isAlphaPremultiplied whether the alpha is premultiplied in this color model - * @param trans the transparency strategy, @see java.awt.Transparency - * @param transferType the transfer type (primitive java type - * to use for the components) - * - * @throws IllegalArgumentException if the number of bits in the combined - * bitmasks for the color bands is less than one or greater than 32 + * @param space + * the color space. + * @param bits + * the array of component masks. + * @param rmask + * the bitmask corresponding to the red band. + * @param gmask + * the bitmask corresponding to the green band. + * @param bmask + * the bitmask corresponding to the blue band. + * @param amask + * the bitmask corresponding to the alpha band. + * @param isAlphaPremultiplied + * whether the alpha is pre-multiplied in this color model. + * @param trans + * the transparency strategy, @see java.awt.Transparency. + * @param transferType + * the transfer type (primitive java type to use for the + * components). + * @throws IllegalArgumentException + * if the number of bits in the combined bitmasks for the color + * bands is less than one or greater than 32. */ - public PackedColorModel(ColorSpace space, int bits, int rmask, int gmask, - int bmask, int amask, boolean isAlphaPremultiplied, int trans, - int transferType) { + public PackedColorModel(ColorSpace space, int bits, int rmask, int gmask, int bmask, int amask, + boolean isAlphaPremultiplied, int trans, int transferType) { - super(bits, createBits(rmask, gmask, bmask, amask), space, - (amask == 0 ? false : true), isAlphaPremultiplied, trans, - validateTransferType(transferType)); + super(bits, createBits(rmask, gmask, bmask, amask), space, (amask == 0 ? false : true), + isAlphaPremultiplied, trans, validateTransferType(transferType)); if (pixel_bits < 1 || pixel_bits > 32) { // awt.236=The bits is less than 1 or greater than 32 @@ -123,7 +144,8 @@ public abstract class PackedColorModel extends ColorModel { for (int i = 0; i < numColorComponents; i++) { if (cs.getMinValue(i) != 0.0f || cs.getMaxValue(i) != 1.0f) { - // awt.23A=The min/max normalized component values are not 0.0/1.0 + // awt.23A=The min/max normalized component values are not + // 0.0/1.0 throw new IllegalArgumentException(Messages.getString("awt.23A")); //$NON-NLS-1$ } } @@ -144,7 +166,7 @@ public abstract class PackedColorModel extends ColorModel { @Override public WritableRaster getAlphaRaster(WritableRaster raster) { - if(!hasAlpha) { + if (!hasAlpha) { return null; } @@ -165,18 +187,16 @@ public abstract class PackedColorModel extends ColorModel { if (!(obj instanceof PackedColorModel)) { return false; } - PackedColorModel cm = (PackedColorModel) obj; - - return (pixel_bits == cm.getPixelSize() && - transferType == cm.getTransferType() && - cs.getType() == cm.getColorSpace().getType() && - hasAlpha == cm.hasAlpha() && - isAlphaPremultiplied == cm.isAlphaPremultiplied() && - transparency == cm.getTransparency() && - numColorComponents == cm.getNumColorComponents()&& - numComponents == cm.getNumComponents() && - Arrays.equals(bits, cm.getComponentSize()) && - Arrays.equals(componentMasks, cm.getMasks())); + PackedColorModel cm = (PackedColorModel)obj; + + return (pixel_bits == cm.getPixelSize() && transferType == cm.getTransferType() + && cs.getType() == cm.getColorSpace().getType() && hasAlpha == cm.hasAlpha() + && isAlphaPremultiplied == cm.isAlphaPremultiplied() + && transparency == cm.getTransparency() + && numColorComponents == cm.getNumColorComponents() + && numComponents == cm.getNumComponents() + && Arrays.equals(bits, cm.getComponentSize()) && Arrays.equals(componentMasks, cm + .getMasks())); } @Override @@ -187,25 +207,23 @@ public abstract class PackedColorModel extends ColorModel { if (!(sm instanceof SinglePixelPackedSampleModel)) { return false; } - SinglePixelPackedSampleModel esm = (SinglePixelPackedSampleModel) sm; + SinglePixelPackedSampleModel esm = (SinglePixelPackedSampleModel)sm; - return ((esm.getNumBands() == numComponents) && - (esm.getTransferType() == transferType) && - Arrays.equals(esm.getBitMasks(), componentMasks)); + return ((esm.getNumBands() == numComponents) && (esm.getTransferType() == transferType) && Arrays + .equals(esm.getBitMasks(), componentMasks)); } @Override public SampleModel createCompatibleSampleModel(int w, int h) { - return new SinglePixelPackedSampleModel(transferType, w, h, - componentMasks); + return new SinglePixelPackedSampleModel(transferType, w, h, componentMasks); } /** * Gets the bitmask corresponding to the specified color component. * - * @param index the index of the desired color - * - * @return the mask + * @param index + * the index of the desired color. + * @return the mask. */ public final int getMask(int index) { return componentMasks[index]; @@ -214,7 +232,7 @@ public abstract class PackedColorModel extends ColorModel { /** * Gets the bitmasks of the components. * - * @return the masks + * @return the masks. */ public final int[] getMasks() { return (componentMasks.clone()); @@ -223,10 +241,11 @@ public abstract class PackedColorModel extends ColorModel { /** * Creates the bits. * - * @param colorMaskArray the color mask array - * @param alphaMask the alpha mask - * - * @return the int[] + * @param colorMaskArray + * the color mask array. + * @param alphaMask + * the alpha mask. + * @return the int[]. */ private static int[] createBits(int colorMaskArray[], int alphaMask) { int bits[]; @@ -262,15 +281,17 @@ public abstract class PackedColorModel extends ColorModel { /** * Creates the bits. * - * @param rmask the rmask - * @param gmask the gmask - * @param bmask the bmask - * @param amask the amask - * - * @return the int[] + * @param rmask + * the rmask. + * @param gmask + * the gmask. + * @param bmask + * the bmask. + * @param amask + * the amask. + * @return the int[]. */ - private static int[] createBits(int rmask, int gmask, int bmask, - int amask) { + private static int[] createBits(int rmask, int gmask, int bmask, int amask) { int numComp; if (amask == 0) { @@ -312,9 +333,9 @@ public abstract class PackedColorModel extends ColorModel { /** * Count comp bits. * - * @param compMask the comp mask - * - * @return the int + * @param compMask + * the comp mask. + * @return the int. */ private static int countCompBits(int compMask) { int bits = 0; @@ -340,20 +361,19 @@ public abstract class PackedColorModel extends ColorModel { /** * Validate transfer type. * - * @param transferType the transfer type - * - * @return the int + * @param transferType + * the transfer type. + * @return the int. */ private static int validateTransferType(int transferType) { - if (transferType != DataBuffer.TYPE_BYTE && - transferType != DataBuffer.TYPE_USHORT && - transferType != DataBuffer.TYPE_INT) { + if (transferType != DataBuffer.TYPE_BYTE && transferType != DataBuffer.TYPE_USHORT + && transferType != DataBuffer.TYPE_INT) { // awt.240=The transferType not is one of DataBuffer.TYPE_BYTE, - // DataBuffer.TYPE_USHORT or DataBuffer.TYPE_INT + // DataBuffer.TYPE_USHORT or DataBuffer.TYPE_INT throw new IllegalArgumentException(Messages.getString("awt.240")); //$NON-NLS-1$ } return transferType; -} + } /** * Parses the components. @@ -380,4 +400,3 @@ public abstract class PackedColorModel extends ColorModel { } } - diff --git a/awt/java/awt/image/PixelInterleavedSampleModel.java b/awt/java/awt/image/PixelInterleavedSampleModel.java index e41473e..8e646f8 100644 --- a/awt/java/awt/image/PixelInterleavedSampleModel.java +++ b/awt/java/awt/image/PixelInterleavedSampleModel.java @@ -18,30 +18,39 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import org.apache.harmony.awt.internal.nls.Messages; /** - * The PixelInterleavedSampleModel class represents image data - * as represented as interleaved pixels and for which each sample of - * a pixel takes one data element of the DataBuffer. + * The PixelInterleavedSampleModel class represents image data as represented as + * interleaved pixels and for which each sample of a pixel takes one data + * element of the DataBuffer. + * + * @since Android 1.0 */ public class PixelInterleavedSampleModel extends ComponentSampleModel { /** - * Instantiates a new PixelInterleavedSampleModel with the - * specified parameters. + * Instantiates a new PixelInterleavedSampleModel with the specified + * parameters. * - * @param dataType the data type of the samples. - * @param w the width of the image data. - * @param h the height of the image data. - * @param pixelStride the pixel stride of the image data. - * @param scanlineStride the scanline stride of the of the image data. - * @param bandOffsets the array of the band offsets. + * @param dataType + * the data type of the samples. + * @param w + * the width of the image data. + * @param h + * the height of the image data. + * @param pixelStride + * the pixel stride of the image data. + * @param scanlineStride + * the scanline stride of the of the image data. + * @param bandOffsets + * the array of the band offsets. */ - public PixelInterleavedSampleModel(int dataType, int w, int h, - int pixelStride, int scanlineStride, int bandOffsets[]) { + public PixelInterleavedSampleModel(int dataType, int w, int h, int pixelStride, + int scanlineStride, int bandOffsets[]) { super(dataType, w, h, pixelStride, scanlineStride, bandOffsets); @@ -59,7 +68,8 @@ public class PixelInterleavedSampleModel extends ComponentSampleModel { maxOffset -= minOffset; if (maxOffset > scanlineStride) { - // awt.241=Any offset between bands is greater than the Scanline stride + // awt.241=Any offset between bands is greater than the Scanline + // stride throw new IllegalArgumentException(Messages.getString("awt.241")); //$NON-NLS-1$ } @@ -69,7 +79,8 @@ public class PixelInterleavedSampleModel extends ComponentSampleModel { } if (pixelStride * w > scanlineStride) { - // awt.243=Product of Pixel stride and w is greater than Scanline stride + // awt.243=Product of Pixel stride and w is greater than Scanline + // stride throw new IllegalArgumentException(Messages.getString("awt.243")); //$NON-NLS-1$ } @@ -82,8 +93,8 @@ public class PixelInterleavedSampleModel extends ComponentSampleModel { newOffsets[i] = bandOffsets[bands[i]]; } - return new PixelInterleavedSampleModel(dataType, width, height, - pixelStride, scanlineStride, newOffsets); + return new PixelInterleavedSampleModel(dataType, width, height, pixelStride, + scanlineStride, newOffsets); } @Override @@ -106,8 +117,8 @@ public class PixelInterleavedSampleModel extends ComponentSampleModel { newOffsets = bandOffsets; } - return new PixelInterleavedSampleModel(dataType, w, h, pixelStride, - pixelStride * w, newOffsets); + return new PixelInterleavedSampleModel(dataType, w, h, pixelStride, pixelStride * w, + newOffsets); } @Override @@ -121,4 +132,3 @@ public class PixelInterleavedSampleModel extends ComponentSampleModel { } } - diff --git a/awt/java/awt/image/RGBImageFilter.java b/awt/java/awt/image/RGBImageFilter.java index 9a76997..f5fe5d9 100644 --- a/awt/java/awt/image/RGBImageFilter.java +++ b/awt/java/awt/image/RGBImageFilter.java @@ -18,46 +18,48 @@ * @author Igor V. Stolyarov * @version $Revision$ */ -package java.awt.image; +package java.awt.image; /** - * The RGBImageFilter class represents a filter which modifies - * pixels of an image in the default RGB ColorModel. + * The RGBImageFilter class represents a filter which modifies pixels of an + * image in the default RGB ColorModel. + * + * @since Android 1.0 */ public abstract class RGBImageFilter extends ImageFilter { - /** - * The origmodel is the ColorModel to be replaced by newmodel - * when substituteColorModel is called. + /** + * The original model is the ColorModel to be replaced by the new model when + * substituteColorModel is called. */ protected ColorModel origmodel; - /** - * The newmodel is the ColorModel with which to replace origmodel - * when substituteColorModel is called. + /** + * The new model is the ColorModel with which to replace the original model + * when substituteColorModel is called. */ protected ColorModel newmodel; - /** - * The canFilterIndexColorModel indicates if it is - * acceptable to apply the color filtering of the filterRGB - * method to the color table entries of an IndexColorModel - * object. - * */ + /** + * The canFilterIndexColorModel indicates if it is acceptable to apply the + * color filtering of the filterRGB method to the color table entries of an + * IndexColorModel object. + */ protected boolean canFilterIndexColorModel; /** * Instantiates a new RGBImageFilter. */ - public RGBImageFilter() {} + public RGBImageFilter() { + } /** - * Filters an IndexColorModel object by calling filterRGB function for - * each entry of IndexColorModel. - * - * @param icm the IndexColorModel to be filtered. + * Filters an IndexColorModel object by calling filterRGB function for each + * entry of IndexColorModel. * + * @param icm + * the IndexColorModel to be filtered. * @return the IndexColorModel. */ public IndexColorModel filterIndexColorModel(IndexColorModel icm) { @@ -69,28 +71,30 @@ public abstract class RGBImageFilter extends ImageFilter { icm.getRGBs(colorMap); int trans = -1; boolean hasAlpha = false; - for(int i = 0; i < mapSize; i++){ + for (int i = 0; i < mapSize; i++) { filteredColorMap[i] = filterRGB(-1, -1, colorMap[i]); int alpha = filteredColorMap[i] >>> 24; - if(alpha != 0xff){ - if(!hasAlpha) { + if (alpha != 0xff) { + if (!hasAlpha) { hasAlpha = true; } - if(alpha == 0 && trans < 0) { + if (alpha == 0 && trans < 0) { trans = i; } } } - return new IndexColorModel(bits, mapSize, filteredColorMap, 0, - hasAlpha, trans, transferType); + return new IndexColorModel(bits, mapSize, filteredColorMap, 0, hasAlpha, trans, + transferType); } /** * Replaces the original color model and the new one. * - * @param oldcm the old ColorModel. - * @param newcm the new ColorModel. + * @param oldcm + * the old ColorModel. + * @param newcm + * the new ColorModel. */ public void substituteColorModel(ColorModel oldcm, ColorModel newcm) { origmodel = oldcm; @@ -99,29 +103,27 @@ public abstract class RGBImageFilter extends ImageFilter { @Override public void setColorModel(ColorModel model) { - if(model instanceof IndexColorModel && - canFilterIndexColorModel){ - IndexColorModel icm = (IndexColorModel) model; + if (model instanceof IndexColorModel && canFilterIndexColorModel) { + IndexColorModel icm = (IndexColorModel)model; ColorModel filteredModel = filterIndexColorModel(icm); substituteColorModel(model, filteredModel); consumer.setColorModel(filteredModel); - }else{ + } else { consumer.setColorModel(ColorModel.getRGBdefault()); } } @Override - public void setPixels(int x, int y, int w, int h, ColorModel model, - int[] pixels, int off, int scansize) { - - if(model == null || model == origmodel){ + public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, + int scansize) { + + if (model == null || model == origmodel) { consumer.setPixels(x, y, w, h, newmodel, pixels, off, scansize); - }else{ + } else { int rgbPixels[] = new int[w]; - for(int sy = y, pixelsOff = off; sy < y + h; - sy++, pixelsOff += scansize){ - - for(int sx = x, idx = 0; sx < x + w; sx++, idx++){ + for (int sy = y, pixelsOff = off; sy < y + h; sy++, pixelsOff += scansize) { + + for (int sx = x, idx = 0; sx < x + w; sx++, idx++) { rgbPixels[idx] = model.getRGB(pixels[pixelsOff + idx]); } filterRGBPixels(x, sy, w, 1, rgbPixels, 0, w); @@ -130,19 +132,17 @@ public abstract class RGBImageFilter extends ImageFilter { } @Override - public void setPixels(int x, int y, int w, int h, ColorModel model, - byte[] pixels, int off, int scansize) { - - if(model == null || model == origmodel){ + public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, + int scansize) { + + if (model == null || model == origmodel) { consumer.setPixels(x, y, w, h, newmodel, pixels, off, scansize); - }else{ + } else { int rgbPixels[] = new int[w]; - for(int sy = y, pixelsOff = off; sy < y + h; - sy++, pixelsOff += scansize){ - - for(int sx = x, idx = 0; sx < x + w; sx++, idx++){ - rgbPixels[idx] = - model.getRGB(pixels[pixelsOff + idx] & 0xff); + for (int sy = y, pixelsOff = off; sy < y + h; sy++, pixelsOff += scansize) { + + for (int sx = x, idx = 0; sx < x + w; sx++, idx++) { + rgbPixels[idx] = model.getRGB(pixels[pixelsOff + idx] & 0xff); } filterRGBPixels(x, sy, w, 1, rgbPixels, 0, w); } @@ -150,41 +150,46 @@ public abstract class RGBImageFilter extends ImageFilter { } /** - * Filters a region of pixels in the default RGB ColorModel - * by calling the filterRGB method for them. + * Filters a region of pixels in the default RGB ColorModel by calling the + * filterRGB method for them. * - * @param x the X coordinate of region. - * @param y the Y coordinate of region. - * @param w the width ofregion. - * @param h the height of region. - * @param pixels the pixels array. - * @param off the offset of array. - * @param scansize the distance between rows of pixels in the array. + * @param x + * the X coordinate of region. + * @param y + * the Y coordinate of region. + * @param w + * the width of region. + * @param h + * the height of region. + * @param pixels + * the pixels array. + * @param off + * the offset of array. + * @param scansize + * the distance between rows of pixels in the array. */ - public void filterRGBPixels(int x, int y, int w, int h, - int[] pixels, int off, int scansize) { - - for(int sy = y, lineOff = off; sy < y + h; sy++, lineOff += scansize){ - for(int sx = x, idx = 0; sx < x + w; sx++, idx++){ - pixels[lineOff + idx] = - filterRGB(sx, sy, pixels[lineOff + idx]); + public void filterRGBPixels(int x, int y, int w, int h, int[] pixels, int off, int scansize) { + + for (int sy = y, lineOff = off; sy < y + h; sy++, lineOff += scansize) { + for (int sx = x, idx = 0; sx < x + w; sx++, idx++) { + pixels[lineOff + idx] = filterRGB(sx, sy, pixels[lineOff + idx]); } } - consumer.setPixels(x, y, w, h, ColorModel.getRGBdefault(), - pixels, off, scansize); + consumer.setPixels(x, y, w, h, ColorModel.getRGBdefault(), pixels, off, scansize); } /** - * Coverts a single input pixel in the default RGB ColorModel - * to a single output pixel. - * - * @param x the X pixel's coordinate. - * @param y the Y pixel's coordinate. - * @param rgb a pixel in the default RGB color model. + * Converts a single input pixel in the default RGB ColorModel to a single + * output pixel. * + * @param x + * the X pixel's coordinate. + * @param y + * the Y pixel's coordinate. + * @param rgb + * a pixel in the default RGB color model. * @return a filtered pixel in the default RGB color model. */ public abstract int filterRGB(int x, int y, int rgb); } - diff --git a/awt/java/awt/image/Raster.java b/awt/java/awt/image/Raster.java index 4b2426e..6749fde 100644 --- a/awt/java/awt/image/Raster.java +++ b/awt/java/awt/image/Raster.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.awt.Point; @@ -27,70 +28,95 @@ import org.apache.harmony.awt.gl.image.OrdinaryWritableRaster; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Raster class represents a rectangular area of pixels. - * This class is defined by DataBuffer and SampleModel objects. - * The DataBuffer object stores sample values and DSampleModel defines - * the location of sample in this DataBuffer. + * The Raster class represents a rectangular area of pixels. This class is + * defined by DataBuffer and SampleModel objects. The DataBuffer object stores + * sample values and DSampleModel defines the location of sample in this + * DataBuffer. + * + * @since Android 1.0 */ public class Raster { - /** The DataBuffer of this Raster. */ + /** + * The DataBuffer of this Raster. + */ protected DataBuffer dataBuffer; - /** The height of this Raster. */ + /** + * The height of this Raster. + */ protected int height; - /** The X coordinate of the upper left pixel in this Raster. */ + /** + * The X coordinate of the upper left pixel in this Raster. + */ protected int minX; - /** The Y coordinate of the upper left pixel in this Raster. */ + /** + * The Y coordinate of the upper left pixel in this Raster. + */ protected int minY; - /** The number of bands in this Raster. */ + /** + * The number of bands in this Raster. + */ protected int numBands; - /** The number of data elements. */ + /** + * The number of data elements. + */ protected int numDataElements; - /** The parent of this Raster. */ + /** + * The parent of this Raster. + */ protected Raster parent; - /** The SampleModel of this Raster. */ + /** + * The SampleModel of this Raster. + */ protected SampleModel sampleModel; - /** - * The X translation from the coordinate space of the - * SampleModel of this Raster. + /** + * The X translation from the coordinate space of the SampleModel of this + * Raster. */ protected int sampleModelTranslateX; - /** - * The Y translation from the coordinate space of the - * SampleModel of this Raster. + /** + * The Y translation from the coordinate space of the SampleModel of this + * Raster. */ protected int sampleModelTranslateY; - /** The width of this Raster. */ + /** + * The width of this Raster. + */ protected int width; /** - * Creates a Raster object with a BandedSampleModel and the specified + * Creates a Raster object with a BandedSampleModel and the specified * DataBuffer. The number of bands is defined by the length of bandOffsets * or bankIndices arrays. * - * @param dataBuffer the specified DataBuffer. - * @param w the width of the image data. - * @param h the height of the image data. - * @param bankIndices the bank indices of bands. - * @param bandOffsets the band offsets of bands. - * @param location the location which defines the upper left corner - * of Raster. - * + * @param dataBuffer + * the specified DataBuffer. + * @param w + * the width of the image data. + * @param h + * the height of the image data. + * @param scanlineStride + * the scanline stride of the image data. + * @param bankIndices + * the bank indices of bands. + * @param bandOffsets + * the band offsets of bands. + * @param location + * the location which defines the upper left corner of Raster. * @return the WritableRaster object. */ - public static WritableRaster createBandedRaster(DataBuffer dataBuffer, - int w, int h, int scanlineStride, int bankIndices[], - int bandOffsets[], Point location) { + public static WritableRaster createBandedRaster(DataBuffer dataBuffer, int w, int h, + int scanlineStride, int bankIndices[], int bandOffsets[], Point location) { if (w <= 0 || h <= 0) { // awt.22E=w or h is less than or equal to zero @@ -101,9 +127,9 @@ public class Raster { location = new Point(0, 0); } - if ((long) location.x + w > Integer.MAX_VALUE - || (long) location.y + h > Integer.MAX_VALUE) { - // awt.276=location.x + w or location.y + h results in integer overflow + if ((long)location.x + w > Integer.MAX_VALUE || (long)location.y + h > Integer.MAX_VALUE) { + // awt.276=location.x + w or location.y + h results in integer + // overflow throw new RasterFormatException(Messages.getString("awt.276")); //$NON-NLS-1$ } @@ -119,39 +145,43 @@ public class Raster { int dataType = dataBuffer.getDataType(); - if (dataType != DataBuffer.TYPE_BYTE - && dataType != DataBuffer.TYPE_USHORT + if (dataType != DataBuffer.TYPE_BYTE && dataType != DataBuffer.TYPE_USHORT && dataType != DataBuffer.TYPE_INT) { // awt.230=dataType is not one of the supported data types throw new IllegalArgumentException(Messages.getString("awt.230")); //$NON-NLS-1$ } - BandedSampleModel sampleModel = new BandedSampleModel(dataType, w, h, - scanlineStride, bankIndices, bandOffsets); + BandedSampleModel sampleModel = new BandedSampleModel(dataType, w, h, scanlineStride, + bankIndices, bandOffsets); return new OrdinaryWritableRaster(sampleModel, dataBuffer, location); } /** - * Creates a Raster object with a BandedSampleModel and the specified - * data type. The Data type can be one of the following values: - * TYPE_BYTE, TYPE_USHORT, or TYPE_INT. - * - * @param dataType the data type of the samples: - * TYPE_BYTE, TYPE_USHORT, or TYPE_INT. - * @param w the width of the image data. - * @param h the height of the image data. - * @param scanlineStride the scanline stride of the image data. - * @param bankIndices the bank indices of bands. - * @param bandOffsets the band offsets of bands. - * @param location the location which defines the upper left corner - * of the Raster. - * + * Creates a Raster object with a BandedSampleModel and the specified data + * type. The Data type can be one of the following values: TYPE_BYTE, + * TYPE_USHORT, or TYPE_INT. + * + * @param dataType + * the data type of the samples: TYPE_BYTE, TYPE_USHORT, or + * TYPE_INT. + * @param w + * the width of the image data. + * @param h + * the height of the image data. + * @param scanlineStride + * the scanline stride of the image data. + * @param bankIndices + * the bank indices of bands. + * @param bandOffsets + * the band offsets of bands. + * @param location + * the location which defines the upper left corner of the + * Raster. * @return the WritableRaster object. */ - public static WritableRaster createBandedRaster(int dataType, int w, int h, - int scanlineStride, int bankIndices[], int bandOffsets[], - Point location) { + public static WritableRaster createBandedRaster(int dataType, int w, int h, int scanlineStride, + int bankIndices[], int bandOffsets[], Point location) { if (w <= 0 || h <= 0) { // awt.22E=w or h is less than or equal to zero @@ -162,9 +192,9 @@ public class Raster { location = new Point(0, 0); } - if ((long) location.x + w > Integer.MAX_VALUE - || (long) location.y + h > Integer.MAX_VALUE) { - // awt.276=location.x + w or location.y + h results in integer overflow + if ((long)location.x + w > Integer.MAX_VALUE || (long)location.y + h > Integer.MAX_VALUE) { + // awt.276=location.x + w or location.y + h results in integer + // overflow throw new RasterFormatException(Messages.getString("awt.276")); //$NON-NLS-1$ } @@ -173,8 +203,7 @@ public class Raster { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.277")); //$NON-NLS-1$ } - if (dataType != DataBuffer.TYPE_BYTE - && dataType != DataBuffer.TYPE_USHORT + if (dataType != DataBuffer.TYPE_BYTE && dataType != DataBuffer.TYPE_USHORT && dataType != DataBuffer.TYPE_INT) { // awt.230=dataType is not one of the supported data types throw new IllegalArgumentException(Messages.getString("awt.230")); //$NON-NLS-1$ @@ -198,37 +227,40 @@ public class Raster { DataBuffer data = null; switch (dataType) { - case DataBuffer.TYPE_BYTE: - data = new DataBufferByte(dataSize, numBanks); - break; - case DataBuffer.TYPE_USHORT: - data = new DataBufferUShort(dataSize, numBanks); - break; - case DataBuffer.TYPE_INT: - data = new DataBufferInt(dataSize, numBanks); - break; - } - return createBandedRaster(data, w, h, scanlineStride, bankIndices, - bandOffsets, location); + case DataBuffer.TYPE_BYTE: + data = new DataBufferByte(dataSize, numBanks); + break; + case DataBuffer.TYPE_USHORT: + data = new DataBufferUShort(dataSize, numBanks); + break; + case DataBuffer.TYPE_INT: + data = new DataBufferInt(dataSize, numBanks); + break; + } + return createBandedRaster(data, w, h, scanlineStride, bankIndices, bandOffsets, location); } /** - * Creates a Raster object with a BandedSampleModel and the specified - * data type. The Data type can be one of the following values: - * TYPE_BYTE, TYPE_USHORT, or TYPE_INT. - * - * @param dataType the data type of the samples: - * TYPE_BYTE, TYPE_USHORT, or TYPE_INT. - * @param w the width of the image data. - * @param h the height of the image data. - * @param bands the number of bands. - * @param location the location which defines the upper left corner - * of the Raster. - * + * Creates a Raster object with a BandedSampleModel and the specified data + * type. The Data type can be one of the following values: TYPE_BYTE, + * TYPE_USHORT, or TYPE_INT. + * + * @param dataType + * the data type of the samples: TYPE_BYTE, TYPE_USHORT, or + * TYPE_INT. + * @param w + * the width of the image data. + * @param h + * the height of the image data. + * @param bands + * the number of bands. + * @param location + * the location which defines the upper left corner of the + * Raster. * @return the WritableRaster object. */ - public static WritableRaster createBandedRaster(int dataType, int w, int h, - int bands, Point location) { + public static WritableRaster createBandedRaster(int dataType, int w, int h, int bands, + Point location) { if (w <= 0 || h <= 0) { // awt.22E=w or h is less than or equal to zero @@ -239,9 +271,9 @@ public class Raster { location = new Point(0, 0); } - if ((long) location.x + w > Integer.MAX_VALUE - || (long) location.y + h > Integer.MAX_VALUE) { - // awt.276=location.x + w or location.y + h results in integer overflow + if ((long)location.x + w > Integer.MAX_VALUE || (long)location.y + h > Integer.MAX_VALUE) { + // awt.276=location.x + w or location.y + h results in integer + // overflow throw new RasterFormatException(Messages.getString("awt.276")); //$NON-NLS-1$ } @@ -257,28 +289,32 @@ public class Raster { bandOffsets[i] = 0; bankIndices[i] = i; } - return createBandedRaster(dataType, w, h, w, bankIndices, bandOffsets, - location); + return createBandedRaster(dataType, w, h, w, bankIndices, bandOffsets, location); } /** - * Creates a Raster object with a PixelInterleavedSampleModel - * and the specified DataBuffer. - * - * @param dataBuffer the DataBuffer. - * @param w the width of image data. - * @param h the height of image data. - * @param scanlineStride the scanline stride of the image data. - * @param pixelStride the pixel stride of image data. - * @param bandOffsets the band offsets of bands. - * @param location the location which defines the upper left corner - * of the Raster. - * + * Creates a Raster object with a PixelInterleavedSampleModel and the + * specified DataBuffer. + * + * @param dataBuffer + * the DataBuffer. + * @param w + * the width of image data. + * @param h + * the height of image data. + * @param scanlineStride + * the scanline stride of the image data. + * @param pixelStride + * the pixel stride of image data. + * @param bandOffsets + * the band offsets of bands. + * @param location + * the location which defines the upper left corner of the + * Raster. * @return the WritableRaster object. */ - public static WritableRaster createInterleavedRaster(DataBuffer dataBuffer, - int w, int h, int scanlineStride, int pixelStride, - int bandOffsets[], Point location) { + public static WritableRaster createInterleavedRaster(DataBuffer dataBuffer, int w, int h, + int scanlineStride, int pixelStride, int bandOffsets[], Point location) { if (w <= 0 || h <= 0) { // awt.22E=w or h is less than or equal to zero @@ -289,9 +325,9 @@ public class Raster { location = new Point(0, 0); } - if ((long) location.x + w > Integer.MAX_VALUE - || (long) location.y + h > Integer.MAX_VALUE) { - // awt.276=location.x + w or location.y + h results in integer overflow + if ((long)location.x + w > Integer.MAX_VALUE || (long)location.y + h > Integer.MAX_VALUE) { + // awt.276=location.x + w or location.y + h results in integer + // overflow throw new RasterFormatException(Messages.getString("awt.276")); //$NON-NLS-1$ } @@ -301,8 +337,7 @@ public class Raster { } int dataType = dataBuffer.getDataType(); - if (dataType != DataBuffer.TYPE_BYTE - && dataType != DataBuffer.TYPE_USHORT) { + if (dataType != DataBuffer.TYPE_BYTE && dataType != DataBuffer.TYPE_USHORT) { // awt.230=dataType is not one of the supported data types throw new IllegalArgumentException(Messages.getString("awt.230")); //$NON-NLS-1$ } @@ -317,35 +352,38 @@ public class Raster { throw new NullPointerException(Messages.getString("awt.27B")); //$NON-NLS-1$ } - PixelInterleavedSampleModel sampleModel = - new PixelInterleavedSampleModel(dataType, w, h, - pixelStride, scanlineStride, bandOffsets); + PixelInterleavedSampleModel sampleModel = new PixelInterleavedSampleModel(dataType, w, h, + pixelStride, scanlineStride, bandOffsets); return new OrdinaryWritableRaster(sampleModel, dataBuffer, location); } /** - * Creates a Raster object with a PixelInterleavedSampleModel - * and the specified data type. The Data type can be one of the - * following values: - * TYPE_BYTE, TYPE_USHORT, or TYPE_INT. - * - * @param dataType the data type of the samples: - * TYPE_BYTE, TYPE_USHORT, or TYPE_INT. - * @param w the width of image data. - * @param h the height of image data. - * @param scanlineStride the scanline stride of the image data. - * @param pixelStride the pixel stride of image data. - * @param bandOffsets the band offsets of bands. - * @param location the location which defines the upper left corner - * of the Raster. - * + * Creates a Raster object with a PixelInterleavedSampleModel and the + * specified data type. The Data type can be one of the following values: + * TYPE_BYTE, TYPE_USHORT, or TYPE_INT. + * + * @param dataType + * the data type of the samples: TYPE_BYTE, TYPE_USHORT, or + * TYPE_INT. + * @param w + * the width of image data. + * @param h + * the height of image data. + * @param scanlineStride + * the scanline stride of the image data. + * @param pixelStride + * the pixel stride of image data. + * @param bandOffsets + * the band offsets of bands. + * @param location + * the location which defines the upper left corner of the + * Raster. * @return the WritableRaster object. */ - public static WritableRaster createInterleavedRaster(int dataType, int w, - int h, int scanlineStride, int pixelStride, int bandOffsets[], - Point location) { + public static WritableRaster createInterleavedRaster(int dataType, int w, int h, + int scanlineStride, int pixelStride, int bandOffsets[], Point location) { if (w <= 0 || h <= 0) { // awt.22E=w or h is less than or equal to zero @@ -356,14 +394,13 @@ public class Raster { location = new Point(0, 0); } - if ((long) location.x + w > Integer.MAX_VALUE - || (long) location.y + h > Integer.MAX_VALUE) { - // awt.276=location.x + w or location.y + h results in integer overflow + if ((long)location.x + w > Integer.MAX_VALUE || (long)location.y + h > Integer.MAX_VALUE) { + // awt.276=location.x + w or location.y + h results in integer + // overflow throw new RasterFormatException(Messages.getString("awt.276")); //$NON-NLS-1$ } - if (dataType != DataBuffer.TYPE_BYTE - && dataType != DataBuffer.TYPE_USHORT) { + if (dataType != DataBuffer.TYPE_BYTE && dataType != DataBuffer.TYPE_USHORT) { // awt.230=dataType is not one of the supported data types throw new IllegalArgumentException(Messages.getString("awt.230")); //$NON-NLS-1$ } @@ -383,36 +420,38 @@ public class Raster { DataBuffer data = null; switch (dataType) { - case DataBuffer.TYPE_BYTE: - data = new DataBufferByte(size); - break; - case DataBuffer.TYPE_USHORT: - data = new DataBufferUShort(size); - break; + case DataBuffer.TYPE_BYTE: + data = new DataBufferByte(size); + break; + case DataBuffer.TYPE_USHORT: + data = new DataBufferUShort(size); + break; } - return createInterleavedRaster(data, w, h, scanlineStride, pixelStride, - bandOffsets, location); + return createInterleavedRaster(data, w, h, scanlineStride, pixelStride, bandOffsets, + location); } /** - * Creates a Raster object with a PixelInterleavedSampleModel - * and the specified data type. The Data type can be one of the - * following values: - * TYPE_BYTE, TYPE_USHORT, or TYPE_INT. - * - * @param dataType the data type of samples: - * TYPE_BYTE, TYPE_USHORT, or TYPE_INT. - * @param w the width of image data. - * @param h the height of image data. - * @param bands the number of bands. - * @param location the location which defines the upper left corner - * of the Raster. - * + * Creates a Raster object with a PixelInterleavedSampleModel and the + * specified data type. The Data type can be one of the following values: + * TYPE_BYTE, TYPE_USHORT, or TYPE_INT. + * + * @param dataType + * the data type of samples: TYPE_BYTE, TYPE_USHORT, or TYPE_INT. + * @param w + * the width of image data. + * @param h + * the height of image data. + * @param bands + * the number of bands. + * @param location + * the location which defines the upper left corner of the + * Raster. * @return the WritableRaster. */ - public static WritableRaster createInterleavedRaster(int dataType, int w, - int h, int bands, Point location) { + public static WritableRaster createInterleavedRaster(int dataType, int w, int h, int bands, + Point location) { if (w <= 0 || h <= 0) { // awt.22E=w or h is less than or equal to zero @@ -423,14 +462,13 @@ public class Raster { location = new Point(0, 0); } - if ((long) location.x + w > Integer.MAX_VALUE - || (long) location.y + h > Integer.MAX_VALUE) { - // awt.276=location.x + w or location.y + h results in integer overflow + if ((long)location.x + w > Integer.MAX_VALUE || (long)location.y + h > Integer.MAX_VALUE) { + // awt.276=location.x + w or location.y + h results in integer + // overflow throw new RasterFormatException(Messages.getString("awt.276")); //$NON-NLS-1$ } - if (dataType != DataBuffer.TYPE_BYTE - && dataType != DataBuffer.TYPE_USHORT) { + if (dataType != DataBuffer.TYPE_BYTE && dataType != DataBuffer.TYPE_USHORT) { // awt.230=dataType is not one of the supported data types throw new IllegalArgumentException(Messages.getString("awt.230")); //$NON-NLS-1$ } @@ -440,26 +478,30 @@ public class Raster { bandOffsets[i] = i; } - return createInterleavedRaster(dataType, w, h, w * bands, bands, - bandOffsets, location); + return createInterleavedRaster(dataType, w, h, w * bands, bands, bandOffsets, location); } /** - * Creates a Raster object with a SinglePixelPackedSampleModel - * and the specified DataBuffer. - * - * @param dataBuffer the DataBuffer. - * @param w the width of the image data. - * @param h the height of the image data. - * @param scanlineStride the scanline stride of the image data. - * @param bandMasks the band masks. - * @param location the location which defines the upper left corner - * of the Raster. - * + * Creates a Raster object with a SinglePixelPackedSampleModel and the + * specified DataBuffer. + * + * @param dataBuffer + * the DataBuffer. + * @param w + * the width of the image data. + * @param h + * the height of the image data. + * @param scanlineStride + * the scanline stride of the image data. + * @param bandMasks + * the band masks. + * @param location + * the location which defines the upper left corner of the + * Raster. * @return the WritableRaster. */ - public static WritableRaster createPackedRaster(DataBuffer dataBuffer, - int w, int h, int scanlineStride, int bandMasks[], Point location) { + public static WritableRaster createPackedRaster(DataBuffer dataBuffer, int w, int h, + int scanlineStride, int bandMasks[], Point location) { if (dataBuffer == null) { // awt.278=dataBuffer is null throw new NullPointerException(Messages.getString("awt.278")); //$NON-NLS-1$ @@ -474,9 +516,9 @@ public class Raster { location = new Point(0, 0); } - if ((long) location.x + w > Integer.MAX_VALUE - || (long) location.y + h > Integer.MAX_VALUE) { - // awt.276=location.x + w or location.y + h results in integer overflow + if ((long)location.x + w > Integer.MAX_VALUE || (long)location.y + h > Integer.MAX_VALUE) { + // awt.276=location.x + w or location.y + h results in integer + // overflow throw new RasterFormatException(Messages.getString("awt.276")); //$NON-NLS-1$ } @@ -491,35 +533,37 @@ public class Raster { } int dataType = dataBuffer.getDataType(); - if (dataType != DataBuffer.TYPE_BYTE - && dataType != DataBuffer.TYPE_USHORT + if (dataType != DataBuffer.TYPE_BYTE && dataType != DataBuffer.TYPE_USHORT && dataType != DataBuffer.TYPE_INT) { // awt.230=dataType is not one of the supported data types throw new IllegalArgumentException(Messages.getString("awt.230")); //$NON-NLS-1$ } - SinglePixelPackedSampleModel sampleModel = - new SinglePixelPackedSampleModel(dataType, w, h, - scanlineStride, bandMasks); + SinglePixelPackedSampleModel sampleModel = new SinglePixelPackedSampleModel(dataType, w, h, + scanlineStride, bandMasks); return new OrdinaryWritableRaster(sampleModel, dataBuffer, location); } /** - * Creates a Raster object with a MultiPixelPackedSampleModel - * and the specified DataBuffer. - * - * @param dataBuffer the DataBuffer. - * @param w the width of the image data. - * @param h the height of the image data. - * @param bitsPerPixel the number of bits per pixel. - * @param location the location which defines the upper left corner - * of the Raster. - * + * Creates a Raster object with a MultiPixelPackedSampleModel and the + * specified DataBuffer. + * + * @param dataBuffer + * the DataBuffer. + * @param w + * the width of the image data. + * @param h + * the height of the image data. + * @param bitsPerPixel + * the number of bits per pixel. + * @param location + * the location which defines the upper left corner of the + * Raster. * @return the WritableRaster. */ - public static WritableRaster createPackedRaster(DataBuffer dataBuffer, - int w, int h, int bitsPerPixel, Point location) { + public static WritableRaster createPackedRaster(DataBuffer dataBuffer, int w, int h, + int bitsPerPixel, Point location) { if (w <= 0 || h <= 0) { // awt.22E=w or h is less than or equal to zero @@ -530,9 +574,9 @@ public class Raster { location = new Point(0, 0); } - if ((long) location.x + w > Integer.MAX_VALUE - || (long) location.y + h > Integer.MAX_VALUE) { - // awt.276=location.x + w or location.y + h results in integer overflow + if ((long)location.x + w > Integer.MAX_VALUE || (long)location.y + h > Integer.MAX_VALUE) { + // awt.276=location.x + w or location.y + h results in integer + // overflow throw new RasterFormatException(Messages.getString("awt.276")); //$NON-NLS-1$ } @@ -547,37 +591,40 @@ public class Raster { } int dataType = dataBuffer.getDataType(); - if (dataType != DataBuffer.TYPE_BYTE - && dataType != DataBuffer.TYPE_USHORT + if (dataType != DataBuffer.TYPE_BYTE && dataType != DataBuffer.TYPE_USHORT && dataType != DataBuffer.TYPE_INT) { // awt.230=dataType is not one of the supported data types throw new IllegalArgumentException(Messages.getString("awt.230")); //$NON-NLS-1$ } - MultiPixelPackedSampleModel sampleModel = - new MultiPixelPackedSampleModel(dataType, w, h, bitsPerPixel); + MultiPixelPackedSampleModel sampleModel = new MultiPixelPackedSampleModel(dataType, w, h, + bitsPerPixel); return new OrdinaryWritableRaster(sampleModel, dataBuffer, location); } /** - * Creates a Raster object with a MultiPixelPackedSampleModel - * and the specified DataBuffer. - * - * @param dataType the data type of samples: - * TYPE_BYTE, TYPE_USHORT, or TYPE_INT. - * @param w the width of the image data. - * @param h the height of the image data. - * @param bands the number of bands. - * @param bitsPerBand the number of bits per band. - * @param location the location which defines the upper left corner - * of the Raster. - * + * Creates a Raster object with a MultiPixelPackedSampleModel and the + * specified DataBuffer. + * + * @param dataType + * the data type of samples: TYPE_BYTE, TYPE_USHORT, or TYPE_INT. + * @param w + * the width of the image data. + * @param h + * the height of the image data. + * @param bands + * the number of bands. + * @param bitsPerBand + * the number of bits per band. + * @param location + * the location which defines the upper left corner of the + * Raster. * @return the WritableRaster. */ - public static WritableRaster createPackedRaster(int dataType, int w, int h, - int bands, int bitsPerBand, Point location) { + public static WritableRaster createPackedRaster(int dataType, int w, int h, int bands, + int bitsPerBand, Point location) { if (w <= 0 || h <= 0) { // awt.22E=w or h is less than or equal to zero @@ -588,9 +635,9 @@ public class Raster { location = new Point(0, 0); } - if ((long) location.x + w > Integer.MAX_VALUE - || (long) location.y + h > Integer.MAX_VALUE) { - // awt.276=location.x + w or location.y + h results in integer overflow + if ((long)location.x + w > Integer.MAX_VALUE || (long)location.y + h > Integer.MAX_VALUE) { + // awt.276=location.x + w or location.y + h results in integer + // overflow throw new RasterFormatException(Messages.getString("awt.276")); //$NON-NLS-1$ } @@ -599,15 +646,15 @@ public class Raster { throw new IllegalArgumentException(Messages.getString("awt.27D")); //$NON-NLS-1$ } - if (dataType != DataBuffer.TYPE_BYTE - && dataType != DataBuffer.TYPE_USHORT + if (dataType != DataBuffer.TYPE_BYTE && dataType != DataBuffer.TYPE_USHORT && dataType != DataBuffer.TYPE_INT) { // awt.230=dataType is not one of the supported data types throw new IllegalArgumentException(Messages.getString("awt.230")); //$NON-NLS-1$ } if (bitsPerBand * bands > DataBuffer.getDataTypeSize(dataType)) { - // awt.27E=The product of bitsPerBand and bands is greater than the number of bits held by dataType + // awt.27E=The product of bitsPerBand and bands is greater than the + // number of bits held by dataType throw new IllegalArgumentException(Messages.getString("awt.27E")); //$NON-NLS-1$ } @@ -623,43 +670,45 @@ public class Raster { return createPackedRaster(dataType, w, h, bandMasks, location); } DataBuffer data = null; - int size = ((bitsPerBand * w + - DataBuffer.getDataTypeSize(dataType) - 1) / - DataBuffer.getDataTypeSize(dataType)) * h; + int size = ((bitsPerBand * w + DataBuffer.getDataTypeSize(dataType) - 1) / DataBuffer + .getDataTypeSize(dataType)) + * h; switch (dataType) { - case DataBuffer.TYPE_BYTE: - data = new DataBufferByte(size); - break; - case DataBuffer.TYPE_USHORT: - data = new DataBufferUShort(size); - break; - case DataBuffer.TYPE_INT: - data = new DataBufferInt(size); - break; + case DataBuffer.TYPE_BYTE: + data = new DataBufferByte(size); + break; + case DataBuffer.TYPE_USHORT: + data = new DataBufferUShort(size); + break; + case DataBuffer.TYPE_INT: + data = new DataBufferInt(size); + break; } return createPackedRaster(data, w, h, bitsPerBand, location); } /** - * Creates a Raster object with a SinglePixelPackedSampleModel - * and the specified DataBuffer. - * - * @param dataType the data type of samples: - * TYPE_BYTE, TYPE_USHORT, or TYPE_INT. - * @param w the width of the image data. - * @param h the height of the image data. - * @param bandMasks the band masks. - * @param location the location which defines the upper left corner - * of the Raster. - * + * Creates a Raster object with a SinglePixelPackedSampleModel and the + * specified DataBuffer. + * + * @param dataType + * the data type of samples: TYPE_BYTE, TYPE_USHORT, or TYPE_INT. + * @param w + * the width of the image data. + * @param h + * the height of the image data. + * @param bandMasks + * the band masks. + * @param location + * the location which defines the upper left corner of the + * Raster. * @return the WritableRaster. */ - public static WritableRaster createPackedRaster(int dataType, int w, int h, - int bandMasks[], Point location) { - - if (dataType != DataBuffer.TYPE_BYTE - && dataType != DataBuffer.TYPE_USHORT + public static WritableRaster createPackedRaster(int dataType, int w, int h, int bandMasks[], + Point location) { + + if (dataType != DataBuffer.TYPE_BYTE && dataType != DataBuffer.TYPE_USHORT && dataType != DataBuffer.TYPE_INT) { // awt.230=dataType is not one of the supported data types throw new IllegalArgumentException(Messages.getString("awt.230")); //$NON-NLS-1$ @@ -674,9 +723,9 @@ public class Raster { location = new Point(0, 0); } - if ((long) location.x + w > Integer.MAX_VALUE - || (long) location.y + h > Integer.MAX_VALUE) { - // awt.276=location.x + w or location.y + h results in integer overflow + if ((long)location.x + w > Integer.MAX_VALUE || (long)location.y + h > Integer.MAX_VALUE) { + // awt.276=location.x + w or location.y + h results in integer + // overflow throw new RasterFormatException(Messages.getString("awt.276")); //$NON-NLS-1$ } @@ -688,15 +737,15 @@ public class Raster { DataBuffer data = null; switch (dataType) { - case DataBuffer.TYPE_BYTE: - data = new DataBufferByte(w * h); - break; - case DataBuffer.TYPE_USHORT: - data = new DataBufferUShort(w * h); - break; - case DataBuffer.TYPE_INT: - data = new DataBufferInt(w * h); - break; + case DataBuffer.TYPE_BYTE: + data = new DataBufferByte(w * h); + break; + case DataBuffer.TYPE_USHORT: + data = new DataBufferUShort(w * h); + break; + case DataBuffer.TYPE_INT: + data = new DataBufferInt(w * h); + break; } return createPackedRaster(data, w, h, w, bandMasks, location); @@ -705,15 +754,16 @@ public class Raster { /** * Creates a Raster object with the specified DataBuffer and SampleModel. * - * @param sm the specified SampleModel. - * @param db the specified DataBuffer. - * @param location the location which defines the upper left corner - * of the Raster. - * + * @param sm + * the specified SampleModel. + * @param db + * the specified DataBuffer. + * @param location + * the location which defines the upper left corner of the + * Raster. * @return the Raster. */ - public static Raster createRaster(SampleModel sm, DataBuffer db, - Point location) { + public static Raster createRaster(SampleModel sm, DataBuffer db, Point location) { if (sm == null || db == null) { // awt.27F=SampleModel or DataBuffer is null @@ -730,15 +780,16 @@ public class Raster { /** * Creates a WritableRaster with the specified SampleModel and DataBuffer. * - * @param sm the specified SampleModel. - * @param db the specified DataBuffer. - * @param location the location which defines the upper left corner - * of the Raster. - * + * @param sm + * the specified SampleModel. + * @param db + * the specified DataBuffer. + * @param location + * the location which defines the upper left corner of the + * Raster. * @return the WritableRaster. */ - public static WritableRaster createWritableRaster(SampleModel sm, - DataBuffer db, Point location) { + public static WritableRaster createWritableRaster(SampleModel sm, DataBuffer db, Point location) { if (sm == null || db == null) { // awt.27F=SampleModel or DataBuffer is null @@ -755,14 +806,14 @@ public class Raster { /** * Creates a WritableRaster with the specified SampleModel. * - * @param sm the specified SampleModel. - * @param location the location which defines the upper left corner - * of the Raster. - * + * @param sm + * the specified SampleModel. + * @param location + * the location which defines the upper left corner of the + * Raster. * @return the WritableRaster. */ - public static WritableRaster createWritableRaster(SampleModel sm, - Point location) { + public static WritableRaster createWritableRaster(SampleModel sm, Point location) { if (sm == null) { // awt.280=SampleModel is null @@ -780,34 +831,42 @@ public class Raster { * Instantiates a new Raster object with the specified SampleModel and * DataBuffer. * - * @param sampleModel the specified SampleModel. - * @param dataBuffer the specified DataBuffer. - * @param origin the specified origin. + * @param sampleModel + * the specified SampleModel. + * @param dataBuffer + * the specified DataBuffer. + * @param origin + * the specified origin. */ - protected Raster(SampleModel sampleModel, DataBuffer dataBuffer, - Point origin) { + protected Raster(SampleModel sampleModel, DataBuffer dataBuffer, Point origin) { - this(sampleModel, dataBuffer, new Rectangle(origin.x, origin.y, - sampleModel.getWidth(), sampleModel.getHeight()), origin, null); + this(sampleModel, dataBuffer, new Rectangle(origin.x, origin.y, sampleModel.getWidth(), + sampleModel.getHeight()), origin, null); } /** * Instantiates a new Raster object with the specified SampleModel, - * DataBuffer, rectangular region and parent Raster. - * - * @param sampleModel the specified SampleModel. - * @param dataBuffer the specified DataBuffer. - * @param aRegion the a rectangular region which defines the new image bounds. - * @param sampleModelTranslate this point defines the translation point - * from the SampleModel coordinates to the new Raster coordinates. - * @param parent the parent of this Raster. + * DataBuffer, rectangular region and parent Raster. + * + * @param sampleModel + * the specified SampleModel. + * @param dataBuffer + * the specified DataBuffer. + * @param aRegion + * the a rectangular region which defines the new image bounds. + * @param sampleModelTranslate + * this point defines the translation point from the SampleModel + * coordinates to the new Raster coordinates. + * @param parent + * the parent of this Raster. */ - protected Raster(SampleModel sampleModel, DataBuffer dataBuffer, - Rectangle aRegion, Point sampleModelTranslate, Raster parent) { + protected Raster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, + Point sampleModelTranslate, Raster parent) { if (sampleModel == null || dataBuffer == null || aRegion == null || sampleModelTranslate == null) { - // awt.281=sampleModel, dataBuffer, aRegion or sampleModelTranslate is null + // awt.281=sampleModel, dataBuffer, aRegion or sampleModelTranslate + // is null throw new NullPointerException(Messages.getString("awt.281")); //$NON-NLS-1$ } @@ -816,27 +875,25 @@ public class Raster { throw new RasterFormatException(Messages.getString("awt.282")); //$NON-NLS-1$ } - if ((long) aRegion.x + (long) aRegion.width > Integer.MAX_VALUE) { + if ((long)aRegion.x + (long)aRegion.width > Integer.MAX_VALUE) { // awt.283=Overflow X coordinate of Raster throw new RasterFormatException(Messages.getString("awt.283")); //$NON-NLS-1$ } - if ((long) aRegion.y + (long) aRegion.height > Integer.MAX_VALUE) { + if ((long)aRegion.y + (long)aRegion.height > Integer.MAX_VALUE) { // awt.284=Overflow Y coordinate of Raster throw new RasterFormatException(Messages.getString("awt.284")); //$NON-NLS-1$ } - + if (sampleModel instanceof ComponentSampleModel) { validateDataBuffer(dataBuffer, aRegion.width, aRegion.height, - ((ComponentSampleModel) sampleModel).getScanlineStride()); + ((ComponentSampleModel)sampleModel).getScanlineStride()); } else if (sampleModel instanceof MultiPixelPackedSampleModel) { validateDataBuffer(dataBuffer, aRegion.width, aRegion.height, - ((MultiPixelPackedSampleModel) sampleModel) - .getScanlineStride()); + ((MultiPixelPackedSampleModel)sampleModel).getScanlineStride()); } else if (sampleModel instanceof SinglePixelPackedSampleModel) { validateDataBuffer(dataBuffer, aRegion.width, aRegion.height, - ((SinglePixelPackedSampleModel) sampleModel) - .getScanlineStride()); + ((SinglePixelPackedSampleModel)sampleModel).getScanlineStride()); } this.sampleModel = sampleModel; @@ -856,36 +913,44 @@ public class Raster { /** * Instantiates a new Raster with the specified SampleModel. * - * @param sampleModel the specified SampleModel. - * @param origin the origin. + * @param sampleModel + * the specified SampleModel. + * @param origin + * the origin. */ protected Raster(SampleModel sampleModel, Point origin) { - this(sampleModel, sampleModel.createDataBuffer(), new Rectangle( - origin.x, origin.y, sampleModel.getWidth(), sampleModel - .getHeight()), origin, null); + this(sampleModel, sampleModel.createDataBuffer(), new Rectangle(origin.x, origin.y, + sampleModel.getWidth(), sampleModel.getHeight()), origin, null); } /** * Creates the child of this Raster by sharing the specified rectangular - * area in this Raste. The parentX, parentY, width - * and height parameters specify the rectangular area to be shared. - * - * @param parentX the X coordinate of the upper left corner of this Raster. - * @param parentY the Y coordinate of the upper left corner of this Raster. - * @param width the width of the child area. - * @param height the height of the child area. - * @param childMinX the X coordinate of child area mapped to the parentX - * coordinate. - * @param childMinY the Y coordinate of child area mapped to the parentY - * coordinate. - * @param bandList the array of band indicies. - * + * area in this raster. The parentX, parentY, width and height parameters + * specify the rectangular area to be shared. + * + * @param parentX + * the X coordinate of the upper left corner of this Raster. + * @param parentY + * the Y coordinate of the upper left corner of this Raster. + * @param width + * the width of the child area. + * @param height + * the height of the child area. + * @param childMinX + * the X coordinate of child area mapped to the parentX + * coordinate. + * @param childMinY + * the Y coordinate of child area mapped to the parentY + * coordinate. + * @param bandList + * the array of band indices. * @return the Raster. */ - public Raster createChild(int parentX, int parentY, int width, int height, - int childMinX, int childMinY, int bandList[]) { + public Raster createChild(int parentX, int parentY, int width, int height, int childMinX, + int childMinY, int bandList[]) { if (width <= 0 || height <= 0) { - // awt.285=Width or Height of child Raster is less than or equal to zero + // awt.285=Width or Height of child Raster is less than or equal to + // zero throw new RasterFormatException(Messages.getString("awt.285")); //$NON-NLS-1$ } @@ -899,22 +964,22 @@ public class Raster { throw new RasterFormatException(Messages.getString("awt.287")); //$NON-NLS-1$ } - if ((long) parentX + width > Integer.MAX_VALUE) { + if ((long)parentX + width > Integer.MAX_VALUE) { // awt.288=parentX + width results in integer overflow throw new RasterFormatException(Messages.getString("awt.288")); //$NON-NLS-1$ } - if ((long) parentY + height > Integer.MAX_VALUE) { + if ((long)parentY + height > Integer.MAX_VALUE) { // awt.289=parentY + height results in integer overflow throw new RasterFormatException(Messages.getString("awt.289")); //$NON-NLS-1$ } - if ((long) childMinX + width > Integer.MAX_VALUE) { + if ((long)childMinX + width > Integer.MAX_VALUE) { // awt.28A=childMinX + width results in integer overflow throw new RasterFormatException(Messages.getString("awt.28A")); //$NON-NLS-1$ } - if ((long) childMinY + height > Integer.MAX_VALUE) { + if ((long)childMinY + height > Integer.MAX_VALUE) { // awt.28B=childMinY + height results in integer overflow throw new RasterFormatException(Messages.getString("awt.28B")); //$NON-NLS-1$ } @@ -930,15 +995,14 @@ public class Raster { int childTranslateX = childMinX - parentX; int childTranslateY = childMinY - parentY; - return new Raster(childModel, dataBuffer, new Rectangle(childMinX, - childMinY, width, height), new Point(childTranslateX - + sampleModelTranslateX, childTranslateY - + sampleModelTranslateY), this); + return new Raster(childModel, dataBuffer, + new Rectangle(childMinX, childMinY, width, height), new Point(childTranslateX + + sampleModelTranslateX, childTranslateY + sampleModelTranslateY), this); } /** - * Create a compatible WritableRaster with the same parameters - * as this Raster. + * Create a compatible WritableRaster with the same parameters as this + * Raster. * * @return the WritableRaster. */ @@ -947,12 +1011,13 @@ public class Raster { } /** - * Create a compatible WritableRaster with the same parameters - * as this Raster and the specified size. - * - * @param w the width of the new WritableRaster. - * @param h the height of the new WritableRaster. + * Create a compatible WritableRaster with the same parameters as this + * Raster and the specified size. * + * @param w + * the width of the new WritableRaster. + * @param h + * the height of the new WritableRaster. * @return the WritableRaster. */ public WritableRaster createCompatibleWritableRaster(int w, int h) { @@ -967,18 +1032,20 @@ public class Raster { } /** - * Create a compatible WritableRaster with the same parameters - * as this Raster and the specified size and location. - * - * @param x the X coordinate of the new WritableRaster. - * @param y the Y coordinate of the new WritableRaster. - * @param w the width of the new WritableRaster. - * @param h the height of the new WritableRaster. - * + * Create a compatible WritableRaster with the same parameters as this + * Raster and the specified size and location. + * + * @param x + * the X coordinate of the new WritableRaster. + * @param y + * the Y coordinate of the new WritableRaster. + * @param w + * the width of the new WritableRaster. + * @param h + * the height of the new WritableRaster. * @return the WritableRaster. */ - public WritableRaster createCompatibleWritableRaster(int x, int y, int w, - int h) { + public WritableRaster createCompatibleWritableRaster(int x, int y, int w, int h) { WritableRaster raster = createCompatibleWritableRaster(w, h); @@ -986,12 +1053,12 @@ public class Raster { } /** - * Create a compatible WritableRaster with the same parameters - * as this Raster and the specified rectangle which determines - * new WritableRaster's location and size. - * - * @param rect the specified Rectangle. + * Create a compatible WritableRaster with the same parameters as this + * Raster and the specified rectangle which determines new WritableRaster's + * location and size. * + * @param rect + * the specified Rectangle. * @return the WritableRaster. */ public WritableRaster createCompatibleWritableRaster(Rectangle rect) { @@ -1000,23 +1067,21 @@ public class Raster { throw new NullPointerException(Messages.getString("awt.28C")); //$NON-NLS-1$ } - return createCompatibleWritableRaster(rect.x, rect.y, rect.width, - rect.height); + return createCompatibleWritableRaster(rect.x, rect.y, rect.width, rect.height); } /** - * Creates the translated child of this Raster. The New Raster - * object is a reference to the this Raster with a - * different location. - * - * @param childMinX the X coordinate of the new Raster. - * @param childMinY the Y coordinate of the new Raster. + * Creates the translated child of this Raster. The New Raster object is a + * reference to the this Raster with a different location. * + * @param childMinX + * the X coordinate of the new Raster. + * @param childMinY + * the Y coordinate of the new Raster. * @return the Raster. */ public Raster createTranslatedChild(int childMinX, int childMinY) { - return createChild(minX, minY, width, height, childMinX, childMinY, - null); + return createChild(minX, minY, width, height, childMinX, childMinY, null); } /** @@ -1038,41 +1103,46 @@ public class Raster { } /** - * Gets the data elements which represent the pixel data of the specified - * rectangle area as a primitive array. The following image data types - * are supported: DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, - * DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, - * or DataBuffer.TYPE_DOUBLE. - * - * @param x the X coordinate of the area of pixels. - * @param y the Y coordinate of the area of pixels. - * @param w the width of the area of pixels. - * @param h the height of the area of pixels. - * @param outData the resulting array. - * + * Gets the data elements which represent the pixel data of the specified + * rectangle area as a primitive array. The following image data types are + * supported: DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, + * DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, or + * DataBuffer.TYPE_DOUBLE. + * + * @param x + * the X coordinate of the area of pixels. + * @param y + * the Y coordinate of the area of pixels. + * @param w + * the width of the area of pixels. + * @param h + * the height of the area of pixels. + * @param outData + * the resulting array. * @return the data elements of the specified area of this Raster. */ public Object getDataElements(int x, int y, int w, int h, Object outData) { - return sampleModel.getDataElements(x - sampleModelTranslateX, y - - sampleModelTranslateY, w, h, outData, dataBuffer); + return sampleModel.getDataElements(x - sampleModelTranslateX, y - sampleModelTranslateY, w, + h, outData, dataBuffer); } /** - * Gets the data elements which represent the specified pixel of - * this Raster as a primitive array. The following image data types - * are supported: DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, - * DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, - * or DataBuffer.TYPE_DOUBLE. - * - * @param x the X coordinate of the pixel. - * @param y the Y coordinate of the pixel. - * @param outData the resulting data. - * + * Gets the data elements which represent the specified pixel of this Raster + * as a primitive array. The following image data types are supported: + * DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, + * DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, or DataBuffer.TYPE_DOUBLE. + * + * @param x + * the X coordinate of the pixel. + * @param y + * the Y coordinate of the pixel. + * @param outData + * the resulting data. * @return the data elements of the specified pixel of this Raster. */ public Object getDataElements(int x, int y, Object outData) { - return sampleModel.getDataElements(x - sampleModelTranslateX, y - - sampleModelTranslateY, outData, dataBuffer); + return sampleModel.getDataElements(x - sampleModelTranslateX, y - sampleModelTranslateY, + outData, dataBuffer); } /** @@ -1121,7 +1191,7 @@ public class Raster { } /** - * Gets the parent Raster for this Raster object. + * Gets the parent Raster for this Raster object. * * @return the parent Raster for this Raster object. */ @@ -1130,150 +1200,173 @@ public class Raster { } /** - * Gets a double array of samples for the specified pixel in this Raster. - * - * @param x the pixel's X coordinate. - * @param y the pixel's Y coordinate. - * @param dArray the double array where result array will be stored. - * - * @return the double array of samples for the specified pixel in - * this Raster. + * Gets a double array of samples for the specified pixel in this Raster. + * + * @param x + * the pixel's X coordinate. + * @param y + * the pixel's Y coordinate. + * @param dArray + * the double array where result array will be stored. + * @return the double array of samples for the specified pixel in this + * Raster. */ public double[] getPixel(int x, int y, double dArray[]) { - return sampleModel.getPixel(x - sampleModelTranslateX, y - - sampleModelTranslateY, dArray, dataBuffer); + return sampleModel.getPixel(x - sampleModelTranslateX, y - sampleModelTranslateY, dArray, + dataBuffer); } /** - * Gets a float array of samples for the specified pixel in this Raster. - * - * @param x the pixel's X coordinate. - * @param y the pixel's Y coordinate. - * @param fArray the float array where the result array will be stored. - * - * @return the float array of samples for the specified pixel in - * this Raster. + * Gets a float array of samples for the specified pixel in this Raster. + * + * @param x + * the pixel's X coordinate. + * @param y + * the pixel's Y coordinate. + * @param fArray + * the float array where the result array will be stored. + * @return the float array of samples for the specified pixel in this + * Raster. */ public float[] getPixel(int x, int y, float fArray[]) { - return sampleModel.getPixel(x - sampleModelTranslateX, y - - sampleModelTranslateY, fArray, dataBuffer); + return sampleModel.getPixel(x - sampleModelTranslateX, y - sampleModelTranslateY, fArray, + dataBuffer); } /** - * Gets an int array of samples for the specified pixel in this Raster. - * - * @param x the pixel's X coordinate. - * @param y the pixel's Y coordinate. - * @param iArray the int array where the result array will be stored. - * - * @return the int array of samples for the specified pixel in - * this Raster. + * Gets an integer array of samples for the specified pixel in this Raster. + * + * @param x + * the pixel's X coordinate. + * @param y + * the pixel's Y coordinate. + * @param iArray + * the integer array where the result array will be stored. + * @return the integer array of samples for the specified pixel in this + * Raster. */ public int[] getPixel(int x, int y, int iArray[]) { - return sampleModel.getPixel(x - sampleModelTranslateX, y - - sampleModelTranslateY, iArray, dataBuffer); + return sampleModel.getPixel(x - sampleModelTranslateX, y - sampleModelTranslateY, iArray, + dataBuffer); } /** - * Gets an double array of samples for the specified rectangular - * area of pixels in this Raster. - * - * @param x the X coordinate of the area of pixels. - * @param y the Y coordinate of the area of pixels. - * @param w the width of the area of pixels. - * @param h the height of the area of pixels. - * @param dArray the resulting array. - * - * @return the double array of samples for the specified rectangular - * area of pixels in this Raster. + * Gets an double array of samples for the specified rectangular area of + * pixels in this Raster. + * + * @param x + * the X coordinate of the area of pixels. + * @param y + * the Y coordinate of the area of pixels. + * @param w + * the width of the area of pixels. + * @param h + * the height of the area of pixels. + * @param dArray + * the resulting array. + * @return the double array of samples for the specified rectangular area of + * pixels in this Raster. */ public double[] getPixels(int x, int y, int w, int h, double dArray[]) { - return sampleModel.getPixels(x - sampleModelTranslateX, y - - sampleModelTranslateY, w, h, dArray, dataBuffer); + return sampleModel.getPixels(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, + dArray, dataBuffer); } /** - * Gets an float array of samples for the specified rectangular - * area of pixels in this Raster. - * - * @param x the X coordinate of the area of pixels. - * @param y the Y coordinate of the area of pixels. - * @param w the width of the area of pixels. - * @param h the height of the area of pixels. - * @param fArray the resulting array. - * - * @return the float array of samples for the specified rectangular - * area of pixels in this Raster. + * Gets an float array of samples for the specified rectangular area of + * pixels in this Raster. + * + * @param x + * the X coordinate of the area of pixels. + * @param y + * the Y coordinate of the area of pixels. + * @param w + * the width of the area of pixels. + * @param h + * the height of the area of pixels. + * @param fArray + * the resulting array. + * @return the float array of samples for the specified rectangular area of + * pixels in this Raster. */ public float[] getPixels(int x, int y, int w, int h, float fArray[]) { - return sampleModel.getPixels(x - sampleModelTranslateX, y - - sampleModelTranslateY, w, h, fArray, dataBuffer); + return sampleModel.getPixels(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, + fArray, dataBuffer); } /** - * Gets an int array of samples for the specified rectangular - * area of pixels in this Raster. - * - * @param x the X coordinate of the area of pixels. - * @param y the Y coordinate of the area of pixels. - * @param w the width of pixel's the area of pixels. - * @param h the height of pixel's the area of pixels. - * @param iArray the resulting array. - * - * @return the int array of samples for the specified rectangular - * area of pixels in this Raster. + * Gets an integer array of samples for the specified rectangular area of + * pixels in this raster. + * + * @param x + * the X coordinate of the area of pixels. + * @param y + * the Y coordinate of the area of pixels. + * @param w + * the width of pixel's the area of pixels. + * @param h + * the height of pixel's the area of pixels. + * @param iArray + * the resulting array. + * @return the integer array of samples for the specified rectangular area + * of pixels in this Raster. */ public int[] getPixels(int x, int y, int w, int h, int iArray[]) { - return sampleModel.getPixels(x - sampleModelTranslateX, y - - sampleModelTranslateY, w, h, iArray, dataBuffer); + return sampleModel.getPixels(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, + iArray, dataBuffer); } /** - * Gets the sample for the specified band of the specified - * pixel as an int. - * - * @param x the X coordinate of the pixel. - * @param y the Y coordinate of the pixel. - * @param b the band. - * - * @return the sample for the specified band of the specified - * pixel as an int. + * Gets the sample for the specified band of the specified pixel as an + * integer. + * + * @param x + * the X coordinate of the pixel. + * @param y + * the Y coordinate of the pixel. + * @param b + * the band. + * @return the sample for the specified band of the specified pixel as an + * integer. */ public int getSample(int x, int y, int b) { - return sampleModel.getSample(x - sampleModelTranslateX, y - - sampleModelTranslateY, b, dataBuffer); + return sampleModel.getSample(x - sampleModelTranslateX, y - sampleModelTranslateY, b, + dataBuffer); } /** - * Gets the sample for the specified band of the specified - * pixel as a double. - * - * @param x the X coordinate of the pixel. - * @param y the Y coordinate of the pixel. - * @param b the band. - * - * @return the sample for the specified band of the specified - * pixel as a double. + * Gets the sample for the specified band of the specified pixel as a + * double. + * + * @param x + * the X coordinate of the pixel. + * @param y + * the Y coordinate of the pixel. + * @param b + * the band. + * @return the sample for the specified band of the specified pixel as a + * double. */ public double getSampleDouble(int x, int y, int b) { - return sampleModel.getSampleDouble(x - sampleModelTranslateX, y - - sampleModelTranslateY, b, dataBuffer); + return sampleModel.getSampleDouble(x - sampleModelTranslateX, y - sampleModelTranslateY, b, + dataBuffer); } /** - * Gets the sample for the specified band of the specified - * pixel as a float. - * - * @param x the X coordinate of the pixel. - * @param y the Y coordinate of the pixel. - * @param b the band. - * - * @return the sample for the specified band of the specified - * pixel as a float. + * Gets the sample for the specified band of the specified pixel as a float. + * + * @param x + * the X coordinate of the pixel. + * @param y + * the Y coordinate of the pixel. + * @param b + * the band. + * @return the sample for the specified band of the specified pixel as a + * float. */ public float getSampleFloat(int x, int y, int b) { - return sampleModel.getSampleFloat(x - sampleModelTranslateX, y - - sampleModelTranslateY, b, dataBuffer); + return sampleModel.getSampleFloat(x - sampleModelTranslateX, y - sampleModelTranslateY, b, + dataBuffer); } /** @@ -1286,97 +1379,105 @@ public class Raster { } /** - * Gets the translation of the X coordinate from the SampleModel - * coordinate system to the Rasters's coordinate system. + * Gets the translation of the X coordinate from the SampleModel coordinate + * system to the Rasters's coordinate system. * - * @return the value of the translation of the X coordinate from - * the SampleModel coordinate system to the Rasters's - * coordinate system. + * @return the value of the translation of the X coordinate from the + * SampleModel coordinate system to the Rasters's coordinate system. */ public final int getSampleModelTranslateX() { return sampleModelTranslateX; } /** - * Gets the translation of the Y coordinate from the SampleModel - * coordinate system to the Rasters's coordinate system. + * Gets the translation of the Y coordinate from the SampleModel coordinate + * system to the Rasters's coordinate system. * - * @return the value of the translation of the Y coordinate from - * the SampleModel coordinate system to the Rasters's - * coordinate system. - + * @return the value of the translation of the Y coordinate from the + * SampleModel coordinate system to the Rasters's coordinate system. */ public final int getSampleModelTranslateY() { return sampleModelTranslateY; } /** - * Gets the double array of samples for the specified band - * of the specified rectangular area of pixels in this Raster - * as a double array. - * - * @param x the X coordinate of the rectangular area of pixels. - * @param y the Y coordinate of the rectangular area of pixels. - * @param w the width of the rectangular area of pixels. - * @param h the height of the rectangular area of pixels. - * @param b the band. - * @param dArray the resulting double array. - * - * @return the double array of samples for the specified band - * of the specified rectangular area of pixels. + * Gets the double array of samples for the specified band of the specified + * rectangular area of pixels in this Raster as a double array. + * + * @param x + * the X coordinate of the rectangular area of pixels. + * @param y + * the Y coordinate of the rectangular area of pixels. + * @param w + * the width of the rectangular area of pixels. + * @param h + * the height of the rectangular area of pixels. + * @param b + * the band. + * @param dArray + * the resulting double array. + * @return the double array of samples for the specified band of the + * specified rectangular area of pixels. */ - public double[] getSamples(int x, int y, int w, int h, int b, - double dArray[]) { + public double[] getSamples(int x, int y, int w, int h, int b, double dArray[]) { - return sampleModel.getSamples(x - sampleModelTranslateX, y - - sampleModelTranslateY, w, h, b, dArray, dataBuffer); + return sampleModel.getSamples(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, + b, dArray, dataBuffer); } /** - * Gets the float array of samples for the specified band - * of the specified rectangular area of pixels in this Raster - * as a float array. - * - * @param x the X coordinate of the rectangular area of pixels. - * @param y the Y coordinate of the rectangular area of pixels. - * @param w the width of the rectangular area of pixels. - * @param h the height of the rectangular area of pixels. - * @param b the band. - * @param fArray the resulting float array. - * - * @return the float array of samples for the specified band - * of the specified rectangular area of pixels. + * Gets the float array of samples for the specified band of the specified + * rectangular area of pixels in this Raster as a float array. + * + * @param x + * the X coordinate of the rectangular area of pixels. + * @param y + * the Y coordinate of the rectangular area of pixels. + * @param w + * the width of the rectangular area of pixels. + * @param h + * the height of the rectangular area of pixels. + * @param b + * the band. + * @param fArray + * the resulting float array. + * @return the float array of samples for the specified band of the + * specified rectangular area of pixels. */ public float[] getSamples(int x, int y, int w, int h, int b, float fArray[]) { - return sampleModel.getSamples(x - sampleModelTranslateX, y - - sampleModelTranslateY, w, h, b, fArray, dataBuffer); + return sampleModel.getSamples(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, + b, fArray, dataBuffer); } /** - * Gets the int array of samples for the specified band - * of the specified rectangular area of pixels in this Raster - * as a int array. - * - * @param x the X coordinate of the rectangular area of pixels. - * @param y the Y coordinate of the rectangular area of pixels. - * @param w the width of the rectangular area of pixels. - * @param h the height of the rectangular area of pixels. - * @param b the band. - * @param iArray the resulting int array. - * - * @return the int array of samples for the specified band - * of the specified rectangular area of pixels. + * Gets the integer array of samples for the specified band of the specified + * rectangular area of pixels in this Raster as a integer array. + * + * @param x + * the X coordinate of the rectangular area of pixels. + * @param y + * the Y coordinate of the rectangular area of pixels. + * @param w + * the width of the rectangular area of pixels. + * @param h + * the height of the rectangular area of pixels. + * @param b + * the band. + * @param iArray + * the resulting integer array. + * @return the integer array of samples for the specified band of the + * specified rectangular area of pixels. */ public int[] getSamples(int x, int y, int w, int h, int b, int iArray[]) { - return sampleModel.getSamples(x - sampleModelTranslateX, y - - sampleModelTranslateY, w, h, b, iArray, dataBuffer); + return sampleModel.getSamples(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, + b, iArray, dataBuffer); } /** * Gets the transfer type for pixels of this Raster. - * @see SampleModel#getTransferType() * + * @see SampleModel#getTransferType() * @return the transfer type for pixels of this Raster. */ public final int getTransferType() { @@ -1395,18 +1496,20 @@ public class Raster { /** * Validate data buffer. * - * @param dataBuffer the data buffer - * @param w the w - * @param h the h - * @param scanlineStride the scanline stride + * @param dataBuffer + * the data buffer. + * @param w + * the w. + * @param h + * the h. + * @param scanlineStride + * the scanline stride. */ - private static void validateDataBuffer(final DataBuffer dataBuffer, final int w, - final int h, final int scanlineStride) { + private static void validateDataBuffer(final DataBuffer dataBuffer, final int w, final int h, + final int scanlineStride) { if (dataBuffer.getSize() < (scanlineStride * (h - 1) + w - 1)) { // awt.298=dataBuffer is too small throw new RasterFormatException(Messages.getString("awt.298")); //$NON-NLS-1$ } } } - - diff --git a/awt/java/awt/image/RasterFormatException.java b/awt/java/awt/image/RasterFormatException.java index 8577dad..c667141 100644 --- a/awt/java/awt/image/RasterFormatException.java +++ b/awt/java/awt/image/RasterFormatException.java @@ -18,28 +18,31 @@ * @author Igor V. Stolyarov * @version $Revision$ */ -package java.awt.image; +package java.awt.image; /** - * The RasterFormatException class represents the exception - * that is thrown when there's an invalid layout - * in the Raster. + * The RasterFormatException class represents the exception that is thrown when + * there's an invalid layout in the Raster. + * + * @since Android 1.0 */ public class RasterFormatException extends RuntimeException { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = 96598996116164315L; /** - * Instantiates a new RasterFormatException with the - * specified detail message. + * Instantiates a new RasterFormatException with the specified detail + * message. * - * @param s the detail message. + * @param s + * the detail message. */ public RasterFormatException(String s) { super(s); } } - diff --git a/awt/java/awt/image/RasterOp.java b/awt/java/awt/image/RasterOp.java index e8933ee..19a84c9 100644 --- a/awt/java/awt/image/RasterOp.java +++ b/awt/java/awt/image/RasterOp.java @@ -18,6 +18,7 @@ * @author Alexey A. Petrenko * @version $Revision$ */ + package java.awt.image; import java.awt.RenderingHints; @@ -25,20 +26,22 @@ import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; /** - * The RasterOp interface provides methods for performing transformations - * from source data to destination data for Raster objects. The source and - * destination objects should contain the appropriate number of bands for - * the particular classes which implement this interface. + * The RasterOp interface provides methods for performing transformations from + * source data to destination data for Raster objects. The source and + * destination objects should contain the appropriate number of bands for the + * particular classes which implement this interface. + * + * @since Android 1.0 */ public interface RasterOp { - + /** - * Creates a destination WritableRaster with the specified Raster; - * this destination image data is empty and has the correct size - * and number of bands. - * - * @param src the source Raster. + * Creates a destination WritableRaster with the specified Raster; this + * destination image data is empty and has the correct size and number of + * bands. * + * @param src + * the source Raster. * @return the WritableRaster. */ public WritableRaster createCompatibleDestRaster(Raster src); @@ -47,9 +50,10 @@ public interface RasterOp { * Performs a filter operation on the source Raster and stores the resulting * image data to the destination WritableRaster. * - * @param src the source Raster. - * @param dst the destination WritableRaster, where the result is stored. - * + * @param src + * the source Raster. + * @param dst + * the destination WritableRaster, where the result is stored. * @return the filtered WritableRaster. */ public WritableRaster filter(Raster src, WritableRaster dst); @@ -57,19 +61,20 @@ public interface RasterOp { /** * Gets the bounds of the filtered Raster. * - * @param src the source Raster to be filtered. - * + * @param src + * the source Raster to be filtered. * @return the rectangle bounds of the filtered Raster. */ public Rectangle2D getBounds2D(Raster src); /** - * Gets the point of the destination image which corresponds - * to the specified point in the source raster. - * - * @param srcPoint the point of the source raster. - * @param dstPoint the point where the result will be stored. + * Gets the point of the destination image which corresponds to the + * specified point in the source raster. * + * @param srcPoint + * the point of the source raster. + * @param dstPoint + * the point where the result will be stored. * @return the destination point. */ public Point2D getPoint2D(Point2D srcPoint, Point2D dstPoint); diff --git a/awt/java/awt/image/RenderedImage.java b/awt/java/awt/image/RenderedImage.java index db3a4c8..5eafa64 100644 --- a/awt/java/awt/image/RenderedImage.java +++ b/awt/java/awt/image/RenderedImage.java @@ -18,35 +18,37 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.awt.Rectangle; import java.util.Vector; /** - * The RenderedImage interface should be implemented by all objects which - * contains image data. The image data is represented as a single tile or - * an array of tiles. + * The RenderedImage interface should be implemented by all objects which + * contains image data. The image data is represented as a single tile or an + * array of tiles. + * + * @since Android 1.0 */ public interface RenderedImage { /** - * Gets the property with the specified name from the property set - * of this RenderedImage. - * - * @param name the property's name. + * Gets the property with the specified name from the property set of this + * RenderedImage. * + * @param name + * the property's name. * @return the property value corresponded to this property's name. */ public Object getProperty(String name); /** - * Copies the region of this RenderedImage to the specified - * WritableRaster. The bounds of the region are the bounds of the - * WritableRaster. - * - * @param raster the WritableRaster. + * Copies the region of this RenderedImage to the specified WritableRaster. + * The bounds of the region are the bounds of the WritableRaster. * + * @param raster + * the WritableRaster. * @return the created WritableRaster. */ public WritableRaster copyData(WritableRaster raster); @@ -54,19 +56,19 @@ public interface RenderedImage { /** * Gets the image data of the image's region as one tile. * - * @param rect the rectangular region of RenderedImage. - * + * @param rect + * the rectangular region of RenderedImage. * @return the image data of the image's region as one tile. */ public Raster getData(Rectangle rect); /** - * Gets all RenderedImage objects which are the source of this - * RenderedImage object. + * Gets all RenderedImage objects which are the source of this RenderedImage + * object. * - * @return a Vector of RenderedImage objects which are the source - * of this RenderedImage object or null, if there is no information - * about them. + * @return a Vector of RenderedImage objects which are the source of this + * RenderedImage object or null, if there is no information about + * them. */ public Vector<RenderedImage> getSources(); @@ -85,14 +87,13 @@ public interface RenderedImage { public SampleModel getSampleModel(); /** - * Gets the tile corresponded to the specified indices in the tile - * array. - * - * @param tileX the X index of the tile. - * @param tileY the Y index of the tile. + * Gets the tile corresponded to the specified indices in the tile array. * - * @return the tile corresponded to the specified indices in the tile - * array. + * @param tileX + * the X index of the tile. + * @param tileY + * the Y index of the tile. + * @return the tile corresponded to the specified indices in the tile array. */ public Raster getTile(int tileX, int tileY); @@ -195,4 +196,3 @@ public interface RenderedImage { public int getHeight(); } - diff --git a/awt/java/awt/image/ReplicateScaleFilter.java b/awt/java/awt/image/ReplicateScaleFilter.java index 9298125..51c0f49 100644 --- a/awt/java/awt/image/ReplicateScaleFilter.java +++ b/awt/java/awt/image/ReplicateScaleFilter.java @@ -18,53 +18,69 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.util.Hashtable; import org.apache.harmony.awt.internal.nls.Messages; - /** - * The ReplicateScaleFilter class scales an source image - * by replicating rows and columns of pixels to scale up or - * omitting rows and columns of pixels to scale down. + * The ReplicateScaleFilter class scales an source image by replicating rows and + * columns of pixels to scale up or omitting rows and columns of pixels to scale + * down. + * + * @since Android 1.0 */ public class ReplicateScaleFilter extends ImageFilter { - /** The width of a source image. */ + /** + * The width of a source image. + */ protected int srcWidth; - /** The height of a source image. */ + /** + * The height of a source image. + */ protected int srcHeight; - /** The width of a destination image. */ + /** + * The width of a destination image. + */ protected int destWidth; - /** The height of a destination image. */ + /** + * The height of a destination image. + */ protected int destHeight; - /** The int array of source rows. */ + /** + * The integer array of source rows. + */ protected int[] srcrows; - /** The int array of source columns. */ + /** + * The integer array of source columns. + */ protected int[] srccols; - /** - * An Object (byte array with a destination width) provides - * a row of pixel data to the ImageConsumer. + /** + * An Object (byte array with a destination width) provides a row of pixel + * data to the ImageConsumer. */ protected Object outpixbuf; /** - * Instantiates a new ReplicateScaleFilter that filters - * the image with the specified width and height. + * Instantiates a new ReplicateScaleFilter that filters the image with the + * specified width and height. * - * @param width the width of scaled image. - * @param height the height of scaled image. + * @param width + * the width of scaled image. + * @param height + * the height of scaled image. */ public ReplicateScaleFilter(int width, int height) { - if(width == 0 || height == 0) { + if (width == 0 || height == 0) { // awt.234=Width or Height equals zero throw new IllegalArgumentException(Messages.getString("awt.234")); //$NON-NLS-1$ } @@ -77,40 +93,40 @@ public class ReplicateScaleFilter extends ImageFilter { @Override public void setProperties(Hashtable<?, ?> props) { Hashtable<Object, Object> fprops; - if(props == null) { + if (props == null) { fprops = new Hashtable<Object, Object>(); } else { - fprops = (Hashtable<Object, Object>) props.clone(); + fprops = (Hashtable<Object, Object>)props.clone(); } String propName = "Rescale Filters"; //$NON-NLS-1$ - String prop = "destWidth=" + destWidth + "; " + //$NON-NLS-1$ //$NON-NLS-2$ - "destHeight=" + destHeight; //$NON-NLS-1$ + String prop = "destWidth=" + destWidth + "; " + //$NON-NLS-1$ //$NON-NLS-2$ + "destHeight=" + destHeight; //$NON-NLS-1$ Object o = fprops.get(propName); - if(o != null){ - if(o instanceof String){ + if (o != null) { + if (o instanceof String) { prop = (String)o + "; " + prop; //$NON-NLS-1$ - }else{ - prop = o.toString() + "; " + prop; //$NON-NLS-1$ + } else { + prop = o.toString() + "; " + prop; //$NON-NLS-1$ } } fprops.put(propName, prop); consumer.setProperties(fprops); - } + } // setPixels methods produce pixels according to Java API Spacification @Override - public void setPixels(int x, int y, int w, int h, - ColorModel model, int[] pixels, int off, int scansize) { - - if(srccols == null) { + public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, + int scansize) { + + if (srccols == null) { initArrays(); } int buff[]; - if(outpixbuf == null || !(outpixbuf instanceof int[])){ + if (outpixbuf == null || !(outpixbuf instanceof int[])) { buff = new int[destWidth]; outpixbuf = buff; - }else{ + } else { buff = (int[])outpixbuf; } @@ -121,32 +137,31 @@ public class ReplicateScaleFilter extends ImageFilter { int sx, sy, dx, dy; dy = dstY; - while((dy < destHeight) && ((sy = srcrows[dy]) < y + h)){ + while ((dy < destHeight) && ((sy = srcrows[dy]) < y + h)) { dx = dstX; int srcOff = off + (sy - y) * scansize; - while((dx < destWidth) && ((sx = srccols[dx]) < x + w)){ + while ((dx < destWidth) && ((sx = srccols[dx]) < x + w)) { buff[dx] = pixels[srcOff + (sx - x)]; dx++; } - consumer.setPixels(dstX, dy, dx - dstX, 1, model, buff, - dstX, destWidth); + consumer.setPixels(dstX, dy, dx - dstX, 1, model, buff, dstX, destWidth); dy++; } } @Override - public void setPixels(int x, int y, int w, int h, - ColorModel model, byte[] pixels, int off, int scansize) { - - if(srccols == null) { + public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, + int scansize) { + + if (srccols == null) { initArrays(); } byte buff[]; - if(outpixbuf == null || !(outpixbuf instanceof byte[])){ + if (outpixbuf == null || !(outpixbuf instanceof byte[])) { buff = new byte[destWidth]; outpixbuf = buff; - }else{ + } else { buff = (byte[])outpixbuf; } @@ -157,16 +172,15 @@ public class ReplicateScaleFilter extends ImageFilter { int sx, sy, dx, dy; dy = dstY; - while((dy < destHeight) && ((sy = srcrows[dy]) < y + h)){ + while ((dy < destHeight) && ((sy = srcrows[dy]) < y + h)) { dx = dstX; int srcOff = off + (sy - y) * scansize; - while((dx < destWidth) && ((sx = srccols[dx]) < x + w)){ + while ((dx < destWidth) && ((sx = srccols[dx]) < x + w)) { buff[dx] = pixels[srcOff + (sx - x)]; dx++; } - consumer.setPixels(dstX, dy, dx - dstX, 1, model, buff, - dstX, destWidth); + consumer.setPixels(dstX, dy, dx - dstX, 1, model, buff, dstX, destWidth); dy++; } } @@ -176,12 +190,12 @@ public class ReplicateScaleFilter extends ImageFilter { srcWidth = w; srcHeight = h; - if(destWidth < 0 && destHeight < 0){ + if (destWidth < 0 && destHeight < 0) { destWidth = srcWidth; destHeight = srcHeight; - }else if(destWidth < 0){ + } else if (destWidth < 0) { destWidth = destHeight * srcWidth / srcHeight; - }else if(destHeight < 0){ + } else if (destHeight < 0) { destHeight = destWidth * srcHeight / srcWidth; } consumer.setDimensions(destWidth, destHeight); @@ -190,24 +204,22 @@ public class ReplicateScaleFilter extends ImageFilter { /** * Initialization of srccols and srcrows arrays. */ - private void initArrays(){ + private void initArrays() { if ((destWidth < 0) || (destHeight < 0)) { throw new IndexOutOfBoundsException(); } - + srccols = new int[destWidth]; int ca = srcWidth >>> 1; - for(int i = 0; i < destWidth; i++){ + for (int i = 0; i < destWidth; i++) { srccols[i] = (i * srcWidth + ca) / destWidth; } srcrows = new int[destHeight]; int ra = srcHeight >>> 1; - for(int i = 0; i < destHeight; i++){ + for (int i = 0; i < destHeight; i++) { srcrows[i] = (i * srcHeight + ra) / destHeight; } } } - - diff --git a/awt/java/awt/image/RescaleOp.java b/awt/java/awt/image/RescaleOp.java index 0e96031..d7e2bd7 100644 --- a/awt/java/awt/image/RescaleOp.java +++ b/awt/java/awt/image/RescaleOp.java @@ -32,33 +32,43 @@ import org.apache.harmony.awt.gl.AwtImageBackdoorAccessor; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Class RescaleOp performs rescaling of the source image data - * by multiplying the pixel values with a scale factor - * and then adding an offset. + * The Class RescaleOp performs rescaling of the source image data by + * multiplying the pixel values with a scale factor and then adding an offset. + * + * @since Android 1.0 */ public class RescaleOp implements BufferedImageOp, RasterOp { - - /** The scale factors. */ + + /** + * The scale factors. + */ private float scaleFactors[]; - - /** The offsets. */ + + /** + * The offsets. + */ private float offsets[]; - - /** The hints. */ + + /** + * The hints. + */ private RenderingHints hints; static { // TODO - //System.loadLibrary("imageops"); + // System.loadLibrary("imageops"); } /** - * Instantiates a new RescaleOp object with the specified - * scale factors and offsets. + * Instantiates a new RescaleOp object with the specified scale factors and + * offsets. * - * @param scaleFactors the array of scale factor values. - * @param offsets the array of offset values. - * @param hints the RenderingHints or null. + * @param scaleFactors + * the array of scale factor values. + * @param offsets + * the array of offset values. + * @param hints + * the RenderingHints or null. */ public RescaleOp(float[] scaleFactors, float[] offsets, RenderingHints hints) { int numFactors = Math.min(scaleFactors.length, offsets.length); @@ -73,12 +83,15 @@ public class RescaleOp implements BufferedImageOp, RasterOp { } /** - * Instantiates a new RescaleOp object with the specified - * scale factor and offset. + * Instantiates a new RescaleOp object with the specified scale factor and + * offset. * - * @param scaleFactor the scale factor. - * @param offset the offset. - * @param hints the RenderingHints or null. + * @param scaleFactor + * the scale factor. + * @param offset + * the offset. + * @param hints + * the RenderingHints or null. */ public RescaleOp(float scaleFactor, float offset, RenderingHints hints) { scaleFactors = new float[1]; @@ -106,9 +119,8 @@ public class RescaleOp implements BufferedImageOp, RasterOp { /** * Gets the scale factors of this RescaleOp. * - * @param scaleFactors the desired scale factors array will be copied - * to this array. - * + * @param scaleFactors + * the desired scale factors array will be copied to this array. * @return the scale factors array. */ public final float[] getScaleFactors(float[] scaleFactors) { @@ -124,8 +136,8 @@ public class RescaleOp implements BufferedImageOp, RasterOp { /** * Gets the offsets array of this RescaleOp. * - * @param offsets the desired offsets array will be copied to this array. - * + * @param offsets + * the desired offsets array will be copied to this array. * @return the offsets array of this RescaleOp. */ public final float[] getOffsets(float[] offsets) { @@ -168,17 +180,11 @@ public class RescaleOp implements BufferedImageOp, RasterOp { dstCM = ColorModel.getRGBdefault(); } - WritableRaster r = - dstCM.isCompatibleSampleModel(src.getSampleModel()) ? - src.getRaster().createCompatibleWritableRaster(src.getWidth(), src.getHeight()) : - dstCM.createCompatibleWritableRaster(src.getWidth(), src.getHeight()); - - return new BufferedImage( - dstCM, - r, - dstCM.isAlphaPremultiplied(), - null - ); + WritableRaster r = dstCM.isCompatibleSampleModel(src.getSampleModel()) ? src.getRaster() + .createCompatibleWritableRaster(src.getWidth(), src.getHeight()) : dstCM + .createCompatibleWritableRaster(src.getWidth(), src.getHeight()); + + return new BufferedImage(dstCM, r, dstCM.isAlphaPremultiplied(), null); } public final WritableRaster filter(Raster src, WritableRaster dst) { @@ -186,26 +192,25 @@ public class RescaleOp implements BufferedImageOp, RasterOp { dst = createCompatibleDestRaster(src); } else { if (src.getNumBands() != dst.getNumBands()) { - // awt.21D=Number of src bands ({0}) does not match number of dst bands ({1}) + // awt.21D=Number of src bands ({0}) does not match number of + // dst bands ({1}) throw new IllegalArgumentException(Messages.getString("awt.21D", //$NON-NLS-1$ src.getNumBands(), dst.getNumBands())); } } - if ( - this.scaleFactors.length != 1 && - this.scaleFactors.length != src.getNumBands() - ) { - // awt.21E=Number of scaling constants is not equal to the number of bands + if (this.scaleFactors.length != 1 && this.scaleFactors.length != src.getNumBands()) { + // awt.21E=Number of scaling constants is not equal to the number of + // bands throw new IllegalArgumentException(Messages.getString("awt.21E")); //$NON-NLS-1$ } // TODO - //if (ippFilter(src, dst, BufferedImage.TYPE_CUSTOM, false) != 0) - if (slowFilter(src, dst, false) != 0) { - // awt.21F=Unable to transform source - throw new ImagingOpException (Messages.getString("awt.21F")); //$NON-NLS-1$ - } + // if (ippFilter(src, dst, BufferedImage.TYPE_CUSTOM, false) != 0) + if (slowFilter(src, dst, false) != 0) { + // awt.21F=Unable to transform source + throw new ImagingOpException(Messages.getString("awt.21F")); //$NON-NLS-1$ + } return dst; } @@ -213,11 +218,13 @@ public class RescaleOp implements BufferedImageOp, RasterOp { /** * Slow filter. * - * @param src the src - * @param dst the dst - * @param skipAlpha the skip alpha - * - * @return the int + * @param src + * the src. + * @param dst + * the dst. + * @param skipAlpha + * the skip alpha. + * @return the int. */ private final int slowFilter(Raster src, WritableRaster dst, boolean skipAlpha) { SampleModel sm = src.getSampleModel(); @@ -235,7 +242,7 @@ public class RescaleOp implements BufferedImageOp, RasterOp { int[] masks = new int[numBands]; int[] sampleSizes = sm.getSampleSize(); - for (int i=0; i < numBands; i++){ + for (int i = 0; i < numBands; i++) { maxValues[i] = (1 << sampleSizes[i]) - 1; masks[i] = ~(maxValues[i]); } @@ -247,8 +254,8 @@ public class RescaleOp implements BufferedImageOp, RasterOp { // Cycle over pixels to be calculated if (skipAlpha) { // Always suppose that alpha channel is the last band if (scaleFactors.length > 1) { - for (int i = 0; i < pixels.length; ){ - for (int bandIdx = 0; bandIdx < numBands-1; bandIdx++, i++){ + for (int i = 0; i < pixels.length;) { + for (int bandIdx = 0; bandIdx < numBands - 1; bandIdx++, i++) { pixels[i] = pixels[i] * scaleFactors[bandIdx] + offsets[bandIdx]; // Check for overflow now if (((int)pixels[i] & masks[bandIdx]) != 0) { @@ -263,8 +270,8 @@ public class RescaleOp implements BufferedImageOp, RasterOp { i++; } } else { - for (int i = 0; i < pixels.length; ){ - for (int bandIdx = 0; bandIdx < numBands-1; bandIdx++, i++){ + for (int i = 0; i < pixels.length;) { + for (int bandIdx = 0; bandIdx < numBands - 1; bandIdx++, i++) { pixels[i] = pixels[i] * scaleFactors[0] + offsets[0]; // Check for overflow now if (((int)pixels[i] & masks[bandIdx]) != 0) { @@ -281,8 +288,8 @@ public class RescaleOp implements BufferedImageOp, RasterOp { } } else { if (scaleFactors.length > 1) { - for (int i = 0; i < pixels.length; ){ - for (int bandIdx = 0; bandIdx < numBands; bandIdx++, i++){ + for (int i = 0; i < pixels.length;) { + for (int bandIdx = 0; bandIdx < numBands; bandIdx++, i++) { pixels[i] = pixels[i] * scaleFactors[bandIdx] + offsets[bandIdx]; // Check for overflow now if (((int)pixels[i] & masks[bandIdx]) != 0) { @@ -295,8 +302,8 @@ public class RescaleOp implements BufferedImageOp, RasterOp { } } } else { - for (int i = 0; i < pixels.length; ){ - for (int bandIdx = 0; bandIdx < numBands; bandIdx++, i++){ + for (int i = 0; i < pixels.length;) { + for (int bandIdx = 0; bandIdx < numBands; bandIdx++, i++) { pixels[i] = pixels[i] * scaleFactors[0] + offsets[0]; // Check for overflow now if (((int)pixels[i] & masks[bandIdx]) != 0) { @@ -328,18 +335,20 @@ public class RescaleOp implements BufferedImageOp, RasterOp { int nComponents = srcCM.getNumComponents(); boolean skipAlpha; if (srcCM.hasAlpha()) { - if (scaleFactors.length == 1 || scaleFactors.length == nComponents-1) { + if (scaleFactors.length == 1 || scaleFactors.length == nComponents - 1) { skipAlpha = true; } else if (scaleFactors.length == nComponents) { skipAlpha = false; } else { - // awt.21E=Number of scaling constants is not equal to the number of bands + // awt.21E=Number of scaling constants is not equal to the + // number of bands throw new IllegalArgumentException(Messages.getString("awt.21E")); //$NON-NLS-1$ } } else if (scaleFactors.length == 1 || scaleFactors.length == nComponents) { skipAlpha = false; } else { - // awt.21E=Number of scaling constants is not equal to the number of bands + // awt.21E=Number of scaling constants is not equal to the number of + // bands throw new IllegalArgumentException(Messages.getString("awt.21E")); //$NON-NLS-1$ } @@ -348,24 +357,22 @@ public class RescaleOp implements BufferedImageOp, RasterOp { finalDst = dst; dst = createCompatibleDestImage(src, srcCM); } else if (!srcCM.equals(dst.getColorModel())) { - // Treat BufferedImage.TYPE_INT_RGB and BufferedImage.TYPE_INT_ARGB as same - if ( - !((src.getType() == BufferedImage.TYPE_INT_RGB || - src.getType() == BufferedImage.TYPE_INT_ARGB) && - (dst.getType() == BufferedImage.TYPE_INT_RGB || - dst.getType() == BufferedImage.TYPE_INT_ARGB)) - ) { + // Treat BufferedImage.TYPE_INT_RGB and BufferedImage.TYPE_INT_ARGB + // as same + if (!((src.getType() == BufferedImage.TYPE_INT_RGB || src.getType() == BufferedImage.TYPE_INT_ARGB) && (dst + .getType() == BufferedImage.TYPE_INT_RGB || dst.getType() == BufferedImage.TYPE_INT_ARGB))) { finalDst = dst; dst = createCompatibleDestImage(src, srcCM); } } // TODO - //if (ippFilter(src.getRaster(), dst.getRaster(), src.getType(), skipAlpha) != 0) - if (slowFilter(src.getRaster(), dst.getRaster(), skipAlpha) != 0) { - // awt.21F=Unable to transform source - throw new ImagingOpException (Messages.getString("awt.21F")); //$NON-NLS-1$ - } + // if (ippFilter(src.getRaster(), dst.getRaster(), src.getType(), + // skipAlpha) != 0) + if (slowFilter(src.getRaster(), dst.getRaster(), skipAlpha) != 0) { + // awt.21F=Unable to transform source + throw new ImagingOpException(Messages.getString("awt.21F")); //$NON-NLS-1$ + } if (finalDst != null) { Graphics2D g = finalDst.createGraphics(); @@ -378,21 +385,26 @@ public class RescaleOp implements BufferedImageOp, RasterOp { return finalDst; } - // Don't forget to pass allocated arrays for levels and values, size should be numBands*4 + // Don't forget to pass allocated arrays for levels and values, size should + // be numBands*4 /** * Creates the levels. * - * @param sm the sm - * @param numBands the num bands - * @param skipAlpha the skip alpha - * @param levels the levels - * @param values the values - * @param channelsOrder the channels order + * @param sm + * the sm. + * @param numBands + * the num bands. + * @param skipAlpha + * the skip alpha. + * @param levels + * the levels. + * @param values + * the values. + * @param channelsOrder + * the channels order. */ - private final void createLevels( - SampleModel sm, int numBands, boolean skipAlpha, - int levels[], int values[], int channelsOrder[] - ) { + private final void createLevels(SampleModel sm, int numBands, boolean skipAlpha, int levels[], + int values[], int channelsOrder[]) { // Suppose same sample size for all channels, otherwise use slow filter int maxValue = (1 << sm.getSampleSize(0)) - 1; @@ -411,17 +423,17 @@ public class RescaleOp implements BufferedImageOp, RasterOp { } if (skipAlpha) { - extScaleFactors[numBands-1] = 1; - extOffsets[numBands-1] = 0; + extScaleFactors[numBands - 1] = 1; + extOffsets[numBands - 1] = 0; } // Create a levels - for (int i=0; i<numBands; i++) { + for (int i = 0; i < numBands; i++) { if (extScaleFactors[i] == 0) { - levels[i*4] = 0; - levels[i*4+1] = 0; - levels[i*4+2] = maxValue+1; - levels[i*4+3] = maxValue+1; + levels[i * 4] = 0; + levels[i * 4 + 1] = 0; + levels[i * 4 + 2] = maxValue + 1; + levels[i * 4 + 3] = maxValue + 1; } float minLevel = -extOffsets[i] / extScaleFactors[i]; @@ -429,33 +441,33 @@ public class RescaleOp implements BufferedImageOp, RasterOp { if (minLevel < 0) { minLevel = 0; - } else if (minLevel > maxValue){ + } else if (minLevel > maxValue) { minLevel = maxValue; } if (maxLevel < 0) { maxLevel = 0; - } else if (maxLevel > maxValue){ + } else if (maxLevel > maxValue) { maxLevel = maxValue; } - levels[i*4] = 0; + levels[i * 4] = 0; if (minLevel > maxLevel) { - levels[i*4+1] = (int) maxLevel; - levels[i*4+2] = (int) minLevel; + levels[i * 4 + 1] = (int)maxLevel; + levels[i * 4 + 2] = (int)minLevel; } else { - levels[i*4+1] = (int) minLevel; - levels[i*4+2] = (int) maxLevel; + levels[i * 4 + 1] = (int)minLevel; + levels[i * 4 + 2] = (int)maxLevel; } - levels[i*4+3] = maxValue+1; + levels[i * 4 + 3] = maxValue + 1; // Fill values - for (int k=0; k<4; k++) { - int idx = i*4+k; - values[idx] = (int) (extScaleFactors[i] * levels[idx] + extOffsets[i]); + for (int k = 0; k < 4; k++) { + int idx = i * 4 + k; + values[idx] = (int)(extScaleFactors[i] * levels[idx] + extOffsets[i]); if (values[idx] < 0) { values[idx] = 0; - } else if (values[idx] > maxValue){ + } else if (values[idx] > maxValue) { values[idx] = maxValue; } } @@ -463,14 +475,14 @@ public class RescaleOp implements BufferedImageOp, RasterOp { // Reorder data if channels are stored in different order if (channelsOrder != null) { - int len = numBands*4; + int len = numBands * 4; int savedLevels[] = new int[len]; int savedValues[] = new int[len]; System.arraycopy(levels, 0, savedLevels, 0, len); System.arraycopy(values, 0, savedValues, 0, len); for (int i = 0; i < channelsOrder.length; i++) { - System.arraycopy(savedLevels, i*4, levels, channelsOrder[i]*4, 4); - System.arraycopy(savedValues, i*4, values, channelsOrder[i]*4, 4); + System.arraycopy(savedLevels, i * 4, levels, channelsOrder[i] * 4, 4); + System.arraycopy(savedValues, i * 4, values, channelsOrder[i] * 4, 4); } } } @@ -479,18 +491,18 @@ public class RescaleOp implements BufferedImageOp, RasterOp { /** * Ipp filter. * - * @param src the src - * @param dst the dst - * @param imageType the image type - * @param skipAlpha the skip alpha - * - * @return the int + * @param src + * the src. + * @param dst + * the dst. + * @param imageType + * the image type. + * @param skipAlpha + * the skip alpha. + * @return the int. */ @SuppressWarnings("unused") - private final int ippFilter( - Raster src, WritableRaster dst, - int imageType, boolean skipAlpha - ) { + private final int ippFilter(Raster src, WritableRaster dst, int imageType, boolean skipAlpha) { int res; int srcStride, dstStride; @@ -503,9 +515,11 @@ public class RescaleOp implements BufferedImageOp, RasterOp { case BufferedImage.TYPE_INT_ARGB_PRE: case BufferedImage.TYPE_INT_RGB: { channels = 4; - srcStride = src.getWidth()*4; - dstStride = dst.getWidth()*4; - channelsOrder = new int[] {2, 1, 0, 3}; + srcStride = src.getWidth() * 4; + dstStride = dst.getWidth() * 4; + channelsOrder = new int[] { + 2, 1, 0, 3 + }; break; } @@ -513,8 +527,8 @@ public class RescaleOp implements BufferedImageOp, RasterOp { case BufferedImage.TYPE_4BYTE_ABGR_PRE: case BufferedImage.TYPE_INT_BGR: { channels = 4; - srcStride = src.getWidth()*4; - dstStride = dst.getWidth()*4; + srcStride = src.getWidth() * 4; + dstStride = dst.getWidth() * 4; break; } @@ -527,9 +541,11 @@ public class RescaleOp implements BufferedImageOp, RasterOp { case BufferedImage.TYPE_3BYTE_BGR: { channels = 3; - srcStride = src.getWidth()*3; - dstStride = dst.getWidth()*3; - channelsOrder = new int[] {2, 1, 0}; + srcStride = src.getWidth() * 3; + dstStride = dst.getWidth() * 3; + channelsOrder = new int[] { + 2, 1, 0 + }; break; } @@ -544,55 +560,46 @@ public class RescaleOp implements BufferedImageOp, RasterOp { SampleModel srcSM = src.getSampleModel(); SampleModel dstSM = dst.getSampleModel(); - if ( - srcSM instanceof PixelInterleavedSampleModel && - dstSM instanceof PixelInterleavedSampleModel - ) { + if (srcSM instanceof PixelInterleavedSampleModel + && dstSM instanceof PixelInterleavedSampleModel) { // Check PixelInterleavedSampleModel - if ( - srcSM.getDataType() != DataBuffer.TYPE_BYTE || - dstSM.getDataType() != DataBuffer.TYPE_BYTE - ) { + if (srcSM.getDataType() != DataBuffer.TYPE_BYTE + || dstSM.getDataType() != DataBuffer.TYPE_BYTE) { return slowFilter(src, dst, skipAlpha); } - channels = srcSM.getNumBands(); // Have IPP functions for 1, 3 and 4 channels + channels = srcSM.getNumBands(); // Have IPP functions for 1, + // 3 and 4 channels if (!(channels == 1 || channels == 3 || channels == 4)) { return slowFilter(src, dst, skipAlpha); } - srcStride = ((ComponentSampleModel) srcSM).getScanlineStride(); - dstStride = ((ComponentSampleModel) dstSM).getScanlineStride(); + srcStride = ((ComponentSampleModel)srcSM).getScanlineStride(); + dstStride = ((ComponentSampleModel)dstSM).getScanlineStride(); - channelsOrder = ((ComponentSampleModel) srcSM).getBandOffsets(); - } else if ( - srcSM instanceof SinglePixelPackedSampleModel && - dstSM instanceof SinglePixelPackedSampleModel - ) { + channelsOrder = ((ComponentSampleModel)srcSM).getBandOffsets(); + } else if (srcSM instanceof SinglePixelPackedSampleModel + && dstSM instanceof SinglePixelPackedSampleModel) { // Check SinglePixelPackedSampleModel - SinglePixelPackedSampleModel sppsm1 = (SinglePixelPackedSampleModel) srcSM; - SinglePixelPackedSampleModel sppsm2 = (SinglePixelPackedSampleModel) dstSM; + SinglePixelPackedSampleModel sppsm1 = (SinglePixelPackedSampleModel)srcSM; + SinglePixelPackedSampleModel sppsm2 = (SinglePixelPackedSampleModel)dstSM; channels = sppsm1.getNumBands(); - // TYPE_INT_RGB, TYPE_INT_ARGB... - if ( - sppsm1.getDataType() != DataBuffer.TYPE_INT || - sppsm2.getDataType() != DataBuffer.TYPE_INT || - !(channels == 3 || channels == 4) - ) { + // TYPE_INT_RGB, TYPE_INT_ARGB... + if (sppsm1.getDataType() != DataBuffer.TYPE_INT + || sppsm2.getDataType() != DataBuffer.TYPE_INT + || !(channels == 3 || channels == 4)) { return slowFilter(src, dst, skipAlpha); } // Check compatibility of sample models - if ( - !Arrays.equals(sppsm1.getBitOffsets(), sppsm2.getBitOffsets()) || - !Arrays.equals(sppsm1.getBitMasks(), sppsm2.getBitMasks()) - ) { + if (!Arrays.equals(sppsm1.getBitOffsets(), sppsm2.getBitOffsets()) + || !Arrays.equals(sppsm1.getBitMasks(), sppsm2.getBitMasks())) { return slowFilter(src, dst, skipAlpha); } - for (int i=0; i<channels; i++) { + for (int i = 0; i < channels; i++) { if (sppsm1.getSampleSize(i) != 8) { return slowFilter(src, dst, skipAlpha); } @@ -600,11 +607,12 @@ public class RescaleOp implements BufferedImageOp, RasterOp { channelsOrder = new int[channels]; int bitOffsets[] = sppsm1.getBitOffsets(); - for (int i=0; i<channels; i++) { + for (int i = 0; i < channels; i++) { channelsOrder[i] = bitOffsets[i] / 8; } - if (channels == 3) { // Don't skip channel now, could be optimized + if (channels == 3) { // Don't skip channel now, could be + // optimized channels = 4; } @@ -616,12 +624,9 @@ public class RescaleOp implements BufferedImageOp, RasterOp { // Fill offsets if there's a child raster if (src.getParent() != null || dst.getParent() != null) { - if ( - src.getSampleModelTranslateX() != 0 || - src.getSampleModelTranslateY() != 0 || - dst.getSampleModelTranslateX() != 0 || - dst.getSampleModelTranslateY() != 0 - ) { + if (src.getSampleModelTranslateX() != 0 || src.getSampleModelTranslateY() != 0 + || dst.getSampleModelTranslateX() != 0 + || dst.getSampleModelTranslateY() != 0) { offsets = new int[4]; offsets[0] = -src.getSampleModelTranslateX() + src.getMinX(); offsets[1] = -src.getSampleModelTranslateY() + src.getMinY(); @@ -632,8 +637,8 @@ public class RescaleOp implements BufferedImageOp, RasterOp { } } - int levels[] = new int[4*channels]; - int values[] = new int[4*channels]; + int levels[] = new int[4 * channels]; + int values[] = new int[4 * channels]; createLevels(src.getSampleModel(), channels, skipAlpha, levels, values, channelsOrder); @@ -646,13 +651,8 @@ public class RescaleOp implements BufferedImageOp, RasterOp { return -1; // Unknown data buffer type } - res = LookupOp.ippLUT( - srcData, src.getWidth(), src.getHeight(), srcStride, - dstData, dst.getWidth(), dst.getHeight(), dstStride, - levels, values, - channels, offsets, - true - ); + res = LookupOp.ippLUT(srcData, src.getWidth(), src.getHeight(), srcStride, dstData, dst + .getWidth(), dst.getHeight(), dstStride, levels, values, channels, offsets, true); return res; } diff --git a/awt/java/awt/image/SampleModel.java b/awt/java/awt/image/SampleModel.java index 44059a0..c967fa6 100644 --- a/awt/java/awt/image/SampleModel.java +++ b/awt/java/awt/image/SampleModel.java @@ -18,44 +18,57 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import org.apache.harmony.awt.internal.nls.Messages; /** - * The SampleModel class is abstract class for retrieving pixel's samples - * in the data of an image. Each pixel contains several samples. A - * sample is the set of values of the bands for single pixel. - * For example, each pixel in the RGB model contains three samples - * and there are three corresponding bands in the image - * data of such pixels representing red, green and blue components. - * <p> - * The image data is represented as a Raster with a DataBuffer - * and a SampleModel. The SampleModel allows access to the samples in the - * DataBuffer. + * The SampleModel class is abstract class for retrieving pixel's samples in the + * data of an image. Each pixel contains several samples. A sample is the set of + * values of the bands for single pixel. For example, each pixel in the RGB + * model contains three samples and there are three corresponding bands in the + * image data of such pixels representing red, green and blue components. + * <p> + * The image data is represented as a Raster with a DataBuffer and a + * SampleModel. The SampleModel allows access to the samples in the DataBuffer. + * + * @since Android 1.0 */ public abstract class SampleModel { - /** The width of the image data which this SampleModel describes. */ + /** + * The width of the image data which this SampleModel describes. + */ protected int width; - /** The height of the image data which this SampleModel describes. */ + /** + * The height of the image data which this SampleModel describes. + */ protected int height; - /** The number of bands of image data which this SampleModel describes. */ + /** + * The number of bands of image data which this SampleModel describes. + */ protected int numBands; - /** The data type of the image data which this SampleModel describes. */ + /** + * The data type of the image data which this SampleModel describes. + */ protected int dataType; /** - * Instantiates a new SampleModel with the specified data type, - * width, height and number of bands. + * Instantiates a new SampleModel with the specified data type, width, + * height and number of bands. * - * @param dataType the data type of the image data. - * @param w the width of the image data. - * @param h the height of the image data. - * @param numBands the number of bands of the image data. + * @param dataType + * the data type of the image data. + * @param w + * the width of the image data. + * @param h + * the height of the image data. + * @param numBands + * the number of bands of the image data. */ public SampleModel(int dataType, int w, int h, int numBands) { if (w <= 0 || h <= 0) { @@ -63,15 +76,14 @@ public abstract class SampleModel { throw new IllegalArgumentException(Messages.getString("awt.22E")); //$NON-NLS-1$ } - double squre = ((double) w) * ((double) h); + double squre = ((double)w) * ((double)h); if (squre >= Integer.MAX_VALUE) { // awt.22F=The product of w and h is greater than Integer.MAX_VALUE throw new IllegalArgumentException(Messages.getString("awt.22F")); //$NON-NLS-1$ } - if (dataType < DataBuffer.TYPE_BYTE || - dataType > DataBuffer.TYPE_DOUBLE && - dataType != DataBuffer.TYPE_UNDEFINED) { + if (dataType < DataBuffer.TYPE_BYTE || dataType > DataBuffer.TYPE_DOUBLE + && dataType != DataBuffer.TYPE_UNDEFINED) { // awt.230=dataType is not one of the supported data types throw new IllegalArgumentException(Messages.getString("awt.230")); //$NON-NLS-1$ } @@ -89,154 +101,156 @@ public abstract class SampleModel { } /** - * Gets the data array for the specified pixel of the specified - * DataBuffer with one of the following types: - * DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, - * DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, + * Gets the data array for the specified pixel of the specified DataBuffer + * with one of the following types: DataBuffer.TYPE_BYTE, + * DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, * DataBuffer.TYPE_FLOAT, or DataBuffer.TYPE_DOUBLE. * - * @param x the X coordinate of pixel. - * @param y the Y coordinate of pixel. - * @param obj the Object is a data where the result will be stored. - * @param data the image data. - * - * @return the data array for the specified pixel of the specified - * DataBuffer. + * @param x + * the X coordinate of pixel. + * @param y + * the Y coordinate of pixel. + * @param obj + * the Object is a data where the result will be stored. + * @param data + * the image data. + * @return the data array for the specified pixel of the specified + * DataBuffer. */ - public abstract Object getDataElements(int x, int y, Object obj, - DataBuffer data); + public abstract Object getDataElements(int x, int y, Object obj, DataBuffer data); /** - * Gets the array of pixel data for the specified rectangular - * area of pixels of the specified DataBuffer with one of - * the following types: - * DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, - * DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, - * DataBuffer.TYPE_FLOAT, or DataBuffer.TYPE_DOUBLE. + * Gets the array of pixel data for the specified rectangular area of pixels + * of the specified DataBuffer with one of the following types: + * DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, + * DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, or DataBuffer.TYPE_DOUBLE. * - * - * @param x the X coordinate of the rectangular pixel area. - * @param y the Y coordinate of the rectangular pixel area. - * @param w the width of the rectangular pixel area. - * @param h the height of the rectangular pixel area. - * @param obj the Object is an array with the primitive type, - * where the result array will be stored. - * @param data the image data. - * - * @return the array of pixel data for the specified rectangular - * area of pixels of the specified DataBuffer object. + * @param x + * the X coordinate of the rectangular pixel area. + * @param y + * the Y coordinate of the rectangular pixel area. + * @param w + * the width of the rectangular pixel area. + * @param h + * the height of the rectangular pixel area. + * @param obj + * the Object is an array with the primitive type, where the + * result array will be stored. + * @param data + * the image data. + * @return the array of pixel data for the specified rectangular area of + * pixels of the specified DataBuffer object. */ - public Object getDataElements(int x, int y, int w, int h, Object obj, - DataBuffer data) { + public Object getDataElements(int x, int y, int w, int h, Object obj, DataBuffer data) { int numDataElements = getNumDataElements(); int idx = 0; switch (getTransferType()) { - case DataBuffer.TYPE_BYTE: - byte bdata[]; - byte bbuf[] = null; - - if (obj == null) { - bdata = new byte[numDataElements * w * h]; - } else { - bdata = (byte[]) obj; - } + case DataBuffer.TYPE_BYTE: + byte bdata[]; + byte bbuf[] = null; + + if (obj == null) { + bdata = new byte[numDataElements * w * h]; + } else { + bdata = (byte[])obj; + } - for (int i = y; i < y + h; i++) { - for (int j = x; j < x + w; j++) { - bbuf = (byte[]) getDataElements(j, i, bbuf, data); - for (int n = 0; n < numDataElements; n++) { - bdata[idx++] = bbuf[n]; + for (int i = y; i < y + h; i++) { + for (int j = x; j < x + w; j++) { + bbuf = (byte[])getDataElements(j, i, bbuf, data); + for (int n = 0; n < numDataElements; n++) { + bdata[idx++] = bbuf[n]; + } } } - } - obj = bdata; - break; - - case DataBuffer.TYPE_SHORT: - case DataBuffer.TYPE_USHORT: - short sdata[]; - short sbuf[] = null; - - if (obj == null) { - sdata = new short[numDataElements * w * h]; - } else { - sdata = (short[]) obj; - } + obj = bdata; + break; + + case DataBuffer.TYPE_SHORT: + case DataBuffer.TYPE_USHORT: + short sdata[]; + short sbuf[] = null; + + if (obj == null) { + sdata = new short[numDataElements * w * h]; + } else { + sdata = (short[])obj; + } - for (int i = y; i < y + h; i++) { - for (int j = x; j < x + w; j++) { - sbuf = (short[]) getDataElements(j, i, sbuf, data); - for (int n = 0; n < numDataElements; n++) { - sdata[idx++] = sbuf[n]; + for (int i = y; i < y + h; i++) { + for (int j = x; j < x + w; j++) { + sbuf = (short[])getDataElements(j, i, sbuf, data); + for (int n = 0; n < numDataElements; n++) { + sdata[idx++] = sbuf[n]; + } } } - } - obj = sdata; - break; + obj = sdata; + break; - case DataBuffer.TYPE_INT: - int idata[]; - int ibuf[] = null; + case DataBuffer.TYPE_INT: + int idata[]; + int ibuf[] = null; - if (obj == null) { - idata = new int[numDataElements * w * h]; - } else { - idata = (int[]) obj; - } + if (obj == null) { + idata = new int[numDataElements * w * h]; + } else { + idata = (int[])obj; + } - for (int i = y; i < y + h; i++) { - for (int j = x; j < x + w; j++) { - ibuf = (int[]) getDataElements(j, i, ibuf, data); - for (int n = 0; n < numDataElements; n++) { - idata[idx++] = ibuf[n]; + for (int i = y; i < y + h; i++) { + for (int j = x; j < x + w; j++) { + ibuf = (int[])getDataElements(j, i, ibuf, data); + for (int n = 0; n < numDataElements; n++) { + idata[idx++] = ibuf[n]; + } } } - } - obj = idata; - break; + obj = idata; + break; - case DataBuffer.TYPE_FLOAT: - float fdata[]; - float fbuf[] = null; + case DataBuffer.TYPE_FLOAT: + float fdata[]; + float fbuf[] = null; - if (obj == null) { - fdata = new float[numDataElements * w * h]; - } else { - fdata = (float[]) obj; - } + if (obj == null) { + fdata = new float[numDataElements * w * h]; + } else { + fdata = (float[])obj; + } - for (int i = y; i < y + h; i++) { - for (int j = x; j < x + w; j++) { - fbuf = (float[]) getDataElements(j, i, fbuf, data); - for (int n = 0; n < numDataElements; n++) { - fdata[idx++] = fbuf[n]; + for (int i = y; i < y + h; i++) { + for (int j = x; j < x + w; j++) { + fbuf = (float[])getDataElements(j, i, fbuf, data); + for (int n = 0; n < numDataElements; n++) { + fdata[idx++] = fbuf[n]; + } } } - } - obj = fdata; - break; + obj = fdata; + break; - case DataBuffer.TYPE_DOUBLE: - double ddata[]; - double dbuf[] = null; + case DataBuffer.TYPE_DOUBLE: + double ddata[]; + double dbuf[] = null; - if (obj == null) { - ddata = new double[numDataElements * w * h]; - } else { - ddata = (double[]) obj; - } + if (obj == null) { + ddata = new double[numDataElements * w * h]; + } else { + ddata = (double[])obj; + } - for (int i = y; i < y + h; i++) { - for (int j = x; j < x + w; j++) { - dbuf = (double[]) getDataElements(j, i, dbuf, data); - for (int n = 0; n < numDataElements; n++) { - ddata[idx++] = dbuf[n]; + for (int i = y; i < y + h; i++) { + for (int j = x; j < x + w; j++) { + dbuf = (double[])getDataElements(j, i, dbuf, data); + for (int n = 0; n < numDataElements; n++) { + ddata[idx++] = dbuf[n]; + } } } - } - obj = ddata; - break; + obj = ddata; + break; } @@ -244,140 +258,145 @@ public abstract class SampleModel { } /** - * Sets the data for a single pixel in the specified DataBuffer - * from a primitive array with one of the following types: - * DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, - * DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, - * DataBuffer.TYPE_FLOAT, or DataBuffer.TYPE_DOUBLE. + * Sets the data for a single pixel in the specified DataBuffer from a + * primitive array with one of the following types: DataBuffer.TYPE_BYTE, + * DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, + * DataBuffer.TYPE_FLOAT, or DataBuffer.TYPE_DOUBLE. * - * @param x the X coordinate of pixel. - * @param y the Y coordinate of pixel. - * @param obj the Object - the array of primitive pixel data - * to be set. - * @param data the image data. + * @param x + * the X coordinate of pixel. + * @param y + * the Y coordinate of pixel. + * @param obj + * the Object - the array of primitive pixel data to be set. + * @param data + * the image data. */ - public abstract void setDataElements(int x, int y, Object obj, - DataBuffer data); + public abstract void setDataElements(int x, int y, Object obj, DataBuffer data); /** - * Sets the data elements for a rectangular area of pixels in - * the specified DataBuffer from a primitive array with one of - * the following types: DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, - * DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, - * DataBuffer.TYPE_FLOAT, or DataBuffer.TYPE_DOUBLE. + * Sets the data elements for a rectangular area of pixels in the specified + * DataBuffer from a primitive array with one of the following types: + * DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, + * DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, or DataBuffer.TYPE_DOUBLE. * - * @param x the X coordinate of the specified rectangular area. - * @param y the Y coordinate of the specified rectangular area. - * @param w the width of rectangle. - * @param h the height of rectangle. - * @param obj the Object - the array of primitive pixel data - * to be set. - * @param data the image data. + * @param x + * the X coordinate of the specified rectangular area. + * @param y + * the Y coordinate of the specified rectangular area. + * @param w + * the width of rectangle. + * @param h + * the height of rectangle. + * @param obj + * the Object - the array of primitive pixel data to be set. + * @param data + * the image data. */ - public void setDataElements(int x, int y, int w, int h, Object obj, - DataBuffer data) { + public void setDataElements(int x, int y, int w, int h, Object obj, DataBuffer data) { int numDataElements = getNumDataElements(); int idx = 0; switch (getTransferType()) { - case DataBuffer.TYPE_BYTE: - byte bbuf[] = new byte[numDataElements]; - for (int i = y; i < y + h; i++) { - for (int j = x; j < x + w; j++) { - for (int n = 0; n < numDataElements; n++) { - bbuf[n] = ((byte[]) obj)[idx++]; + case DataBuffer.TYPE_BYTE: + byte bbuf[] = new byte[numDataElements]; + for (int i = y; i < y + h; i++) { + for (int j = x; j < x + w; j++) { + for (int n = 0; n < numDataElements; n++) { + bbuf[n] = ((byte[])obj)[idx++]; + } + setDataElements(j, i, bbuf, data); } - setDataElements(j, i, bbuf, data); } - } - break; - - case DataBuffer.TYPE_SHORT: - case DataBuffer.TYPE_USHORT: - short sbuf[] = new short[numDataElements]; - for (int i = y; i < y + h; i++) { - for (int j = x; j < x + w; j++) { - for (int n = 0; n < numDataElements; n++) { - sbuf[n] = ((short[]) obj)[idx++]; + break; + + case DataBuffer.TYPE_SHORT: + case DataBuffer.TYPE_USHORT: + short sbuf[] = new short[numDataElements]; + for (int i = y; i < y + h; i++) { + for (int j = x; j < x + w; j++) { + for (int n = 0; n < numDataElements; n++) { + sbuf[n] = ((short[])obj)[idx++]; + } + setDataElements(j, i, sbuf, data); } - setDataElements(j, i, sbuf, data); } - } - break; - - case DataBuffer.TYPE_INT: - int ibuf[] = new int[numDataElements]; - for (int i = y; i < y + h; i++) { - for (int j = x; j < x + w; j++) { - for (int n = 0; n < numDataElements; n++) { - ibuf[n] = ((int[]) obj)[idx++]; + break; + + case DataBuffer.TYPE_INT: + int ibuf[] = new int[numDataElements]; + for (int i = y; i < y + h; i++) { + for (int j = x; j < x + w; j++) { + for (int n = 0; n < numDataElements; n++) { + ibuf[n] = ((int[])obj)[idx++]; + } + setDataElements(j, i, ibuf, data); } - setDataElements(j, i, ibuf, data); } - } - break; - - case DataBuffer.TYPE_FLOAT: - float fbuf[] = new float[numDataElements]; - for (int i = y; i < y + h; i++) { - for (int j = x; j < x + w; j++) { - for (int n = 0; n < numDataElements; n++) { - fbuf[n] = ((float[]) obj)[idx++]; + break; + + case DataBuffer.TYPE_FLOAT: + float fbuf[] = new float[numDataElements]; + for (int i = y; i < y + h; i++) { + for (int j = x; j < x + w; j++) { + for (int n = 0; n < numDataElements; n++) { + fbuf[n] = ((float[])obj)[idx++]; + } + setDataElements(j, i, fbuf, data); } - setDataElements(j, i, fbuf, data); } - } - break; - - case DataBuffer.TYPE_DOUBLE: - double dbuf[] = new double[numDataElements]; - for (int i = y; i < y + h; i++) { - for (int j = x; j < x + w; j++) { - for (int n = 0; n < numDataElements; n++) { - dbuf[n] = ((double[]) obj)[idx++]; + break; + + case DataBuffer.TYPE_DOUBLE: + double dbuf[] = new double[numDataElements]; + for (int i = y; i < y + h; i++) { + for (int j = x; j < x + w; j++) { + for (int n = 0; n < numDataElements; n++) { + dbuf[n] = ((double[])obj)[idx++]; + } + setDataElements(j, i, dbuf, data); } - setDataElements(j, i, dbuf, data); } - } - break; + break; } } /** - * Creates a new SampleModel with the specified bands of - * this SampleModel. + * Creates a new SampleModel with the specified bands of this SampleModel. * - * @param bands the array of bands from this SampleModel. - * - * @return the SampleModel with the specified bands of - * this SampleModel. + * @param bands + * the array of bands from this SampleModel. + * @return the SampleModel with the specified bands of this SampleModel. */ public abstract SampleModel createSubsetSampleModel(int bands[]); /** - * Creates the SampleModel which has the same data as in - * this SampleModel with a different width and height. - * - * @param a0 the width of the image data. - * @param a1 the height of the image data. + * Creates the SampleModel which has the same data as in this SampleModel + * with a different width and height. * - * @return the SampleModel which has the same data as in - * this SampleModel with a different width and height. + * @param a0 + * the width of the image data. + * @param a1 + * the height of the image data. + * @return the SampleModel which has the same data as in this SampleModel + * with a different width and height. */ public abstract SampleModel createCompatibleSampleModel(int a0, int a1); /** - * Gets the samples of the specified pixel as a int array. + * Gets the samples of the specified pixel as an integer array. * - * @param x the X coordinate of pixel. - * @param y the Y coordinate of pixel. - * @param iArray the int array where result will be stored. - * @param data the image data. - * - * @return the int array with the samples of the specified pixel. - + * @param x + * the X coordinate of pixel. + * @param y + * the Y coordinate of pixel. + * @param iArray + * the integer array where result will be stored. + * @param data + * the image data. + * @return the integer array with the samples of the specified pixel. */ public int[] getPixel(int x, int y, int iArray[], DataBuffer data) { if (x < 0 || y < 0 || x >= this.width || y >= this.height) { @@ -400,12 +419,16 @@ public abstract class SampleModel { } /** - * Sets a pixel of the DataBuffer from a int array of samples. + * Sets a pixel of the DataBuffer from a integer array of samples. * - * @param x the X coordinate of pixel. - * @param y the Y coordinate of pixel. - * @param iArray the int array. - * @param data the image data. + * @param x + * the X coordinate of pixel. + * @param y + * the Y coordinate of pixel. + * @param iArray + * the integer array. + * @param data + * the image data. */ public void setPixel(int x, int y, int iArray[], DataBuffer data) { if (x < 0 || y < 0 || x >= this.width || y >= this.height) { @@ -420,11 +443,14 @@ public abstract class SampleModel { /** * Gets the samples of the specified pixel as a float array. * - * @param x the X coordinate of pixel. - * @param y the Y coordinate of pixel. - * @param fArray the float array where result will be stored. - * @param data the image data. - * + * @param x + * the X coordinate of pixel. + * @param y + * the Y coordinate of pixel. + * @param fArray + * the float array where result will be stored. + * @param data + * the image data. * @return the float array with the samples of the specified pixel. */ public float[] getPixel(int x, int y, float fArray[], DataBuffer data) { @@ -448,12 +474,16 @@ public abstract class SampleModel { } /** - * Sets a pixel of the DataBuffer from a float array of samples. + * Sets a pixel of the DataBuffer from a float array of samples. * - * @param x the X coordinate of pixel. - * @param y the Y coordinate of pixel. - * @param fArray the float array. - * @param data the image data. + * @param x + * the X coordinate of pixel. + * @param y + * the Y coordinate of pixel. + * @param fArray + * the float array. + * @param data + * the image data. */ public void setPixel(int x, int y, float fArray[], DataBuffer data) { if (x < 0 || y < 0 || x >= this.width || y >= this.height) { @@ -468,11 +498,14 @@ public abstract class SampleModel { /** * Gets the samples of the specified pixel as a double array. * - * @param x the X coordinate of pixel. - * @param y the Y coordinate of pixel. - * @param dArray the double array where result will be stored. - * @param data the image data. - * + * @param x + * the X coordinate of pixel. + * @param y + * the Y coordinate of pixel. + * @param dArray + * the double array where result will be stored. + * @param data + * the image data. * @return the double array with the samples of the specified pixel. */ public double[] getPixel(int x, int y, double dArray[], DataBuffer data) { @@ -496,12 +529,16 @@ public abstract class SampleModel { } /** - * Sets a pixel of the DataBuffer from a double array of samples. + * Sets a pixel of the DataBuffer from a double array of samples. * - * @param x the X coordinate of pixel. - * @param y the Y coordinate of pixel. - * @param dArray the double array. - * @param data the image data. + * @param x + * the X coordinate of pixel. + * @param y + * the Y coordinate of pixel. + * @param dArray + * the double array. + * @param data + * the image data. */ public void setPixel(int x, int y, double dArray[], DataBuffer data) { if (x < 0 || y < 0 || x >= this.width || y >= this.height) { @@ -514,43 +551,49 @@ public abstract class SampleModel { } /** - * Gets the sample of a specified band for the specified pixel - * as an int. - * - * @param x the X coordinate of pixel. - * @param y the Y coordinate of pixel. - * @param b the specified band. - * @param data the image data. + * Gets the sample of a specified band for the specified pixel as an + * integer. * + * @param x + * the X coordinate of pixel. + * @param y + * the Y coordinate of pixel. + * @param b + * the specified band. + * @param data + * the image data. * @return the sample of a specified band for the specified pixel. */ public abstract int getSample(int x, int y, int b, DataBuffer data); /** - * Gets the sample of a specified band for the specified pixel - * as a float. - * - * @param x the X coordinate of pixel. - * @param y the Y coordinate of pixel. - * @param b the specified band. - * @param data the image data. + * Gets the sample of a specified band for the specified pixel as a float. * + * @param x + * the X coordinate of pixel. + * @param y + * the Y coordinate of pixel. + * @param b + * the specified band. + * @param data + * the image data. * @return the sample of a specified band for the specified pixel. - */ public float getSampleFloat(int x, int y, int b, DataBuffer data) { return getSample(x, y, b, data); } /** - * Gets the sample of a specified band for the specified pixel - * as a double. - * - * @param x the X coordinate of pixel. - * @param y the Y coordinate of pixel. - * @param b the specified band. - * @param data the image data. + * Gets the sample of a specified band for the specified pixel as a double. * + * @param x + * the X coordinate of pixel. + * @param y + * the Y coordinate of pixel. + * @param b + * the specified band. + * @param data + * the image data. * @return the sample of a specified band for the specified pixel. */ public double getSampleDouble(int x, int y, int b, DataBuffer data) { @@ -558,21 +601,25 @@ public abstract class SampleModel { } /** - * Gets the samples of the specified rectangular area of pixels - * as a int array. - * - * @param x the X coordinate of the rectangle of pixels. - * @param y the Y coordinate of the rectangle of pixels. - * @param w the width of the rectangle of pixels. - * @param h the height of the rectangle of pixels. - * @param iArray the int array where result will be stored. - * @param data the image data. + * Gets the samples of the specified rectangular area of pixels as an + * integer array. * - * @return the int array with the samples of the specified - * rectangular area of pixels. + * @param x + * the X coordinate of the rectangle of pixels. + * @param y + * the Y coordinate of the rectangle of pixels. + * @param w + * the width of the rectangle of pixels. + * @param h + * the height of the rectangle of pixels. + * @param iArray + * the integer array where result will be stored. + * @param data + * the image data. + * @return the integer array with the samples of the specified rectangular + * area of pixels. */ - public int[] getPixels(int x, int y, int w, int h, int iArray[], - DataBuffer data) { + public int[] getPixels(int x, int y, int w, int h, int iArray[], DataBuffer data) { if (x < 0 || y < 0 || x + w > this.width || y + h > this.height) { // awt.63=Coordinates are not in bounds throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ @@ -597,18 +644,23 @@ public abstract class SampleModel { } /** - * Sets all of the samples for a rectangular area of pixels of the DataBuffer - * from an int array. + * Sets all of the samples for a rectangular area of pixels of the + * DataBuffer from an integer array. * - * @param x the X coordinate of the rectangle of pixels. - * @param y the Y coordinate of the rectangle of pixels. - * @param w the width of the rectangle of pixels. - * @param h the height of the rectangle of pixels. - * @param iArray the int array. - * @param data the image data. + * @param x + * the X coordinate of the rectangle of pixels. + * @param y + * the Y coordinate of the rectangle of pixels. + * @param w + * the width of the rectangle of pixels. + * @param h + * the height of the rectangle of pixels. + * @param iArray + * the integer array. + * @param data + * the image data. */ - public void setPixels(int x, int y, int w, int h, int iArray[], - DataBuffer data) { + public void setPixels(int x, int y, int w, int h, int iArray[], DataBuffer data) { if (x < 0 || y < 0 || x + w > this.width || y + h > this.height) { // awt.63=Coordinates are not in bounds throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ @@ -624,21 +676,25 @@ public abstract class SampleModel { } /** - * Gets the samples of the specified rectangular area of pixels - * as a float array. + * Gets the samples of the specified rectangular area of pixels as a float + * array. * - * @param x the X coordinate of the rectangle of pixels. - * @param y the Y coordinate of the rectangle of pixels. - * @param w the width of the rectangle of pixels. - * @param h the height of the rectangle of pixels. - * @param fArray the float array where result will be stored. - * @param data the image data. - * - * @return the float array with the samples of the specified - * rectangular area of pixels. + * @param x + * the X coordinate of the rectangle of pixels. + * @param y + * the Y coordinate of the rectangle of pixels. + * @param w + * the width of the rectangle of pixels. + * @param h + * the height of the rectangle of pixels. + * @param fArray + * the float array where result will be stored. + * @param data + * the image data. + * @return the float array with the samples of the specified rectangular + * area of pixels. */ - public float[] getPixels(int x, int y, int w, int h, float fArray[], - DataBuffer data) { + public float[] getPixels(int x, int y, int w, int h, float fArray[], DataBuffer data) { if (x < 0 || y < 0 || x + w > this.width || y + h > this.height) { // awt.63=Coordinates are not in bounds throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ @@ -663,18 +719,23 @@ public abstract class SampleModel { } /** - * Sets all of the samples for a rectangular area of pixels of the DataBuffer - * from a float array. + * Sets all of the samples for a rectangular area of pixels of the + * DataBuffer from a float array. * - * @param x the X coordinate of the rectangle of pixels. - * @param y the Y coordinate of the rectangle of pixels. - * @param w the width of the rectangle of pixels. - * @param h the height of the rectangle of pixels. - * @param fArray the float array. - * @param data the image data. + * @param x + * the X coordinate of the rectangle of pixels. + * @param y + * the Y coordinate of the rectangle of pixels. + * @param w + * the width of the rectangle of pixels. + * @param h + * the height of the rectangle of pixels. + * @param fArray + * the float array. + * @param data + * the image data. */ - public void setPixels(int x, int y, int w, int h, float fArray[], - DataBuffer data) { + public void setPixels(int x, int y, int w, int h, float fArray[], DataBuffer data) { if (x < 0 || y < 0 || x + w > this.width || y + h > this.height) { // awt.63=Coordinates are not in bounds throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ @@ -690,21 +751,25 @@ public abstract class SampleModel { } /** - * Gets the samples of the specified rectangular area of pixels - * as a double array. - * - * @param x the X coordinate of the rectangle of pixels. - * @param y the Y coordinate of the rectangle of pixels. - * @param w the width of the rectangle of pixels. - * @param h the height of the rectangle of pixels. - * @param dArray the double array where result will be stored. - * @param data the image data. + * Gets the samples of the specified rectangular area of pixels as a double + * array. * - * @return the double array with the samples of the specified - * rectangular area of pixels. + * @param x + * the X coordinate of the rectangle of pixels. + * @param y + * the Y coordinate of the rectangle of pixels. + * @param w + * the width of the rectangle of pixels. + * @param h + * the height of the rectangle of pixels. + * @param dArray + * the double array where result will be stored. + * @param data + * the image data. + * @return the double array with the samples of the specified rectangular + * area of pixels. */ - public double[] getPixels(int x, int y, int w, int h, double dArray[], - DataBuffer data) { + public double[] getPixels(int x, int y, int w, int h, double dArray[], DataBuffer data) { if (x < 0 || y < 0 || x + w > this.width || y + h > this.height) { // awt.63=Coordinates are not in bounds throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ @@ -729,18 +794,23 @@ public abstract class SampleModel { } /** - * Sets all of the samples for a rectangular area of pixels of the DataBuffer - * from a double array. + * Sets all of the samples for a rectangular area of pixels of the + * DataBuffer from a double array. * - * @param x the X coordinate of the rectangle of pixels. - * @param y the Y coordinate of the rectangle of pixels. - * @param w the width of the rectangle of pixels. - * @param h the height of the rectangle of pixels. - * @param dArray the double array. - * @param data the image data. + * @param x + * the X coordinate of the rectangle of pixels. + * @param y + * the Y coordinate of the rectangle of pixels. + * @param w + * the width of the rectangle of pixels. + * @param h + * the height of the rectangle of pixels. + * @param dArray + * the double array. + * @param data + * the image data. */ - public void setPixels(int x, int y, int w, int h, double dArray[], - DataBuffer data) { + public void setPixels(int x, int y, int w, int h, double dArray[], DataBuffer data) { if (x < 0 || y < 0 || x + w > this.width || y + h > this.height) { // awt.63=Coordinates are not in bounds throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ @@ -756,34 +826,44 @@ public abstract class SampleModel { } /** - * Sets a sample of the specified band for the specified pixel - * in the DataBuffer as int value. + * Sets a sample of the specified band for the specified pixel in the + * DataBuffer as integer value. * - * @param x the X coordinate of the pixel. - * @param y the Y coordinate of the pixel. - * @param b the specified band. - * @param s the sample as an int value. - * @param data the image data. + * @param x + * the X coordinate of the pixel. + * @param y + * the Y coordinate of the pixel. + * @param b + * the specified band. + * @param s + * the sample as an integer value. + * @param data + * the image data. */ public abstract void setSample(int x, int y, int b, int s, DataBuffer data); /** - * Gets the samples of a specified band for a specified rectangular - * area of pixels as a int array. - * - * @param x the X coordinate of the rectangle. - * @param y the Y coordinate of the rectangle. - * @param w the width of the rectangle. - * @param h the height of the rectangle. - * @param b the specified band. - * @param iArray the int array where result will be stored. - * @param data the image data. + * Gets the samples of a specified band for a specified rectangular area of + * pixels as a integer array. * - * @return the samples of a specified band for a specified rectangular - * area of pixels. + * @param x + * the X coordinate of the rectangle. + * @param y + * the Y coordinate of the rectangle. + * @param w + * the width of the rectangle. + * @param h + * the height of the rectangle. + * @param b + * the specified band. + * @param iArray + * the integer array where result will be stored. + * @param data + * the image data. + * @return the samples of a specified band for a specified rectangular area + * of pixels. */ - public int[] getSamples(int x, int y, int w, int h, int b, int iArray[], - DataBuffer data) { + public int[] getSamples(int x, int y, int w, int h, int b, int iArray[], DataBuffer data) { int samples[]; int idx = 0; @@ -803,19 +883,25 @@ public abstract class SampleModel { } /** - * Sets the samples from an int array in the specified band for - * the specified rectangle of pixels. + * Sets the samples from an integer array in the specified band for the + * specified rectangle of pixels. * - * @param x the X coordinate of the rectangle. - * @param y the Y coordinate of the rectangle. - * @param w the width of the rectangle. - * @param h the height of the rectangle. - * @param b the specified band. - * @param iArray the int array. - * @param data the image data. + * @param x + * the X coordinate of the rectangle. + * @param y + * the Y coordinate of the rectangle. + * @param w + * the width of the rectangle. + * @param h + * the height of the rectangle. + * @param b + * the specified band. + * @param iArray + * the integer array. + * @param data + * the image data. */ - public void setSamples(int x, int y, int w, int h, int b, int iArray[], - DataBuffer data) { + public void setSamples(int x, int y, int w, int h, int b, int iArray[], DataBuffer data) { int idx = 0; for (int i = y; i < y + h; i++) { for (int j = x; j < x + w; j++) { @@ -825,22 +911,27 @@ public abstract class SampleModel { } /** - * Gets the samples of a specified band for a specified rectangular - * area of pixels as a float array. + * Gets the samples of a specified band for a specified rectangular area of + * pixels as a float array. * - * @param x the X coordinate of the rectangle. - * @param y the Y coordinate of the rectangle. - * @param w the width of the rectangle. - * @param h the height of the rectangle. - * @param b the specified band. - * @param fArray the float array where result will be stored. - * @param data the image data. - * - * @return the samples of a specified band for a specified rectangular - * area of pixels. + * @param x + * the X coordinate of the rectangle. + * @param y + * the Y coordinate of the rectangle. + * @param w + * the width of the rectangle. + * @param h + * the height of the rectangle. + * @param b + * the specified band. + * @param fArray + * the float array where result will be stored. + * @param data + * the image data. + * @return the samples of a specified band for a specified rectangular area + * of pixels. */ - public float[] getSamples(int x, int y, int w, int h, int b, - float fArray[], DataBuffer data) { + public float[] getSamples(int x, int y, int w, int h, int b, float fArray[], DataBuffer data) { float samples[]; int idx = 0; @@ -860,19 +951,25 @@ public abstract class SampleModel { } /** - * Sets the samples from an float array in the specified band for - * the specified rectangle of pixels. + * Sets the samples from an float array in the specified band for the + * specified rectangle of pixels. * - * @param x the X coordinate of the rectangle. - * @param y the Y coordinate of the rectangle. - * @param w the width of the rectangle. - * @param h the height of the rectangle. - * @param b the specified band. - * @param fArray the float array - * @param data the image data. + * @param x + * the X coordinate of the rectangle. + * @param y + * the Y coordinate of the rectangle. + * @param w + * the width of the rectangle. + * @param h + * the height of the rectangle. + * @param b + * the specified band. + * @param fArray + * the float array. + * @param data + * the image data. */ - public void setSamples(int x, int y, int w, int h, int b, float fArray[], - DataBuffer data) { + public void setSamples(int x, int y, int w, int h, int b, float fArray[], DataBuffer data) { int idx = 0; for (int i = y; i < y + h; i++) { for (int j = x; j < x + w; j++) { @@ -882,22 +979,27 @@ public abstract class SampleModel { } /** - * Gets the samples of a specified band for a specified rectangular - * area of pixels as a double array. - * - * @param x the X coordinate of the rectangle. - * @param y the Y coordinate of the rectangle. - * @param w the width of the rectangle. - * @param h the height of the rectangle. - * @param b the specified band. - * @param dArray the double array where result will be stored. - * @param data the image data. + * Gets the samples of a specified band for a specified rectangular area of + * pixels as a double array. * - * @return the samples of a specified band for a specified rectangular - * area of pixels. + * @param x + * the X coordinate of the rectangle. + * @param y + * the Y coordinate of the rectangle. + * @param w + * the width of the rectangle. + * @param h + * the height of the rectangle. + * @param b + * the specified band. + * @param dArray + * the double array where result will be stored. + * @param data + * the image data. + * @return the samples of a specified band for a specified rectangular area + * of pixels. */ - public double[] getSamples(int x, int y, int w, int h, int b, - double dArray[], DataBuffer data) { + public double[] getSamples(int x, int y, int w, int h, int b, double dArray[], DataBuffer data) { double samples[]; int idx = 0; @@ -917,19 +1019,25 @@ public abstract class SampleModel { } /** - * Sets the samples from an double array in the specified band for - * the specified rectangle of pixels. + * Sets the samples from an double array in the specified band for the + * specified rectangle of pixels. * - * @param x the X coordinate of the rectangle. - * @param y the Y coordinate of the rectangle. - * @param w the width of the rectangle. - * @param h the height of the rectangle. - * @param b the specified band. - * @param dArray the double array - * @param data the image data. + * @param x + * the X coordinate of the rectangle. + * @param y + * the Y coordinate of the rectangle. + * @param w + * the width of the rectangle. + * @param h + * the height of the rectangle. + * @param b + * the specified band. + * @param dArray + * the double array. + * @param data + * the image data. */ - public void setSamples(int x, int y, int w, int h, int b, double dArray[], - DataBuffer data) { + public void setSamples(int x, int y, int w, int h, int b, double dArray[], DataBuffer data) { int idx = 0; for (int i = y; i < y + h; i++) { for (int j = x; j < x + w; j++) { @@ -939,53 +1047,62 @@ public abstract class SampleModel { } /** - * Sets a sample of the specified band for the specified pixel - * in the DataBuffer as float value. + * Sets a sample of the specified band for the specified pixel in the + * DataBuffer as float value. * - * @param x the X coordinate of the pixel. - * @param y the Y coordinate of the pixel. - * @param b the specified band. - * @param s the sample as float value. - * @param data the image data. + * @param x + * the X coordinate of the pixel. + * @param y + * the Y coordinate of the pixel. + * @param b + * the specified band. + * @param s + * the sample as float value. + * @param data + * the image data. */ public void setSample(int x, int y, int b, float s, DataBuffer data) { - setSample(x, y, b, (int) s, data); + setSample(x, y, b, (int)s, data); } /** - * Sets a sample of the specified band for the specified pixel - * in the DataBuffer as double value. + * Sets a sample of the specified band for the specified pixel in the + * DataBuffer as double value. * - * @param x the X coordinate of the pixel. - * @param y the Y coordinate of the pixel. - * @param b the specified band. - * @param s the sample as double value. - * @param data the image data. + * @param x + * the X coordinate of the pixel. + * @param y + * the Y coordinate of the pixel. + * @param b + * the specified band. + * @param s + * the sample as double value. + * @param data + * the image data. */ public void setSample(int x, int y, int b, double s, DataBuffer data) { - setSample(x, y, b, (int) s, data); + setSample(x, y, b, (int)s, data); } /** - * Creates a DataBuffer object which corresponds to the SampleModel. - * - * @return the DataBuffer object which corresponds to - * the SampleModel. + * Creates a DataBuffer object which corresponds to the SampleModel. + * + * @return the DataBuffer object which corresponds to the SampleModel. */ public abstract DataBuffer createDataBuffer(); /** * Gets the sample size in bits for the specified band. * - * @param band the specified band. - * + * @param band + * the specified band. * @return the sample size in bits for the specified band. */ public abstract int getSampleSize(int band); /** * Gets an array of the sample size in bits for all bands. - * + * * @return an array of the sample size in bits for all bands. */ public abstract int[] getSampleSize(); @@ -1000,10 +1117,9 @@ public abstract class SampleModel { } /** - * Gets the transfer type used to transfer pixels via - * the getDataElements and setDataElements methods. - * Transfer type value can be one of the predefined type - * from DataBuffer class or not. + * Gets the transfer type used to transfer pixels via the getDataElements + * and setDataElements methods. Transfer type value can be one of the + * predefined type from DataBuffer class or not. * * @return the transfer type. */ @@ -1012,20 +1128,18 @@ public abstract class SampleModel { } /** - * Returns the number of data elements for pixel transfering - * via the getDataElements and setDataElements methods. + * Returns the number of data elements for pixel transferring via the + * getDataElements and setDataElements methods. * - * @return the number of data elements for pixel transfering - * via the getDataElements and setDataElements methods. + * @return the number of data elements for pixel transferring via the + * getDataElements and setDataElements methods. */ public abstract int getNumDataElements(); /** - * Gets the number of bands in the image data of this - * SampleModel object. + * Gets the number of bands in the image data of this SampleModel object. * - * @return the number of bands in the image data of this - * SampleModel object. + * @return the number of bands in the image data of this SampleModel object. */ public final int getNumBands() { return numBands; @@ -1050,4 +1164,3 @@ public abstract class SampleModel { } } - diff --git a/awt/java/awt/image/ShortLookupTable.java b/awt/java/awt/image/ShortLookupTable.java index 77c9c45..4319d58 100644 --- a/awt/java/awt/image/ShortLookupTable.java +++ b/awt/java/awt/image/ShortLookupTable.java @@ -23,27 +23,30 @@ package java.awt.image; - /** - * The ShortLookupTable class provides provides functionality for - * lookup operations, and is defined by an input short array for - * bands or components of image and an offset value. - * The offset value will be subtracted from the input values before - * indexing the input arrays. The output of a lookup operation is + * The ShortLookupTable class provides provides functionality for lookup + * operations, and is defined by an input short array for bands or components of + * image and an offset value. The offset value will be subtracted from the input + * values before indexing the input arrays. The output of a lookup operation is * represented as an unsigned short array. + * + * @since Android 1.0 */ public class ShortLookupTable extends LookupTable { - - /** The data. */ + + /** + * The data. + */ private short data[][]; /** - * Instantiates a new ShortLookupTable with the specified offset value - * and the specified short array which represents lookup table for - * all bands. + * Instantiates a new ShortLookupTable with the specified offset value and + * the specified short array which represents lookup table for all bands. * - * @param offset the offset value. - * @param data the data array. + * @param offset + * the offset value. + * @param data + * the data array. */ public ShortLookupTable(int offset, short[] data) { super(offset, 1); @@ -53,12 +56,14 @@ public class ShortLookupTable extends LookupTable { } /** - * Instantiates a new ShortLookupTable with the specified offset value - * and the specified short array of arrays which represents lookup table - * for each band. + * Instantiates a new ShortLookupTable with the specified offset value and + * the specified short array of arrays which represents lookup table for + * each band. * - * @param offset the offset value. - * @param data the data array of arrays for each band. + * @param offset + * the offset value. + * @param data + * the data array of arrays for each band. */ public ShortLookupTable(int offset, short[][] data) { super(offset, data.length); @@ -70,9 +75,9 @@ public class ShortLookupTable extends LookupTable { } /** - * Gets the lookup table of this ShortLookupTable object. If - * this ShortLookupTable object has one short array for all bands, - * the returned array length is one. + * Gets the lookup table of this ShortLookupTable object. If this + * ShortLookupTable object has one short array for all bands, the returned + * array length is one. * * @return the lookup table of this ShortLookupTable object. */ @@ -81,14 +86,14 @@ public class ShortLookupTable extends LookupTable { } /** - * Returns a short array which contains samples of the specified - * pixel which is translated with the lookup table of this - * ShortLookupTable object. The resulted array is stored to - * the dst array. - * - * @param src the source array. - * @param dst the destination array where the result can be stored. + * Returns a short array which contains samples of the specified pixel which + * is translated with the lookup table of this ShortLookupTable object. The + * resulted array is stored to the dst array. * + * @param src + * the source array. + * @param dst + * the destination array where the result can be stored. * @return the short array of translated samples of a pixel. */ public short[] lookupPixel(short[] src, short[] dst) { @@ -99,11 +104,11 @@ public class ShortLookupTable extends LookupTable { int offset = getOffset(); if (getNumComponents() == 1) { for (int i = 0; i < src.length; i++) { - dst[i] = data[0][src[i]-offset]; + dst[i] = data[0][src[i] - offset]; } } else { for (int i = 0; i < getNumComponents(); i++) { - dst[i] = data[i][src[i]-offset]; + dst[i] = data[i][src[i] - offset]; } } @@ -119,11 +124,11 @@ public class ShortLookupTable extends LookupTable { int offset = getOffset(); if (getNumComponents() == 1) { for (int i = 0; i < src.length; i++) { - dst[i] = data[0][src[i]-offset]; + dst[i] = data[0][src[i] - offset]; } } else { for (int i = 0; i < getNumComponents(); i++) { - dst[i] = data[i][src[i]-offset]; + dst[i] = data[i][src[i] - offset]; } } diff --git a/awt/java/awt/image/SinglePixelPackedSampleModel.java b/awt/java/awt/image/SinglePixelPackedSampleModel.java index 311395a..69f3353 100644 --- a/awt/java/awt/image/SinglePixelPackedSampleModel.java +++ b/awt/java/awt/image/SinglePixelPackedSampleModel.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.util.Arrays; @@ -25,39 +26,54 @@ import java.util.Arrays; import org.apache.harmony.awt.internal.nls.Messages; /** - * The SinglePixelPackedSampleModel class represents pixel data - * where several samples combine to create a single pixel and - * are stored in a single data array element. This class - * supports TYPE_BYTE, TYPE_USHORT, TYPE_INT data types. + * The SinglePixelPackedSampleModel class represents pixel data where several + * samples combine to create a single pixel and are stored in a single data + * array element. This class supports TYPE_BYTE, TYPE_USHORT, TYPE_INT data + * types. + * + * @since Android 1.0 */ public class SinglePixelPackedSampleModel extends SampleModel { - /** The bit masks. */ + /** + * The bit masks. + */ private int bitMasks[]; - /** The bit offsets. */ + /** + * The bit offsets. + */ private int bitOffsets[]; - /** The bit sizes. */ + /** + * The bit sizes. + */ private int bitSizes[]; - /** The scanline stride. */ + /** + * The scanline stride. + */ private int scanlineStride; - /** The max bit size. */ + /** + * The max bit size. + */ private int maxBitSize; /** * Instantiates a new SinglePixelPackedSampleModel with the specified * parameters. * - * @param dataType the data type of samples. - * @param w the width of the image data. - * @param h the height of the image data. - * @param bitMasks the bit masks for all the bands. + * @param dataType + * the data type of samples. + * @param w + * the width of the image data. + * @param h + * the height of the image data. + * @param bitMasks + * the bit masks for all the bands. */ - public SinglePixelPackedSampleModel(int dataType, int w, int h, - int bitMasks[]) { + public SinglePixelPackedSampleModel(int dataType, int w, int h, int bitMasks[]) { this(dataType, w, h, w, bitMasks); } @@ -65,20 +81,24 @@ public class SinglePixelPackedSampleModel extends SampleModel { * Instantiates a new SinglePixelPackedSampleModel with the specified * parameters. * - * @param dataType the data type of the samples. - * @param w the width of the image data. - * @param h the height of the image data. - * @param scanlineStride The scanline stride of the image data. - * @param bitMasks the bit masks for all the bands. + * @param dataType + * the data type of the samples. + * @param w + * the width of the image data. + * @param h + * the height of the image data. + * @param scanlineStride + * the scanline stride of the image data. + * @param bitMasks + * the bit masks for all the bands. */ - public SinglePixelPackedSampleModel(int dataType, int w, int h, - int scanlineStride, int bitMasks[]) { + public SinglePixelPackedSampleModel(int dataType, int w, int h, int scanlineStride, + int bitMasks[]) { super(dataType, w, h, bitMasks.length); - if (dataType != DataBuffer.TYPE_BYTE && - dataType != DataBuffer.TYPE_USHORT && - dataType != DataBuffer.TYPE_INT) { + if (dataType != DataBuffer.TYPE_BYTE && dataType != DataBuffer.TYPE_USHORT + && dataType != DataBuffer.TYPE_INT) { // awt.61=Unsupported data type: {0} throw new IllegalArgumentException(Messages.getString("awt.61", //$NON-NLS-1$ dataType)); @@ -109,8 +129,7 @@ public class SinglePixelPackedSampleModel extends SampleModel { if (mask != 0) { // awt.62=Wrong mask : {0} - throw new IllegalArgumentException(Messages.getString( - "awt.62", bitMasks[i])); //$NON-NLS-1$ + throw new IllegalArgumentException(Messages.getString("awt.62", bitMasks[i])); //$NON-NLS-1$ } } @@ -132,39 +151,39 @@ public class SinglePixelPackedSampleModel extends SampleModel { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } switch (getTransferType()) { - case DataBuffer.TYPE_BYTE: - byte bdata[]; - if (obj == null) { - bdata = new byte[1]; - } else { - bdata = (byte[]) obj; - } + case DataBuffer.TYPE_BYTE: + byte bdata[]; + if (obj == null) { + bdata = new byte[1]; + } else { + bdata = (byte[])obj; + } - bdata[0] = (byte) data.getElem(y * scanlineStride + x); - obj = bdata; - break; - case DataBuffer.TYPE_USHORT: - short sdata[]; - if (obj == null) { - sdata = new short[1]; - } else { - sdata = (short[]) obj; - } + bdata[0] = (byte)data.getElem(y * scanlineStride + x); + obj = bdata; + break; + case DataBuffer.TYPE_USHORT: + short sdata[]; + if (obj == null) { + sdata = new short[1]; + } else { + sdata = (short[])obj; + } - sdata[0] = (short) data.getElem(y * scanlineStride + x); - obj = sdata; - break; - case DataBuffer.TYPE_INT: - int idata[]; - if (obj == null) { - idata = new int[1]; - } else { - idata = (int[]) obj; - } + sdata[0] = (short)data.getElem(y * scanlineStride + x); + obj = sdata; + break; + case DataBuffer.TYPE_INT: + int idata[]; + if (obj == null) { + idata = new int[1]; + } else { + idata = (int[])obj; + } - idata[0] = data.getElem(y * scanlineStride + x); - obj = idata; - break; + idata[0] = data.getElem(y * scanlineStride + x); + obj = idata; + break; } return obj; } @@ -176,26 +195,26 @@ public class SinglePixelPackedSampleModel extends SampleModel { throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } switch (getTransferType()) { - case DataBuffer.TYPE_BYTE: - data.setElem(y * scanlineStride + x, ((byte[]) obj)[0] & 0xff); - break; - case DataBuffer.TYPE_USHORT: - data.setElem(y * scanlineStride + x, ((short[]) obj)[0] & 0xffff); - break; - case DataBuffer.TYPE_INT: - data.setElem(y * scanlineStride + x, ((int[]) obj)[0]); - break; + case DataBuffer.TYPE_BYTE: + data.setElem(y * scanlineStride + x, ((byte[])obj)[0] & 0xff); + break; + case DataBuffer.TYPE_USHORT: + data.setElem(y * scanlineStride + x, ((short[])obj)[0] & 0xffff); + break; + case DataBuffer.TYPE_INT: + data.setElem(y * scanlineStride + x, ((int[])obj)[0]); + break; } } /** - * Compares this SinglePixelPackedSampleModel object with - * the specified object. - * - * @param o the Object to be compared. + * Compares this SinglePixelPackedSampleModel object with the specified + * object. * - * @return true, if this SinglePixelPackedSampleModel object is - * equal to the specified object, false otherwise. + * @param o + * the Object to be compared. + * @return true, if this SinglePixelPackedSampleModel object is equal to the + * specified object, false otherwise. */ @Override public boolean equals(Object o) { @@ -203,21 +222,20 @@ public class SinglePixelPackedSampleModel extends SampleModel { return false; } - SinglePixelPackedSampleModel model = (SinglePixelPackedSampleModel) o; - return this.width == model.width && - this.height == model.height && - this.numBands == model.numBands && - this.dataType == model.dataType && - Arrays.equals(this.bitMasks, model.bitMasks) && - Arrays.equals(this.bitOffsets, model.bitOffsets) && - Arrays.equals(this.bitSizes, model.bitSizes) && - this.scanlineStride == model.scanlineStride; + SinglePixelPackedSampleModel model = (SinglePixelPackedSampleModel)o; + return this.width == model.width && this.height == model.height + && this.numBands == model.numBands && this.dataType == model.dataType + && Arrays.equals(this.bitMasks, model.bitMasks) + && Arrays.equals(this.bitOffsets, model.bitOffsets) + && Arrays.equals(this.bitSizes, model.bitSizes) + && this.scanlineStride == model.scanlineStride; } @Override public SampleModel createSubsetSampleModel(int bands[]) { if (bands.length > this.numBands) { - // awt.64=The number of the bands in the subset is greater than the number of bands in the sample model + // awt.64=The number of the bands in the subset is greater than the + // number of bands in the sample model throw new RasterFormatException(Messages.getString("awt.64")); //$NON-NLS-1$ } @@ -225,14 +243,13 @@ public class SinglePixelPackedSampleModel extends SampleModel { for (int i = 0; i < bands.length; i++) { masks[i] = this.bitMasks[bands[i]]; } - return new SinglePixelPackedSampleModel(this.dataType, this.width, - this.height, this.scanlineStride, masks); + return new SinglePixelPackedSampleModel(this.dataType, this.width, this.height, + this.scanlineStride, masks); } @Override public SampleModel createCompatibleSampleModel(int w, int h) { - return new SinglePixelPackedSampleModel(this.dataType, w, h, - this.bitMasks); + return new SinglePixelPackedSampleModel(this.dataType, w, h, this.bitMasks); } @Override @@ -277,10 +294,9 @@ public class SinglePixelPackedSampleModel extends SampleModel { } @Override - public int[] getPixels(int x, int y, int w, int h, int iArray[], - DataBuffer data) { - if ((x < 0) || (y < 0) || ((long) x + (long) w > this.width) - || ((long) y + (long) h > this.height)) { + public int[] getPixels(int x, int y, int w, int h, int iArray[], DataBuffer data) { + if ((x < 0) || (y < 0) || ((long)x + (long)w > this.width) + || ((long)y + (long)h > this.height)) { // awt.63=Coordinates are not in bounds throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } @@ -306,13 +322,11 @@ public class SinglePixelPackedSampleModel extends SampleModel { } @Override - public void setPixels(int x, int y, int w, int h, int iArray[], - DataBuffer data) { - if ((x < 0) || (y < 0) || ((long) x + (long) w > this.width) - || ((long) y + (long) h > this.height)) { + public void setPixels(int x, int y, int w, int h, int iArray[], DataBuffer data) { + if ((x < 0) || (y < 0) || ((long)x + (long)w > this.width) + || ((long)y + (long)h > this.height)) { // awt.63=Coordinates are not in bounds - throw new ArrayIndexOutOfBoundsException(Messages - .getString("awt.63")); //$NON-NLS-1$ + throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } int idx = 0; @@ -339,13 +353,11 @@ public class SinglePixelPackedSampleModel extends SampleModel { } @Override - public int[] getSamples(int x, int y, int w, int h, int b, int iArray[], - DataBuffer data) { - if ((x < 0) || (y < 0) || ((long) x + (long) w > this.width) - || ((long) y + (long) h > this.height)) { + public int[] getSamples(int x, int y, int w, int h, int b, int iArray[], DataBuffer data) { + if ((x < 0) || (y < 0) || ((long)x + (long)w > this.width) + || ((long)y + (long)h > this.height)) { // awt.63=Coordinates are not in bounds - throw new ArrayIndexOutOfBoundsException(Messages - .getString("awt.63")); //$NON-NLS-1$ + throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } int samples[]; @@ -367,10 +379,9 @@ public class SinglePixelPackedSampleModel extends SampleModel { } @Override - public void setSamples(int x, int y, int w, int h, int b, int iArray[], - DataBuffer data) { - if ((x < 0) || (y < 0) || ((long) x + (long) w > this.width) - || ((long) y + (long) h > this.height)) { + public void setSamples(int x, int y, int w, int h, int b, int iArray[], DataBuffer data) { + if ((x < 0) || (y < 0) || ((long)x + (long)w > this.width) + || ((long)y + (long)h > this.height)) { // awt.63=Coordinates are not in bounds throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } @@ -389,15 +400,15 @@ public class SinglePixelPackedSampleModel extends SampleModel { int size = (this.height - 1) * scanlineStride + width; switch (this.dataType) { - case DataBuffer.TYPE_BYTE: - data = new DataBufferByte(size); - break; - case DataBuffer.TYPE_USHORT: - data = new DataBufferUShort(size); - break; - case DataBuffer.TYPE_INT: - data = new DataBufferInt(size); - break; + case DataBuffer.TYPE_BYTE: + data = new DataBufferByte(size); + break; + case DataBuffer.TYPE_USHORT: + data = new DataBufferUShort(size); + break; + case DataBuffer.TYPE_INT: + data = new DataBufferInt(size); + break; } return data; } @@ -405,9 +416,10 @@ public class SinglePixelPackedSampleModel extends SampleModel { /** * Gets the offset of the specified pixel in the data array. * - * @param x the X coordinate of the specified pixel. - * @param y the Y coordinate of the specified pixel. - * + * @param x + * the X coordinate of the specified pixel. + * @param y + * the Y coordinate of the specified pixel. * @return the offset of the specified pixel. */ public int getOffset(int x, int y) { @@ -425,7 +437,7 @@ public class SinglePixelPackedSampleModel extends SampleModel { } /** - * Gets an array of the bit offsets of the data array elements. + * Gets an array of the bit offsets of the data array elements. * * @return an array of the bit offsets. */ @@ -505,4 +517,3 @@ public class SinglePixelPackedSampleModel extends SampleModel { } } - diff --git a/awt/java/awt/image/TileObserver.java b/awt/java/awt/image/TileObserver.java index 39ded02..7dd97e2 100644 --- a/awt/java/awt/image/TileObserver.java +++ b/awt/java/awt/image/TileObserver.java @@ -18,27 +18,32 @@ * @author Igor V. Stolyarov * @version $Revision$ */ -package java.awt.image; +package java.awt.image; /** - * An asynchronous update interface for receiving notifications - * about tile information when tiles of a WritableRenderedImage - * become modifiable or unmodifiable. + * An asynchronous update interface for receiving notifications about tile + * information when tiles of a WritableRenderedImage become modifiable or + * unmodifiable. + * + * @since Android 1.0 */ public interface TileObserver { /** - * This method is called when information about a tile - * update is available. + * This method is called when information about a tile update is available. * - * @param source the source image. - * @param tileX the X index of the tile. - * @param tileY the Y index of the tile. - * @param willBeWritable parameter which indicates whether - * the tile will be grabbed for writing or be released. + * @param source + * the source image. + * @param tileX + * the X index of the tile. + * @param tileY + * the Y index of the tile. + * @param willBeWritable + * parameter which indicates whether the tile will be grabbed for + * writing or be released. */ - public void tileUpdate(WritableRenderedImage source, int tileX, int tileY, boolean willBeWritable); + public void tileUpdate(WritableRenderedImage source, int tileX, int tileY, + boolean willBeWritable); } - diff --git a/awt/java/awt/image/VolatileImage.java b/awt/java/awt/image/VolatileImage.java index 3b0cfb2..f24e866 100644 --- a/awt/java/awt/image/VolatileImage.java +++ b/awt/java/awt/image/VolatileImage.java @@ -18,6 +18,7 @@ * @author Alexey A. Petrenko * @version $Revision$ */ + package java.awt.image; import java.awt.Graphics; @@ -28,35 +29,36 @@ import java.awt.ImageCapabilities; import java.awt.Transparency; /** - * The VolatileImage abstract class represents an image which can lose - * its contents at any point. VolatileImage objects are device specific. - * This class provies methods for checking if operation of this image - * are compatible for the GraphicsConfiguration. + * The VolatileImage abstract class represents an image which can lose its + * contents at any point. VolatileImage objects are device specific. This class + * provides methods for checking if operation of this image are compatible for + * the GraphicsConfiguration. + * + * @since Android 1.0 */ public abstract class VolatileImage extends Image - // Volatile image implements Transparency since 1.5 - implements Transparency { - - /** - * The Constant IMAGE_INCOMPATIBLE indicates that this VolatileImage - * is not applicable for the GraphicsConfiguration object. +// Volatile image implements Transparency since 1.5 + implements Transparency { + + /** + * The Constant IMAGE_INCOMPATIBLE indicates that this VolatileImage is not + * applicable for the GraphicsConfiguration object. */ public static final int IMAGE_INCOMPATIBLE = 2; - /** - * The Constant IMAGE_OK indicates that VolatileImage is ready - * for using. + /** + * The Constant IMAGE_OK indicates that VolatileImage is ready for using. */ public static final int IMAGE_OK = 0; - /** - * The Constant IMAGE_RESTORED indicates that VolatileImage - * will be ready to use after restoring. + /** + * The Constant IMAGE_RESTORED indicates that VolatileImage will be ready to + * use after restoring. */ public static final int IMAGE_RESTORED = 1; - /** - * The transparency value of this image. + /** + * The transparency value of this image. */ protected int transparency = OPAQUE; @@ -68,8 +70,8 @@ public abstract class VolatileImage extends Image } /** - * Returns true if rendering data is lost during validating. - * This method should be called after rendering operation of image. + * Returns true if rendering data is lost during validating. This method + * should be called after rendering operation of image. * * @return true, if contents lost during validating, false otherwise. */ @@ -98,8 +100,8 @@ public abstract class VolatileImage extends Image public abstract int getHeight(); /** - * Gets a BufferedImage representation of current VolatileImage that - * won't be affected by any changes to this VolatileImage. + * Gets a BufferedImage representation of current VolatileImage that won't + * be affected by any changes to this VolatileImage. * * @return a BufferedImage representation of current VolatileImage. */ @@ -113,14 +115,14 @@ public abstract class VolatileImage extends Image public abstract int getWidth(); /** - * Validates the drawing surface of the image if the surface had been - * lost and if the spacified GraphicsConfiguration object is - * applicable to this image. - * - * @param gc GraphicsConfiguration object. + * Validates the drawing surface of the image if the surface had been lost + * and if the specified GraphicsConfiguration object is applicable to this + * image. * + * @param gc + * the GraphicsConfiguration object. * @return one of the image status constants: IMAGE_OK, IMAGE_RESTORED or - * IMAGE_INCOMPATIBLE. + * IMAGE_INCOMPATIBLE. */ public abstract int validate(GraphicsConfiguration gc); diff --git a/awt/java/awt/image/WritableRaster.java b/awt/java/awt/image/WritableRaster.java index 0893915..51366ee 100644 --- a/awt/java/awt/image/WritableRaster.java +++ b/awt/java/awt/image/WritableRaster.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.awt.Point; @@ -26,114 +27,136 @@ import java.awt.Rectangle; import org.apache.harmony.awt.internal.nls.Messages; /** - * The WritableRaster class provides functionality for - * writing samples and pixel capabilities to the Raster. + * The WritableRaster class provides functionality for writing samples and pixel + * capabilities to the Raster. + * + * @since Android 1.0 */ public class WritableRaster extends Raster { /** - * Instantiates a new WritableRaster object with the specified - * SampleModel, DataBuffer, rectangular region and parent - * WritableRaster. + * Instantiates a new WritableRaster object with the specified SampleModel, + * DataBuffer, rectangular region and parent WritableRaster. * - * @param sampleModel the specified SampleModel. - * @param dataBuffer the specified DataBuffer. - * @param aRegion the rectangular region which defines the new image bounds. - * @param sampleModelTranslate this point defines the translation point - * from the SampleModel to the new WritableRaster coordinates. - * @param parent the parent of this WritableRaster. + * @param sampleModel + * the specified SampleModel. + * @param dataBuffer + * the specified DataBuffer. + * @param aRegion + * the rectangular region which defines the new image bounds. + * @param sampleModelTranslate + * this point defines the translation point from the SampleModel + * to the new WritableRaster coordinates. + * @param parent + * the parent of this WritableRaster. */ - protected WritableRaster(SampleModel sampleModel, DataBuffer dataBuffer, - Rectangle aRegion, Point sampleModelTranslate, - WritableRaster parent) { + protected WritableRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, + Point sampleModelTranslate, WritableRaster parent) { super(sampleModel, dataBuffer, aRegion, sampleModelTranslate, parent); } /** - * Instantiates a new WritableRaster object with the specified - * SampleModel which defines a layout of this WritableRaster and - * DataBuffer objects which defines the image data. + * Instantiates a new WritableRaster object with the specified SampleModel + * which defines a layout of this WritableRaster and DataBuffer objects + * which defines the image data. * - * @param sampleModel the specified SampleModel. - * @param dataBuffer the specified DataBuffer. - * @param origin the point of origin. + * @param sampleModel + * the specified SampleModel. + * @param dataBuffer + * the specified DataBuffer. + * @param origin + * the point of origin. */ - protected WritableRaster(SampleModel sampleModel, DataBuffer dataBuffer, - Point origin) { - this(sampleModel, dataBuffer, new Rectangle(origin.x, origin.y, - sampleModel.width, sampleModel.height), origin, null); + protected WritableRaster(SampleModel sampleModel, DataBuffer dataBuffer, Point origin) { + this(sampleModel, dataBuffer, new Rectangle(origin.x, origin.y, sampleModel.width, + sampleModel.height), origin, null); } /** * Instantiates a new WritableRaster with the specified SampleModel. * - * @param sampleModel the specified SampleModel. - * @param origin the origin. + * @param sampleModel + * the specified SampleModel. + * @param origin + * the origin. */ protected WritableRaster(SampleModel sampleModel, Point origin) { - this(sampleModel, sampleModel.createDataBuffer(), new Rectangle( - origin.x, origin.y, sampleModel.width, sampleModel.height), - origin, null); + this(sampleModel, sampleModel.createDataBuffer(), new Rectangle(origin.x, origin.y, + sampleModel.width, sampleModel.height), origin, null); } /** - * Sets the data for a single pixel from an input Object which - * represents an array of primitive types: DataBuffer.TYPE_BYTE, - * DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, - * DataBuffer.TYPE_FLOAT, or DataBuffer.TYPE_DOUBLE. + * Sets the data for a single pixel from an input Object which represents an + * array of primitive types: DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, + * DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, or + * DataBuffer.TYPE_DOUBLE. * - * @param x the X coordinate of the pixel. - * @param y the Y coordinate of the pixel. - * @param inData the input data. + * @param x + * the X coordinate of the pixel. + * @param y + * the Y coordinate of the pixel. + * @param inData + * the input data. */ public void setDataElements(int x, int y, Object inData) { - sampleModel.setDataElements(x - sampleModelTranslateX, - y - sampleModelTranslateY, inData, dataBuffer); + sampleModel.setDataElements(x - sampleModelTranslateX, y - sampleModelTranslateY, inData, + dataBuffer); } /** - * Sets the data elements which represent pixel data to the specified - * rectangle area as a primitive array. The following image data types - * are supported: DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, - * DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, - * or DataBuffer.TYPE_DOUBLE. + * Sets the data elements which represent pixel data to the specified + * rectangle area as a primitive array. The following image data types are + * supported: DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, + * DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, or + * DataBuffer.TYPE_DOUBLE. * - * @param x the X coordinate of the rectangle of pixels. - * @param y the Y coordinate of the rectangle of pixels. - * @param w the width of the rectangle of pixels. - * @param h the height of the rectangle of pixels. - * @param inData the array of primitive type data to be set to the - * specified area. + * @param x + * the X coordinate of the rectangle of pixels. + * @param y + * the Y coordinate of the rectangle of pixels. + * @param w + * the width of the rectangle of pixels. + * @param h + * the height of the rectangle of pixels. + * @param inData + * the array of primitive type data to be set to the specified + * area. */ public void setDataElements(int x, int y, int w, int h, Object inData) { - sampleModel.setDataElements(x - sampleModelTranslateX, - y - sampleModelTranslateY, w, h, inData, dataBuffer); + sampleModel.setDataElements(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, + inData, dataBuffer); } /** - * Creates the child of this WritableRaster by sharing the specified - * rectangular area in this WritableRaster. - * The parentX, parentY, width and height parameters specify rectangular - * area to be shared. - * - * @param parentX the X coordinate of the upper left corner of - * the shared rectangle with respect to this WritableRaster' coordinates. - * @param parentY the Y coordinate of the upper left corner of - * the shared rectangle with respect to this WritableRaster' coordinates. - * @param w the width of the child area. - * @param h the height of the child area. - * @param childMinX the X coordinate of child area mapped to the parentX - * coordinate. - * @param childMinY the Y coordinate of child area mapped to the parentY - * coordinate. - * @param bandList the array of band indicies. + * Creates the child of this WritableRaster by sharing the specified + * rectangular area in this WritableRaster. The parentX, parentY, width and + * height parameters specify rectangular area to be shared. * + * @param parentX + * the X coordinate of the upper left corner of the shared + * rectangle with respect to this WritableRaster' coordinates. + * @param parentY + * the Y coordinate of the upper left corner of the shared + * rectangle with respect to this WritableRaster' coordinates. + * @param w + * the width of the child area. + * @param h + * the height of the child area. + * @param childMinX + * the X coordinate of child area mapped to the parentX + * coordinate. + * @param childMinY + * the Y coordinate of child area mapped to the parentY + * coordinate. + * @param bandList + * the array of band indices. * @return the child WritableRaster. */ - public WritableRaster createWritableChild(int parentX, int parentY, int w, - int h, int childMinX, int childMinY, int bandList[]) { + public WritableRaster createWritableChild(int parentX, int parentY, int w, int h, + int childMinX, int childMinY, int bandList[]) { if (w <= 0 || h <= 0) { - // awt.244=Width or Height of child Raster is less than or equal to zero + // awt.244=Width or Height of child Raster is less than or equal to + // zero throw new RasterFormatException(Messages.getString("awt.244")); //$NON-NLS-1$ } @@ -147,22 +170,22 @@ public class WritableRaster extends Raster { throw new RasterFormatException(Messages.getString("awt.246")); //$NON-NLS-1$ } - if ((long) parentX + w > Integer.MAX_VALUE) { + if ((long)parentX + w > Integer.MAX_VALUE) { // awt.247=parentX + w results in integer overflow throw new RasterFormatException(Messages.getString("awt.247")); //$NON-NLS-1$ } - if ((long) parentY + h > Integer.MAX_VALUE) { + if ((long)parentY + h > Integer.MAX_VALUE) { // awt.248=parentY + h results in integer overflow throw new RasterFormatException(Messages.getString("awt.248")); //$NON-NLS-1$ } - if ((long) childMinX + w > Integer.MAX_VALUE) { + if ((long)childMinX + w > Integer.MAX_VALUE) { // awt.249=childMinX + w results in integer overflow throw new RasterFormatException(Messages.getString("awt.249")); //$NON-NLS-1$ } - if ((long) childMinY + h > Integer.MAX_VALUE) { + if ((long)childMinY + h > Integer.MAX_VALUE) { // awt.24A=childMinY + h results in integer overflow throw new RasterFormatException(Messages.getString("awt.24A")); //$NON-NLS-1$ } @@ -179,59 +202,60 @@ public class WritableRaster extends Raster { int childTranslateY = childMinY - parentY; return new WritableRaster(childModel, dataBuffer, - new Rectangle(childMinX, childMinY, w, h), - new Point(childTranslateX + sampleModelTranslateX, - childTranslateY + sampleModelTranslateY), - this); + new Rectangle(childMinX, childMinY, w, h), new Point(childTranslateX + + sampleModelTranslateX, childTranslateY + sampleModelTranslateY), this); } /** - * Creates the translated child of this WritableRaster. - * New WritableRaster object is a reference to the this - * WritableRaster and with different location. - * - * @param childMinX the X coordinate of the new WritableRaster. - * @param childMinY the Y coordinate of the new WritableRaster. + * Creates the translated child of this WritableRaster. New WritableRaster + * object is a reference to the this WritableRaster and with different + * location. * + * @param childMinX + * the X coordinate of the new WritableRaster. + * @param childMinY + * the Y coordinate of the new WritableRaster. * @return the WritableRaster. */ - public WritableRaster createWritableTranslatedChild(int childMinX, - int childMinY) { - return createWritableChild(minX, minY, width, height, childMinX, - childMinY, null); + public WritableRaster createWritableTranslatedChild(int childMinX, int childMinY) { + return createWritableChild(minX, minY, width, height, childMinX, childMinY, null); } /** - * Gets the parent WritableRaster for this WritableRaster object. + * Gets the parent WritableRaster for this WritableRaster object. * * @return the parent WritableRaster for this WritableRaster object. */ public WritableRaster getWritableParent() { - return (WritableRaster) parent; + return (WritableRaster)parent; } /** - * Sets pixels from the specified source Raster srcRaster to this + * Sets pixels from the specified source Raster srcRaster to this * WritableRaster. * - * @param srcRaster the source Raster. + * @param srcRaster + * the source Raster. */ public void setRect(Raster srcRaster) { setRect(0, 0, srcRaster); } /** - * Sets pixels from the specified source Raster srcRaster to this - * WritableRaster. Each pixel with (x, y) coordinates from the source - * Raster is copied to pixel with (x+dx, y+dy) coordinates in this - * WritableRaster. The pixels with (x+dx, y+dy) coordinates which - * are out the bounds of this raster are ignored. - * - * @param dx the distance the pixel's X coordinate in the source - * Raster is translated when writtien to this WritableRaster. - * @param dy the distance the pixel's Y coordinate in the source - * Raster is translated when writtien to this WritableRaster. - * @param srcRaster the source Raster. + * Sets pixels from the specified source Raster srcRaster to this + * WritableRaster. Each pixel with (x, y) coordinates from the source Raster + * is copied to pixel with (x+dx, y+dy) coordinates in this WritableRaster. + * The pixels with (x+dx, y+dy) coordinates which are out the bounds of this + * raster are ignored. + * + * @param dx + * the distance the pixel's X coordinate in the source Raster is + * translated when writtien to this WritableRaster. + * @param dy + * the distance the pixel's Y coordinate in the source Raster is + * translated when writtien to this WritableRaster. + * @param srcRaster + * the source Raster. */ public void setRect(int dx, int dy, Raster srcRaster) { int w = srcRaster.getWidth(); @@ -272,47 +296,47 @@ public class WritableRaster extends Raster { } switch (sampleModel.getDataType()) { - case DataBuffer.TYPE_BYTE: - case DataBuffer.TYPE_SHORT: - case DataBuffer.TYPE_USHORT: - case DataBuffer.TYPE_INT: - int iPixelsLine[] = null; - for (int i = 0; i < h; i++) { - iPixelsLine = srcRaster.getPixels(srcX, srcY + i, w, 1, - iPixelsLine); - setPixels(dstX, dstY + i, w, 1, iPixelsLine); - } - break; - - case DataBuffer.TYPE_FLOAT: - float fPixelsLine[] = null; - for (int i = 0; i < h; i++) { - fPixelsLine = srcRaster.getPixels(srcX, srcY + i, w, 1, - fPixelsLine); - setPixels(dstX, dstY + i, w, 1, fPixelsLine); - } - break; - - case DataBuffer.TYPE_DOUBLE: - double dPixelsLine[] = null; - for (int i = 0; i < h; i++) { - dPixelsLine = srcRaster.getPixels(srcX, srcY + i, w, 1, - dPixelsLine); - setPixels(dstX, dstY + i, w, 1, dPixelsLine); - } - break; + case DataBuffer.TYPE_BYTE: + case DataBuffer.TYPE_SHORT: + case DataBuffer.TYPE_USHORT: + case DataBuffer.TYPE_INT: + int iPixelsLine[] = null; + for (int i = 0; i < h; i++) { + iPixelsLine = srcRaster.getPixels(srcX, srcY + i, w, 1, iPixelsLine); + setPixels(dstX, dstY + i, w, 1, iPixelsLine); + } + break; + + case DataBuffer.TYPE_FLOAT: + float fPixelsLine[] = null; + for (int i = 0; i < h; i++) { + fPixelsLine = srcRaster.getPixels(srcX, srcY + i, w, 1, fPixelsLine); + setPixels(dstX, dstY + i, w, 1, fPixelsLine); + } + break; + + case DataBuffer.TYPE_DOUBLE: + double dPixelsLine[] = null; + for (int i = 0; i < h; i++) { + dPixelsLine = srcRaster.getPixels(srcX, srcY + i, w, 1, dPixelsLine); + setPixels(dstX, dstY + i, w, 1, dPixelsLine); + } + break; } } /** - * Sets the data for a rectangle of pixels from an input Raster to - * this WritableRaster. + * Sets the data for a rectangle of pixels from an input Raster to this + * WritableRaster. * - * @param x the X coordinate of the point where the data of - * the input Raster is to be written. - * @param y the Y coordinate of the point where the data of - * the input Raster is to be written. - * @param inRaster the input Raster. + * @param x + * the X coordinate of the point where the data of the input + * Raster is to be written. + * @param y + * the Y coordinate of the point where the data of the input + * Raster is to be written. + * @param inRaster + * the input Raster. */ public void setDataElements(int x, int y, Raster inRaster) { int dstX = x + inRaster.getMinX(); @@ -321,8 +345,8 @@ public class WritableRaster extends Raster { int w = inRaster.getWidth(); int h = inRaster.getHeight(); - if (dstX < this.minX || dstX + w > this.minX + this.width || - dstY < this.minY || dstY + h > this.minY + this.height) { + if (dstX < this.minX || dstX + w > this.minX + this.width || dstY < this.minY + || dstY + h > this.minY + this.height) { // awt.63=Coordinates are not in bounds throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.63")); //$NON-NLS-1$ } @@ -338,179 +362,231 @@ public class WritableRaster extends Raster { } /** - * Sets a int array of samples for the specified pixel - * in this WritableRaster. + * Sets an integer array of samples for the specified pixel in this + * WritableRaster. * - * @param x the pixel's X coordinate. - * @param y the pixel's Y coordinate. - * @param iArray the int array of samples. + * @param x + * the pixel's X coordinate. + * @param y + * the pixel's Y coordinate. + * @param iArray + * the integer array of samples. */ public void setPixel(int x, int y, int iArray[]) { - sampleModel.setPixel(x - sampleModelTranslateX, - y - sampleModelTranslateY, iArray, dataBuffer); + sampleModel.setPixel(x - sampleModelTranslateX, y - sampleModelTranslateY, iArray, + dataBuffer); } /** - * Sets a float array of samples for the specified pixel - * in this WritableRaster. + * Sets a float array of samples for the specified pixel in this + * WritableRaster. * - * @param x the pixel's X coordinate. - * @param y the pixel's Y coordinate. - * @param fArray the float array of samples. + * @param x + * the pixel's X coordinate. + * @param y + * the pixel's Y coordinate. + * @param fArray + * the float array of samples. */ public void setPixel(int x, int y, float fArray[]) { - sampleModel.setPixel(x - sampleModelTranslateX, - y - sampleModelTranslateY, fArray, dataBuffer); + sampleModel.setPixel(x - sampleModelTranslateX, y - sampleModelTranslateY, fArray, + dataBuffer); } /** - * Sets a double array of samples for the specified pixel - * in this WritableRaster. + * Sets a double array of samples for the specified pixel in this + * WritableRaster. * - * @param x the pixel's X coordinate. - * @param y the pixel's Y coordinate. - * @param dArray the double array of samples. + * @param x + * the pixel's X coordinate. + * @param y + * the pixel's Y coordinate. + * @param dArray + * the double array of samples. */ public void setPixel(int x, int y, double dArray[]) { - sampleModel.setPixel(x - sampleModelTranslateX, - y - sampleModelTranslateY, dArray, dataBuffer); + sampleModel.setPixel(x - sampleModelTranslateX, y - sampleModelTranslateY, dArray, + dataBuffer); } /** - * Sets a int array of samples for the specified rectangular area - * of pixels in this WritableRaster. + * Sets a integer array of samples for the specified rectangular area of + * pixels in this WritableRaster. * - * @param x the X coordinate of rectangular area. - * @param y the Y coordinate of rectangular area. - * @param w the width of rectangular area. - * @param h the height of rectangular area. - * @param iArray the int array of samples. + * @param x + * the X coordinate of rectangular area. + * @param y + * the Y coordinate of rectangular area. + * @param w + * the width of rectangular area. + * @param h + * the height of rectangular area. + * @param iArray + * the integer array of samples. */ public void setPixels(int x, int y, int w, int h, int iArray[]) { - sampleModel.setPixels(x - sampleModelTranslateX, - y - sampleModelTranslateY, w, h, iArray, dataBuffer); + sampleModel.setPixels(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, iArray, + dataBuffer); } /** - * Sets a float array of samples for the specified rectangular area - * of pixels in this WritableRaster. + * Sets a float array of samples for the specified rectangular area of + * pixels in this WritableRaster. * - * @param x the X coordinate of rectangular area. - * @param y the Y coordinate of rectangular area. - * @param w the width of rectangular area. - * @param h the height of rectangular area. - * @param fArray the float array of samples. + * @param x + * the X coordinate of rectangular area. + * @param y + * the Y coordinate of rectangular area. + * @param w + * the width of rectangular area. + * @param h + * the height of rectangular area. + * @param fArray + * the float array of samples. */ public void setPixels(int x, int y, int w, int h, float fArray[]) { - sampleModel.setPixels(x - sampleModelTranslateX, - y - sampleModelTranslateY, w, h, fArray, dataBuffer); + sampleModel.setPixels(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, fArray, + dataBuffer); } /** - * Sets a double array of samples for the specified rectangular area - * of pixels in this WritableRaster. + * Sets a double array of samples for the specified rectangular area of + * pixels in this WritableRaster. * - * @param x the X coordinate of rectangular area. - * @param y the Y coordinate of rectangular area. - * @param w the width of rectangular area. - * @param h the height of rectangular area. - * @param dArray the double array of samples. + * @param x + * the X coordinate of rectangular area. + * @param y + * the Y coordinate of rectangular area. + * @param w + * the width of rectangular area. + * @param h + * the height of rectangular area. + * @param dArray + * the double array of samples. */ public void setPixels(int x, int y, int w, int h, double dArray[]) { - sampleModel.setPixels(x - sampleModelTranslateX, - y - sampleModelTranslateY, w, h, dArray, dataBuffer); + sampleModel.setPixels(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, dArray, + dataBuffer); } /** - * Sets the samples for the specified band and the specified - * rectangular area of pixels with an int array of samples. + * Sets the samples for the specified band and the specified rectangular + * area of pixels with an integer array of samples. * - * @param x the X coordinate of the area of pixels. - * @param y the Y coordinate of the area of pixels. - * @param w the width of the area of pixels. - * @param h the height of the area of pixels. - * @param b the specified band. - * @param iArray the int array of samples. - + * @param x + * the X coordinate of the area of pixels. + * @param y + * the Y coordinate of the area of pixels. + * @param w + * the width of the area of pixels. + * @param h + * the height of the area of pixels. + * @param b + * the specified band. + * @param iArray + * the integer array of samples. */ public void setSamples(int x, int y, int w, int h, int b, int iArray[]) { - sampleModel.setSamples(x - sampleModelTranslateX, - y - sampleModelTranslateY, w, h, b, iArray, dataBuffer); + sampleModel.setSamples(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, b, + iArray, dataBuffer); } /** - * Sets the samples for the specified band and the specified - * rectangular area of pixels with a float array of samples. + * Sets the samples for the specified band and the specified rectangular + * area of pixels with a float array of samples. * - * @param x the X coordinate of the area of pixels. - * @param y the Y coordinate of the area of pixels. - * @param w the width of the area of pixels. - * @param h the height of the area of pixels. - * @param b the specified band. - * @param fArray the float array of samples. + * @param x + * the X coordinate of the area of pixels. + * @param y + * the Y coordinate of the area of pixels. + * @param w + * the width of the area of pixels. + * @param h + * the height of the area of pixels. + * @param b + * the specified band. + * @param fArray + * the float array of samples. */ public void setSamples(int x, int y, int w, int h, int b, float fArray[]) { - sampleModel.setSamples(x - sampleModelTranslateX, - y - sampleModelTranslateY, w, h, b, fArray, dataBuffer); + sampleModel.setSamples(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, b, + fArray, dataBuffer); } /** - * Sets the samples for the specified band and the specified - * rectangular area of pixels with a double array of samples. + * Sets the samples for the specified band and the specified rectangular + * area of pixels with a double array of samples. * - * @param x the X coordinate of the area of pixels. - * @param y the Y coordinate of the area of pixels. - * @param w the width of the area of pixels. - * @param h the height of the area of pixels. - * @param b the specified band. - * @param dArray the double array of samples. + * @param x + * the X coordinate of the area of pixels. + * @param y + * the Y coordinate of the area of pixels. + * @param w + * the width of the area of pixels. + * @param h + * the height of the area of pixels. + * @param b + * the specified band. + * @param dArray + * the double array of samples. */ public void setSamples(int x, int y, int w, int h, int b, double dArray[]) { - sampleModel.setSamples(x - sampleModelTranslateX, - y - sampleModelTranslateY, w, h, b, dArray, dataBuffer); + sampleModel.setSamples(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, b, + dArray, dataBuffer); } /** - * Sets the sample for the specified band and the specified - * pixel with an int sample. + * Sets the sample for the specified band and the specified pixel with an + * integer sample. * - * @param x the X coordinate of the pixel. - * @param y the Y coordinate of the pixel. - * @param b the specified band. - * @param s the sample to be set. + * @param x + * the X coordinate of the pixel. + * @param y + * the Y coordinate of the pixel. + * @param b + * the specified band. + * @param s + * the sample to be set. */ public void setSample(int x, int y, int b, int s) { - sampleModel.setSample(x - sampleModelTranslateX, - y - sampleModelTranslateY, b, s, dataBuffer); + sampleModel.setSample(x - sampleModelTranslateX, y - sampleModelTranslateY, b, s, + dataBuffer); } /** - * Sets the sample for the specified band and the specified - * pixel with a float sample. + * Sets the sample for the specified band and the specified pixel with a + * float sample. * - * @param x the X coordinate of the pixel. - * @param y the Y coordinate of the pixel. - * @param b the specified band. - * @param s the sample to be set. + * @param x + * the X coordinate of the pixel. + * @param y + * the Y coordinate of the pixel. + * @param b + * the specified band. + * @param s + * the sample to be set. */ public void setSample(int x, int y, int b, float s) { - sampleModel.setSample(x - sampleModelTranslateX, - y - sampleModelTranslateY, b, s, dataBuffer); + sampleModel.setSample(x - sampleModelTranslateX, y - sampleModelTranslateY, b, s, + dataBuffer); } /** - * Sets the sample for the specified band and the specified - * pixel with a int sample. + * Sets the sample for the specified band and the specified pixel with an + * integer sample. * - * @param x the X coordinate of the pixel. - * @param y the Y coordinate of the pixel. - * @param b the specified band. - * @param s the sample to be set. + * @param x + * the X coordinate of the pixel. + * @param y + * the Y coordinate of the pixel. + * @param b + * the specified band. + * @param s + * the sample to be set. */ public void setSample(int x, int y, int b, double s) { - sampleModel.setSample(x - sampleModelTranslateX, - y - sampleModelTranslateY, b, s, dataBuffer); + sampleModel.setSample(x - sampleModelTranslateX, y - sampleModelTranslateY, b, s, + dataBuffer); } } - diff --git a/awt/java/awt/image/WritableRenderedImage.java b/awt/java/awt/image/WritableRenderedImage.java index ee1cb9e..052353b 100644 --- a/awt/java/awt/image/WritableRenderedImage.java +++ b/awt/java/awt/image/WritableRenderedImage.java @@ -18,23 +18,27 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image; import java.awt.Point; /** - * The WriteableRenderedImage interface is interface for objects which - * contains Raster data of one or several tiles. This interface provides - * notification mehanism for obtaining tile's writing status. + * The WriteableRenderedImage interface is interface for objects which contains + * Raster data of one or several tiles. This interface provides notification + * mechanism for obtaining tile's writing status. + * + * @since Android 1.0 */ public interface WritableRenderedImage extends RenderedImage { /** - * Gets and checks out the writable tile for writing. - * - * @param tileX the X index of the tile. - * @param tileY the Y index of the tile. + * Gets and checks out the writable tile for writing. * + * @param tileX + * the X index of the tile. + * @param tileY + * the Y index of the tile. * @return the WritableRaster. */ public WritableRaster getWritableTile(int tileX, int tileY); @@ -42,60 +46,64 @@ public interface WritableRenderedImage extends RenderedImage { /** * Removes the registered TileObserver. * - * @param to the TileObserver which is registered for this - * WritableRenderedImage. + * @param to + * the TileObserver which is registered for this + * WritableRenderedImage. */ public void removeTileObserver(TileObserver to); /** * Adds the specified TileObserver to this WritableRenderedImage. * - * @param to the TileObserver object to be added. + * @param to + * the TileObserver object to be added. */ public void addTileObserver(TileObserver to); /** - * Sets this image to the contents of the specified Raster. + * Sets this image to the contents of the specified Raster. * - * @param r the specified Raster. + * @param r + * the specified Raster. */ public void setData(Raster r); /** - * Gets the array of points wich represent indices of tiles which - * are check out for writing. + * Gets the array of points which represent indices of tiles which are check + * out for writing. * - * @return the array of Points. + * @return the array of points. */ public Point[] getWritableTileIndices(); /** * Checks if the specified tile is writable or not. * - * @param tileX the X index of tile. - * @param tileY the Y index of tile. - * - * @return true, if the specified tile is writable, - * false otherwise. + * @param tileX + * the X index of tile. + * @param tileY + * the Y index of tile. + * @return true, if the specified tile is writable, false otherwise. */ public boolean isTileWritable(int tileX, int tileY); /** - * Release the specified writable tile. This method removes the writer - * from the tile. + * Release the specified writable tile. This method removes the writer from + * the tile. * - * @param tileX the X index of the tile. - * @param tileY the Y index of the tile. + * @param tileX + * the X index of the tile. + * @param tileY + * the Y index of the tile. */ public void releaseWritableTile(int tileX, int tileY); /** * Checks if there is a tile which is checked out for writing. * - * @return true, if any tile is checked out for writing, false if there - * is no such tile. + * @return true, if any tile is checked out for writing, false if there is + * no such tile. */ public boolean hasTileWriters(); } - diff --git a/awt/java/awt/image/package.html b/awt/java/awt/image/package.html new file mode 100644 index 0000000..b4d6ef0 --- /dev/null +++ b/awt/java/awt/image/package.html @@ -0,0 +1,8 @@ +<html> + <body> + <p> + This package contains classes and interfaces that allow to modify existing images or to create a new image rather than loading it from a file. + </p> + @since Android 1.0 + </body> +</html> diff --git a/awt/java/awt/image/renderable/ContextualRenderedImageFactory.java b/awt/java/awt/image/renderable/ContextualRenderedImageFactory.java index 3e96637..1881a0c 100644 --- a/awt/java/awt/image/renderable/ContextualRenderedImageFactory.java +++ b/awt/java/awt/image/renderable/ContextualRenderedImageFactory.java @@ -18,72 +18,80 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image.renderable; import java.awt.geom.Rectangle2D; import java.awt.image.RenderedImage; /** - * A factory for creating ContextualRenderedImage objects with utilities - * for manipulating the properties in the parameter block. + * A factory for creating ContextualRenderedImage objects with utilities for + * manipulating the properties in the parameter block. + * + * @since Android 1.0 */ public interface ContextualRenderedImageFactory extends RenderedImageFactory { /** * Maps a render context to a parameter block and a renderable image. * - * @param a0 the index - * @param a1 the RenderContext - * @param a2 the ParameterBlock - * @param a3 the RenderableImage - * - * @return the render context + * @param a0 + * the index. + * @param a1 + * the RenderContext. + * @param a2 + * the ParameterBlock. + * @param a3 + * the RenderableImage. + * @return the render context. */ - public RenderContext mapRenderContext(int a0, RenderContext a1, ParameterBlock a2, RenderableImage a3); + public RenderContext mapRenderContext(int a0, RenderContext a1, ParameterBlock a2, + RenderableImage a3); /** * Gets the value of the property from the parameter block. * - * @param a0 the parameter block to examine to find the property - * @param a1 the name of the property - * - * @return the value of the property + * @param a0 + * the parameter block to examine to find the property. + * @param a1 + * the name of the property. + * @return the value of the property. */ public Object getProperty(ParameterBlock a0, String a1); /** - * Creates the rendered image determined by the render context and - * parameter block. + * Creates the rendered image determined by the render context and parameter + * block. * - * @param a0 the RenderContext - * @param a1 the ParameterBlock - * - * @return the rendered image + * @param a0 + * the RenderContext. + * @param a1 + * the ParameterBlock. + * @return the rendered image. */ public RenderedImage create(RenderContext a0, ParameterBlock a1); /** * Gets the bounding rectangle from the parameter block. * - * @param a0 the parameter block to read the bounds from - * - * @return the bounding rectangle + * @param a0 + * the parameter block to read the bounds from. + * @return the bounding rectangle. */ public Rectangle2D getBounds2D(ParameterBlock a0); /** * Gets the names of all of the supported properties. * - * @return the property names + * @return the property names. */ public String[] getPropertyNames(); /** * Checks if this image factory is dynamic. * - * @return true, if this image factory is dynamic + * @return true, if this image factory is dynamic. */ public boolean isDynamic(); } - diff --git a/awt/java/awt/image/renderable/ParameterBlock.java b/awt/java/awt/image/renderable/ParameterBlock.java index 1555f45..7dde73a 100644 --- a/awt/java/awt/image/renderable/ParameterBlock.java +++ b/awt/java/awt/image/renderable/ParameterBlock.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image.renderable; import java.awt.image.RenderedImage; @@ -25,28 +26,36 @@ import java.io.Serializable; import java.util.Vector; /** - * The Class ParameterBlock groups an indexed set of parameter data - * with a set of renderable (source) images. The mapping between - * the indexed parameters and their property names is provided - * by a {@link ContextualRenderedImageFactory} + * The class ParameterBlock groups an indexed set of parameter data with a set + * of renderable (source) images. The mapping between the indexed parameters and + * their property names is provided by a {@link ContextualRenderedImageFactory}. + * + * @since Android 1.0 */ public class ParameterBlock implements Cloneable, Serializable { - - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -7577115551785240750L; - /** The sources (renderable images). */ + /** + * The sources (renderable images). + */ protected Vector<Object> sources = new Vector<Object>(); - /** The parameters. */ + /** + * The parameters. + */ protected Vector<Object> parameters = new Vector<Object>(); /** * Instantiates a new parameter block. * - * @param sources the vector of source images - * @param parameters the vector of parameters + * @param sources + * the vector of source images. + * @param parameters + * the vector of parameters. */ public ParameterBlock(Vector<Object> sources, Vector<Object> parameters) { setSources(sources); @@ -56,7 +65,8 @@ public class ParameterBlock implements Cloneable, Serializable { /** * Instantiates a new parameter block with no parameters. * - * @param sources the vector of source images + * @param sources + * the vector of source images. */ public ParameterBlock(Vector<Object> sources) { setSources(sources); @@ -65,18 +75,20 @@ public class ParameterBlock implements Cloneable, Serializable { /** * Instantiates a new parameter block with no image or parameter vectors. */ - public ParameterBlock() {} + public ParameterBlock() { + } /** * Sets the source image at the specified index. * - * @param source the source image - * @param index the index where the source will be placed - * - * @return this parameter block + * @param source + * the source image. + * @param index + * the index where the source will be placed. + * @return this parameter block. */ public ParameterBlock setSource(Object source, int index) { - if(sources.size() < index + 1){ + if (sources.size() < index + 1) { sources.setSize(index + 1); } sources.setElementAt(source, index); @@ -86,14 +98,15 @@ public class ParameterBlock implements Cloneable, Serializable { /** * Sets the parameter value object at the specified index. * - * @param obj the parameter value to place at the desired index - * @param index the index where the object is to be placed in the - * vector of parameters - * - * @return this parameter block + * @param obj + * the parameter value to place at the desired index. + * @param index + * the index where the object is to be placed in the vector of + * parameters. + * @return this parameter block. */ public ParameterBlock set(Object obj, int index) { - if(parameters.size() < index + 1){ + if (parameters.size() < index + 1) { parameters.setSize(index + 1); } parameters.setElementAt(obj, index); @@ -103,9 +116,9 @@ public class ParameterBlock implements Cloneable, Serializable { /** * Adds a source to the vector of sources. * - * @param source the source to add - * - * @return this parameter block + * @param source + * the source to add. + * @return this parameter block. */ public ParameterBlock addSource(Object source) { sources.addElement(source); @@ -115,9 +128,9 @@ public class ParameterBlock implements Cloneable, Serializable { /** * Adds the object to the vector of parameter values * - * @param obj the obj to add - * - * @return this parameter block + * @param obj + * the obj to add. + * @return this parameter block. */ public ParameterBlock add(Object obj) { parameters.addElement(obj); @@ -125,20 +138,22 @@ public class ParameterBlock implements Cloneable, Serializable { } /** - * Sets the vector of sources, replacing the existing - * vector of sources, if any. + * Sets the vector of sources, replacing the existing vector of sources, if + * any. * - * @param sources the new sources + * @param sources + * the new sources. */ public void setSources(Vector<Object> sources) { this.sources = sources; } /** - * Sets the vector of parameters, replacing the existing - * vector of parameters, if any. + * Sets the vector of parameters, replacing the existing vector of + * parameters, if any. * - * @param parameters the new parameters + * @param parameters + * the new parameters. */ public void setParameters(Vector<Object> parameters) { this.parameters = parameters; @@ -147,7 +162,7 @@ public class ParameterBlock implements Cloneable, Serializable { /** * Gets the vector of sources. * - * @return the sources + * @return the sources. */ public Vector<Object> getSources() { return sources; @@ -156,7 +171,7 @@ public class ParameterBlock implements Cloneable, Serializable { /** * Gets the vector of parameters. * - * @return the parameters + * @return the parameters. */ public Vector<Object> getParameters() { return parameters; @@ -165,9 +180,9 @@ public class ParameterBlock implements Cloneable, Serializable { /** * Gets the source at the specified index. * - * @param index the index - * - * @return the source object found at the specified index + * @param index + * the index. + * @return the source object found at the specified index. */ public Object getSource(int index) { return sources.elementAt(index); @@ -176,9 +191,9 @@ public class ParameterBlock implements Cloneable, Serializable { /** * Gets the object parameter found at the specified index. * - * @param index the index - * - * @return the parameter object found at the specified index + * @param index + * the index. + * @return the parameter object found at the specified index. */ public Object getObjectParameter(int index) { return parameters.elementAt(index); @@ -187,328 +202,333 @@ public class ParameterBlock implements Cloneable, Serializable { /** * Shallow clone (clones using the superclass clone method). * - * @return the clone of this object + * @return the clone of this object. */ public Object shallowClone() { - try{ + try { return super.clone(); - }catch(Exception e){ + } catch (Exception e) { return null; } } + /** + * Returns a copy of this ParameterBlock instance. + * + * @return the identical copy of this instance. + */ @SuppressWarnings("unchecked") @Override public Object clone() { ParameterBlock replica; - try{ + try { replica = (ParameterBlock)super.clone(); - }catch(Exception e){ + } catch (Exception e) { return null; } - if(sources != null){ + if (sources != null) { replica.setSources((Vector<Object>)(sources.clone())); } - if(parameters != null){ + if (parameters != null) { replica.setParameters((Vector<Object>)(parameters.clone())); } return replica; } /** - * Gets an array of classes corresponding to all of the parameter - * values found in the array of parameters, in order. + * Gets an array of classes corresponding to all of the parameter values + * found in the array of parameters, in order. * - * @return the parameter classes + * @return the parameter classes. */ public Class[] getParamClasses() { int count = parameters.size(); Class paramClasses[] = new Class[count]; - for(int i = 0; i < count; i++){ + for (int i = 0; i < count; i++) { paramClasses[i] = parameters.elementAt(i).getClass(); } return paramClasses; } /** - * Gets the renderable source image found at the specified index - * in the source array. - * - * @param index the index + * Gets the renderable source image found at the specified index in the + * source array. * - * @return the renderable source image + * @param index + * the index. + * @return the renderable source image. */ public RenderableImage getRenderableSource(int index) { return (RenderableImage)sources.elementAt(index); } /** - * Wraps the short value in a Short and places it in the - * parameter block at the specified index. + * Wraps the short value in a Short and places it in the parameter block at + * the specified index. * - * @param s the short value of the parameter - * @param index the index - * - * @return this parameter block + * @param s + * the short value of the parameter. + * @param index + * the index. + * @return this parameter block. */ public ParameterBlock set(short s, int index) { return set(new Short(s), index); } /** - * Wraps the short value in a Short and adds it to the - * parameter block. - * - * @param s the short value of the parameter + * Wraps the short value in a Short and adds it to the parameter block. * - * @return this parameter block + * @param s + * the short value of the parameter. + * @return this parameter block. */ public ParameterBlock add(short s) { return add(new Short(s)); } /** - * Wraps the long value in a Long and places it in the - * parameter block at the specified index. + * Wraps the long value in a Long and places it in the parameter block at + * the specified index. * - * @param l the long value of the parameter - * @param index the index - * - * @return this parameter block + * @param l + * the long value of the parameter. + * @param index + * the index. + * @return this parameter block. */ public ParameterBlock set(long l, int index) { return set(new Long(l), index); } /** - * Wraps the long value in a Long and adds it to the - * parameter block. - * - * @param l the long value of the parameter + * Wraps the long value in a Long and adds it to the parameter block. * - * @return this parameter block + * @param l + * the long value of the parameter. + * @return this parameter block. */ public ParameterBlock add(long l) { return add(new Long(l)); } /** - * Wraps the int value in an Integer and places it in the - * parameter block at the specified index. - * - * @param i the int value of the parameter - * @param index the index + * Wraps the integer value in an Integer and places it in the parameter + * block at the specified index. * - * @return this parameter block + * @param i + * the integer value of the parameter. + * @param index + * the index. + * @return this parameter block. */ public ParameterBlock set(int i, int index) { return set(new Integer(i), index); } /** - * Wraps the int value in an Integer and adds it to the - * parameter block. + * Wraps the integer value in an Integer and adds it to the parameter block. * - * @param i the int value of the parameter - * - * @return this parameter block + * @param i + * the integer value of the parameter. + * @return this parameter block. */ public ParameterBlock add(int i) { return add(new Integer(i)); } /** - * Wraps the float value in a Float and places it in the - * parameter block at the specified index. - * - * @param f the float value of the parameter - * @param index the index + * Wraps the float value in a Float and places it in the parameter block at + * the specified index. * - * @return this parameter block + * @param f + * the float value of the parameter. + * @param index + * the index. + * @return this parameter block. */ public ParameterBlock set(float f, int index) { return set(new Float(f), index); } /** - * Wraps the float value in a Float and adds it to the - * parameter block. + * Wraps the float value in a Float and adds it to the parameter block. * - * @param f the float value of the parameter - * - * @return this parameter block + * @param f + * the float value of the parameter. + * @return this parameter block. */ public ParameterBlock add(float f) { return add(new Float(f)); } /** - * Wraps the double value in a Double and places it in the - * parameter block at the specified index. - * - * @param d the double value of the parameter - * @param index the index + * Wraps the double value in a Double and places it in the parameter block + * at the specified index. * - * @return this parameter block + * @param d + * the double value of the parameter. + * @param index + * the index. + * @return this parameter block. */ public ParameterBlock set(double d, int index) { return set(new Double(d), index); } /** - * Wraps the double value in a Double and adds it to the - * parameter block. - * - * @param d the double value of the parameter + * Wraps the double value in a Double and adds it to the parameter block. * - * @return this parameter block + * @param d + * the double value of the parameter. + * @return this parameter block. */ public ParameterBlock add(double d) { return add(new Double(d)); } /** - * Wraps the char value in a Character and places it in the - * parameter block at the specified index. + * Wraps the char value in a Character and places it in the parameter block + * at the specified index. * - * @param c the char value of the parameter - * @param index the index - * - * @return this parameter block + * @param c + * the char value of the parameter. + * @param index + * the index. + * @return this parameter block. */ public ParameterBlock set(char c, int index) { return set(new Character(c), index); } /** - * Wraps the char value in a Character and adds it to the - * parameter block. - * - * @param c the char value of the parameter + * Wraps the char value in a Character and adds it to the parameter block. * - * @return this parameter block + * @param c + * the char value of the parameter. + * @return this parameter block. */ public ParameterBlock add(char c) { return add(new Character(c)); } /** - * Wraps the byte value in a Byte and places it in the - * parameter block at the specified index. + * Wraps the byte value in a Byte and places it in the parameter block at + * the specified index. * - * @param b the byte value of the parameter - * @param index the index - * - * @return this parameter block + * @param b + * the byte value of the parameter. + * @param index + * the index. + * @return this parameter block. */ public ParameterBlock set(byte b, int index) { return set(new Byte(b), index); } /** - * Wraps the byte value in a Byte and adds it to the - * parameter block. - * - * @param b the byte value of the parameter + * Wraps the byte value in a Byte and adds it to the parameter block. * - * @return the parameter block + * @param b + * the byte value of the parameter. + * @return the parameter block. */ public ParameterBlock add(byte b) { return add(new Byte(b)); } /** - * Gets the RenderedImage at the specified index from the - * vector of source images. - * - * @param index the index + * Gets the RenderedImage at the specified index from the vector of source + * images. * - * @return the rendered image + * @param index + * the index. + * @return the rendered image. */ public RenderedImage getRenderedSource(int index) { return (RenderedImage)sources.elementAt(index); } /** - * Gets the short-valued parameter found at the desired index - * in the vector of parameter values. + * Gets the short-valued parameter found at the desired index in the vector + * of parameter values. * - * @param index the index - * - * @return the short parameter + * @param index + * the index. + * @return the short parameter. */ public short getShortParameter(int index) { return ((Short)parameters.elementAt(index)).shortValue(); } /** - * Gets the long-valued parameter found at the desired index - * in the vector of parameter values. - * - * @param index the index + * Gets the long-valued parameter found at the desired index in the vector + * of parameter values. * - * @return the long parameter + * @param index + * the index. + * @return the long parameter. */ public long getLongParameter(int index) { return ((Long)parameters.elementAt(index)).longValue(); } /** - * Gets the int-valued parameter found at the desired index - * in the vector of parameter values. + * Gets the integer-valued parameter found at the desired index in the + * vector of parameter values. * - * @param index the index - * - * @return the int parameter + * @param index + * the index. + * @return the integer parameter. */ public int getIntParameter(int index) { return ((Integer)parameters.elementAt(index)).intValue(); } /** - * Gets the float-valued parameter found at the desired index - * in the vector of parameter values. - * - * @param index the index + * Gets the float-valued parameter found at the desired index in the vector + * of parameter values. * - * @return the float parameter + * @param index + * the index. + * @return the float parameter. */ public float getFloatParameter(int index) { return ((Float)parameters.elementAt(index)).floatValue(); } /** - * Gets the double-valued parameter found at the desired index - * in the vector of parameter values. - * - * @param index the index + * Gets the double-valued parameter found at the desired index in the vector + * of parameter values. * - * @return the double parameter + * @param index + * the index. + * @return the double parameter. */ public double getDoubleParameter(int index) { return ((Double)parameters.elementAt(index)).doubleValue(); } /** - * Gets the char-valued parameter found at the desired index - * in the vector of parameter values. + * Gets the char-valued parameter found at the desired index in the vector + * of parameter values. * - * @param index the index - * - * @return the char parameter + * @param index + * the index. + * @return the char parameter. */ public char getCharParameter(int index) { return ((Character)parameters.elementAt(index)).charValue(); } /** - * Gets the byte-valued parameter found at the desired index - * in the vector of parameter values. - * - * @param index the index + * Gets the byte-valued parameter found at the desired index in the vector + * of parameter values. * - * @return the byte parameter + * @param index + * the index. + * @return the byte parameter. */ public byte getByteParameter(int index) { return ((Byte)parameters.elementAt(index)).byteValue(); @@ -531,7 +551,7 @@ public class ParameterBlock implements Cloneable, Serializable { /** * Gets the number of elements in the vector of sources. * - * @return the number of elements in the vector of sources + * @return the number of elements in the vector of sources. */ public int getNumSources() { return sources.size(); @@ -540,7 +560,7 @@ public class ParameterBlock implements Cloneable, Serializable { /** * Gets the number of elements in the vector of parameters. * - * @return the number of elements in the vector of parameters + * @return the number of elements in the vector of parameters. */ public int getNumParameters() { return parameters.size(); diff --git a/awt/java/awt/image/renderable/RenderContext.java b/awt/java/awt/image/renderable/RenderContext.java index 3a3b93c..0db512f 100644 --- a/awt/java/awt/image/renderable/RenderContext.java +++ b/awt/java/awt/image/renderable/RenderContext.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image.renderable; import java.awt.RenderingHints; @@ -25,27 +26,37 @@ import java.awt.Shape; import java.awt.geom.AffineTransform; /** - * The Class RenderContext stores data on how an image is to be - * rendered: the affine transform, the area of interest, and - * the rendering hints. + * The Class RenderContext stores data on how an image is to be rendered: the + * affine transform, the area of interest, and the rendering hints. + * + * @since Android 1.0 */ public class RenderContext implements Cloneable { - /** The affine transform. */ + /** + * The affine transform. + */ AffineTransform transform; - - /** The area of interest. */ + + /** + * The area of interest. + */ Shape aoi; - - /** The rendering hints. */ + + /** + * The rendering hints. + */ RenderingHints hints; /** * Instantiates a new render context. * - * @param usr2dev the affine transform - * @param aoi the area of interest - * @param hints the rendering hints + * @param usr2dev + * the affine transform. + * @param aoi + * the area of interest. + * @param hints + * the rendering hints. */ public RenderContext(AffineTransform usr2dev, Shape aoi, RenderingHints hints) { this.transform = (AffineTransform)usr2dev.clone(); @@ -56,8 +67,10 @@ public class RenderContext implements Cloneable { /** * Instantiates a new render context with no specified hints. * - * @param usr2dev the affine transform - * @param aoi the area of interest + * @param usr2dev + * the affine transform. + * @param aoi + * the area of interest. */ public RenderContext(AffineTransform usr2dev, Shape aoi) { this(usr2dev, aoi, null); @@ -66,18 +79,21 @@ public class RenderContext implements Cloneable { /** * Instantiates a new render context with no specified area of interest. * - * @param usr2dev the affine transform - * @param hints the rendering hints + * @param usr2dev + * the affine transform. + * @param hints + * the rendering hints. */ public RenderContext(AffineTransform usr2dev, RenderingHints hints) { this(usr2dev, null, hints); } /** - * Instantiates a new render context with no rendering hints or - * area of interest. + * Instantiates a new render context with no rendering hints or area of + * interest. * - * @param usr2dev the affine transform + * @param usr2dev + * the affine transform. */ public RenderContext(AffineTransform usr2dev) { this(usr2dev, null, null); @@ -91,36 +107,36 @@ public class RenderContext implements Cloneable { /** * Sets the affine transform for this render context. * - * @param newTransform the new affine transform + * @param newTransform + * the new affine transform. */ public void setTransform(AffineTransform newTransform) { transform = (AffineTransform)newTransform.clone(); } /** - * Concatenates the current transform with the specified transform - * (so they are applied with the specified transform acting first) - * and sets the resulting transform as the affine transform of - * this rendering context. - * - * @param modTransform the new transform which modifies the - * current transform - * - * @deprecated use {@link RenderContext#preConcatenateTransform(AffineTransform)} + * Concatenates the current transform with the specified transform (so they + * are applied with the specified transform acting first) and sets the + * resulting transform as the affine transform of this rendering context. + * + * @param modTransform + * the new transform which modifies the current transform. + * @deprecated use + * {@link RenderContext#preConcatenateTransform(AffineTransform)} + * . */ - @Deprecated + @Deprecated public void preConcetenateTransform(AffineTransform modTransform) { preConcatenateTransform(modTransform); } /** - * Concatenates the current transform with the specified transform - * (so they are applied with the specified transform acting first) - * and sets the resulting transform as the affine transform of - * this rendering context. + * Concatenates the current transform with the specified transform (so they + * are applied with the specified transform acting first) and sets the + * resulting transform as the affine transform of this rendering context. * - * @param modTransform the new transform which modifies the - * current transform + * @param modTransform + * the new transform which modifies the current transform. */ public void preConcatenateTransform(AffineTransform modTransform) { transform.preConcatenate(modTransform); @@ -129,10 +145,10 @@ public class RenderContext implements Cloneable { /** * Concatenate the specified transform with the current transform. * - * @param modTransform the new transform which modifies the - * current transform - * - * @deprecated use {@link RenderContext#concatenateTransform(AffineTransform)} + * @param modTransform + * the new transform which modifies the current transform. + * @deprecated use + * {@link RenderContext#concatenateTransform(AffineTransform)}. */ @Deprecated public void concetenateTransform(AffineTransform modTransform) { @@ -142,8 +158,8 @@ public class RenderContext implements Cloneable { /** * Concatenate the specified transform with the current transform. * - * @param modTransform the new transform which modifies the - * current transform + * @param modTransform + * the new transform which modifies the current transform. */ public void concatenateTransform(AffineTransform modTransform) { transform.concatenate(modTransform); @@ -152,7 +168,7 @@ public class RenderContext implements Cloneable { /** * Gets the transform. * - * @return the transform + * @return the transform. */ public AffineTransform getTransform() { return (AffineTransform)transform.clone(); @@ -161,7 +177,8 @@ public class RenderContext implements Cloneable { /** * Sets the area of interest. * - * @param newAoi the new area of interest + * @param newAoi + * the new area of interest. */ public void setAreaOfInterest(Shape newAoi) { aoi = newAoi; @@ -170,7 +187,7 @@ public class RenderContext implements Cloneable { /** * Gets the area of interest. * - * @return the area of interest + * @return the area of interest. */ public Shape getAreaOfInterest() { return aoi; @@ -179,7 +196,8 @@ public class RenderContext implements Cloneable { /** * Sets the rendering hints. * - * @param hints the new rendering hints + * @param hints + * the new rendering hints. */ public void setRenderingHints(RenderingHints hints) { this.hints = hints; @@ -188,7 +206,7 @@ public class RenderContext implements Cloneable { /** * Gets the rendering hints. * - * @return the rendering hints + * @return the rendering hints. */ public RenderingHints getRenderingHints() { return hints; diff --git a/awt/java/awt/image/renderable/RenderableImage.java b/awt/java/awt/image/renderable/RenderableImage.java index 885dc06..21332f7 100644 --- a/awt/java/awt/image/renderable/RenderableImage.java +++ b/awt/java/awt/image/renderable/RenderableImage.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image.renderable; import java.awt.RenderingHints; @@ -25,108 +26,113 @@ import java.awt.image.RenderedImage; import java.util.Vector; /** - * The Interface RenderableImage is implemented by an object that - * collects all of the image-specific data that defines a single image - * that could be rendered to different rendering targets. + * The Interface RenderableImage is implemented by an object that collects all + * of the image-specific data that defines a single image that could be rendered + * to different rendering targets. + * + * @since Android 1.0 */ public interface RenderableImage { - /** The Constant HINTS_OBSERVED indicates that the rendering - * hints are applied rather than ignored. */ + /** + * The Constant HINTS_OBSERVED indicates that the rendering hints are + * applied rather than ignored. + */ public static final String HINTS_OBSERVED = "HINTS_OBSERVED"; //$NON-NLS-1$ /** * Gets the property from the RenderableImage's parameter block. * - * @param name the name of the property to get. - * - * @return the value of the property + * @param name + * the name of the property to get. + * @return the value of the property. */ public Object getProperty(String name); /** - * Creates the rendered image based on the information contained - * in the parameters and the render context. + * Creates the rendered image based on the information contained in the + * parameters and the render context. * - * @param renderContext the render context giving rendering specifications - * such as transformations - * - * @return the rendered image + * @param renderContext + * the render context giving rendering specifications such as + * transformations. + * @return the rendered image. */ public RenderedImage createRendering(RenderContext renderContext); /** - * Creates the scaled rendered image based on the information contained - * in the parameters and the render context. - * - * @param w the desired width after scaling or zero if the scaling - * should be proportional, based on the height - * @param h the desired height after scaling or zero if the scaling - * should be proportional, based on the width - * @param hints the rendering hints to use + * Creates the scaled rendered image based on the information contained in + * the parameters and the render context. * - * @return the rendered image - * - * @throws IllegalArgumentException if both the height and width are zero + * @param w + * the desired width after scaling or zero if the scaling should + * be proportional, based on the height. + * @param h + * the desired height after scaling or zero if the scaling should + * be proportional, based on the width. + * @param hints + * the rendering hints to use. + * @return the rendered image. + * @throws IllegalArgumentException + * if both the height and width are zero. */ public RenderedImage createScaledRendering(int w, int h, RenderingHints hints); /** * Gets the vector of sources from the parameter block. * - * @return the sources + * @return the sources. */ public Vector<RenderableImage> getSources(); /** * Gets the names of all of the supported properties in the current context. * - * @return the property names + * @return the property names. */ public String[] getPropertyNames(); /** - * Creates the default rendering (using the identity transform - * and default render context). + * Creates the default rendering (using the identity transform and default + * render context). * - * @return the rendered image + * @return the rendered image. */ public RenderedImage createDefaultRendering(); /** * Checks if this context supports dynamic rendering. * - * @return true, if this context supports dynamic rendering + * @return true, if this context supports dynamic rendering. */ public boolean isDynamic(); /** * Gets the width of the image. * - * @return the width of the image + * @return the width of the image. */ public float getWidth(); /** * Gets the y coordinate of the upper left corner. * - * @return the y coordinate of the upper left corner + * @return the y coordinate of the upper left corner. */ public float getMinY(); /** * Gets the x coordinate of the upper left corner. * - * @return the x coordinate of the upper left corner + * @return the x coordinate of the upper left corner. */ public float getMinX(); /** * Gets the height of the image. * - * @return the height of the image + * @return the height of the image. */ public float getHeight(); } - diff --git a/awt/java/awt/image/renderable/RenderableImageOp.java b/awt/java/awt/image/renderable/RenderableImageOp.java index 993ba5f..dc45372 100644 --- a/awt/java/awt/image/renderable/RenderableImageOp.java +++ b/awt/java/awt/image/renderable/RenderableImageOp.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image.renderable; import java.awt.RenderingHints; @@ -29,35 +30,44 @@ import java.util.Vector; import org.apache.harmony.awt.internal.nls.Messages; /** - * The Class RenderableImageOp is a basic implementation of RenderableImage, - * with methods to access the parameter data and perform rendering - * operations. + * The Class RenderableImageOp is a basic implementation of RenderableImage, + * with methods to access the parameter data and perform rendering operations. + * + * @since Android 1.0 */ public class RenderableImageOp implements RenderableImage { - /** The CRIF. */ + /** + * The CRIF. + */ ContextualRenderedImageFactory CRIF; - - /** The param block. */ + + /** + * The param block. + */ ParameterBlock paramBlock; - - /** The height. */ + + /** + * The height. + */ float minX, minY, width, height; /** * Instantiates a new renderable image op. * - * @param CRIF the cRIF - * @param paramBlock the param block + * @param CRIF + * the cRIF. + * @param paramBlock + * the param block. */ public RenderableImageOp(ContextualRenderedImageFactory CRIF, ParameterBlock paramBlock) { this.CRIF = CRIF; - this.paramBlock = (ParameterBlock) paramBlock.clone(); + this.paramBlock = (ParameterBlock)paramBlock.clone(); Rectangle2D r = CRIF.getBounds2D(paramBlock); - minX = (float) r.getMinX(); - minY = (float) r.getMinY(); - width = (float) r.getWidth(); - height = (float) r.getHeight(); + minX = (float)r.getMinX(); + minY = (float)r.getMinY(); + width = (float)r.getWidth(); + height = (float)r.getHeight(); } public Object getProperty(String name) { @@ -67,27 +77,27 @@ public class RenderableImageOp implements RenderableImage { /** * Sets the parameter block. * - * @param paramBlock the param block - * - * @return the parameter block + * @param paramBlock + * the param block. + * @return the parameter block. */ public ParameterBlock setParameterBlock(ParameterBlock paramBlock) { ParameterBlock oldParam = this.paramBlock; - this.paramBlock = (ParameterBlock) paramBlock.clone(); + this.paramBlock = (ParameterBlock)paramBlock.clone(); return oldParam; } public RenderedImage createRendering(RenderContext renderContext) { Vector<RenderableImage> sources = getSources(); - ParameterBlock rdParam = (ParameterBlock) paramBlock.clone(); + ParameterBlock rdParam = (ParameterBlock)paramBlock.clone(); if (sources != null) { Vector<Object> rdSources = new Vector<Object>(); int i = 0; while (i < sources.size()) { - RenderContext newContext = CRIF.mapRenderContext(i, renderContext, paramBlock, - this); + RenderContext newContext = CRIF + .mapRenderContext(i, renderContext, paramBlock, this); RenderedImage rdim = sources.elementAt(i).createRendering(newContext); if (rdim != null) { @@ -103,20 +113,20 @@ public class RenderableImageOp implements RenderableImage { } public RenderedImage createScaledRendering(int w, int h, RenderingHints hints) { - if(w == 0 && h == 0) { + if (w == 0 && h == 0) { // awt.60=Width and Height mustn't be equal zero both throw new IllegalArgumentException(Messages.getString("awt.60")); //$NON-NLS-1$ } - if(w == 0){ - w = Math.round(h*(getWidth()/getHeight())); + if (w == 0) { + w = Math.round(h * (getWidth() / getHeight())); } - if(h == 0){ - h = Math.round(w*(getHeight()/getWidth())); + if (h == 0) { + h = Math.round(w * (getHeight() / getWidth())); } - double sx = (double)w/getWidth(); - double sy = (double)h/getHeight(); + double sx = (double)w / getWidth(); + double sy = (double)h / getHeight(); AffineTransform at = AffineTransform.getScaleInstance(sx, sy); RenderContext context = new RenderContext(at, hints); @@ -124,15 +134,15 @@ public class RenderableImageOp implements RenderableImage { } public Vector<RenderableImage> getSources() { - if(paramBlock.getNumSources() == 0) { + if (paramBlock.getNumSources() == 0) { return null; } Vector<RenderableImage> v = new Vector<RenderableImage>(); - int i = 0; - while(i < paramBlock.getNumSources()){ + int i = 0; + while (i < paramBlock.getNumSources()) { Object o = paramBlock.getSource(i); - if(o instanceof RenderableImage){ - v.addElement((RenderableImage) o); + if (o instanceof RenderableImage) { + v.addElement((RenderableImage)o); } i++; } @@ -179,4 +189,3 @@ public class RenderableImageOp implements RenderableImage { } } - diff --git a/awt/java/awt/image/renderable/RenderableImageProducer.java b/awt/java/awt/image/renderable/RenderableImageProducer.java index 7fda98c..e83ebc7 100644 --- a/awt/java/awt/image/renderable/RenderableImageProducer.java +++ b/awt/java/awt/image/renderable/RenderableImageProducer.java @@ -18,6 +18,7 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image.renderable; import java.awt.image.ColorModel; @@ -28,25 +29,35 @@ import java.awt.image.RenderedImage; import java.util.Vector; /** - * The Class RenderableImageProducer provides the implementation for - * the image rendering. + * The Class RenderableImageProducer provides the implementation for the image + * rendering. + * + * @since Android 1.0 */ public class RenderableImageProducer implements ImageProducer, Runnable { - /** The rbl. */ + /** + * The rbl. + */ RenderableImage rbl; - - /** The rc. */ + + /** + * The rc. + */ RenderContext rc; - - /** The consumers. */ + + /** + * The consumers. + */ Vector<ImageConsumer> consumers = new Vector<ImageConsumer>(); /** * Instantiates a new renderable image producer. * - * @param rdblImage the rdbl image - * @param rc the rc + * @param rdblImage + * the rdbl image. + * @param rc + * the rc. */ public RenderableImageProducer(RenderableImage rdblImage, RenderContext rc) { this.rbl = rdblImage; @@ -56,7 +67,8 @@ public class RenderableImageProducer implements ImageProducer, Runnable { /** * Sets the render context. * - * @param rc the new render context + * @param rc + * the new render context. */ public synchronized void setRenderContext(RenderContext rc) { this.rc = rc; @@ -72,16 +84,17 @@ public class RenderableImageProducer implements ImageProducer, Runnable { t.start(); } - public void requestTopDownLeftRightResend(ImageConsumer ic) {} + public void requestTopDownLeftRightResend(ImageConsumer ic) { + } public synchronized void removeConsumer(ImageConsumer ic) { - if(ic != null) { + if (ic != null) { consumers.removeElement(ic); } } public synchronized void addConsumer(ImageConsumer ic) { - if(ic != null && !consumers.contains(ic)){ + if (ic != null && !consumers.contains(ic)) { consumers.addElement(ic); } } @@ -90,19 +103,19 @@ public class RenderableImageProducer implements ImageProducer, Runnable { * Creates the rendered image in a new thread. */ public void run() { - if(rbl == null) { + if (rbl == null) { return; } RenderedImage rd; - if(rc != null) { + if (rc != null) { rd = rbl.createRendering(rc); } else { rd = rbl.createDefaultRendering(); } ColorModel cm = rd.getColorModel(); - if(cm == null) { + if (cm == null) { cm = ColorModel.getRGBdefault(); } @@ -112,17 +125,15 @@ public class RenderableImageProducer implements ImageProducer, Runnable { for (ImageConsumer c : consumers) { c.setDimensions(w, h); - c.setHints(ImageConsumer.TOPDOWNLEFTRIGHT | - ImageConsumer.COMPLETESCANLINES | - ImageConsumer.SINGLEFRAME | - ImageConsumer.SINGLEPASS); + c.setHints(ImageConsumer.TOPDOWNLEFTRIGHT | ImageConsumer.COMPLETESCANLINES + | ImageConsumer.SINGLEFRAME | ImageConsumer.SINGLEPASS); } int scanLine[] = new int[w]; int pixel[] = null; - for(int y = 0; y < h; y++){ - for(int x = 0; x < w; x++){ + for (int y = 0; y < h; y++) { + for (int x = 0; x < w; x++) { pixel = r.getPixel(x, y, pixel); scanLine[x] = cm.getDataElement(pixel, 0); } @@ -138,4 +149,3 @@ public class RenderableImageProducer implements ImageProducer, Runnable { } } - diff --git a/awt/java/awt/image/renderable/RenderedImageFactory.java b/awt/java/awt/image/renderable/RenderedImageFactory.java index 345d82c..881a40a 100644 --- a/awt/java/awt/image/renderable/RenderedImageFactory.java +++ b/awt/java/awt/image/renderable/RenderedImageFactory.java @@ -18,26 +18,29 @@ * @author Igor V. Stolyarov * @version $Revision$ */ + package java.awt.image.renderable; import java.awt.RenderingHints; import java.awt.image.RenderedImage; /** - * A factory for creating RenderedImage objects based on parameters - * and rendering hints. + * A factory for creating RenderedImage objects based on parameters and + * rendering hints. + * + * @since Android 1.0 */ public interface RenderedImageFactory { /** * Creates the rendered image. * - * @param a0 the ParameterBlock - * @param a1 the RenderingHints - * - * @return the rendered image + * @param a0 + * the ParameterBlock. + * @param a1 + * the RenderingHints. + * @return the rendered image. */ public RenderedImage create(ParameterBlock a0, RenderingHints a1); } - diff --git a/awt/java/awt/image/renderable/package.html b/awt/java/awt/image/renderable/package.html new file mode 100644 index 0000000..43aaabc --- /dev/null +++ b/awt/java/awt/image/renderable/package.html @@ -0,0 +1,8 @@ +<html> + <body> + <p> + This package contains classes to create images which are rendering-independent. + </p> + @since Android 1.0 + </body> +</html> diff --git a/awt/java/awt/package.html b/awt/java/awt/package.html new file mode 100644 index 0000000..5a6f9f0 --- /dev/null +++ b/awt/java/awt/package.html @@ -0,0 +1,8 @@ +<html> + <body> + <p> + This package contains classes and interfaces for creating (graphical) user interfaces (GUI), painting 2D graphics and creating, manipulating and drawing images. + </p> + @since Android 1.0 + </body> +</html> diff --git a/awt/java/beans/IndexedPropertyChangeEvent.java b/awt/java/beans/IndexedPropertyChangeEvent.java deleted file mode 100644 index c9084c6..0000000 --- a/awt/java/beans/IndexedPropertyChangeEvent.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package java.beans; - -/** - * A type of {@link PropertyChangeEvent} that indicates that an indexed property - * has changed. - * - * @since 1.5 - */ -public class IndexedPropertyChangeEvent extends PropertyChangeEvent { - - private static final long serialVersionUID = -320227448495806870L; - - private final int index; - - /** - * Creates a new property changed event with an indication of the property - * index. - * - * @param source - * the changed bean. - * @param propertyName - * the changed property, or <code>null</code> to indicate an - * unspecified set of the properties have changed. - * @param oldValue - * the previous value of the property, or <code>null</code> if - * the <code>propertyName</code> is <code>null</code> or the - * previous value is unknown. - * @param newValue - * the new value of the property, or <code>null</code> if the - * <code>propertyName</code> is <code>null</code> or the new - * value is unknown.. - * @param index - * the index of the property. - */ - public IndexedPropertyChangeEvent(Object source, String propertyName, - Object oldValue, Object newValue, int index) { - super(source, propertyName, oldValue, newValue); - this.index = index; - } - - /** - * Answer the index of the property that was changed in this event. - * - * @return The property element index. - */ - public int getIndex() { - return index; - } -} diff --git a/awt/java/beans/PropertyChangeEvent.java b/awt/java/beans/PropertyChangeEvent.java deleted file mode 100644 index 97c703a..0000000 --- a/awt/java/beans/PropertyChangeEvent.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package java.beans; - -import java.util.EventObject; - -public class PropertyChangeEvent extends EventObject { - - private static final long serialVersionUID = 7042693688939648123L; - - String propertyName; - - Object oldValue; - - Object newValue; - - Object propagationId; - - public PropertyChangeEvent(Object source, String propertyName, - Object oldValue, Object newValue) { - super(source); - - this.propertyName = propertyName; - this.oldValue = oldValue; - this.newValue = newValue; - } - - public String getPropertyName() { - return propertyName; - } - - public void setPropagationId(Object propagationId) { - this.propagationId = propagationId; - } - - public Object getPropagationId() { - return propagationId; - } - - public Object getOldValue() { - return oldValue; - } - - public Object getNewValue() { - return newValue; - } -} diff --git a/awt/java/beans/PropertyChangeListener.java b/awt/java/beans/PropertyChangeListener.java deleted file mode 100644 index 94422c0..0000000 --- a/awt/java/beans/PropertyChangeListener.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package java.beans; - -import java.util.EventListener; - -public interface PropertyChangeListener extends EventListener { - - public void propertyChange(PropertyChangeEvent event); -} diff --git a/awt/java/beans/PropertyChangeListenerProxy.java b/awt/java/beans/PropertyChangeListenerProxy.java deleted file mode 100644 index f4f3aec..0000000 --- a/awt/java/beans/PropertyChangeListenerProxy.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package java.beans; - -import java.util.EventListenerProxy; - -public class PropertyChangeListenerProxy extends EventListenerProxy implements - PropertyChangeListener { - - String propertyName; - - public PropertyChangeListenerProxy(String propertyName, - PropertyChangeListener listener) { - super(listener); - this.propertyName = propertyName; - } - - public String getPropertyName() { - return propertyName; - } - - public void propertyChange(PropertyChangeEvent event) { - PropertyChangeListener listener = (PropertyChangeListener) getListener(); - listener.propertyChange(event); - } -} diff --git a/awt/java/beans/PropertyChangeSupport.java b/awt/java/beans/PropertyChangeSupport.java deleted file mode 100644 index d56e63a..0000000 --- a/awt/java/beans/PropertyChangeSupport.java +++ /dev/null @@ -1,351 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package java.beans; - -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -public class PropertyChangeSupport implements Serializable { - - private static final long serialVersionUID = 6401253773779951803l; - - private transient Object sourceBean; - - private transient List<PropertyChangeListener> allPropertiesChangeListeners = - new ArrayList<PropertyChangeListener>(); - - private transient Map<String, List<PropertyChangeListener>> - selectedPropertiesChangeListeners = - new HashMap<String, List<PropertyChangeListener>>(); - - // fields for serialization compatibility - private Hashtable<String, List<PropertyChangeListener>> children; - - private Object source; - - private int propertyChangeSupportSerializedDataVersion = 1; - - public PropertyChangeSupport(Object sourceBean) { - if (sourceBean == null) { - throw new NullPointerException(); - } - this.sourceBean = sourceBean; - } - - public void firePropertyChange(String propertyName, Object oldValue, - Object newValue) { - PropertyChangeEvent event = createPropertyChangeEvent(propertyName, - oldValue, newValue); - doFirePropertyChange(event); - } - - public void fireIndexedPropertyChange(String propertyName, int index, - Object oldValue, Object newValue) { - - // nulls and equals check done in doFire... - doFirePropertyChange(new IndexedPropertyChangeEvent(sourceBean, - propertyName, oldValue, newValue, index)); - } - - public synchronized void removePropertyChangeListener(String propertyName, - PropertyChangeListener listener) { - if ((propertyName != null) && (listener != null)) { - List<PropertyChangeListener> listeners = - selectedPropertiesChangeListeners.get(propertyName); - - if (listeners != null) { - listeners.remove(listener); - } - } - } - - public synchronized void addPropertyChangeListener(String propertyName, - PropertyChangeListener listener) { - if ((listener != null) && (propertyName != null)) { - List<PropertyChangeListener> listeners = - selectedPropertiesChangeListeners.get(propertyName); - - if (listeners == null) { - listeners = new ArrayList<PropertyChangeListener>(); - selectedPropertiesChangeListeners.put(propertyName, listeners); - } - - // RI compatibility - if (listener instanceof PropertyChangeListenerProxy) { - PropertyChangeListenerProxy proxy = - (PropertyChangeListenerProxy) listener; - - listeners.add(new PropertyChangeListenerProxy( - proxy.getPropertyName(), - (PropertyChangeListener) proxy.getListener())); - } else { - listeners.add(listener); - } - } - } - - public synchronized PropertyChangeListener[] getPropertyChangeListeners( - String propertyName) { - List<PropertyChangeListener> listeners = null; - - if (propertyName != null) { - listeners = selectedPropertiesChangeListeners.get(propertyName); - } - - return (listeners == null) ? new PropertyChangeListener[] {} - : listeners.toArray( - new PropertyChangeListener[listeners.size()]); - } - - public void firePropertyChange(String propertyName, boolean oldValue, - boolean newValue) { - PropertyChangeEvent event = createPropertyChangeEvent(propertyName, - oldValue, newValue); - doFirePropertyChange(event); - } - - public void fireIndexedPropertyChange(String propertyName, int index, - boolean oldValue, boolean newValue) { - - if (oldValue != newValue) { - fireIndexedPropertyChange(propertyName, index, Boolean - .valueOf(oldValue), Boolean.valueOf(newValue)); - } - } - - public void firePropertyChange(String propertyName, int oldValue, - int newValue) { - PropertyChangeEvent event = createPropertyChangeEvent(propertyName, - oldValue, newValue); - doFirePropertyChange(event); - } - - public void fireIndexedPropertyChange(String propertyName, int index, - int oldValue, int newValue) { - - if (oldValue != newValue) { - fireIndexedPropertyChange(propertyName, index, - new Integer(oldValue), new Integer(newValue)); - } - } - - public synchronized boolean hasListeners(String propertyName) { - boolean result = allPropertiesChangeListeners.size() > 0; - if (!result && (propertyName != null)) { - List<PropertyChangeListener> listeners = - selectedPropertiesChangeListeners.get(propertyName); - if (listeners != null) { - result = listeners.size() > 0; - } - } - return result; - } - - public synchronized void removePropertyChangeListener( - PropertyChangeListener listener) { - if (listener != null) { - if (listener instanceof PropertyChangeListenerProxy) { - String name = ((PropertyChangeListenerProxy) listener) - .getPropertyName(); - PropertyChangeListener lst = (PropertyChangeListener) - ((PropertyChangeListenerProxy) listener).getListener(); - - removePropertyChangeListener(name, lst); - } else { - allPropertiesChangeListeners.remove(listener); - } - } - } - - public synchronized void addPropertyChangeListener( - PropertyChangeListener listener) { - if (listener != null) { - if (listener instanceof PropertyChangeListenerProxy) { - String name = ((PropertyChangeListenerProxy) listener) - .getPropertyName(); - PropertyChangeListener lst = (PropertyChangeListener) - ((PropertyChangeListenerProxy) listener).getListener(); - addPropertyChangeListener(name, lst); - } else { - allPropertiesChangeListeners.add(listener); - } - } - } - - public synchronized PropertyChangeListener[] getPropertyChangeListeners() { - ArrayList<PropertyChangeListener> result = - new ArrayList<PropertyChangeListener>( - allPropertiesChangeListeners); - - for (String propertyName : selectedPropertiesChangeListeners.keySet()) { - List<PropertyChangeListener> selectedListeners = - selectedPropertiesChangeListeners.get(propertyName); - - if (selectedListeners != null) { - - for (PropertyChangeListener listener : selectedListeners) { - result.add(new PropertyChangeListenerProxy(propertyName, - listener)); - } - } - } - - return result.toArray(new PropertyChangeListener[result.size()]); - } - - private void writeObject(ObjectOutputStream oos) throws IOException { - List<PropertyChangeListener> allSerializedPropertiesChangeListeners = - new ArrayList<PropertyChangeListener>(); - - for (PropertyChangeListener pcl : allPropertiesChangeListeners) { - if (pcl instanceof Serializable) { - allSerializedPropertiesChangeListeners.add(pcl); - } - } - - Map<String, List<PropertyChangeListener>> - selectedSerializedPropertiesChangeListeners = - new HashMap<String, List<PropertyChangeListener>>(); - - for (String propertyName : selectedPropertiesChangeListeners.keySet()) { - List<PropertyChangeListener> keyValues = - selectedPropertiesChangeListeners.get(propertyName); - - if (keyValues != null) { - List<PropertyChangeListener> serializedPropertiesChangeListeners - = new ArrayList<PropertyChangeListener>(); - - for (PropertyChangeListener pcl : keyValues) { - if (pcl instanceof Serializable) { - serializedPropertiesChangeListeners.add(pcl); - } - } - - if (!serializedPropertiesChangeListeners.isEmpty()) { - selectedSerializedPropertiesChangeListeners.put( - propertyName, serializedPropertiesChangeListeners); - } - } - } - - children = new Hashtable<String, List<PropertyChangeListener>>( - selectedSerializedPropertiesChangeListeners); - children.put("", allSerializedPropertiesChangeListeners); //$NON-NLS-1$ - oos.writeObject(children); - - Object source = null; - if (sourceBean instanceof Serializable) { - source = sourceBean; - } - oos.writeObject(source); - - oos.writeInt(propertyChangeSupportSerializedDataVersion); - } - - @SuppressWarnings("unchecked") - private void readObject(ObjectInputStream ois) throws IOException, - ClassNotFoundException { - children = (Hashtable<String, List<PropertyChangeListener>>) ois - .readObject(); - - selectedPropertiesChangeListeners = new HashMap<String, List<PropertyChangeListener>>( - children); - allPropertiesChangeListeners = selectedPropertiesChangeListeners - .remove(""); //$NON-NLS-1$ - if (allPropertiesChangeListeners == null) { - allPropertiesChangeListeners = new ArrayList<PropertyChangeListener>(); - } - - sourceBean = ois.readObject(); - propertyChangeSupportSerializedDataVersion = ois.readInt(); - } - - public void firePropertyChange(PropertyChangeEvent event) { - doFirePropertyChange(event); - } - - private PropertyChangeEvent createPropertyChangeEvent(String propertyName, - Object oldValue, Object newValue) { - return new PropertyChangeEvent(sourceBean, propertyName, oldValue, - newValue); - } - - private PropertyChangeEvent createPropertyChangeEvent(String propertyName, - boolean oldValue, boolean newValue) { - return new PropertyChangeEvent(sourceBean, propertyName, oldValue, - newValue); - } - - private PropertyChangeEvent createPropertyChangeEvent(String propertyName, - int oldValue, int newValue) { - return new PropertyChangeEvent(sourceBean, propertyName, oldValue, - newValue); - } - - private void doFirePropertyChange(PropertyChangeEvent event) { - String propertyName = event.getPropertyName(); - Object oldValue = event.getOldValue(); - Object newValue = event.getNewValue(); - - if ((newValue != null) && (oldValue != null) - && newValue.equals(oldValue)) { - return; - } - - /* - * Copy the listeners collections so they can be modified while we fire - * events. - */ - - // Listeners to all property change events - PropertyChangeListener[] listensToAll; - // Listens to a given property change - PropertyChangeListener[] listensToOne = null; - synchronized (this) { - listensToAll = allPropertiesChangeListeners - .toArray(new PropertyChangeListener[allPropertiesChangeListeners - .size()]); - - List<PropertyChangeListener> listeners = selectedPropertiesChangeListeners - .get(propertyName); - if (listeners != null) { - listensToOne = listeners - .toArray(new PropertyChangeListener[listeners.size()]); - } - } - - // Fire the listeners - for (PropertyChangeListener listener : listensToAll) { - listener.propertyChange(event); - } - if (listensToOne != null) { - for (PropertyChangeListener listener : listensToOne) { - listener.propertyChange(event); - } - } - } - -} diff --git a/awt/javax/imageio/IIOException.java b/awt/javax/imageio/IIOException.java index fbfeb42..c77716c 100644 --- a/awt/javax/imageio/IIOException.java +++ b/awt/javax/imageio/IIOException.java @@ -18,22 +18,28 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio; import java.io.IOException; /** * The IIOException class indicates errors in reading/writing operations. + * + * @since Android 1.0 */ public class IIOException extends IOException { - /** The Constant serialVersionUID. */ + /** + * The Constant serialVersionUID. + */ private static final long serialVersionUID = -3216210718638985251L; /** * Instantiates a new IIOException. * - * @param message the detailed message. + * @param message + * the detailed message. */ public IIOException(String message) { super(message); @@ -42,8 +48,10 @@ public class IIOException extends IOException { /** * Instantiates a new IIOException. * - * @param message the detailed message. - * @param cause the cause of this exception. + * @param message + * the detailed message. + * @param cause + * the cause of this exception. */ public IIOException(String message, Throwable cause) { super(message); diff --git a/awt/javax/imageio/IIOImage.java b/awt/javax/imageio/IIOImage.java index e17a9fc..e9e5130 100644 --- a/awt/javax/imageio/IIOImage.java +++ b/awt/javax/imageio/IIOImage.java @@ -18,6 +18,7 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio; import javax.imageio.metadata.IIOMetadata; @@ -27,33 +28,47 @@ import java.awt.image.BufferedImage; import java.util.List; /** - * The IIOImage class combines the image, image's thumbnail and image's metadata. - * The image can be presented as RenderedImage or Raster object. + * The IIOImage class combines the image, image's thumbnail and image's + * metadata. The image can be presented as RenderedImage or Raster object. + * + * @since Android 1.0 */ public class IIOImage { - /** The image of this IIOImage. */ + /** + * The image of this IIOImage. + */ protected RenderedImage image; - - /** The raster of this IIOImage. */ + + /** + * The raster of this IIOImage. + */ protected Raster raster; - - /** The list with thumbnails associated with the image. */ + + /** + * The list with thumbnails associated with the image. + */ protected List<? extends BufferedImage> thumbnails; - - /** The metadata associated with the image. */ + + /** + * The metadata associated with the image. + */ protected IIOMetadata metadata; /** - * Instantiates a new IIOImage with the specified RenderedImage, - * list of thumbnails and metadata. + * Instantiates a new IIOImage with the specified RenderedImage, list of + * thumbnails and metadata. * - * @param image the image specified by RenderedImage. - * @param thumbnails the list of BufferedImage objects which - * represent the thumbnails of the image. - * @param metadata the metadata of the image. + * @param image + * the image specified by RenderedImage. + * @param thumbnails + * the list of BufferedImage objects which represent the + * thumbnails of the image. + * @param metadata + * the metadata of the image. */ - public IIOImage(RenderedImage image, List<? extends BufferedImage> thumbnails, IIOMetadata metadata) { + public IIOImage(RenderedImage image, List<? extends BufferedImage> thumbnails, + IIOMetadata metadata) { if (image == null) { throw new IllegalArgumentException("image should not be NULL"); } @@ -64,13 +79,16 @@ public class IIOImage { } /** - * Instantiates a new IIOImage with the specified Raster, list of - * thumbnails and metadata. + * Instantiates a new IIOImage with the specified Raster, list of thumbnails + * and metadata. * - * @param raster the Raster. - * @param thumbnails the list of BufferedImage objects which - * represent the thumbnails of Raster data. - * @param metadata the metadata. + * @param raster + * the Raster. + * @param thumbnails + * the list of BufferedImage objects which represent the + * thumbnails of Raster data. + * @param metadata + * the metadata. */ public IIOImage(Raster raster, List<? extends BufferedImage> thumbnails, IIOMetadata metadata) { if (raster == null) { @@ -83,11 +101,11 @@ public class IIOImage { } /** - * Gets the RenderedImage object or returns null if this IIOImage - * object is associated with a Raster. + * Gets the RenderedImage object or returns null if this IIOImage object is + * associated with a Raster. * - * @return the RenderedImage object or null if this IIOImage - * object is associated with a Raster. + * @return the RenderedImage object or null if this IIOImage object is + * associated with a Raster. */ public RenderedImage getRenderedImage() { return image; @@ -96,7 +114,8 @@ public class IIOImage { /** * Sets the RenderedImage to this IIOImage object. * - * @param image the RenderedImage to be set to this IIOImage. + * @param image + * the RenderedImage to be set to this IIOImage. */ public void setRenderedImage(RenderedImage image) { if (image == null) { @@ -107,11 +126,11 @@ public class IIOImage { } /** - * Returns true if the IIOImage object associated with a Raster, or - * false if it's associated with a RenderedImage. + * Returns true if the IIOImage object associated with a Raster, or false if + * it's associated with a RenderedImage. * - * @return true if the IIOImage object associated with a Raster, or - * false if it's associated with a RenderedImage. + * @return true, if the IIOImage object associated with a Raster, or false + * if it's associated with a RenderedImage. */ public boolean hasRaster() { return raster != null; @@ -121,8 +140,8 @@ public class IIOImage { * Gets the Raster object or returns null if this IIOImage object is * associated with a RenderedImage. * - * @return the Raster or null if this IIOImage object - * is associated with a RenderedImage. + * @return the Raster or null if this IIOImage object is associated with a + * RenderedImage. */ public Raster getRaster() { return raster; @@ -131,7 +150,8 @@ public class IIOImage { /** * Sets the Raster to the IIOImage. * - * @param raster the new Raster to the IIOImage. + * @param raster + * the new Raster to the IIOImage. */ public void setRaster(Raster raster) { if (raster == null) { @@ -153,8 +173,8 @@ public class IIOImage { /** * Gets the thumbnail with the specified index in the list. * - * @param index the index of the thumbnail in the list. - * + * @param index + * the index of the thumbnail in the list. * @return the thumbnail with the specified index in the list. */ public BufferedImage getThumbnail(int index) { @@ -176,8 +196,8 @@ public class IIOImage { /** * Sets the list of thumbnails images to this IIOImage object. * - * @param thumbnails the list of BufferedImage which represent - * thumbnails. + * @param thumbnails + * the list of BufferedImage which represent thumbnails. */ public void setThumbnails(List<? extends BufferedImage> thumbnails) { this.thumbnails = thumbnails; @@ -195,7 +215,8 @@ public class IIOImage { /** * Sets the metadata to this IIOImage object. * - * @param metadata the IIOMetadata, or null. + * @param metadata + * the IIOMetadata, or null. */ public void setMetadata(IIOMetadata metadata) { this.metadata = metadata; diff --git a/awt/javax/imageio/IIOParam.java b/awt/javax/imageio/IIOParam.java index d998b6e..2ccc945 100644 --- a/awt/javax/imageio/IIOParam.java +++ b/awt/javax/imageio/IIOParam.java @@ -18,56 +18,80 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio; import java.awt.*; /** - * The IIOParam abstract class is superclass for - * ImageReadParam and ImageWriteParam classes and provides - * methods and variables which they share. + * The IIOParam abstract class is superclass for ImageReadParam and + * ImageWriteParam classes and provides methods and variables which they share. + * + * @since Android 1.0 */ public abstract class IIOParam { - - /** The source region. */ + + /** + * The source region. + */ protected Rectangle sourceRegion; - - /** The source x subsampling. */ + + /** + * The source x subsampling. + */ protected int sourceXSubsampling = 1; - - /** The source y subsampling. */ + + /** + * The source y subsampling. + */ protected int sourceYSubsampling = 1; - - /** The subsampling x offset. */ + + /** + * The subsampling x offset. + */ protected int subsamplingXOffset; - - /** The subsampling y offset. */ + + /** + * The subsampling y offset. + */ protected int subsamplingYOffset; - - /** The source bands. */ + + /** + * The source bands. + */ protected int[] sourceBands; - - /** The destination type. */ + + /** + * The destination type. + */ protected ImageTypeSpecifier destinationType; - - /** The destination offset. */ + + /** + * The destination offset. + */ protected Point destinationOffset = new Point(0, 0); - - /** The default controller. */ + + /** + * The default controller. + */ protected IIOParamController defaultController; - - /** The controller. */ + + /** + * The controller. + */ protected IIOParamController controller; /** * Instantiates a new IIOParam. */ - protected IIOParam() {} + protected IIOParam() { + } /** * Sets the source region as a Rectangle object. * - * @param sourceRegion the Rectangle which specifies the source region. + * @param sourceRegion + * the Rectangle which specifies the source region. */ public void setSourceRegion(Rectangle sourceRegion) { if (sourceRegion != null) { @@ -91,8 +115,8 @@ public abstract class IIOParam { if (sourceRegion.height <= subsamplingYOffset) { throw new IllegalArgumentException("height <= subsamplingXOffset"); } - //-- clone it to avoid unexpected modifications - this.sourceRegion = (Rectangle) sourceRegion.clone(); + // -- clone it to avoid unexpected modifications + this.sourceRegion = (Rectangle)sourceRegion.clone(); } else { this.sourceRegion = null; } @@ -107,24 +131,26 @@ public abstract class IIOParam { if (sourceRegion == null) { return null; } - //-- clone it to avoid unexpected modifications - return (Rectangle) sourceRegion.clone(); + // -- clone it to avoid unexpected modifications + return (Rectangle)sourceRegion.clone(); } /** - * Sets the source subsampling. The sourceXSubsampling and - * sourceYSubsampling parameters specify the number of rows - * and columns to advance after every source pixel. + * Sets the source subsampling. The sourceXSubsampling and + * sourceYSubsampling parameters specify the number of rows and columns to + * advance after every source pixel. * - * @param sourceXSubsampling the source X subsampling. - * @param sourceYSubsampling the source Y subsampling. - * @param subsamplingXOffset the subsampling X offset. - * @param subsamplingYOffset the subsampling Y offset. + * @param sourceXSubsampling + * the source X subsampling. + * @param sourceYSubsampling + * the source Y subsampling. + * @param subsamplingXOffset + * the subsampling X offset. + * @param subsamplingYOffset + * the subsampling Y offset. */ - public void setSourceSubsampling(int sourceXSubsampling, - int sourceYSubsampling, - int subsamplingXOffset, - int subsamplingYOffset) { + public void setSourceSubsampling(int sourceXSubsampling, int sourceYSubsampling, + int subsamplingXOffset, int subsamplingYOffset) { if (sourceXSubsampling <= 0) { throw new IllegalArgumentException("sourceXSubsampling <= 0"); @@ -141,10 +167,10 @@ public abstract class IIOParam { throw new IllegalArgumentException("subsamplingYOffset is wrong"); } - //-- does region contain pixels + // -- does region contain pixels if (sourceRegion != null) { - if (sourceRegion.width <= subsamplingXOffset || - sourceRegion.height <= subsamplingYOffset) { + if (sourceRegion.width <= subsamplingXOffset + || sourceRegion.height <= subsamplingYOffset) { throw new IllegalArgumentException("there are no pixels in region"); } } @@ -156,8 +182,8 @@ public abstract class IIOParam { } /** - * Gets the source X subsampling - the number of source - * columns to advance for each pixel. + * Gets the source X subsampling - the number of source columns to advance + * for each pixel. * * @return the source X subsampling. */ @@ -166,8 +192,8 @@ public abstract class IIOParam { } /** - * Gets the source Y subsampling - the number of source - * rows to advance for each pixel. + * Gets the source Y subsampling - the number of source rows to advance for + * each pixel. * * @return the source Y subsampling. */ @@ -196,7 +222,8 @@ public abstract class IIOParam { /** * Sets the indices of the source bands. * - * @param sourceBands the indices of the source bands. + * @param sourceBands + * the indices of the source bands. */ public void setSourceBands(int[] sourceBands) { // TODO implement @@ -216,7 +243,8 @@ public abstract class IIOParam { /** * Sets the specified ImageTypeSpecifier for the destination image. * - * @param destinationType the ImageTypeSpecifier. + * @param destinationType + * the ImageTypeSpecifier. */ public void setDestinationType(ImageTypeSpecifier destinationType) { // TODO implement @@ -225,7 +253,7 @@ public abstract class IIOParam { /** * Gets the type of the destination image as an ImageTypeSpecifier. . - * + * * @return the ImageTypeSpecifier. */ public ImageTypeSpecifier getDestinationType() { @@ -234,18 +262,19 @@ public abstract class IIOParam { } /** - * Sets the offset in the destination image where - * the decoded pixels are placed as a result of reading, - * or specified an area to be written while writing operation. + * Sets the offset in the destination image where the decoded pixels are + * placed as a result of reading, or specified an area to be written while + * writing operation. * - * @param destinationOffset the destination offset. + * @param destinationOffset + * the destination offset. */ public void setDestinationOffset(Point destinationOffset) { if (destinationOffset == null) { throw new IllegalArgumentException("destinationOffset == null!"); } - - this.destinationOffset = (Point) destinationOffset.clone(); + + this.destinationOffset = (Point)destinationOffset.clone(); } /** @@ -254,14 +283,15 @@ public abstract class IIOParam { * @return the offset in the destination image. */ public Point getDestinationOffset() { - return (Point) destinationOffset.clone(); + return (Point)destinationOffset.clone(); } /** - * Sets the IIOParamController to this IIOParam object for - * providing settings to this IIOParam. + * Sets the IIOParamController to this IIOParam object for providing + * settings to this IIOParam. * - * @param controller the new IIOParamController. + * @param controller + * the new IIOParamController. */ public void setController(IIOParamController controller) { // TODO implement @@ -269,11 +299,9 @@ public abstract class IIOParam { } /** - * Gets the current IIOParamController controller - * for this IIOParam. + * Gets the current IIOParamController controller for this IIOParam. * - * @return the current IIOParamController controller - * for this IIOParam. + * @return the current IIOParamController controller for this IIOParam. */ public IIOParamController getController() { // TODO implement @@ -281,11 +309,10 @@ public abstract class IIOParam { } /** - * Gets the default IIOParamController controller - * for this IIOParam. + * Gets the default IIOParamController controller for this IIOParam. * - * @return the default IIOParamController controller - * for this IIOParam, or null. + * @return the default IIOParamController controller for this IIOParam, or + * null. */ public IIOParamController getDefaultController() { // TODO implement @@ -293,11 +320,10 @@ public abstract class IIOParam { } /** - * Returns true if IIOParamController is installed for - * this IIOParam. + * Returns true if IIOParamController is installed for this IIOParam. * - * @return true if IIOParamController is installed for - * this IIOParam, false otherwise. + * @return true, if IIOParamController is installed for this IIOParam, false + * otherwise. */ public boolean hasController() { // TODO implement diff --git a/awt/javax/imageio/IIOParamController.java b/awt/javax/imageio/IIOParamController.java index 31522c1..338cb25 100644 --- a/awt/javax/imageio/IIOParamController.java +++ b/awt/javax/imageio/IIOParamController.java @@ -18,6 +18,7 @@ * @author Sergey I. Salishev * @version $Revision: 1.2 $ */ + package javax.imageio; /* @@ -26,18 +27,19 @@ package javax.imageio; */ /** - * The IIOParamController specifies an activate method that invokes the + * The IIOParamController specifies an activate method that invokes the * controller. + * + * @since Android 1.0 */ public interface IIOParamController { /** - * Activates the controller. - * - * @param param the IIOParam. + * Activates the controller. * - * @return true if the IIOParam has been modified, false otherwise. + * @param param + * the IIOParam. + * @return true, if the IIOParam has been modified, false otherwise. */ boolean activate(IIOParam param); } - diff --git a/awt/javax/imageio/ImageIO.java b/awt/javax/imageio/ImageIO.java index d4cd1dd..e0d7ec9 100644 --- a/awt/javax/imageio/ImageIO.java +++ b/awt/javax/imageio/ImageIO.java @@ -18,6 +18,7 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio; import javax.imageio.stream.ImageInputStream; @@ -34,44 +35,47 @@ import java.awt.image.RenderedImage; import java.net.URL; /** - * The ImageIO class provides static methods to perfom - * reading and writing operations using registered - * ImageReader and ImageWriter objects. + * The ImageIO class provides static methods to perform reading and writing + * operations using registered ImageReader and ImageWriter objects. + * + * @since Android 1.0 */ public final class ImageIO { - /** The Constant registry. */ + /** + * The constant registry. + */ private static final IIORegistry registry = IIORegistry.getDefaultInstance(); /** - * Instantiates a new image io. + * Instantiates a new ImageIO. */ - private ImageIO() {} - + private ImageIO() { + } /** - * Scans for plug-ins in the class path, - * loads spi classes, and registers them with the IIORegistry. + * Scans for plug-ins in the class path, loads spi classes, and registers + * them with the IIORegistry. */ public static void scanForPlugins() { throw new UnsupportedOperationException("Not supported yet"); } /** - * Sets flag which indicates whether a cache file is used when - * creating ImageInputStreams and ImageOutputStreams or not. + * Sets flag which indicates whether a cache file is used when creating + * ImageInputStreams and ImageOutputStreams or not. * - * @param useCache the use cache flag. + * @param useCache + * the use cache flag. */ public static void setUseCache(boolean useCache) { throw new UnsupportedOperationException("Not supported yet"); } /** - * Gets the flag which indicates whether a cache file is used when - * creating ImageInputStreams and ImageOutputStreams or not. - * This method returns the current value which is set by setUseCache - * method. + * Gets the flag which indicates whether a cache file is used when creating + * ImageInputStreams and ImageOutputStreams or not. This method returns the + * current value which is set by setUseCache method. * * @return the use cache flag. */ @@ -83,44 +87,44 @@ public final class ImageIO { /** * Sets the cache directory. * - * @param cacheDirectory the File which specifies a cache directory. + * @param cacheDirectory + * the File which specifies a cache directory. */ public static void setCacheDirectory(File cacheDirectory) { throw new UnsupportedOperationException("Not supported yet"); } /** - * Gets the directory where cache files are created, returned - * the file which is set by setCacheDirectory method, or null. + * Gets the directory where cache files are created, returned the file which + * is set by setCacheDirectory method, or null. * - * @return the File object which is set by setCacheDirectory method, - * or null. + * @return the File object which is set by setCacheDirectory method, or + * null. */ public static File getCacheDirectory() { // TODO implement - //-- null indicates system-dep default temporary directory + // -- null indicates system-dep default temporary directory return null; } /** - * Creates an ImageInputStream from the specified Object. - * The specified Object should obtain the input source - * such as File, or InputStream. - * - * @param input the input Object such as File, or InputStream. + * Creates an ImageInputStream from the specified Object. The specified + * Object should obtain the input source such as File, or InputStream. * + * @param input + * the input Object such as File, or InputStream. * @return the ImageInputStream object, or null. - * - * @throws IOException signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ - public static ImageInputStream createImageInputStream(Object input) - throws IOException { + public static ImageInputStream createImageInputStream(Object input) throws IOException { if (input == null) { throw new IllegalArgumentException("input source cannot be NULL"); } - Iterator<ImageInputStreamSpi> it = registry.getServiceProviders(ImageInputStreamSpi.class, true); + Iterator<ImageInputStreamSpi> it = registry.getServiceProviders(ImageInputStreamSpi.class, + true); while (it.hasNext()) { ImageInputStreamSpi spi = it.next(); @@ -132,23 +136,22 @@ public final class ImageIO { } /** - * Creates an ImageOutputStream using the specified Object. - * The specified Object should obtain the output source - * such as File, or OutputStream. - * - * @param output the output Object such as File, or OutputStream. + * Creates an ImageOutputStream using the specified Object. The specified + * Object should obtain the output source such as File, or OutputStream. * + * @param output + * the output Object such as File, or OutputStream. * @return the ImageOutputStream object, or null. - * - * @throws IOException signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ - public static ImageOutputStream createImageOutputStream(Object output) - throws IOException { + public static ImageOutputStream createImageOutputStream(Object output) throws IOException { if (output == null) { throw new IllegalArgumentException("output destination cannot be NULL"); } - Iterator<ImageOutputStreamSpi> it = registry.getServiceProviders(ImageOutputStreamSpi.class, true); + Iterator<ImageOutputStreamSpi> it = registry.getServiceProviders( + ImageOutputStreamSpi.class, true); while (it.hasNext()) { ImageOutputStreamSpi spi = it.next(); @@ -161,8 +164,8 @@ public final class ImageIO { } /** - * Gets the array of format names as String which can be - * decoded by registered ImageReader objects. + * Gets the array of format names as String which can be decoded by + * registered ImageReader objects. * * @return the array of format names. */ @@ -171,8 +174,8 @@ public final class ImageIO { } /** - * Gets the array of MIME types as String which can be - * decoded by registered ImageReader objects. + * Gets the array of MIME types as String which can be decoded by registered + * ImageReader objects. * * @return the array of MIME types. */ @@ -181,13 +184,13 @@ public final class ImageIO { } /** - * Gets the Iterator of registered ImageReader which are able to - * decode an imput data specified by input Object. - * - * @param input the input Object with encoded data such as - * ImageInputStream object. + * Gets the Iterator of registered ImageReader which are able to decode an + * input data specified by input Object. * - * @return the Iterator of registered ImageReader. + * @param input + * the input Object with encoded data such as ImageInputStream + * object. + * @return the Iterator of registered ImageReader. */ public static Iterator<ImageReader> getImageReaders(Object input) { if (input == null) { @@ -201,11 +204,11 @@ public final class ImageIO { } /** - * Gets the Iterator of registered ImageReader which are able to - * decode the specified format. - * - * @param formatName the format name such as "jpeg", or "gif". + * Gets the Iterator of registered ImageReader which are able to decode the + * specified format. * + * @param formatName + * the format name such as "jpeg", or "gif". * @return the Iterator of registered ImageReader. */ public static Iterator<ImageReader> getImageReadersByFormatName(String formatName) { @@ -220,11 +223,11 @@ public final class ImageIO { } /** - * Gets the Iterator which lists the registered ImageReader objects that - * are able to decode files with the specified suffix. - * - * @param fileSuffix the file suffix such as "jpg". + * Gets the Iterator which lists the registered ImageReader objects that are + * able to decode files with the specified suffix. * + * @param fileSuffix + * the file suffix such as "jpg". * @return the Iterator of registered ImageReaders. */ public static Iterator<ImageReader> getImageReadersBySuffix(String fileSuffix) { @@ -238,11 +241,11 @@ public final class ImageIO { } /** - * Gets the Iterator of registered ImageReader objects that - * are able to decode files with the specified MIME type. - * - * @param MIMEType the MIME type such as "image/jpeg". + * Gets the Iterator of registered ImageReader objects that are able to + * decode files with the specified MIME type. * + * @param MIMEType + * the MIME type such as "image/jpeg". * @return the Iterator of registered ImageReaders. */ public static Iterator<ImageReader> getImageReadersByMIMEType(String MIMEType) { @@ -250,8 +253,8 @@ public final class ImageIO { } /** - * Gets an array of Strings giving the names of the formats supported - * by registered ImageWriter objects. + * Gets an array of Strings giving the names of the formats supported by + * registered ImageWriter objects. * * @return the array of format names. */ @@ -260,7 +263,7 @@ public final class ImageIO { } /** - * Gets an array of Strings giving the MIME types of the formats supported + * Gets an array of Strings giving the MIME types of the formats supported * by registered ImageWriter objects. * * @return the array of MIME types. @@ -270,11 +273,11 @@ public final class ImageIO { } /** - * Gets the Iterator which lists the registered ImageReader objects that - * are able to encode the specified image format. - * - * @param formatName the image format name such as "jpeg". + * Gets the Iterator which lists the registered ImageReader objects that are + * able to encode the specified image format. * + * @param formatName + * the image format name such as "jpeg". * @return the Iterator of registered ImageWriter. */ public static Iterator<ImageWriter> getImageWritersByFormatName(String formatName) { @@ -289,11 +292,11 @@ public final class ImageIO { } /** - * Gets the Iterator which lists the registered ImageReader objects that - * are able to encode the specified suffix. - * - * @param fileSuffix the file suffix such as "jpg". + * Gets the Iterator which lists the registered ImageReader objects that are + * able to encode the specified suffix. * + * @param fileSuffix + * the file suffix such as "jpg". * @return the Iterator of registered ImageWriter. */ public static Iterator<ImageWriter> getImageWritersBySuffix(String fileSuffix) { @@ -306,11 +309,11 @@ public final class ImageIO { } /** - * Gets the Iterator which lists the registered ImageReader objects that - * are able to encode the specified MIME type. - * - * @param MIMEType the MIME type such as "image/jpeg". + * Gets the Iterator which lists the registered ImageReader objects that are + * able to encode the specified MIME type. * + * @param MIMEType + * the MIME type such as "image/jpeg". * @return the Iterator of registered ImageWriter. */ public static Iterator<ImageWriter> getImageWritersByMIMEType(String MIMEType) { @@ -318,12 +321,12 @@ public final class ImageIO { } /** - * Gets an ImageWriter object which corresponds to the - * specified ImageReader, or returns null if the specified - * ImageReader is not registered. - * - * @param reader the specified ImageReader. + * Gets an ImageWriter object which corresponds to the specified + * ImageReader, or returns null if the specified ImageReader is not + * registered. * + * @param reader + * the specified ImageReader. * @return the ImageWriter, or null. */ public static ImageWriter getImageWriter(ImageReader reader) { @@ -331,12 +334,12 @@ public final class ImageIO { } /** - * Gets an ImageReader object which corresponds to the - * specified ImageWriter, or returns null if the specified - * ImageWriter is not registered. - * - * @param writer the registered ImageWriter object. + * Gets an ImageReader object which corresponds to the specified + * ImageWriter, or returns null if the specified ImageWriter is not + * registered. * + * @param writer + * the registered ImageWriter object. * @return the ImageReader. */ public static ImageReader getImageReader(ImageWriter writer) { @@ -344,17 +347,16 @@ public final class ImageIO { } /** - * Gets the Iterator of ImageWriter objects which are able to - * encode images with the specified ImageTypeSpecifier and - * format. - * - * @param type the ImageTypeSpecifier, which defines layout. - * @param formatName the format name. + * Gets the Iterator of ImageWriter objects which are able to encode images + * with the specified ImageTypeSpecifier and format. * + * @param type + * the ImageTypeSpecifier, which defines layout. + * @param formatName + * the format name. * @return the Iterator of ImageWriter objects. */ - public static Iterator<ImageWriter> getImageWriters(ImageTypeSpecifier type, - String formatName) { + public static Iterator<ImageWriter> getImageWriters(ImageTypeSpecifier type, String formatName) { if (type == null) { throw new NullPointerException("type cannot be NULL"); } @@ -370,31 +372,31 @@ public final class ImageIO { } /** - * Gets the Iterator of registered ImageTranscoders which - * are able to transcode the metadata of the specified - * ImageReader object to a suitable object for encoding - * by the specified ImageWriter. - * - * @param reader the specified ImageReader. - * @param writer the specified ImageWriter. + * Gets the Iterator of registered ImageTranscoders which are able to + * transcode the metadata of the specified ImageReader object to a suitable + * object for encoding by the specified ImageWriter. * + * @param reader + * the specified ImageReader. + * @param writer + * the specified ImageWriter. * @return the Iterator of registered ImageTranscoders. */ public static Iterator<ImageTranscoder> getImageTranscoders(ImageReader reader, - ImageWriter writer) { + ImageWriter writer) { throw new UnsupportedOperationException("Not supported yet"); } /** - * Reads image data from the specified File and decodes it using - * the appropriate registered ImageReader object. - * The File is wrapped in an ImageInputStream. - * - * @param input the File to be read. + * Reads image data from the specified File and decodes it using the + * appropriate registered ImageReader object. The File is wrapped in an + * ImageInputStream. * + * @param input + * the File to be read. * @return the BufferedImage decoded from the specified File, or null. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public static BufferedImage read(File input) throws IOException { if (input == null) { @@ -406,15 +408,15 @@ public final class ImageIO { } /** - * Reads image data from the specified InputStream and decodes it - * using an appropriate registered an ImageReader object. + * Reads image data from the specified InputStream and decodes it using an + * appropriate registered an ImageReader object. * - * @param input the InputStream. - * - * @return the BufferedImage decoded from the specified InputStream, - * or null. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param input + * the InputStream. + * @return the BufferedImage decoded from the specified InputStream, or + * null. + * @throws IOException + * if an I/O exception has occurred. */ public static BufferedImage read(InputStream input) throws IOException { if (input == null) { @@ -426,14 +428,14 @@ public final class ImageIO { } /** - * Reads image data from the specified URL and decodes it using - * the appropriate registered ImageReader object. - * - * @param input the URL to be read. + * Reads image data from the specified URL and decodes it using the + * appropriate registered ImageReader object. * + * @param input + * the URL to be read. * @return the BufferedImage decoded from the specified URL, or null. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public static BufferedImage read(URL input) throws IOException { if (input == null) { @@ -443,20 +445,20 @@ public final class ImageIO { InputStream stream = input.openStream(); BufferedImage res = read(stream); stream.close(); - + return res; } /** - * Reads image data from the specified ImageInputStream and decodes it - * using appropriate registered an ImageReader object. - * - * @param stream the ImageInputStream. + * Reads image data from the specified ImageInputStream and decodes it using + * appropriate registered an ImageReader object. * - * @return the BufferedImage decoded from the specified ImageInputStream, - * or null. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param stream + * the ImageInputStream. + * @return the BufferedImage decoded from the specified ImageInputStream, or + * null. + * @throws IOException + * if an I/O exception has occurred. */ public static BufferedImage read(ImageInputStream stream) throws IOException { if (stream == null) { @@ -478,25 +480,25 @@ public final class ImageIO { } catch (IOException e) { // Stream could be already closed, proceed silently in this case } - + return res; } /** - * Writes the specified image in the specified format (using an - * appropriate ImageWriter) to the specified ImageOutputStream. - * - * @param im the RenderedImage. - * @param formatName the format name. - * @param output the ImageOutputStream where Image to be written. + * Writes the specified image in the specified format (using an appropriate + * ImageWriter) to the specified ImageOutputStream. * + * @param im + * the RenderedImage. + * @param formatName + * the format name. + * @param output + * the ImageOutputStream where Image to be written. * @return true, if Image is written successfully, false otherwise. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ - public static boolean write(RenderedImage im, - String formatName, - ImageOutputStream output) + public static boolean write(RenderedImage im, String formatName, ImageOutputStream output) throws IOException { if (im == null) { @@ -509,7 +511,8 @@ public final class ImageIO { throw new IllegalArgumentException("output cannot be NULL"); } - Iterator<ImageWriter> it = getImageWriters(ImageTypeSpecifier.createFromRenderedImage(im), formatName); + Iterator<ImageWriter> it = getImageWriters(ImageTypeSpecifier.createFromRenderedImage(im), + formatName); if (it.hasNext()) { ImageWriter writer = it.next(); writer.setOutput(output); @@ -522,20 +525,20 @@ public final class ImageIO { } /** - * Writes the specified image in the specified format (using an - * appropriate ImageWriter) to the specified File. - * - * @param im the RenderedImage. - * @param formatName the format name. - * @param output the output File where Image to be written. + * Writes the specified image in the specified format (using an appropriate + * ImageWriter) to the specified File. * + * @param im + * the RenderedImage. + * @param formatName + * the format name. + * @param output + * the output File where Image to be written. * @return true, if Image is written successfully, false otherwise. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ - public static boolean write(RenderedImage im, - String formatName, - File output) + public static boolean write(RenderedImage im, String formatName, File output) throws IOException { if (output == null) { @@ -553,20 +556,20 @@ public final class ImageIO { } /** - * Writes the specified image in the specified format (using an - * appropriate ImageWriter) to the specified OutputStream. - * - * @param im the RenderedImage. - * @param formatName the format name. - * @param output the OutputStream where Image is to be written. + * Writes the specified image in the specified format (using an appropriate + * ImageWriter) to the specified OutputStream. * + * @param im + * the RenderedImage. + * @param formatName + * the format name. + * @param output + * the OutputStream where Image is to be written. * @return true, if Image is written successfully, false otherwise. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ - public static boolean write(RenderedImage im, - String formatName, - OutputStream output) + public static boolean write(RenderedImage im, String formatName, OutputStream output) throws IOException { if (output == null) { @@ -579,26 +582,28 @@ public final class ImageIO { return rt; } - /** * Filter to match spi by format name. */ static class FormatFilter implements ServiceRegistry.Filter { - - /** The name. */ + + /** + * The name. + */ private String name; /** * Instantiates a new format filter. * - * @param name the name + * @param name + * the name. */ public FormatFilter(String name) { this.name = name; } public boolean filter(Object provider) { - ImageReaderWriterSpi spi = (ImageReaderWriterSpi) provider; + ImageReaderWriterSpi spi = (ImageReaderWriterSpi)provider; return Arrays.asList(spi.getFormatNames()).contains(name); } } @@ -608,14 +613,18 @@ public final class ImageIO { */ static class FormatAndEncodeFilter extends FormatFilter { - /** The type. */ + /** + * The type. + */ private ImageTypeSpecifier type; /** * Instantiates a new format and encode filter. * - * @param type the type - * @param name the name + * @param type + * the type. + * @param name + * the name. */ public FormatAndEncodeFilter(ImageTypeSpecifier type, String name) { super(name); @@ -624,7 +633,7 @@ public final class ImageIO { @Override public boolean filter(Object provider) { - ImageWriterSpi spi = (ImageWriterSpi) provider; + ImageWriterSpi spi = (ImageWriterSpi)provider; return super.filter(provider) && spi.canEncodeImage(type); } } @@ -633,21 +642,24 @@ public final class ImageIO { * Filter to match spi by suffix. */ static class SuffixFilter implements ServiceRegistry.Filter { - - /** The suf. */ + + /** + * The suf. + */ private String suf; /** * Instantiates a new suffix filter. * - * @param suf the suf + * @param suf + * the suf. */ public SuffixFilter(String suf) { this.suf = suf; } public boolean filter(Object provider) { - ImageReaderWriterSpi spi = (ImageReaderWriterSpi) provider; + ImageReaderWriterSpi spi = (ImageReaderWriterSpi)provider; return Arrays.asList(spi.getFileSuffixes()).contains(suf); } } @@ -656,21 +668,24 @@ public final class ImageIO { * Filter to match spi by decoding possibility. */ static class CanReadFilter implements ServiceRegistry.Filter { - - /** The input. */ + + /** + * The input. + */ private Object input; /** * Instantiates a new can read filter. * - * @param input the input + * @param input + * the input. */ public CanReadFilter(Object input) { this.input = input; } public boolean filter(Object provider) { - ImageReaderSpi spi = (ImageReaderSpi) provider; + ImageReaderSpi spi = (ImageReaderSpi)provider; try { return spi.canDecodeInput(input); } catch (IOException e) { @@ -684,13 +699,16 @@ public final class ImageIO { */ static class SpiIteratorToWritersIteratorWrapper implements Iterator<ImageWriter> { - /** The backend. */ + /** + * The backend. + */ private Iterator<ImageWriterSpi> backend; /** * Instantiates a new spi iterator to writers iterator wrapper. * - * @param backend the backend + * @param backend + * the backend. */ public SpiIteratorToWritersIteratorWrapper(Iterator<ImageWriterSpi> backend) { this.backend = backend; @@ -699,7 +717,7 @@ public final class ImageIO { /** * Next. * - * @return the image writer + * @return the image writer. */ public ImageWriter next() { try { @@ -713,7 +731,7 @@ public final class ImageIO { /** * Checks for next. * - * @return true, if successful + * @return true, if successful. */ public boolean hasNext() { return backend.hasNext(); @@ -723,7 +741,8 @@ public final class ImageIO { * Removes the. */ public void remove() { - throw new UnsupportedOperationException("Use deregisterServiceprovider instead of Iterator.remove()"); + throw new UnsupportedOperationException( + "Use deregisterServiceprovider instead of Iterator.remove()"); } } @@ -731,14 +750,17 @@ public final class ImageIO { * Wraps spi's iterator to ImageReader iterator. */ static class SpiIteratorToReadersIteratorWrapper implements Iterator<ImageReader> { - - /** The backend. */ + + /** + * The backend. + */ private Iterator<ImageReaderSpi> backend; /** * Instantiates a new spi iterator to readers iterator wrapper. * - * @param backend the backend + * @param backend + * the backend. */ public SpiIteratorToReadersIteratorWrapper(Iterator<ImageReaderSpi> backend) { this.backend = backend; @@ -747,7 +769,7 @@ public final class ImageIO { /** * Next. * - * @return the image reader + * @return the image reader. */ public ImageReader next() { try { @@ -761,7 +783,7 @@ public final class ImageIO { /** * Checks for next. * - * @return true, if successful + * @return true, if successful. */ public boolean hasNext() { return backend.hasNext(); @@ -771,7 +793,8 @@ public final class ImageIO { * Removes the. */ public void remove() { - throw new UnsupportedOperationException("Use deregisterServiceprovider instead of Iterator.remove()"); + throw new UnsupportedOperationException( + "Use deregisterServiceprovider instead of Iterator.remove()"); } } } diff --git a/awt/javax/imageio/ImageReadParam.java b/awt/javax/imageio/ImageReadParam.java index e67ed7d..9cc5c5f 100644 --- a/awt/javax/imageio/ImageReadParam.java +++ b/awt/javax/imageio/ImageReadParam.java @@ -18,6 +18,7 @@ * @author Sergey I. Salishev * @version $Revision: 1.2 $ */ + package javax.imageio; import java.awt.Dimension; @@ -29,45 +30,50 @@ import java.awt.image.BufferedImage; */ /** - * The ImageReadParam class provides information to the ImageReader about - * how an image is to be decoded. + * The ImageReadParam class provides information to the ImageReader about how an + * image is to be decoded. + * + * @since Android 1.0 */ - public class ImageReadParam extends IIOParam { - /** - * This flag indicates if this ImageReadParam supports setting the source - * rendering size. + /** + * This flag indicates if this ImageReadParam supports setting the source + * rendering size. */ protected boolean canSetSourceRenderSize; - - /** - * The destination BufferedImage. + + /** + * The destination BufferedImage. */ protected BufferedImage destination; - - /** The destination bands. */ + + /** + * The destination bands. + */ protected int[] destinationBands; - - /** - * The minimum progressive pass. + + /** + * The minimum progressive pass. */ protected int minProgressivePass; - - /** - * The number of progressive passes. + + /** + * The number of progressive passes. */ protected int numProgressivePasses; - - /** The source render size. */ + + /** + * The source render size. + */ protected Dimension sourceRenderSize; /** - * Returns true if this ImageReaderParam supports rendering a - * source image at an arbitrary size. + * Returns true if this ImageReaderParam supports rendering a source image + * at an arbitrary size. * - * @return true if this ImageReaderParam supports rendering a - * source image at an arbitrary size, false otherwise. + * @return true, if this ImageReaderParam supports rendering a source image + * at an arbitrary size, false otherwise. */ public boolean canSetSourceRenderSize() { return canSetSourceRenderSize; @@ -92,11 +98,9 @@ public class ImageReadParam extends IIOParam { } /** - * Gets the index of the maximum pass to be decoded. - * This method returns Integer.MAX_VALUE, if - * getSourceNumProgressivePasses() method returns value - * that is equal to Integer.MAX_VALUE. Otherwise - * this method returns + * Gets the index of the maximum pass to be decoded. This method returns + * Integer.MAX_VALUE, if getSourceNumProgressivePasses() method returns + * value that is equal to Integer.MAX_VALUE. Otherwise this method returns * getSourceMinProgressivePass() + getSourceNumProgressivePasses() - 1. * * @return the index of the maximum pass to be decoded. @@ -109,19 +113,19 @@ public class ImageReadParam extends IIOParam { } /** - * Gets the index of the minimum progressive pass that is decoded, - * default is 0. + * Gets the index of the minimum progressive pass that is decoded, default + * is 0. * * @return the index of the minimum progressive pass that is decoded, - * default is 0. + * default is 0. */ public int getSourceMinProgressivePass() { return minProgressivePass; } /** - * Gets the number of progressive passes. - * The default value is Integer.MAX_VALUE. + * Gets the number of progressive passes. The default value is + * Integer.MAX_VALUE. * * @return the number of progressive passes. */ @@ -130,8 +134,8 @@ public class ImageReadParam extends IIOParam { } /** - * Gets the dimension of source image which will be rendered - * during decoding process. + * Gets the dimension of source image which will be rendered during decoding + * process. * * @return the source render size. */ @@ -140,11 +144,12 @@ public class ImageReadParam extends IIOParam { } /** - * Sets the specified destination image. - * This image will be used by read, readAll, and readRaster methods, - * and a reference to it will be returned by those methods. + * Sets the specified destination image. This image will be used by read, + * readAll, and readRaster methods, and a reference to it will be returned + * by those methods. * - * @param destination the destination image. + * @param destination + * the destination image. */ public void setDestination(BufferedImage destination) { this.destination = destination; @@ -153,7 +158,8 @@ public class ImageReadParam extends IIOParam { /** * Sets the indices of the destination bands. * - * @param destinationBands the indices of the destination bands. + * @param destinationBands + * the indices of the destination bands. */ public void setDestinationBands(int[] destinationBands) { this.destinationBands = destinationBands; @@ -167,8 +173,10 @@ public class ImageReadParam extends IIOParam { /** * Sets the source progressive passes. * - * @param minPass the index of the minimum pass to be decoded. - * @param numPasses the number of passes to be decoded. + * @param minPass + * the index of the minimum pass to be decoded. + * @param numPasses + * the number of passes to be decoded. */ public void setSourceProgressivePasses(int minPass, int numPasses) { minProgressivePass = minPass; @@ -176,18 +184,18 @@ public class ImageReadParam extends IIOParam { } /** - * Sets the dimension size of source image if an - * image can be rendered at an arbitrary size. + * Sets the dimension size of source image if an image can be rendered at an + * arbitrary size. * - * @param size the size of rendered image. - * - * @throws UnsupportedOperationException the unsupported operation exception + * @param size + * the size of rendered image. + * @throws UnsupportedOperationException + * the unsupported operation exception. */ public void setSourceRenderSize(Dimension size) throws UnsupportedOperationException { if (!canSetSourceRenderSize) { throw new UnsupportedOperationException("can't set source renderer size"); } - sourceRenderSize = size; + sourceRenderSize = size; } } - diff --git a/awt/javax/imageio/ImageReader.java b/awt/javax/imageio/ImageReader.java index 780de26..cf282ed 100644 --- a/awt/javax/imageio/ImageReader.java +++ b/awt/javax/imageio/ImageReader.java @@ -18,6 +18,7 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio; import javax.imageio.spi.ImageReaderSpi; @@ -37,56 +38,77 @@ import java.awt.image.RenderedImage; import java.awt.*; /** - * The ImageReader class is an abstract class for decoding images. - * ImageReader objects are instantiated by the service provider - * interface, ImageReaderSpi class, for the specific format. - * ImageReaderSpi class should be registered with the IIORegistry, - * which uses them for format recognition and presentation of available - * format readers and writers. + * The ImageReader class is an abstract class for decoding images. ImageReader + * objects are instantiated by the service provider interface, ImageReaderSpi + * class, for the specific format. ImageReaderSpi class should be registered + * with the IIORegistry, which uses them for format recognition and presentation + * of available format readers and writers. + * + * @since Android 1.0 */ public abstract class ImageReader { - /** The originating provider. */ + /** + * The originating provider. + */ protected ImageReaderSpi originatingProvider; - /** The input object such as ImageInputStream. */ + /** + * The input object such as ImageInputStream. + */ protected Object input; - /** The seek forward only. */ + /** + * The seek forward only. + */ protected boolean seekForwardOnly; - /** - * The ignore metadata flag indicates whether current input source - * has been marked as metadata is allowed to be ignored by setInput. + /** + * The ignore metadata flag indicates whether current input source has been + * marked as metadata is allowed to be ignored by setInput. */ protected boolean ignoreMetadata; - /** The minimum index. */ + /** + * The minimum index. + */ protected int minIndex; - /** The available locales. */ + /** + * The available locales. + */ protected Locale[] availableLocales; - /** The locale. */ + /** + * The locale. + */ protected Locale locale; - /** The list of warning listeners. */ + /** + * The list of warning listeners. + */ protected List<IIOReadWarningListener> warningListeners; - /** The list of warning locales. */ + /** + * The list of warning locales. + */ protected List<Locale> warningLocales; - /** The list of progress listeners. */ + /** + * The list of progress listeners. + */ protected List<IIOReadProgressListener> progressListeners; - /** The list of update listeners. */ + /** + * The list of update listeners. + */ protected List<IIOReadUpdateListener> updateListeners; /** * Instantiates a new ImageReader. * - * @param originatingProvider the ImageReaderSpi which - * instanties this ImageReader. + * @param originatingProvider + * the ImageReaderSpi which instantiates this ImageReader. */ protected ImageReader(ImageReaderSpi originatingProvider) { this.originatingProvider = originatingProvider; @@ -96,15 +118,15 @@ public abstract class ImageReader { * Gets the format name of this input source. * * @return the format name of this input source. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public String getFormatName() throws IOException { return originatingProvider.getFormatNames()[0]; } /** - * Gets the ImageReaderSpi which instantiated this ImageReader. + * Gets the ImageReaderSpi which instantiated this ImageReader. * * @return the ImageReaderSpi. */ @@ -113,14 +135,17 @@ public abstract class ImageReader { } /** - * Sets the specified Object as the input source of this ImageReader. + * Sets the specified Object as the input source of this ImageReader. * - * @param input the input source, it can - * be an ImageInputStream or other supported objects. - * @param seekForwardOnly indicates whether the stream must - * be read sequentially from its current starting point. - * @param ignoreMetadata parameter which indicates - * if metadata may be ignored during reads or not. + * @param input + * the input source, it can be an ImageInputStream or other + * supported objects. + * @param seekForwardOnly + * indicates whether the stream must be read sequentially from + * its current starting point. + * @param ignoreMetadata + * parameter which indicates if metadata may be ignored during + * reads or not. */ public void setInput(Object input, boolean seekForwardOnly, boolean ignoreMetadata) { if (input != null) { @@ -137,9 +162,9 @@ public abstract class ImageReader { /** * Checks if is supported. * - * @param input the input - * - * @return true, if is supported + * @param input + * the input. + * @return true, if is supported. */ private boolean isSupported(Object input) { ImageReaderSpi spi = getOriginatingProvider(); @@ -158,10 +183,12 @@ public abstract class ImageReader { * Sets the specified Object as the input source of this ImageReader. * Metadata is not ignored. * - * @param input the input source, it can - * be an ImageInputStream or other supported objects. - * @param seekForwardOnly indicates whether the stream must - * be read sequentially from its current starting point. + * @param input + * the input source, it can be an ImageInputStream or other + * supported objects. + * @param seekForwardOnly + * indicates whether the stream must be read sequentially from + * its current starting point. */ public void setInput(Object input, boolean seekForwardOnly) { setInput(input, seekForwardOnly, false); @@ -171,8 +198,8 @@ public abstract class ImageReader { * Sets the specified Object as the input source of this ImageReader. * Metadata is not ignored and forward seeking is not required. * - * @param input the input source, it can - * be ImageInputStream or other objects. + * @param input + * the input source, it can be ImageInputStream or other objects. */ public void setInput(Object input) { setInput(input, false, false); @@ -181,8 +208,7 @@ public abstract class ImageReader { /** * Gets the input source object of this ImageReader, or returns null. * - * @return the the input source object such as ImageInputStream, - * or null. + * @return the input source object such as ImageInputStream, or null. */ public Object getInput() { return input; @@ -191,32 +217,31 @@ public abstract class ImageReader { /** * Checks if the input source supports only forward reading, or not. * - * @return true, if the input source supports only forward reading, - * false otherwise. + * @return true, if the input source supports only forward reading, false + * otherwise. */ public boolean isSeekForwardOnly() { return seekForwardOnly; } /** - * Returns true if the current input source allows - * to metadata to be ignored by passing true as - * the ignoreMetadata argument to the setInput method. + * Returns true if the current input source allows to metadata to be ignored + * by passing true as the ignoreMetadata argument to the setInput method. * - * @return true, if true if the current input source allows - * to metadata to be ignored by passing true as - * the ignoreMetadata argument to the setInput method. + * @return true, if the current input source allows to metadata to be + * ignored by passing true as the ignoreMetadata argument to the + * setInput method. */ public boolean isIgnoringMetadata() { return ignoreMetadata; } /** - * Gets the minimum valid index for reading an image, thumbnail, - * or image metadata. + * Gets the minimum valid index for reading an image, thumbnail, or image + * metadata. * - * @return the minimum valid index for reading an image, thumbnail, - * or image metadata. + * @return the minimum valid index for reading an image, thumbnail, or image + * metadata. */ public int getMinIndex() { return minIndex; @@ -234,7 +259,8 @@ public abstract class ImageReader { /** * Sets the locale to this ImageReader. * - * @param locale the Locale. + * @param locale + * the Locale. */ public void setLocale(Locale locale) { throw new UnsupportedOperationException("Not implemented yet"); @@ -252,89 +278,88 @@ public abstract class ImageReader { /** * Gets the number of images available in the current input source. * - * @param allowSearch the parameter which indicates what - * a search is required; if false, the reader may return -1 - * without searching. - * + * @param allowSearch + * the parameter which indicates what a search is required; if + * false, the reader may return -1 without searching. * @return the number of images. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public abstract int getNumImages(boolean allowSearch) throws IOException; /** * Gets the width of the specified image in input source. * - * @param imageIndex the image index. - * + * @param imageIndex + * the image index. * @return the width in pixels. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public abstract int getWidth(int imageIndex) throws IOException; /** * Gets the height of the specified image in input source. * - * @param imageIndex the image index. - * + * @param imageIndex + * the image index. * @return the height in pixels. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public abstract int getHeight(int imageIndex) throws IOException; /** - * Checks if the storage format of the specified image places - * an impediment on random pixels access or not. - * - * @param imageIndex the image's index. - * - * @return true, if the storage format of the specified image places - * an impediment on random pixels access, false otherwise. + * Checks if the storage format of the specified image places an impediment + * on random pixels access or not. * - * @throws IOException Signals that an I/O exception has occurred. + * @param imageIndex + * the image's index. + * @return true, if the storage format of the specified image places an + * impediment on random pixels access, false otherwise. + * @throws IOException + * if an I/O exception has occurred. */ public boolean isRandomAccessEasy(int imageIndex) throws IOException { - return false; //def + return false; // def } /** * Gets the aspect ratio (width devided by height) of the image. * - * @param imageIndex the image index. - * + * @param imageIndex + * the image index. * @return the aspect ratio of the image. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public float getAspectRatio(int imageIndex) throws IOException { - return (float) getWidth(imageIndex) / getHeight(imageIndex); + return (float)getWidth(imageIndex) / getHeight(imageIndex); } /** - * Gets an ImageTypeSpecifier which indicates the type of the - * specified image. - * - * @param imageIndex the image's index. + * Gets an ImageTypeSpecifier which indicates the type of the specified + * image. * + * @param imageIndex + * the image's index. * @return the ImageTypeSpecifier. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public ImageTypeSpecifier getRawImageType(int imageIndex) throws IOException { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Gets an Iterator of ImageTypeSpecifier objects which are associated - * with image types that may be used when decoding specified image. - * - * @param imageIndex the image index. + * Gets an Iterator of ImageTypeSpecifier objects which are associated with + * image types that may be used when decoding specified image. * + * @param imageIndex + * the image index. * @return an Iterator of ImageTypeSpecifier objects. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public abstract Iterator<ImageTypeSpecifier> getImageTypes(int imageIndex) throws IOException; @@ -351,21 +376,22 @@ public abstract class ImageReader { * Gets an IIOMetadata object for this input source. * * @return the IIOMetadata. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public abstract IIOMetadata getStreamMetadata() throws IOException; /** * Gets an IIOMetadata object for this input source. * - * @param formatName the desired metadata format to be used in the - * returned IIOMetadata object. - * @param nodeNames the node names of the document. - * + * @param formatName + * the desired metadata format to be used in the returned + * IIOMetadata object. + * @param nodeNames + * the node names of the document. * @return the IIOMetadata. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public IIOMetadata getStreamMetadata(String formatName, Set<String> nodeNames) throws IOException { @@ -375,83 +401,86 @@ public abstract class ImageReader { /** * Gets the image metadata of the specified image in input source. * - * @param imageIndex the image index. - * + * @param imageIndex + * the image index. * @return the IIOMetadata. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public abstract IIOMetadata getImageMetadata(int imageIndex) throws IOException; /** * Gets the image metadata of the specified image input source. * - * @param imageIndex the image index. - * @param formatName the desired metadata format to be used in the - * returned IIOMetadata object. - * @param nodeNames the node names which can be contained in - * the document. - * + * @param imageIndex + * the image index. + * @param formatName + * the desired metadata format to be used in the returned + * IIOMetadata object. + * @param nodeNames + * the node names which can be contained in the document. * @return the IIOMetadata. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ - public IIOMetadata getImageMetadata(int imageIndex, String formatName, - Set<String> nodeNames) throws IOException { + public IIOMetadata getImageMetadata(int imageIndex, String formatName, Set<String> nodeNames) + throws IOException { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Reads the specified image and returns it as a BufferedImage - * using the default ImageReadParam. - * - * @param imageIndex the image index. + * Reads the specified image and returns it as a BufferedImage using the + * default ImageReadParam. * + * @param imageIndex + * the image index. * @return the BufferedImage. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public BufferedImage read(int imageIndex) throws IOException { return read(imageIndex, null); } /** - * Reads the specified image and returns it as a BufferedImage - * using the specified ImageReadParam. - * - * @param imageIndex the image index. - * @param param the ImageReadParam. + * Reads the specified image and returns it as a BufferedImage using the + * specified ImageReadParam. * + * @param imageIndex + * the image index. + * @param param + * the ImageReadParam. * @return the BufferedImage. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public abstract BufferedImage read(int imageIndex, ImageReadParam param) throws IOException; /** * Reads the specified image and returns an IIOImage with this image, - * thumbnails, and metadata for this image, using - * the specified ImageReadParam. - * - * @param imageIndex the image index. - * @param param the ImageReadParam. + * thumbnails, and metadata for this image, using the specified + * ImageReadParam. * + * @param imageIndex + * the image index. + * @param param + * the ImageReadParam. * @return the IIOImage. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public IIOImage readAll(int imageIndex, ImageReadParam param) throws IOException { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Returns an Iterator of IIOImages from the input source. - * - * @param params the Iterator of ImageReadParam objects. + * Returns an Iterator of IIOImages from the input source. * + * @param params + * the Iterator of ImageReadParam objects. * @return the iterator of IIOImages. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public Iterator<IIOImage> readAll(Iterator<? extends ImageReadParam> params) throws IOException { throw new UnsupportedOperationException("Not implemented yet"); @@ -460,23 +489,23 @@ public abstract class ImageReader { /** * Checks whether or not this plug-in supports reading a Raster. * - * @return true, if this plug-in supports reading a Raster, - * false otherwise. + * @return true, if this plug-in supports reading a Raster, false otherwise. */ public boolean canReadRaster() { - return false; //def + return false; // def } /** - * Reads a new Raster object which contains the raw pixel data from - * the image. - * - * @param imageIndex the image index. - * @param param the ImageReadParam. + * Reads a new Raster object which contains the raw pixel data from the + * image. * + * @param imageIndex + * the image index. + * @param param + * the ImageReadParam. * @return the Raster. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public Raster readRaster(int imageIndex, ImageReadParam param) throws IOException { throw new UnsupportedOperationException("Unsupported"); @@ -485,220 +514,226 @@ public abstract class ImageReader { /** * Checks if the specified image has tiles or not. * - * @param imageIndex the image's index. - * - * @return true, if the specified image has tiles, - * false otherwise. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param imageIndex + * the image's index. + * @return true, if the specified image has tiles, false otherwise. + * @throws IOException + * if an I/O exception has occurred. */ public boolean isImageTiled(int imageIndex) throws IOException { - return false; //def + return false; // def } /** * Gets the tile width in the specified image. * - * @param imageIndex the image's index. - * + * @param imageIndex + * the image's index. * @return the tile width. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public int getTileWidth(int imageIndex) throws IOException { - return getWidth(imageIndex); //def + return getWidth(imageIndex); // def } /** * Gets the tile height in the specified image. * - * @param imageIndex the image's index. - * + * @param imageIndex + * the image's index. * @return the tile height. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public int getTileHeight(int imageIndex) throws IOException { - return getHeight(imageIndex); //def + return getHeight(imageIndex); // def } /** - * Gets the X coordinate of the upper left corner of the tile grid in the + * Gets the X coordinate of the upper left corner of the tile grid in the * specified image. * - * @param imageIndex the image's index. - * + * @param imageIndex + * the image's index. * @return the X coordinate of the upper left corner of the tile grid. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public int getTileGridXOffset(int imageIndex) throws IOException { - return 0; //def + return 0; // def } /** - * Gets the Y coordinate of the upper left corner of the tile grid in the + * Gets the Y coordinate of the upper left corner of the tile grid in the * specified image. * - * @param imageIndex the image's index. - * + * @param imageIndex + * the image's index. * @return the Y coordinate of the upper left corner of the tile grid. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public int getTileGridYOffset(int imageIndex) throws IOException { - return 0; //def + return 0; // def } /** - * Reads the tile specified by the tileX and tileY parameters - * of the specified image and returns it as a BufferedImage. - * - * @param imageIndex the image index. - * @param tileX the X index of tile. - * @param tileY the Y index of tile. + * Reads the tile specified by the tileX and tileY parameters of the + * specified image and returns it as a BufferedImage. * + * @param imageIndex + * the image index. + * @param tileX + * the X index of tile. + * @param tileY + * the Y index of tile. * @return the BufferedImage. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public BufferedImage readTile(int imageIndex, int tileX, int tileY) throws IOException { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Reads the tile specified by the tileX and tileY parameters - * of the specified image and returns it as a Raster. - * - * @param imageIndex the image index. - * @param tileX the X index of tile. - * @param tileY the Y index of tile. + * Reads the tile specified by the tileX and tileY parameters of the + * specified image and returns it as a Raster. * + * @param imageIndex + * the image index. + * @param tileX + * the X index of tile. + * @param tileY + * the Y index of tile. * @return the Raster. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public Raster readTileRaster(int imageIndex, int tileX, int tileY) throws IOException { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Reads the specified image using the specified - * ImageReadParam and returns it as a RenderedImage. - * - * @param imageIndex the image index. - * @param param the ImageReadParam. + * Reads the specified image using the specified ImageReadParam and returns + * it as a RenderedImage. * + * @param imageIndex + * the image index. + * @param param + * the ImageReadParam. * @return the RenderedImage. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ - public RenderedImage readAsRenderedImage(int imageIndex, ImageReadParam param) throws IOException { + public RenderedImage readAsRenderedImage(int imageIndex, ImageReadParam param) + throws IOException { return read(imageIndex, param); } /** - * Returns true if the image format supported by this reader - * supports thumbnail preview images. + * Returns true if the image format supported by this reader supports + * thumbnail preview images. * - * @return true if the image format supported by this reader - * supports thumbnail preview images, false otherwise. + * @return true, if the image format supported by this reader supports + * thumbnail preview images, false otherwise. */ public boolean readerSupportsThumbnails() { - return false; //def + return false; // def } /** * Checks if the specified image has thumbnails or not. * - * @param imageIndex the image's index. - * - * @return true, if the specified image has thumbnails, - * false otherwise. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param imageIndex + * the image's index. + * @return true, if the specified image has thumbnails, false otherwise. + * @throws IOException + * if an I/O exception has occurred. */ public boolean hasThumbnails(int imageIndex) throws IOException { - return getNumThumbnails(imageIndex) > 0; //def + return getNumThumbnails(imageIndex) > 0; // def } /** * Gets the number of thumbnails for the specified image. * - * @param imageIndex the image's index. - * + * @param imageIndex + * the image's index. * @return the number of thumbnails. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public int getNumThumbnails(int imageIndex) throws IOException { - return 0; //def + return 0; // def } /** * Gets the width of the specified thumbnail for the specified image. * - * @param imageIndex the image's index. - * @param thumbnailIndex the thumbnail's index. - * + * @param imageIndex + * the image's index. + * @param thumbnailIndex + * the thumbnail's index. * @return the thumbnail width. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public int getThumbnailWidth(int imageIndex, int thumbnailIndex) throws IOException { - return readThumbnail(imageIndex, thumbnailIndex).getWidth(); //def + return readThumbnail(imageIndex, thumbnailIndex).getWidth(); // def } /** * Gets the height of the specified thumbnail for the specified image. * - * @param imageIndex the image's index. - * @param thumbnailIndex the thumbnail's index. - * + * @param imageIndex + * the image's index. + * @param thumbnailIndex + * the thumbnail's index. * @return the thumbnail height. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public int getThumbnailHeight(int imageIndex, int thumbnailIndex) throws IOException { - return readThumbnail(imageIndex, thumbnailIndex).getHeight(); //def + return readThumbnail(imageIndex, thumbnailIndex).getHeight(); // def } /** - * Reads the thumbnail image for the specified image - * as a BufferedImage. - * - * @param imageIndex the image index. - * @param thumbnailIndex the thumbnail index. + * Reads the thumbnail image for the specified image as a BufferedImage. * + * @param imageIndex + * the image index. + * @param thumbnailIndex + * the thumbnail index. * @return the BufferedImage. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public BufferedImage readThumbnail(int imageIndex, int thumbnailIndex) throws IOException { - throw new UnsupportedOperationException("Unsupported"); //def + throw new UnsupportedOperationException("Unsupported"); // def } /** - * Requests an abort operation for current reading operation. + * Requests an abort operation for current reading operation. */ public void abort() { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Checks whether or not a request to abort the current read operation - * has been made successfully. + * Checks whether or not a request to abort the current read operation has + * been made successfully. * - * @return true, if the request to abort the current read operation - * has been made successfully, false otherwise. + * @return true, if the request to abort the current read operation has been + * made successfully, false otherwise. */ protected boolean abortRequested() { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Clears all previous abort request, and abortRequested returns false - * after calling this method. + * Clears all previous abort request, and abortRequested returns false after + * calling this method. */ protected void clearAbortRequest() { throw new UnsupportedOperationException("Not implemented yet"); @@ -707,7 +742,8 @@ public abstract class ImageReader { /** * Adds the IIOReadWarningListener. * - * @param listener the IIOReadWarningListener. + * @param listener + * the IIOReadWarningListener. */ public void addIIOReadWarningListener(IIOReadWarningListener listener) { throw new UnsupportedOperationException("Not implemented yet"); @@ -716,7 +752,8 @@ public abstract class ImageReader { /** * Removes the specified IIOReadWarningListener. * - * @param listener the IIOReadWarningListener to be removed. + * @param listener + * the IIOReadWarningListener to be removed. */ public void removeIIOReadWarningListener(IIOReadWarningListener listener) { throw new UnsupportedOperationException("Not implemented yet"); @@ -732,7 +769,8 @@ public abstract class ImageReader { /** * Adds the IIOReadProgressListener. * - * @param listener the IIOReadProgressListener. + * @param listener + * the IIOReadProgressListener. */ public void addIIOReadProgressListener(IIOReadProgressListener listener) { throw new UnsupportedOperationException("Not implemented yet"); @@ -741,7 +779,8 @@ public abstract class ImageReader { /** * Removes the specified IIOReadProgressListener. * - * @param listener the IIOReadProgressListener to be removed. + * @param listener + * the IIOReadProgressListener to be removed. */ public void removeIIOReadProgressListener(IIOReadProgressListener listener) { throw new UnsupportedOperationException("Not implemented yet"); @@ -757,7 +796,8 @@ public abstract class ImageReader { /** * Adds the IIOReadUpdateListener. * - * @param listener the IIOReadUpdateListener. + * @param listener + * the IIOReadUpdateListener. */ public void addIIOReadUpdateListener(IIOReadUpdateListener listener) { throw new UnsupportedOperationException("Not implemented yet"); @@ -766,7 +806,8 @@ public abstract class ImageReader { /** * Removes the specified IIOReadUpdateListener. * - * @param listener the IIOReadUpdateListener to be removed. + * @param listener + * the IIOReadUpdateListener to be removed. */ public void removeIIOReadUpdateListener(IIOReadUpdateListener listener) { throw new UnsupportedOperationException("Not implemented yet"); @@ -780,229 +821,243 @@ public abstract class ImageReader { } /** - * Processes the start of an sequence of image reads - * by calling the sequenceStarted method on all registered - * IIOReadProgressListeners. + * Processes the start of an sequence of image reads by calling the + * sequenceStarted method on all registered IIOReadProgressListeners. * - * @param minIndex the minimum index. + * @param minIndex + * the minimum index. */ protected void processSequenceStarted(int minIndex) { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Processes the completion of an sequence of image reads - * by calling sequenceComplete method on all registered - * IIOReadProgressListeners. + * Processes the completion of an sequence of image reads by calling + * sequenceComplete method on all registered IIOReadProgressListeners. */ protected void processSequenceComplete() { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Processes the start of an image read by calling the imageStarted - * method on all registered IIOReadProgressListeners. + * Processes the start of an image read by calling the imageStarted method + * on all registered IIOReadProgressListeners. * - * @param imageIndex the image index. + * @param imageIndex + * the image index. */ protected void processImageStarted(int imageIndex) { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Processes the current percentage of image completion by calling - * the imageProgress method on all registered IIOReadProgressListeners. + * Processes the current percentage of image completion by calling the + * imageProgress method on all registered IIOReadProgressListeners. * - * @param percentageDone the percentage done. + * @param percentageDone + * the percentage done. */ protected void processImageProgress(float percentageDone) { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Processes image completion by calling the imageComplete method - * on all registered IIOReadProgressListeners. + * Processes image completion by calling the imageComplete method on all + * registered IIOReadProgressListeners. */ protected void processImageComplete() { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Processes the start of a thumbnail read by calling the - * thumbnailStarted method on all registered IIOReadProgressListeners. + * Processes the start of a thumbnail read by calling the thumbnailStarted + * method on all registered IIOReadProgressListeners. * - * @param imageIndex the image index. - * @param thumbnailIndex the thumbnail index. + * @param imageIndex + * the image index. + * @param thumbnailIndex + * the thumbnail index. */ protected void processThumbnailStarted(int imageIndex, int thumbnailIndex) { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Processes the current percentage of thumbnail completion - * by calling the thumbnailProgress method on all registered - * IIOReadProgressListeners. + * Processes the current percentage of thumbnail completion by calling the + * thumbnailProgress method on all registered IIOReadProgressListeners. * - * @param percentageDone the percentage done. + * @param percentageDone + * the percentage done. */ protected void processThumbnailProgress(float percentageDone) { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Processes the completion of a thumbnail read - * by calling the thumbnailComplete method - * on all registered IIOReadProgressListeners. + * Processes the completion of a thumbnail read by calling the + * thumbnailComplete method on all registered IIOReadProgressListeners. */ protected void processThumbnailComplete() { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Processes a read aborted event by calling the readAborted - * method on all registered IIOReadProgressListeners. + * Processes a read aborted event by calling the readAborted method on all + * registered IIOReadProgressListeners. */ protected void processReadAborted() { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Processes the beginning of a progressive pass by calling - * the passStarted method on all registered IIOReadUpdateListeners. - * - * @param theImage the image to be updated. - * @param pass the current pass index. - * @param minPass the minimum pass index. - * @param maxPass the maximum pass index. - * @param minX the X coordinate of of the upper left pixel. - * @param minY the Y coordinate of of the upper left pixel. - * @param periodX the horizontal separation between pixels. - * @param periodY the vertical separation between pixels. - * @param bands the number of affected bands. - */ - protected void processPassStarted(BufferedImage theImage, - int pass, - int minPass, - int maxPass, - int minX, - int minY, - int periodX, - int periodY, - int[] bands) { + * Processes the beginning of a progressive pass by calling the passStarted + * method on all registered IIOReadUpdateListeners. + * + * @param theImage + * the image to be updated. + * @param pass + * the current pass index. + * @param minPass + * the minimum pass index. + * @param maxPass + * the maximum pass index. + * @param minX + * the X coordinate of of the upper left pixel. + * @param minY + * the Y coordinate of of the upper left pixel. + * @param periodX + * the horizontal separation between pixels. + * @param periodY + * the vertical separation between pixels. + * @param bands + * the number of affected bands. + */ + protected void processPassStarted(BufferedImage theImage, int pass, int minPass, int maxPass, + int minX, int minY, int periodX, int periodY, int[] bands) { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Processes the update of a set of samples by calling - * the imageUpdate method on all registered IIOReadUpdateListeners. - * - * @param theImage the image to be updated. - * @param minX the X coordinate of the upper left pixel. - * @param minY the Y coordinate of the upper left pixel. - * @param width the width of updated area. - * @param height the height of updated area. - * @param periodX the horizontal separation between pixels. - * @param periodY the vertical separation between pixels. - * @param bands the number of affected bands. - */ - protected void processImageUpdate(BufferedImage theImage, - int minX, - int minY, - int width, - int height, - int periodX, - int periodY, - int[] bands) { + * Processes the update of a set of samples by calling the imageUpdate + * method on all registered IIOReadUpdateListeners. + * + * @param theImage + * the image to be updated. + * @param minX + * the X coordinate of the upper left pixel. + * @param minY + * the Y coordinate of the upper left pixel. + * @param width + * the width of updated area. + * @param height + * the height of updated area. + * @param periodX + * the horizontal separation between pixels. + * @param periodY + * the vertical separation between pixels. + * @param bands + * the number of affected bands. + */ + protected void processImageUpdate(BufferedImage theImage, int minX, int minY, int width, + int height, int periodX, int periodY, int[] bands) { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Processes the end of a progressive pass by calling passComplete - * method of registered IIOReadUpdateListeners. + * Processes the end of a progressive pass by calling passComplete method of + * registered IIOReadUpdateListeners. * - * @param theImage the image to be updated. + * @param theImage + * the image to be updated. */ protected void processPassComplete(BufferedImage theImage) { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Processes the beginning of a thumbnail progressive pass - * by calling the thumbnailPassStarted method on all - * registered IIOReadUpdateListeners. - * - * @param theThumbnail the the thumbnail to be updated. - * @param pass the current pass index. - * @param minPass the minimum pass index. - * @param maxPass the maximum pass index. - * @param minX the X coordinate of the upper left pixel. - * @param minY the Y coordinate of the upper left pixel. - * @param periodX the horizontal separation between pixels. - * @param periodY the vertical separation between pixels. - * @param bands the number of affected bands. - */ - protected void processThumbnailPassStarted(BufferedImage theThumbnail, - int pass, - int minPass, - int maxPass, - int minX, - int minY, - int periodX, - int periodY, - int[] bands) { + * Processes the beginning of a thumbnail progressive pass by calling the + * thumbnailPassStarted method on all registered IIOReadUpdateListeners. + * + * @param theThumbnail + * the thumbnail to be updated. + * @param pass + * the current pass index. + * @param minPass + * the minimum pass index. + * @param maxPass + * the maximum pass index. + * @param minX + * the X coordinate of the upper left pixel. + * @param minY + * the Y coordinate of the upper left pixel. + * @param periodX + * the horizontal separation between pixels. + * @param periodY + * the vertical separation between pixels. + * @param bands + * the number of affected bands. + */ + protected void processThumbnailPassStarted(BufferedImage theThumbnail, int pass, int minPass, + int maxPass, int minX, int minY, int periodX, int periodY, int[] bands) { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Processes the update of a set of samples in a thumbnail - * image by calling the thumbnailUpdate method on all - * registered IIOReadUpdateListeners. - * - * @param theThumbnail the the thumbnail to be updated. - * @param minX the X coordinate of the upper left pixel. - * @param minY the Y coordinate of the upper left pixel. - * @param periodX the horizontal separation between pixels. - * @param periodY the vertical separation between pixels. - * @param bands the number of affected bands. - */ - protected void processThumbnailUpdate(BufferedImage theThumbnail, - int minX, - int minY, - int width, - int height, - int periodX, - int periodY, - int[] bands) { + * Processes the update of a set of samples in a thumbnail image by calling + * the thumbnailUpdate method on all registered IIOReadUpdateListeners. + * + * @param theThumbnail + * the thumbnail to be updated. + * @param minX + * the X coordinate of the upper left pixel. + * @param minY + * the Y coordinate of the upper left pixel. + * @param width + * the total width of the updated area. + * @param height + * the total height of the updated area. + * @param periodX + * the horizontal separation between pixels. + * @param periodY + * the vertical separation between pixels. + * @param bands + * the number of affected bands. + */ + protected void processThumbnailUpdate(BufferedImage theThumbnail, int minX, int minY, + int width, int height, int periodX, int periodY, int[] bands) { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Processes the end of a thumbnail progressive pass - * by calling the thumbnailPassComplete method - * on all registered IIOReadUpdateListeners. + * Processes the end of a thumbnail progressive pass by calling the + * thumbnailPassComplete method on all registered IIOReadUpdateListeners. * - * @param theThumbnail the thumbnail to be updated. + * @param theThumbnail + * the thumbnail to be updated. */ protected void processThumbnailPassComplete(BufferedImage theThumbnail) { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Processes a warning message by calling warningOccurred method - * of registered IIOReadWarningListeners. + * Processes a warning message by calling warningOccurred method of + * registered IIOReadWarningListeners. * - * @param warning the warning. + * @param warning + * the warning. */ protected void processWarningOccurred(String warning) { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Processes a warning by calling the warningOccurred method - * of on all registered IIOReadWarningListeners. + * Processes a warning by calling the warningOccurred method of on all + * registered IIOReadWarningListeners. * - * @param baseName the base name of ResourceBundles. - * @param keyword the keyword to index the warning among ResourceBundles. + * @param baseName + * the base name of ResourceBundles. + * @param keyword + * the keyword to index the warning among ResourceBundles. */ protected void processWarningOccurred(String baseName, String keyword) { throw new UnsupportedOperationException("Not implemented yet"); @@ -1029,13 +1084,15 @@ public abstract class ImageReader { } /** - * Gets the region of source image that should be read with the - * specified width, height and ImageReadParam. - * - * @param param the ImageReadParam object, or null. - * @param srcWidth the source image's width. - * @param srcHeight the source image's height. + * Gets the region of source image that should be read with the specified + * width, height and ImageReadParam. * + * @param param + * the ImageReadParam object, or null. + * @param srcWidth + * the source image's width. + * @param srcHeight + * the source image's height. * @return the Rectangle of source region. */ protected static Rectangle getSourceRegion(ImageReadParam param, int srcWidth, int srcHeight) { @@ -1043,58 +1100,63 @@ public abstract class ImageReader { } /** - * Computes the specified source region and the specified destination - * region with the specified the width and height of the source image, - * an optional destination image, and an ImageReadParam. + * Computes the specified source region and the specified destination region + * with the specified the width and height of the source image, an optional + * destination image, and an ImageReadParam. * - * @param param the an ImageReadParam object, or null. - * @param srcWidth the source image's width. - * @param srcHeight the source image's height. - * @param image the destination image. - * @param srcRegion the source region. - * @param destRegion the destination region. + * @param param + * the an ImageReadParam object, or null. + * @param srcWidth + * the source image's width. + * @param srcHeight + * the source image's height. + * @param image + * the destination image. + * @param srcRegion + * the source region. + * @param destRegion + * the destination region. */ - protected static void computeRegions(ImageReadParam param, - int srcWidth, - int srcHeight, - BufferedImage image, - Rectangle srcRegion, - Rectangle destRegion) { + protected static void computeRegions(ImageReadParam param, int srcWidth, int srcHeight, + BufferedImage image, Rectangle srcRegion, Rectangle destRegion) { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Checks the validity of the source and destination band and is called - * when the reader knows the number of bands of the source image and - * the number of bands of the destination image. + * Checks the validity of the source and destination band and is called when + * the reader knows the number of bands of the source image and the number + * of bands of the destination image. * - * @param param the ImageReadParam for reading the Image. - * @param numSrcBands the number of bands in the source. - * @param numDstBands the number of bands in the destination. + * @param param + * the ImageReadParam for reading the Image. + * @param numSrcBands + * the number of bands in the source. + * @param numDstBands + * the number of bands in the destination. */ - protected static void checkReadParamBandSettings(ImageReadParam param, - int numSrcBands, - int numDstBands) { + protected static void checkReadParamBandSettings(ImageReadParam param, int numSrcBands, + int numDstBands) { throw new UnsupportedOperationException("Not implemented yet"); } /** - * Gets the destination image where the decoded data is written. - * - * @param param the ImageReadParam. - * @param imageTypes the iterator of ImageTypeSpecifier objects. - * @param width the width of the image being decoded. - * @param height the height of the image being decoded. + * Gets the destination image where the decoded data is written. * + * @param param + * the ImageReadParam. + * @param imageTypes + * the iterator of ImageTypeSpecifier objects. + * @param width + * the width of the image being decoded. + * @param height + * the height of the image being decoded. * @return the BufferedImage where decoded pixels should be written. - * - * @throws IIOException the IIOException is thrown if - * there is no suitable ImageTypeSpecifier. + * @throws IIOException + * the IIOException is thrown if there is no suitable + * ImageTypeSpecifier. */ - protected static BufferedImage getDestination(ImageReadParam param, Iterator<ImageTypeSpecifier> imageTypes, - int width, - int height) - throws IIOException { + protected static BufferedImage getDestination(ImageReadParam param, + Iterator<ImageTypeSpecifier> imageTypes, int width, int height) throws IIOException { throw new UnsupportedOperationException("Not implemented yet"); } } diff --git a/awt/javax/imageio/ImageTranscoder.java b/awt/javax/imageio/ImageTranscoder.java index 1a0de76..632d890 100644 --- a/awt/javax/imageio/ImageTranscoder.java +++ b/awt/javax/imageio/ImageTranscoder.java @@ -18,43 +18,50 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio; import javax.imageio.metadata.IIOMetadata; import javax.imageio.ImageTypeSpecifier; /** - * The ImageTranscoder interface is to be implemented by classes that - * perform image transcoding operations, that is, take images written - * in one format and write them in another format using - * read/write operations. Some image data can be lost in such processes. - * The ImageTranscoder interface converts metadata objects (IIOMetadata) - * of ImageReader to apropriate metadata object for ImageWriter. + * The ImageTranscoder interface is to be implemented by classes that perform + * image transcoding operations, that is, take images written in one format and + * write them in another format using read/write operations. Some image data can + * be lost in such processes. The ImageTranscoder interface converts metadata + * objects (IIOMetadata) of ImageReader to appropriate metadata object for + * ImageWriter. + * + * @since Android 1.0 */ public interface ImageTranscoder { - + /** * Converts the specified IIOMetadata object using the specified * ImageWriteParam for obtaining writer's metadata structure. * - * @param inData the IIOMetadata. - * @param param the ImageWriteParam. - * + * @param inData + * the IIOMetadata. + * @param param + * the ImageWriteParam. * @return the IIOMetadata, or null. */ IIOMetadata convertStreamMetadata(IIOMetadata inData, ImageWriteParam param); /** * Converts the specified IIOMetadata object using the specified - * ImageWriteParam for obtaining writer's metadata structure - * and ImageTypeSpecifier object for obtaining the layout and - * color information of the image for this metadata. - * - * @param inData the IIOMetadata. - * @param imageType the ImageTypeSpecifier. - * @param param the ImageWriteParam. + * ImageWriteParam for obtaining writer's metadata structure and + * ImageTypeSpecifier object for obtaining the layout and color information + * of the image for this metadata. * + * @param inData + * the IIOMetadata. + * @param imageType + * the ImageTypeSpecifier. + * @param param + * the ImageWriteParam. * @return the IIOMetadata, or null. */ - IIOMetadata convertImageMetadata(IIOMetadata inData, ImageTypeSpecifier imageType, ImageWriteParam param); + IIOMetadata convertImageMetadata(IIOMetadata inData, ImageTypeSpecifier imageType, + ImageWriteParam param); } diff --git a/awt/javax/imageio/ImageTypeSpecifier.java b/awt/javax/imageio/ImageTypeSpecifier.java index c93f269..505b1c4 100644 --- a/awt/javax/imageio/ImageTypeSpecifier.java +++ b/awt/javax/imageio/ImageTypeSpecifier.java @@ -18,6 +18,7 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio; import java.awt.image.ColorModel; @@ -27,27 +28,31 @@ import java.awt.image.RenderedImage; import java.awt.color.ColorSpace; /** - * The ImageTypeSpecifier class performs conversion operations - * on the SampleModel and the ColorModel of an image. + * The ImageTypeSpecifier class performs conversion operations on the + * SampleModel and the ColorModel of an image. + * + * @since Android 1.0 */ public class ImageTypeSpecifier { - - /** + + /** * The ColorModel of this ImageTypeSpecifier. */ protected ColorModel colorModel; - - /** - * The SampleModel of this ImageTypeSpecifier. + + /** + * The SampleModel of this ImageTypeSpecifier. */ protected SampleModel sampleModel; /** - * Instantiates a new ImageTypeSpecifier with the specified - * ColorModel and SampleModel objects. + * Instantiates a new ImageTypeSpecifier with the specified ColorModel and + * SampleModel objects. * - * @param colorModel the ColorModel. - * @param sampleModel the SampleModel. + * @param colorModel + * the ColorModel. + * @param sampleModel + * the SampleModel. */ public ImageTypeSpecifier(ColorModel colorModel, SampleModel sampleModel) { if (colorModel == null) { @@ -65,10 +70,10 @@ public class ImageTypeSpecifier { } /** - * Instantiates a new ImageTypeSpecifier using the specified - * RenderedImage. + * Instantiates a new ImageTypeSpecifier using the specified RenderedImage. * - * @param renderedImage the RenderedImage. + * @param renderedImage + * the RenderedImage. */ public ImageTypeSpecifier(RenderedImage renderedImage) { if (renderedImage == null) { @@ -79,136 +84,139 @@ public class ImageTypeSpecifier { } /** - * Creates an ImageTypeSpecifier with the specified - * DirectColorModel and a packed SampleModel. - * - * @param colorSpace the ColorSpace. - * @param redMask the red mask. - * @param greenMask the green mask. - * @param blueMask the blue mask. - * @param alphaMask the alpha mask. - * @param transferType the transfer type. - * @param isAlphaPremultiplied the parameter indicates - * if the color channel is premultiplied by alpha. + * Creates an ImageTypeSpecifier with the specified DirectColorModel and a + * packed SampleModel. * + * @param colorSpace + * the ColorSpace. + * @param redMask + * the red mask. + * @param greenMask + * the green mask. + * @param blueMask + * the blue mask. + * @param alphaMask + * the alpha mask. + * @param transferType + * the transfer type. + * @param isAlphaPremultiplied + * the parameter indicates if the color channel is pre-multiplied + * by alpha. * @return the ImageTypeSpecifier. */ - public static ImageTypeSpecifier createPacked(ColorSpace colorSpace, - int redMask, - int greenMask, - int blueMask, - int alphaMask, - int transferType, - boolean isAlphaPremultiplied) { + public static ImageTypeSpecifier createPacked(ColorSpace colorSpace, int redMask, + int greenMask, int blueMask, int alphaMask, int transferType, + boolean isAlphaPremultiplied) { throw new UnsupportedOperationException("Not supported yet"); } /** - * Creates an ImageTypeSpecifier with specified - * ComponentColorModel and a PixelInterleavedSampleModel. - * - * @param colorSpace the ColorSpace. - * @param bandOffsets the band offsets. - * @param dataType the data type. - * @param hasAlpha the parameter indicates if alpha channel - * is needed. - * @param isAlphaPremultiplied the parameter indicates - * if the color channel is premultiplied by alpha. + * Creates an ImageTypeSpecifier with specified ComponentColorModel and a + * PixelInterleavedSampleModel. * + * @param colorSpace + * the ColorSpace. + * @param bandOffsets + * the band offsets. + * @param dataType + * the data type. + * @param hasAlpha + * the parameter indicates if alpha channel is needed. + * @param isAlphaPremultiplied + * the parameter indicates if the color channel is pre-multiplied + * by alpha. * @return the ImageTypeSpecifier. */ - public static ImageTypeSpecifier createInterleaved(ColorSpace colorSpace, - int[] bandOffsets, - int dataType, - boolean hasAlpha, - boolean isAlphaPremultiplied) { + public static ImageTypeSpecifier createInterleaved(ColorSpace colorSpace, int[] bandOffsets, + int dataType, boolean hasAlpha, boolean isAlphaPremultiplied) { throw new UnsupportedOperationException("Not supported yet"); } - /** - * Creates a ImageTypeSpecifier for a image with a - * BandedSampleModel and a ComponentColorModel. - * - * @param colorSpace the ColorSpace. - * @param bankIndices the bank indices. - * @param bandOffsets the band offsets. - * @param dataType the data type. - * @param hasAlpha the parameter indicates a presence of alpha channel. - * @param isAlphaPremultiplied the parameter indicates whether - * or not color channel is alpha premultiplied. + * Creates a ImageTypeSpecifier for a image with a BandedSampleModel and a + * ComponentColorModel. * + * @param colorSpace + * the ColorSpace. + * @param bankIndices + * the bank indices. + * @param bandOffsets + * the band offsets. + * @param dataType + * the data type. + * @param hasAlpha + * the parameter indicates a presence of alpha channel. + * @param isAlphaPremultiplied + * the parameter indicates whether or not color channel is alpha + * pre-multiplied. * @return the image type specifier */ - public static ImageTypeSpecifier createBanded(ColorSpace colorSpace, - int[] bankIndices, - int[] bandOffsets, - int dataType, - boolean hasAlpha, - boolean isAlphaPremultiplied) { + public static ImageTypeSpecifier createBanded(ColorSpace colorSpace, int[] bankIndices, + int[] bandOffsets, int dataType, boolean hasAlpha, boolean isAlphaPremultiplied) { throw new UnsupportedOperationException("Not supported yet"); } /** * Creates a ImageTypeSpecifier for a grayscale image. * - * @param bits the number of bits per gray value. - * @param dataType the data type. - * @param isSigned a signed flag. - * + * @param bits + * the number of bits per gray value. + * @param dataType + * the data type. + * @param isSigned + * a signed flag. * @return the ImageTypeSpecifier. */ - public static ImageTypeSpecifier createGrayscale(int bits, - int dataType, - boolean isSigned) { + public static ImageTypeSpecifier createGrayscale(int bits, int dataType, boolean isSigned) { throw new UnsupportedOperationException("Not supported yet"); } /** * Creates a ImageTypeSpecifier for a grayscale image. * - * @param bits the number of bits per gray value. - * @param dataType the data type. - * @param isSigned a signed flag. - * @param isAlphaPremultiplied the parameter indicates - * if color channel is premultiplied by alpha, or not. - * + * @param bits + * the number of bits per gray value. + * @param dataType + * the data type. + * @param isSigned + * a signed flag. + * @param isAlphaPremultiplied + * the parameter indicates if color channel is pre-multiplied by + * alpha, or not. * @return the ImageTypeSpecifier. */ - public static ImageTypeSpecifier createGrayscale(int bits, - int dataType, - boolean isSigned, - boolean isAlphaPremultiplied) { + public static ImageTypeSpecifier createGrayscale(int bits, int dataType, boolean isSigned, + boolean isAlphaPremultiplied) { throw new UnsupportedOperationException("Not supported yet"); } /** * Creates a ImageTypeSpecifier with the indexed image format. * - * @param redLUT the red values of indecies. - * @param greenLUT the green values of indecies. - * @param blueLUT the blue values of indecies. - * @param alphaLUT the alpha values of indecies. - * @param bits the bits number for each index. - * @param dataType the data type. - * + * @param redLUT + * the red values of indices. + * @param greenLUT + * the green values of indices. + * @param blueLUT + * the blue values of indices. + * @param alphaLUT + * the alpha values of indices. + * @param bits + * the bits number for each index. + * @param dataType + * the data type. * @return the ImageTypeSpecifier. */ - public static ImageTypeSpecifier createIndexed(byte[] redLUT, - byte[] greenLUT, - byte[] blueLUT, - byte[] alphaLUT, - int bits, - int dataType) { + public static ImageTypeSpecifier createIndexed(byte[] redLUT, byte[] greenLUT, byte[] blueLUT, + byte[] alphaLUT, int bits, int dataType) { throw new UnsupportedOperationException("Not supported yet"); } /** - * Creates the ImageTypeSpecifier from - * the specified buffered image type. - * - * @param bufferedImageType the buffered image type. + * Creates the ImageTypeSpecifier from the specified buffered image type. * + * @param bufferedImageType + * the buffered image type. * @return the ImageTypeSpecifier. */ public static ImageTypeSpecifier createFromBufferedImageType(int bufferedImageType) { @@ -216,11 +224,10 @@ public class ImageTypeSpecifier { } /** - * Creates the ImageTypeSpecifier from - * the specified RenderedImage. - * - * @param image the RenderedImage. + * Creates the ImageTypeSpecifier from the specified RenderedImage. * + * @param image + * the RenderedImage. * @return the ImageTypeSpecifier. */ public static ImageTypeSpecifier createFromRenderedImage(RenderedImage image) { @@ -242,7 +249,7 @@ public class ImageTypeSpecifier { /** * Gets the number of components. * - * @return the number of components + * @return the number of components. */ public int getNumComponents() { return colorModel.getNumComponents(); @@ -251,7 +258,7 @@ public class ImageTypeSpecifier { /** * Gets the number of bands. * - * @return the number of bands + * @return the number of bands. */ public int getNumBands() { return sampleModel.getNumBands(); @@ -260,8 +267,8 @@ public class ImageTypeSpecifier { /** * Gets the number of bits per the specified band. * - * @param band the index of band. - * + * @param band + * the index of band. * @return the number of bits per the specified band. */ public int getBitsPerBand(int band) { @@ -283,13 +290,14 @@ public class ImageTypeSpecifier { /** * Gets a compatible SampleModel with the specified width and height. * - * @param width the width. - * @param height the height. - * + * @param width + * the width. + * @param height + * the height. * @return the SampleModel. */ public SampleModel getSampleModel(int width, int height) { - if ((long)width*height > Integer.MAX_VALUE) { + if ((long)width * height > Integer.MAX_VALUE) { throw new IllegalArgumentException("width * height > Integer.MAX_VALUE"); } return sampleModel.createCompatibleSampleModel(width, height); @@ -298,20 +306,21 @@ public class ImageTypeSpecifier { /** * Gets the ColorModel associated with this ImageTypeSpecifier. * - * @return the ColorModel associated with this ImageTypeSpecifier. + * @return the ColorModel associated with this ImageTypeSpecifier. */ public ColorModel getColorModel() { return colorModel; } /** - * Creates the BufferedImage with the specified width and height - * and the ColorMadel and SampleModel which are specified by this + * Creates the BufferedImage with the specified width and height and the + * ColorMadel and SampleModel which are specified by this * ImageTypeSpecifier. * - * @param width the width of the BufferedImage. - * @param height the height of the BufferedImage. - * + * @param width + * the width of the BufferedImage. + * @param height + * the height of the BufferedImage. * @return the BufferedImage. */ public BufferedImage createBufferedImage(int width, int height) { @@ -319,19 +328,18 @@ public class ImageTypeSpecifier { } /** - * Compares this ImageTypeSpecifier object with the specified - * object. - * - * @param o the Object to be compared. + * Compares this ImageTypeSpecifier object with the specified object. * - * @return true, if the object is an ImageTypeSpecifier with the same - * data as this ImageTypeSpecifier, false otherwise. + * @param o + * the Object to be compared. + * @return true, if the object is an ImageTypeSpecifier with the same data + * as this ImageTypeSpecifier, false otherwise. */ @Override public boolean equals(Object o) { boolean rt = false; if (o instanceof ImageTypeSpecifier) { - ImageTypeSpecifier ts = (ImageTypeSpecifier) o; + ImageTypeSpecifier ts = (ImageTypeSpecifier)o; rt = colorModel.equals(ts.colorModel) && sampleModel.equals(ts.sampleModel); } return rt; diff --git a/awt/javax/imageio/ImageWriteParam.java b/awt/javax/imageio/ImageWriteParam.java index d32fa59..d661889 100644 --- a/awt/javax/imageio/ImageWriteParam.java +++ b/awt/javax/imageio/ImageWriteParam.java @@ -18,103 +18,141 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio; import java.util.Locale; import java.awt.*; /** - * The ImageWriteParam class provides information to an ImageWriter - * about how an image is to be encoded. + * The ImageWriteParam class provides information to an ImageWriter about how an + * image is to be encoded. + * + * @since Android 1.0 */ public class ImageWriteParam extends IIOParam { - /** - * The Constant MODE_DISABLED indicates that - * stream is not tiled, progressive, or compressed. + /** + * The Constant MODE_DISABLED indicates that stream is not tiled, + * progressive, or compressed. */ public static final int MODE_DISABLED = 0; - - /** - * The Constant MODE_DEFAULT indicates that the stream will be tiled, - * progressive, or compressed according to the plug-in's default. + + /** + * The Constant MODE_DEFAULT indicates that the stream will be tiled, + * progressive, or compressed according to the plug-in's default. */ public static final int MODE_DEFAULT = 1; - - /** + + /** * The Constant MODE_EXPLICIT indicates that the stream will be tiled, - * progressive, or compressed according to current settings - * which are defined by set methods. + * progressive, or compressed according to current settings which are + * defined by set methods. */ public static final int MODE_EXPLICIT = 2; - - /** - * The Constant MODE_COPY_FROM_METADATA indicates that the stream - * will be tiled, progressive, or compressed according to - * stream or image metadata. + + /** + * The Constant MODE_COPY_FROM_METADATA indicates that the stream will be + * tiled, progressive, or compressed according to stream or image metadata. */ public static final int MODE_COPY_FROM_METADATA = 3; - - /** Whether the ImageWriter can write tiles. */ + + /** + * Whether the ImageWriter can write tiles. + */ protected boolean canWriteTiles = false; - - /** The tiling mode. */ + + /** + * The tiling mode. + */ protected int tilingMode = MODE_COPY_FROM_METADATA; - - /** The preferred tile sizes. */ + + /** + * The preferred tile sizes. + */ protected Dimension[] preferredTileSizes = null; - - /** The tiling set. */ + + /** + * The tiling set. + */ protected boolean tilingSet = false; - - /** The tile width. */ + + /** + * The tile width. + */ protected int tileWidth = 0; - - /** The tile height. */ + + /** + * The tile height. + */ protected int tileHeight = 0; - - /** Whether the ImageWriter can offset tiles. */ + + /** + * Whether the ImageWriter can offset tiles. + */ protected boolean canOffsetTiles = false; - - /** The tile grid x offset. */ + + /** + * The tile grid x offset. + */ protected int tileGridXOffset = 0; - - /** The tile grid y offset. */ + + /** + * The tile grid y offset. + */ protected int tileGridYOffset = 0; - - /** Whether the ImageWriter can write in progressive mode. */ + + /** + * Whether the ImageWriter can write in progressive mode. + */ protected boolean canWriteProgressive = false; - - /** The progressive mode. */ + + /** + * The progressive mode. + */ protected int progressiveMode = MODE_COPY_FROM_METADATA; - - /** Whether the ImageWriter can write in compressed mode. */ + + /** + * Whether the ImageWriter can write in compressed mode. + */ protected boolean canWriteCompressed = false; - - /** The compression mode. */ + + /** + * The compression mode. + */ protected int compressionMode = MODE_COPY_FROM_METADATA; - - /** The compression types. */ + + /** + * The compression types. + */ protected String[] compressionTypes = null; - - /** The compression type. */ + + /** + * The compression type. + */ protected String compressionType = null; - - /** The compression quality. */ + + /** + * The compression quality. + */ protected float compressionQuality = 1.0f; - - /** The locale. */ + + /** + * The locale. + */ protected Locale locale = null; /** * Instantiates a new ImageWriteParam. */ - protected ImageWriteParam() {} + protected ImageWriteParam() { + } /** * Instantiates a new ImageWriteParam with the specified Locale. * - * @param locale the Locale. + * @param locale + * the Locale. */ public ImageWriteParam(Locale locale) { this.locale = locale; @@ -122,7 +160,7 @@ public class ImageWriteParam extends IIOParam { } /** - * Gets the mode for writing the stream in a progressive sequence. + * Gets the mode for writing the stream in a progressive sequence. * * @return the current progressive mode. */ @@ -134,24 +172,24 @@ public class ImageWriteParam extends IIOParam { } /** - * Returns true if images can be written using - * increasing quality passes by progressive. + * Returns true if images can be written using increasing quality passes by + * progressive. * - * @return true if images can be written using - * increasing quality passes by progressive, false otherwise. + * @return true if images can be written using increasing quality passes by + * progressive, false otherwise. */ public boolean canWriteProgressive() { return canWriteProgressive; } /** - * Sets the progressive mode which defines whether the stream - * contains a progressive sequence of increasing quality - * during writing. The progressive mode should be one of - * the following values: MODE_DISABLED, MODE_DEFAULT, or - * MODE_COPY_FROM_METADATA. + * Sets the progressive mode which defines whether the stream contains a + * progressive sequence of increasing quality during writing. The + * progressive mode should be one of the following values: MODE_DISABLED, + * MODE_DEFAULT, or MODE_COPY_FROM_METADATA. * - * @param mode the new progressive mode. + * @param mode + * the new progressive mode. */ public void setProgressiveMode(int mode) { if (canWriteProgressive()) { @@ -164,22 +202,21 @@ public class ImageWriteParam extends IIOParam { } /** - * Returns true if the writer can use tiles with non zero - * grid offsets while writing. + * Returns true if the writer can use tiles with non zero grid offsets while + * writing. * - * @return true if the writer can use tiles with non zero - * grid offsets while writing, false otherwise. + * @return true, if the writer can use tiles with non zero grid offsets + * while writing, false otherwise. */ public boolean canOffsetTiles() { return canOffsetTiles; } /** - * Returns true if this writer can write images with - * compression. + * Returns true if this writer can write images with compression. * - * @return true, true if this writer can write images with - * compression, false otherwise. + * @return true, if this writer can write images with compression, false + * otherwise. */ public boolean canWriteCompressed() { return canWriteCompressed; @@ -188,7 +225,7 @@ public class ImageWriteParam extends IIOParam { /** * Returns true if the writer can write tiles. * - * @return true if the writer can write tiles, false otherwise. + * @return true, if the writer can write tiles, false otherwise. */ public boolean canWriteTiles() { return canWriteTiles; @@ -247,8 +284,7 @@ public class ImageWriteParam extends IIOParam { /** * Gets the current compression type, or returns null. * - * @return the current compression type, or returns null - * if it is not set. + * @return the current compression type, or returns null if it is not set. */ public String getCompressionType() { checkWriteCompressed(); @@ -257,14 +293,12 @@ public class ImageWriteParam extends IIOParam { } /** - * Gets a bit rate which represents an estimate of the number of bits - * of output data for each bit of input image data with the specified - * quality. + * Gets a bit rate which represents an estimate of the number of bits of + * output data for each bit of input image data with the specified quality. * - * @param quality the quality. - * - * @return an estimate of the bit rate, or -1.0F if there is no - * estimate. + * @param quality + * the quality. + * @return an estimate of the bit rate, or -1.0F if there is no estimate. */ public float getBitRate(float quality) { checkWriteCompressed(); @@ -301,8 +335,7 @@ public class ImageWriteParam extends IIOParam { } /** - * Gets an array of floats which decribe - * compression quality levels. + * Gets an array of floats which describes compression quality levels. * * @return the array of compression quality values. */ @@ -323,7 +356,7 @@ public class ImageWriteParam extends IIOParam { } /** - * Gets the current compression type using the current Locale. + * Gets the current compression type using the current Locale. * * @return the current compression type using the current Locale. */ @@ -377,8 +410,8 @@ public class ImageWriteParam extends IIOParam { } /** - * Gets an array of Dimensions giving the sizes of the tiles as - * they are encoded in the output file or stream. + * Gets an array of Dimensions giving the sizes of the tiles as they are + * encoded in the output file or stream. * * @return the preferred tile sizes. */ @@ -420,11 +453,10 @@ public class ImageWriteParam extends IIOParam { } /** - * Gets the tile height in an image as it is written to the - * output stream. + * Gets the tile height in an image as it is written to the output stream. * - * @return the tile height in an image as it is written to the - * output stream. + * @return the tile height in an image as it is written to the output + * stream. */ public int getTileHeight() { checkTiling(); @@ -434,11 +466,9 @@ public class ImageWriteParam extends IIOParam { } /** - * Gets the tile width in an image as it is written to the - * output stream. + * Gets the tile width in an image as it is written to the output stream. * - * @return the tile width in an image as it is written to the - * output stream. + * @return the tile width in an image as it is written to the output stream. */ public int getTileWidth() { checkTiling(); @@ -448,11 +478,10 @@ public class ImageWriteParam extends IIOParam { } /** - * Checks if the current compression type has lossless - * compression or not. + * Checks if the current compression type has lossless compression or not. * - * @return true, if the current compression type has lossless - * compression, false otherwise. + * @return true, if the current compression type has lossless compression, + * false otherwise. */ public boolean isCompressionLossless() { checkWriteCompressed(); @@ -472,12 +501,12 @@ public class ImageWriteParam extends IIOParam { } /** - * Sets the compression mode to the specified value. - * The specified mode can be one of the predefined - * constants: MODE_DEFAULT, MODE_DISABLED, MODE_EXPLICIT, - * or MODE_COPY_FROM_METADATA. - * - * @param mode the new compression mode to be set. + * Sets the compression mode to the specified value. The specified mode can + * be one of the predefined constants: MODE_DEFAULT, MODE_DISABLED, + * MODE_EXPLICIT, or MODE_COPY_FROM_METADATA. + * + * @param mode + * the new compression mode to be set. */ public void setCompressionMode(int mode) { checkWriteCompressed(); @@ -502,8 +531,8 @@ public class ImageWriteParam extends IIOParam { /** * Sets the compression quality. The value should be between 0 and 1. * - * @param quality the new compression quality, - * float value between 0 and 1. + * @param quality + * the new compression quality, float value between 0 and 1. */ public void setCompressionQuality(float quality) { checkWriteCompressed(); @@ -516,11 +545,11 @@ public class ImageWriteParam extends IIOParam { } /** - * Sets the compression type. The specified string - * should be one of the values returned - * by getCompressionTypes method. + * Sets the compression type. The specified string should be one of the + * values returned by getCompressionTypes method. * - * @param compressionType the new compression type. + * @param compressionType + * the new compression type. */ public void setCompressionType(String compressionType) { checkWriteCompressed(); @@ -547,13 +576,17 @@ public class ImageWriteParam extends IIOParam { } /** - * Sets the instruction that tiling should be performed for - * the image in the output stream with the specified parameters. + * Sets the instruction that tiling should be performed for the image in the + * output stream with the specified parameters. * - * @param tileWidth the tile's width. - * @param tileHeight the tile's height. - * @param tileGridXOffset the tile grid's x offset. - * @param tileGridYOffset the tile grid's y offset. + * @param tileWidth + * the tile's width. + * @param tileHeight + * the tile's height. + * @param tileGridXOffset + * the tile grid's x offset. + * @param tileGridYOffset + * the tile grid's y offset. */ public void setTiling(int tileWidth, int tileHeight, int tileGridXOffset, int tileGridYOffset) { checkTiling(); @@ -563,19 +596,17 @@ public class ImageWriteParam extends IIOParam { throw new UnsupportedOperationException("Can't offset tiles!"); } - if (tileWidth <=0 || tileHeight <= 0) { + if (tileWidth <= 0 || tileHeight <= 0) { throw new IllegalArgumentException("tile dimensions are non-positive!"); } Dimension preferredTileSizes[] = getPreferredTileSizes(); if (preferredTileSizes != null) { - for (int i = 0; i < preferredTileSizes.length; i+=2) { + for (int i = 0; i < preferredTileSizes.length; i += 2) { Dimension minSize = preferredTileSizes[i]; - Dimension maxSize = preferredTileSizes[i+1]; - if ( - tileWidth < minSize.width || tileWidth > maxSize.width || - tileHeight < minSize.height || tileHeight > maxSize.height - ) { + Dimension maxSize = preferredTileSizes[i + 1]; + if (tileWidth < minSize.width || tileWidth > maxSize.width + || tileHeight < minSize.height || tileHeight > maxSize.height) { throw new IllegalArgumentException("Illegal tile size!"); } } @@ -603,11 +634,12 @@ public class ImageWriteParam extends IIOParam { } /** - * Sets the tiling mode. The specified mode should be one of the - * following values: MODE_DISABLED, MODE_DEFAULT, MODE_EXPLICIT, - * or MODE_COPY_FROM_METADATA. + * Sets the tiling mode. The specified mode should be one of the following + * values: MODE_DISABLED, MODE_DEFAULT, MODE_EXPLICIT, or + * MODE_COPY_FROM_METADATA. * - * @param mode the new tiling mode. + * @param mode + * the new tiling mode. */ public void setTilingMode(int mode) { checkTiling(); @@ -630,4 +662,3 @@ public class ImageWriteParam extends IIOParam { } } } - diff --git a/awt/javax/imageio/ImageWriter.java b/awt/javax/imageio/ImageWriter.java index d6119b0..86879e0 100644 --- a/awt/javax/imageio/ImageWriter.java +++ b/awt/javax/imageio/ImageWriter.java @@ -18,6 +18,7 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio; import java.awt.Dimension; @@ -40,34 +41,49 @@ import javax.imageio.metadata.IIOMetadata; import javax.imageio.spi.ImageWriterSpi; /** - * The ImageWriter class is an abstract class for encoding images. - * ImageWriter objects are instantiated by the service provider - * interface, ImageWriterSpi class, for the specific format. - * ImageWriterSpi class should be registered with the IIORegistry, - * which uses them for format recognition and presentation of available - * format readers and writers. + * The ImageWriter class is an abstract class for encoding images. ImageWriter + * objects are instantiated by the service provider interface, ImageWriterSpi + * class, for the specific format. ImageWriterSpi class should be registered + * with the IIORegistry, which uses them for format recognition and presentation + * of available format readers and writers. + * + * @since Android 1.0 */ public abstract class ImageWriter implements ImageTranscoder { - /** The available locales. */ + /** + * The available locales. + */ protected Locale[] availableLocales; - - /** The locale. */ + + /** + * The locale. + */ protected Locale locale; - - /** The originating provider. */ + + /** + * The originating provider. + */ protected ImageWriterSpi originatingProvider; - - /** The output. */ + + /** + * The output. + */ protected Object output; - - /** The progress listeners. */ + + /** + * The progress listeners. + */ protected List<IIOWriteProgressListener> progressListeners; - - /** The warning listeners. */ + + /** + * The warning listeners. + */ protected List<IIOWriteWarningListener> warningListeners; - - /** The warning locales. */ + + /** + * The warning locales. + */ protected List<Locale> warningLocales; // Indicates that abort operation is requested @@ -78,22 +94,21 @@ public abstract class ImageWriter implements ImageTranscoder { /** * Instantiates a new ImageWriter. * - * @param originatingProvider the ImageWriterSpi which - * instanties this ImageWriter. + * @param originatingProvider + * the ImageWriterSpi which instantiates this ImageWriter. */ protected ImageWriter(ImageWriterSpi originatingProvider) { this.originatingProvider = originatingProvider; } public abstract IIOMetadata convertStreamMetadata(IIOMetadata iioMetadata, - ImageWriteParam imageWriteParam); + ImageWriteParam imageWriteParam); public abstract IIOMetadata convertImageMetadata(IIOMetadata iioMetadata, - ImageTypeSpecifier imageTypeSpecifier, - ImageWriteParam imageWriteParam); + ImageTypeSpecifier imageTypeSpecifier, ImageWriteParam imageWriteParam); /** - * Gets the ImageWriterSpi which instantiated this ImageWriter. + * Gets the ImageWriterSpi which instantiated this ImageWriter. * * @return the ImageWriterSpi. */ @@ -102,10 +117,11 @@ public abstract class ImageWriter implements ImageTranscoder { } /** - * Processes the start of an image read by calling their imageStarted - * method of registered IIOWriteProgressListeners. + * Processes the start of an image read by calling their imageStarted method + * of registered IIOWriteProgressListeners. * - * @param imageIndex the image index. + * @param imageIndex + * the image index. */ protected void processImageStarted(int imageIndex) { if (null != progressListeners) { @@ -116,10 +132,11 @@ public abstract class ImageWriter implements ImageTranscoder { } /** - * Processes the current percentage of image completion by calling + * Processes the current percentage of image completion by calling * imageProgress method of registered IIOWriteProgressListener. * - * @param percentageDone the percentage done. + * @param percentageDone + * the percentage done. */ protected void processImageProgress(float percentageDone) { if (null != progressListeners) { @@ -130,8 +147,8 @@ public abstract class ImageWriter implements ImageTranscoder { } /** - * Processes image completion by calling imageComplete method - * of registered IIOWriteProgressListeners. + * Processes image completion by calling imageComplete method of registered + * IIOWriteProgressListeners. */ protected void processImageComplete() { if (null != progressListeners) { @@ -142,11 +159,13 @@ public abstract class ImageWriter implements ImageTranscoder { } /** - * Processes a warning message by calling warningOccurred method - * of registered IIOWriteWarningListeners. + * Processes a warning message by calling warningOccurred method of + * registered IIOWriteWarningListeners. * - * @param imageIndex the image index. - * @param warning the warning. + * @param imageIndex + * the image index. + * @param warning + * the warning. */ protected void processWarningOccurred(int imageIndex, String warning) { if (null == warning) { @@ -160,13 +179,15 @@ public abstract class ImageWriter implements ImageTranscoder { } /** - * Processes a warning message by calling warningOccurred method - * of registered IIOWriteWarningListeners with string from - * ResourceBundle. + * Processes a warning message by calling warningOccurred method of + * registered IIOWriteWarningListeners with string from ResourceBundle. * - * @param imageIndex the image index. - * @param bundle the name of ResourceBundle. - * @param key the keyword. + * @param imageIndex + * the image index. + * @param bundle + * the name of ResourceBundle. + * @param key + * the keyword. */ protected void processWarningOccurred(int imageIndex, String bundle, String key) { if (warningListeners != null) { // Don't check the parameters @@ -180,17 +201,18 @@ public abstract class ImageWriter implements ImageTranscoder { throw new IllegalArgumentException("keyword == null!"); } - // Get the context class loader and try to locate the bundle with it first - ClassLoader contextClassloader = AccessController.doPrivileged( - new PrivilegedAction<ClassLoader>() { + // Get the context class loader and try to locate the bundle with it + // first + ClassLoader contextClassloader = AccessController + .doPrivileged(new PrivilegedAction<ClassLoader>() { public ClassLoader run() { return Thread.currentThread().getContextClassLoader(); } - }); + }); // Iterate through both listeners and locales int n = warningListeners.size(); - for (int i=0; i < n; i++) { + for (int i = 0; i < n; i++) { IIOWriteWarningListener listener = warningListeners.get(i); Locale locale = warningLocales.get(i); @@ -218,10 +240,11 @@ public abstract class ImageWriter implements ImageTranscoder { } /** - * Sets the specified Object to the output of this ImageWriter. + * Sets the specified Object to the output of this ImageWriter. * - * @param output the Object which represents destination, it can - * be ImageOutputStream or other objects. + * @param output + * the Object which represents destination, it can be + * ImageOutputStream or other objects. */ public void setOutput(Object output) { if (output != null) { @@ -244,26 +267,26 @@ public abstract class ImageWriter implements ImageTranscoder { } /** - * Writes a completed image stream that contains the specified image, + * Writes a completed image stream that contains the specified image, * default metadata, and thumbnails to the output. * - * @param image the specified image to be written. - * - * @throws IOException Signals that an I/O exception has occurred - * during writting. + * @param image + * the specified image to be written. + * @throws IOException + * if an I/O exception has occurred during writing. */ public void write(IIOImage image) throws IOException { write(null, image, null); } /** - * Writes a completed image stream that contains the specified - * rendered image, default metadata, and thumbnails to the output. - * - * @param image the specified RenderedImage to be written. + * Writes a completed image stream that contains the specified rendered + * image, default metadata, and thumbnails to the output. * - * @throws IOException Signals that an I/O exception has occurred - * during writting. + * @param image + * the specified RenderedImage to be written. + * @throws IOException + * if an I/O exception has occurred during writing. */ public void write(RenderedImage image) throws IOException { write(null, new IIOImage(image, null, null), null); @@ -273,16 +296,18 @@ public abstract class ImageWriter implements ImageTranscoder { * Writes a completed image stream that contains the specified image, * metadata and thumbnails to the output. * - * @param streamMetadata the stream metadata, or null. - * @param image the specified image to be written, if - * canWriteRaster() method returns false, then Image must contain - * only RenderedImage. - * @param param the ImageWriteParam, or null. - * - * @throws IOException - if an error occurs during writing. + * @param streamMetadata + * the stream metadata, or null. + * @param image + * the specified image to be written, if canWriteRaster() method + * returns false, then Image must contain only RenderedImage. + * @param param + * the ImageWriteParam, or null. + * @throws IOException + * if an error occurs during writing. */ - public abstract void write(IIOMetadata streamMetadata, - IIOImage image, ImageWriteParam param) throws IOException; + public abstract void write(IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param) + throws IOException; /** * Disposes of any resources. @@ -292,26 +317,26 @@ public abstract class ImageWriter implements ImageTranscoder { } /** - * Requests an abort operation for current writing operation. + * Requests an abort operation for current writing operation. */ public synchronized void abort() { aborted = true; } /** - * Checks whether or not a request to abort the current write operation - * has been made successfully. + * Checks whether or not a request to abort the current write operation has + * been made successfully. * - * @return true, if the request to abort the current write operation - * has been made successfully, false otherwise. + * @return true, if the request to abort the current write operation has + * been made successfully, false otherwise. */ protected synchronized boolean abortRequested() { return aborted; } /** - * Clears all previous abort request, and abortRequested returns false - * after calling this method. + * Clears all previous abort request, and abortRequested returns false after + * calling this method. */ protected synchronized void clearAbortRequest() { aborted = false; @@ -320,7 +345,8 @@ public abstract class ImageWriter implements ImageTranscoder { /** * Adds the IIOWriteProgressListener listener. * - * @param listener the IIOWriteProgressListener listener. + * @param listener + * the IIOWriteProgressListener listener. */ public void addIIOWriteProgressListener(IIOWriteProgressListener listener) { if (listener == null) { @@ -337,7 +363,8 @@ public abstract class ImageWriter implements ImageTranscoder { /** * Adds the IIOWriteWarningListener. * - * @param listener the IIOWriteWarningListener listener. + * @param listener + * the IIOWriteWarningListener listener. */ public void addIIOWriteWarningListener(IIOWriteWarningListener listener) { if (listener == null) { @@ -356,8 +383,8 @@ public abstract class ImageWriter implements ImageTranscoder { /** * Gets the output object that was set by setOutput method. * - * @return the output object such as ImageOutputStream, or null if - * it is not set. + * @return the output object such as ImageOutputStream, or null if it is not + * set. */ public Object getOutput() { return output; @@ -366,7 +393,7 @@ public abstract class ImageWriter implements ImageTranscoder { /** * Check output return false. * - * @return true, if successful + * @return true, if successful. */ private final boolean checkOutputReturnFalse() { if (getOutput() == null) { @@ -385,124 +412,122 @@ public abstract class ImageWriter implements ImageTranscoder { throw new UnsupportedOperationException("Unsupported write variant!"); } - /** - * Returns true if a new empty image can be inserted at - * the specified index. + * Returns true if a new empty image can be inserted at the specified index. * - * @param imageIndex the specified index of image. - * - * @return true if a new empty image can be inserted at - * the specified index, false otherwise. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param imageIndex + * the specified index of image. + * @return true if a new empty image can be inserted at the specified index, + * false otherwise. + * @throws IOException + * Signals that an I/O exception has occurred. */ public boolean canInsertEmpty(int imageIndex) throws IOException { return checkOutputReturnFalse(); } /** - * Returns true if a new image can be inserted at the specified index. - * - * @param imageIndex the specified index of image. + * Returns true if a new image can be inserted at the specified index. * - * @return true if a new image can be inserted at the specified index, - * false otherwise. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param imageIndex + * the specified index of image. + * @return true if a new image can be inserted at the specified index, false + * otherwise. + * @throws IOException + * Signals that an I/O exception has occurred. */ public boolean canInsertImage(int imageIndex) throws IOException { return checkOutputReturnFalse(); } /** - * Returnes true if the image with the specified index can be removed. - * - * @param imageIndex the specified index of image. + * Returns true if the image with the specified index can be removed. * - * @return true if the image with the specified index can be removed, - * false otherwise. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param imageIndex + * the specified index of image. + * @return true if the image with the specified index can be removed, false + * otherwise. + * @throws IOException + * Signals that an I/O exception has occurred. */ public boolean canRemoveImage(int imageIndex) throws IOException { return checkOutputReturnFalse(); } /** - * Returns true if metadata of the image with the specified index - * can be replaced. - * - * @param imageIndex the specified image index. + * Returns true if metadata of the image with the specified index can be + * replaced. * - * @return true if metadata of the image with the specified index - * can be replaced, false otherwise. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param imageIndex + * the specified image index. + * @return true if metadata of the image with the specified index can be + * replaced, false otherwise. + * @throws IOException + * if an I/O exception has occurred. */ public boolean canReplaceImageMetadata(int imageIndex) throws IOException { return checkOutputReturnFalse(); } /** - * Returns true if pixels of the image with the specified index - * can be replaced by the replacePixels methods. - * - * @param imageIndex the image's index. + * Returns true if pixels of the image with the specified index can be + * replaced by the replacePixels methods. * - * @return true if pixels of the image with the specified index - * can be replaced by the replacePixels methods, false otherwise. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param imageIndex + * the image's index. + * @return true if pixels of the image with the specified index can be + * replaced by the replacePixels methods, false otherwise. + * @throws IOException + * Signals that an I/O exception has occurred. */ public boolean canReplacePixels(int imageIndex) throws IOException { return checkOutputReturnFalse(); } /** - * Returns true if the stream metadata presented in the output - * can be removed. - * - * @return true if the stream metadata presented in the output - * can be removed, false otherwise. + * Returns true if the stream metadata presented in the output can be + * removed. * - * @throws IOException Signals that an I/O exception has occurred. + * @return true if the stream metadata presented in the output can be + * removed, false otherwise. + * @throws IOException + * if an I/O exception has occurred. */ public boolean canReplaceStreamMetadata() throws IOException { return checkOutputReturnFalse(); } /** - * Returns true if the writing of a complete image stream which - * contains a single image is supported with undefined pixel - * values and associated metadata and thumbnails to the output. - * - * @return true if the writing of a complete image stream which - * contains a single image is supported, false otherwise. + * Returns true if the writing of a complete image stream which contains a + * single image is supported with undefined pixel values and associated + * metadata and thumbnails to the output. * - * @throws IOException Signals that an I/O exception has occurred. + * @return true if the writing of a complete image stream which contains a + * single image is supported, false otherwise. + * @throws IOException + * if an I/O exception has occurred. */ public boolean canWriteEmpty() throws IOException { return checkOutputReturnFalse(); } /** - * Returns true if the methods which taken an IIOImageParameter - * can deal with a Raster source image. + * Returns true if the methods which taken an IIOImageParameter can deal + * with a Raster source image. * - * @return true if the methods which taken an IIOImageParameter - * can deal with a Raster source image, false otherwise. + * @return true if the methods which taken an IIOImageParameter can deal + * with a Raster source image, false otherwise. */ public boolean canWriteRasters() { return false; } /** - * Returns true if the writer can add an image to stream that - * already contains header information. + * Returns true if the writer can add an image to stream that already + * contains header information. * - * @return if the writer can add an image to stream that - * already contains header information, false otherwise. + * @return if the writer can add an image to stream that already contains + * header information, false otherwise. */ public boolean canWriteSequence() { return false; @@ -511,16 +536,18 @@ public abstract class ImageWriter implements ImageTranscoder { /** * Ends the insertion of a new image. * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public void endInsertEmpty() throws IOException { unsupportedOperation(); } /** - * Ends the repalce pixels operation. + * Ends the replace pixels operation. * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public void endReplacePixels() throws IOException { unsupportedOperation(); @@ -529,7 +556,8 @@ public abstract class ImageWriter implements ImageTranscoder { /** * Ends an empty write operation. * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public void endWriteEmpty() throws IOException { unsupportedOperation(); @@ -538,7 +566,8 @@ public abstract class ImageWriter implements ImageTranscoder { /** * Ends the sequence of write operations. * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public void endWriteSequence() throws IOException { unsupportedOperation(); @@ -558,25 +587,24 @@ public abstract class ImageWriter implements ImageTranscoder { } /** - * Gets an IIOMetadata object that contains default values - * for encoding an image with the specified type. - * - * @param imageType the ImageTypeSpecifier. - * @param param the ImageWriteParam. + * Gets an IIOMetadata object that contains default values for encoding an + * image with the specified type. * + * @param imageType + * the ImageTypeSpecifier. + * @param param + * the ImageWriteParam. * @return the IIOMetadata object. */ - public abstract IIOMetadata getDefaultImageMetadata( - ImageTypeSpecifier imageType, - ImageWriteParam param - ); + public abstract IIOMetadata getDefaultImageMetadata(ImageTypeSpecifier imageType, + ImageWriteParam param); /** - * Gets an IIOMetadata object that contains default values - * for encoding a stream of images. - * - * @param param the ImageWriteParam. + * Gets an IIOMetadata object that contains default values for encoding a + * stream of images. * + * @param param + * the ImageWriteParam. * @return the IIOMetadata object. */ public abstract IIOMetadata getDefaultStreamMetadata(ImageWriteParam param); @@ -591,9 +619,8 @@ public abstract class ImageWriter implements ImageTranscoder { } /** - * Gets the default write param. - * Gets a new ImageWriteParam object for this ImageWriter with the - * current Locale. + * Gets the default write param. Gets a new ImageWriteParam object for this + * ImageWriter with the current Locale. * * @return a new ImageWriteParam object for this ImageWriter. */ @@ -602,124 +629,131 @@ public abstract class ImageWriter implements ImageTranscoder { } /** - * Gets the number of thumbnails suported by the format - * being written with supported image type, image write - * parameters, stream, and image metadata objects. + * Gets the number of thumbnails supported by the format being written with + * supported image type, image write parameters, stream, and image metadata + * objects. * - * @param imageType the ImageTypeSpecifier. - * @param param the image's parameters. - * @param streamMetadata the stream metadata. - * @param imageMetadata the image metadata. - * - * @return the number of thumbnails supported + * @param imageType + * the ImageTypeSpecifier. + * @param param + * the image's parameters. + * @param streamMetadata + * the stream metadata. + * @param imageMetadata + * the image metadata. + * @return the number of thumbnails supported. */ - public int getNumThumbnailsSupported( - ImageTypeSpecifier imageType, - ImageWriteParam param, - IIOMetadata streamMetadata, - IIOMetadata imageMetadata - ) { + public int getNumThumbnailsSupported(ImageTypeSpecifier imageType, ImageWriteParam param, + IIOMetadata streamMetadata, IIOMetadata imageMetadata) { return 0; } /** - * Gets the preferred thumbnail sizes. - * Gets an array of Dimensions with the sizes for thumbnail images - * as they are encoded in the output file or stream. - * - * @param imageType the ImageTypeSpecifier. - * @param param the ImageWriteParam. - * @param streamMetadata the stream metadata. - * @param imageMetadata the image metadata. + * Gets the preferred thumbnail sizes. Gets an array of Dimensions with the + * sizes for thumbnail images as they are encoded in the output file or + * stream. * - * @return the preferred thumbnail sizes + * @param imageType + * the ImageTypeSpecifier. + * @param param + * the ImageWriteParam. + * @param streamMetadata + * the stream metadata. + * @param imageMetadata + * the image metadata. + * @return the preferred thumbnail sizes. */ - public Dimension[] getPreferredThumbnailSizes( - ImageTypeSpecifier imageType, - ImageWriteParam param, - IIOMetadata streamMetadata, - IIOMetadata imageMetadata - ) { + public Dimension[] getPreferredThumbnailSizes(ImageTypeSpecifier imageType, + ImageWriteParam param, IIOMetadata streamMetadata, IIOMetadata imageMetadata) { return null; } /** - * Prepares insertion of an empty image by requesting the insertion of - * a new image into an existing image stream. - * - * @param imageIndex the image index. - * @param imageType the image type. - * @param width the width of the image. - * @param height the height of the image. - * @param imageMetadata the image metadata, or null. - * @param thumbnails the array thumbnails for this image, or null. - * @param param the ImageWriteParam, or null. - * - * @throws IOException Signals that an I/O exception has occurred. - */ - public void prepareInsertEmpty( - int imageIndex, ImageTypeSpecifier imageType, - int width, int height, - IIOMetadata imageMetadata, List<? extends BufferedImage> thumbnails, - ImageWriteParam param - ) throws IOException { + * Prepares insertion of an empty image by requesting the insertion of a new + * image into an existing image stream. + * + * @param imageIndex + * the image index. + * @param imageType + * the image type. + * @param width + * the width of the image. + * @param height + * the height of the image. + * @param imageMetadata + * the image metadata, or null. + * @param thumbnails + * the array thumbnails for this image, or null. + * @param param + * the ImageWriteParam, or null. + * @throws IOException + * if an I/O exception has occurred. + */ + public void prepareInsertEmpty(int imageIndex, ImageTypeSpecifier imageType, int width, + int height, IIOMetadata imageMetadata, List<? extends BufferedImage> thumbnails, + ImageWriteParam param) throws IOException { unsupportedOperation(); } /** - * Prepares the writer to call the replacePixels method for the - * specified region. - * - * @param imageIndex the image's index. - * @param region the specified region. + * Prepares the writer to call the replacePixels method for the specified + * region. * - * @throws IOException Signals that an I/O exception has occurred. + * @param imageIndex + * the image's index. + * @param region + * the specified region. + * @throws IOException + * if an I/O exception has occurred. */ public void prepareReplacePixels(int imageIndex, Rectangle region) throws IOException { unsupportedOperation(); } /** - * Prepares the writer for writing an empty image by beginning the - * process of writing a complete image stream that contains a single image - * with undefined pixel values, metadata and thumbnails, - * to the output. - * - * @param streamMetadata the stream metadata. - * @param imageType the image type. - * @param width the width of the image. - * @param height the height of the image. - * @param imageMetadata the image's metadata, or null. - * @param thumbnails the image's thumbnails, or null. - * @param param the image's parameters, or null. - * - * @throws IOException Signals that an I/O exception has occurred. - */ - public void prepareWriteEmpty( - IIOMetadata streamMetadata, ImageTypeSpecifier imageType, - int width, int height, - IIOMetadata imageMetadata, List<? extends BufferedImage> thumbnails, - ImageWriteParam param - ) throws IOException { + * Prepares the writer for writing an empty image by beginning the process + * of writing a complete image stream that contains a single image with + * undefined pixel values, metadata and thumbnails, to the output. + * + * @param streamMetadata + * the stream metadata. + * @param imageType + * the image type. + * @param width + * the width of the image. + * @param height + * the height of the image. + * @param imageMetadata + * the image's metadata, or null. + * @param thumbnails + * the image's thumbnails, or null. + * @param param + * the image's parameters, or null. + * @throws IOException + * if an I/O exception has occurred. + */ + public void prepareWriteEmpty(IIOMetadata streamMetadata, ImageTypeSpecifier imageType, + int width, int height, IIOMetadata imageMetadata, + List<? extends BufferedImage> thumbnails, ImageWriteParam param) throws IOException { unsupportedOperation(); } /** - * Prepares a stream to accept calls of writeToSequence method - * using the metadata object. - * - * @param streamMetadata the stream metadata. + * Prepares a stream to accept calls of writeToSequence method using the + * metadata object. * - * @throws IOException Signals that an I/O exception has occurred. + * @param streamMetadata + * the stream metadata. + * @throws IOException + * if an I/O exception has occurred. */ public void prepareWriteSequence(IIOMetadata streamMetadata) throws IOException { unsupportedOperation(); } /** - * Processes the completion of a thumbnail read - * by calling their thumbnailComplete method - * of registered IIOWriteProgressListeners. + * Processes the completion of a thumbnail read by calling their + * thumbnailComplete method of registered IIOWriteProgressListeners. */ protected void processThumbnailComplete() { if (progressListeners != null) { @@ -730,11 +764,11 @@ public abstract class ImageWriter implements ImageTranscoder { } /** - * Processes the current percentage of thumbnail completion - * by calling their thumbnailProgress method of registered - * IIOWriteProgressListeners. + * Processes the current percentage of thumbnail completion by calling their + * thumbnailProgress method of registered IIOWriteProgressListeners. * - * @param percentageDone the percentage done. + * @param percentageDone + * the percentage done. */ protected void processThumbnailProgress(float percentageDone) { if (progressListeners != null) { @@ -745,11 +779,13 @@ public abstract class ImageWriter implements ImageTranscoder { } /** - * Processes the start of a thumbnail read by calling - * thumbnailStarted method of registered IIOWriteProgressListeners. + * Processes the start of a thumbnail read by calling thumbnailStarted + * method of registered IIOWriteProgressListeners. * - * @param imageIndex the image index. - * @param thumbnailIndex the thumbnail index. + * @param imageIndex + * the image index. + * @param thumbnailIndex + * the thumbnail index. */ protected void processThumbnailStarted(int imageIndex, int thumbnailIndex) { if (progressListeners != null) { @@ -760,7 +796,7 @@ public abstract class ImageWriter implements ImageTranscoder { } /** - * Processes that the writing has been aborted by calling writeAborted + * Processes that the writing has been aborted by calling writeAborted * method of registered IIOWriteProgressListeners. */ protected void processWriteAborted() { @@ -789,8 +825,8 @@ public abstract class ImageWriter implements ImageTranscoder { /** * Removes the specified IIOWriteProgressListener listener. * - * @param listener the registered IIOWriteProgressListener - * to be removed. + * @param listener + * the registered IIOWriteProgressListener to be removed. */ public void removeIIOWriteProgressListener(IIOWriteProgressListener listener) { if (progressListeners != null && listener != null) { @@ -803,8 +839,8 @@ public abstract class ImageWriter implements ImageTranscoder { /** * Removes the specified IIOWriteWarningListener listener. * - * @param listener the registered IIOWriteWarningListener listener - * to be removed. + * @param listener + * the registered IIOWriteWarningListener listener to be removed. */ public void removeIIOWriteWarningListener(IIOWriteWarningListener listener) { if (warningListeners == null || listener == null) { @@ -826,9 +862,10 @@ public abstract class ImageWriter implements ImageTranscoder { /** * Removes the image with the specified index from the stream. * - * @param imageIndex the image's index. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param imageIndex + * the image's index. + * @throws IOException + * if an I/O exception has occurred. */ public void removeImage(int imageIndex) throws IOException { unsupportedOperation(); @@ -837,36 +874,42 @@ public abstract class ImageWriter implements ImageTranscoder { /** * Replaces image metadata of the image with specified index. * - * @param imageIndex the image's index. - * @param imageMetadata the image metadata. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param imageIndex + * the image's index. + * @param imageMetadata + * the image metadata. + * @throws IOException + * if an I/O exception has occurred. */ public void replaceImageMetadata(int imageIndex, IIOMetadata imageMetadata) throws IOException { unsupportedOperation(); } /** - * Replaces a part of an image presented in the output - * with the specified RenderedImage. + * Replaces a part of an image presented in the output with the specified + * RenderedImage. * - * @param image the RenderedImage. - * @param param the ImageWriteParam. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param image + * the RenderedImage. + * @param param + * the ImageWriteParam. + * @throws IOException + * if an I/O exception has occurred. */ public void replacePixels(RenderedImage image, ImageWriteParam param) throws IOException { unsupportedOperation(); } /** - * Replaces a part of an image presented in the output - * with the specified Raster. - * - * @param raster the Raster. - * @param param the ImageWriteParam. + * Replaces a part of an image presented in the output with the specified + * Raster. * - * @throws IOException Signals that an I/O exception has occurred. + * @param raster + * the Raster. + * @param param + * the ImageWriteParam. + * @throws IOException + * if an I/O exception has occurred. */ public void replacePixels(Raster raster, ImageWriteParam param) throws IOException { unsupportedOperation(); @@ -875,9 +918,10 @@ public abstract class ImageWriter implements ImageTranscoder { /** * Replaces the stream metadata of the output with new IIOMetadata. * - * @param streamMetadata the new stream metadata. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param streamMetadata + * the new stream metadata. + * @throws IOException + * if an I/O exception has occurred. */ public void replaceStreamMetadata(IIOMetadata streamMetadata) throws IOException { unsupportedOperation(); @@ -886,7 +930,8 @@ public abstract class ImageWriter implements ImageTranscoder { /** * Sets the locale of this ImageWriter. * - * @param locale the new locale. + * @param locale + * the new locale. */ public void setLocale(Locale locale) { if (locale == null) { @@ -924,26 +969,31 @@ public abstract class ImageWriter implements ImageTranscoder { } /** - * Inserts image into existing output stream. - * - * @param imageIndex the image index where an image will be written. - * @param image the specified image to be written. - * @param param the ImageWriteParam, or null. + * Inserts image into existing output stream. * - * @throws IOException Signals that an I/O exception has occurred. + * @param imageIndex + * the image index where an image will be written. + * @param image + * the specified image to be written. + * @param param + * the ImageWriteParam, or null. + * @throws IOException + * if an I/O exception has occurred. */ - public void writeInsert(int imageIndex, IIOImage image, ImageWriteParam param) throws IOException { + public void writeInsert(int imageIndex, IIOImage image, ImageWriteParam param) + throws IOException { unsupportedOperation(); } /** * Writes the specified image to the sequence. * - * @param image the image to be written. - * @param param the ImageWriteParam, or null. - * - * @throws IOException Signals that an I/O exception has occurred - * during writting. + * @param image + * the image to be written. + * @param param + * the ImageWriteParam, or null. + * @throws IOException + * if an I/O exception has occurred during writing. */ public void writeToSequence(IIOImage image, ImageWriteParam param) throws IOException { unsupportedOperation(); diff --git a/awt/javax/imageio/event/IIOReadProgressListener.java b/awt/javax/imageio/event/IIOReadProgressListener.java index 3d65807..2944896 100644 --- a/awt/javax/imageio/event/IIOReadProgressListener.java +++ b/awt/javax/imageio/event/IIOReadProgressListener.java @@ -18,86 +18,104 @@ * @author Sergey I. Salishev * @version $Revision: 1.2 $ */ + package javax.imageio.event; import java.util.EventListener; import javax.imageio.ImageReader; /** - * The IIOReadProgressListener interface notifies callers - * about the progress of the image and thumbnail reading methods. + * The IIOReadProgressListener interface notifies callers about the progress of + * the image and thumbnail reading methods. + * + * @since Android 1.0 */ public interface IIOReadProgressListener extends EventListener { /** - * Notifies this listener that the image reading has been completed. + * Notifies this listener that the image reading has been completed. * - * @param source the ImageReader object which calls this method. + * @param source + * the ImageReader object which calls this method. */ void imageComplete(ImageReader source); - + /** * Notifies this listener about the degree of completion of the read call. * - * @param source the ImageReader object which calls this method. - * @param percentageDone the percentage of decoding done. + * @param source + * the ImageReader object which calls this method. + * @param percentageDone + * the percentage of decoding done. */ void imageProgress(ImageReader source, float percentageDone); - + /** - * Notifies this listener that an image read operation has been started. + * Notifies this listener that an image read operation has been started. * - * @param source the ImageReader object which calls this method. - * @param imageIndex the index of the image in an input file or - * stream to be read. + * @param source + * the ImageReader object which calls this method. + * @param imageIndex + * the index of the image in an input file or stream to be read. */ void imageStarted(ImageReader source, int imageIndex); - + /** * Notifies this listener that a read operation has been aborted. * - * @param source the ImageReader object which calls this method. + * @param source + * the ImageReader object which calls this method. */ void readAborted(ImageReader source); - + /** - * Notifies this listener that a sequence of read operations has been completed. + * Notifies this listener that a sequence of read operations has been + * completed. * - * @param source the ImageReader object which calls this method. + * @param source + * the ImageReader object which calls this method. */ void sequenceComplete(ImageReader source); - + /** - * Notifies this listener that a sequence of read operation has been started. + * Notifies this listener that a sequence of read operation has been + * started. * - * @param source the ImageReader object which calls this method. - * @param minIndex the index of the first image to be read. + * @param source + * the ImageReader object which calls this method. + * @param minIndex + * the index of the first image to be read. */ void sequenceStarted(ImageReader source, int minIndex); - + /** * Notifies that a thumbnail read operation has been completed. * - * @param source the ImageReader object which calls this method. + * @param source + * the ImageReader object which calls this method. */ void thumbnailComplete(ImageReader source); - + /** * Notifies this listener about the degree of completion of the read call. * - * @param source the ImageReader object which calls this method. - * @param percentageDone the percentage of decoding done. + * @param source + * the ImageReader object which calls this method. + * @param percentageDone + * the percentage of decoding done. */ void thumbnailProgress(ImageReader source, float percentageDone); - + /** - * Notifies this listener that a thumbnail reading operation has been started. + * Notifies this listener that a thumbnail reading operation has been + * started. * - * @param source the ImageReader object which calls this method. - * @param imageIndex the index of the image in an input file or - * stream to be read. - * @param thumbnailIndex the index of the thumbnail to be read. + * @param source + * the ImageReader object which calls this method. + * @param imageIndex + * the index of the image in an input file or stream to be read. + * @param thumbnailIndex + * the index of the thumbnail to be read. */ void thumbnailStarted(ImageReader source, int imageIndex, int thumbnailIndex); } - diff --git a/awt/javax/imageio/event/IIOReadUpdateListener.java b/awt/javax/imageio/event/IIOReadUpdateListener.java index ce5e2f1..49bdbcb 100644 --- a/awt/javax/imageio/event/IIOReadUpdateListener.java +++ b/awt/javax/imageio/event/IIOReadUpdateListener.java @@ -18,6 +18,7 @@ * @author Sergey I. Salishev * @version $Revision: 1.2 $ */ + package javax.imageio.event; import java.awt.image.BufferedImage; @@ -30,109 +31,152 @@ import javax.imageio.ImageReader; */ /** - * The IIOReadUpdateListener interface provides functionality - * to receive notification of pixel updates during image and thumbnail - * reading operations. + * The IIOReadUpdateListener interface provides functionality to receive + * notification of pixel updates during image and thumbnail reading operations. + * + * @since Android 1.0 */ public interface IIOReadUpdateListener extends EventListener { /** - * Notifies this listener that the specified area of the image has been updated. + * Notifies this listener that the specified area of the image has been + * updated. * - * @param source the ImageReader object which calls this method. - * @param theImage the image to be updated. - * @param minX the minimum X coordinate of the pixels in the updated area. - * @param minY the minimum Y coordinate of the pixels in the updated area. - * @param width the width of updated area. - * @param height the height of updated area. - * @param periodX the horizontal spacing period between updated - * pixels, if it equals 1, there is no space between pixels. - * @param periodY the vertical spacing period between updated - * pixels, if it equals 1, there is no space between pixels. - * @param bands the array of int values indicating the bands being updated. + * @param source + * the ImageReader object which calls this method. + * @param theImage + * the image to be updated. + * @param minX + * the minimum X coordinate of the pixels in the updated area. + * @param minY + * the minimum Y coordinate of the pixels in the updated area. + * @param width + * the width of updated area. + * @param height + * the height of updated area. + * @param periodX + * the horizontal spacing period between updated pixels, if it + * equals 1, there is no space between pixels. + * @param periodY + * the vertical spacing period between updated pixels, if it + * equals 1, there is no space between pixels. + * @param bands + * the array of integer values indicating the bands being + * updated. */ - void imageUpdate(ImageReader source, BufferedImage theImage, int minX, - int minY, int width, int height, int periodX, int periodY, - int[] bands); - + void imageUpdate(ImageReader source, BufferedImage theImage, int minX, int minY, int width, + int height, int periodX, int periodY, int[] bands); + /** - * Notifies this listener that the current read operation has completed a + * Notifies this listener that the current read operation has completed a * progressive pass. * - * @param source the ImageReader object which calls this method. - * @param theImage the image to be updated. + * @param source + * the ImageReader object which calls this method. + * @param theImage + * the image to be updated. */ void passComplete(ImageReader source, BufferedImage theImage); - + /** - * Notifies this listener that the current read operation has begun - * a progressive pass. + * Notifies this listener that the current read operation has begun a + * progressive pass. * - * @param source the ImageReader object which calls this method. - * @param theImage the image to be updated. - * @param pass the numer of the pass. - * @param minPass the index of the first pass that will be decoded. - * @param maxPass the index of the last pass that will be decoded. - * @param minX the minimum X coordinate of the pixels in the updated area. - * @param minY the minimum Y coordinate of the pixels in the updated area. - * @param periodX the horizontal spacing period between updated - * pixels, if it equals 1, there is no space between pixels. - * @param periodY the vertical spacing period between updated - * pixels, if it equals 1, there is no space between pixels. - * @param bands the array of int values indicating the bands being updated. + * @param source + * the ImageReader object which calls this method. + * @param theImage + * the image to be updated. + * @param pass + * the number of the pass. + * @param minPass + * the index of the first pass that will be decoded. + * @param maxPass + * the index of the last pass that will be decoded. + * @param minX + * the minimum X coordinate of the pixels in the updated area. + * @param minY + * the minimum Y coordinate of the pixels in the updated area. + * @param periodX + * the horizontal spacing period between updated pixels, if it + * equals 1, there is no space between pixels. + * @param periodY + * the vertical spacing period between updated pixels, if it + * equals 1, there is no space between pixels. + * @param bands + * the array of integer values indicating the bands being + * updated. */ - void passStarted(ImageReader source, BufferedImage theImage, int pass, - int minPass, int maxPass, int minX, int minY, int periodX, - int periodY, int[] bands); + void passStarted(ImageReader source, BufferedImage theImage, int pass, int minPass, + int maxPass, int minX, int minY, int periodX, int periodY, int[] bands); /** - * Notifies this listener that the current thumbnail read operation has + * Notifies this listener that the current thumbnail read operation has * completed a progressive pass. * - * @param source the ImageReader object which calls this method. - * @param theImage the thumbnail to be updated. + * @param source + * the ImageReader object which calls this method. + * @param theImage + * the thumbnail to be updated. */ void thumbnailPassComplete(ImageReader source, BufferedImage theImage); - + /** - * Notifies this listener that the current thumbnail read operation has + * Notifies this listener that the current thumbnail read operation has * begun a progressive pass. * - * @param source the ImageReader object which calls this method. - * @param theThumbnail the thumbnail to be updated. - * @param pass the numer of the pass. - * @param minPass the index of the first pass that will be decoded. - * @param maxPass the index of the last pass that will be decoded. - * @param minX the minimum X coordinate of the pixels in the updated area. - * @param minY the minimum Y coordinate of the pixels in the updated area. - * @param periodX the horizontal spacing period between updated - * pixels, if it equals 1, there is no space between pixels. - * @param periodY the vertical spacing period between updated - * pixels, if it equals 1, there is no space between pixels. - * @param bands the array of int values indicating the bands being updated. + * @param source + * the ImageReader object which calls this method. + * @param theThumbnail + * the thumbnail to be updated. + * @param pass + * the number of the pass. + * @param minPass + * the index of the first pass that will be decoded. + * @param maxPass + * the index of the last pass that will be decoded. + * @param minX + * the minimum X coordinate of the pixels in the updated area. + * @param minY + * the minimum Y coordinate of the pixels in the updated area. + * @param periodX + * the horizontal spacing period between updated pixels, if it + * equals 1, there is no space between pixels. + * @param periodY + * the vertical spacing period between updated pixels, if it + * equals 1, there is no space between pixels. + * @param bands + * the array of integer values indicating the bands being + * updated. */ - void thumbnailPassStarted(ImageReader source, BufferedImage theThumbnail, - int pass, int minPass, int maxPass, int minX, int minY, - int periodX, int periodY, int[] bands); - + void thumbnailPassStarted(ImageReader source, BufferedImage theThumbnail, int pass, + int minPass, int maxPass, int minX, int minY, int periodX, int periodY, int[] bands); + /** - * Notifies this listener that a specified area of a thumbnail image has been - * updated. + * Notifies this listener that a specified area of a thumbnail image has + * been updated. * - * @param source the ImageReader object which calls this method. - * @param theThumbnail the thumbnail to be updated. - * @param minX the minimum X coordinate of the pixels in the updated area. - * @param minY the minimum Y coordinate of the pixels in the updated area. - * @param width the width of updated area. - * @param height the height of updated area. - * @param periodX the horizontal spacing period between updated - * pixels, if it equals 1, there is no space between pixels. - * @param periodY the vertical spacing period between updated - * pixels, if it equals 1, there is no space between pixels. - * @param bands the array of int values indicating the bands being updated. + * @param source + * the ImageReader object which calls this method. + * @param theThumbnail + * the thumbnail to be updated. + * @param minX + * the minimum X coordinate of the pixels in the updated area. + * @param minY + * the minimum Y coordinate of the pixels in the updated area. + * @param width + * the width of updated area. + * @param height + * the height of updated area. + * @param periodX + * the horizontal spacing period between updated pixels, if it + * equals 1, there is no space between pixels. + * @param periodY + * the vertical spacing period between updated pixels, if it + * equals 1, there is no space between pixels. + * @param bands + * the array of integer values indicating the bands being + * updated. */ - void thumbnailUpdate(ImageReader source, BufferedImage theThumbnail, - int minX, int minY, int width, int height, int periodX, - int periodY, int[] bands); + void thumbnailUpdate(ImageReader source, BufferedImage theThumbnail, int minX, int minY, + int width, int height, int periodX, int periodY, int[] bands); } - diff --git a/awt/javax/imageio/event/IIOReadWarningListener.java b/awt/javax/imageio/event/IIOReadWarningListener.java index 92fa275..318a5df 100644 --- a/awt/javax/imageio/event/IIOReadWarningListener.java +++ b/awt/javax/imageio/event/IIOReadWarningListener.java @@ -18,6 +18,7 @@ * @author Sergey I. Salishev * @version $Revision: 1.2 $ */ + package javax.imageio.event; import java.util.EventListener; @@ -29,18 +30,20 @@ import javax.imageio.ImageReader; */ /** - * The IIOReadWarningListener provides methods to receive notification - * of warning messages generated by image - * and thumbnail reading methods. + * The IIOReadWarningListener provides methods to receive notification of + * warning messages generated by image and thumbnail reading methods. + * + * @since Android 1.0 */ public interface IIOReadWarningListener extends EventListener { /** - * Notifies this listener about a warning (non-fatal error) during decoding. + * Notifies this listener about a warning (non-fatal error) during decoding. * - * @param source the ImageReader object which calls this method. - * @param warning the string describing the warning. + * @param source + * the ImageReader object which calls this method. + * @param warning + * the string describing the warning. */ public void warningOccurred(ImageReader source, String warning); } - diff --git a/awt/javax/imageio/event/IIOWriteProgressListener.java b/awt/javax/imageio/event/IIOWriteProgressListener.java index 19ae495..4a2c595 100644 --- a/awt/javax/imageio/event/IIOWriteProgressListener.java +++ b/awt/javax/imageio/event/IIOWriteProgressListener.java @@ -18,69 +18,84 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio.event; import javax.imageio.ImageWriter; import java.util.EventListener; /** - * The IIOWriteProgressListener interface provides methods to - * receive notification about the progress of the image and - * thumbnail writing methods. + * The IIOWriteProgressListener interface provides methods to receive + * notification about the progress of the image and thumbnail writing methods. + * + * @since Android 1.0 */ public interface IIOWriteProgressListener extends EventListener { - + /** - * Notifies this listener that an image write operation has been started. + * Notifies this listener that an image write operation has been started. * - * @param source the ImageWriter object which calls this method. - * @param imageIndex the index of the image being written. + * @param source + * the ImageWriter object which calls this method. + * @param imageIndex + * the index of the image being written. */ void imageStarted(ImageWriter source, int imageIndex); - + /** * Notifies this listener about the degree of completion of the write call. * - * @param source the ImageWriter object which calls this method. - * @param percentageDone the percentage of encoding done. + * @param source + * the ImageWriter object which calls this method. + * @param percentageDone + * the percentage of encoding done. */ void imageProgress(ImageWriter source, float percentageDone); - + /** - * Notifies this listener that the image writing has been completed. + * Notifies this listener that the image writing has been completed. * - * @param source the ImageWriter object which calls this method. + * @param source + * the ImageWriter object which calls this method. */ void imageComplete(ImageWriter source); - + /** - * Notifies this listener that a thumbnail write operation has been started. + * Notifies this listener that a thumbnail write operation has been started. * - * @param source the ImageWriter object which calls this method. - * @param imageIndex the index of the image being written. - * @param thumbnailIndex the index of the thumbnail being written. + * @param source + * the ImageWriter object which calls this method. + * @param imageIndex + * the index of the image being written. + * @param thumbnailIndex + * the index of the thumbnail being written. */ void thumbnailStarted(ImageWriter source, int imageIndex, int thumbnailIndex); - + /** * Notifies this listener about the degree of completion of the write call. * - * @param source the ImageWriter object which calls this method. - * @param percentageDone the percentage of encoding done. + * @param source + * the ImageWriter object which calls this method. + * @param percentageDone + * the percentage of encoding done. */ void thumbnailProgress(ImageWriter source, float percentageDone); - + /** - * Notifies this listener that a thumbnail write operation has been completed. + * Notifies this listener that a thumbnail write operation has been + * completed. * - * @param source the ImageWriter object which calls this method. + * @param source + * the ImageWriter object which calls this method. */ void thumbnailComplete(ImageWriter source); - + /** * Notifies this listener that writing operation has been aborted. * - * @param source the ImageWriter object which calls this method. + * @param source + * the ImageWriter object which calls this method. */ void writeAborted(ImageWriter source); } diff --git a/awt/javax/imageio/event/IIOWriteWarningListener.java b/awt/javax/imageio/event/IIOWriteWarningListener.java index f530d25..8ee41cd 100644 --- a/awt/javax/imageio/event/IIOWriteWarningListener.java +++ b/awt/javax/imageio/event/IIOWriteWarningListener.java @@ -18,23 +18,29 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio.event; import javax.imageio.ImageWriter; import java.util.EventListener; /** - * The IIOWriteWarningListener provides methods to receive notification - * of warnings generated by image and thumbnail writing methods. + * The IIOWriteWarningListener provides methods to receive notification of + * warnings generated by image and thumbnail writing methods. + * + * @since Android 1.0 */ public interface IIOWriteWarningListener extends EventListener { - + /** - * Notifies this listener about a warning (non-fatal error) during encoding. + * Notifies this listener about a warning (non-fatal error) during encoding. * - * @param source the ImageWriter object which calls this method. - * @param imageIndex the index of the image generating the warning. - * @param warning the string describing the warning. + * @param source + * the ImageWriter object which calls this method. + * @param imageIndex + * the index of the image generating the warning. + * @param warning + * the string describing the warning. */ void warningOccurred(ImageWriter source, int imageIndex, String warning); } diff --git a/awt/javax/imageio/event/package.html b/awt/javax/imageio/event/package.html new file mode 100644 index 0000000..c2fe39f --- /dev/null +++ b/awt/javax/imageio/event/package.html @@ -0,0 +1,8 @@ +<html> + <body> + <p> + This package provides interfaces to handle events which can be fired during the reading or writing of images. + </p> + @since Android 1.0 + </body> +</html> diff --git a/awt/javax/imageio/metadata/IIOInvalidTreeException.java b/awt/javax/imageio/metadata/IIOInvalidTreeException.java index 8690b2b..ba90657 100644 --- a/awt/javax/imageio/metadata/IIOInvalidTreeException.java +++ b/awt/javax/imageio/metadata/IIOInvalidTreeException.java @@ -21,21 +21,26 @@ import org.w3c.dom.Node; import javax.imageio.IIOException; /** - * The IIOInvalidTreeException provides notification about - * fails of IIOMetadataNodes tree parsing by IIOMetadata object. + * The IIOInvalidTreeException provides notification about fails of + * IIOMetadataNodes tree parsing by IIOMetadata object. + * + * @since Android 1.0 */ public class IIOInvalidTreeException extends IIOException { - - /** The offending node. */ + + /** + * The offending node. + */ protected Node offendingNode = null; /** - * Instantiates an IIOInvalidTreeException with the - * specified detailed message and specified offending - * Node. + * Instantiates an IIOInvalidTreeException with the specified detailed + * message and specified offending Node. * - * @param message the detailed message. - * @param offendingNode the offending node. + * @param message + * the detailed message. + * @param offendingNode + * the offending node. */ public IIOInvalidTreeException(String message, Node offendingNode) { super(message); @@ -43,13 +48,15 @@ public class IIOInvalidTreeException extends IIOException { } /** - * Instantiates a new IIOInvalidTreeException with the - * specified detailed message and specified offending - * Node. + * Instantiates a new IIOInvalidTreeException with the specified detailed + * message and specified offending Node. * - * @param message the detailed message. - * @param cause the cause of this exception. - * @param offendingNode the offending node + * @param message + * the detailed message. + * @param cause + * the cause of this exception. + * @param offendingNode + * the offending node. */ public IIOInvalidTreeException(String message, Throwable cause, Node offendingNode) { super(message, cause); diff --git a/awt/javax/imageio/metadata/IIOMetadata.java b/awt/javax/imageio/metadata/IIOMetadata.java index f2387cc..96cebf9 100644 --- a/awt/javax/imageio/metadata/IIOMetadata.java +++ b/awt/javax/imageio/metadata/IIOMetadata.java @@ -14,6 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package javax.imageio.metadata; import java.util.ArrayList; @@ -22,73 +23,90 @@ import org.apache.harmony.x.imageio.metadata.IIOMetadataUtils; import org.w3c.dom.Node; /** - * The Class IIOMetadata represents the metadata (bundled with an image) - * as a Dom-type tree. + * The class IIOMetadata represents the metadata (bundled with an image) as a + * Dom-type tree. + * + * @since Android 1.0 */ public abstract class IIOMetadata { - /** Whether the standard metadata format is supported. */ + /** + * Whether the standard metadata format is supported. + */ protected boolean standardFormatSupported; - - /** The native metadata format name. */ + + /** + * The native metadata format name. + */ protected String nativeMetadataFormatName; - - /** The native metadata format class name. */ + + /** + * The native metadata format class name. + */ protected String nativeMetadataFormatClassName; - - /** The extra metadata format names. */ + + /** + * The extra metadata format names. + */ protected String[] extraMetadataFormatNames; - - /** The extra metadata format class names. */ + + /** + * The extra metadata format class names. + */ protected String[] extraMetadataFormatClassNames; - - /** The default controller. */ + + /** + * The default controller. + */ protected IIOMetadataController defaultController; - - /** The controller. */ + + /** + * The controller. + */ protected IIOMetadataController controller; /** * Instantiates a new IIOMetadata with no data set. */ - protected IIOMetadata() {} + protected IIOMetadata() { + } /** * Instantiates a new IIOMetadata with the specified data parameters. * - * @param standardMetadataFormatSupported whether the standard metadata format is supported - * @param nativeMetadataFormatName the native metadata format name - * @param nativeMetadataFormatClassName the native metadata format class name - * @param extraMetadataFormatNames the extra metadata format names - * @param extraMetadataFormatClassNames the extra metadata format class names - */ - protected IIOMetadata(boolean standardMetadataFormatSupported, - String nativeMetadataFormatName, - String nativeMetadataFormatClassName, - String[] extraMetadataFormatNames, - String[] extraMetadataFormatClassNames) { + * @param standardMetadataFormatSupported + * whether the standard metadata format is supported. + * @param nativeMetadataFormatName + * the native metadata format name. + * @param nativeMetadataFormatClassName + * the native metadata format class name. + * @param extraMetadataFormatNames + * the extra metadata format names. + * @param extraMetadataFormatClassNames + * the extra metadata format class names. + */ + protected IIOMetadata(boolean standardMetadataFormatSupported, String nativeMetadataFormatName, + String nativeMetadataFormatClassName, String[] extraMetadataFormatNames, + String[] extraMetadataFormatClassNames) { standardFormatSupported = standardMetadataFormatSupported; this.nativeMetadataFormatName = nativeMetadataFormatName; this.nativeMetadataFormatClassName = nativeMetadataFormatClassName; if (extraMetadataFormatNames == null) { if (extraMetadataFormatClassNames != null) { throw new IllegalArgumentException( - "extraMetadataFormatNames == null && extraMetadataFormatClassNames != null!" - ); + "extraMetadataFormatNames == null && extraMetadataFormatClassNames != null!"); } } else { if (extraMetadataFormatClassNames == null) { throw new IllegalArgumentException( - "extraMetadataFormatNames != null && extraMetadataFormatClassNames == null!" - ); + "extraMetadataFormatNames != null && extraMetadataFormatClassNames == null!"); } if (extraMetadataFormatNames.length == 0) { throw new IllegalArgumentException("extraMetadataFormatNames.length == 0!"); } if (extraMetadataFormatClassNames.length != extraMetadataFormatNames.length) { throw new IllegalArgumentException( - "extraMetadataFormatClassNames.length != extraMetadataFormatNames.length!" - ); + "extraMetadataFormatClassNames.length != extraMetadataFormatNames.length!"); } this.extraMetadataFormatNames = extraMetadataFormatNames.clone(); this.extraMetadataFormatClassNames = extraMetadataFormatClassNames.clone(); @@ -98,30 +116,32 @@ public abstract class IIOMetadata { /** * Gets the metadata as tree-type document. * - * @param formatName the format name - * - * @return the node in tree format + * @param formatName + * the format name. + * @return the node in tree format. */ public abstract Node getAsTree(String formatName); - + /** * Checks if the metadata is read only. * * @return true, if the metadata is read only. */ public abstract boolean isReadOnly(); - + /** * Merges the specified tree with this metadata tree. * - * @param formatName the format of the specified tree - * @param root the root node of the metadata tree - * - * @throws IIOInvalidTreeException if the specified tree - * is incompatible with the this metadata tree. + * @param formatName + * the format of the specified tree. + * @param root + * the root node of the metadata tree. + * @throws IIOInvalidTreeException + * if the specified tree is incompatible with the this metadata + * tree. */ public abstract void mergeTree(String formatName, Node root) throws IIOInvalidTreeException; - + /** * Resets the controller. */ @@ -130,7 +150,7 @@ public abstract class IIOMetadata { /** * Gets the controller associated with this metadata document. * - * @return the controller + * @return the controller. */ public IIOMetadataController getController() { return controller; @@ -139,7 +159,7 @@ public abstract class IIOMetadata { /** * Checks whether this metadata has a controller. * - * @return true, if this metadata has a controller + * @return true, if this metadata has a controller. */ public boolean hasController() { return getController() != null; @@ -148,7 +168,7 @@ public abstract class IIOMetadata { /** * Activate the controller. * - * @return true, if successful + * @return true, if successful. */ public boolean activateController() { if (!hasController()) { @@ -160,7 +180,7 @@ public abstract class IIOMetadata { /** * Gets the default controller. * - * @return the default controller + * @return the default controller. */ public IIOMetadataController getDefaultController() { return defaultController; @@ -169,7 +189,7 @@ public abstract class IIOMetadata { /** * Gets the extra metadata format names. * - * @return the extra metadata format names + * @return the extra metadata format names. */ public String[] getExtraMetadataFormatNames() { return extraMetadataFormatNames == null ? null : extraMetadataFormatNames.clone(); @@ -178,23 +198,20 @@ public abstract class IIOMetadata { /** * Gets the metadata format. * - * @param formatName the format name - * - * @return the metadata format + * @param formatName + * the format name. + * @return the metadata format. */ public IIOMetadataFormat getMetadataFormat(String formatName) { - return IIOMetadataUtils.instantiateMetadataFormat( - formatName, - standardFormatSupported, - nativeMetadataFormatName, nativeMetadataFormatClassName, - extraMetadataFormatNames, extraMetadataFormatClassNames - ); + return IIOMetadataUtils.instantiateMetadataFormat(formatName, standardFormatSupported, + nativeMetadataFormatName, nativeMetadataFormatClassName, extraMetadataFormatNames, + extraMetadataFormatClassNames); } /** * Gets the native metadata format name. * - * @return the native metadata format name + * @return the native metadata format name. */ public String getNativeMetadataFormatName() { return nativeMetadataFormatName; @@ -203,7 +220,7 @@ public abstract class IIOMetadata { /** * Checks if the standard metadata format is supported. * - * @return true, if the standard metadata format is supported + * @return true, if the standard metadata format is supported. */ public boolean isStandardMetadataFormatSupported() { return standardFormatSupported; @@ -212,7 +229,7 @@ public abstract class IIOMetadata { /** * Gets the metadata format names. * - * @return the metadata format names + * @return the metadata format names. */ public String[] getMetadataFormatNames() { ArrayList<String> res = new ArrayList<String>(); @@ -239,7 +256,7 @@ public abstract class IIOMetadata { /** * Gets the standard chroma node. * - * @return the standard chroma node + * @return the standard chroma node. */ protected IIOMetadataNode getStandardChromaNode() { return null; @@ -248,7 +265,7 @@ public abstract class IIOMetadata { /** * Gets the standard compression node. * - * @return the standard compression node + * @return the standard compression node. */ protected IIOMetadataNode getStandardCompressionNode() { return null; @@ -257,7 +274,7 @@ public abstract class IIOMetadata { /** * Gets the standard data node. * - * @return the standard data node + * @return the standard data node. */ protected IIOMetadataNode getStandardDataNode() { return null; @@ -266,7 +283,7 @@ public abstract class IIOMetadata { /** * Gets the standard dimension node. * - * @return the standard dimension node + * @return the standard dimension node. */ protected IIOMetadataNode getStandardDimensionNode() { return null; @@ -275,7 +292,7 @@ public abstract class IIOMetadata { /** * Gets the standard document node. * - * @return the standard document node + * @return the standard document node. */ protected IIOMetadataNode getStandardDocumentNode() { return null; @@ -284,7 +301,7 @@ public abstract class IIOMetadata { /** * Gets the standard text node. * - * @return the standard text node + * @return the standard text node. */ protected IIOMetadataNode getStandardTextNode() { return null; @@ -293,7 +310,7 @@ public abstract class IIOMetadata { /** * Gets the standard tile node. * - * @return the standard tile node + * @return the standard tile node. */ protected IIOMetadataNode getStandardTileNode() { return null; @@ -302,7 +319,7 @@ public abstract class IIOMetadata { /** * Gets the standard transparency node. * - * @return the standard transparency node + * @return the standard transparency node. */ protected IIOMetadataNode getStandardTransparencyNode() { return null; @@ -311,7 +328,7 @@ public abstract class IIOMetadata { /** * Gets the metadata as a tree in standard format. * - * @return the metadata as a tree in standard format + * @return the metadata as a tree in standard format. */ protected final IIOMetadataNode getStandardTree() { // Create root node @@ -342,14 +359,15 @@ public abstract class IIOMetadata { if ((node = getStandardTransparencyNode()) != null) { root.appendChild(node); } - + return root; } /** * Sets the controller. * - * @param controller the new controller + * @param controller + * the new controller. */ public void setController(IIOMetadataController controller) { this.controller = controller; @@ -358,11 +376,13 @@ public abstract class IIOMetadata { /** * Sets the from tree. * - * @param formatName the name of the metatdata format of the from tree - * @param root the root node of the from tree - * - * @throws IIOInvalidTreeException if the tree or its format is not compatible with - * this metadata. + * @param formatName + * the name of the metatdata format of the from tree. + * @param root + * the root node of the from tree. + * @throws IIOInvalidTreeException + * if the tree or its format is not compatible with this + * metadata. */ public void setFromTree(String formatName, Node root) throws IIOInvalidTreeException { reset(); diff --git a/awt/javax/imageio/metadata/IIOMetadataController.java b/awt/javax/imageio/metadata/IIOMetadataController.java index dfd4e5c..1405948 100644 --- a/awt/javax/imageio/metadata/IIOMetadataController.java +++ b/awt/javax/imageio/metadata/IIOMetadataController.java @@ -18,6 +18,7 @@ * @author Sergey I. Salishev * @version $Revision: 1.2 $ */ + package javax.imageio.metadata; /* @@ -26,20 +27,20 @@ package javax.imageio.metadata; */ /** - * The IIOMetadataController interface provides a method for - * implementing objects to activate the controller without - * defining how the controller obtains values. + * The IIOMetadataController interface provides a method for implementing + * objects to activate the controller without defining how the controller + * obtains values. + * + * @since Android 1.0 */ public interface IIOMetadataController { /** * Activates a controller. * - * @param metadata the metadata to be modified. - * - * @return true if the IIOMetadata has been modified, - * false otherwise. + * @param metadata + * the metadata to be modified. + * @return true, if the IIOMetadata has been modified, false otherwise. */ public boolean activate(IIOMetadata metadata); } - diff --git a/awt/javax/imageio/metadata/IIOMetadataFormat.java b/awt/javax/imageio/metadata/IIOMetadataFormat.java index 9e246b4..0e7e697 100644 --- a/awt/javax/imageio/metadata/IIOMetadataFormat.java +++ b/awt/javax/imageio/metadata/IIOMetadataFormat.java @@ -21,327 +21,384 @@ import javax.imageio.ImageTypeSpecifier; import java.util.Locale; /** - * The Interface IIOMetadataFormat is implemented by classes that - * describe the rules and allowed elements for a metadata document - * tree. + * The Interface IIOMetadataFormat is implemented by classes that describe the + * rules and allowed elements for a metadata document tree. + * + * @since Android 1.0 */ public interface IIOMetadataFormat { - /** The CHILD_POLICY_EMPTY. */ + /** + * The CHILD_POLICY_EMPTY. + */ int CHILD_POLICY_EMPTY = 0; - - /** The CHILD_POLICY_ALL. */ + + /** + * The CHILD_POLICY_ALL. + */ int CHILD_POLICY_ALL = 1; - - /** The CHILD_POLICY_SOME. */ + + /** + * The CHILD_POLICY_SOME. + */ int CHILD_POLICY_SOME = 2; - - /** The CHILD_POLICY_CHOICE. */ + + /** + * The CHILD_POLICY_CHOICE. + */ int CHILD_POLICY_CHOICE = 3; - - /** The CHILD_POLICY_SEQUENCE. */ + + /** + * The CHILD_POLICY_SEQUENCE. + */ int CHILD_POLICY_SEQUENCE = 4; - - /** The CHILD_POLICY_REPEAT. */ + + /** + * The CHILD_POLICY_REPEAT. + */ int CHILD_POLICY_REPEAT = 5; - - /** The maximum value for the child policy. */ + + /** + * The maximum value for the child policy. + */ int CHILD_POLICY_MAX = CHILD_POLICY_REPEAT; - /** The DATATYPE_STRING. */ + /** + * The DATATYPE_STRING. + */ int DATATYPE_STRING = 0; - - /** The DATATYPE_BOOLEAN. */ + + /** + * The DATATYPE_BOOLEAN. + */ int DATATYPE_BOOLEAN = 1; - - /** The DATATYPE_INTEGER. */ + + /** + * The DATATYPE_INTEGER. + */ int DATATYPE_INTEGER = 2; - - /** The DATATYPE_FLOAT. */ + + /** + * The DATATYPE_FLOAT. + */ int DATATYPE_FLOAT = 3; - - /** The DATATYPE_DOUBLE. */ + + /** + * The DATATYPE_DOUBLE. + */ int DATATYPE_DOUBLE = 4; - /** The VALUE_NONE. */ + /** + * The VALUE_NONE. + */ int VALUE_NONE = 0; - - /** The VALUE_ARBITRARY. */ + + /** + * The VALUE_ARBITRARY. + */ int VALUE_ARBITRARY = 1; - - /** The VALUE_RANGE. */ + + /** + * The VALUE_RANGE. + */ int VALUE_RANGE = 2; - - /** The VALUE_RANGE_MIN_INCLUSIVE_MASK. */ + + /** + * The VALUE_RANGE_MIN_INCLUSIVE_MASK. + */ int VALUE_RANGE_MIN_INCLUSIVE_MASK = 4; - - /** The VALUE_RANGE_MAX_INCLUSIVE_MASK. */ + + /** + * The VALUE_RANGE_MAX_INCLUSIVE_MASK. + */ int VALUE_RANGE_MAX_INCLUSIVE_MASK = 8; - - /** The VALUE_ENUMERATION. */ + + /** + * The VALUE_ENUMERATION. + */ int VALUE_ENUMERATION = 16; - - /** The VALUE_LIST. */ + + /** + * The VALUE_LIST. + */ int VALUE_LIST = 32; - - /** The VALUE_RANGE_MIN_INCLUSIVE. */ + + /** + * The VALUE_RANGE_MIN_INCLUSIVE. + */ int VALUE_RANGE_MIN_INCLUSIVE = VALUE_RANGE | VALUE_RANGE_MIN_INCLUSIVE_MASK; - - /** The VALUE_RANGE_MAX_INCLUSIVE. */ + + /** + * The VALUE_RANGE_MAX_INCLUSIVE. + */ int VALUE_RANGE_MAX_INCLUSIVE = VALUE_RANGE | VALUE_RANGE_MAX_INCLUSIVE_MASK; - - /** The VALUE_RANGE_MIN_MAX_INCLUSIVE. */ - int VALUE_RANGE_MIN_MAX_INCLUSIVE = - VALUE_RANGE | VALUE_RANGE_MIN_INCLUSIVE_MASK | VALUE_RANGE_MAX_INCLUSIVE_MASK; /** - * Tells whether the specified element is allowed for the specified - * image type. - * - * @param elementName the element name - * @param imageType the image type - * - * @return true, if the specified element is allowed for the specified - * image type + * The VALUE_RANGE_MIN_MAX_INCLUSIVE. + */ + int VALUE_RANGE_MIN_MAX_INCLUSIVE = VALUE_RANGE | VALUE_RANGE_MIN_INCLUSIVE_MASK + | VALUE_RANGE_MAX_INCLUSIVE_MASK; + + /** + * Tells whether the specified element is allowed for the specified image + * type. + * + * @param elementName + * the element name. + * @param imageType + * the image type. + * @return true, if the specified element is allowed for the specified image + * type. */ boolean canNodeAppear(String elementName, ImageTypeSpecifier imageType); /** * Gets data type of the specified attribute of the specified element. * - * @param elementName the element name - * @param attrName the attribute name - * - * @return the attribute's data type + * @param elementName + * the element name. + * @param attrName + * the attribute name. + * @return the attribute's data type. */ int getAttributeDataType(String elementName, String attrName); - + /** - * Gets the default value of the specified attribute of the specified element. - * - * @param elementName the element name - * @param attrName the attribute name - * - * @return the attribute's default value + * Gets the default value of the specified attribute of the specified + * element. + * + * @param elementName + * the element name. + * @param attrName + * the attribute name. + * @return the attribute's default value. */ String getAttributeDefaultValue(String elementName, String attrName); - + /** * Gets the user-friendly description of the attribute. * - * @param elementName the element name - * @param attrName the attribute name - * @param locale the locale giving the desired language for the - * description - * - * @return the attribute description + * @param elementName + * the element name. + * @param attrName + * the attribute name. + * @param locale + * the locale giving the desired language for the description. + * @return the attribute description. */ String getAttributeDescription(String elementName, String attrName, Locale locale); - + /** * Gets the attribute enumerations. * - * @param elementName the element name - * @param attrName the attribute name - * - * @return the attribute enumerations + * @param elementName + * the element name. + * @param attrName + * the attribute name. + * @return the attribute enumerations. */ String[] getAttributeEnumerations(String elementName, String attrName); - + /** * Gets the maximum length of the attribute list. * - * @param elementName the element name - * @param attrName the attribute name - * - * @return the maximum length of the attribute list + * @param elementName + * the element name. + * @param attrName + * the attribute name. + * @return the maximum length of the attribute list. */ int getAttributeListMaxLength(String elementName, String attrName); - + /** * Gets the minimum length of the attribute list. * - * @param elementName the element name - * @param attrName the attribute name - * - * @return the minimum length of the attribute list + * @param elementName + * the element name. + * @param attrName + * the attribute name. + * @return the minimum length of the attribute list. */ int getAttributeListMinLength(String elementName, String attrName); - + /** * Gets the maximum value allowed for the attribute. * - * @param elementName the element name - * @param attrName the attribute name - * - * @return the maximum value allowed for the attribute + * @param elementName + * the element name. + * @param attrName + * the attribute name. + * @return the maximum value allowed for the attribute. */ String getAttributeMaxValue(String elementName, String attrName); - + /** * Gets the minimum value allowed for the attribute. * - * @param elementName the element name - * @param attrName the attribute name - * - * @return the minimum value allowed for the attribute + * @param elementName + * the element name. + * @param attrName + * the attribute name. + * @return the minimum value allowed for the attribute. */ String getAttributeMinValue(String elementName, String attrName); - + /** * Gets the attribute names allowed for the specified element. * - * @param elementName the element name - * - * @return the attribute names + * @param elementName + * the element name. + * @return the attribute names. */ String[] getAttributeNames(String elementName); - + /** * Gets the attribute value type. * - * @param elementName the element name - * @param attrName the attribute name - * - * @return the attribute value type + * @param elementName + * the element name. + * @param attrName + * the attribute name. + * @return the attribute value type. */ int getAttributeValueType(String elementName, String attrName); - + /** - * Checks whether the specified attribute is required - * for the specified element. - * - * @param elementName the element name - * @param attrName the attribute name - * - * @return true, if the specified attribute is required for the - * specified element + * Checks whether the specified attribute is required for the specified + * element. + * + * @param elementName + * the element name. + * @param attrName + * the attribute name. + * @return true, if the specified attribute is required for the specified + * element. */ boolean isAttributeRequired(String elementName, String attrName); /** * Gets the names of the possible child elements for the given element. * - * @param elementName the element name - * - * @return the child names + * @param elementName + * the element name. + * @return the child names. */ String[] getChildNames(String elementName); - + /** * Gets the constant describing the element's child policy. * - * @param elementName the element name - * - * @return the child policy + * @param elementName + * the element name. + * @return the child policy. */ int getChildPolicy(String elementName); /** * Gets the user-friendly description of the element. * - * @param elementName the element name - * @param locale the locale giving the desired language for the - * description - * - * @return the element description + * @param elementName + * the element name. + * @param locale + * the locale giving the desired language for the description. + * @return the element description. */ String getElementDescription(String elementName, Locale locale); - + /** * Gets the maximum number of children allowed for the element. * - * @param elementName the element name - * - * @return the maximum number of children allowed for the element + * @param elementName + * the element name. + * @return the maximum number of children allowed for the element. */ int getElementMaxChildren(String elementName); - + /** * Gets the minimum number of children allowed for the element. * - * @param elementName the element name - * - * @return the minimum number of children allowed for the element + * @param elementName + * the element name. + * @return the minimum number of children allowed for the element. */ int getElementMinChildren(String elementName); /** * Gets the maximum object array length allowed for the element. * - * @param elementName the element name - * - * @return the maximum object array length allowed for the element + * @param elementName + * the element name. + * @return the maximum object array length allowed for the element. */ int getObjectArrayMaxLength(String elementName); - + /** * Gets the minimum object array length allowed for the element. * - * @param elementName the element name - * - * @return the minimum object array length allowed for the element + * @param elementName + * the element name. + * @return the minimum object array length allowed for the element. */ int getObjectArrayMinLength(String elementName); - + /** * Gets the object class corresponding to the specified element. * - * @param elementName the element name - * - * @return the object class corresponding to the specified element + * @param elementName + * the element name. + * @return the object class corresponding to the specified element. */ Class<?> getObjectClass(String elementName); - + /** * Gets the object default value for the element. * - * @param elementName the element name - * - * @return the object default value for the element + * @param elementName + * the element name. + * @return the object default value for the element. */ Object getObjectDefaultValue(String elementName); - + /** * Gets the object enumerations. * - * @param elementName the element name - * - * @return the object enumerations + * @param elementName + * the element name. + * @return the object enumerations. */ Object[] getObjectEnumerations(String elementName); - + /** * Gets the maximum value allowed for the element's object. * - * @param elementName the element name - * - * @return the maximum value allowed for the element's object + * @param elementName + * the element name. + * @return the maximum value allowed for the element's object. */ Comparable<?> getObjectMaxValue(String elementName); - + /** * Gets the minimum value allowed for the element's object. * - * @param elementName the element name - * - * @return the minimum value allowed for the element's object + * @param elementName + * the element name. + * @return the minimum value allowed for the element's object. */ Comparable<?> getObjectMinValue(String elementName); - + /** * Gets the constant that indicates the type of the element's value. * - * @param elementName the element name - * - * @return the constant that indicates the type of the element's value + * @param elementName + * the element name. + * @return the constant that indicates the type of the element's value. */ int getObjectValueType(String elementName); /** * Gets the name of the root element. * - * @return the name of the root element + * @return the name of the root element. */ String getRootName(); } diff --git a/awt/javax/imageio/metadata/IIOMetadataFormatImpl.java b/awt/javax/imageio/metadata/IIOMetadataFormatImpl.java index 438ae90..1a6e568 100644 --- a/awt/javax/imageio/metadata/IIOMetadataFormatImpl.java +++ b/awt/javax/imageio/metadata/IIOMetadataFormatImpl.java @@ -23,45 +23,60 @@ import java.security.AccessController; import java.security.PrivilegedAction; /** - * The IIOMetadataFormatImpl class provides an implementation of the + * The IIOMetadataFormatImpl class provides an implementation of the * IIOMetadataFormat interface. + * + * @since Android 1.0 */ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { - - /** The Constant standardMetadataFormatName. */ - @SuppressWarnings({"ConstantDeclaredInAbstractClass"}) + + /** + * The Constant standardMetadataFormatName. + */ + @SuppressWarnings( { + "ConstantDeclaredInAbstractClass" + }) public static final String standardMetadataFormatName = "javax_imageio_1.0"; - /** The standard format. */ - @SuppressWarnings({"StaticNonFinalField"}) + /** + * The standard format. + */ + @SuppressWarnings( { + "StaticNonFinalField" + }) private static IIOMetadataFormatImpl standardFormat; - /** The root name. */ + /** + * The root name. + */ private String rootName; - - /** The element hash. */ + + /** + * The element hash. + */ private HashMap<String, Element> elementHash = new HashMap<String, Element>(); - /** The resource base name. */ + /** + * The resource base name. + */ private String resourceBaseName = getClass().getName() + "Resources"; /** - * Instantiates an IIOMetadataFormatImpl with the specified root - * name and child policy (not CHILD_POLICY_REPEAT). + * Instantiates an IIOMetadataFormatImpl with the specified root name and + * child policy (not CHILD_POLICY_REPEAT). * - * @param rootName the name of root element. - * @param childPolicy the child policy defined by one of the - * CHILD_POLICY_* constants (except CHILD_POLICY_REPEAT). + * @param rootName + * the name of root element. + * @param childPolicy + * the child policy defined by one of the CHILD_POLICY_* + * constants (except CHILD_POLICY_REPEAT). */ public IIOMetadataFormatImpl(String rootName, int childPolicy) { if (rootName == null) { throw new IllegalArgumentException("rootName is null"); } - if ( - childPolicy < CHILD_POLICY_EMPTY || - childPolicy > CHILD_POLICY_MAX || - childPolicy == CHILD_POLICY_REPEAT - ) { + if (childPolicy < CHILD_POLICY_EMPTY || childPolicy > CHILD_POLICY_MAX + || childPolicy == CHILD_POLICY_REPEAT) { throw new IllegalArgumentException("childPolicy is not one of the predefined constants"); } @@ -73,12 +88,15 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { } /** - * Instantiates an IIOMetadataFormatImpl with the specified root - * name and CHILD_POLICY_REPEAT child policy. + * Instantiates an IIOMetadataFormatImpl with the specified root name and + * CHILD_POLICY_REPEAT child policy. * - * @param rootName the name of root element. - * @param minChildren the minimum number of children. - * @param maxChildren the maximum number of children + * @param rootName + * the name of root element. + * @param minChildren + * the minimum number of children. + * @param maxChildren + * the maximum number of children */ public IIOMetadataFormatImpl(String rootName, int minChildren, int maxChildren) { if (rootName == null) { @@ -100,25 +118,31 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { elementHash.put(rootName, root); } - @SuppressWarnings({"AbstractMethodOverridesAbstractMethod"}) + @SuppressWarnings( { + "AbstractMethodOverridesAbstractMethod" + }) public abstract boolean canNodeAppear(String elementName, ImageTypeSpecifier imageType); /** * Adds a new attribute to an existing element. * - * @param elementName the name of the element to which the new attribute - * will be added. - * @param attrName the attribute name. - * @param dataType the data type of the new attribute. - * @param required the flag which indicates whether this attribute - * must be present. - * @param listMinLength the minimum legal number of list items. - * @param listMaxLength the the maximum legal number of list items. - */ - protected void addAttribute( - String elementName, String attrName, int dataType, - boolean required, int listMinLength, int listMaxLength - ) { + * @param elementName + * the name of the element to which the new attribute will be + * added. + * @param attrName + * the attribute name. + * @param dataType + * the data type of the new attribute. + * @param required + * the flag which indicates whether this attribute must be + * present. + * @param listMinLength + * the minimum legal number of list items. + * @param listMaxLength + * the the maximum legal number of list items. + */ + protected void addAttribute(String elementName, String attrName, int dataType, + boolean required, int listMinLength, int listMaxLength) { if (attrName == null) { throw new IllegalArgumentException("attrName == null!"); } @@ -144,18 +168,21 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { /** * Adds a new attribute to an existing element. * - * @param elementName the name of the element to which the new attribute - * will be added. - * @param attrName the attribute name. - * @param dataType the data type of the new attribute. - * @param required the flag which indicates whether this attribute - * must be present. - * @param defaultValue the default value of the attribute. - */ - protected void addAttribute( - String elementName, String attrName, int dataType, - boolean required, String defaultValue - ) { + * @param elementName + * the name of the element to which the new attribute will be + * added. + * @param attrName + * the attribute name. + * @param dataType + * the data type of the new attribute. + * @param required + * the flag which indicates whether this attribute must be + * present. + * @param defaultValue + * the default value of the attribute. + */ + protected void addAttribute(String elementName, String attrName, int dataType, + boolean required, String defaultValue) { if (attrName == null) { throw new IllegalArgumentException("attrName == null!"); } @@ -177,20 +204,23 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { /** * Adds a new attribute to an existing element. * - * @param elementName the name of the element to which the new attribute - * will be added. - * @param attrName the attribute name. - * @param dataType the data type of the new attribute. - * @param required the flag which indicates whether this attribute - * must be present. - * @param defaultValue the default value of the attribute. - * @param enumeratedValues the legal values for the attribute as - * a list of strings. - */ - protected void addAttribute( - String elementName, String attrName, int dataType, - boolean required, String defaultValue, List<String> enumeratedValues - ) { + * @param elementName + * the name of the element to which the new attribute will be + * added. + * @param attrName + * the attribute name. + * @param dataType + * the data type of the new attribute. + * @param required + * the flag which indicates whether this attribute must be + * present. + * @param defaultValue + * the default value of the attribute. + * @param enumeratedValues + * the legal values for the attribute as a list of strings. + */ + protected void addAttribute(String elementName, String attrName, int dataType, + boolean required, String defaultValue, List<String> enumeratedValues) { if (attrName == null) { throw new IllegalArgumentException("attrName == null!"); } @@ -226,26 +256,30 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { /** * Adds a new attribute to an existing element. * - * @param elementName the name of the element to which the new attribute - * will be added. - * @param attrName the attribute name. - * @param dataType the data type of the new attribute. - * @param required the flag which indicates whether this attribute - * must be present. - * @param defaultValue the default value of attribute. - * @param minValue the minimum legal value of an attribute. - * @param maxValue the maximum legal value of an attribute. - * @param minInclusive the flag which indicates - * whether the minValue is inclusive. - * @param maxInclusive the flag which indicates - * whether the maxValue is inclusive. - */ - protected void addAttribute( - String elementName, String attrName, int dataType, - boolean required, String defaultValue, - String minValue, String maxValue, - boolean minInclusive, boolean maxInclusive - ) { + * @param elementName + * the name of the element to which the new attribute will be + * added. + * @param attrName + * the attribute name. + * @param dataType + * the data type of the new attribute. + * @param required + * the flag which indicates whether this attribute must be + * present. + * @param defaultValue + * the default value of attribute. + * @param minValue + * the minimum legal value of an attribute. + * @param maxValue + * the maximum legal value of an attribute. + * @param minInclusive + * the flag which indicates whether the minValue is inclusive. + * @param maxInclusive + * the flag which indicates whether the maxValue is inclusive. + */ + protected void addAttribute(String elementName, String attrName, int dataType, + boolean required, String defaultValue, String minValue, String maxValue, + boolean minInclusive, boolean maxInclusive) { if (attrName == null) { throw new IllegalArgumentException("attrName == null!"); } @@ -272,20 +306,21 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { } /** - * Adds a new attribute with boolean data type to an existing - * element. + * Adds a new attribute with boolean data type to an existing element. * - * @param elementName the name of the element to which the new attribute - * will be added. - * @param attrName the attribute name. - * @param hasDefaultValue the flag which indicates whether this attribute - * must have a default value. - * @param defaultValue the default value. - */ - protected void addBooleanAttribute( - String elementName, String attrName, - boolean hasDefaultValue, boolean defaultValue - ) { + * @param elementName + * the name of the element to which the new attribute will be + * added. + * @param attrName + * the attribute name. + * @param hasDefaultValue + * the flag which indicates whether this attribute must have a + * default value. + * @param defaultValue + * the default value. + */ + protected void addBooleanAttribute(String elementName, String attrName, + boolean hasDefaultValue, boolean defaultValue) { String defaultVal = hasDefaultValue ? (defaultValue ? "TRUE" : "FALSE") : null; ArrayList<String> values = new ArrayList<String>(2); values.add("TRUE"); @@ -295,11 +330,13 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { } /** - * Adds an existing element to the list of child elements - * of the specified parent element. + * Adds an existing element to the list of child elements of the specified + * parent element. * - * @param elementName the name of the element to be added. - * @param parentName the parent element name. + * @param elementName + * the name of the element to be added. + * @param parentName + * the parent element name. */ protected void addChildElement(String elementName, String parentName) { Element parent = findElement(parentName); @@ -308,23 +345,23 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { } /** - * Adds a new element type to this IIOMetadataFormat with - * a child policy (if policy is not CHILD_POLICY_REPEAT). + * Adds a new element type to this IIOMetadataFormat with a child policy (if + * policy is not CHILD_POLICY_REPEAT). * - * @param elementName the name of the element to be added. - * @param parentName the parent element name. - * @param childPolicy one of the CHILD_POLICY_* constants defined - * by IIOMetadataFormat. + * @param elementName + * the name of the element to be added. + * @param parentName + * the parent element name. + * @param childPolicy + * one of the CHILD_POLICY_* constants defined by + * IIOMetadataFormat. */ protected void addElement(String elementName, String parentName, int childPolicy) { - if ( - childPolicy < CHILD_POLICY_EMPTY || - childPolicy > CHILD_POLICY_MAX || - childPolicy == CHILD_POLICY_REPEAT - ) { + if (childPolicy < CHILD_POLICY_EMPTY || childPolicy > CHILD_POLICY_MAX + || childPolicy == CHILD_POLICY_REPEAT) { throw new IllegalArgumentException("childPolicy is not one of the predefined constants"); } - + Element parent = findElement(parentName); Element element = new Element(); element.name = elementName; @@ -334,19 +371,21 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { } /** - * Adds a new element type to this IIOMetadataFormat with - * CHILD_POLICY_REPEAT and the specified minimum and maximum - * number of child elements. + * Adds a new element type to this IIOMetadataFormat with + * CHILD_POLICY_REPEAT and the specified minimum and maximum number of child + * elements. * - * @param elementName the element name to be added. - * @param parentName the parent element name. - * @param minChildren the minimum number of child elements. - * @param maxChildren the maximum number of child elements. - */ - protected void addElement( - String elementName, String parentName, - int minChildren, int maxChildren - ) { + * @param elementName + * the element name to be added. + * @param parentName + * the parent element name. + * @param minChildren + * the minimum number of child elements. + * @param maxChildren + * the maximum number of child elements. + */ + protected void addElement(String elementName, String parentName, int minChildren, + int maxChildren) { if (minChildren < 0) { throw new IllegalArgumentException("minChildren < 0!"); } @@ -365,19 +404,20 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { } /** - * Adds an Object reference with the specified class type to be - * stored as element's value. + * Adds an Object reference with the specified class type to be stored as + * element's value. * - * @param elementName the element name. - * @param classType the class indicates the legal types for - * the object's value. - * @param arrayMinLength the minimum legal length for the array. - * @param arrayMaxLength the maximum legal length for the array. - */ - protected void addObjectValue( - String elementName, Class<?> classType, - int arrayMinLength, int arrayMaxLength - ) { + * @param elementName + * the element name. + * @param classType + * the class indicates the legal types for the object's value. + * @param arrayMinLength + * the minimum legal length for the array. + * @param arrayMaxLength + * the maximum legal length for the array. + */ + protected void addObjectValue(String elementName, Class<?> classType, int arrayMinLength, + int arrayMaxLength) { Element element = findElement(elementName); ObjectValue objVal = new ObjectValue(); @@ -390,20 +430,20 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { } /** - * Adds an Object reference with the specified class type to be - * stored as an element's value. + * Adds an Object reference with the specified class type to be stored as an + * element's value. * - * @param elementName the element name. - * @param classType the class indicates the legal types for - * the object's value. - * @param required a flag indicated that this object value - * must be present. - * @param defaultValue the default value, or null. - */ - protected <T> void addObjectValue( - String elementName, Class<T> classType, - boolean required, T defaultValue - ) { + * @param elementName + * the element name. + * @param classType + * the class indicates the legal types for the object's value. + * @param required + * a flag indicated that this object value must be present. + * @param defaultValue + * the default value, or null. + */ + protected <T> void addObjectValue(String elementName, Class<T> classType, boolean required, + T defaultValue) { // note: reqired is an unused parameter Element element = findElement(elementName); @@ -416,22 +456,22 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { } /** - * Adds an Object reference with the specified class type to be - * stored as the element's value. + * Adds an Object reference with the specified class type to be stored as + * the element's value. * - * @param elementName the element name. - * @param classType the class indicates the legal types for - * the object value. - * @param required a flag indicated that this object value - * must be present. - * @param defaultValue the default value, or null. - * @param enumeratedValues the list of legal values for the object. - */ - protected <T> void addObjectValue( - String elementName, Class<T> classType, - boolean required, T defaultValue, - List<? extends T> enumeratedValues - ) { + * @param elementName + * the element name. + * @param classType + * the class indicates the legal types for the object value. + * @param required + * a flag indicated that this object value must be present. + * @param defaultValue + * the default value, or null. + * @param enumeratedValues + * the list of legal values for the object. + */ + protected <T> void addObjectValue(String elementName, Class<T> classType, boolean required, + T defaultValue, List<? extends T> enumeratedValues) { // note: reqired is an unused parameter if (enumeratedValues == null || enumeratedValues.isEmpty()) { throw new IllegalArgumentException("enumeratedValues is empty or null"); @@ -444,7 +484,8 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { } } } catch (ClassCastException e) { - throw new IllegalArgumentException("enumeratedValues contains a value not of class classType!"); + throw new IllegalArgumentException( + "enumeratedValues contains a value not of class classType!"); } Element element = findElement(elementName); @@ -459,25 +500,27 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { } /** - * Adds an Object reference with the specified class type to be - * stored as the element's value. + * Adds an Object reference with the specified class type to be stored as + * the element's value. * - * @param elementName the element name. - * @param classType the class indicates the legal types for - * the object value. - * @param defaultValue the default value, or null. - * @param minValue the minimum legal value for the object value. - * @param maxValue the maximum legal value for the object value. - * @param minInclusive the flag which indicates - * whether the minValue is inclusive. - * @param maxInclusive the flag which indicates - * whether the maxValue is inclusive. - */ - protected <T extends Object & Comparable<? super T>> void addObjectValue( - String elementName, Class<T> classType, - T defaultValue, Comparable<? super T> minValue, Comparable<? super T> maxValue, - boolean minInclusive, boolean maxInclusive - ) { + * @param elementName + * the element name. + * @param classType + * the class indicates the legal types for the object value. + * @param defaultValue + * the default value, or null. + * @param minValue + * the minimum legal value for the object value. + * @param maxValue + * the maximum legal value for the object value. + * @param minInclusive + * the flag which indicates whether the minValue is inclusive. + * @param maxInclusive + * the flag which indicates whether the maxValue is inclusive. + */ + protected <T extends Object & Comparable<? super T>> void addObjectValue(String elementName, + Class<T> classType, T defaultValue, Comparable<? super T> minValue, + Comparable<? super T> maxValue, boolean minInclusive, boolean maxInclusive) { Element element = findElement(elementName); ObjectValue<T> objVal = new ObjectValue<T>(); @@ -540,7 +583,7 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { if ((attr.valueType & VALUE_RANGE) == 0) { throw new IllegalArgumentException("Attribute is not a range!"); } - return attr.maxValue; + return attr.maxValue; } public String getAttributeMinValue(String elementName, String attrName) { @@ -558,12 +601,13 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { public int getAttributeValueType(String elementName, String attrName) { Attlist attr = findAttribute(elementName, attrName); - return attr.valueType; + return attr.valueType; } public String[] getChildNames(String elementName) { Element element = findElement(elementName); - if (element.childPolicy == CHILD_POLICY_EMPTY) { // Element cannot have children + if (element.childPolicy == CHILD_POLICY_EMPTY) { // Element cannot have + // children return null; } return element.children.toArray(new String[element.children.size()]); @@ -689,10 +733,12 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { } /** - * Removes the specified attribute from the specified element. - * - * @param elementName the specified element name. - * @param attrName the specified attribute name. + * Removes the specified attribute from the specified element. + * + * @param elementName + * the specified element name. + * @param attrName + * the specified attribute name. */ protected void removeAttribute(String elementName, String attrName) { Element element = findElement(elementName); @@ -702,7 +748,8 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { /** * Removes the specified element from this format. * - * @param elementName the specified element name. + * @param elementName + * the specified element name. */ protected void removeElement(String elementName) { Element element; @@ -717,18 +764,20 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { /** * Removes the object value from the specified element. * - * @param elementName the element name. + * @param elementName + * the element name. */ protected void removeObjectValue(String elementName) { Element element = findElement(elementName); element.objectValue = null; } - + /** - * Sets a new base name for ResourceBundles containing - * descriptions of elements and attributes for this format. + * Sets a new base name for ResourceBundles containing descriptions of + * elements and attributes for this format. * - * @param resourceBaseName the new resource base name. + * @param resourceBaseName + * the new resource base name. */ protected void setResourceBaseName(String resourceBaseName) { if (resourceBaseName == null) { @@ -740,117 +789,181 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { /** * The Class Element. */ - @SuppressWarnings({"ClassWithoutConstructor"}) + @SuppressWarnings( { + "ClassWithoutConstructor" + }) private class Element { - - /** The name. */ + + /** + * The name. + */ String name; - /** The children. */ + /** + * The children. + */ ArrayList<String> children = new ArrayList<String>(); - - /** The attributes. */ + + /** + * The attributes. + */ HashMap<String, Attlist> attributes = new HashMap<String, Attlist>(); - /** The min children. */ + /** + * The min children. + */ int minChildren; - - /** The max children. */ + + /** + * The max children. + */ int maxChildren; - - /** The child policy. */ + + /** + * The child policy. + */ int childPolicy; - /** The object value. */ + /** + * The object value. + */ ObjectValue objectValue; } /** * The Class Attlist. */ - @SuppressWarnings({"ClassWithoutConstructor"}) + @SuppressWarnings( { + "ClassWithoutConstructor" + }) private class Attlist { - - /** The name. */ + + /** + * The name. + */ String name; - /** The data type. */ + /** + * The data type. + */ int dataType; - - /** The required. */ + + /** + * The required. + */ boolean required; - - /** The list min length. */ + + /** + * The list min length. + */ int listMinLength; - - /** The list max length. */ + + /** + * The list max length. + */ int listMaxLength; - - /** The default value. */ + + /** + * The default value. + */ String defaultValue; - - /** The enumerated values. */ + + /** + * The enumerated values. + */ List<String> enumeratedValues; - - /** The min value. */ + + /** + * The min value. + */ String minValue; - - /** The max value. */ + + /** + * The max value. + */ String maxValue; - - /** The min inclusive. */ + + /** + * The min inclusive. + */ boolean minInclusive; - - /** The max inclusive. */ + + /** + * The max inclusive. + */ boolean maxInclusive; - /** The value type. */ + /** + * The value type. + */ int valueType; } /** * The Class ObjectValue. */ - @SuppressWarnings({"ClassWithoutConstructor"}) + @SuppressWarnings( { + "ClassWithoutConstructor" + }) private class ObjectValue<T> { - - /** The class type. */ + + /** + * The class type. + */ Class<T> classType; - - /** The array min length. */ + + /** + * The array min length. + */ int arrayMinLength; - - /** The array max length. */ + + /** + * The array max length. + */ int arrayMaxLength; - - /** The default value. */ + + /** + * The default value. + */ T defaultValue; - - /** The enumerated values. */ + + /** + * The enumerated values. + */ List<? extends T> enumeratedValues; - - /** The min value. */ + + /** + * The min value. + */ Comparable<? super T> minValue; - - /** The max value. */ + + /** + * The max value. + */ Comparable<? super T> maxValue; - - /** The min inclusive. */ + + /** + * The min inclusive. + */ boolean minInclusive; - - /** The max inclusive. */ + + /** + * The max inclusive. + */ boolean maxInclusive; - /** The value type. */ + /** + * The value type. + */ int valueType; } /** * Find element. * - * @param name the name - * - * @return the element + * @param name + * the name. + * @return the element. */ private Element findElement(String name) { Element element; @@ -864,16 +977,18 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { /** * Find attribute. * - * @param elementName the element name - * @param attributeName the attribute name - * - * @return the attlist + * @param elementName + * the element name. + * @param attributeName + * the attribute name. + * @return the attlist. */ private Attlist findAttribute(String elementName, String attributeName) { Element element = findElement(elementName); Attlist attribute; if ((attribute = element.attributes.get(attributeName)) == null) { - throw new IllegalArgumentException("attribute name is null or no such attribute: " + attributeName); + throw new IllegalArgumentException("attribute name is null or no such attribute: " + + attributeName); } return attribute; @@ -882,9 +997,9 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { /** * Find object value. * - * @param elementName the element name - * - * @return the object value + * @param elementName + * the element name. + * @return the object value. */ private ObjectValue findObjectValue(String elementName) { Element element = findElement(elementName); @@ -898,23 +1013,25 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat { /** * Gets the resource string. * - * @param key the key - * @param locale the locale - * - * @return the resource string + * @param key + * the key. + * @param locale + * the locale. + * @return the resource string. */ private String getResourceString(String key, Locale locale) { if (locale == null) { locale = Locale.getDefault(); } - // Get the context class loader and try to locate the bundle with it first - ClassLoader contextClassloader = AccessController.doPrivileged( - new PrivilegedAction<ClassLoader>() { + // Get the context class loader and try to locate the bundle with it + // first + ClassLoader contextClassloader = AccessController + .doPrivileged(new PrivilegedAction<ClassLoader>() { public ClassLoader run() { return Thread.currentThread().getContextClassLoader(); } - }); + }); // Now try to get the resource bundle ResourceBundle rb; diff --git a/awt/javax/imageio/metadata/IIOMetadataNode.java b/awt/javax/imageio/metadata/IIOMetadataNode.java index d5ab7a5..adc6d67 100644 --- a/awt/javax/imageio/metadata/IIOMetadataNode.java +++ b/awt/javax/imageio/metadata/IIOMetadataNode.java @@ -27,47 +27,71 @@ import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; + //???AWT //import org.w3c.dom.TypeInfo; //import org.w3c.dom.UserDataHandler; /** - * The Class IIOMetadataNode represents a node of the - * (DOM-style) metadata tree. + * The Class IIOMetadataNode represents a node of the (DOM-style) metadata tree. + * + * @since Android 1.0 */ public class IIOMetadataNode implements Element, NodeList { - /** The node name. */ + /** + * The node name. + */ private String nodeName; - - /** The node value. */ + + /** + * The node value. + */ private String nodeValue; - - /** The attributes. */ + + /** + * The attributes. + */ private IIOMetadataNodeList attrs = new IIOMetadataNodeList(new ArrayList<IIOMetadataNode>()); - /** The parent node. */ + /** + * The parent node. + */ private IIOMetadataNode parent; - - /** The first child node. */ + + /** + * The first child node. + */ private IIOMetadataNode firstChild; - - /** The last child node. */ + + /** + * The last child node. + */ private IIOMetadataNode lastChild; - - /** The previous sibling. */ + + /** + * The previous sibling. + */ private IIOMetadataNode previousSibling; - - /** The next sibling. */ + + /** + * The next sibling. + */ private IIOMetadataNode nextSibling; - /** The number of children. */ + /** + * The number of children. + */ private int nChildren; - /** The user object associated with this node. */ + /** + * The user object associated with this node. + */ private Object userObject; - /** The text content of this node. */ + /** + * The text content of this node. + */ private String textContent; /** @@ -79,18 +103,20 @@ public class IIOMetadataNode implements Element, NodeList { /** * Instantiates a new empty node with the specified name. * - * @param nodeName the node name + * @param nodeName + * the node name. */ public IIOMetadataNode(String nodeName) { this.nodeName = nodeName; } /** - * Instantiates a new IIOMetadataNode with the specified - * name and value. + * Instantiates a new IIOMetadataNode with the specified name and value. * - * @param nodeName the node name - * @param nodeValue the node value + * @param nodeName + * the node name. + * @param nodeValue + * the node value. */ private IIOMetadataNode(String nodeName, String nodeValue) { this.nodeName = nodeName; @@ -102,12 +128,12 @@ public class IIOMetadataNode implements Element, NodeList { } public String getAttribute(String name) { - Attr attrNode = (Attr) attrs.getNamedItem(name); + Attr attrNode = (Attr)attrs.getNamedItem(name); return (attrNode == null) ? "" : attrNode.getValue(); } public void setAttribute(String name, String value) throws DOMException { - Attr attr = (Attr) attrs.getNamedItem(name); + Attr attr = (Attr)attrs.getNamedItem(name); if (attr != null) { attr.setValue(value); } else { @@ -116,7 +142,7 @@ public class IIOMetadataNode implements Element, NodeList { } public void removeAttribute(String name) throws DOMException { - IIOMetadataAttr attr = (IIOMetadataAttr) attrs.getNamedItem(name); + IIOMetadataAttr attr = (IIOMetadataAttr)attrs.getNamedItem(name); if (attr != null) { attr.setOwnerElement(null); attrs.list.remove(attr); @@ -124,17 +150,19 @@ public class IIOMetadataNode implements Element, NodeList { } public Attr getAttributeNode(String name) { - return (Attr) attrs.getNamedItem(name); + return (Attr)attrs.getNamedItem(name); } public Attr setAttributeNode(Attr newAttr) throws DOMException { // Check if this attribute is already in use. Element owner = newAttr.getOwnerElement(); if (owner != null) { - if (owner == this) { // Replacing an attribute node by itself has no effect + if (owner == this) { // Replacing an attribute node by itself has no + // effect return null; } else { - throw new DOMException(DOMException.INUSE_ATTRIBUTE_ERR, "Attribute is already in use"); + throw new DOMException(DOMException.INUSE_ATTRIBUTE_ERR, + "Attribute is already in use"); } } @@ -146,7 +174,7 @@ public class IIOMetadataNode implements Element, NodeList { IIOMetadataAttr iioAttr; if (newAttr instanceof IIOMetadataAttr) { - iioAttr = (IIOMetadataAttr) newAttr; + iioAttr = (IIOMetadataAttr)newAttr; iioAttr.setOwnerElement(this); } else { iioAttr = new IIOMetadataAttr(name, newAttr.getValue(), this); @@ -206,7 +234,8 @@ public class IIOMetadataNode implements Element, NodeList { return getAttribute(localName); } - public void setAttributeNS(String namespaceURI, String qualifiedName, String value) throws DOMException { + public void setAttributeNS(String namespaceURI, String qualifiedName, String value) + throws DOMException { setAttribute(qualifiedName, value); } @@ -222,7 +251,8 @@ public class IIOMetadataNode implements Element, NodeList { return setAttributeNode(newAttr); } - public NodeList getElementsByTagNameNS(String namespaceURI, String localName) throws DOMException { + public NodeList getElementsByTagNameNS(String namespaceURI, String localName) + throws DOMException { return getElementsByTagName(localName); } @@ -234,20 +264,105 @@ public class IIOMetadataNode implements Element, NodeList { return hasAttribute(localName); } - //???AWT + // ???AWT /* - public TypeInfo getSchemaTypeInfo() { - throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported"); - }*/ + * public TypeInfo getSchemaTypeInfo() { throw new + * DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported"); } + */ + /** + * <i>Description copied from interface: org.w3c.dom.Element (DOM Level + * 3)</i> + * <p> + * If the parameter isId is true, this method declares the specified + * attribute to be a user-determined ID attribute . This affects the value + * of Attr.isId and the behavior of Document.getElementById, but does not + * change any schema that may be in use, in particular this does not affect + * the Attr.schemaTypeInfo of the specified Attr node. Use the value false + * for the parameter isId to undeclare an attribute for being a + * user-determined ID attribute. To specify an attribute by local name and + * namespace URI, use the setIdAttributeNS method. + * </p> + * + * @param name + * the name of the attribute. + * @param isId + * the flag which determines whether this attribute is of type + * ID. + * @throws DOMException + * if a DOM error occurred while setting the attribute type. + * <p> + * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. + * <br> + * NOT_FOUND_ERR: Raised if the specified node is not an + * attribute of this element. + * </p> + */ public void setIdAttribute(String name, boolean isId) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported"); } - public void setIdAttributeNS(String namespaceURI, String localName, boolean isId) throws DOMException { + /** + * <i>Description copied from interface: org.w3c.dom.Element (DOM Level + * 3)</i> + * <p> + * If the parameter isId is true, this method declares the specified + * attribute to be a user-determined ID attribute . This affects the value + * of Attr.isId and the behavior of Document.getElementById, but does not + * change any schema that may be in use, in particular this does not affect + * the Attr.schemaTypeInfo of the specified Attr node. Use the value false + * for the parameter isId to undeclare an attribute for being a + * user-determined ID attribute. + * </p> + * + * @param namespaceURI + * the namespace URI of the attribute. + * @param localName + * the local name of the attribute. + * @param isId + * the flag which determines whether this attribute is of type + * ID. + * @throws DOMException + * if a DOM error occurred while setting the attribute type. + * <p> + * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. + * <br> + * NOT_FOUND_ERR: Raised if the specified node is not an + * attribute of this element. + * </p> + */ + public void setIdAttributeNS(String namespaceURI, String localName, boolean isId) + throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported"); } + /** + * <i>Description copied from interface: org.w3c.dom.Element (DOM Level + * 3)</i> + * <p> + * If the parameter isId is true, this method declares the specified + * attribute to be a user-determined ID attribute . This affects the value + * of Attr.isId and the behavior of Document.getElementById, but does not + * change any schema that may be in use, in particular this does not affect + * the Attr.schemaTypeInfo of the specified Attr node. Use the value false + * for the parameter isId to undeclare an attribute for being a + * user-determined ID attribute. + * </p> + * + * @param idAttr + * the attribute node. + * @param isId + * the flag which determines whether this attribute is of type + * ID. + * @throws DOMException + * if a DOM error occurred while setting the attribute type. + * <p> + * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. + * <br> + * NOT_FOUND_ERR: Raised if the specified node is not an + * attribute of this element. + * </p> + */ public void setIdAttributeNode(Attr idAttr, boolean isId) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported"); } @@ -305,8 +420,8 @@ public class IIOMetadataNode implements Element, NodeList { throw new IllegalArgumentException("newChild == null!"); } - IIOMetadataNode newIIOChild = (IIOMetadataNode) newChild; - IIOMetadataNode refIIOChild = (IIOMetadataNode) refChild; + IIOMetadataNode newIIOChild = (IIOMetadataNode)newChild; + IIOMetadataNode refIIOChild = (IIOMetadataNode)refChild; newIIOChild.parent = this; @@ -349,8 +464,8 @@ public class IIOMetadataNode implements Element, NodeList { throw new IllegalArgumentException("newChild == null!"); } - IIOMetadataNode newIIOChild = (IIOMetadataNode) newChild; - IIOMetadataNode oldIIOChild = (IIOMetadataNode) oldChild; + IIOMetadataNode newIIOChild = (IIOMetadataNode)newChild; + IIOMetadataNode oldIIOChild = (IIOMetadataNode)oldChild; IIOMetadataNode next = oldIIOChild.nextSibling; IIOMetadataNode previous = oldIIOChild.previousSibling; @@ -389,7 +504,7 @@ public class IIOMetadataNode implements Element, NodeList { throw new IllegalArgumentException("oldChild == null!"); } - IIOMetadataNode oldIIOChild = (IIOMetadataNode) oldChild; + IIOMetadataNode oldIIOChild = (IIOMetadataNode)oldChild; // Fix next and previous IIOMetadataNode previous = oldIIOChild.previousSibling; @@ -439,7 +554,8 @@ public class IIOMetadataNode implements Element, NodeList { } } - return cloned; //To change body of implemented methods use File | Settings | File Templates. + return cloned; // To change body of implemented methods use File | + // Settings | File Templates. } public void normalize() { @@ -470,52 +586,314 @@ public class IIOMetadataNode implements Element, NodeList { return attrs.list.size() > 0; } + /** + * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i> + * <p> + * The absolute base URI of this node or null if the implementation wasn't + * able to obtain an absolute URI. This value is computed as described in. + * However, when the Document supports the feature "HTML" [DOM Level 2 + * HTML], the base URI is computed using first the value of the href + * attribute of the HTML BASE element if any, and the value of the + * documentURI attribute from the Document interface otherwise. + * </p> + * + * @return the string representation of the absolute base URI. + */ public String getBaseURI() { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported"); } + /** + * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i> + * <p> + * Compares the reference node, i.e. the node on which this method is being + * called, with a node, i.e. the one passed as a parameter, with regard to + * their position in the document and according to the document order. + * </p> + * + * @param other + * the node to compare against the reference node. + * @return Returns how the node is positioned relatively to the reference + * node. + * @throws DOMException + * NOT_SUPPORTED_ERR: when the compared nodes are from different + * DOM implementations that do not coordinate to return + * consistent implementation-specific results. + */ public short compareDocumentPosition(Node other) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported"); } + /** + * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i> + * <p> + * This attribute returns the text content of this node and its descendants. + * When it is defined to be null, setting it has no effect. On setting, any + * possible children this node may have are removed and, if it the new + * string is not empty or null, replaced by a single Text node containing + * the string this attribute is set to. On getting, no serialization is + * performed, the returned string does not contain any markup. No whitespace + * normalization is performed and the returned string does not contain the + * white spaces in element content (see the attribute + * Text.isElementContentWhitespace). Similarly, on setting, no parsing is + * performed either, the input string is taken as pure textual content. The + * string returned is made of the text content of this node depending on its + * type, as defined below: + * <table> + * <tr> + * <td><strong>Node type</strong></td> + * <td><strong>Content</strong></td> + * </tr> + * <tr> + * <td>ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, + * DOCUMENT_FRAGMENT_NODE</td> + * <td>concatenation of the textContent attribute value of every child node, + * excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the + * empty string if the node has no children.</td> + * </tr> + * <tr> + * <td>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, + * PROCESSING_INSTRUCTION_NODE</td> + * <td>nodeValue</td> + * </tr> + * <tr> + * <td>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> + * <td>null</td> + * </tr> + * </table> + * </p> + * + * @return the text content depending on the type of this node. + * @throws DOMException + * DOMSTRING_SIZE_ERR: Raised when it would return more + * characters than fit in a DOMString variable on the + * implementation platform. + */ public String getTextContent() throws DOMException { return textContent; } + /** + * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i> + * <p> + * This attribute returns the text content of this node and its descendants. + * When it is defined to be null, setting it has no effect. On setting, any + * possible children this node may have are removed and, if it the new + * string is not empty or null, replaced by a single Text node containing + * the string this attribute is set to. On getting, no serialization is + * performed, the returned string does not contain any markup. No whitespace + * normalization is performed and the returned string does not contain the + * white spaces in element content (see the attribute + * Text.isElementContentWhitespace). Similarly, on setting, no parsing is + * performed either, the input string is taken as pure textual content. The + * string returned is made of the text content of this node depending on its + * type, as defined below: + * <table> + * <tr> + * <td><strong>Node type</strong></td> + * <td><strong>Content</strong></td> + * </tr> + * <tr> + * <td>ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, + * DOCUMENT_FRAGMENT_NODE</td> + * <td>concatenation of the textContent attribute value of every child node, + * excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the + * empty string if the node has no children.</td> + * </tr> + * <tr> + * <td>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, + * PROCESSING_INSTRUCTION_NODE</td> + * <td>nodeValue</td> + * </tr> + * <tr> + * <td>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> + * <td>null</td> + * </tr> + * </table> + * </p> + * + * @param textContent + * the text content for this node. + * @throws DOMException + * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is + * readonly. + */ public void setTextContent(String textContent) throws DOMException { this.textContent = textContent; } + /** + * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i> + * <p> + * Returns whether this node is the same node as the given one. This method + * provides a way to determine whether two Node references returned by the + * implementation reference the same object. When two Node references are + * references to the same object, even if through a proxy, the references + * may be used completely interchangeably, such that all attributes have the + * same values and calling the same DOM method on either reference always + * has exactly the same effect. + * </p> + * + * @param other + * the node to test against. + * @return true, if the nodes are the same, false otherwise. + */ public boolean isSameNode(Node other) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported"); } + /** + * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i> + * <p> + * Look up the prefix associated to the given namespace URI, starting from + * this node. The default namespace declarations are ignored by this method. + * See for details on the algorithm used by this method. + * </p> + * + * @param namespaceURI + * the namespace URI to look for. + * @return the associated namespace prefix if found or null if none is + * found. If more than one prefix are associated to the namespace + * prefix, the returned namespace prefix is implementation + * dependent. + */ public String lookupPrefix(String namespaceURI) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported"); } + /** + * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i> + * <p> + * This method checks if the specified namespaceURI is the default namespace + * or not. + * </p> + * + * @param namespaceURI + * the namespace URI to look for. + * @return true, if the specified namespaceURI is the default namespace, + * false otherwise. + */ public boolean isDefaultNamespace(String namespaceURI) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported"); } + /** + * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i> + * <p> + * Look up the namespace URI associated to the given prefix, starting from + * this node. See for details on the algorithm used by this method. + * </p> + * + * @param prefix + * the prefix to look for. If this parameter is null, the method + * will return the default namespace URI if any. + * @return the associated namespace URI or null if none is found. + */ public String lookupNamespaceURI(String prefix) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported"); } + /** + * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i> + * <p> + * Tests whether two nodes are equal. This method tests for equality of + * nodes, not sameness (i.e., whether the two nodes are references to the + * same object) which can be tested with Node.isSameNode(). All nodes that + * are the same will also be equal, though the reverse may not be true. Two + * nodes are equal if and only if the following conditions are satisfied: + * <p> + * <li>The two nodes are of the same type.</li> + * <li>The following string attributes are equal: nodeName, localName, + * namespaceURI, prefix, nodeValue . This is: they are both null, or they + * have the same length and are character for character identical.</li> + * <li>The attributes NamedNodeMaps are equal. This is: they are both null, + * or they have the same length and for each node that exists in one map + * there is a node that exists in the other map and is equal, although not + * necessarily at the same index.</li> + * <li>The childNodes NodeLists are equal. This is: they are both null, or + * they have the same length and contain equal nodes at the same index. Note + * that normalization can affect equality; to avoid this, nodes should be + * normalized before being compared.</li> + * </p> + * For two DocumentType nodes to be equal, the following conditions must + * also be satisfied: + * <p> + * <li>The following string attributes are equal: publicId, systemId, + * internalSubset.</li> + * <li>The entities NamedNodeMaps are equal.</li> + * <li>The notations NamedNodeMaps are equal.</li> + * </p> + * On the other hand, the following do not affect equality: the + * ownerDocument, baseURI, and parentNode attributes, the specified + * attribute for Attr nodes, the schemaTypeInfo attribute for Attr and + * Element nodes, the Text.isElementContentWhitespace attribute for Text + * nodes, as well as any user data or event listeners registered on the + * nodes. </p> + * <p> + * Note: As a general rule, anything not mentioned in the description above + * is not significant in consideration of equality checking. Note that + * future versions of this specification may take into account more + * attributes and implementations conform to this specification are expected + * to be updated accordingly. + * </p> + * + * @param arg + * the node to compare equality with. + * @return true, if the nodes are equal, false otherwise. + */ public boolean isEqualNode(Node arg) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported"); } + /** + * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i> + * <p> + * This method returns a specialized object which implements the specialized + * APIs of the specified feature and version, as specified in. The + * specialized object may also be obtained by using binding-specific casting + * methods but is not necessarily expected to, as discussed in. This method + * also allow the implementation to provide specialized objects which do not + * support the Node interface. + * </p> + * + * @param feature + * the name of the feature requested. Note that any plus sign "+" + * prepended to the name of the feature will be ignored since it + * is not significant in the context of this method. + * @param version + * this is the version number of the feature to test. + * @return the object which implements the specialized APIs of the specified + * feature and version, if any, or null if there is no object which + * implements interfaces associated with that feature. If the + * DOMObject returned by this method implements the Node interface, + * it must delegate to the primary core Node and not return results + * inconsistent with the primary core Node such as attributes, + * childNodes, etc. + */ public Object getFeature(String feature, String version) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported"); } - //???AWT + // ???AWT /* - public Object setUserData(String key, Object data, UserDataHandler handler) { - throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported"); - }*/ + * public Object setUserData(String key, Object data, UserDataHandler + * handler) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, + * "Method not supported"); } + */ + /** + * <i>Description copied from interface: org.w3c.dom.Node (DOM Level 3)</i> + * <p> + * Retrieves the object associated to a key on a this node. The object must + * first have been set to this node by calling setUserData with the same + * key. + * </p> + * + * @param key + * the key the object is associated to. + * @return the DOMUserData associated to the given key on this node, or null + * if there was none. + */ public Object getUserData(String key) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported"); } @@ -540,7 +918,7 @@ public class IIOMetadataNode implements Element, NodeList { /** * Gets the user object associated with this node. * - * @return the user object associated with this node + * @return the user object associated with this node. */ public Object getUserObject() { return userObject; @@ -549,7 +927,8 @@ public class IIOMetadataNode implements Element, NodeList { /** * Sets the user object associated with this node. * - * @param userObject the new user object associated with this node + * @param userObject + * the new user object associated with this node. */ public void setUserObject(Object userObject) { this.userObject = userObject; @@ -559,16 +938,21 @@ public class IIOMetadataNode implements Element, NodeList { * The Class IIOMetadataAttr. */ private class IIOMetadataAttr extends IIOMetadataNode implements Attr { - - /** The owner element. */ + + /** + * The owner element. + */ private Element ownerElement; /** * Instantiates a new iIO metadata attr. * - * @param name the name - * @param value the value - * @param owner the owner + * @param name + * the name. + * @param value + * the value. + * @param owner + * the owner. */ public IIOMetadataAttr(String name, String value, Element owner) { super(name, value); @@ -598,12 +982,16 @@ public class IIOMetadataNode implements Element, NodeList { /** * Sets the owner element. * - * @param ownerElement the new owner element + * @param ownerElement + * the new owner element. */ public void setOwnerElement(Element ownerElement) { this.ownerElement = ownerElement; } + /** + * @return + */ public boolean isId() { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Method not supported"); } @@ -618,14 +1006,17 @@ public class IIOMetadataNode implements Element, NodeList { * The Class IIOMetadataNodeList. */ private class IIOMetadataNodeList implements NodeList, NamedNodeMap { - - /** The list. */ + + /** + * The list. + */ private List<IIOMetadataNode> list; /** * Instantiates a new iIO metadata node list. * - * @param list the list + * @param list + * the list. */ IIOMetadataNodeList(List<IIOMetadataNode> list) { this.list = list; @@ -644,7 +1035,7 @@ public class IIOMetadataNode implements Element, NodeList { } public Node getNamedItem(String name) { - for(IIOMetadataNode node:list) { + for (IIOMetadataNode node : list) { if (name.equals(node.getNodeName())) { return node; } @@ -653,11 +1044,13 @@ public class IIOMetadataNode implements Element, NodeList { } public Node setNamedItem(Node arg) throws DOMException { - throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, "This NamedNodeMap is read-only!"); + throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, + "This NamedNodeMap is read-only!"); } public Node removeNamedItem(String name) throws DOMException { - throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, "This NamedNodeMap is read-only!"); + throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, + "This NamedNodeMap is read-only!"); } public Node getNamedItemNS(String namespaceURI, String localName) throws DOMException { @@ -665,11 +1058,13 @@ public class IIOMetadataNode implements Element, NodeList { } public Node setNamedItemNS(Node arg) throws DOMException { - throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, "This NamedNodeMap is read-only!"); + throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, + "This NamedNodeMap is read-only!"); } public Node removeNamedItemNS(String namespaceURI, String localName) throws DOMException { - throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, "This NamedNodeMap is read-only!"); + throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, + "This NamedNodeMap is read-only!"); } } } diff --git a/awt/javax/imageio/metadata/IIOStandardMetadataFormat.java b/awt/javax/imageio/metadata/IIOStandardMetadataFormat.java index 94d2125..706cb2f 100644 --- a/awt/javax/imageio/metadata/IIOStandardMetadataFormat.java +++ b/awt/javax/imageio/metadata/IIOStandardMetadataFormat.java @@ -15,18 +15,19 @@ * limitations under the License. */ - package javax.imageio.metadata; import javax.imageio.ImageTypeSpecifier; import java.util.ArrayList; /** - * The Class IIOStandardMetadataFormat describes the rules of the - * standard metadata format. + * The class IIOStandardMetadataFormat describes the rules of the standard + * metadata format. + * + * @since Android 1.0 */ -class IIOStandardMetadataFormat extends IIOMetadataFormatImpl { - +class IIOStandardMetadataFormat extends IIOMetadataFormatImpl { + /** * Instantiates a new IIOStandardMetadataFormat. */ @@ -41,7 +42,7 @@ class IIOStandardMetadataFormat extends IIOMetadataFormatImpl { } /** - * Builds the dtd that describes the standard metadata format. + * Builds the DTD that describes the standard metadata format. */ private void buildDTD() { // CHROMA @@ -80,7 +81,10 @@ class IIOStandardMetadataFormat extends IIOMetadataFormatImpl { addAttribute("ColorSpaceType", "name", DATATYPE_STRING, true, null, values); addElement("NumChannels", "Chroma", CHILD_POLICY_EMPTY); - addAttribute("NumChannels", "value", DATATYPE_INTEGER, true, 0, Integer.MAX_VALUE); // list - why? + addAttribute("NumChannels", "value", DATATYPE_INTEGER, true, 0, Integer.MAX_VALUE); // list + // - + // why + // ? addElement("Gamma", "Chroma", CHILD_POLICY_EMPTY); addAttribute("Gamma", "value", DATATYPE_FLOAT, true, null); @@ -142,10 +146,8 @@ class IIOStandardMetadataFormat extends IIOMetadataFormatImpl { addAttribute("BitsPerSample", "value", DATATYPE_INTEGER, true, 1, Integer.MAX_VALUE); // list addElement("SignificantBitsPerSample", "Data", CHILD_POLICY_EMPTY); - addAttribute( - "SignificantBitsPerSample", "value", - DATATYPE_INTEGER, true, 1, Integer.MAX_VALUE - ); // list + addAttribute("SignificantBitsPerSample", "value", DATATYPE_INTEGER, true, 1, + Integer.MAX_VALUE); // list addElement("SampleMSB", "Data", CHILD_POLICY_EMPTY); addAttribute("SampleMSB", "value", DATATYPE_INTEGER, true, 1, Integer.MAX_VALUE); // list @@ -224,49 +226,29 @@ class IIOStandardMetadataFormat extends IIOMetadataFormatImpl { addElement("ImageCreationTime", "Document", CHILD_POLICY_EMPTY); addAttribute("ImageCreationTime", "year", DATATYPE_INTEGER, true, null); - addAttribute( - "ImageCreationTime", "month", - DATATYPE_INTEGER, true, null, "1", "12", true, true - ); - addAttribute( - "ImageCreationTime", "day", - DATATYPE_INTEGER, true, null, "1", "31", true, true - ); - addAttribute( - "ImageCreationTime", "hour", - DATATYPE_INTEGER, false, "0", "0", "23", true, true - ); - addAttribute( - "ImageCreationTime", "minute", - DATATYPE_INTEGER, false, "0", "0", "59", true, true - ); - addAttribute( - "ImageCreationTime", "second", - DATATYPE_INTEGER, false, "0", "0", "60", true, true - ); + addAttribute("ImageCreationTime", "month", DATATYPE_INTEGER, true, null, "1", "12", true, + true); + addAttribute("ImageCreationTime", "day", DATATYPE_INTEGER, true, null, "1", "31", true, + true); + addAttribute("ImageCreationTime", "hour", DATATYPE_INTEGER, false, "0", "0", "23", true, + true); + addAttribute("ImageCreationTime", "minute", DATATYPE_INTEGER, false, "0", "0", "59", true, + true); + addAttribute("ImageCreationTime", "second", DATATYPE_INTEGER, false, "0", "0", "60", true, + true); addElement("ImageModificationTime", "Document", CHILD_POLICY_EMPTY); addAttribute("ImageModificationTime", "year", DATATYPE_INTEGER, true, null); - addAttribute( - "ImageModificationTime", "month", - DATATYPE_INTEGER, true, null, "1", "12", true, true - ); - addAttribute( - "ImageModificationTime", "day", - DATATYPE_INTEGER, true, null, "1", "31", true, true - ); - addAttribute( - "ImageModificationTime", "hour", - DATATYPE_INTEGER, false, "0", "0", "23", true, true - ); - addAttribute( - "ImageModificationTime", "minute", - DATATYPE_INTEGER, false, "0", "0", "59", true, true - ); - addAttribute( - "ImageModificationTime", "second", - DATATYPE_INTEGER, false, "0", "0", "60", true, true - ); + addAttribute("ImageModificationTime", "month", DATATYPE_INTEGER, true, null, "1", "12", + true, true); + addAttribute("ImageModificationTime", "day", DATATYPE_INTEGER, true, null, "1", "31", true, + true); + addAttribute("ImageModificationTime", "hour", DATATYPE_INTEGER, false, "0", "0", "23", + true, true); + addAttribute("ImageModificationTime", "minute", DATATYPE_INTEGER, false, "0", "0", "59", + true, true); + addAttribute("ImageModificationTime", "second", DATATYPE_INTEGER, false, "0", "0", "60", + true, true); // TEXT addElement("Text", standardMetadataFormatName, 0, Integer.MAX_VALUE); // CHILD_POLICY_REPEAT @@ -313,4 +295,3 @@ class IIOStandardMetadataFormat extends IIOMetadataFormatImpl { addAttribute("OpaqueTile", "y", DATATYPE_INTEGER, true, null); } } - diff --git a/awt/javax/imageio/metadata/package.html b/awt/javax/imageio/metadata/package.html new file mode 100644 index 0000000..29bd51b --- /dev/null +++ b/awt/javax/imageio/metadata/package.html @@ -0,0 +1,8 @@ +<html> + <body> + <p> + This package contains classes which allows to read and write describing metadata of image files. + </p> + @since Android 1.0 + </body> +</html> diff --git a/awt/javax/imageio/package.html b/awt/javax/imageio/package.html new file mode 100644 index 0000000..2fd6148 --- /dev/null +++ b/awt/javax/imageio/package.html @@ -0,0 +1,8 @@ +<html> + <body> + <p> + This package contains classes and interfaces which provides an Image I/O API. The contained classes and interfaces allow reading and writing image files of different formats. + </p> + @since Android 1.0 + </body> +</html> diff --git a/awt/javax/imageio/plugins/bmp/BMPImageWriteParam.java b/awt/javax/imageio/plugins/bmp/BMPImageWriteParam.java index 0cd44db..ecfb20a 100644 --- a/awt/javax/imageio/plugins/bmp/BMPImageWriteParam.java +++ b/awt/javax/imageio/plugins/bmp/BMPImageWriteParam.java @@ -15,19 +15,21 @@ * limitations under the License. */ - package javax.imageio.plugins.bmp; import javax.imageio.ImageWriteParam; import java.util.Locale; /** - * The BMPImageWriteParam class allows encoding an image in - * BMP format. + * The BMPImageWriteParam class allows encoding an image in BMP format. + * + * @since Android 1.0 */ public class BMPImageWriteParam extends ImageWriteParam { - - /** The top down. */ + + /** + * The top down. + */ private boolean topDown; // Default is bottom-up /** @@ -41,33 +43,35 @@ public class BMPImageWriteParam extends ImageWriteParam { /** * Instantiates a new BMPImageWriteParam with the specified Locale. * - * @param locale the specified Locale. + * @param locale + * the specified Locale. */ public BMPImageWriteParam(Locale locale) { super(locale); // Set the compression canWriteCompressed = true; - compressionTypes = new String[] {"BI_RGB", "BI_RLE8", "BI_RLE4", "BI_BITFIELDS"}; - compressionType = compressionTypes[0]; + compressionTypes = new String[] { + "BI_RGB", "BI_RLE8", "BI_RLE4", "BI_BITFIELDS" + }; + compressionType = compressionTypes[0]; } /** - * Sets true if the data will be written in a top-down order, - * false otherwise. + * Sets true if the data will be written in a top-down order, false + * otherwise. * - * @param topDown the new top-down value. + * @param topDown + * the new top-down value. */ public void setTopDown(boolean topDown) { this.topDown = topDown; } /** - * Returns true if the data is written in top-down order, false - * otherwise. + * Returns true if the data is written in top-down order, false otherwise. * - * @return true if the data is written in top-down order, false - * otherwise. + * @return true if the data is written in top-down order, false otherwise. */ public boolean isTopDown() { return topDown; diff --git a/awt/javax/imageio/plugins/bmp/package.html b/awt/javax/imageio/plugins/bmp/package.html new file mode 100644 index 0000000..9494a10 --- /dev/null +++ b/awt/javax/imageio/plugins/bmp/package.html @@ -0,0 +1,8 @@ +<html> + <body> + <p> + This package contains auxiliary classes for the built-in BMP image plug-in. + </p> + @since Android 1.0 + </body> +</html> diff --git a/awt/javax/imageio/plugins/jpeg/JPEGHuffmanTable.java b/awt/javax/imageio/plugins/jpeg/JPEGHuffmanTable.java index 398c960..67b504b 100644 --- a/awt/javax/imageio/plugins/jpeg/JPEGHuffmanTable.java +++ b/awt/javax/imageio/plugins/jpeg/JPEGHuffmanTable.java @@ -18,82 +18,90 @@ package javax.imageio.plugins.jpeg; /** - * The JPEGHuffmanTable class represents a single JPEG Huffman table. - * It contains the standard tables from the JPEG specification. + * The JPEGHuffmanTable class represents a single JPEG Huffman table. It + * contains the standard tables from the JPEG specification. + * + * @since Android 1.0 */ public class JPEGHuffmanTable { - - /** The standard DC luminance Huffman table . */ - public static final JPEGHuffmanTable StdDCLuminance = new JPEGHuffmanTable( - new short[] {0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0}, - new short[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0x0A, 0x0B}, - false - ); - - /** The standard DC chrominance Huffman table. */ - public static final JPEGHuffmanTable StdDCChrominance = new JPEGHuffmanTable( - new short[] {0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, - new short[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0x0A, 0x0B}, - false - ); - - /** The standard AC luminance Huffman table. */ - public static final JPEGHuffmanTable StdACLuminance = new JPEGHuffmanTable( - new short[] {0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 0x7D}, - new short[] { - 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06, - 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xA1, 0x08, - 0x23, 0x42, 0xB1, 0xC1, 0x15, 0x52, 0xD1, 0xF0, 0x24, 0x33, 0x62, 0x72, - 0x82, 0x09, 0x0A, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2A, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45, - 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, - 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7A, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, - 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, - 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, - 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, - 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE1, 0xE2, - 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF1, 0xF2, 0xF3, 0xF4, - 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA - }, - false - ); - - /** - * The standard AC chrominance Huffman table. */ - public static final JPEGHuffmanTable StdACChrominance = new JPEGHuffmanTable( - new short[] {0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 0x77}, - new short[] { - 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, - 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, - 0xA1, 0xB1, 0xC1, 0x09, 0x23, 0x33, 0x52, 0xF0, 0x15, 0x62, 0x72, 0xD1, - 0x0A, 0x16, 0x24, 0x34, 0xE1, 0x25, 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26, - 0x27, 0x28, 0x29, 0x2A, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, - 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, - 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, - 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, - 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, - 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, - 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, - 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF2, 0xF3, 0xF4, - 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA - }, - false - ); - - /** The lengths. */ + + /** + * The standard DC luminance Huffman table . + */ + public static final JPEGHuffmanTable StdDCLuminance = new JPEGHuffmanTable(new short[] { + 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 + }, new short[] { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0x0A, 0x0B + }, false); + + /** + * The standard DC chrominance Huffman table. + */ + public static final JPEGHuffmanTable StdDCChrominance = new JPEGHuffmanTable(new short[] { + 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 + }, new short[] { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0x0A, 0x0B + }, false); + + /** + * The standard AC luminance Huffman table. + */ + public static final JPEGHuffmanTable StdACLuminance = new JPEGHuffmanTable(new short[] { + 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 0x7D + }, new short[] { + 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, + 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xA1, 0x08, 0x23, 0x42, 0xB1, 0xC1, + 0x15, 0x52, 0xD1, 0xF0, 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0A, 0x16, 0x17, 0x18, + 0x19, 0x1A, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, + 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, 0x75, + 0x76, 0x77, 0x78, 0x79, 0x7A, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x92, + 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, + 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, + 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, + 0xD9, 0xDA, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF1, 0xF2, + 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA + }, false); + + /** + * The standard AC chrominance Huffman table. + */ + public static final JPEGHuffmanTable StdACChrominance = new JPEGHuffmanTable(new short[] { + 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 0x77 + }, new short[] { + 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, + 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, 0xA1, 0xB1, 0xC1, 0x09, + 0x23, 0x33, 0x52, 0xF0, 0x15, 0x62, 0x72, 0xD1, 0x0A, 0x16, 0x24, 0x34, 0xE1, 0x25, + 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x35, 0x36, 0x37, 0x38, + 0x39, 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, + 0x57, 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, + 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, + 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, + 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, + 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, + 0xD7, 0xD8, 0xD9, 0xDA, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF2, + 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA + }, false); + + /** + * The lengths. + */ private short lengths[]; - - /** The values. */ + + /** + * The values. + */ private short values[]; /** * Instantiates a new jPEG huffman table. * - * @param lengths the lengths - * @param values the values - * @param copy the copy + * @param lengths + * the lengths + * @param values + * the values + * @param copy + * the copy */ JPEGHuffmanTable(short[] lengths, short[] values, boolean copy) { // Construction of standard tables without checks @@ -106,9 +114,11 @@ public class JPEGHuffmanTable { /** * Instantiates a new JPEGHuffmanTable. * - * @param lengths the array of shorts lengths. - * @param values the array of shorts containing - * the values in order of increasing code length. + * @param lengths + * the array of shorts lengths. + * @param values + * the array of shorts containing the values in order of + * increasing code length. */ public JPEGHuffmanTable(short[] lengths, short[] values) { if (lengths == null) { @@ -145,8 +155,8 @@ public class JPEGHuffmanTable { /** * Gets an array of lengths in the Huffman table. * - * @return the array of short values representing the - * length values in the Huffman table. + * @return the array of short values representing the length values in the + * Huffman table. */ public short[] getLengths() { short newLengths[] = new short[lengths.length]; @@ -155,8 +165,7 @@ public class JPEGHuffmanTable { } /** - * Gets an array of values represented by increasing length of - * their codes. + * Gets an array of values represented by increasing length of their codes. * * @return the array of values. */ @@ -169,8 +178,10 @@ public class JPEGHuffmanTable { /** * Check huffman table. * - * @param lengths the lengths - * @param values the values + * @param lengths + * the lengths. + * @param values + * the values. */ private static void checkHuffmanTable(short[] lengths, short[] values) { int numLeaves = 0; @@ -179,13 +190,15 @@ public class JPEGHuffmanTable { numLeaves += length; possibleLeaves -= length; if (possibleLeaves < 0) { - throw new IllegalArgumentException("Invalid Huffman table provided, lengths are incorrect."); + throw new IllegalArgumentException( + "Invalid Huffman table provided, lengths are incorrect."); } possibleLeaves <<= 1; } if (values.length != numLeaves) { - throw new IllegalArgumentException("Invalid Huffman table provided, sum of lengths != values."); + throw new IllegalArgumentException( + "Invalid Huffman table provided, sum of lengths != values."); } } diff --git a/awt/javax/imageio/plugins/jpeg/JPEGImageReadParam.java b/awt/javax/imageio/plugins/jpeg/JPEGImageReadParam.java index dd08d51..2f3a9a8 100644 --- a/awt/javax/imageio/plugins/jpeg/JPEGImageReadParam.java +++ b/awt/javax/imageio/plugins/jpeg/JPEGImageReadParam.java @@ -20,18 +20,26 @@ package javax.imageio.plugins.jpeg; import javax.imageio.ImageReadParam; /** - * The JPEGImageReadParam class provides functionality to set Huffman tables - * and quantization tables when using the JPEG reader plug-in. + * The JPEGImageReadParam class provides functionality to set Huffman tables and + * quantization tables when using the JPEG reader plug-in. + * + * @since Android 1.0 */ public class JPEGImageReadParam extends ImageReadParam { - - /** The q tables. */ + + /** + * The q tables. + */ private JPEGQTable qTables[]; - - /** The dc huffman tables. */ + + /** + * The dc huffman tables. + */ private JPEGHuffmanTable dcHuffmanTables[]; - - /** The ac huffman tables. */ + + /** + * The ac huffman tables. + */ private JPEGHuffmanTable acHuffmanTables[]; /** @@ -43,29 +51,28 @@ public class JPEGImageReadParam extends ImageReadParam { /** * Returns true if tables are set, false otherwise. * - * @return true if tables are set, false otherwise. + * @return true, if tables are set, false otherwise. */ public boolean areTablesSet() { return qTables != null; } /** - * Sets the quantization and Huffman tables for using in - * decoding streams. + * Sets the quantization and Huffman tables for using in decoding streams. * - * @param qTables the quantization tables. - * @param DCHuffmanTables the standart DC Huffman tables. - * @param ACHuffmanTables the standart AC huffman tables. + * @param qTables + * the quantization tables. + * @param DCHuffmanTables + * the standart DC Huffman tables. + * @param ACHuffmanTables + * the standart AC huffman tables. */ - public void setDecodeTables( - JPEGQTable[] qTables, - JPEGHuffmanTable[] DCHuffmanTables, - JPEGHuffmanTable[] ACHuffmanTables - ) { + public void setDecodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, + JPEGHuffmanTable[] ACHuffmanTables) { if (qTables == null || DCHuffmanTables == null || ACHuffmanTables == null) { throw new IllegalArgumentException("Invalid JPEG table arrays"); } - if(DCHuffmanTables.length != ACHuffmanTables.length) { + if (DCHuffmanTables.length != ACHuffmanTables.length) { throw new IllegalArgumentException("Invalid JPEG table arrays"); } if (qTables.length > 4 || DCHuffmanTables.length > 4) { @@ -112,5 +119,5 @@ public class JPEGImageReadParam extends ImageReadParam { */ public JPEGHuffmanTable[] getACHuffmanTables() { return acHuffmanTables == null ? null : acHuffmanTables.clone(); - } + } } diff --git a/awt/javax/imageio/plugins/jpeg/JPEGImageWriteParam.java b/awt/javax/imageio/plugins/jpeg/JPEGImageWriteParam.java index 34a3cd9..b979911 100644 --- a/awt/javax/imageio/plugins/jpeg/JPEGImageWriteParam.java +++ b/awt/javax/imageio/plugins/jpeg/JPEGImageWriteParam.java @@ -23,38 +23,52 @@ import javax.imageio.ImageWriteParam; import java.util.Locale; /** - * The JPEGImageWriteParam class allows to set JPEG Huffman tables - * and quantization when using the JPEG writer plug-in. + * The JPEGImageWriteParam class allows to set JPEG Huffman tables and + * quantization when using the JPEG writer plug-in. + * + * @since Android 1.0 */ public class JPEGImageWriteParam extends ImageWriteParam { - - /** The Constant COMP_QUALITY_VALUES. */ - private static final float[] COMP_QUALITY_VALUES = {0.05f, 0.75f, 0.95f}; - - /** The Constant COMP_QUALITY_DESCRIPTIONS. */ + + /** + * The Constant COMP_QUALITY_VALUES. + */ + private static final float[] COMP_QUALITY_VALUES = { + 0.05f, 0.75f, 0.95f + }; + + /** + * The Constant COMP_QUALITY_DESCRIPTIONS. + */ private static final String[] COMP_QUALITY_DESCRIPTIONS = { - "Minimum useful", - "Visually lossless", - "Maximum useful" + "Minimum useful", "Visually lossless", "Maximum useful" }; - /** The q tables. */ + /** + * The q tables. + */ private JPEGQTable[] qTables; - - /** The dc huffman tables. */ + + /** + * The dc huffman tables. + */ private JPEGHuffmanTable[] dcHuffmanTables; - - /** The ac huffman tables. */ + + /** + * The ac huffman tables. + */ private JPEGHuffmanTable[] acHuffmanTables; - /** The optimize huffman tables. */ + /** + * The optimize huffman tables. + */ private boolean optimizeHuffmanTables; /** - * Instantiates a new JPEGImageWriteParam object with - * the specified Locale. + * Instantiates a new JPEGImageWriteParam object with the specified Locale. * - * @param locale the Locale. + * @param locale + * the Locale. */ public JPEGImageWriteParam(Locale locale) { super(locale); @@ -63,37 +77,38 @@ public class JPEGImageWriteParam extends ImageWriteParam { progressiveMode = ImageWriteParam.MODE_DISABLED; canWriteCompressed = true; - compressionTypes = new String[]{"JPEG"}; - compressionType = compressionTypes[0]; + compressionTypes = new String[] { + "JPEG" + }; + compressionType = compressionTypes[0]; compressionQuality = JPEGConsts.DEFAULT_JPEG_COMPRESSION_QUALITY; } /** * Returns true if tables are set, false otherwise. * - * @return true if tables are set, false otherwise. + * @return true, if tables are set, false otherwise. */ public boolean areTablesSet() { return qTables != null; } /** - * Sets the quantization and Huffman tables for using in - * encoding streams. + * Sets the quantization and Huffman tables for using in encoding streams. * - * @param qTables the quantization tables. - * @param DCHuffmanTables the standart DC Huffman tables. - * @param ACHuffmanTables the standart AC huffman tables. + * @param qTables + * the quantization tables. + * @param DCHuffmanTables + * the standart DC Huffman tables. + * @param ACHuffmanTables + * the standart AC huffman tables. */ - public void setEncodeTables( - JPEGQTable[] qTables, - JPEGHuffmanTable[] DCHuffmanTables, - JPEGHuffmanTable[] ACHuffmanTables - ) { + public void setEncodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, + JPEGHuffmanTable[] ACHuffmanTables) { if (qTables == null || DCHuffmanTables == null || ACHuffmanTables == null) { throw new IllegalArgumentException("Invalid JPEG table arrays"); } - if(DCHuffmanTables.length != ACHuffmanTables.length) { + if (DCHuffmanTables.length != ACHuffmanTables.length) { throw new IllegalArgumentException("Invalid JPEG table arrays"); } if (qTables.length > 4 || DCHuffmanTables.length > 4) { @@ -155,21 +170,22 @@ public class JPEGImageWriteParam extends ImageWriteParam { } /** - * Sets the flag indicated that the writer will generate optimized - * Huffman tables for the image as part of the writing process. + * Sets the flag indicated that the writer will generate optimized Huffman + * tables for the image as part of the writing process. * - * @param optimize the flag of optimizing huffman tables. + * @param optimize + * the flag of optimizing huffman tables. */ public void setOptimizeHuffmanTables(boolean optimize) { optimizeHuffmanTables = optimize; } /** - * Returns true if the writer generates optimized Huffman tables, - * false otherwise. + * Returns true if the writer generates optimized Huffman tables, false + * otherwise. * - * @return the true if the writer generates optimized Huffman tables, - * false otherwise. + * @return true, if the writer generates optimized Huffman tables, false + * otherwise. */ public boolean getOptimizeHuffmanTables() { return optimizeHuffmanTables; diff --git a/awt/javax/imageio/plugins/jpeg/JPEGQTable.java b/awt/javax/imageio/plugins/jpeg/JPEGQTable.java index 0c5b37e..3461d46 100644 --- a/awt/javax/imageio/plugins/jpeg/JPEGQTable.java +++ b/awt/javax/imageio/plugins/jpeg/JPEGQTable.java @@ -18,88 +18,92 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio.plugins.jpeg; /** - * The JPEGQTable class represents a single JPEG quantization table - * and provides for the standard tables taken from the JPEG specification. + * The JPEGQTable class represents a single JPEG quantization table and provides + * for the standard tables taken from the JPEG specification. + * + * @since Android 1.0 */ public class JPEGQTable { - /** The Constant SIZE. */ + /** + * The Constant SIZE. + */ private final static int SIZE = 64; - - /** The Constant BASELINE_MAX. */ + + /** + * The Constant BASELINE_MAX. + */ private final static int BASELINE_MAX = 255; - - /** The Constant MAX. */ - private final static int MAX = 32767; + /** + * The Constant MAX. + */ + private final static int MAX = 32767; - /** The table. */ + /** + * The table. + */ private int[] theTable; /* - * K1 & K2 tables can be found in the JPEG format specification - * at http://www.w3.org/Graphics/JPEG/itu-t81.pdf + * K1 & K2 tables can be found in the JPEG format specification at + * http://www.w3.org/Graphics/JPEG/itu-t81.pdf */ - /** The Constant K1LumTable. */ + /** + * The Constant K1LumTable. + */ private static final int[] K1LumTable = new int[] { - 16, 11, 10, 16, 24, 40, 51, 61, - 12, 12, 14, 19, 26, 58, 60, 55, - 14, 13, 16, 24, 40, 57, 69, 56, - 14, 17, 22, 29, 51, 87, 80, 62, - 18, 22, 37, 56, 68, 109, 103, 77, - 24, 35, 55, 64, 81, 104, 113, 92, - 49, 64, 78, 87, 103, 121, 120, 101, - 72, 92, 95, 98, 112, 100, 103, 99 + 16, 11, 10, 16, 24, 40, 51, 61, 12, 12, 14, 19, 26, 58, 60, 55, 14, 13, 16, 24, 40, 57, + 69, 56, 14, 17, 22, 29, 51, 87, 80, 62, 18, 22, 37, 56, 68, 109, 103, 77, 24, 35, 55, + 64, 81, 104, 113, 92, 49, 64, 78, 87, 103, 121, 120, 101, 72, 92, 95, 98, 112, 100, + 103, 99 }; - /** The Constant K2ChrTable. */ + /** + * The Constant K2ChrTable. + */ private static final int[] K2ChrTable = new int[] { - 17, 18, 24, 47, 99, 99, 99, 99, - 18, 21, 26, 66, 99, 99, 99, 99, - 24, 26, 56, 99, 99, 99, 99, 99, - 47, 66, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99 + 17, 18, 24, 47, 99, 99, 99, 99, 18, 21, 26, 66, 99, 99, 99, 99, 24, 26, 56, 99, 99, 99, + 99, 99, 47, 66, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 }; - /** - * The K1Luminance indicates standart table K.1 from JPEG - * specification and produces "good" quality output. + /** + * The K1Luminance indicates standard table K.1 from JPEG specification and + * produces "good" quality output. */ public static final JPEGQTable K1Luminance = new JPEGQTable(K1LumTable); - - /** - * The K1Div2Luminance indicates K.1 table from JPEG - * specification with all elements divided by 2 and produces - * "very good" quality output. + + /** + * The K1Div2Luminance indicates K.1 table from JPEG specification with all + * elements divided by 2 and produces "very good" quality output. */ public static final JPEGQTable K1Div2Luminance = K1Luminance.getScaledInstance(0.5f, true); - - /** - * The K2Chrominance indicates K.2 table from JPEG - * specification and produces "good" quality output. + + /** + * The K2Chrominance indicates K.2 table from JPEG specification and + * produces "good" quality output. */ public static final JPEGQTable K2Chrominance = new JPEGQTable(K2ChrTable); - - /** + + /** * The Constant K2Div2Chrominance indicates K.2 table from JPEG - * specification with all elements divided by 2 and produces - * "very good" quality output. + * specification with all elements divided by 2 and produces "very good" + * quality output. */ public static final JPEGQTable K2Div2Chrominance = K2Chrominance.getScaledInstance(0.5f, true);; - /** - * Instantiates a new JPEGQTable from the array, which - * should contain 64 elements in natural order. + * Instantiates a new JPEGQTable from the array, which should contain 64 + * elements in natural order. * - * @param table the quantization table. + * @param table + * the quantization table. */ public JPEGQTable(int[] table) { if (table == null) { @@ -112,23 +116,22 @@ public class JPEGQTable { } /** - * Gets the current quantization table as an array of int values. + * Gets the current quantization table as an array of integer values. * - * @return the current quantization table as an array of int values. + * @return the current quantization table as an array of integer values. */ public int[] getTable() { return theTable.clone(); } /** - * Gets the scaled instance as quantization table where - * the values are multiplied by the scaleFactor and then clamped - * if forceBaseline is true. - * - * @param scaleFactor the scale factor of table. - * @param forceBaseline the force baseline flag, the values - * should be clamped if true. + * Gets the scaled instance as quantization table where the values are + * multiplied by the scaleFactor and then clamped if forceBaseline is true. * + * @param scaleFactor + * the scale factor of table. + * @param forceBaseline + * the force baseline flag, the values should be clamped if true. * @return the new quantization table. */ public JPEGQTable getScaledInstance(float scaleFactor, boolean forceBaseline) { @@ -156,7 +159,7 @@ public class JPEGQTable { */ @Override public String toString() { - //-- TODO more informative info + // -- TODO more informative info return "JPEGQTable"; } } diff --git a/awt/javax/imageio/plugins/jpeg/package.html b/awt/javax/imageio/plugins/jpeg/package.html new file mode 100644 index 0000000..14575c4 --- /dev/null +++ b/awt/javax/imageio/plugins/jpeg/package.html @@ -0,0 +1,8 @@ +<html> + <body> + <p> + This package contains auxiliary classes for the built-in JPEG image plug-in. + </p> + @since Android 1.0 + </body> +</html> diff --git a/awt/javax/imageio/spi/IIORegistry.java b/awt/javax/imageio/spi/IIORegistry.java index 3c1c989..01ddeaa 100644 --- a/awt/javax/imageio/spi/IIORegistry.java +++ b/awt/javax/imageio/spi/IIORegistry.java @@ -18,6 +18,7 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio.spi; import java.util.Arrays; @@ -39,37 +40,41 @@ import org.apache.harmony.x.imageio.spi.RAFIOSSpi; */ /** - * The IIORegistry class registers service provider instances - * (SPI). Service provider instances are recognized by specific - * meta-information in the JAR files containing them. The JAR - * files with SPI classes are loaded from the application class - * path. + * The IIORegistry class registers service provider instances (SPI). Service + * provider instances are recognized by specific meta-information in the JAR + * files containing them. The JAR files with SPI classes are loaded from the + * application class path. + * + * @since Android 1.0 */ public final class IIORegistry extends ServiceRegistry { - /** The instance. */ + /** + * The instance. + */ private static IIORegistry instance; - /** The Constant CATEGORIES. */ + /** + * The Constant CATEGORIES. + */ private static final Class[] CATEGORIES = new Class[] { - javax.imageio.spi.ImageWriterSpi.class, - javax.imageio.spi.ImageReaderSpi.class, - javax.imageio.spi.ImageInputStreamSpi.class, - //javax.imageio.spi.ImageTranscoderSpi.class, - javax.imageio.spi.ImageOutputStreamSpi.class + javax.imageio.spi.ImageWriterSpi.class, javax.imageio.spi.ImageReaderSpi.class, + javax.imageio.spi.ImageInputStreamSpi.class, + // javax.imageio.spi.ImageTranscoderSpi.class, + javax.imageio.spi.ImageOutputStreamSpi.class }; /** - * Instantiates a new iIO registry. + * Instantiates a new IIO registry. */ private IIORegistry() { - super(Arrays.<Class<?>>asList(CATEGORIES).iterator()); + super(Arrays.<Class<?>> asList(CATEGORIES).iterator()); registerBuiltinSpis(); registerApplicationClasspathSpis(); } /** - * Register builtin spis. + * Register built-in SPIs. */ private void registerBuiltinSpis() { registerServiceProvider(new JPEGImageWriterSpi()); @@ -80,9 +85,9 @@ public final class IIORegistry extends ServiceRegistry { registerServiceProvider(new FileIISSpi()); registerServiceProvider(new RAFIOSSpi()); registerServiceProvider(new RAFIISSpi()); - registerServiceProvider(new OutputStreamIOSSpi()); + registerServiceProvider(new OutputStreamIOSSpi()); registerServiceProvider(new InputStreamIISSpi()); - //-- TODO implement + // -- TODO implement } /** @@ -91,7 +96,8 @@ public final class IIORegistry extends ServiceRegistry { * @return the default IIORegistry instance. */ public static IIORegistry getDefaultInstance() { - // TODO implement own instance for each ThreadGroup (see also ThreadLocal) + // TODO implement own instance for each ThreadGroup (see also + // ThreadLocal) synchronized (IIORegistry.class) { if (instance == null) { instance = new IIORegistry(); @@ -101,10 +107,9 @@ public final class IIORegistry extends ServiceRegistry { } /** - * Registers all service providers from the application class - * path. + * Registers all service providers from the application class path. */ public void registerApplicationClasspathSpis() { - //-- TODO implement for non-builtin plugins + // -- TODO implement for non-builtin plugins } } diff --git a/awt/javax/imageio/spi/IIOServiceProvider.java b/awt/javax/imageio/spi/IIOServiceProvider.java index f5873bf..e947677 100644 --- a/awt/javax/imageio/spi/IIOServiceProvider.java +++ b/awt/javax/imageio/spi/IIOServiceProvider.java @@ -18,27 +18,36 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio.spi; import java.util.Locale; /** - * The IIOServiceProvider abstract class provides base functionality - * for imageio service provider interfaces (SPIs). + * The IIOServiceProvider abstract class provides base functionality for ImageIO + * service provider interfaces (SPIs). + * + * @since Android 1.0 */ public abstract class IIOServiceProvider implements RegisterableService { - /** The vendor name of this service provider. */ + /** + * The vendor name of this service provider. + */ protected String vendorName; - - /** The version of this service provider. */ + + /** + * The version of this service provider. + */ protected String version; /** * Instantiates a new IIOServiceProvider. * - * @param vendorName the vendor name of service provider. - * @param version the version of service provider. + * @param vendorName + * the vendor name of service provider. + * @param version + * the version of service provider. */ public IIOServiceProvider(String vendorName, String version) { if (vendorName == null) { @@ -85,12 +94,11 @@ public abstract class IIOServiceProvider implements RegisterableService { } /** - * Gets a description of this service provider. - * The result string should be localized for the specified - * Locale. - * - * @param locale the specified Locale. + * Gets a description of this service provider. The result string should be + * localized for the specified Locale. * + * @param locale + * the specified Locale. * @return the description of this service provider. */ public abstract String getDescription(Locale locale); diff --git a/awt/javax/imageio/spi/ImageInputStreamSpi.java b/awt/javax/imageio/spi/ImageInputStreamSpi.java index 47d210a..fc859a8 100644 --- a/awt/javax/imageio/spi/ImageInputStreamSpi.java +++ b/awt/javax/imageio/spi/ImageInputStreamSpi.java @@ -18,6 +18,7 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio.spi; import java.io.File; @@ -25,13 +26,16 @@ import java.io.IOException; import javax.imageio.stream.ImageInputStream; /** - * The ImageInputStreamSpi abstract class is a service provider - * interface (SPI) for ImageInputStreams. + * The ImageInputStreamSpi abstract class is a service provider interface (SPI) + * for ImageInputStreams. + * + * @since Android 1.0 */ -public abstract class ImageInputStreamSpi extends IIOServiceProvider implements - RegisterableService { - - /** The input class. */ +public abstract class ImageInputStreamSpi extends IIOServiceProvider implements RegisterableService { + + /** + * The input class. + */ protected Class<?> inputClass; /** @@ -44,9 +48,12 @@ public abstract class ImageInputStreamSpi extends IIOServiceProvider implements /** * Instantiates a new ImageInputStreamSpi. * - * @param vendorName the vendor name. - * @param version the version. - * @param inputClass the input class. + * @param vendorName + * the vendor name. + * @param version + * the version. + * @param inputClass + * the input class. */ public ImageInputStreamSpi(String vendorName, String version, Class<?> inputClass) { super(vendorName, version); @@ -54,8 +61,8 @@ public abstract class ImageInputStreamSpi extends IIOServiceProvider implements } /** - * Gets an input Class object that represents class or - * interface that must be implemented by an input source. + * Gets an input Class object that represents class or interface that must + * be implemented by an input source. * * @return the input class. */ @@ -64,61 +71,59 @@ public abstract class ImageInputStreamSpi extends IIOServiceProvider implements } /** - * Returns true if the ImageInputStream can use a cache - * file. If this method returns false, the value of the - * useCache parameter of createInputStreamInstance will - * be ignored. The default implementation returns false. + * Returns true if the ImageInputStream can use a cache file. If this method + * returns false, the value of the useCache parameter of + * createInputStreamInstance will be ignored. The default implementation + * returns false. * - * @return true if the ImageInputStream can use a cache - * file, false otherwise. + * @return true, if the ImageInputStream can use a cache file, false + * otherwise. */ public boolean canUseCacheFile() { - return false; //-- def + return false; // -- def } /** - * Returns true if the ImageInputStream implementation - * requires the use of a cache file. The default implementation - * returns false. + * Returns true if the ImageInputStream implementation requires the use of a + * cache file. The default implementation returns false. * - * @return true if the ImageInputStream implementation - * requires the use of a cache file, false otherwise. + * @return true, if the ImageInputStream implementation requires the use of + * a cache file, false otherwise. */ public boolean needsCacheFile() { return false; // def } /** - * Creates the ImageInputStream associated with this - * service provider. The input object should - * be an instance of the class returned by th getInputClass - * method. This method uses the specified directory - * for the cache file if the useCache parameter is true. - * - * @param input the input Object. - * @param useCache the flag indicating if a cache file - * is needed or not. - * @param cacheDir the cache directory. + * Creates the ImageInputStream associated with this service provider. The + * input object should be an instance of the class returned by the + * getInputClass method. This method uses the specified directory for the + * cache file if the useCache parameter is true. * + * @param input + * the input Object. + * @param useCache + * the flag indicating if a cache file is needed or not. + * @param cacheDir + * the cache directory. * @return the ImageInputStream. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public abstract ImageInputStream createInputStreamInstance(Object input, boolean useCache, File cacheDir) throws IOException; /** - * Creates the ImageInputStream associated with this - * service provider. The input object should - * be an instance of the class returned by getInputClass - * method. This method uses the default system directory - * for the cache file, if it is needed. - * - * @param input the input Object. + * Creates the ImageInputStream associated with this service provider. The + * input object should be an instance of the class returned by getInputClass + * method. This method uses the default system directory for the cache file, + * if it is needed. * + * @param input + * the input Object. * @return the ImageInputStream. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public ImageInputStream createInputStreamInstance(Object input) throws IOException { return createInputStreamInstance(input, true, null); diff --git a/awt/javax/imageio/spi/ImageOutputStreamSpi.java b/awt/javax/imageio/spi/ImageOutputStreamSpi.java index d45e24c..b7a9a5c 100644 --- a/awt/javax/imageio/spi/ImageOutputStreamSpi.java +++ b/awt/javax/imageio/spi/ImageOutputStreamSpi.java @@ -18,6 +18,7 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio.spi; import javax.imageio.stream.ImageOutputStream; @@ -25,13 +26,17 @@ import java.io.IOException; import java.io.File; /** - * The ImageOutputStreamSpi abstract class is a service provider - * interface (SPI) for ImageOutputStreams. + * The ImageOutputStreamSpi abstract class is a service provider interface (SPI) + * for ImageOutputStreams. + * + * @since Android 1.0 */ public abstract class ImageOutputStreamSpi extends IIOServiceProvider implements RegisterableService { - - /** The output class. */ + + /** + * The output class. + */ protected Class<?> outputClass; /** @@ -44,9 +49,12 @@ public abstract class ImageOutputStreamSpi extends IIOServiceProvider implements /** * Instantiates a new ImageOutputStreamSpi. * - * @param vendorName the vendor name. - * @param version the version. - * @param outputClass the output class. + * @param vendorName + * the vendor name. + * @param version + * the version. + * @param outputClass + * the output class. */ public ImageOutputStreamSpi(String vendorName, String version, Class<?> outputClass) { super(vendorName, version); @@ -54,8 +62,8 @@ public abstract class ImageOutputStreamSpi extends IIOServiceProvider implements } /** - * Gets an output Class object that represents the class or - * interface that must be implemented by an output source. + * Gets an output Class object that represents the class or interface that + * must be implemented by an output source. * * @return the output class. */ @@ -64,63 +72,61 @@ public abstract class ImageOutputStreamSpi extends IIOServiceProvider implements } /** - * Returns true if the ImageOutputStream can use a cache - * file. If this method returns false, the value of the - * useCache parameter of createOutputStreamInstance will - * be ignored. The default implementation returns false. + * Returns true if the ImageOutputStream can use a cache file. If this + * method returns false, the value of the useCache parameter of + * createOutputStreamInstance will be ignored. The default implementation + * returns false. * - * @return true if the ImageOutputStream can use a cache - * file, false otherwise. + * @return true, if the ImageOutputStream can use a cache file, false + * otherwise. */ public boolean canUseCacheFile() { return false; // def } /** - * Returns true if the ImageOutputStream implementation - * requires the use of a cache file. The default implementation - * returns false. + * Returns true if the ImageOutputStream implementation requires the use of + * a cache file. The default implementation returns false. * - * @return true if the ImageOutputStream implementation - * requires the use of a cache file, false otherwise. + * @return true, if the ImageOutputStream implementation requires the use of + * a cache file, false otherwise. */ public boolean needsCacheFile() { return false; // def } /** - * Creates the ImageOutputStream associated with this - * service provider. The output object should - * be an instance of the class returned by getOutputClass - * method. This method uses the default system directory - * for the cache file, if it is needed. - * - * @param output the output Object. + * Creates the ImageOutputStream associated with this service provider. The + * output object should be an instance of the class returned by + * getOutputClass method. This method uses the default system directory for + * the cache file, if it is needed. * + * @param output + * the output Object. * @return the ImageOutputStream. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public ImageOutputStream createOutputStreamInstance(Object output) throws IOException { return createOutputStreamInstance(output, true, null); } /** - * Creates the ImageOutputStream associated with this - * service provider. The output object should - * be an instance of the class returned by getInputClass - * method. This method uses the specified directory - * for the cache file, if the useCache parameter is true. - * - * @param output the output Object. - * @param useCache the flag indicating if cache file - * is needed or not. - * @param cacheDir the cache directory. + * Creates the ImageOutputStream associated with this service provider. The + * output object should be an instance of the class returned by + * getInputClass method. This method uses the specified directory for the + * cache file, if the useCache parameter is true. * + * @param output + * the output Object. + * @param useCache + * the flag indicating if cache file is needed or not. + * @param cacheDir + * the cache directory. * @return the ImageOutputStream. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ - public abstract ImageOutputStream createOutputStreamInstance(Object output, - boolean useCache, File cacheDir) throws IOException; + public abstract ImageOutputStream createOutputStreamInstance(Object output, boolean useCache, + File cacheDir) throws IOException; } diff --git a/awt/javax/imageio/spi/ImageReaderSpi.java b/awt/javax/imageio/spi/ImageReaderSpi.java index 2e2484c..0528d25 100644 --- a/awt/javax/imageio/spi/ImageReaderSpi.java +++ b/awt/javax/imageio/spi/ImageReaderSpi.java @@ -18,6 +18,7 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio.spi; import javax.imageio.stream.ImageInputStream; @@ -25,20 +26,28 @@ import javax.imageio.ImageReader; import java.io.IOException; /** - * The ImageReaderSpi abstract class is a service provider - * interface (SPI) for ImageReaders. + * The ImageReaderSpi abstract class is a service provider interface (SPI) for + * ImageReaders. + * + * @since Android 1.0 */ public abstract class ImageReaderSpi extends ImageReaderWriterSpi { - /** - * The STANDARD_INPUT_TYPE contains ImageInputStream.class. + /** + * The STANDARD_INPUT_TYPE contains ImageInputStream.class. */ - public static final Class[] STANDARD_INPUT_TYPE = new Class[] {ImageInputStream.class}; + public static final Class[] STANDARD_INPUT_TYPE = new Class[] { + ImageInputStream.class + }; - /** The input types. */ + /** + * The input types. + */ protected Class[] inputTypes; - - /** The writer SPI names. */ + + /** + * The writer SPI names. + */ protected String[] writerSpiNames; /** @@ -51,49 +60,62 @@ public abstract class ImageReaderSpi extends ImageReaderWriterSpi { /** * Instantiates a new ImageReaderSpi. * - * @param vendorName the vendor name. - * @param version the version. - * @param names the format names. - * @param suffixes the array of strings representing the file suffixes. - * @param MIMETypes the an array of strings representing MIME types. - * @param pluginClassName the plugin class name. - * @param inputTypes the input types. - * @param writerSpiNames the array of strings with class names of all - * associated ImageWriters. - * @param supportsStandardStreamMetadataFormat the value indicating - * if stream metadata can be described by standart metadata format. - * @param nativeStreamMetadataFormatName the native stream metadata - * format name, returned by getNativeStreamMetadataFormatName. - * @param nativeStreamMetadataFormatClassName the native stream - * metadata format class name, returned by getNativeStreamMetadataFormat. - * @param extraStreamMetadataFormatNames the extra stream metadata - * format names, returned by getExtraStreamMetadataFormatNames. - * @param extraStreamMetadataFormatClassNames the extra stream metadata - * format class names, returned by getStreamMetadataFormat. - * @param supportsStandardImageMetadataFormat the value indicating - * if image metadata can be described by standart metadata format. - * @param nativeImageMetadataFormatName the native image metadata - * format name, returned by getNativeImageMetadataFormatName. - * @param nativeImageMetadataFormatClassName the native image - * metadata format class name, returned by getNativeImageMetadataFormat. - * @param extraImageMetadataFormatNames the extra image metadata - * format names, returned by getExtraImageMetadataFormatNames. - * @param extraImageMetadataFormatClassNames the extra image metadata - * format class names, returned by getImageMetadataFormat. + * @param vendorName + * the vendor name. + * @param version + * the version. + * @param names + * the format names. + * @param suffixes + * the array of strings representing the file suffixes. + * @param MIMETypes + * the an array of strings representing MIME types. + * @param pluginClassName + * the plug-in class name. + * @param inputTypes + * the input types. + * @param writerSpiNames + * the array of strings with class names of all associated + * ImageWriters. + * @param supportsStandardStreamMetadataFormat + * the value indicating if stream metadata can be described by + * standard metadata format. + * @param nativeStreamMetadataFormatName + * the native stream metadata format name, returned by + * getNativeStreamMetadataFormatName. + * @param nativeStreamMetadataFormatClassName + * the native stream metadata format class name, returned by + * getNativeStreamMetadataFormat. + * @param extraStreamMetadataFormatNames + * the extra stream metadata format names, returned by + * getExtraStreamMetadataFormatNames. + * @param extraStreamMetadataFormatClassNames + * the extra stream metadata format class names, returned by + * getStreamMetadataFormat. + * @param supportsStandardImageMetadataFormat + * the value indicating if image metadata can be described by + * standard metadata format. + * @param nativeImageMetadataFormatName + * the native image metadata format name, returned by + * getNativeImageMetadataFormatName. + * @param nativeImageMetadataFormatClassName + * the native image metadata format class name, returned by + * getNativeImageMetadataFormat. + * @param extraImageMetadataFormatNames + * the extra image metadata format names, returned by + * getExtraImageMetadataFormatNames. + * @param extraImageMetadataFormatClassNames + * the extra image metadata format class names, returned by + * getImageMetadataFormat. */ public ImageReaderSpi(String vendorName, String version, String[] names, String[] suffixes, - String[] MIMETypes, String pluginClassName, - Class[] inputTypes, String[] writerSpiNames, - boolean supportsStandardStreamMetadataFormat, - String nativeStreamMetadataFormatName, - String nativeStreamMetadataFormatClassName, - String[] extraStreamMetadataFormatNames, - String[] extraStreamMetadataFormatClassNames, - boolean supportsStandardImageMetadataFormat, - String nativeImageMetadataFormatName, - String nativeImageMetadataFormatClassName, - String[] extraImageMetadataFormatNames, - String[] extraImageMetadataFormatClassNames) { + String[] MIMETypes, String pluginClassName, Class[] inputTypes, + String[] writerSpiNames, boolean supportsStandardStreamMetadataFormat, + String nativeStreamMetadataFormatName, String nativeStreamMetadataFormatClassName, + String[] extraStreamMetadataFormatNames, String[] extraStreamMetadataFormatClassNames, + boolean supportsStandardImageMetadataFormat, String nativeImageMetadataFormatName, + String nativeImageMetadataFormatClassName, String[] extraImageMetadataFormatNames, + String[] extraImageMetadataFormatClassNames) { super(vendorName, version, names, suffixes, MIMETypes, pluginClassName, supportsStandardStreamMetadataFormat, nativeStreamMetadataFormatName, nativeStreamMetadataFormatClassName, extraStreamMetadataFormatNames, @@ -109,8 +131,8 @@ public abstract class ImageReaderSpi extends ImageReaderWriterSpi { } /** - * Gets an array of Class objects whose types can be used - * as input for this reader. + * Gets an array of Class objects whose types can be used as input for this + * reader. * * @return the input types. */ @@ -119,66 +141,62 @@ public abstract class ImageReaderSpi extends ImageReaderWriterSpi { } /** - * Returns true if the format of source object is - * supported by this reader. + * Returns true if the format of source object is supported by this reader. * - * @param source the source object to be decoded - * (for example an ImageInputStream). - * - * @return true if the format of source object is - * supported by this reader, false otherwise. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param source + * the source object to be decoded (for example an + * ImageInputStream). + * @return true, if the format of source object is supported by this reader, + * false otherwise. + * @throws IOException + * if an I/O exception has occurred. */ public abstract boolean canDecodeInput(Object source) throws IOException; /** - * Returns an instance of the ImageReader implementation for - * this service provider. + * Returns an instance of the ImageReader implementation for this service + * provider. * * @return the ImageReader. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public ImageReader createReaderInstance() throws IOException { return createReaderInstance(null); } /** - * Returns an instance of the ImageReader implementation for - * this service provider. - * - * @param extension the a plugin specific extension object, or null. + * Returns an instance of the ImageReader implementation for this service + * provider. * + * @param extension + * the a plug-in specific extension object, or null. * @return the ImageReader. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public abstract ImageReader createReaderInstance(Object extension) throws IOException; /** - * Checks whether or not the specified ImageReader object - * is an instance of the ImageReader associated with this - * service provider or not. - * - * @param reader the ImageReader. + * Checks whether or not the specified ImageReader object is an instance of + * the ImageReader associated with this service provider or not. * - * @return true, if the specified ImageReader object - * is an instance of the ImageReader associated with this - * service provider, false otherwise. + * @param reader + * the ImageReader. + * @return true, if the specified ImageReader object is an instance of the + * ImageReader associated with this service provider, false + * otherwise. */ public boolean isOwnReader(ImageReader reader) { throw new UnsupportedOperationException("Not supported yet"); } /** - * Gets an array of strings with names of the ImageWriterSpi - * classes that support the internal metadata representation - * used by the ImageReader of this service provider, or null if - * there are no such ImageWriters. + * Gets an array of strings with names of the ImageWriterSpi classes that + * support the internal metadata representation used by the ImageReader of + * this service provider, or null if there are no such ImageWriters. * - * @return an array of strings with names of the ImageWriterSpi - * classes. + * @return the array of strings with names of the ImageWriterSpi classes. */ public String[] getImageWriterSpiNames() { throw new UnsupportedOperationException("Not supported yet"); diff --git a/awt/javax/imageio/spi/ImageReaderWriterSpi.java b/awt/javax/imageio/spi/ImageReaderWriterSpi.java index b3c0f92..9ca08b5 100644 --- a/awt/javax/imageio/spi/ImageReaderWriterSpi.java +++ b/awt/javax/imageio/spi/ImageReaderWriterSpi.java @@ -18,6 +18,7 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio.spi; import org.apache.harmony.x.imageio.metadata.IIOMetadataUtils; @@ -25,97 +26,138 @@ import org.apache.harmony.x.imageio.metadata.IIOMetadataUtils; import javax.imageio.metadata.IIOMetadataFormat; /** - * The ImageReaderWriterSpi class is a superclass for the - * ImageReaderSpi and ImageWriterSpi SPIs. + * The ImageReaderWriterSpi class is a superclass for the ImageReaderSpi and + * ImageWriterSpi SPIs. + * + * @since Android 1.0 */ -public abstract class ImageReaderWriterSpi extends IIOServiceProvider - implements RegisterableService { +public abstract class ImageReaderWriterSpi extends IIOServiceProvider implements + RegisterableService { - /** The names. */ + /** + * The names. + */ protected String[] names; - - /** The suffixes. */ + + /** + * The suffixes. + */ protected String[] suffixes; - - /** The MIME types. */ + + /** + * The MIME types. + */ protected String[] MIMETypes; - - /** The plugin class name. */ + + /** + * The plug-in class name. + */ protected String pluginClassName; - - /** Whether the reader/writer supports standard stream metadata format. */ + + /** + * Whether the reader/writer supports standard stream metadata format. + */ protected boolean supportsStandardStreamMetadataFormat; - - /** The native stream metadata format name. */ + + /** + * The native stream metadata format name. + */ protected String nativeStreamMetadataFormatName; - - /** The native stream metadata format class name. */ + + /** + * The native stream metadata format class name. + */ protected String nativeStreamMetadataFormatClassName; - - /** The extra stream metadata format names. */ + + /** + * The extra stream metadata format names. + */ protected String[] extraStreamMetadataFormatNames; - - /** The extra stream metadata format class names. */ + + /** + * The extra stream metadata format class names. + */ protected String[] extraStreamMetadataFormatClassNames; - - /** Whether the reader/writer supports standard image metadata format. */ + + /** + * Whether the reader/writer supports standard image metadata format. + */ protected boolean supportsStandardImageMetadataFormat; - - /** The native image metadata format name. */ + + /** + * The native image metadata format name. + */ protected String nativeImageMetadataFormatName; - - /** The native image metadata format class name. */ + + /** + * The native image metadata format class name. + */ protected String nativeImageMetadataFormatClassName; - - /** The extra image metadata format names. */ + + /** + * The extra image metadata format names. + */ protected String[] extraImageMetadataFormatNames; - - /** The extra image metadata format class names. */ + + /** + * The extra image metadata format class names. + */ protected String[] extraImageMetadataFormatClassNames; /** * Instantiates a new ImageReaderWriterSpi. * - * @param vendorName the vendor name. - * @param version the version. - * @param names the format names. - * @param suffixes the array of strings representing the file suffixes. - * @param MIMETypes the an array of strings representing MIME types. - * @param pluginClassName the plugin class name. - * @param supportsStandardStreamMetadataFormat the value indicating - * if stream metadata can be described by standart metadata format. - * @param nativeStreamMetadataFormatName the native stream metadata - * format name, returned by getNativeStreamMetadataFormatName. - * @param nativeStreamMetadataFormatClassName the native stream - * metadata format class name, returned by getNativeStreamMetadataFormat. - * @param extraStreamMetadataFormatNames the extra stream metadata - * format names, returned by getExtraStreamMetadataFormatNames. - * @param extraStreamMetadataFormatClassNames the extra stream metadata - * format class names, returned by getStreamMetadataFormat. - * @param supportsStandardImageMetadataFormat the value indicating - * if image metadata can be described by standard metadata format. - * @param nativeImageMetadataFormatName the native image metadata - * format name, returned by getNativeImageMetadataFormatName. - * @param nativeImageMetadataFormatClassName the native image - * metadata format class name, returned by getNativeImageMetadataFormat. - * @param extraImageMetadataFormatNames the extra image metadata - * format names, returned by getExtraImageMetadataFormatNames. - * @param extraImageMetadataFormatClassNames the extra image metadata - * format class names, returned by getImageMetadataFormat. + * @param vendorName + * the vendor name. + * @param version + * the version. + * @param names + * the format names. + * @param suffixes + * the array of strings representing the file suffixes. + * @param MIMETypes + * the an array of strings representing MIME types. + * @param pluginClassName + * the plug-in class name. + * @param supportsStandardStreamMetadataFormat + * the value indicating if stream metadata can be described by + * standard metadata format. + * @param nativeStreamMetadataFormatName + * the native stream metadata format name, returned by + * getNativeStreamMetadataFormatName. + * @param nativeStreamMetadataFormatClassName + * the native stream metadata format class name, returned by + * getNativeStreamMetadataFormat. + * @param extraStreamMetadataFormatNames + * the extra stream metadata format names, returned by + * getExtraStreamMetadataFormatNames. + * @param extraStreamMetadataFormatClassNames + * the extra stream metadata format class names, returned by + * getStreamMetadataFormat. + * @param supportsStandardImageMetadataFormat + * the value indicating if image metadata can be described by + * standard metadata format. + * @param nativeImageMetadataFormatName + * the native image metadata format name, returned by + * getNativeImageMetadataFormatName. + * @param nativeImageMetadataFormatClassName + * the native image metadata format class name, returned by + * getNativeImageMetadataFormat. + * @param extraImageMetadataFormatNames + * the extra image metadata format names, returned by + * getExtraImageMetadataFormatNames. + * @param extraImageMetadataFormatClassNames + * the extra image metadata format class names, returned by + * getImageMetadataFormat. */ public ImageReaderWriterSpi(String vendorName, String version, String[] names, - String[] suffixes, String[] MIMETypes, - String pluginClassName, - boolean supportsStandardStreamMetadataFormat, - String nativeStreamMetadataFormatName, - String nativeStreamMetadataFormatClassName, - String[] extraStreamMetadataFormatNames, - String[] extraStreamMetadataFormatClassNames, - boolean supportsStandardImageMetadataFormat, - String nativeImageMetadataFormatName, - String nativeImageMetadataFormatClassName, - String[] extraImageMetadataFormatNames, - String[] extraImageMetadataFormatClassNames) { + String[] suffixes, String[] MIMETypes, String pluginClassName, + boolean supportsStandardStreamMetadataFormat, String nativeStreamMetadataFormatName, + String nativeStreamMetadataFormatClassName, String[] extraStreamMetadataFormatNames, + String[] extraStreamMetadataFormatClassNames, + boolean supportsStandardImageMetadataFormat, String nativeImageMetadataFormatName, + String nativeImageMetadataFormatClassName, String[] extraImageMetadataFormatNames, + String[] extraImageMetadataFormatClassNames) { super(vendorName, version); if (names == null || names.length == 0) { @@ -137,60 +179,54 @@ public abstract class ImageReaderWriterSpi extends IIOServiceProvider this.nativeStreamMetadataFormatName = nativeStreamMetadataFormatName; this.nativeStreamMetadataFormatClassName = nativeStreamMetadataFormatClassName; - this.extraStreamMetadataFormatNames = - extraStreamMetadataFormatNames == null ? - null : extraStreamMetadataFormatNames.clone(); + this.extraStreamMetadataFormatNames = extraStreamMetadataFormatNames == null ? null + : extraStreamMetadataFormatNames.clone(); - this.extraStreamMetadataFormatClassNames = - extraStreamMetadataFormatClassNames == null ? - null : extraStreamMetadataFormatClassNames.clone(); + this.extraStreamMetadataFormatClassNames = extraStreamMetadataFormatClassNames == null ? null + : extraStreamMetadataFormatClassNames.clone(); this.supportsStandardImageMetadataFormat = supportsStandardImageMetadataFormat; this.nativeImageMetadataFormatName = nativeImageMetadataFormatName; this.nativeImageMetadataFormatClassName = nativeImageMetadataFormatClassName; - this.extraImageMetadataFormatNames = - extraImageMetadataFormatNames == null ? - null : extraImageMetadataFormatNames.clone(); + this.extraImageMetadataFormatNames = extraImageMetadataFormatNames == null ? null + : extraImageMetadataFormatNames.clone(); - this.extraImageMetadataFormatClassNames = - extraImageMetadataFormatClassNames == null ? - null : extraImageMetadataFormatClassNames.clone(); + this.extraImageMetadataFormatClassNames = extraImageMetadataFormatClassNames == null ? null + : extraImageMetadataFormatClassNames.clone(); } /** * Instantiates a new ImageReaderWriterSpi. */ - public ImageReaderWriterSpi() {} + public ImageReaderWriterSpi() { + } /** - * Gets an array of strings representing names of the formats - * that can be used by the ImageReader - * or ImageWriter implementation associated with this service - * provider. + * Gets an array of strings representing names of the formats that can be + * used by the ImageReader or ImageWriter implementation associated with + * this service provider. * - * @return an array of supported format names. + * @return the array of supported format names. */ public String[] getFormatNames() { return names.clone(); } /** - * Gets an array of strings representing file suffixes - * associated with the formats that can be used by the - * ImageReader or ImageWriter implementation of this - * service provider. + * Gets an array of strings representing file suffixes associated with the + * formats that can be used by the ImageReader or ImageWriter implementation + * of this service provider. * - * @return an array of file suffixes. + * @return the array of file suffixes. */ public String[] getFileSuffixes() { return suffixes == null ? null : suffixes.clone(); } /** - * Gets an array of strings with the names of - * additional formats of the image metadata objects - * produced or consumed by this plug-in. + * Gets an array of strings with the names of additional formats of the + * image metadata objects produced or consumed by this plug-in. * * @return the array of extra image metadata format names. */ @@ -199,52 +235,49 @@ public abstract class ImageReaderWriterSpi extends IIOServiceProvider } /** - * Gets an array of strings with the names of - * additional formats of the stream metadata objects - * produced or consumed by this plug-in. + * Gets an array of strings with the names of additional formats of the + * stream metadata objects produced or consumed by this plug-in. * * @return the array of extra stream metadata format names. */ public String[] getExtraStreamMetadataFormatNames() { - return extraStreamMetadataFormatNames == null ? null : extraStreamMetadataFormatNames.clone(); + return extraStreamMetadataFormatNames == null ? null : extraStreamMetadataFormatNames + .clone(); } /** - * Gets an IIOMetadataFormat object for the specified image - * metadata format name. - * - * @param formatName the format name. + * Gets an IIOMetadataFormat object for the specified image metadata format + * name. * + * @param formatName + * the format name. * @return the IIOMetadataFormat, or null. */ public IIOMetadataFormat getImageMetadataFormat(String formatName) { - return IIOMetadataUtils.instantiateMetadataFormat( - formatName, supportsStandardImageMetadataFormat, - nativeImageMetadataFormatName, nativeImageMetadataFormatClassName, - extraImageMetadataFormatNames, extraImageMetadataFormatClassNames - ); + return IIOMetadataUtils.instantiateMetadataFormat(formatName, + supportsStandardImageMetadataFormat, nativeImageMetadataFormatName, + nativeImageMetadataFormatClassName, extraImageMetadataFormatNames, + extraImageMetadataFormatClassNames); } /** - * Gets an IIOMetadataFormat object for the specified stream - * metadata format name. - * - * @param formatName the format name. + * Gets an IIOMetadataFormat object for the specified stream metadata format + * name. * + * @param formatName + * the format name. * @return the IIOMetadataFormat, or null. */ public IIOMetadataFormat getStreamMetadataFormat(String formatName) { - return IIOMetadataUtils.instantiateMetadataFormat( - formatName, supportsStandardStreamMetadataFormat, - nativeStreamMetadataFormatName, nativeStreamMetadataFormatClassName, - extraStreamMetadataFormatNames, extraStreamMetadataFormatClassNames - ); + return IIOMetadataUtils.instantiateMetadataFormat(formatName, + supportsStandardStreamMetadataFormat, nativeStreamMetadataFormatName, + nativeStreamMetadataFormatClassName, extraStreamMetadataFormatNames, + extraStreamMetadataFormatClassNames); } /** - * Gets an array of strings representing the MIME types - * of the formats that are supported by the - * ImageReader or ImageWriter implementation of this + * Gets an array of strings representing the MIME types of the formats that + * are supported by the ImageReader or ImageWriter implementation of this * service provider. * * @return the array MIME types. @@ -254,32 +287,30 @@ public abstract class ImageReaderWriterSpi extends IIOServiceProvider } /** - * Gets the name of the native image metadata format for - * this reader/writer, which allows for lossless encoding - * or decoding of the image metadata with the format. + * Gets the name of the native image metadata format for this reader/writer, + * which allows for lossless encoding or decoding of the image metadata with + * the format. * - * @return the string with native image metadata format name, - * or null. + * @return the string with native image metadata format name, or null. */ public String getNativeImageMetadataFormatName() { return nativeImageMetadataFormatName; } /** - * Gets the name of the native stream metadata format for - * this reader/writer, which allows for lossless encoding - * or decoding of the stream metadata with the format. + * Gets the name of the native stream metadata format for this + * reader/writer, which allows for lossless encoding or decoding of the + * stream metadata with the format. * - * @return the string with native stream metadata format name, - * or null. + * @return the string with native stream metadata format name, or null. */ public String getNativeStreamMetadataFormatName() { return nativeStreamMetadataFormatName; } /** - * Gets the class name of the ImageReader - * or ImageWriter associated with this service provider. + * Gets the class name of the ImageReader or ImageWriter associated with + * this service provider. * * @return the class name. */ @@ -288,26 +319,24 @@ public abstract class ImageReaderWriterSpi extends IIOServiceProvider } /** - * Checks if the standard metadata format is supported - * by the getAsTree and setFromTree methods for the - * image metadata objects produced or consumed by this - * reader or writer. + * Checks if the standard metadata format is supported by the getAsTree and + * setFromTree methods for the image metadata objects produced or consumed + * by this reader or writer. * - * @return true, if standard image metadata format is - * supported, false otherwise. + * @return true, if standard image metadata format is supported, false + * otherwise. */ public boolean isStandardImageMetadataFormatSupported() { return supportsStandardImageMetadataFormat; } /** - * Checks if the standard metadata format is supported - * by the getAsTree and setFromTree methods for the - * stream metadata objects produced or consumed by this - * reader or writer. + * Checks if the standard metadata format is supported by the getAsTree and + * setFromTree methods for the stream metadata objects produced or consumed + * by this reader or writer. * - * @return true, if standard stream metadata format is - * supported, false otherwise. + * @return true, if standard stream metadata format is supported, false + * otherwise. */ public boolean isStandardStreamMetadataFormatSupported() { return supportsStandardStreamMetadataFormat; diff --git a/awt/javax/imageio/spi/ImageTranscoderSpi.java b/awt/javax/imageio/spi/ImageTranscoderSpi.java index 68c4024..742af19 100644 --- a/awt/javax/imageio/spi/ImageTranscoderSpi.java +++ b/awt/javax/imageio/spi/ImageTranscoderSpi.java @@ -18,16 +18,18 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio.spi; import javax.imageio.ImageTranscoder; /** - * The ImageTranscoderSpi class is a service provider interface (SPI) - * for ImageTranscoders. + * The ImageTranscoderSpi class is a service provider interface (SPI) for + * ImageTranscoders. + * + * @since Android 1.0 */ -public abstract class ImageTranscoderSpi extends IIOServiceProvider - implements RegisterableService { +public abstract class ImageTranscoderSpi extends IIOServiceProvider implements RegisterableService { /** * Instantiates a new ImageTranscoderSpi. @@ -36,37 +38,37 @@ public abstract class ImageTranscoderSpi extends IIOServiceProvider } /** - * Instantiates a new ImageTranscoderSpi with the specified - * vendor name and version. + * Instantiates a new ImageTranscoderSpi with the specified vendor name and + * version. * - * @param vendorName the vendor name. - * @param version the version. + * @param vendorName + * the vendor name. + * @param version + * the version. */ public ImageTranscoderSpi(String vendorName, String version) { super(vendorName, version); } /** - * Gets the class name of an ImageReaderSpi that - * produces IIOMetadata objects that can be used as - * input to this transcoder. + * Gets the class name of an ImageReaderSpi that produces IIOMetadata + * objects that can be used as input to this transcoder. * * @return the class name of an ImageReaderSpi. */ public abstract String getReaderServiceProviderName(); /** - * Gets the class name of an ImageWriterSpi that - * produces IIOMetadata objects that can be used as - * input to this transcoder. + * Gets the class name of an ImageWriterSpi that produces IIOMetadata + * objects that can be used as input to this transcoder. * * @return the class name of an ImageWriterSpi. */ public abstract String getWriterServiceProviderName(); /** - * Creates an instance of the ImageTranscoder associated - * with this service provider. + * Creates an instance of the ImageTranscoder associated with this service + * provider. * * @return the ImageTranscoder instance. */ diff --git a/awt/javax/imageio/spi/ImageWriterSpi.java b/awt/javax/imageio/spi/ImageWriterSpi.java index 979ef77..bf25455 100644 --- a/awt/javax/imageio/spi/ImageWriterSpi.java +++ b/awt/javax/imageio/spi/ImageWriterSpi.java @@ -18,6 +18,7 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio.spi; import javax.imageio.stream.ImageInputStream; @@ -27,18 +28,28 @@ import java.awt.image.RenderedImage; import java.io.IOException; /** - * The ImageWriterSpi abstract class is a service provider - * interface (SPI) for ImageWriters. + * The ImageWriterSpi abstract class is a service provider interface (SPI) for + * ImageWriters. + * + * @since Android 1.0 */ public abstract class ImageWriterSpi extends ImageReaderWriterSpi { - /** The STANDARD_OUTPUT_TYPE contains ImageInputStream.class. */ - public static final Class[] STANDARD_OUTPUT_TYPE = new Class[] {ImageInputStream.class}; + /** + * The STANDARD_OUTPUT_TYPE contains ImageInputStream.class. + */ + public static final Class[] STANDARD_OUTPUT_TYPE = new Class[] { + ImageInputStream.class + }; - /** The output types. */ + /** + * The output types. + */ protected Class[] outputTypes; - - /** The reader spi names. */ + + /** + * The reader SPI names. + */ protected String[] readerSpiNames; /** @@ -51,50 +62,62 @@ public abstract class ImageWriterSpi extends ImageReaderWriterSpi { /** * Instantiates a new ImageWriterSpi with the specified parameters. * - * @param vendorName the vendor name. - * @param version the version. - * @param names the format names. - * @param suffixes the array of strings representing the file suffixes. - * @param MIMETypes the an array of strings representing MIME types. - * @param pluginClassName the plugin class name. - * @param outputTypes the output types. - * @param readerSpiNames the array of strings with class names of all - * associated ImageReaders. - * @param supportsStandardStreamMetadataFormat the value indicating - * if stream metadata can be described by standard metadata format. - * @param nativeStreamMetadataFormatName the native stream metadata - * format name, returned by getNativeStreamMetadataFormatName. - * @param nativeStreamMetadataFormatClassName the native stream - * metadata format class name, returned by getNativeStreamMetadataFormat. - * @param extraStreamMetadataFormatNames the extra stream metadata - * format names, returned by getExtraStreamMetadataFormatNames. - * @param extraStreamMetadataFormatClassNames the extra stream metadata - * format class names, returned by getStreamMetadataFormat. - * @param supportsStandardImageMetadataFormat the value indicating - * if image metadata can be described by standard metadata format. - * @param nativeImageMetadataFormatName the native image metadata - * format name, returned by getNativeImageMetadataFormatName. - * @param nativeImageMetadataFormatClassName the native image - * metadata format class name, returned by getNativeImageMetadataFormat. - * @param extraImageMetadataFormatNames the extra image metadata - * format names, returned by getExtraImageMetadataFormatNames. - * @param extraImageMetadataFormatClassNames the extra image metadata - * format class names, returned by getImageMetadataFormat. + * @param vendorName + * the vendor name. + * @param version + * the version. + * @param names + * the format names. + * @param suffixes + * the array of strings representing the file suffixes. + * @param MIMETypes + * the an array of strings representing MIME types. + * @param pluginClassName + * the plug-in class name. + * @param outputTypes + * the output types. + * @param readerSpiNames + * the array of strings with class names of all associated + * ImageReaders. + * @param supportsStandardStreamMetadataFormat + * the value indicating if stream metadata can be described by + * standard metadata format. + * @param nativeStreamMetadataFormatName + * the native stream metadata format name, returned by + * getNativeStreamMetadataFormatName. + * @param nativeStreamMetadataFormatClassName + * the native stream metadata format class name, returned by + * getNativeStreamMetadataFormat. + * @param extraStreamMetadataFormatNames + * the extra stream metadata format names, returned by + * getExtraStreamMetadataFormatNames. + * @param extraStreamMetadataFormatClassNames + * the extra stream metadata format class names, returned by + * getStreamMetadataFormat. + * @param supportsStandardImageMetadataFormat + * the value indicating if image metadata can be described by + * standard metadata format. + * @param nativeImageMetadataFormatName + * the native image metadata format name, returned by + * getNativeImageMetadataFormatName. + * @param nativeImageMetadataFormatClassName + * the native image metadata format class name, returned by + * getNativeImageMetadataFormat. + * @param extraImageMetadataFormatNames + * the extra image metadata format names, returned by + * getExtraImageMetadataFormatNames. + * @param extraImageMetadataFormatClassNames + * the extra image metadata format class names, returned by + * getImageMetadataFormat. */ - public ImageWriterSpi(String vendorName, String version, String[] names, - String[] suffixes, String[] MIMETypes, - String pluginClassName, - Class[] outputTypes, String[] readerSpiNames, - boolean supportsStandardStreamMetadataFormat, - String nativeStreamMetadataFormatName, - String nativeStreamMetadataFormatClassName, - String[] extraStreamMetadataFormatNames, - String[] extraStreamMetadataFormatClassNames, - boolean supportsStandardImageMetadataFormat, - String nativeImageMetadataFormatName, - String nativeImageMetadataFormatClassName, - String[] extraImageMetadataFormatNames, - String[] extraImageMetadataFormatClassNames) { + public ImageWriterSpi(String vendorName, String version, String[] names, String[] suffixes, + String[] MIMETypes, String pluginClassName, Class[] outputTypes, + String[] readerSpiNames, boolean supportsStandardStreamMetadataFormat, + String nativeStreamMetadataFormatName, String nativeStreamMetadataFormatClassName, + String[] extraStreamMetadataFormatNames, String[] extraStreamMetadataFormatClassNames, + boolean supportsStandardImageMetadataFormat, String nativeImageMetadataFormatName, + String nativeImageMetadataFormatClassName, String[] extraImageMetadataFormatNames, + String[] extraImageMetadataFormatClassNames) { super(vendorName, version, names, suffixes, MIMETypes, pluginClassName, supportsStandardStreamMetadataFormat, nativeStreamMetadataFormatName, nativeStreamMetadataFormatClassName, extraStreamMetadataFormatNames, @@ -111,8 +134,8 @@ public abstract class ImageWriterSpi extends ImageReaderWriterSpi { } /** - * Returns true if the format of the writer's output is lossless. - * The default implementation returns true. + * Returns true if the format of the writer's output is lossless. The + * default implementation returns true. * * @return true, if a format is lossless, false otherwise. */ @@ -121,8 +144,8 @@ public abstract class ImageWriterSpi extends ImageReaderWriterSpi { } /** - * Gets an array of Class objects whose types - * can be used as output for this writer. + * Gets an array of Class objects whose types can be used as output for this + * writer. * * @return the output types. */ @@ -131,77 +154,72 @@ public abstract class ImageWriterSpi extends ImageReaderWriterSpi { } /** - * Checks whether or not the ImageWriter implementation associated - * with this service provider can encode an image with - * the specified type. - * - * @param type the ImageTypeSpecifier. + * Checks whether or not the ImageWriter implementation associated with this + * service provider can encode an image with the specified type. * - * @return true, if an image with the specified type can be - * encoded, false otherwise. + * @param type + * the ImageTypeSpecifier. + * @return true, if an image with the specified type can be encoded, false + * otherwise. */ public abstract boolean canEncodeImage(ImageTypeSpecifier type); /** - * Checks whether or not the ImageWriter implementation associated - * with this service provider can encode the specified RenderedImage. + * Checks whether or not the ImageWriter implementation associated with this + * service provider can encode the specified RenderedImage. * - * @param im the RenderedImage. - * - * @return true, if RenderedImage can be encoded, - * false otherwise. + * @param im + * the RenderedImage. + * @return true, if RenderedImage can be encoded, false otherwise. */ public boolean canEncodeImage(RenderedImage im) { return canEncodeImage(ImageTypeSpecifier.createFromRenderedImage(im)); } /** - * Returns an instance of the ImageWriter implementation for - * this service provider. + * Returns an instance of the ImageWriter implementation for this service + * provider. * * @return the ImageWriter. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public ImageWriter createWriterInstance() throws IOException { return createWriterInstance(null); } /** - * Returns an instance of the ImageWriter implementation for - * this service provider. - * - * @param extension the a plugin specific extension object, or null. + * Returns an instance of the ImageWriter implementation for this service + * provider. * + * @param extension + * the a plug-in specific extension object, or null. * @return the ImageWriter. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ public abstract ImageWriter createWriterInstance(Object extension) throws IOException; /** - * Checks whether or not the specified ImageWriter object - * is an instance of the ImageWriter associated with this - * service provider or not. - * - * @param writer the ImageWriter. + * Checks whether or not the specified ImageWriter object is an instance of + * the ImageWriter associated with this service provider or not. * - * @return true, if the specified ImageWriter object - * is an instance of the ImageWriter associated with this - * service provider, false otherwise. + * @param writer + * the ImageWriter. + * @return true, if the specified ImageWriter object is an instance of the + * ImageWriter associated with this service provider, false + * otherwise. */ public boolean isOwnWriter(ImageWriter writer) { throw new UnsupportedOperationException("Not supported yet"); } /** - * Gets an array of strings with names of the ImageReaderSpi - * classes that support the internal metadata representation - * used by the ImageWriter of this service provider, or null if - * there are no such ImageReaders. + * Gets an array of strings with names of the ImageReaderSpi classes that + * support the internal metadata representation used by the ImageWriter of + * this service provider, or null if there are no such ImageReaders. * - * @return an array of strings with names of the ImageWriterSpi - * classes. + * @return the array of strings with names of the ImageWriterSpi classes. */ public String[] getImageReaderSpiNames() { return readerSpiNames; diff --git a/awt/javax/imageio/spi/RegisterableService.java b/awt/javax/imageio/spi/RegisterableService.java index b50754e..ae2f4d3 100644 --- a/awt/javax/imageio/spi/RegisterableService.java +++ b/awt/javax/imageio/spi/RegisterableService.java @@ -18,33 +18,37 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio.spi; /** - * The RegisterableService interface provides service provider - * objects that can be registered by a ServiceRegistry, and - * notifications that registration and deregistration have been - * performed. + * The RegisterableService interface provides service provider objects that can + * be registered by a ServiceRegistry, and notifications that registration and + * deregistration have been performed. + * + * @since Android 1.0 */ public interface RegisterableService { - + /** - * This method is called when the object which implements this - * interface is registered to the specified category of the - * specified registry. + * This method is called when the object which implements this interface is + * registered to the specified category of the specified registry. * - * @param registry the ServiceRegistry to be registered. - * @param category the class representing a category. + * @param registry + * the ServiceRegistry to be registered. + * @param category + * the class representing a category. */ void onRegistration(ServiceRegistry registry, Class<?> category); - + /** - * This method is called when the object which implements this - * interface is deregistered to the specified category of the - * specified registry. + * This method is called when the object which implements this interface is + * deregistered to the specified category of the specified registry. * - * @param registry the ServiceRegistry to be registered. - * @param category the class representing a category. + * @param registry + * the ServiceRegistry to be registered. + * @param category + * the class representing a category. */ void onDeregistration(ServiceRegistry registry, Class<?> category); } diff --git a/awt/javax/imageio/spi/ServiceRegistry.java b/awt/javax/imageio/spi/ServiceRegistry.java index 1a18b02..79b02a3 100644 --- a/awt/javax/imageio/spi/ServiceRegistry.java +++ b/awt/javax/imageio/spi/ServiceRegistry.java @@ -18,48 +18,53 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio.spi; import java.util.*; import java.util.Map.Entry; /** - * The ServiceRegistry class provides ability to register, - * deregister, look up and obtain service provider instances (SPIs). - * A service means a set of interfaces and classes, and a service - * provider is an implementation of a service. Service providers can - * be associated with one or more categories. Each category is defined - * by a class or interface. Only a single instance of a each class is - * allowed to be registered as a category. + * The ServiceRegistry class provides ability to register, deregister, look up + * and obtain service provider instances (SPIs). A service means a set of + * interfaces and classes, and a service provider is an implementation of a + * service. Service providers can be associated with one or more categories. + * Each category is defined by a class or interface. Only a single instance of a + * each class is allowed to be registered as a category. + * + * @since Android 1.0 */ public class ServiceRegistry { - /** The categories. */ + /** + * The categories. + */ CategoriesMap categories = new CategoriesMap(this); /** * Instantiates a new ServiceRegistry with the specified categories. * - * @param categoriesIterator an Iterator of Class objects - * for defining of categories. + * @param categoriesIterator + * an Iterator of Class objects for defining of categories. */ public ServiceRegistry(Iterator<Class<?>> categoriesIterator) { if (null == categoriesIterator) { throw new IllegalArgumentException("categories iterator should not be NULL"); } - while(categoriesIterator.hasNext()) { - Class<?> c = categoriesIterator.next(); + while (categoriesIterator.hasNext()) { + Class<?> c = categoriesIterator.next(); categories.addCategory(c); } } /** - * Looks up and instantiates the available providers of this service using + * Looks up and instantiates the available providers of this service using * the specified class loader. * - * @param providerClass the Class object of the provider to be looked up. - * @param loader the class loader to be used. - * + * @param providerClass + * the Class object of the provider to be looked up. + * @param loader + * the class loader to be used. * @return the iterator of providers objects for this service. */ public static <T> Iterator<T> lookupProviders(Class<T> providerClass, ClassLoader loader) { @@ -67,11 +72,11 @@ public class ServiceRegistry { } /** - * Looks up and instantiates the available providers of this service using + * Looks up and instantiates the available providers of this service using * the context class loader. * - * @param providerClass the Class object of the provider to be looked up. - * + * @param providerClass + * the Class object of the provider to be looked up. * @return the iterator of providers objects for this service. */ public static <T> Iterator<T> lookupProviders(Class<T> providerClass) { @@ -79,14 +84,15 @@ public class ServiceRegistry { } /** - * Registers the specified service provider object in the - * specified categories. - * - * @param provider the specified provider to be registered. - * @param category the category. + * Registers the specified service provider object in the specified + * categories. * - * @return true if no provider of the same class is registered - * in this category, false otherwise. + * @param provider + * the specified provider to be registered. + * @param category + * the category. + * @return true, if no provider of the same class is registered in this + * category, false otherwise. */ public <T> boolean registerServiceProvider(T provider, Class<T> category) { return categories.addProvider(provider, category); @@ -95,7 +101,8 @@ public class ServiceRegistry { /** * Registers a list of service providers. * - * @param providers the list of service providers. + * @param providers + * the list of service providers. */ public void registerServiceProviders(Iterator<?> providers) { for (Iterator<?> iterator = providers; iterator.hasNext();) { @@ -104,67 +111,70 @@ public class ServiceRegistry { } /** - * Registers the specified service provider object in all - * categories. + * Registers the specified service provider object in all categories. * - * @param provider the service provider. + * @param provider + * the service provider. */ public void registerServiceProvider(Object provider) { categories.addProvider(provider, null); } /** - * Deregisters the specifies service provider from the - * specified category. + * Deregisters the specifies service provider from the specified category. * - * @param provider the service provider to be deregistered. - * @param category the specified category. - * - * @return true if the provider was already registered - * in the specified category, false otherwise. + * @param provider + * the service provider to be deregistered. + * @param category + * the specified category. + * @return true, if the provider was already registered in the specified + * category, false otherwise. */ public <T> boolean deregisterServiceProvider(T provider, Class<T> category) { throw new UnsupportedOperationException("Not supported yet"); } /** - * Deregisters the specified service provider from all - * categories. + * Deregisters the specified service provider from all categories. * - * @param provider the specified service provider. + * @param provider + * the specified service provider. */ public void deregisterServiceProvider(Object provider) { throw new UnsupportedOperationException("Not supported yet"); } /** - * Gets an Iterator of registered service providers - * in the specified category which satisfy the specified Filter. - * The useOrdering parameter indicates whether the iterator will - * return all of the server provider objects in a set order. - * - * @param category the specified category. - * @param filter the specified filter. - * @param useOrdering the flag indicating that providers are ordered - * in the returned Iterator. + * Gets an Iterator of registered service providers in the specified + * category which satisfy the specified Filter. The useOrdering parameter + * indicates whether the iterator will return all of the server provider + * objects in a set order. * + * @param category + * the specified category. + * @param filter + * the specified filter. + * @param useOrdering + * the flag indicating that providers are ordered in the returned + * Iterator. * @return the iterator of registered service providers. */ @SuppressWarnings("unchecked") public <T> Iterator<T> getServiceProviders(Class<T> category, Filter filter, boolean useOrdering) { - return new FilteredIterator<T>(filter, (Iterator<T>)categories.getProviders(category, useOrdering)); + return new FilteredIterator<T>(filter, (Iterator<T>)categories.getProviders(category, + useOrdering)); } /** - * Gets an Iterator of all registered service providers - * in the specified category. The useOrdering parameter - * indicates whether the iterator will return all of the server - * provider objects in a set order. - * - * @param category the specified category. - * @param useOrdering the flag indicating that providers are ordered - * in the returned Iterator. + * Gets an Iterator of all registered service providers in the specified + * category. The useOrdering parameter indicates whether the iterator will + * return all of the server provider objects in a set order. * + * @param category + * the specified category. + * @param useOrdering + * the flag indicating that providers are ordered in the returned + * Iterator. * @return the Iterator of service providers. */ @SuppressWarnings("unchecked") @@ -173,11 +183,11 @@ public class ServiceRegistry { } /** - * Gets the registered service provider object that has the - * specified class type. - * - * @param providerClass the specified provider class. + * Gets the registered service provider object that has the specified class + * type. * + * @param providerClass + * the specified provider class. * @return the service provider object. */ public <T> T getServiceProviderByClass(Class<T> providerClass) { @@ -185,28 +195,32 @@ public class ServiceRegistry { } /** - * Sets an ordering between two service provider objects - * within the specified category. - * - * @param category the specified category. - * @param firstProvider the first provider. - * @param secondProvider the second provider. + * Sets an ordering between two service provider objects within the + * specified category. * - * @return true if a previously unset order was set. + * @param category + * the specified category. + * @param firstProvider + * the first provider. + * @param secondProvider + * the second provider. + * @return true, if a previously unset order was set. */ public <T> boolean setOrdering(Class<T> category, T firstProvider, T secondProvider) { throw new UnsupportedOperationException("Not supported yet"); } /** - * Unsets an ordering between two service provider objects - * within the specified category. - * - * @param category the specified category. - * @param firstProvider the first provider. - * @param secondProvider the second provider. + * Unsets an ordering between two service provider objects within the + * specified category. * - * @return true if a previously unset order was removed. + * @param category + * the specified category. + * @param firstProvider + * the first provider. + * @param secondProvider + * the second provider. + * @return true, if a previously unset order was removed. */ public <T> boolean unsetOrdering(Class<T> category, T firstProvider, T secondProvider) { throw new UnsupportedOperationException("Not supported yet"); @@ -215,7 +229,8 @@ public class ServiceRegistry { /** * Deregisters all providers from the specified category. * - * @param category the specified category. + * @param category + * the specified category. */ public void deregisterAll(Class<?> category) { throw new UnsupportedOperationException("Not supported yet"); @@ -229,32 +244,31 @@ public class ServiceRegistry { } /** - * Finalizes this object. + * Finalizes this object. * - * @throws Throwable throws if an error occurs during - * finalization. + * @throws Throwable + * if an error occurs during finalization. */ @Override public void finalize() throws Throwable { - //TODO uncomment when deregisterAll is implemented - //deregisterAll(); + // TODO uncomment when deregisterAll is implemented + // deregisterAll(); } /** * Checks whether the specified provider has been already registered. * - * @param provider the provider to be checked. - * + * @param provider + * the provider to be checked. * @return true, if the specified provider has been already registered, - * false otherwise. + * false otherwise. */ public boolean contains(Object provider) { throw new UnsupportedOperationException("Not supported yet"); } /** - * Gets an iterator of Class objects representing the current - * categories. + * Gets an iterator of Class objects representing the current categories. * * @return the Iterator of Class objects. */ @@ -263,20 +277,22 @@ public class ServiceRegistry { } /** - * The ServiceRegistry.Filter interface is used by - * ServiceRegistry.getServiceProviders to filter providers according - * to the specified criterion. + * The ServiceRegistry.Filter interface is used by + * ServiceRegistry.getServiceProviders to filter providers according to the + * specified criterion. + * + * @since Android 1.0 */ public static interface Filter { - + /** - * Returns true if the specified provider satisfies the - * criterion of this Filter. + * Returns true if the specified provider satisfies the criterion of + * this Filter. * - * @param provider the provider. - * - * @return true if the specified provider satisfies the - * criterion of this Filter, false otherwise. + * @param provider + * the provider. + * @return true, if the specified provider satisfies the criterion of + * this Filter, false otherwise. */ boolean filter(Object provider); } @@ -285,30 +301,36 @@ public class ServiceRegistry { * The Class CategoriesMap. */ private static class CategoriesMap { - - /** The categories. */ + + /** + * The categories. + */ Map<Class<?>, ProvidersMap> categories = new HashMap<Class<?>, ProvidersMap>(); - /** The registry. */ + /** + * The registry. + */ ServiceRegistry registry; /** * Instantiates a new categories map. * - * @param registry the registry + * @param registry + * the registry. */ public CategoriesMap(ServiceRegistry registry) { this.registry = registry; } - //-- TODO: useOrdering + // -- TODO: useOrdering /** * Gets the providers. * - * @param category the category - * @param useOrdering the use ordering - * - * @return the providers + * @param category + * the category. + * @param useOrdering + * the use ordering. + * @return the providers. */ Iterator<?> getProviders(Class<?> category, boolean useOrdering) { ProvidersMap providers = categories.get(category); @@ -321,7 +343,7 @@ public class ServiceRegistry { /** * List. * - * @return the iterator< class<?>> + * @return the iterator< class<?>>. */ Iterator<Class<?>> list() { return categories.keySet().iterator(); @@ -330,7 +352,8 @@ public class ServiceRegistry { /** * Adds the category. * - * @param category the category + * @param category + * the category. */ void addCategory(Class<?> category) { categories.put(category, new ProvidersMap()); @@ -341,10 +364,11 @@ public class ServiceRegistry { * <code>null</code> then the provider will be added to all categories * which the provider is assignable from. * - * @param provider provider to add - * @param category category to add provider to - * - * @return if there were such provider in some category + * @param provider + * provider to add. + * @param category + * category to add provider to. + * @return true, if there were such provider in some category. */ boolean addProvider(Object provider, Class<?> category) { if (provider == null) { @@ -355,11 +379,11 @@ public class ServiceRegistry { if (category == null) { rt = findAndAdd(provider); } else { - rt = addToNamed(provider, category); + rt = addToNamed(provider, category); } if (provider instanceof RegisterableService) { - ((RegisterableService) provider).onRegistration(registry, category); + ((RegisterableService)provider).onRegistration(registry, category); } return rt; @@ -368,10 +392,11 @@ public class ServiceRegistry { /** * Adds the to named. * - * @param provider the provider - * @param category the category - * - * @return true, if successful + * @param provider + * the provider. + * @param category + * the category. + * @return true, if successful. */ private boolean addToNamed(Object provider, Class<?> category) { Object obj = categories.get(category); @@ -380,15 +405,15 @@ public class ServiceRegistry { throw new IllegalArgumentException("Unknown category: " + category); } - return ((ProvidersMap) obj).addProvider(provider); + return ((ProvidersMap)obj).addProvider(provider); } /** * Find and add. * - * @param provider the provider - * - * @return true, if successful + * @param provider + * the provider. + * @return true, if successful. */ private boolean findAndAdd(Object provider) { boolean rt = false; @@ -405,17 +430,19 @@ public class ServiceRegistry { * The Class ProvidersMap. */ private static class ProvidersMap { - //-- TODO: providers ordering support + // -- TODO: providers ordering support - /** The providers. */ + /** + * The providers. + */ Map<Class<?>, Object> providers = new HashMap<Class<?>, Object>(); /** * Adds the provider. * - * @param provider the provider - * - * @return true, if successful + * @param provider + * the provider. + * @return true, if successful. */ boolean addProvider(Object provider) { return providers.put(provider.getClass(), provider) != null; @@ -424,19 +451,19 @@ public class ServiceRegistry { /** * Gets the provider classes. * - * @return the provider classes + * @return the provider classes. */ Iterator<Class<?>> getProviderClasses() { return providers.keySet().iterator(); } - //-- TODO ordering + // -- TODO ordering /** * Gets the providers. * - * @param userOrdering the user ordering - * - * @return the providers + * @param userOrdering + * the user ordering. + * @return the providers. */ Iterator<?> getProviders(boolean userOrdering) { return providers.values().iterator(); @@ -448,20 +475,28 @@ public class ServiceRegistry { */ private static class FilteredIterator<E> implements Iterator<E> { - /** The filter. */ + /** + * The filter. + */ private Filter filter; - - /** The backend. */ + + /** + * The backend. + */ private Iterator<E> backend; - - /** The next obj. */ + + /** + * The next obj. + */ private E nextObj; /** * Instantiates a new filtered iterator. * - * @param filter the filter - * @param backend the backend + * @param filter + * the filter. + * @param backend + * the backend. */ public FilteredIterator(Filter filter, Iterator<E> backend) { this.filter = filter; @@ -472,7 +507,7 @@ public class ServiceRegistry { /** * Next. * - * @return the e + * @return the e. */ public E next() { if (nextObj == null) { @@ -486,7 +521,7 @@ public class ServiceRegistry { /** * Checks for next. * - * @return true, if successful + * @return true, if successful. */ public boolean hasNext() { return nextObj != null; @@ -500,7 +535,8 @@ public class ServiceRegistry { } /** - * Sets nextObj to a next provider matching the criterion given by the filter. + * Sets nextObj to a next provider matching the criterion given by the + * filter. */ private void findNext() { nextObj = null; diff --git a/awt/javax/imageio/spi/package.html b/awt/javax/imageio/spi/package.html new file mode 100644 index 0000000..18ceff4 --- /dev/null +++ b/awt/javax/imageio/spi/package.html @@ -0,0 +1,8 @@ +<html> + <body> + <p> + This package provides several Service Provider Interface (SPI) classes for readers, writers, transcoders and streams to handle images. + </p> + @since Android 1.0 + </body> +</html> diff --git a/awt/javax/imageio/stream/FileCacheImageInputStream.java b/awt/javax/imageio/stream/FileCacheImageInputStream.java index 47bc189..710ac66 100644 --- a/awt/javax/imageio/stream/FileCacheImageInputStream.java +++ b/awt/javax/imageio/stream/FileCacheImageInputStream.java @@ -15,38 +15,43 @@ * limitations under the License. */ - package javax.imageio.stream; import java.io.*; /** - * The FileCacheImageInputStream class is an implementation of - * ImageInputStream which reads from its InputStream - * and uses a temporary file as a cache. + * The FileCacheImageInputStream class is an implementation of ImageInputStream + * which reads from its InputStream and uses a temporary file as a cache. + * + * @since Android 1.0 */ public class FileCacheImageInputStream extends ImageInputStreamImpl { - - /** The is. */ + + /** + * The is. + */ private InputStream is; - - /** The file. */ + + /** + * The file. + */ private File file; - - /** The raf. */ - private RandomAccessFile raf; + /** + * The raf. + */ + private RandomAccessFile raf; /** - * Instantiates a new FileCacheImageInputStream from - * the specified InputStream and using the specified - * File as its cache directory. - * - * @param stream the InputStream for reading. - * @param cacheDir the cache directory where the chache file - * will be created. + * Instantiates a new FileCacheImageInputStream from the specified + * InputStream and using the specified File as its cache directory. * - * @throws IOException Signals that an I/O exception has occurred. + * @param stream + * the InputStream for reading. + * @param cacheDir + * the cache directory where the cache file will be created. + * @throws IOException + * if an I/O exception has occurred. */ public FileCacheImageInputStream(InputStream stream, File cacheDir) throws IOException { if (stream == null) { @@ -55,7 +60,8 @@ public class FileCacheImageInputStream extends ImageInputStreamImpl { is = stream; if (cacheDir == null || cacheDir.isDirectory()) { - file = File.createTempFile(FileCacheImageOutputStream.IIO_TEMP_FILE_PREFIX, null, cacheDir); + file = File.createTempFile(FileCacheImageOutputStream.IIO_TEMP_FILE_PREFIX, null, + cacheDir); file.deleteOnExit(); } else { throw new IllegalArgumentException("Not a directory!"); diff --git a/awt/javax/imageio/stream/FileCacheImageOutputStream.java b/awt/javax/imageio/stream/FileCacheImageOutputStream.java index ae48585..135afab 100644 --- a/awt/javax/imageio/stream/FileCacheImageOutputStream.java +++ b/awt/javax/imageio/stream/FileCacheImageOutputStream.java @@ -15,7 +15,6 @@ * limitations under the License. */ - package javax.imageio.stream; import java.io.IOException; @@ -24,35 +23,48 @@ import java.io.OutputStream; import java.io.RandomAccessFile; /** - * The FileCacheImageOutputStream class is an implementation of - * ImageOutputStream that writes to its OutputStream - * using a temporary file as a cache. + * The FileCacheImageOutputStream class is an implementation of + * ImageOutputStream that writes to its OutputStream using a temporary file as a + * cache. + * + * @since Android 1.0 */ public class FileCacheImageOutputStream extends ImageOutputStreamImpl { - - /** The Constant IIO_TEMP_FILE_PREFIX. */ + + /** + * The Constant IIO_TEMP_FILE_PREFIX. + */ static final String IIO_TEMP_FILE_PREFIX = "iioCache"; - - /** The Constant MAX_BUFFER_LEN. */ + + /** + * The Constant MAX_BUFFER_LEN. + */ static final int MAX_BUFFER_LEN = 1048575; // 1 MB - is it not too much? - /** The os. */ + /** + * The os. + */ private OutputStream os; - - /** The file. */ + + /** + * The file. + */ private File file; - - /** The raf. */ + + /** + * The raf. + */ private RandomAccessFile raf; /** * Instantiates a FileCacheImageOutputStream. * - * @param stream the OutputStream for writing. - * @param cacheDir the cache directory where the chache file - * will be created. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param stream + * the OutputStream for writing. + * @param cacheDir + * the cache directory where the cache file will be created. + * @throws IOException + * if an I/O exception has occurred. */ public FileCacheImageOutputStream(OutputStream stream, File cacheDir) throws IOException { if (stream == null) { @@ -96,7 +108,7 @@ public class FileCacheImageOutputStream extends ImageOutputStreamImpl { @Override public void write(int b) throws IOException { flushBits(); // See the flushBits method description - + raf.write(b); streamPos++; } @@ -148,7 +160,7 @@ public class FileCacheImageOutputStream extends ImageOutputStreamImpl { } else { byte buffer[] = new byte[MAX_BUFFER_LEN]; while (bytesToRead > 0) { - int count = (int) Math.min(MAX_BUFFER_LEN, bytesToRead); + int count = (int)Math.min(MAX_BUFFER_LEN, bytesToRead); raf.readFully(buffer, 0, count); os.write(buffer, 0, count); bytesToRead -= count; @@ -169,7 +181,7 @@ public class FileCacheImageOutputStream extends ImageOutputStreamImpl { } raf.seek(pos); - streamPos = raf.getFilePointer(); + streamPos = raf.getFilePointer(); bitOffset = 0; } @@ -177,7 +189,7 @@ public class FileCacheImageOutputStream extends ImageOutputStreamImpl { public long length() { try { return raf.length(); - } catch(IOException e) { + } catch (IOException e) { return -1L; } } diff --git a/awt/javax/imageio/stream/FileImageInputStream.java b/awt/javax/imageio/stream/FileImageInputStream.java index 6680ae0..b9b6002 100644 --- a/awt/javax/imageio/stream/FileImageInputStream.java +++ b/awt/javax/imageio/stream/FileImageInputStream.java @@ -15,7 +15,6 @@ * limitations under the License. */ - package javax.imageio.stream; import java.io.IOException; @@ -24,24 +23,31 @@ import java.io.File; import java.io.FileNotFoundException; /** - * The FileImageInputStream class implements ImageInputStream - * and obtains its input data from a File or RandomAccessFile. + * The FileImageInputStream class implements ImageInputStream and obtains its + * input data from a File or RandomAccessFile. + * + * @since Android 1.0 */ public class FileImageInputStream extends ImageInputStreamImpl { - - /** The raf. */ + + /** + * The raf. + */ RandomAccessFile raf; /** * Instantiates a new FileImageInputStream from the specified File. * - * @param f the File of input data. - * - * @throws FileNotFoundException if the specified file - * doesn't exist. - * @throws IOException Signals that an I/O exception has occurred. + * @param f + * the File of input data. + * @throws FileNotFoundException + * if the specified file doesn't exist. + * @throws IOException + * if an I/O exception has occurred. */ - @SuppressWarnings({"DuplicateThrows"}) + @SuppressWarnings( { + "DuplicateThrows" + }) public FileImageInputStream(File f) throws FileNotFoundException, IOException { if (f == null) { throw new IllegalArgumentException("f == null!"); @@ -51,10 +57,11 @@ public class FileImageInputStream extends ImageInputStreamImpl { } /** - * Instantiates a new FileImageInputStream from the specified + * Instantiates a new FileImageInputStream from the specified * RandomAccessFile. * - * @param raf the RandomAccessFile of input data. + * @param raf + * the RandomAccessFile of input data. */ public FileImageInputStream(RandomAccessFile raf) { if (raf == null) { @@ -91,7 +98,7 @@ public class FileImageInputStream extends ImageInputStreamImpl { public long length() { try { return raf.length(); - } catch(IOException e) { + } catch (IOException e) { return -1L; } } diff --git a/awt/javax/imageio/stream/FileImageOutputStream.java b/awt/javax/imageio/stream/FileImageOutputStream.java index eaafe14..2730ba6 100644 --- a/awt/javax/imageio/stream/FileImageOutputStream.java +++ b/awt/javax/imageio/stream/FileImageOutputStream.java @@ -18,39 +18,44 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio.stream; import java.io.*; /** - * The FileImageOutputStream class implements ImageOutputStream - * and writes the output data to a File or RandomAccessFile. + * The FileImageOutputStream class implements ImageOutputStream and writes the + * output data to a File or RandomAccessFile. + * + * @since Android 1.0 */ public class FileImageOutputStream extends ImageOutputStreamImpl { - /** The file. */ + /** + * The file. + */ RandomAccessFile file; /** - * Instantiates a new FileImageOutputStream with the specified - * File. - * - * @param f the output File. + * Instantiates a new FileImageOutputStream with the specified File. * - * @throws FileNotFoundException if the file not found. - * @throws IOException Signals that an I/O exception has occurred. + * @param f + * the output File. + * @throws FileNotFoundException + * if the file not found. + * @throws IOException + * if an I/O exception has occurred. */ public FileImageOutputStream(File f) throws FileNotFoundException, IOException { - this(f != null - ? new RandomAccessFile(f, "rw") - : null); + this(f != null ? new RandomAccessFile(f, "rw") : null); } /** * Instantiates a new FileImageOutputStream with the specified * RandomAccessFile. * - * @param raf the output RandomAccessFile. + * @param raf + * the output RandomAccessFile. */ public FileImageOutputStream(RandomAccessFile raf) { if (raf == null) { @@ -102,14 +107,14 @@ public class FileImageOutputStream extends ImageOutputStreamImpl { try { checkClosed(); return file.length(); - } catch(IOException e) { + } catch (IOException e) { return super.length(); // -1L } } @Override public void seek(long pos) throws IOException { - //-- checkClosed() is performed in super.seek() + // -- checkClosed() is performed in super.seek() super.seek(pos); file.seek(pos); streamPos = file.getFilePointer(); diff --git a/awt/javax/imageio/stream/IIOByteBuffer.java b/awt/javax/imageio/stream/IIOByteBuffer.java index 961a7b3..867d808 100644 --- a/awt/javax/imageio/stream/IIOByteBuffer.java +++ b/awt/javax/imageio/stream/IIOByteBuffer.java @@ -18,35 +18,46 @@ * @author Sergey I. Salishev * @version $Revision: 1.2 $ */ + package javax.imageio.stream; -/** -* @author Sergey I. Salishev -* @version $Revision: 1.2 $ -*/ +// +// @author Sergey I. Salishev +// @version $Revision: 1.2 $ +// /** - * The IIOByteBuffer class represents a byte array with offset and - * length that is used by ImageInputStream for obtaining a sequence - * of bytes. + * The IIOByteBuffer class represents a byte array with offset and length that + * is used by ImageInputStream for obtaining a sequence of bytes. + * + * @since Android 1.0 */ public class IIOByteBuffer { - - /** The data. */ + + /** + * The data. + */ private byte[] data; - - /** The offset. */ + + /** + * The offset. + */ private int offset; - - /** The length. */ + + /** + * The length. + */ private int length; /** * Instantiates a new IIOByteBuffer. * - * @param data the byte array. - * @param offset the offset in the array. - * @param length the length of array. + * @param data + * the byte array. + * @param offset + * the offset in the array. + * @param length + * the length of array. */ public IIOByteBuffer(byte[] data, int offset, int length) { this.data = data; @@ -84,7 +95,8 @@ public class IIOByteBuffer { /** * Sets the new data array to this IIOByteBuffer object. * - * @param data the new data array. + * @param data + * the new data array. */ public void setData(byte[] data) { this.data = data; @@ -93,7 +105,8 @@ public class IIOByteBuffer { /** * Sets the length of data which will be used. * - * @param length the new length. + * @param length + * the new length. */ public void setLength(int length) { this.length = length; @@ -102,10 +115,10 @@ public class IIOByteBuffer { /** * Sets the offset in the data array of this IIOByteBuffer. * - * @param offset the new offset. + * @param offset + * the new offset. */ public void setOffset(int offset) { this.offset = offset; } } - diff --git a/awt/javax/imageio/stream/ImageInputStream.java b/awt/javax/imageio/stream/ImageInputStream.java index 771e9ff..3dec5d2 100644 --- a/awt/javax/imageio/stream/ImageInputStream.java +++ b/awt/javax/imageio/stream/ImageInputStream.java @@ -18,6 +18,7 @@ * @author Rustem V. Rafikov * @version $Revision: 1.2 $ */ + package javax.imageio.stream; import java.io.DataInput; @@ -25,21 +26,24 @@ import java.io.IOException; import java.nio.ByteOrder; /** - * The ImageInputStream represents input stream interface that is - * used by ImageReaders. + * The ImageInputStream represents input stream interface that is used by + * ImageReaders. + * + * @since Android 1.0 */ public interface ImageInputStream extends DataInput { /** - * Sets the specified byte order for reading of data values - * from this stream. + * Sets the specified byte order for reading of data values from this + * stream. * - * @param byteOrder the byte order. + * @param byteOrder + * the byte order. */ void setByteOrder(ByteOrder byteOrder); /** - * Gets the byte order. + * Gets the byte order. * * @return the byte order. */ @@ -48,158 +52,151 @@ public interface ImageInputStream extends DataInput { /** * Reads a byte from the stream. * - * @return the byte of the stream, or -1 for EOF indicating. - * - * @throws IOException Signals that an I/O exception has occurred. + * @return the byte of the stream, or -1 for EOF indicating. + * @throws IOException + * if an I/O exception has occurred. */ int read() throws IOException; /** - * Reads number of bytes which is equal to the specified array's length - * and stores a result to this array. - * - * @param b the byte array. + * Reads number of bytes which is equal to the specified array's length and + * stores a result to this array. * + * @param b + * the byte array. * @return the number of read bytes, or -1 indicated EOF. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ int read(byte[] b) throws IOException; /** - * Reads the number of bytes specified by len parameter from - * the stream and stores a result to the specified array - * with the specified offset. - * - * @param b the byte array. - * @param off the offset. - * @param len the number of bytes to be read. + * Reads the number of bytes specified by len parameter from the stream and + * stores a result to the specified array with the specified offset. * + * @param b + * the byte array. + * @param off + * the offset. + * @param len + * the number of bytes to be read. * @return the number of read bytes, or -1 indicated EOF. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ int read(byte[] b, int off, int len) throws IOException; /** - * Reads the number of bytes specified by len parameter - * from the stream, and modifies the specified IIOByteBuffer - * with the byte array, offset, and length. - * - * @param buf the IIOByteBuffer. - * @param len the number of bytes to be read. + * Reads the number of bytes specified by len parameter from the stream, and + * modifies the specified IIOByteBuffer with the byte array, offset, and + * length. * - * @throws IOException Signals that an I/O exception has occurred. + * @param buf + * the IIOByteBuffer. + * @param len + * the number of bytes to be read. + * @throws IOException + * if an I/O exception has occurred. */ void readBytes(IIOByteBuffer buf, int len) throws IOException; /** - * Reads a byte from the stream and returns a boolean true value - * if it is non zero, false if it is zero. - * - * @return a boolean value for read byte. + * Reads a byte from the stream and returns a boolean true value if it is + * non zero, false if it is zero. * - * @throws IOException Signals that an I/O exception has occurred. + * @return the boolean value for read byte. + * @throws IOException + * if an I/O exception has occurred. */ boolean readBoolean() throws IOException; /** - * Reads a byte from the stream and returns its value - * as signed byte. + * Reads a byte from the stream and returns its value as signed byte. * - * @return a signed byte value for read byte. - * - * @throws IOException Signals that an I/O exception has occurred. + * @return the signed byte value for read byte. + * @throws IOException + * if an I/O exception has occurred. */ byte readByte() throws IOException; /** - * Reads a byte from the stream and returns its value - * as int. - * - * @return a unsigned byte value for read byte as int. + * Reads a byte from the stream and returns its value as an integer. * - * @throws IOException Signals that an I/O exception has occurred. + * @return the unsigned byte value for read byte as an integer. + * @throws IOException + * if an I/O exception has occurred. */ int readUnsignedByte() throws IOException; /** - * Reads 2 bytes from the stream, and returns the result - * as a short. + * Reads 2 bytes from the stream, and returns the result as a short. * * @return the signed short value from the stream. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ short readShort() throws IOException; /** - * Reads 2 bytes from the stream and returns its value - * as an unsigned short. - * - * @return a unsigned short value coded in an int. + * Reads 2 bytes from the stream and returns its value as an unsigned short. * - * @throws IOException Signals that an I/O exception has occurred. + * @return a unsigned short value coded in an integer. + * @throws IOException + * if an I/O exception has occurred. */ int readUnsignedShort() throws IOException; /** - * Reads 2 bytes from the stream and returns their - * unsigned char value. + * Reads 2 bytes from the stream and returns their unsigned char value. * * @return the unsigned char value. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ char readChar() throws IOException; /** - * Reads 4 bytes from the stream, and returns the result - * as an int. + * Reads 4 bytes from the stream, and returns the result as an integer. * - * @return the signed int value from the stream. - * - * @throws IOException Signals that an I/O exception has occurred. + * @return the signed integer value from the stream. + * @throws IOException + * if an I/O exception has occurred. */ int readInt() throws IOException; /** - * Reads 4 bytes from the stream and returns its value - * as long. - * - * @return a unsigned int value as long. + * Reads 4 bytes from the stream and returns its value as long. * - * @throws IOException Signals that an I/O exception has occurred. + * @return the unsigned integer value as long. + * @throws IOException + * if an I/O exception has occurred. */ long readUnsignedInt() throws IOException; /** - * Reads 8 bytes from the stream, and returns the result - * as a long. + * Reads 8 bytes from the stream, and returns the result as a long. * * @return the long value from the stream. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ long readLong() throws IOException; /** - * Reads 4 bytes from the stream, and returns the result - * as a float. + * Reads 4 bytes from the stream, and returns the result as a float. * * @return the float value from the stream. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ float readFloat() throws IOException; /** - * Reads 8 bytes from the stream, and returns the result - * as a double. + * Reads 8 bytes from the stream, and returns the result as a double. * * @return the double value from the stream. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ double readDouble() throws IOException; @@ -207,120 +204,134 @@ public interface ImageInputStream extends DataInput { * Reads a line from the stream. * * @return the string contained the line from the stream. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ String readLine() throws IOException; /** - * Reads bytes from the stream in a string that has been encoded - * in a modified UTF-8 format. + * Reads bytes from the stream in a string that has been encoded in a + * modified UTF-8 format. * * @return the string read from stream and modified UTF-8 format. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ String readUTF() throws IOException; /** - * Reads the specified number of bytes from the stream, - * and stores the result into the specified array starting at - * the specified index offset. + * Reads the specified number of bytes from the stream, and stores the + * result into the specified array starting at the specified index offset. * - * @param b the byte array. - * @param off the offset. - * @param len the number of bytes to be read. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param b + * the byte array. + * @param off + * the offset. + * @param len + * the number of bytes to be read. + * @throws IOException + * if an I/O exception has occurred. */ void readFully(byte[] b, int off, int len) throws IOException; /** - * Reads number of bytes from the stream which is equal to - * the specified array's length, and stores them into - * this array. - * - * @param b the byte array. + * Reads number of bytes from the stream which is equal to the specified + * array's length, and stores them into this array. * - * @throws IOException Signals that an I/O exception has occurred. + * @param b + * the byte array. + * @throws IOException + * if an I/O exception has occurred. */ void readFully(byte[] b) throws IOException; /** - * Reads the specified number of shorts from the stream, - * and stores the result into the specified array starting at - * the specified index offset. - * - * @param s the short array. - * @param off the offset. - * @param len the number of shorts to be read. + * Reads the specified number of shorts from the stream, and stores the + * result into the specified array starting at the specified index offset. * - * @throws IOException Signals that an I/O exception has occurred. + * @param s + * the short array. + * @param off + * the offset. + * @param len + * the number of shorts to be read. + * @throws IOException + * if an I/O exception has occurred. */ void readFully(short[] s, int off, int len) throws IOException; /** - * Reads the specified number of chars from the stream, - * and stores the result into the specified array starting at - * the specified index offset. + * Reads the specified number of chars from the stream, and stores the + * result into the specified array starting at the specified index offset. * - * @param c the char array. - * @param off the offset. - * @param len the number of chars to be read. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param c + * the char array. + * @param off + * the offset. + * @param len + * the number of chars to be read. + * @throws IOException + * if an I/O exception has occurred. */ void readFully(char[] c, int off, int len) throws IOException; /** - * Reads the specified number of ints from the stream, - * and stores the result into the specified array starting at - * the specified index offset. - * - * @param i the int array. - * @param off the offset. - * @param len the number of ints to be read. + * Reads the specified number of integer from the stream, and stores the + * result into the specified array starting at the specified index offset. * - * @throws IOException Signals that an I/O exception has occurred. + * @param i + * the integer array. + * @param off + * the offset. + * @param len + * the number of integer to be read. + * @throws IOException + * if an I/O exception has occurred. */ void readFully(int[] i, int off, int len) throws IOException; /** - * Reads the specified number of longs from the stream, - * and stores the result into the specified array starting at - * the specified index offset. + * Reads the specified number of longs from the stream, and stores the + * result into the specified array starting at the specified index offset. * - * @param l the long array. - * @param off the offset. - * @param len the number of longs to be read. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param l + * the long array. + * @param off + * the offset. + * @param len + * the number of longs to be read. + * @throws IOException + * if an I/O exception has occurred. */ void readFully(long[] l, int off, int len) throws IOException; /** - * Reads the specified number of floats from the stream, - * and stores the result into the specified array starting at - * the specified index offset. - * - * @param f the float array. - * @param off the offset. - * @param len the number of floats to be read. + * Reads the specified number of floats from the stream, and stores the + * result into the specified array starting at the specified index offset. * - * @throws IOException Signals that an I/O exception has occurred. + * @param f + * the float array. + * @param off + * the offset. + * @param len + * the number of floats to be read. + * @throws IOException + * if an I/O exception has occurred. */ void readFully(float[] f, int off, int len) throws IOException; /** - * Reads the specified number of doubles from the stream, - * and stores the result into the specified array starting at - * the specified index offset. - * - * @param d the double array. - * @param off the offset. - * @param len the number of doubles to be read. + * Reads the specified number of doubles from the stream, and stores the + * result into the specified array starting at the specified index offset. * - * @throws IOException Signals that an I/O exception has occurred. + * @param d + * the double array. + * @param off + * the offset. + * @param len + * the number of doubles to be read. + * @throws IOException + * if an I/O exception has occurred. */ void readFully(double[] d, int off, int len) throws IOException; @@ -328,8 +339,8 @@ public interface ImageInputStream extends DataInput { * Gets the stream position. * * @return the stream position. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ long getStreamPosition() throws IOException; @@ -337,17 +348,18 @@ public interface ImageInputStream extends DataInput { * Gets the bit offset. * * @return the bit offset. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ int getBitOffset() throws IOException; /** - * Sets the bit offset to an integer between 0 and 7. + * Sets the bit offset to an integer between 0 and 7. * - * @param bitOffset the bit offset. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param bitOffset + * the bit offset. + * @throws IOException + * if an I/O exception has occurred. */ void setBitOffset(int bitOffset) throws IOException; @@ -355,90 +367,94 @@ public interface ImageInputStream extends DataInput { * Reads a bit from the stream and returns the value 0 or 1. * * @return the value of single bit: 0 or 1. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ int readBit() throws IOException; /** * Read the specified number of bits and returns their values as long. * - * @param numBits the number of bits to be read. - * + * @param numBits + * the number of bits to be read. * @return the bit string as a long. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ long readBits(int numBits) throws IOException; /** - * Returns the length of the stream. - * - * @return the length of the stream, or -1 if unknown. + * Returns the length of the stream. * - * @throws IOException Signals that an I/O exception has occurred. + * @return the length of the stream, or -1 if unknown. + * @throws IOException + * if an I/O exception has occurred. */ long length() throws IOException; /** - * Skipes the specified number of bytes by moving stream position. - * - * @param n the number of bytes. + * Skips the specified number of bytes by moving stream position. * + * @param n + * the number of bytes. * @return the actual skipped number of bytes. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ int skipBytes(int n) throws IOException; /** - * Skipes the specified number of bytes by moving stream position. - * - * @param n the number of bytes. + * Skips the specified number of bytes by moving stream position. * + * @param n + * the number of bytes. * @return the actual skipped number of bytes. - * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ long skipBytes(long n) throws IOException; /** - * Sets the current stream position to the specified location. + * Sets the current stream position to the specified location. * - * @param pos a file pointer position. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param pos + * a file pointer position. + * @throws IOException + * if an I/O exception has occurred. */ void seek(long pos) throws IOException; /** - * Marks a position in the stream to be returned to by a subsequent - * call to reset. + * Marks a position in the stream to be returned to by a subsequent call to + * reset. */ void mark(); /** * Returns the file pointer to its previous position. * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ void reset() throws IOException; /** - * Flushes the initial position in this stream prior to the - * specified stream position. - * - * @param pos the position. + * Flushes the initial position in this stream prior to the specified stream + * position. * - * @throws IOException Signals that an I/O exception has occurred. + * @param pos + * the position. + * @throws IOException + * if an I/O exception has occurred. */ void flushBefore(long pos) throws IOException; /** - * Flushes the initial position in this stream prior to the - * current stream position. + * Flushes the initial position in this stream prior to the current stream + * position. * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ void flush() throws IOException; @@ -450,36 +466,37 @@ public interface ImageInputStream extends DataInput { long getFlushedPosition(); /** - * Returns true if this ImageInputStream caches data in order - * to allow seeking backwards. + * Returns true if this ImageInputStream caches data in order to allow + * seeking backwards. * - * @return true if this ImageInputStream caches data in order - * to allow seeking backwards, false otherwise. + * @return true, if this ImageInputStream caches data in order to allow + * seeking backwards, false otherwise. */ boolean isCached(); /** - * Returns true if this ImageInputStream caches data in order - * to allow seeking backwards, and keeps it in memory. + * Returns true if this ImageInputStream caches data in order to allow + * seeking backwards, and keeps it in memory. * - * @return true if this ImageInputStream caches data in order - * to allow seeking backwards, and keeps it in memory. + * @return true, if this ImageInputStream caches data in order to allow + * seeking backwards, and keeps it in memory. */ boolean isCachedMemory(); /** - * Returns true if this ImageInputStream caches data in order - * to allow seeking backwards, and keeps it in a temporary file. + * Returns true if this ImageInputStream caches data in order to allow + * seeking backwards, and keeps it in a temporary file. * - * @return true if this ImageInputStream caches data in order - * to allow seeking backwards, and keeps it in a temporary file. + * @return true, if this ImageInputStream caches data in order to allow + * seeking backwards, and keeps it in a temporary file. */ boolean isCachedFile(); /** * Closes this stream. * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ void close() throws IOException; } diff --git a/awt/javax/imageio/stream/ImageInputStreamImpl.java b/awt/javax/imageio/stream/ImageInputStreamImpl.java index 83ac13a..d79da41 100644 --- a/awt/javax/imageio/stream/ImageInputStreamImpl.java +++ b/awt/javax/imageio/stream/ImageInputStreamImpl.java @@ -18,6 +18,7 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio.stream; import java.io.EOFException; @@ -25,38 +26,54 @@ import java.io.IOException; import java.nio.ByteOrder; /** - * The ImageInputStreamImpl abstract class implements - * the ImageInputStream interface. + * The ImageInputStreamImpl abstract class implements the ImageInputStream + * interface. + * + * @since Android 1.0 */ public abstract class ImageInputStreamImpl implements ImageInputStream { - /** The byte order. */ + /** + * The byte order. + */ protected ByteOrder byteOrder = ByteOrder.BIG_ENDIAN; - /** The stream position. */ + /** + * The stream position. + */ protected long streamPos = 0; - - /** The flushed position. */ + + /** + * The flushed position. + */ protected long flushedPos = 0; - - /** The bit offset. */ + + /** + * The bit offset. + */ protected int bitOffset = 0; - /** The closed. */ + /** + * The closed. + */ private boolean closed = false; - /** The position stack. */ + /** + * The position stack. + */ private final PositionStack posStack = new PositionStack(); /** * Instantiates a new ImageInputStreamImpl. */ - public ImageInputStreamImpl() {} + public ImageInputStreamImpl() { + } /** * Check if the stream is closed and if true, throws an IOException. * - * @throws IOException Signals that the stream is closed. + * @throws IOException + * if the stream is closed. */ protected final void checkClosed() throws IOException { if (closed) { @@ -106,7 +123,7 @@ public abstract class ImageInputStreamImpl implements ImageInputStream { if (b < 0) { throw new EOFException("EOF reached"); } - return (byte) b; + return (byte)b; } public int readUnsignedByte() throws IOException { @@ -125,58 +142,57 @@ public abstract class ImageInputStreamImpl implements ImageInputStream { throw new EOFException("EOF reached"); } - return byteOrder == ByteOrder.BIG_ENDIAN ? - (short) ((b1 << 8) | (b2 & 0xff)) : - (short) ((b2 << 8) | (b1 & 0xff)); + return byteOrder == ByteOrder.BIG_ENDIAN ? (short)((b1 << 8) | (b2 & 0xff)) + : (short)((b2 << 8) | (b1 & 0xff)); } public int readUnsignedShort() throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public char readChar() throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public int readInt() throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public long readUnsignedInt() throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public long readLong() throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public float readFloat() throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public double readDouble() throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public String readLine() throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public String readUTF() throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public void readFully(byte[] b, int off, int len) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } @@ -185,32 +201,32 @@ public abstract class ImageInputStreamImpl implements ImageInputStream { } public void readFully(short[] s, int off, int len) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public void readFully(char[] c, int off, int len) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public void readFully(int[] i, int off, int len) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public void readFully(long[] l, int off, int len) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public void readFully(float[] f, int off, int len) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public void readFully(double[] d, int off, int len) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } @@ -230,12 +246,12 @@ public abstract class ImageInputStreamImpl implements ImageInputStream { } public int readBit() throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public long readBits(int numBits) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } @@ -244,12 +260,12 @@ public abstract class ImageInputStreamImpl implements ImageInputStream { } public int skipBytes(int n) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public long skipBytes(long n) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } @@ -272,7 +288,7 @@ public abstract class ImageInputStreamImpl implements ImageInputStream { } public void reset() throws IOException { - //-- TODO bit pos + // -- TODO bit pos if (!posStack.isEmpty()) { long p = posStack.pop(); if (p < flushedPos) { @@ -290,7 +306,7 @@ public abstract class ImageInputStreamImpl implements ImageInputStream { throw new IndexOutOfBoundsException("Trying to flush within already flushed portion"); } flushedPos = pos; - //-- TODO implement + // -- TODO implement } public void flush() throws IOException { @@ -302,15 +318,15 @@ public abstract class ImageInputStreamImpl implements ImageInputStream { } public boolean isCached() { - return false; //def + return false; // def } public boolean isCachedMemory() { - return false; //def + return false; // def } public boolean isCachedFile() { - return false; //def + return false; // def } public void close() throws IOException { @@ -322,7 +338,8 @@ public abstract class ImageInputStreamImpl implements ImageInputStream { /** * Finalizes this object. * - * @throws Throwable if an error occurs. + * @throws Throwable + * if an error occurs. */ @Override protected void finalize() throws Throwable { @@ -339,25 +356,31 @@ public abstract class ImageInputStreamImpl implements ImageInputStream { * The Class PositionStack. */ private static class PositionStack { - - /** The Constant SIZE. */ + + /** + * The Constant SIZE. + */ private static final int SIZE = 10; - /** The values. */ + /** + * The values. + */ private long[] values = new long[SIZE]; - - /** The pos. */ - private int pos = 0; + /** + * The pos. + */ + private int pos = 0; /** * Push. * - * @param v the v + * @param v + * the v. */ void push(long v) { if (pos >= values.length) { - ensure(pos+1); + ensure(pos + 1); } values[pos++] = v; } @@ -365,7 +388,7 @@ public abstract class ImageInputStreamImpl implements ImageInputStream { /** * Pop. * - * @return the long + * @return the long. */ long pop() { return values[--pos]; @@ -374,7 +397,7 @@ public abstract class ImageInputStreamImpl implements ImageInputStream { /** * Checks if is empty. * - * @return true, if is empty + * @return true, if is empty. */ boolean isEmpty() { return pos == 0; @@ -383,7 +406,8 @@ public abstract class ImageInputStreamImpl implements ImageInputStream { /** * Ensure. * - * @param size the size + * @param size + * the size. */ private void ensure(int size) { long[] arr = new long[Math.max(2 * values.length, size)]; diff --git a/awt/javax/imageio/stream/ImageOutputStream.java b/awt/javax/imageio/stream/ImageOutputStream.java index e59b69d..28ec932 100644 --- a/awt/javax/imageio/stream/ImageOutputStream.java +++ b/awt/javax/imageio/stream/ImageOutputStream.java @@ -18,252 +18,289 @@ * @author Rustem V. Rafikov * @version $Revision: 1.2 $ */ + package javax.imageio.stream; import java.io.DataOutput; import java.io.IOException; /** - * The ImageOutputStream represents output stream interface that is - * used by ImageWriters. + * The ImageOutputStream represents output stream interface that is used by + * ImageWriters. + * + * @since Android 1.0 */ public interface ImageOutputStream extends DataOutput, ImageInputStream { /** - * Writes a single byte to the stream at the current position. - * - * @param b the int value, of which the 8 lowest bits - * will be written. + * Writes a single byte to the stream at the current position. * - * @throws IOException Signals that an I/O exception has occurred. + * @param b + * the integer value, of which the 8 lowest bits will be written. + * @throws IOException + * if an I/O exception has occurred. */ void write(int b) throws IOException; /** * Writes the bytes array to the stream. * - * @param b the byte array to be written. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param b + * the byte array to be written. + * @throws IOException + * if an I/O exception has occurred. */ void write(byte[] b) throws IOException; /** - * Writes a number of bytes from the specified byte array - * beggining from the specified offset. - * - * @param b the byte array. - * @param off the offset. - * @param len the number of bytes to be written. - * - * @throws IOException Signals that an I/O exception has occurred. + * Writes a number of bytes from the specified byte array beginning from the + * specified offset. + * + * @param b + * the byte array. + * @param off + * the offset. + * @param len + * the number of bytes to be written. + * @throws IOException + * if an I/O exception has occurred. */ void write(byte[] b, int off, int len) throws IOException; /** - * Writes the specified boolean value to the stream, 1 if it is true, - * 0 if it is false. - * - * @param b the boolean value to be written. + * Writes the specified boolean value to the stream, 1 if it is true, 0 if + * it is false. * - * @throws IOException Signals that an I/O exception has occurred. + * @param b + * the boolean value to be written. + * @throws IOException + * if an I/O exception has occurred. */ void writeBoolean(boolean b) throws IOException; /** - * Writes the 8 lowest bits of the specified int value to the stream. + * Writes the 8 lowest bits of the specified integer value to the stream. * - * @param b the specified int value. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param b + * the specified integer value. + * @throws IOException + * if an I/O exception has occurred. */ void writeByte(int b) throws IOException; /** - * Writes a short value to the output stream. - * - * @param v the short value to be written. + * Writes a short value to the output stream. * - * @throws IOException Signals that an I/O exception has occurred. + * @param v + * the short value to be written. + * @throws IOException + * if an I/O exception has occurred. */ void writeShort(int v) throws IOException; /** - * Writes the 16 lowest bits of the specified int value to the stream. + * Writes the 16 lowest bits of the specified integer value to the stream. * - * @param v the specified int value. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param v + * the specified integer value. + * @throws IOException + * if an I/O exception has occurred. */ void writeChar(int v) throws IOException; /** - * Writes an integer value to the output stream. - * - * @param v the integer value to be written. + * Writes an integer value to the output stream. * - * @throws IOException Signals that an I/O exception has occurred. + * @param v + * the integer value to be written. + * @throws IOException + * if an I/O exception has occurred. */ void writeInt(int v) throws IOException; /** * Write long. * - * @param v the long value - * - * @throws IOException Signals that an I/O exception has occurred. + * @param v + * the long value. + * @throws IOException + * if an I/O exception has occurred. */ void writeLong(long v) throws IOException; /** - * Writes a float value to the output stream. - * - * @param v the float which contains value to be written. + * Writes a float value to the output stream. * - * @throws IOException Signals that an I/O exception has occurred. + * @param v + * the float which contains value to be written. + * @throws IOException + * if an I/O exception has occurred. */ void writeFloat(float v) throws IOException; /** - * Writes a double value to the output stream. + * Writes a double value to the output stream. * - * @param v the double which contains value to be written. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param v + * the double which contains value to be written. + * @throws IOException + * if an I/O exception has occurred. */ void writeDouble(double v) throws IOException; /** * Writes the specified string to the stream. * - * @param s the string to be written. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param s + * the string to be written. + * @throws IOException + * if an I/O exception has occurred. */ void writeBytes(String s) throws IOException; /** * Writes the specified String to the output stream. * - * @param s the String to be written. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param s + * the String to be written. + * @throws IOException + * if an I/O exception has occurred. */ void writeChars(String s) throws IOException; /** - * Writes 2 bytes to the output stream in - * the modified UTF-8 representation of every character of - * the specified string. - * - * @param s the specified string to be written. + * Writes 2 bytes to the output stream in the modified UTF-8 representation + * of every character of the specified string. * - * @throws IOException Signals that an I/O exception has occurred. + * @param s + * the specified string to be written. + * @throws IOException + * if an I/O exception has occurred. */ void writeUTF(String s) throws IOException; /** - * Flushes the initial position in this stream prior to the - * specified stream position. + * Flushes the initial position in this stream prior to the specified stream + * position. * - * @param pos the position. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param pos + * the position. + * @throws IOException + * if an I/O exception has occurred. */ void flushBefore(long pos) throws IOException; - /** - * Writes a len number of short values from the specified array - * to the stream. - * - * @param s the shorts array to be written. - * @param off the offset in the char array. - * @param len the length of chars to be written. - * - * @throws IOException Signals that an I/O exception has occurred. + * Writes a len number of short values from the specified array to the + * stream. + * + * @param s + * the shorts array to be written. + * @param off + * the offset in the char array. + * @param len + * the length of chars to be written. + * @throws IOException + * if an I/O exception has occurred. */ void writeShorts(short[] s, int off, int len) throws IOException; /** * Writes a len number of chars to the stream. * - * @param c the char array to be written. - * @param off the offset in the char array. - * @param len the length of chars to be written. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param c + * the char array to be written. + * @param off + * the offset in the char array. + * @param len + * the length of chars to be written. + * @throws IOException + * if an I/O exception has occurred. */ void writeChars(char[] c, int off, int len) throws IOException; /** - * Writes a len number of int values from the specified array - * to the stream. - * - * @param i the int array to be written. - * @param off the offset in the char array. - * @param len the length of chars to be written. - * - * @throws IOException Signals that an I/O exception has occurred. + * Writes a len number of integer values from the specified array to the + * stream. + * + * @param i + * the integer array to be written. + * @param off + * the offset in the char array. + * @param len + * the length of chars to be written. + * @throws IOException + * if an I/O exception has occurred. */ void writeInts(int[] i, int off, int len) throws IOException; /** - * Writes a len number of long values from the specified array - * to the stream. - * - * @param l the long array to be written. - * @param off the offset in the char array. - * @param len the length of chars to be written. - * - * @throws IOException Signals that an I/O exception has occurred. + * Writes a len number of long values from the specified array to the + * stream. + * + * @param l + * the long array to be written. + * @param off + * the offset in the char array. + * @param len + * the length of chars to be written. + * @throws IOException + * if an I/O exception has occurred. */ void writeLongs(long[] l, int off, int len) throws IOException; /** - * Writes a len number of float values from the specified array - * to the stream. - * - * @param f the float array to be written. - * @param off the offset in the char array. - * @param len the length of chars to be written. - * - * @throws IOException Signals that an I/O exception has occurred. + * Writes a len number of float values from the specified array to the + * stream. + * + * @param f + * the float array to be written. + * @param off + * the offset in the char array. + * @param len + * the length of chars to be written. + * @throws IOException + * if an I/O exception has occurred. */ void writeFloats(float[] f, int off, int len) throws IOException; /** - * Writes a len number of double values from the specified array - * to the stream. - * - * @param d the double array to be written. - * @param off the offset in the char array. - * @param len the length of chars to be written. - * - * @throws IOException Signals that an I/O exception has occurred. + * Writes a len number of double values from the specified array to the + * stream. + * + * @param d + * the double array to be written. + * @param off + * the offset in the char array. + * @param len + * the length of chars to be written. + * @throws IOException + * if an I/O exception has occurred. */ void writeDoubles(double[] d, int off, int len) throws IOException; /** * Writes a single bit at the current position. * - * @param bit the an int whose least significant bit is to be - * written to the stream. - * - * @throws IOException Signals that an I/O exception has occurred. + * @param bit + * the integer whose least significant bit is to be written to + * the stream. + * @throws IOException + * if an I/O exception has occurred. */ void writeBit(int bit) throws IOException; /** - * Writes a sequence of bits beggining from the current position. - * - * @param bits a long value containing the bits to be written, - * starting with the bit in position numBits - 1 down to the - * least significant bit. - * @param numBits the number of significant bit , - * it can be between 0 and 64. - * - * @throws IOException Signals that an I/O exception has occurred. + * Writes a sequence of bits beginning from the current position. + * + * @param bits + * the long value containing the bits to be written, starting + * with the bit in position numBits - 1 down to the least + * significant bit. + * @param numBits + * the number of significant bit, it can be between 0 and 64. + * @throws IOException + * if an I/O exception has occurred. */ void writeBits(long bits, int numBits) throws IOException; diff --git a/awt/javax/imageio/stream/ImageOutputStreamImpl.java b/awt/javax/imageio/stream/ImageOutputStreamImpl.java index c3d80fa..0fef78f 100644 --- a/awt/javax/imageio/stream/ImageOutputStreamImpl.java +++ b/awt/javax/imageio/stream/ImageOutputStreamImpl.java @@ -18,6 +18,7 @@ * @author Rustem V. Rafikov * @version $Revision: 1.3 $ */ + package javax.imageio.stream; import java.io.IOException; @@ -29,16 +30,19 @@ import java.nio.ByteOrder; */ /** - * The ImageOutputStreamImpl abstract class implements - * the ImageOutputStream interface. + * The ImageOutputStreamImpl abstract class implements the ImageOutputStream + * interface. + * + * @since Android 1.0 */ -public abstract class ImageOutputStreamImpl extends ImageInputStreamImpl - implements ImageOutputStream { +public abstract class ImageOutputStreamImpl extends ImageInputStreamImpl implements + ImageOutputStream { /** * Instantiates a new ImageOutputStreamImpl. */ - public ImageOutputStreamImpl() {} + public ImageOutputStreamImpl() { + } public abstract void write(int b) throws IOException; @@ -62,7 +66,7 @@ public abstract class ImageOutputStreamImpl extends ImageInputStreamImpl } else { } - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } @@ -76,7 +80,7 @@ public abstract class ImageOutputStreamImpl extends ImageInputStreamImpl } else { } - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } @@ -86,7 +90,7 @@ public abstract class ImageOutputStreamImpl extends ImageInputStreamImpl } else { } - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } @@ -108,62 +112,63 @@ public abstract class ImageOutputStreamImpl extends ImageInputStreamImpl } public void writeUTF(String s) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public void writeShorts(short[] s, int off, int len) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public void writeChars(char[] c, int off, int len) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public void writeInts(int[] i, int off, int len) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public void writeLongs(long[] l, int off, int len) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public void writeFloats(float[] f, int off, int len) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public void writeDoubles(double[] d, int off, int len) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public void writeBit(int bit) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } public void writeBits(long bits, int numBits) throws IOException { - //-- TODO implement + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } /** - * Flushes the bits. This method should be called in the write - * methods by subclasses. + * Flushes the bits. This method should be called in the write methods by + * subclasses. * - * @throws IOException Signals that an I/O exception has occurred. + * @throws IOException + * if an I/O exception has occurred. */ protected final void flushBits() throws IOException { if (bitOffset == 0) { return; } - - //-- TODO implement + + // -- TODO implement throw new UnsupportedOperationException("Not implemented yet"); } } diff --git a/awt/javax/imageio/stream/MemoryCacheImageInputStream.java b/awt/javax/imageio/stream/MemoryCacheImageInputStream.java index a3d470b..d7fc791 100644 --- a/awt/javax/imageio/stream/MemoryCacheImageInputStream.java +++ b/awt/javax/imageio/stream/MemoryCacheImageInputStream.java @@ -15,7 +15,6 @@ * limitations under the License. */ - package javax.imageio.stream; import org.apache.harmony.x.imageio.stream.RandomAccessMemoryCache; @@ -24,22 +23,29 @@ import java.io.IOException; import java.io.InputStream; /** - * The MemoryCacheImageInputStream class implements ImageInputStream - * using a memory buffer for caching the data. + * The MemoryCacheImageInputStream class implements ImageInputStream using a + * memory buffer for caching the data. + * + * @since Android 1.0 */ -public class MemoryCacheImageInputStream extends ImageInputStreamImpl { - - /** The is. */ +public class MemoryCacheImageInputStream extends ImageInputStreamImpl { + + /** + * The is. + */ private InputStream is; - - /** The ramc. */ + + /** + * The ramc. + */ private RandomAccessMemoryCache ramc = new RandomAccessMemoryCache(); /** - * Instantiates a new MemoryCacheImageInputStream - * which reads from the specified InputStream. + * Instantiates a new MemoryCacheImageInputStream which reads from the + * specified InputStream. * - * @param stream the InputStream to be read. + * @param stream + * the InputStream to be read. */ public MemoryCacheImageInputStream(InputStream stream) { if (stream == null) { diff --git a/awt/javax/imageio/stream/MemoryCacheImageOutputStream.java b/awt/javax/imageio/stream/MemoryCacheImageOutputStream.java index 96ded43..1df40a3 100644 --- a/awt/javax/imageio/stream/MemoryCacheImageOutputStream.java +++ b/awt/javax/imageio/stream/MemoryCacheImageOutputStream.java @@ -15,7 +15,6 @@ * limitations under the License. */ - package javax.imageio.stream; import org.apache.harmony.x.imageio.stream.RandomAccessMemoryCache; @@ -23,24 +22,30 @@ import org.apache.harmony.x.imageio.stream.RandomAccessMemoryCache; import java.io.OutputStream; import java.io.IOException; - /** - * The MemoryCacheImageOutputStream class implements ImageOutputStream - * using a memory buffer for caching the data. + * The MemoryCacheImageOutputStream class implements ImageOutputStream using a + * memory buffer for caching the data. + * + * @since Android 1.0 */ public class MemoryCacheImageOutputStream extends ImageOutputStreamImpl { - - /** The os. */ + + /** + * The os. + */ OutputStream os; - - /** The ramc. */ + + /** + * The ramc. + */ RandomAccessMemoryCache ramc = new RandomAccessMemoryCache(); /** - * Instantiates a new MemoryCacheImageOutputStream - * which writes to the specified OutputStream. + * Instantiates a new MemoryCacheImageOutputStream which writes to the + * specified OutputStream. * - * @param stream the OutputStream. + * @param stream + * the OutputStream. */ public MemoryCacheImageOutputStream(OutputStream stream) { if (stream == null) { @@ -125,6 +130,6 @@ public class MemoryCacheImageOutputStream extends ImageOutputStreamImpl { ramc.getData(os, nBytes, flushedPosition); ramc.freeBefore(newFlushedPosition); - os.flush(); + os.flush(); } } diff --git a/awt/javax/imageio/stream/package.html b/awt/javax/imageio/stream/package.html new file mode 100644 index 0000000..6cf53c3 --- /dev/null +++ b/awt/javax/imageio/stream/package.html @@ -0,0 +1,8 @@ +<html> + <body> + <p> + This package contains classes and interfaces for handling images with low-level I/O operations. + </p> + @since Android 1.0 + </body> +</html> diff --git a/awt/org/apache/harmony/awt/internal/nls/Messages.java b/awt/org/apache/harmony/awt/internal/nls/Messages.java index 96762c9..c340358 100644 --- a/awt/org/apache/harmony/awt/internal/nls/Messages.java +++ b/awt/org/apache/harmony/awt/internal/nls/Messages.java @@ -71,7 +71,9 @@ public class Messages { * @return String the message for that key in the system message bundle. */ static public String getString(String msg) { + // BEGIN android-changed return MsgHelp.getString(msg); + // END android-changed } /** @@ -138,6 +140,12 @@ public class Messages { * @return String the message for that key in the system message bundle. */ static public String getString(String msg, Object[] args) { + // BEGIN android-changed return MsgHelp.getString(msg, args); + // END android-changed } + + // BEGIN android-note + // Duplicate code was dropped in favor of using MsgHelp. + // END android-note } diff --git a/awt/org/apache/harmony/beans/internal/nls/Messages.java b/awt/org/apache/harmony/beans/internal/nls/Messages.java index 727c757..51e8168 100644 --- a/awt/org/apache/harmony/beans/internal/nls/Messages.java +++ b/awt/org/apache/harmony/beans/internal/nls/Messages.java @@ -30,8 +30,17 @@ import java.util.Locale; import java.util.MissingResourceException; import java.util.ResourceBundle; -import org.apache.harmony.kernel.vm.VM; -import org.apache.harmony.luni.util.MsgHelp; +// BEGIN android-deleted +/* + * For Android, this module is a separate library and not part of the + * boot classpath, so its resources won't be found on the boot classpath + * as is assumed by MsgHelp.getString(). We instead use a local MsgHelp + * which bottoms out in a call to the useful part of its lower-level + * namesake. + */ +//import org.apache.harmony.kernel.vm.VM; +//import org.apache.harmony.luni.util.MsgHelp; +// END android-deleted /** * This class retrieves strings from a resource bundle and returns them, @@ -49,8 +58,10 @@ import org.apache.harmony.luni.util.MsgHelp; */ public class Messages { - private static final String sResource = - "org.apache.harmony.beans.internal.nls.messages"; //$NON-NLS-1$ + // BEGIN android-deleted + // private static final String sResource = + // "org.apache.harmony.beans.internal.nls.messages"; //$NON-NLS-1$ + // END android-deleted /** * Retrieves a message which has no arguments. @@ -60,7 +71,9 @@ public class Messages { * @return String the message for that key in the system message bundle. */ static public String getString(String msg) { - return MsgHelp.getString(sResource, msg); + // BEGIN android-changed + return MsgHelp.getString(msg); + // END android-changed } /** @@ -127,6 +140,12 @@ public class Messages { * @return String the message for that key in the system message bundle. */ static public String getString(String msg, Object[] args) { - return MsgHelp.getString(sResource, msg, args); + // BEGIN android-changed + return MsgHelp.getString(msg, args); + // END android-changed } + + // BEGIN android-note + // Duplicate code was dropped in favor of using MsgHelp. + // END android-note } diff --git a/awt/org/apache/harmony/beans/internal/nls/MsgHelp.java b/awt/org/apache/harmony/beans/internal/nls/MsgHelp.java new file mode 100644 index 0000000..68faabf --- /dev/null +++ b/awt/org/apache/harmony/beans/internal/nls/MsgHelp.java @@ -0,0 +1,86 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * This implementation is based on the class of the same name in + * org.apache.harmony.luni.util. + */ + +package org.apache.harmony.beans.internal.nls; + +import java.io.IOException; +import java.io.InputStream; +import java.util.logging.Logger; +import java.util.Locale; +import java.util.PropertyResourceBundle; +import java.util.ResourceBundle; +import java.util.MissingResourceException; + +/** + * This class contains helper methods for loading resource bundles and + * formatting external message strings. + */ +public final class MsgHelp { + /** name of the resource for this class */ + private static final String RESOURCE_NAME = + "/org/apache/harmony/beans/internal/nls/messages.properties"; + + /** the resource bundle for this class */ + private static final ResourceBundle THE_BUNDLE; + + static { + ResourceBundle rb = null; + + try { + InputStream in = MsgHelp.class.getResourceAsStream( + RESOURCE_NAME); + rb = new PropertyResourceBundle(in); + } catch (IOException ex) { + Logger.global.warning("Couldn't read resource bundle: " + + ex); + } catch (RuntimeException ex) { + // Shouldn't happen, but deal at least somewhat gracefully. + Logger.global.warning("Couldn't find resource bundle: " + + ex); + } + + THE_BUNDLE = rb; + } + + public static String getString(String msg) { + if (THE_BUNDLE == null) { + return msg; + } + try { + return THE_BUNDLE.getString(msg); + } catch (MissingResourceException e) { + return "Missing message: " + msg; + } + } + + static public String getString(String msg, Object[] args) { + String format = msg; + if (THE_BUNDLE != null) { + try { + format = THE_BUNDLE.getString(msg); + } catch (MissingResourceException e) { + } + } + + return org.apache.harmony.luni.util.MsgHelp.format(format, args); + } +} diff --git a/awt/org/apache/harmony/beans/internal/nls/messages.properties b/awt/resources/org/apache/harmony/beans/internals/nls/messages.properties index 72b1c8c..72b1c8c 100644 --- a/awt/org/apache/harmony/beans/internal/nls/messages.properties +++ b/awt/resources/org/apache/harmony/beans/internals/nls/messages.properties |