Package org.jnode.awt.swingpeers

Source Code of org.jnode.awt.swingpeers.DesktopFramePeer

/*
* $Id$
*
* Copyright (C) 2003-2014 JNode.org
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This library 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 Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library; If not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package org.jnode.awt.swingpeers;

import gnu.classpath.SystemProperties;
import java.awt.AWTEvent;
import java.awt.AWTException;
import java.awt.BufferCapabilities;
import java.awt.BufferCapabilities.FlipContents;
import java.awt.Color;
import java.awt.Component;
import java.awt.Cursor;
import java.awt.Dialog;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Frame;
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.Rectangle;
import java.awt.event.KeyEvent;
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.ContainerPeer;
import java.awt.peer.FramePeer;
import org.apache.log4j.Logger;
import org.jnode.awt.JNodeGenericPeer;
import org.jnode.awt.JNodeGraphics2D;
import org.jnode.awt.GraphicsFactory;
import sun.awt.CausedFocusEvent;
import sun.java2d.pipe.Region;

/**
* @author Ewout Prangsma (epr@users.sourceforge.net)
*/
final class DesktopFramePeer extends JNodeGenericPeer<SwingToolkit, DesktopFrame> implements
    FramePeer {

    private final SwingToolkit toolkit;

    private static final Logger log = Logger.getLogger(DesktopFramePeer.class);

    private static final Point TOP_LEFT = new Point(0, 0);

    private Insets insets;

    private final Frame awtFrame;

    /**
     * Initialize
     *
     * @param toolkit
     * @param frame
     */
    public DesktopFramePeer(SwingToolkit toolkit, DesktopFrame frame) {
        super(toolkit, frame);
        this.toolkit = toolkit;
        this.awtFrame = frame;
    }

    /**
     * @see java.awt.peer.FramePeer#getState()
     */
    public int getState() {
        // TODO Auto-generated method stub
        return 0;
    }

    /**
     * @see java.awt.peer.FramePeer#setIconImage(java.awt.Image)
     */
    public void setIconImage(Image image) {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.FramePeer#setMaximizedBounds(java.awt.Rectangle)
     */
    public void setMaximizedBounds(Rectangle r) {
        // Ignore
    }

    /**
     * @see java.awt.peer.FramePeer#setMenuBar(java.awt.MenuBar)
     */
    public void setMenuBar(MenuBar mb) {
    }

    /**
     * @see java.awt.peer.FramePeer#setResizable(boolean)
     */
    public void setResizable(boolean resizable) {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.FramePeer#setState(int)
     */
    public void setState(int state) {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.FramePeer#setTitle(java.lang.String)
     */
    public void setTitle(String title) {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.WindowPeer#toBack()
     */
    public void toBack() {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.WindowPeer#toFront()
     */
    public void toFront() {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ContainerPeer#beginLayout()
     */
    public void beginLayout() {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ContainerPeer#beginValidate()
     */
    public void beginValidate() {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ContainerPeer#endLayout()
     */
    public void endLayout() {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ContainerPeer#endValidate()
     */
    public void endValidate() {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ContainerPeer#getInsets()
     */
    public Insets getInsets() {
        if (insets == null) {
            insets = new Insets(0, 0, 0, 0);
        }
        return insets;
    }

    /**
     * @see java.awt.peer.ContainerPeer#insets()
     */
    public Insets insets() {
        return getInsets();
    }

    /**
     * @see java.awt.peer.ContainerPeer#isPaintPending()
     */
    public boolean isPaintPending() {
        // TODO Auto-generated method stub
        return false;
    }

    /**
     * @see java.awt.peer.ComponentPeer#canDetermineObscurity()
     */
    public boolean canDetermineObscurity() {
        // TODO Auto-generated method stub
        return false;
    }

    /**
     * @see java.awt.peer.ComponentPeer#checkImage(java.awt.Image, int, int,
     *      java.awt.image.ImageObserver)
     */
    public int checkImage(Image img, int width, int height, ImageObserver ob) {
        return toolkit.checkImage(img, width, height, ob);
    }

    /**
     * @see java.awt.peer.ComponentPeer#coalescePaintEvent(java.awt.event.PaintEvent)
     */
    public void coalescePaintEvent(PaintEvent e) {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ComponentPeer#createBuffers(int,
     *      java.awt.BufferCapabilities)
     */
    public void createBuffers(int x, BufferCapabilities capabilities)
        throws AWTException {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ComponentPeer#createImage(java.awt.image.ImageProducer)
     */
    public Image createImage(ImageProducer producer) {
        return toolkit.createImage(producer);
    }

    /**
     * @see java.awt.peer.ComponentPeer#createImage(int, int)
     */
    public Image createImage(int width, int height) {
        return toolkit.createCompatibleImage(width, height);
    }

    /**
     * @see java.awt.peer.ComponentPeer#createVolatileImage(int, int)
     */
    public VolatileImage createVolatileImage(int width, int height) {
        return toolkit.createVolatileImage(width, height);
    }

    /**
     * @see java.awt.peer.ComponentPeer#destroyBuffers()
     */
    public void destroyBuffers() {
    }

    /**
     * @see java.awt.peer.ComponentPeer#disable()
     */
    public void disable() {
        setEnabled(false);
    }

    /**
     * @see java.awt.peer.ComponentPeer#enable()
     */
    public void enable() {
        setEnabled(true);
    }

    /**
     * @see java.awt.peer.ComponentPeer#flip(java.awt.BufferCapabilities.FlipContents)
     */
    public void flip(FlipContents contents) {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ComponentPeer#getBackBuffer()
     */
    public Image getBackBuffer() {
        // TODO Auto-generated method stub
        return null;
    }

    /**
     * @see java.awt.peer.ComponentPeer#getColorModel()
     */
    public ColorModel getColorModel() {
        return toolkit.getColorModel();
    }

    /**
     * @see java.awt.peer.ComponentPeer#getFontMetrics(java.awt.Font)
     */
    public FontMetrics getFontMetrics(Font f) {
        return toolkit.getFontMetrics(f);
    }

    /**
     * @see java.awt.peer.ComponentPeer#getGraphics()
     */
    public Graphics getGraphics() {
        return SystemProperties.getProperty("gnu.javax.swing.noGraphics2D") == null ?
            new JNodeGraphics2D(this) : GraphicsFactory.getInstance().createGraphics(this);
    }

    /**
     * @see java.awt.peer.ComponentPeer#getGraphicsConfiguration()
     */
    public GraphicsConfiguration getGraphicsConfiguration() {
        return toolkit.getGraphicsConfiguration();
    }

    /**
     * @see java.awt.peer.ComponentPeer#getLocationOnScreen()
     */
    public Point getLocationOnScreen() {
        return new Point(TOP_LEFT);
    }

    /**
     * @see java.awt.peer.ComponentPeer#getMinimumSize()
     */
    public Dimension getMinimumSize() {
        return toolkit.getScreenSize();
    }

    /**
     * @see java.awt.peer.ComponentPeer#getPreferredSize()
     */
    public Dimension getPreferredSize() {
        return toolkit.getScreenSize();
    }

    /**
     * Response on paint events.
     */
    @SuppressWarnings("unused")
    private void processPaintEvent(PaintEvent event) {
        final Graphics g = getGraphics();
        if (g != null) {
            if (event.getID() == PaintEvent.PAINT) {
                targetComponent.paint(g);
            } else {
                targetComponent.update(g);
            }
            g.dispose();
        }
    }

    /**
     * @see java.awt.peer.ComponentPeer#handleEvent(java.awt.AWTEvent)
     */
    public void handleEvent(AWTEvent event) {
        final int id = event.getID();
        switch (id) {
            case PaintEvent.PAINT:
            case PaintEvent.UPDATE: {
                //processPaintEvent((PaintEvent)event);
                break;
            }
            case KeyEvent.KEY_PRESSED:
            case KeyEvent.KEY_RELEASED:
            case KeyEvent.KEY_TYPED: {
                targetComponent.processKeyEvent((KeyEvent) event);
                break;
            }
        }
    }

    /**
     * @see java.awt.peer.ComponentPeer#handlesWheelScrolling()
     */
    public boolean handlesWheelScrolling() {
        // TODO Auto-generated method stub
        return false;
    }

    /**
     * @see java.awt.peer.ComponentPeer#hide()
     */
    public final void hide() {
        setVisible(false);
    }

    /**
     * @see java.awt.peer.ComponentPeer#isFocusable()
     */
    public boolean isFocusable() {
        return awtFrame.isFocusable();
    }

    /**
     * @see java.awt.peer.ComponentPeer#isObscured()
     */
    public boolean isObscured() {
        // TODO Auto-generated method stub
        return false;
    }

    /**
     * @see java.awt.peer.ComponentPeer#minimumSize()
     */
    public Dimension minimumSize() {
        return getMinimumSize();
    }

    /**
     * @see java.awt.peer.ComponentPeer#paint(java.awt.Graphics)
     */
    public void paint(Graphics graphics) {
        log.debug("Paint");
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ComponentPeer#preferredSize()
     */
    public Dimension preferredSize() {
        return getPreferredSize();
    }

    /**
     * @see java.awt.peer.ComponentPeer#prepareImage(java.awt.Image, int, int,
     *      java.awt.image.ImageObserver)
     */
    public boolean prepareImage(Image img, int width, int height,
                                ImageObserver ob) {
        return toolkit.prepareImage(img, width, height, ob);
    }

    /**
     * @see java.awt.peer.ComponentPeer#print(java.awt.Graphics)
     */
    public void print(Graphics graphics) {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ComponentPeer#repaint(long, int, int, int, int)
     */
    public void repaint(long tm, int x, int y, int width, int height) {
        //log.info("repaint (" + tm + ", " + x + ", " + y + ", " + width + ", "
//                + height);
        if (x == 0 && y == 0 && width == 0 && height == 0) {
            return;
        }

        toolkit.postEvent(
            new PaintEvent(awtFrame, PaintEvent.UPDATE, new Rectangle(x,
                y, width, height)));
    }

    /**
     * @see java.awt.peer.ComponentPeer#requestFocus()
     */
    public void requestFocus() {
        awtFrame.requestFocus();
    }

    /**
     * @see java.awt.peer.ComponentPeer#requestFocus(java.awt.Component,
     *      boolean, boolean, long)
     */
    public boolean requestFocus(Component source, boolean bool1, boolean bool2,
                                long x) {
        return awtFrame.requestFocusInWindow();
    }

    /**
     * @see java.awt.peer.ComponentPeer#reshape(int, int, int, int)
     */
    public void reshape(int x, int y, int width, int height) {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ComponentPeer#setBackground(java.awt.Color)
     */
    public void setBackground(Color color) {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ComponentPeer#setBounds(int, int, int, int)
     */
    public void setBounds(int x, int y, int width, int height) {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ComponentPeer#setCursor(java.awt.Cursor)
     */
    public void setCursor(Cursor cursor) {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ComponentPeer#setEnabled(boolean)
     */
    public void setEnabled(boolean enabled) {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ComponentPeer#setEventMask(long)
     */
    public void setEventMask(long mask) {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ComponentPeer#setFont(java.awt.Font)
     */
    public void setFont(Font font) {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ComponentPeer#setForeground(java.awt.Color)
     */
    public void setForeground(Color color) {
        // TODO Auto-generated method stub

    }

    /**
     * @see java.awt.peer.ComponentPeer#setVisible(boolean)
     */
    public void setVisible(boolean visible) {
        if (visible) {
            paintAWTComponent();
        }
    }

    /**
     * @see java.awt.peer.ComponentPeer#show()
     */
    public final void show() {
        setVisible(true);
    }

    /**
     * @see java.awt.peer.ComponentPeer#updateCursorImmediately()
     */
    public void updateCursorImmediately() {
        // TODO Auto-generated method stub

    }

    public boolean isRestackSupported() {
        return false//TODO implement it
    }

    public void setBoundsPrivate(int x, int y, int width, int height) {
        //TODO implement it
    }

    public void updateAlwaysOnTop() {
        //TODO implement it
    }

    public boolean requestWindowFocus() {
        return false//TODO implement it
    }

    public void cancelPendingPaint(int x, int y, int width, int height) {
        //TODO implement it
    }

    public void restack() {
        //TODO implement it
    }

    public Rectangle getBounds() {
        return null//TODO implement it
    }

    public void reparent(ContainerPeer parent) {
        //TODO implement it
    }

    public void setBounds(int x, int y, int width, int height, int z) {
        //TODO implement it
    }

    public boolean isReparentSupported() {
        return false//TODO implement it
    }

    public void layout() {
        //TODO implement it
    }

    public void setAlwaysOnTop(boolean alwaysOnTop) {
        //TODO implement it
    }

    public void updateFocusableWindowState() {
        //TODO implement it
    }

    public void setModalBlocked(Dialog blocker, boolean blocked) {
        //TODO implement it
    }

    public void updateMinimumSize() {
        //TODO implement it
    }

    public void updateIconImages() {
        //TODO implement it
    }


    public boolean requestFocus(Component lightweightChild, boolean temporary, boolean focusedWindowChangeAllowed,
                                long time, CausedFocusEvent.Cause cause) {
        //TODO implement it
        return false;
    }

    //jnode openjdk
    public Rectangle getBoundsPrivate() {
        //TODO implement it
        return null;
    }

    protected final void paintAWTComponent() {
        if (targetComponent != null) {
            toolkit.postEvent(new PaintEvent(targetComponent, PaintEvent.PAINT, targetComponent
                .getBounds()));
        }
    }

    public void applyShape(Region shape) {
        //TODO implement it
    }
}
TOP

Related Classes of org.jnode.awt.swingpeers.DesktopFramePeer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.