/* * Copyright (c) 2000, 2015, 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.event.FocusEvent.Cause; 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 * @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, 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 java.awt.peer.ComponentPeer#isReparentSupported */ public boolean isReparentSupported() { return false; } /** * @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 */ 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. */ public void setZOrder(ComponentPeer above) { } public boolean updateGraphicsData(GraphicsConfiguration gc) { return false; } public GraphicsConfiguration getAppropriateGraphicsConfiguration( GraphicsConfiguration gc) { return gc; } }