home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 144 / DPCS0200.iso / Internet / Supanet / system / swing.jar / javax / swing / plaf / basic / BasicInternalFrameUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-05  |  10.5 KB  |  352 lines

  1. package javax.swing.plaf.basic;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Cursor;
  5. import java.awt.Dimension;
  6. import java.awt.IllegalComponentStateException;
  7. import java.awt.LayoutManager;
  8. import java.awt.event.ComponentListener;
  9. import java.beans.PropertyChangeListener;
  10. import javax.swing.DefaultDesktopManager;
  11. import javax.swing.DesktopManager;
  12. import javax.swing.Icon;
  13. import javax.swing.JComponent;
  14. import javax.swing.JInternalFrame;
  15. import javax.swing.KeyStroke;
  16. import javax.swing.LookAndFeel;
  17. import javax.swing.UIManager;
  18. import javax.swing.event.InternalFrameListener;
  19. import javax.swing.event.MouseInputAdapter;
  20. import javax.swing.event.MouseInputListener;
  21. import javax.swing.plaf.ComponentUI;
  22. import javax.swing.plaf.InternalFrameUI;
  23. import javax.swing.plaf.UIResource;
  24.  
  25. public class BasicInternalFrameUI extends InternalFrameUI {
  26.    protected JInternalFrame frame;
  27.    protected MouseInputAdapter borderListener;
  28.    protected PropertyChangeListener propertyChangeListener;
  29.    protected LayoutManager internalFrameLayout;
  30.    protected ComponentListener componentListener;
  31.    protected MouseInputListener glassPaneDispatcher;
  32.    protected JComponent northPane;
  33.    protected JComponent southPane;
  34.    protected JComponent westPane;
  35.    protected JComponent eastPane;
  36.    protected BasicInternalFrameTitlePane titlePane;
  37.    private static DesktopManager sharedDesktopManager;
  38.    private boolean clAdded = false;
  39.    protected KeyStroke openMenuKey;
  40.    private boolean keyBindingRegistered = false;
  41.    private boolean keyBindingActive = false;
  42.    private InternalFrameListener internalFrameListener = null;
  43.  
  44.    public BasicInternalFrameUI(JInternalFrame var1) {
  45.    }
  46.  
  47.    // $FF: synthetic method
  48.    static boolean access$0(BasicInternalFrameUI var0) {
  49.       return var0.clAdded;
  50.    }
  51.  
  52.    // $FF: synthetic method
  53.    static void access$1(BasicInternalFrameUI var0, boolean var1) {
  54.       var0.clAdded = var1;
  55.    }
  56.  
  57.    // $FF: synthetic method
  58.    static InternalFrameListener access$2(BasicInternalFrameUI var0) {
  59.       return var0.internalFrameListener;
  60.    }
  61.  
  62.    protected void activateFrame(JInternalFrame var1) {
  63.       this.getDesktopManager().activateFrame(var1);
  64.    }
  65.  
  66.    protected void closeFrame(JInternalFrame var1) {
  67.       this.getDesktopManager().closeFrame(var1);
  68.    }
  69.  
  70.    protected MouseInputAdapter createBorderListener(JInternalFrame var1) {
  71.       return new BorderListener(this);
  72.    }
  73.  
  74.    protected ComponentListener createComponentListener() {
  75.       return new ComponentHandler(this);
  76.    }
  77.  
  78.    protected DesktopManager createDesktopManager() {
  79.       return new DefaultDesktopManager();
  80.    }
  81.  
  82.    protected JComponent createEastPane(JInternalFrame var1) {
  83.       return null;
  84.    }
  85.  
  86.    protected MouseInputListener createGlassPaneDispatcher() {
  87.       return new GlassPaneDispatcher(this);
  88.    }
  89.  
  90.    protected void createInternalFrameListener() {
  91.       this.internalFrameListener = new BasicInternalFrameListener(this);
  92.    }
  93.  
  94.    protected LayoutManager createLayoutManager() {
  95.       return new InternalFrameLayout(this);
  96.    }
  97.  
  98.    protected JComponent createNorthPane(JInternalFrame var1) {
  99.       this.titlePane = new BasicInternalFrameTitlePane(var1);
  100.       return this.titlePane;
  101.    }
  102.  
  103.    protected PropertyChangeListener createPropertyChangeListener() {
  104.       return new InternalFramePropertyChangeListener(this);
  105.    }
  106.  
  107.    protected JComponent createSouthPane(JInternalFrame var1) {
  108.       return null;
  109.    }
  110.  
  111.    public static ComponentUI createUI(JComponent var0) {
  112.       return new BasicInternalFrameUI((JInternalFrame)var0);
  113.    }
  114.  
  115.    protected JComponent createWestPane(JInternalFrame var1) {
  116.       return null;
  117.    }
  118.  
  119.    protected void deactivateFrame(JInternalFrame var1) {
  120.       this.getDesktopManager().deactivateFrame(var1);
  121.    }
  122.  
  123.    protected void deiconifyFrame(JInternalFrame var1) {
  124.       this.getDesktopManager().deiconifyFrame(var1);
  125.    }
  126.  
  127.    protected void deinstallMouseHandlers(JComponent var1) {
  128.       ((Component)var1).removeMouseListener(this.borderListener);
  129.       ((Component)var1).removeMouseMotionListener(this.borderListener);
  130.    }
  131.  
  132.    protected DesktopManager getDesktopManager() {
  133.       if (this.frame.getDesktopPane() != null && this.frame.getDesktopPane().getDesktopManager() != null) {
  134.          return this.frame.getDesktopPane().getDesktopManager();
  135.       } else {
  136.          if (sharedDesktopManager == null) {
  137.             sharedDesktopManager = this.createDesktopManager();
  138.          }
  139.  
  140.          return sharedDesktopManager;
  141.       }
  142.    }
  143.  
  144.    public JComponent getEastPane() {
  145.       return this.eastPane;
  146.    }
  147.  
  148.    private InternalFrameListener getInternalFrameListener() {
  149.       return this.internalFrameListener;
  150.    }
  151.  
  152.    public Dimension getMaximumSize(JComponent var1) {
  153.       return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);
  154.    }
  155.  
  156.    public Dimension getMinimumSize(JComponent var1) {
  157.       return this.frame == var1 ? this.frame.getLayout().minimumLayoutSize(var1) : new Dimension(0, 0);
  158.    }
  159.  
  160.    public JComponent getNorthPane() {
  161.       return this.northPane;
  162.    }
  163.  
  164.    public Dimension getPreferredSize(JComponent var1) {
  165.       return this.frame == var1 ? this.frame.getLayout().preferredLayoutSize(var1) : new Dimension(100, 100);
  166.    }
  167.  
  168.    public JComponent getSouthPane() {
  169.       return this.southPane;
  170.    }
  171.  
  172.    public JComponent getWestPane() {
  173.       return this.westPane;
  174.    }
  175.  
  176.    protected void iconifyFrame(JInternalFrame var1) {
  177.       this.getDesktopManager().iconifyFrame(var1);
  178.    }
  179.  
  180.    protected void installComponents() {
  181.    }
  182.  
  183.    protected void installDefaults() {
  184.       Icon var1 = this.frame.getFrameIcon();
  185.       if (var1 == null || var1 instanceof UIResource) {
  186.          this.frame.setFrameIcon(UIManager.getIcon("InternalFrame.icon"));
  187.       }
  188.  
  189.       LookAndFeel.installBorder(this.frame, "InternalFrame.border");
  190.    }
  191.  
  192.    protected void installKeyboardActions() {
  193.       if (this.internalFrameListener == null) {
  194.          this.createInternalFrameListener();
  195.       }
  196.  
  197.       this.openMenuKey = KeyStroke.getKeyStroke(32, 2);
  198.       this.frame.addInternalFrameListener(this.internalFrameListener);
  199.    }
  200.  
  201.    protected void installListeners() {
  202.       this.borderListener = this.createBorderListener(this.frame);
  203.       this.propertyChangeListener = this.createPropertyChangeListener();
  204.       this.frame.addPropertyChangeListener(this.propertyChangeListener);
  205.       this.frame.setLayout(this.internalFrameLayout = this.createLayoutManager());
  206.       this.installMouseHandlers(this.frame);
  207.       this.glassPaneDispatcher = this.createGlassPaneDispatcher();
  208.       this.componentListener = this.createComponentListener();
  209.    }
  210.  
  211.    protected void installMouseHandlers(JComponent var1) {
  212.       ((Component)var1).addMouseListener(this.borderListener);
  213.       ((Component)var1).addMouseMotionListener(this.borderListener);
  214.    }
  215.  
  216.    public void installUI(JComponent var1) {
  217.       this.frame = (JInternalFrame)var1;
  218.       this.frame.add(this.frame.getRootPane(), "Center");
  219.       this.installDefaults();
  220.       this.installComponents();
  221.       this.installListeners();
  222.       this.installKeyboardActions();
  223.       this.setNorthPane(this.createNorthPane(this.frame));
  224.       this.setSouthPane(this.createSouthPane(this.frame));
  225.       this.setEastPane(this.createEastPane(this.frame));
  226.       this.setWestPane(this.createWestPane(this.frame));
  227.       this.frame.setOpaque(true);
  228.       this.frame.setMinimumSize(new Dimension(120, 24));
  229.    }
  230.  
  231.    public final boolean isKeyBindingActive() {
  232.       return this.keyBindingActive;
  233.    }
  234.  
  235.    protected final boolean isKeyBindingRegistered() {
  236.       return this.keyBindingRegistered;
  237.    }
  238.  
  239.    protected void maximizeFrame(JInternalFrame var1) {
  240.       this.getDesktopManager().maximizeFrame(var1);
  241.    }
  242.  
  243.    protected void minimizeFrame(JInternalFrame var1) {
  244.       this.getDesktopManager().minimizeFrame(var1);
  245.    }
  246.  
  247.    protected void replacePane(JComponent var1, JComponent var2) {
  248.       if (var1 != null) {
  249.          this.deinstallMouseHandlers(var1);
  250.          this.frame.remove(var1);
  251.       }
  252.  
  253.       if (var2 != null) {
  254.          this.frame.add(var2);
  255.          this.installMouseHandlers(var2);
  256.       }
  257.  
  258.    }
  259.  
  260.    public void setEastPane(JComponent var1) {
  261.       this.eastPane = var1;
  262.    }
  263.  
  264.    protected final void setKeyBindingActive(boolean var1) {
  265.       this.keyBindingActive = var1;
  266.    }
  267.  
  268.    protected final void setKeyBindingRegistered(boolean var1) {
  269.       this.keyBindingRegistered = var1;
  270.    }
  271.  
  272.    public void setNorthPane(JComponent var1) {
  273.       this.replacePane(this.northPane, var1);
  274.       this.northPane = var1;
  275.    }
  276.  
  277.    public void setSouthPane(JComponent var1) {
  278.       this.southPane = var1;
  279.    }
  280.  
  281.    public void setWestPane(JComponent var1) {
  282.       this.westPane = var1;
  283.    }
  284.  
  285.    protected void setupMenuCloseKey() {
  286.    }
  287.  
  288.    protected void setupMenuOpenKey() {
  289.       this.frame.registerKeyboardAction(new 1(this), this.openMenuKey, 2);
  290.       this.frame.getDesktopIcon().registerKeyboardAction(new 2(this), this.openMenuKey, 2);
  291.    }
  292.  
  293.    protected void uninstallComponents() {
  294.    }
  295.  
  296.    protected void uninstallDefaults() {
  297.       Icon var1 = this.frame.getFrameIcon();
  298.       if (var1 instanceof UIResource) {
  299.          this.frame.setFrameIcon((Icon)null);
  300.       }
  301.  
  302.       LookAndFeel.uninstallBorder(this.frame);
  303.    }
  304.  
  305.    protected void uninstallKeyboardActions() {
  306.       if (this.internalFrameListener != null) {
  307.          this.frame.removeInternalFrameListener(this.internalFrameListener);
  308.       }
  309.  
  310.       if (this.isKeyBindingRegistered()) {
  311.          this.frame.unregisterKeyboardAction(this.openMenuKey);
  312.          this.frame.getDesktopIcon().unregisterKeyboardAction(this.openMenuKey);
  313.       }
  314.  
  315.    }
  316.  
  317.    protected void uninstallListeners() {
  318.       this.deinstallMouseHandlers(this.frame);
  319.       this.frame.removePropertyChangeListener(this.propertyChangeListener);
  320.       this.frame.setLayout((LayoutManager)null);
  321.       this.internalFrameLayout = null;
  322.       this.propertyChangeListener = null;
  323.       this.frame.getGlassPane().removeMouseListener(this.glassPaneDispatcher);
  324.       this.frame.getGlassPane().removeMouseMotionListener(this.glassPaneDispatcher);
  325.       if (this.frame.getDesktopPane() != null) {
  326.          this.frame.getDesktopPane().removeComponentListener(this.componentListener);
  327.       }
  328.  
  329.       this.glassPaneDispatcher = null;
  330.       this.componentListener = null;
  331.       this.borderListener = null;
  332.    }
  333.  
  334.    public void uninstallUI(JComponent var1) {
  335.       if (var1 != this.frame) {
  336.          throw new IllegalComponentStateException(String.valueOf(this) + " was asked to deinstall() " + var1 + " when it only knows about " + this.frame + ".");
  337.       } else {
  338.          this.uninstallDefaults();
  339.          this.uninstallComponents();
  340.          this.frame.setCursor(Cursor.getPredefinedCursor(0));
  341.          this.setNorthPane((JComponent)null);
  342.          this.setSouthPane((JComponent)null);
  343.          this.setEastPane((JComponent)null);
  344.          this.setWestPane((JComponent)null);
  345.          this.uninstallListeners();
  346.          this.uninstallKeyboardActions();
  347.          this.frame.remove(this.frame.getRootPane());
  348.          this.frame = null;
  349.       }
  350.    }
  351. }
  352.