Commit b9960613 by Bryce McKinlay

Makefile.am: Move beans and applet classes to awt_java_source_files.

2000-08-09  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am: Move beans and applet classes to
	awt_java_source_files.
	* Makefile.in: Rebuilt.
	* java/awt/Color.java (getTransparency): New method.
	* java/awt/Component.java: Various updates.
	* java/awt/Container.java (removeNotify): Call super.removeNotify()
	after dealing with children.
	* java/awt/Toolkit.java (changeSupport): Renamed from pcsupport.
	* java/awt/Window.java: Various new methods and updates.
	* java/awt/color/ICC_Profile.java (getNumComponents): Cast profileID
	to int for switch.
	* java/awt/event/KeyEvent.java (paramString): Initialize `r'.
	* java/awt/event/WindowEvent.java (paramString): Ditto.
	* java/awt/geom/Dimension2D.java (clone): Wrap super call with
	try/catch block.
	* java/awt/geom/Point2D.java (clone): Ditto.
	* java/awt/geom/RectangularShape.java (clone): Ditto.
	* java/awt/image/ColorModel.java (bits, cspace, transparency,
	hasAlpha, isAlphaPremultiplied): Make package-private, not private.

From-SVN: r35589
parent 7e8dad18
...@@ -87,4 +87,12 @@ public class Color extends Object implements Paint, java.io.Serializable ...@@ -87,4 +87,12 @@ public class Color extends Object implements Paint, java.io.Serializable
{ {
return rgba; return rgba;
} }
public int getTransparency()
{
if (getAlpha() == 0xFF)
return Transparency.OPAQUE;
else
return Transparency.TRANSLUCENT;
}
} }
...@@ -21,12 +21,15 @@ import java.beans.PropertyChangeSupport; ...@@ -21,12 +21,15 @@ import java.beans.PropertyChangeSupport;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
// import javax.accessibility.AccessibleContext; // import javax.accessibility.AccessibleContext;
/* Status: Incomplete. The event dispatch mechanism is implemented. All /**
other methods defined in the J2SE 1.3 API javadoc exist, but are mostly * The root of all evil.
incomplete or only stubs; except for methods relating to the Drag and Drop, *
Input Method, and Accessibility frameworks: These methods are present but * Status: Incomplete. The event dispatch mechanism is implemented. All
commented out. */ * other methods defined in the J2SE 1.3 API javadoc exist, but are mostly
* incomplete or only stubs; except for methods relating to the Drag and Drop,
* Input Method, and Accessibility frameworks: These methods are present but
* commented out.
*/
public abstract class Component implements ImageObserver, MenuContainer, public abstract class Component implements ImageObserver, MenuContainer,
java.io.Serializable java.io.Serializable
{ {
...@@ -38,11 +41,11 @@ public abstract class Component implements ImageObserver, MenuContainer, ...@@ -38,11 +41,11 @@ public abstract class Component implements ImageObserver, MenuContainer,
RIGHT_ALIGNMENT = 1.0f, RIGHT_ALIGNMENT = 1.0f,
TOP_ALIGNMENT = 0.0f; TOP_ALIGNMENT = 0.0f;
/* Make the treelock a String so that it can easily be identified /* Make the treelock a String so that it can easily be identified
in debug dumps. We clone the String in order to avoid a conflict in in debug dumps. We clone the String in order to avoid a conflict in
the unlikely event that some other package uses exactly the same string the unlikely event that some other package uses exactly the same string
as a lock object. */ as a lock object. */
static Object treeLock = new String("AWT_TREE_LOCK"); static Object treeLock = new String("AWT_TREE_LOCK");
/* Serialized fields from the serialization spec. */ /* Serialized fields from the serialization spec. */
// FIXME: Default values? // FIXME: Default values?
...@@ -140,7 +143,8 @@ public abstract class Component implements ImageObserver, MenuContainer, ...@@ -140,7 +143,8 @@ public abstract class Component implements ImageObserver, MenuContainer,
/** @since 1.3 */ /** @since 1.3 */
public GraphicsConfiguration getGraphicsConfiguration() public GraphicsConfiguration getGraphicsConfiguration()
{ {
// FIXME if (parent != null)
return parent.getGraphicsConfiguration();
return null; return null;
} }
...@@ -166,8 +170,7 @@ public abstract class Component implements ImageObserver, MenuContainer, ...@@ -166,8 +170,7 @@ public abstract class Component implements ImageObserver, MenuContainer,
/** @since 1.2 */ /** @since 1.2 */
public boolean isDisplayable() public boolean isDisplayable()
{ {
// FIXME return (peer != null);
return false;
} }
public boolean isVisible() public boolean isVisible()
...@@ -225,28 +228,38 @@ public abstract class Component implements ImageObserver, MenuContainer, ...@@ -225,28 +228,38 @@ public abstract class Component implements ImageObserver, MenuContainer,
// FIXME // FIXME
} }
/** @specnote Inspection by subclassing shows that Sun's implementation
calls show(boolean) which then calls show() or hide(). It is
the show() method that is overriden in subclasses like Window.
We do the same to preserve compatibility for subclasses. */
public void setVisible(boolean b) public void setVisible(boolean b)
{ {
visible = true; show (b);
// FIXME
} }
/** @deprecated */ /** @deprecated */
public void show() public void show()
{ {
setVisible(true); if (peer != null)
peer.setVisible(true);
this.visible = true;
} }
/** @deprecated */ /** @deprecated */
public void show(boolean b) public void show(boolean b)
{ {
setVisible(b); if (b)
show();
else
hide();
} }
/** @deprecated */ /** @deprecated */
public void hide() public void hide()
{ {
setVisible(false); if (peer != null)
peer.setVisible(false);
this.visible = false;
} }
public Color getForeground() public Color getForeground()
...@@ -256,6 +269,8 @@ public abstract class Component implements ImageObserver, MenuContainer, ...@@ -256,6 +269,8 @@ public abstract class Component implements ImageObserver, MenuContainer,
public void setForeground(Color c) public void setForeground(Color c)
{ {
if (peer != null)
peer.setForeground(c);
this.foreground = c; this.foreground = c;
} }
...@@ -266,6 +281,8 @@ public abstract class Component implements ImageObserver, MenuContainer, ...@@ -266,6 +281,8 @@ public abstract class Component implements ImageObserver, MenuContainer,
public void setBackground(Color c) public void setBackground(Color c)
{ {
if (peer != null)
peer.setBackground(c);
this.background = c; this.background = c;
} }
...@@ -276,6 +293,8 @@ public abstract class Component implements ImageObserver, MenuContainer, ...@@ -276,6 +293,8 @@ public abstract class Component implements ImageObserver, MenuContainer,
public void setFont(Font f) public void setFont(Font f)
{ {
if (peer != null)
peer.setFont(f);
this.font = f; this.font = f;
} }
...@@ -633,7 +652,7 @@ public abstract class Component implements ImageObserver, MenuContainer, ...@@ -633,7 +652,7 @@ public abstract class Component implements ImageObserver, MenuContainer,
public int checkImage(Image image, ImageObserver observer) public int checkImage(Image image, ImageObserver observer)
{ {
// FIXME // FIXME
return false; return 0;
} }
public int checkImage(Image image, int width, int height, ImageObserver observer) public int checkImage(Image image, int width, int height, ImageObserver observer)
...@@ -699,41 +718,6 @@ public abstract class Component implements ImageObserver, MenuContainer, ...@@ -699,41 +718,6 @@ public abstract class Component implements ImageObserver, MenuContainer,
{ {
dispatchEventImpl(e); dispatchEventImpl(e);
} }
/* This code needs to be split up and put in to dispatchEventImpl() in the
appropriate Component subclasses:
else if ((e.id <= WindowEvent.WINDOW_LAST
&& e.id >= WindowEvent.WINDOW_FIRST)
&& (windowListener != null
|| eventMask & AWTEvent.WINDOW_EVENT_MASK != 0))
processEvent(e);
else if ((e.id <= AdjustmentEvent.ADJUSTMENT_LAST
&& e.id >= AdjustmentEvent.ADJUSTMENT_FIRST)
&& (adjustmentListener != null
|| eventMask & AWTEvent.ADJUSTMENT_EVENT_MASK != 0))
processEvent(e);
else if ((e.id <= ItemEvent.ITEM_LAST
&& e.id >= ItemEvent.ITEM_FIRST)
&& (itemListener != null
|| eventMask & AWTEvent.ITEM_EVENT_MASK != 0))
processEvent(e);
else if ((e.id <= PaintEvent.PAINT_LAST
&& e.id >= PaintEvent.PAINT_FIRST)
&& (paintListener != null
|| eventMask & AWTEvent.PAINT_EVENT_MASK != 0))
processEvent(e);
else if ((e.id <= TextEvent.TEXT_LAST
&& e.id >= TextEvent.TEXT_FIRST)
&& (textListener != null
|| eventMask & AWTEvent.TEXT_EVENT_MASK != 0))
processEvent(e);
else if ((e.id <= InvocationEvent.INVOCATION_LAST
&& e.id >= InvocationEvent.INVOCATION_FIRST)
&& (invocationListener != null
|| eventMask & AWTEvent.INVOCATION_EVENT_MASK != 0))
processEvent(e);
}
*/
void dispatchEventImpl(AWTEvent e) void dispatchEventImpl(AWTEvent e)
{ {
...@@ -1218,12 +1202,16 @@ public abstract class Component implements ImageObserver, MenuContainer, ...@@ -1218,12 +1202,16 @@ public abstract class Component implements ImageObserver, MenuContainer,
public void addNotify() public void addNotify()
{ {
// FIXME if (peer == null)
peer = getToolkit().createComponent(this);
} }
public void removeNotify() public void removeNotify()
{ {
// FIXME if (peer != null)
peer.dispose();
peer = null;
visible = false;
} }
/** @deprecated */ /** @deprecated */
...@@ -1312,26 +1300,37 @@ public abstract class Component implements ImageObserver, MenuContainer, ...@@ -1312,26 +1300,37 @@ public abstract class Component implements ImageObserver, MenuContainer,
public void addPropertyChangeListener(PropertyChangeListener listener) public void addPropertyChangeListener(PropertyChangeListener listener)
{ {
if (changeSupport == null)
changeSupport = new PropertyChangeSupport(this);
changeSupport.addPropertyChangeListener(listener);
} }
public void removePropertyChangeListener(PropertyChangeListener listener) public void removePropertyChangeListener(PropertyChangeListener listener)
{ {
if (changeSupport != null)
changeSupport.removePropertyChangeListener(listener);
} }
public void addPropertyChangeListener(String propertyName, public void addPropertyChangeListener(String propertyName,
PropertyChangeListener listener) PropertyChangeListener listener)
{ {
if (changeSupport == null)
changeSupport = new PropertyChangeSupport(this);
changeSupport.addPropertyChangeListener(propertyName, listener);
} }
public void removePropertyChangeListener(String propertyName, public void removePropertyChangeListener(String propertyName,
PropertyChangeListener listener) PropertyChangeListener listener)
{ {
if (changeSupport != null)
changeSupport.removePropertyChangeListener(propertyName, listener);
} }
protected void firePropertyChange(String propertyName, Object oldValue, protected void firePropertyChange(String propertyName, Object oldValue,
Object newValue) Object newValue)
{ {
if (changeSupport != null)
changeSupport.firePropertyChange(propertyName, oldValue, newValue);
} }
public void setComponentOrientation(ComponentOrientation o) public void setComponentOrientation(ComponentOrientation o)
......
...@@ -15,6 +15,10 @@ import java.util.ResourceBundle; ...@@ -15,6 +15,10 @@ import java.util.ResourceBundle;
public class ComponentOrientation implements java.io.Serializable public class ComponentOrientation implements java.io.Serializable
{ {
// Here is a wild guess.
private static int HORIZONTAL_ID = 1 << 0,
LEFT_TO_RIGHT_ID = 1 << 1;
public static final ComponentOrientation LEFT_TO_RIGHT public static final ComponentOrientation LEFT_TO_RIGHT
= new ComponentOrientation(HORIZONTAL_ID & LEFT_TO_RIGHT_ID); = new ComponentOrientation(HORIZONTAL_ID & LEFT_TO_RIGHT_ID);
public static final ComponentOrientation RIGHT_TO_LEFT public static final ComponentOrientation RIGHT_TO_LEFT
...@@ -26,10 +30,6 @@ public class ComponentOrientation implements java.io.Serializable ...@@ -26,10 +30,6 @@ public class ComponentOrientation implements java.io.Serializable
// correct values? // correct values?
int orientation; int orientation;
// Here is a wild guess.
private static int HORIZONTAL_ID = 1 << 0,
LEFT_TO_RIGHT_ID = 1 << 1;
ComponentOrientation(int orientation) ComponentOrientation(int orientation)
{ {
this.orientation = orientation; this.orientation = orientation;
......
...@@ -433,7 +433,7 @@ public abstract class Container extends Component ...@@ -433,7 +433,7 @@ public abstract class Container extends Component
{ {
for (int i = 0; i < ncomponents; ++i) for (int i = 0; i < ncomponents; ++i)
component[i].removeNotify (); component[i].removeNotify ();
// FIXME: remove our peer. super.removeNotify();
} }
public boolean isAncestorOf (Component comp) public boolean isAncestorOf (Component comp)
......
...@@ -21,7 +21,7 @@ public abstract class Toolkit ...@@ -21,7 +21,7 @@ public abstract class Toolkit
{ {
static Toolkit defaultToolkit; static Toolkit defaultToolkit;
static EventQueue systemEventQueue = new EventQueue(); static EventQueue systemEventQueue = new EventQueue();
PropertyChangeSupport pcsupport = new PropertyChangeSupport(this); PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
Hashtable desktopProperties = new Hashtable(); Hashtable desktopProperties = new Hashtable();
public static Toolkit getDefaultToolkit() public static Toolkit getDefaultToolkit()
...@@ -216,7 +216,7 @@ public abstract class Toolkit ...@@ -216,7 +216,7 @@ public abstract class Toolkit
{ {
Object oldValue = getDesktopProperty(name); Object oldValue = getDesktopProperty(name);
desktopProperties.put(name, newValue); desktopProperties.put(name, newValue);
pcsupport.firePropertyChange(name, oldValue, newValue); changeSupport.firePropertyChange(name, oldValue, newValue);
} }
protected Object lazilyLoadDesktopProperty(String name) protected Object lazilyLoadDesktopProperty(String name)
...@@ -233,13 +233,13 @@ public abstract class Toolkit ...@@ -233,13 +233,13 @@ public abstract class Toolkit
public void addPropertyChangeListener(String name, public void addPropertyChangeListener(String name,
PropertyChangeListener pcl) PropertyChangeListener pcl)
{ {
pcsupport.addPropertyChangeListener(name, pcl); changeSupport.addPropertyChangeListener(name, pcl);
} }
public void removePropertyChangeListener(String name, public void removePropertyChangeListener(String name,
PropertyChangeListener pcl) PropertyChangeListener pcl)
{ {
pcsupport.removePropertyChangeListener(name, pcl); changeSupport.removePropertyChangeListener(name, pcl);
} }
public void addAWTEventListener(AWTEventListener listener, long eventMask) public void addAWTEventListener(AWTEventListener listener, long eventMask)
......
/* Copyright (C) 1999, 2000 Free Software Foundation /* Copyright (C) 1999, 2000 Free Software Foundation
This file is part of libjava. This file is part of libgcj.
This software is copyrighted work licensed under the terms of the This software is copyrighted work licensed under the terms of the
Libjava License. Please consult the file "LIBJAVA_LICENSE" for Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */ details. */
package java.awt; package java.awt;
...@@ -11,38 +11,167 @@ import java.awt.event.WindowEvent; ...@@ -11,38 +11,167 @@ import java.awt.event.WindowEvent;
import java.awt.event.WindowListener; import java.awt.event.WindowListener;
import java.awt.peer.WindowPeer; import java.awt.peer.WindowPeer;
import java.awt.peer.ComponentPeer; import java.awt.peer.ComponentPeer;
import java.util.EventListener;
import java.util.Locale; import java.util.Locale;
import java.util.ResourceBundle;
/* A very incomplete placeholder. */ /* Status: partially implemented. */
public class Window extends Container public class Window extends Container
{ {
public Window (Frame parent) // Serialized fields, from Sun's serialization spec.
// private FocusManager focusMgr; // FIXME: what is this?
private String warningString = null;
private int state = 0;
private int windowSerializedDataVersion = 0; // FIXME
private transient WindowListener windowListener;
private transient GraphicsConfiguration graphicsConfiguration;
public Window(Frame owner)
{
this (owner, null);
}
/** @since 1.2 */
public Window(Window owner)
{ {
this.parent = parent; this (owner, null);
}
/** @since 1.3 */
public Window(Window owner, GraphicsConfiguration gc)
{
/* FIXME: Security check
SecurityManager.checkTopLevelWindow(...)
if (gc != null
&& gc.getDevice().getType() != GraphicsDevice.TYPE_RASTER_SCREEN)
throw new IllegalArgumentException ("gc must be from a screen device");
if (gc == null)
graphicsConfiguration = GraphicsEnvironment.getLocalGraphicsEnvironment()
.getDefaultScreenDevice()
.getDefaultConfiguration();
else
*/
graphicsConfiguration = gc;
// FIXME: compiler bug // FIXME: compiler bug
// this.layoutMgr = new BorderLayout (); // this.layoutMgr = new BorderLayout ();
if (owner == null)
throw new IllegalArgumentException ("Owner can not be null");
this.parent = owner;
// FIXME: add to owner's "owned window" list
} }
public void addNotify () protected void finalize() throws Throwable
{
// FIXME: remove from owner's "owned window" list (Weak References)
}
public void addNotify()
{ {
if (peer == null) if (peer == null)
// FIXME: This cast should NOT be required. ??? Compiler bug ???
peer = (ComponentPeer) getToolkit ().createWindow (this); peer = (ComponentPeer) getToolkit ().createWindow (this);
super.addNotify ();
} }
public synchronized void addWindowListener (WindowListener listener) /** @specnote pack() doesn't appear to be called internally by show(), so
we duplicate some of the functionality. */
public void pack()
{ {
windowListener = AWTEventMulticaster.add (windowListener, listener); if (parent != null
&& !parent.isDisplayable())
parent.addNotify();
if (peer == null)
addNotify();
// FIXME: do layout stuff here
validate();
}
public void show ()
{
if (isVisible())
{
this.toFront();
return;
}
if (parent != null
&& !parent.isDisplayable())
parent.addNotify();
if (peer == null)
addNotify ();
validate ();
super.show ();
// FIXME: Is this call neccessary or do we assume the peer takes care of
// it?
// this.toFront();
}
public void hide()
{
// FIXME: call hide() on amy "owned" children here.
super.hide();
}
public void dispose()
{
// FIXME: first call removeNotify() on owned children
for (int i = 0; i < ncomponents; ++i)
component[i].removeNotify();
this.removeNotify();
} }
public void dispose () public void toBack ()
{ {
if (peer != null)
{
WindowPeer wp = (WindowPeer) peer;
wp.toBack ();
}
} }
public Component getFocusOwner () public void toFront ()
{ {
return null; // FIXME if (peer != null)
{
WindowPeer wp = (WindowPeer) peer;
wp.toFront ();
}
}
public Toolkit getToolkit()
{
// FIXME: why different from Component.getToolkit() ?
return super.getToolkit();
}
public final String getWarningString()
{
boolean secure = true;
/* boolean secure = SecurityManager.checkTopLevelWindow(...) */
if (!secure)
{
if (warningString != null)
return warningString;
else
{
String warning = System.getProperty("awt.appletWarning");
return warning;
}
}
return null;
} }
public Locale getLocale () public Locale getLocale ()
...@@ -50,20 +179,64 @@ public class Window extends Container ...@@ -50,20 +179,64 @@ public class Window extends Container
return locale == null ? Locale.getDefault () : locale; return locale == null ? Locale.getDefault () : locale;
} }
public String getWarningString () /*
/** @since 1.2
public InputContext getInputContext()
{ {
return warningString; // FIXME
} }
*/
public void pack () public void setCursor(Cursor cursor)
{ {
addNotify (); // FIXME: why different from Component.setCursor() ?
// FIXME super.setCursor(cursor);
}
public Window getOwner()
{
if (parent != null)
return (Window) parent;
else
return null;
} }
public boolean postEvent (Event evt) /** @since 1.2 */
public Window[] getOwnedWindows()
{ {
return false; // FIXME // FIXME: return array containing all the windows this window currently
// owns.
return null;
}
public synchronized void addWindowListener (WindowListener listener)
{
windowListener = AWTEventMulticaster.add (windowListener, listener);
}
public synchronized void removeWindowListener (WindowListener listener)
{
windowListener = AWTEventMulticaster.remove (windowListener, listener);
}
/** @since 1.3 */
public EventListener[] getListeners(Class listenerType)
{
if (listenerType == WindowListener.class)
return getListenersImpl(listenerType, windowListener);
else return super.getListeners(listenerType);
}
void dispatchEventImpl(AWTEvent e)
{
// Make use of event id's in order to avoid multiple instanceof tests.
if (e.id <= WindowEvent.WINDOW_LAST
&& e.id >= WindowEvent.WINDOW_FIRST
&& (windowListener != null
|| (eventMask & AWTEvent.WINDOW_EVENT_MASK) != 0))
processEvent(e);
else
super.dispatchEventImpl(e);
} }
protected void processEvent (AWTEvent evt) protected void processEvent (AWTEvent evt)
...@@ -105,41 +278,47 @@ public class Window extends Container ...@@ -105,41 +278,47 @@ public class Window extends Container
} }
} }
public synchronized void removeWindowListener (WindowListener listener) public Component getFocusOwner()
{ {
windowListener = AWTEventMulticaster.remove (windowListener, listener); // FIXME
return null;
} }
public void show () public boolean postEvent(Event e)
{ {
addNotify (); // FIXME
validate (); return false;
setVisible (true);
// FIXME: is there more to it?
} }
public void toBack () public boolean isShowing()
{ {
if (peer != null) // FIXME: Also check if window is within the boundary of the screen?
{ return isVisible();
WindowPeer wp = (WindowPeer) peer;
wp.toBack ();
}
} }
public void toFront () /** @since 1.2 */
public void applyResourceBundle(ResourceBundle rb)
{ {
if (peer != null) // FIXME
{
WindowPeer wp = (WindowPeer) peer;
wp.toFront ();
}
} }
// Serialized fields, from Sun's serialization spec. /** @since 1.2 */
// private FocusManager focusMgr; // FIXME: what is this? public void applyResourceBundle(String rbName)
private int state; {
private String warningString; ResourceBundle rb = ResourceBundle.getBundle(rbName);
if (rb != null)
applyResourceBundle(rb);
}
private transient WindowListener windowListener; /*
public AccessibleContext getAccessibleContext()
{
// FIXME
}
*/
public GraphicsConfiguration getGraphicsConfiguration()
{
return graphicsConfiguration;
}
} }
...@@ -24,7 +24,7 @@ public class ICC_Profile ...@@ -24,7 +24,7 @@ public class ICC_Profile
public int getNumComponents() public int getNumComponents()
{ {
switch (profileID) switch ((int) profileID)
{ {
case ColorSpace.CS_sRGB: case ColorSpace.CS_sRGB:
case ColorSpace.CS_LINEAR_RGB: case ColorSpace.CS_LINEAR_RGB:
......
...@@ -251,7 +251,7 @@ public class KeyEvent extends InputEvent ...@@ -251,7 +251,7 @@ public class KeyEvent extends InputEvent
public String paramString () public String paramString ()
{ {
String r; String r = "";
switch (id) switch (id)
{ {
case KEY_PRESSED: case KEY_PRESSED:
......
...@@ -35,7 +35,7 @@ public class WindowEvent extends ComponentEvent ...@@ -35,7 +35,7 @@ public class WindowEvent extends ComponentEvent
public String paramString () public String paramString ()
{ {
String r; String r = "";
switch (id) switch (id)
{ {
case WINDOW_ACTIVATED: case WINDOW_ACTIVATED:
......
...@@ -31,6 +31,10 @@ public abstract class Dimension2D implements Cloneable ...@@ -31,6 +31,10 @@ public abstract class Dimension2D implements Cloneable
public Object clone () public Object clone ()
{ {
return super.clone(); try
{
return super.clone ();
}
catch (CloneNotSupportedException _) {return null;}
} }
} }
...@@ -64,7 +64,11 @@ public abstract class Point2D implements Cloneable ...@@ -64,7 +64,11 @@ public abstract class Point2D implements Cloneable
public Object clone() public Object clone()
{ {
return super.clone(); try
{
return super.clone ();
}
catch (CloneNotSupportedException _) {return null;}
} }
public static class Double extends Point2D public static class Double extends Point2D
......
...@@ -170,7 +170,11 @@ public abstract class RectangularShape implements Shape, Cloneable ...@@ -170,7 +170,11 @@ public abstract class RectangularShape implements Shape, Cloneable
public Object clone () public Object clone ()
{ {
return super.clone (); try
{
return super.clone ();
}
catch (CloneNotSupportedException _) {return null;}
} }
// This implements the PathIterator for all RectangularShape objects // This implements the PathIterator for all RectangularShape objects
......
...@@ -54,11 +54,11 @@ public abstract class ColorModel implements Transparency ...@@ -54,11 +54,11 @@ public abstract class ColorModel implements Transparency
protected int pixel_bits; protected int pixel_bits;
protected int transferType; protected int transferType;
private int[] bits; int[] bits;
private ColorSpace cspace; ColorSpace cspace;
private int transparency; int transparency;
private boolean hasAlpha; boolean hasAlpha;
private boolean isAlphaPremultiplied; boolean isAlphaPremultiplied;
static int[] nArray(int value, int times) static int[] nArray(int value, int times)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment