home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.plaf.metal;
-
- import com.sun.java.swing.Icon;
- import com.sun.java.swing.JButton;
- import com.sun.java.swing.JComponent;
- import com.sun.java.swing.JInternalFrame;
- import com.sun.java.swing.JLabel;
- import com.sun.java.swing.LookAndFeel;
- import com.sun.java.swing.border.MatteBorder;
- import com.sun.java.swing.plaf.ComponentUI;
- import com.sun.java.swing.plaf.basic.BasicDesktopIconUI;
- import java.awt.BorderLayout;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.LayoutManager;
- import java.io.Serializable;
-
- public class MetalDesktopIconUI extends BasicDesktopIconUI implements Serializable {
- JButton button;
- JLabel label;
- TitleListener titleListener;
-
- public static ComponentUI createUI(JComponent c) {
- return new MetalDesktopIconUI();
- }
-
- public Dimension getPreferredSize(JComponent c) {
- return null;
- }
-
- protected void installComponents(JInternalFrame.JDesktopIcon dIcon) {
- JInternalFrame frame = dIcon.getInternalFrame();
- Icon icon = frame.getFrameIcon();
- String title = frame.getTitle();
- this.button = new JButton(title, icon);
- this.button.addActionListener(new 1(this));
- this.button.setFont(((Component)dIcon).getFont());
- this.button.setBackground(((Component)dIcon).getBackground());
- this.button.setForeground(((Component)dIcon).getForeground());
- int buttonH = this.button.getPreferredSize().height;
- Icon drag = new MetalBumps(buttonH / 3, buttonH, MetalLookAndFeel.getControlHighlight(), MetalLookAndFeel.getControlDarkShadow(), MetalLookAndFeel.getControl());
- this.label = new JLabel(drag);
- this.label.setBorder(new MatteBorder(0, 2, 0, 1, ((Component)dIcon).getBackground()));
- ((Container)dIcon).setLayout(new BorderLayout(2, 0));
- ((Container)dIcon).add(this.button, "Center");
- ((Container)dIcon).add(this.label, "West");
- dIcon.getInternalFrame().addPropertyChangeListener(this.titleListener = new TitleListener(this));
- }
-
- protected void installDefaults(JInternalFrame.JDesktopIcon dIcon) {
- super.installDefaults(dIcon);
- LookAndFeel.installColorsAndFont(dIcon, "DesktopIcon.background", "DesktopIcon.foreground", "DesktopIcon.font");
- ((JComponent)dIcon).setOpaque(true);
- }
-
- protected void uninstallComponents(JInternalFrame.JDesktopIcon dIcon) {
- ((Container)dIcon).setLayout((LayoutManager)null);
- ((Container)dIcon).remove(this.label);
- ((Container)dIcon).remove(this.button);
- dIcon.getInternalFrame().removePropertyChangeListener(this.titleListener);
- }
- }
-