/*
 * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

package sun.awt;

import java.awt.AWTException;
import java.awt.BufferCapabilities;
import java.awt.Color;
import java.awt.Component;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.GraphicsConfiguration;
import java.awt.Image;
import java.awt.Insets;
import java.awt.MenuBar;
import java.awt.Point;
import java.awt.Event;
import java.awt.event.PaintEvent;
import java.awt.image.ColorModel;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;
import java.awt.image.VolatileImage;
import java.awt.peer.CanvasPeer;
import java.awt.peer.LightweightPeer;
import java.awt.peer.PanelPeer;
import java.awt.peer.ComponentPeer;
import java.awt.peer.ContainerPeer;
import java.awt.Rectangle;
import sun.java2d.pipe.Region;


Implements the LightweightPeer interface for use in lightweight components that have no native window associated with them. This gets created by default in Component so that Component and Container can be directly extended to create useful components written entirely in java. These components must be hosted somewhere higher up in the component tree by a native container (such as a Frame). This implementation provides no useful semantics and serves only as a marker. One could provide alternative implementations in java that do something useful for some of the other peer interfaces to minimize the native code. This was renamed from java.awt.LightweightPeer (a horrible and confusing name) and moved from java.awt.Toolkit into sun.awt as a public class in its own file.
Author:Timothy Prinzing, Michael Martak
/** * Implements the LightweightPeer interface for use in lightweight components * that have no native window associated with them. This gets created by * default in Component so that Component and Container can be directly * extended to create useful components written entirely in java. These * components must be hosted somewhere higher up in the component tree by a * native container (such as a Frame). * * This implementation provides no useful semantics and serves only as a * marker. One could provide alternative implementations in java that do * something useful for some of the other peer interfaces to minimize the * native code. * * This was renamed from java.awt.LightweightPeer (a horrible and confusing * name) and moved from java.awt.Toolkit into sun.awt as a public class in * its own file. * * @author Timothy Prinzing * @author Michael Martak */
public class NullComponentPeer implements LightweightPeer, CanvasPeer, PanelPeer { public boolean isObscured() { return false; } public boolean canDetermineObscurity() { return false; } public boolean isFocusable() { return false; } public void setVisible(boolean b) { } public void show() { } public void hide() { } public void setEnabled(boolean b) { } public void enable() { } public void disable() { } public void paint(Graphics g) { } public void repaint(long tm, int x, int y, int width, int height) { } public void print(Graphics g) { } public void setBounds(int x, int y, int width, int height, int op) { } public void reshape(int x, int y, int width, int height) { } public void coalescePaintEvent(PaintEvent e) { } public boolean handleEvent(Event e) { return false; } public void handleEvent(java.awt.AWTEvent arg0) { } public Dimension getPreferredSize() { return new Dimension(1,1); } public Dimension getMinimumSize() { return new Dimension(1,1); } public ColorModel getColorModel() { return null; } public Graphics getGraphics() { return null; } public GraphicsConfiguration getGraphicsConfiguration() { return null; } public FontMetrics getFontMetrics(Font font) { return null; } public void dispose() { // no native code } public void setForeground(Color c) { } public void setBackground(Color c) { } public void setFont(Font f) { } public void updateCursorImmediately() { } public void setCursor(Cursor cursor) { } public boolean requestFocus (Component lightweightChild, boolean temporary, boolean focusedWindowChangeAllowed, long time, CausedFocusEvent.Cause cause) { return false; } public Image createImage(ImageProducer producer) { return null; } public Image createImage(int width, int height) { return null; } public boolean prepareImage(Image img, int w, int h, ImageObserver o) { return false; } public int checkImage(Image img, int w, int h, ImageObserver o) { return 0; } public Dimension preferredSize() { return getPreferredSize(); } public Dimension minimumSize() { return getMinimumSize(); } public Point getLocationOnScreen() { return new Point(0,0); } public Insets getInsets() { return insets(); } public void beginValidate() { } public void endValidate() { } public Insets insets() { return new Insets(0, 0, 0, 0); } public boolean isPaintPending() { return false; } public boolean handlesWheelScrolling() { return false; } public VolatileImage createVolatileImage(int width, int height) { return null; } public void beginLayout() { } public void endLayout() { } public void createBuffers(int numBuffers, BufferCapabilities caps) throws AWTException { throw new AWTException( "Page-flipping is not allowed on a lightweight component"); } public Image getBackBuffer() { throw new IllegalStateException( "Page-flipping is not allowed on a lightweight component"); } public void flip(int x1, int y1, int x2, int y2, BufferCapabilities.FlipContents flipAction) { throw new IllegalStateException( "Page-flipping is not allowed on a lightweight component"); } public void destroyBuffers() { }
See Also:
  • isReparentSupported.isReparentSupported
/** * @see java.awt.peer.ComponentPeer#isReparentSupported */
public boolean isReparentSupported() { return false; }
See Also:
  • reparent.reparent
/** * @see java.awt.peer.ComponentPeer#reparent */
public void reparent(ContainerPeer newNativeParent) { throw new UnsupportedOperationException(); } public void layout() { } public Rectangle getBounds() { return new Rectangle(0, 0, 0, 0); }
Applies the shape to the native component window.
Since:1.7
/** * Applies the shape to the native component window. * @since 1.7 */
public void applyShape(Region shape) { }
Lowers this component at the bottom of the above HW peer. If the above parameter is null then the method places this component at the top of the Z-order.
/** * Lowers this component at the bottom of the above HW peer. If the above parameter * is null then the method places this component at the top of the Z-order. */
public void setZOrder(ComponentPeer above) { } public boolean updateGraphicsData(GraphicsConfiguration gc) { return false; } public GraphicsConfiguration getAppropriateGraphicsConfiguration( GraphicsConfiguration gc) { return gc; } }