FileDocCategorySizeDatePackage
SynthDesktopIconUI.javaAPI DocJava SE 5 API5351Fri Aug 26 14:58:12 BST 2005javax.swing.plaf.synth

SynthDesktopIconUI

public class SynthDesktopIconUI extends BasicDesktopIconUI implements sun.swing.plaf.synth.SynthUI, ActionListener, PropertyChangeListener
Synth L&F for a minimized window on a desktop.
version
1.13, 12/19/03
author
Joshua Outwater

Fields Summary
private SynthStyle
style
Constructors Summary
Methods Summary
public voidactionPerformed(java.awt.event.ActionEvent evt)

	if (evt.getSource() instanceof JToggleButton) {
	    // Either iconify the frame or deiconify and activate it.
	    JToggleButton button = (JToggleButton)evt.getSource();
	    try {
		boolean selected = button.isSelected();
		if (!selected && !frame.isIconifiable()) {
		    button.setSelected(true);
		} else {
		    frame.setIcon(!selected);
		    if (selected) {
			frame.setSelected(true);
		    }
		}
	    } catch (PropertyVetoException e2) {
	    }
	}
    
public static javax.swing.plaf.ComponentUIcreateUI(javax.swing.JComponent c)

        return new SynthDesktopIconUI();
    
private intgetComponentState(javax.swing.JComponent c)

        return SynthLookAndFeel.getComponentState(c);
    
public javax.swing.plaf.synth.SynthContextgetContext(javax.swing.JComponent c)

        return getContext(c, getComponentState(c));
    
private javax.swing.plaf.synth.SynthContextgetContext(javax.swing.JComponent c, int state)

        Region region = getRegion(c);
        return SynthContext.getContext(SynthContext.class, c, region,
                                       style, state);
    
javax.swing.plaf.synth.RegiongetRegion(javax.swing.JComponent c)

        return SynthLookAndFeel.getRegion(c);
    
protected voidinstallComponents()

	if (UIManager.getBoolean("InternalFrame.useTaskBar")) {
	    iconPane = new JToggleButton(frame.getTitle(), frame.getFrameIcon()) {
		public String getToolTipText() {
		    return getText();
		}

		public JPopupMenu getComponentPopupMenu() {
		    return frame.getComponentPopupMenu();
		}
	    };
	    ToolTipManager.sharedInstance().registerComponent(iconPane);
	    iconPane.setFont(desktopIcon.getFont());
	    iconPane.setBackground(desktopIcon.getBackground());
	    iconPane.setForeground(desktopIcon.getForeground());
	} else {
	    iconPane = new SynthInternalFrameTitlePane(frame);
	    iconPane.setName("InternalFrame.northPane");
	}
	desktopIcon.setLayout(new BorderLayout());
	desktopIcon.add(iconPane, BorderLayout.CENTER);
    
protected voidinstallDefaults()

        updateStyle(desktopIcon);
    
protected voidinstallListeners()

        super.installListeners();
        desktopIcon.addPropertyChangeListener(this);

	if (iconPane instanceof JToggleButton) {
	    frame.addPropertyChangeListener(this);
	    ((JToggleButton)iconPane).addActionListener(this);
	}
    
public voidpaint(java.awt.Graphics g, javax.swing.JComponent c)

        SynthContext context = getContext(c);

        paint(context, g);
        context.dispose();
    
protected voidpaint(javax.swing.plaf.synth.SynthContext context, java.awt.Graphics g)

    
public voidpaintBorder(javax.swing.plaf.synth.SynthContext context, java.awt.Graphics g, int x, int y, int w, int h)

        context.getPainter().paintDesktopIconBorder(context, g, x, y, w, h);
    
public voidpropertyChange(java.beans.PropertyChangeEvent evt)

	if (evt.getSource() instanceof JInternalFrame.JDesktopIcon) {
	    if (SynthLookAndFeel.shouldUpdateStyle(evt)) {
		updateStyle((JInternalFrame.JDesktopIcon)evt.getSource());
	    }
	} else if (evt.getSource() instanceof JInternalFrame) {
	    JInternalFrame frame = (JInternalFrame)evt.getSource();
	    if (iconPane instanceof JToggleButton) {
		JToggleButton button = (JToggleButton)iconPane;
		String prop = evt.getPropertyName();
		if (prop == "title") {
		    button.setText((String)evt.getNewValue());
		} else if (prop == "frameIcon") {
		    button.setIcon((Icon)evt.getNewValue());
		} else if (prop == JInternalFrame.IS_ICON_PROPERTY ||
			   prop == JInternalFrame.IS_SELECTED_PROPERTY) {
		    button.setSelected(!frame.isIcon() && frame.isSelected());
		}
	    }
	}
    
protected voiduninstallDefaults()

        SynthContext context = getContext(desktopIcon, ENABLED);
        style.uninstallDefaults(context);
        context.dispose();
        style = null;
    
protected voiduninstallListeners()

	if (iconPane instanceof JToggleButton) {
	    frame.removePropertyChangeListener(this);	
	}
        desktopIcon.removePropertyChangeListener(this);
        super.uninstallListeners();
    
public voidupdate(java.awt.Graphics g, javax.swing.JComponent c)

        SynthContext context = getContext(c);

        SynthLookAndFeel.update(context, g);
        context.getPainter().paintDesktopIconBackground(context, g, 0, 0,
                                                  c.getWidth(), c.getHeight());
        paint(context, g);
        context.dispose();
    
private voidupdateStyle(javax.swing.JComponent c)

        SynthContext context = getContext(c, ENABLED);
        style = SynthLookAndFeel.updateStyle(context, this);
        context.dispose();