home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / sun / awt / windows / WComponentPeer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  6.6 KB  |  283 lines

  1. package sun.awt.windows;
  2.  
  3. import java.awt.AWTEvent;
  4. import java.awt.Color;
  5. import java.awt.Component;
  6. import java.awt.Container;
  7. import java.awt.Cursor;
  8. import java.awt.Dimension;
  9. import java.awt.Font;
  10. import java.awt.FontMetrics;
  11. import java.awt.Graphics;
  12. import java.awt.Image;
  13. import java.awt.Point;
  14. import java.awt.Rectangle;
  15. import java.awt.Toolkit;
  16. import java.awt.event.PaintEvent;
  17. import java.awt.image.ColorModel;
  18. import java.awt.image.ImageObserver;
  19. import java.awt.image.ImageProducer;
  20. import java.awt.peer.ComponentPeer;
  21. import java.awt.peer.LightweightPeer;
  22. import sun.awt.ScreenUpdater;
  23. import sun.awt.SunToolkit;
  24. import sun.awt.UpdateClient;
  25.  
  26. abstract class WComponentPeer extends WObjectPeer implements ComponentPeer, UpdateClient {
  27.    private boolean repaintPending;
  28.    private Rectangle repaintRect;
  29.    private int updateX1;
  30.    private int updateY1;
  31.    private int updateX2;
  32.    private int updateY2;
  33.  
  34.    public synchronized native void show();
  35.  
  36.    public synchronized native void hide();
  37.  
  38.    public synchronized native void enable();
  39.  
  40.    public synchronized native void disable();
  41.  
  42.    public native Point getLocationOnScreen();
  43.  
  44.    public void setVisible(boolean var1) {
  45.       if (var1) {
  46.          this.show();
  47.       } else {
  48.          this.hide();
  49.       }
  50.    }
  51.  
  52.    public void setEnabled(boolean var1) {
  53.       if (var1) {
  54.          this.enable();
  55.       } else {
  56.          this.disable();
  57.       }
  58.    }
  59.  
  60.    public void setBounds(int var1, int var2, int var3, int var4) {
  61.       this.reshape(var1, var2, var3, var4);
  62.    }
  63.  
  64.    public void paint(Graphics var1) {
  65.       var1.setColor(((Component)super.target).getForeground());
  66.       var1.setFont(((Component)super.target).getFont());
  67.       ((Component)super.target).paint(var1);
  68.    }
  69.  
  70.    public void repaint(long var1, int var3, int var4, int var5, int var6) {
  71.       this.addRepaintArea(var3, var4, var5, var6);
  72.       ScreenUpdater.updater.notify(this, var1);
  73.    }
  74.  
  75.    public void print(Graphics var1) {
  76.       ((WGraphics)var1).print(this);
  77.    }
  78.  
  79.    public synchronized native void reshape(int var1, int var2, int var3, int var4);
  80.  
  81.    public native void handleEvent(AWTEvent var1);
  82.  
  83.    public Dimension getMinimumSize() {
  84.       return ((Component)super.target).getSize();
  85.    }
  86.  
  87.    public Dimension getPreferredSize() {
  88.       return this.getMinimumSize();
  89.    }
  90.  
  91.    public boolean isFocusTraversable() {
  92.       return false;
  93.    }
  94.  
  95.    public ColorModel getColorModel() {
  96.       return WToolkit.getStaticColorModel();
  97.    }
  98.  
  99.    public Toolkit getToolkit() {
  100.       return Toolkit.getDefaultToolkit();
  101.    }
  102.  
  103.    public Graphics getGraphics() {
  104.       WGraphics var1 = new WGraphics(this);
  105.       ((Graphics)var1).setColor(((Component)super.target).getForeground());
  106.       ((Graphics)var1).setFont(((Component)super.target).getFont());
  107.       return var1;
  108.    }
  109.  
  110.    public FontMetrics getFontMetrics(Font var1) {
  111.       return WFontMetrics.getFontMetrics(var1);
  112.    }
  113.  
  114.    public void dispose() {
  115.       WToolkit.targetDisposedPeer(super.target, this);
  116.       ScreenUpdater.updater.removeClient(this);
  117.       this._dispose();
  118.    }
  119.  
  120.    synchronized native void _dispose();
  121.  
  122.    public synchronized void setForeground(Color var1) {
  123.       this._setForeground(var1.getRGB());
  124.    }
  125.  
  126.    public synchronized void setBackground(Color var1) {
  127.       this._setBackground(var1.getRGB());
  128.    }
  129.  
  130.    public native void _setForeground(int var1);
  131.  
  132.    public native void _setBackground(int var1);
  133.  
  134.    public synchronized native void setFont(Font var1);
  135.  
  136.    public synchronized native void requestFocus();
  137.  
  138.    public synchronized native void setCursor(Cursor var1);
  139.  
  140.    public Image createImage(ImageProducer var1) {
  141.       return new WImage(var1);
  142.    }
  143.  
  144.    public Image createImage(int var1, int var2) {
  145.       return new WOffScreenImage((Component)super.target, var1, var2);
  146.    }
  147.  
  148.    public boolean prepareImage(Image var1, int var2, int var3, ImageObserver var4) {
  149.       return WToolkit.prepareScrImage(var1, var2, var3, var4);
  150.    }
  151.  
  152.    public int checkImage(Image var1, int var2, int var3, ImageObserver var4) {
  153.       return WToolkit.checkScrImage(var1, var2, var3, var4);
  154.    }
  155.  
  156.    public void updateClient(Object var1) {
  157.       if (this.repaintPending) {
  158.          this.postEvent(new PaintEvent((Component)super.target, 801, this.repaintRect));
  159.          this.repaintPending = false;
  160.       }
  161.  
  162.    }
  163.  
  164.    public String toString() {
  165.       return this.getClass().getName() + "[" + super.target + "]";
  166.    }
  167.  
  168.    WComponentPeer(Component var1) {
  169.       super.target = var1;
  170.       this.repaintRect = new Rectangle();
  171.       this.repaintPending = false;
  172.       Container var2 = SunToolkit.getNativeContainer(var1);
  173.       WComponentPeer var3 = (WComponentPeer)WToolkit.targetToPeer(var2);
  174.       this.create(var3);
  175.       this.initialize();
  176.       this.start();
  177.    }
  178.  
  179.    abstract void create(WComponentPeer var1);
  180.  
  181.    synchronized native void start();
  182.  
  183.    void initialize() {
  184.       this.initZOrderPosition();
  185.       if (((Component)super.target).isVisible()) {
  186.          this.show();
  187.       }
  188.  
  189.       Color var1 = ((Component)super.target).getForeground();
  190.       if (var1 != null) {
  191.          this.setForeground(var1);
  192.       }
  193.  
  194.       Font var2 = ((Component)super.target).getFont();
  195.       if (var2 != null) {
  196.          this.setFont(var2);
  197.       }
  198.  
  199.       if (!((Component)super.target).isEnabled()) {
  200.          this.disable();
  201.       }
  202.  
  203.       Rectangle var3 = ((Component)super.target).getBounds();
  204.       this.setBounds(var3.x, var3.y, var3.width, var3.height);
  205.       Cursor var4 = ((Component)super.target).getCursor();
  206.       if (var4 != Cursor.getPredefinedCursor(0)) {
  207.          this.setCursor(var4);
  208.       }
  209.  
  210.    }
  211.  
  212.    private synchronized void addRepaintArea(int var1, int var2, int var3, int var4) {
  213.       if (!this.repaintPending) {
  214.          this.repaintPending = true;
  215.          this.repaintRect = new Rectangle(var1, var2, var3, var4);
  216.       } else {
  217.          this.repaintRect = this.repaintRect.union(new Rectangle(var1, var2, var3, var4));
  218.       }
  219.    }
  220.  
  221.    void handleRepaint(int var1, int var2, int var3, int var4) {
  222.    }
  223.  
  224.    void handleExpose(int var1, int var2, int var3, int var4) {
  225.       Graphics var5 = this.getGraphics();
  226.  
  227.       try {
  228.          var5.clearRect(var1, var2, var3, var4);
  229.       } catch (NullPointerException var6) {
  230.       }
  231.  
  232.       this.postEvent(new PaintEvent((Component)super.target, 800, new Rectangle(var1, var2, var3, var4)));
  233.    }
  234.  
  235.    void handlePaint(int var1, int var2, int var3, int var4) {
  236.       this.postEvent(new PaintEvent((Component)super.target, 800, new Rectangle(var1, var2, var3, var4)));
  237.    }
  238.  
  239.    void postEvent(AWTEvent var1) {
  240.       WToolkit.postEvent(var1);
  241.    }
  242.  
  243.    protected void finalize() throws Throwable {
  244.       this._dispose();
  245.       super.finalize();
  246.    }
  247.  
  248.    public void beginValidate() {
  249.       this._beginValidate();
  250.    }
  251.  
  252.    public native void _beginValidate();
  253.  
  254.    public native void endValidate();
  255.  
  256.    public void initZOrderPosition() {
  257.       Container var1 = ((Component)super.target).getParent();
  258.       WComponentPeer var2 = null;
  259.       if (var1 != null) {
  260.          Component[] var3 = var1.getComponents();
  261.  
  262.          for(int var4 = 0; var4 < var3.length && var3[var4] != super.target; ++var4) {
  263.             Object var5 = WToolkit.targetToPeer(var3[var4]);
  264.             if (var5 != null && !(var5 instanceof LightweightPeer)) {
  265.                var2 = (WComponentPeer)var5;
  266.             }
  267.          }
  268.       }
  269.  
  270.       this.setZOrderPosition(var2);
  271.    }
  272.  
  273.    native void setZOrderPosition(WComponentPeer var1);
  274.  
  275.    public Dimension minimumSize() {
  276.       return this.getMinimumSize();
  277.    }
  278.  
  279.    public Dimension preferredSize() {
  280.       return this.getPreferredSize();
  281.    }
  282. }
  283.