home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161a.iso / handson / files / copyjava.exe / com / sun / java / swing / DefaultDesktopManager.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-26  |  5.2 KB  |  284 lines

  1. package com.sun.java.swing;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Dimension;
  6. import java.awt.Rectangle;
  7. import java.beans.PropertyVetoException;
  8.  
  9. public class DefaultDesktopManager implements DesktopManager {
  10.    static final String PREVIOUS_BOUNDS_PROPERTY = "previousBounds";
  11.    static final String HAS_BEEN_ICONIFIED_PROPERTY = "wasIconOnce";
  12.  
  13.    public void openFrame(JInternalFrame var1) {
  14.       if (var1.getDesktopIcon().getParent() != null) {
  15.          var1.getDesktopIcon().getParent().add(var1);
  16.          this.removeIconFor(var1);
  17.       }
  18.  
  19.    }
  20.  
  21.    public void closeFrame(JInternalFrame var1) {
  22.       if (((Component)var1).getParent() != null) {
  23.          Container var2 = ((Component)var1).getParent();
  24.          var2.remove(var1);
  25.          ((Component)var2).repaint(((JComponent)var1).getX(), ((JComponent)var1).getY(), ((JComponent)var1).getWidth(), ((JComponent)var1).getHeight());
  26.       }
  27.  
  28.       this.removeIconFor(var1);
  29.       if (this.getPreviousBounds(var1) != null) {
  30.          this.setPreviousBounds(var1, (Rectangle)null);
  31.       }
  32.  
  33.       if (this.wasIcon(var1)) {
  34.          this.setWasIcon(var1, (Boolean)null);
  35.       }
  36.  
  37.    }
  38.  
  39.    public void maximizeFrame(JInternalFrame var1) {
  40.       Rectangle var2;
  41.       if (!var1.isIcon()) {
  42.          this.setPreviousBounds(var1, ((Component)var1).getBounds());
  43.          var2 = ((Component)var1).getParent().getBounds();
  44.       } else {
  45.          Container var3 = var1.getDesktopIcon().getParent();
  46.          if (var3 == null) {
  47.             return;
  48.          }
  49.  
  50.          var2 = ((Component)var3).getBounds();
  51.  
  52.          try {
  53.             var1.setIcon(false);
  54.          } catch (PropertyVetoException var5) {
  55.          }
  56.       }
  57.  
  58.       this.setBoundsForFrame(var1, 0, 0, var2.width, var2.height);
  59.  
  60.       try {
  61.          var1.setSelected(true);
  62.       } catch (PropertyVetoException var4) {
  63.       }
  64.  
  65.       this.removeIconFor(var1);
  66.    }
  67.  
  68.    public void minimizeFrame(JInternalFrame var1) {
  69.       if (this.getPreviousBounds(var1) != null) {
  70.          Rectangle var2 = this.getPreviousBounds(var1);
  71.          this.setPreviousBounds(var1, (Rectangle)null);
  72.  
  73.          try {
  74.             var1.setSelected(true);
  75.          } catch (PropertyVetoException var4) {
  76.          }
  77.  
  78.          if (var1.isIcon()) {
  79.             try {
  80.                var1.setIcon(false);
  81.             } catch (PropertyVetoException var3) {
  82.             }
  83.          }
  84.  
  85.          this.setBoundsForFrame(var1, var2.x, var2.y, var2.width, var2.height);
  86.       }
  87.  
  88.       this.removeIconFor(var1);
  89.    }
  90.  
  91.    public void iconifyFrame(JInternalFrame var1) {
  92.       JInternalFrame.JDesktopIcon var2 = var1.getDesktopIcon();
  93.       if (!this.wasIcon(var1)) {
  94.          Rectangle var4 = this.getBoundsForIconOf(var1);
  95.          ((Component)var2).setBounds(var4.x, var4.y, var4.width, var4.height);
  96.          this.setWasIcon(var1, Boolean.TRUE);
  97.       }
  98.  
  99.       Container var3 = ((Component)var1).getParent();
  100.       var3.remove(var1);
  101.       var3.add(var2);
  102.       ((Component)var3).repaint(((JComponent)var1).getX(), ((JComponent)var1).getY(), ((JComponent)var1).getWidth(), ((JComponent)var1).getHeight());
  103.  
  104.       try {
  105.          var1.setSelected(false);
  106.       } catch (PropertyVetoException var5) {
  107.       }
  108.    }
  109.  
  110.    public void deiconifyFrame(JInternalFrame var1) {
  111.       JInternalFrame.JDesktopIcon var2 = var1.getDesktopIcon();
  112.       if (((Component)var2).getParent() != null) {
  113.          ((Component)var2).getParent().add(var1);
  114.          this.removeIconFor(var1);
  115.  
  116.          try {
  117.             var1.setSelected(true);
  118.          } catch (PropertyVetoException var3) {
  119.          }
  120.       }
  121.    }
  122.  
  123.    public void activateFrame(JInternalFrame var1) {
  124.       Container var2 = ((Component)var1).getParent();
  125.       if (var2 == null) {
  126.          var2 = var1.getDesktopIcon().getParent();
  127.          if (var2 == null) {
  128.             return;
  129.          }
  130.       }
  131.  
  132.       Component[] var3;
  133.       if (var2 instanceof JLayeredPane) {
  134.          JLayeredPane var10000 = (JLayeredPane)var2;
  135.          JLayeredPane var10001 = (JLayeredPane)var2;
  136.          var3 = var10000.getComponentsInLayer(JLayeredPane.getLayer(var1));
  137.       } else {
  138.          var3 = var2.getComponents();
  139.       }
  140.  
  141.       int var5 = var3.length;
  142.  
  143.       for(int var4 = 0; var4 < var5; ++var4) {
  144.          if (var3[var4] != var1 && var3[var4] instanceof JInternalFrame) {
  145.             JInternalFrame var9 = (JInternalFrame)var3[var4];
  146.             if (var9.isSelected()) {
  147.                try {
  148.                   var9.setSelected(false);
  149.                } catch (PropertyVetoException var7) {
  150.                }
  151.             }
  152.          } else if (var3[var4] instanceof JInternalFrame.JDesktopIcon && var3[var4] != var1.getDesktopIcon()) {
  153.             JInternalFrame var6 = ((JInternalFrame.JDesktopIcon)var3[var4]).getInternalFrame();
  154.             if (var6.isSelected()) {
  155.                try {
  156.                   var6.setSelected(false);
  157.                } catch (PropertyVetoException var8) {
  158.                }
  159.             }
  160.          }
  161.       }
  162.  
  163.       var1.moveToFront();
  164.    }
  165.  
  166.    public void deactivateFrame(JInternalFrame var1) {
  167.    }
  168.  
  169.    public void beginDraggingFrame(JComponent var1) {
  170.    }
  171.  
  172.    public void dragFrame(JComponent var1, int var2, int var3) {
  173.       this.setBoundsForFrame(var1, var2, var3, var1.getWidth(), var1.getHeight());
  174.    }
  175.  
  176.    public void endDraggingFrame(JComponent var1) {
  177.    }
  178.  
  179.    public void beginResizingFrame(JComponent var1, int var2) {
  180.    }
  181.  
  182.    public void resizeFrame(JComponent var1, int var2, int var3, int var4, int var5) {
  183.       this.setBoundsForFrame(var1, var2, var3, var4, var5);
  184.    }
  185.  
  186.    public void endResizingFrame(JComponent var1) {
  187.    }
  188.  
  189.    public void setBoundsForFrame(JComponent var1, int var2, int var3, int var4, int var5) {
  190.       boolean var6 = var1.getWidth() != var4 || var1.getHeight() != var5;
  191.       ((Component)var1).setBounds(var2, var3, var4, var5);
  192.       if (var6) {
  193.          ((Container)var1).validate();
  194.       }
  195.  
  196.    }
  197.  
  198.    protected void removeIconFor(JInternalFrame var1) {
  199.       JInternalFrame.JDesktopIcon var2 = var1.getDesktopIcon();
  200.       Container var3 = ((Component)var2).getParent();
  201.       if (var3 != null) {
  202.          var3.remove(var2);
  203.          ((Component)var3).repaint(((JComponent)var2).getX(), ((JComponent)var2).getY(), ((JComponent)var2).getWidth(), ((JComponent)var2).getHeight());
  204.       }
  205.  
  206.    }
  207.  
  208.    protected Rectangle getBoundsForIconOf(JInternalFrame var1) {
  209.       Rectangle var2 = ((Component)var1).getParent().getBounds();
  210.       Dimension var3 = var1.getDesktopIcon().getPreferredSize();
  211.       int var6 = var3.width;
  212.       int var7 = var3.height;
  213.       int var4 = 0;
  214.       int var5 = var2.height - var7;
  215.       if (((Component)var1).getParent() == null && var1.getDesktopIcon().getParent() == null) {
  216.          return new Rectangle(var4, var5, var6, var7);
  217.       } else {
  218.          Container var8 = ((Component)var1).getParent();
  219.          if (var8 == null) {
  220.             var8 = var1.getDesktopIcon().getParent();
  221.          }
  222.  
  223.          int var9 = var8.getComponentCount();
  224.          var8.getComponents();
  225.          int var12 = 0;
  226.          int var13 = var2.height;
  227.  
  228.          for(int var11 = var9 - 1; var11 >= 0; --var11) {
  229.             JInternalFrame var14 = null;
  230.             if (var8.getComponent(var11) instanceof JInternalFrame) {
  231.                var14 = (JInternalFrame)var8.getComponent(var11);
  232.             } else if (var8.getComponent(var11) instanceof JInternalFrame.JDesktopIcon) {
  233.                var14 = ((JInternalFrame.JDesktopIcon)var8.getComponent(var11)).getInternalFrame();
  234.             }
  235.  
  236.             if (var14 != null && var14 != var1 && this.wasIcon(var14)) {
  237.                Rectangle var10 = var14.getDesktopIcon().getBounds();
  238.                if (var10.y < var13) {
  239.                   var13 = var10.y;
  240.                   var12 = var10.x + var10.width;
  241.                } else if (var10.y == var13 && var10.x + var10.width > var12) {
  242.                   var12 = var10.x + var10.width;
  243.                }
  244.             }
  245.          }
  246.  
  247.          if (var13 != var2.height) {
  248.             var5 = var13;
  249.          }
  250.  
  251.          if (var12 + var6 > var2.width) {
  252.             var5 -= var7;
  253.             var4 = 0;
  254.          } else {
  255.             var4 = var12;
  256.          }
  257.  
  258.          return new Rectangle(var4, var5, var6, var7);
  259.       }
  260.    }
  261.  
  262.    protected void setPreviousBounds(JInternalFrame var1, Rectangle var2) {
  263.       if (var2 != null) {
  264.          ((JComponent)var1).putClientProperty("previousBounds", var2);
  265.       }
  266.  
  267.    }
  268.  
  269.    protected Rectangle getPreviousBounds(JInternalFrame var1) {
  270.       return (Rectangle)((JComponent)var1).getClientProperty("previousBounds");
  271.    }
  272.  
  273.    protected void setWasIcon(JInternalFrame var1, Boolean var2) {
  274.       if (var2 != null) {
  275.          ((JComponent)var1).putClientProperty("wasIconOnce", var2);
  276.       }
  277.  
  278.    }
  279.  
  280.    protected boolean wasIcon(JInternalFrame var1) {
  281.       return ((JComponent)var1).getClientProperty("wasIconOnce") == Boolean.TRUE;
  282.    }
  283. }
  284.