home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / demos / VisualAge for Java 2.0 Entry / setup / data1.cab / ide-e / IDE / cache / 1P3KGL (.txt) < prev    next >
Encoding:
Java Class File  |  1998-09-16  |  4.0 KB  |  64 lines

  1. package com.sun.java.swing.plaf.metal;
  2.  
  3. import com.sun.java.swing.Icon;
  4. import com.sun.java.swing.JButton;
  5. import com.sun.java.swing.JComponent;
  6. import com.sun.java.swing.JInternalFrame;
  7. import com.sun.java.swing.JLabel;
  8. import com.sun.java.swing.LookAndFeel;
  9. import com.sun.java.swing.border.MatteBorder;
  10. import com.sun.java.swing.plaf.ComponentUI;
  11. import com.sun.java.swing.plaf.basic.BasicDesktopIconUI;
  12. import java.awt.BorderLayout;
  13. import java.awt.Component;
  14. import java.awt.Container;
  15. import java.awt.Dimension;
  16. import java.awt.LayoutManager;
  17. import java.io.Serializable;
  18.  
  19. public class MetalDesktopIconUI extends BasicDesktopIconUI implements Serializable {
  20.    JButton button;
  21.    JLabel label;
  22.    TitleListener titleListener;
  23.  
  24.    public static ComponentUI createUI(JComponent c) {
  25.       return new MetalDesktopIconUI();
  26.    }
  27.  
  28.    public Dimension getPreferredSize(JComponent c) {
  29.       return null;
  30.    }
  31.  
  32.    protected void installComponents(JInternalFrame.JDesktopIcon dIcon) {
  33.       JInternalFrame frame = dIcon.getInternalFrame();
  34.       Icon icon = frame.getFrameIcon();
  35.       String title = frame.getTitle();
  36.       this.button = new JButton(title, icon);
  37.       this.button.addActionListener(new 1(this));
  38.       this.button.setFont(((Component)dIcon).getFont());
  39.       this.button.setBackground(((Component)dIcon).getBackground());
  40.       this.button.setForeground(((Component)dIcon).getForeground());
  41.       int buttonH = this.button.getPreferredSize().height;
  42.       Icon drag = new MetalBumps(buttonH / 3, buttonH, MetalLookAndFeel.getControlHighlight(), MetalLookAndFeel.getControlDarkShadow(), MetalLookAndFeel.getControl());
  43.       this.label = new JLabel(drag);
  44.       this.label.setBorder(new MatteBorder(0, 2, 0, 1, ((Component)dIcon).getBackground()));
  45.       ((Container)dIcon).setLayout(new BorderLayout(2, 0));
  46.       ((Container)dIcon).add(this.button, "Center");
  47.       ((Container)dIcon).add(this.label, "West");
  48.       dIcon.getInternalFrame().addPropertyChangeListener(this.titleListener = new TitleListener(this));
  49.    }
  50.  
  51.    protected void installDefaults(JInternalFrame.JDesktopIcon dIcon) {
  52.       super.installDefaults(dIcon);
  53.       LookAndFeel.installColorsAndFont(dIcon, "DesktopIcon.background", "DesktopIcon.foreground", "DesktopIcon.font");
  54.       ((JComponent)dIcon).setOpaque(true);
  55.    }
  56.  
  57.    protected void uninstallComponents(JInternalFrame.JDesktopIcon dIcon) {
  58.       ((Container)dIcon).setLayout((LayoutManager)null);
  59.       ((Container)dIcon).remove(this.label);
  60.       ((Container)dIcon).remove(this.button);
  61.       dIcon.getInternalFrame().removePropertyChangeListener(this.titleListener);
  62.    }
  63. }
  64.