jdk/src/share/classes/javax/swing/plaf/basic/BasicDesktopIconUI.java
changeset 3345 e095f8b1c3e8
parent 1277 61e297d24425
child 5506 202f599c92aa
equal deleted inserted replaced
3344:e2acdc658d52 3345:e095f8b1c3e8
     1 /*
     1 /*
     2  * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
     2  * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Sun designates this
     7  * published by the Free Software Foundation.  Sun designates this
    30 import javax.swing.*;
    30 import javax.swing.*;
    31 import javax.swing.event.*;
    31 import javax.swing.event.*;
    32 import javax.swing.border.*;
    32 import javax.swing.border.*;
    33 import javax.swing.plaf.*;
    33 import javax.swing.plaf.*;
    34 import java.beans.*;
    34 import java.beans.*;
    35 import java.util.EventListener;
       
    36 import java.io.Serializable;
       
    37 
       
    38 
    35 
    39 /**
    36 /**
    40  * Basic L&F for a minimized window on a desktop.
    37  * Basic L&F for a minimized window on a desktop.
    41  *
    38  *
    42  * @author David Kloba
    39  * @author David Kloba
    45  */
    42  */
    46 public class BasicDesktopIconUI extends DesktopIconUI {
    43 public class BasicDesktopIconUI extends DesktopIconUI {
    47 
    44 
    48     protected JInternalFrame.JDesktopIcon desktopIcon;
    45     protected JInternalFrame.JDesktopIcon desktopIcon;
    49     protected JInternalFrame frame;
    46     protected JInternalFrame frame;
    50     private DesktopIconMover desktopIconMover;
       
    51 
    47 
    52     /**
    48     /**
    53      * The title pane component used in the desktop icon.
    49      * The title pane component used in the desktop icon.
    54      *
    50      *
    55      * @since 1.5
    51      * @since 1.5
   126 
   122 
   127     protected void installListeners() {
   123     protected void installListeners() {
   128         mouseInputListener = createMouseInputListener();
   124         mouseInputListener = createMouseInputListener();
   129         desktopIcon.addMouseMotionListener(mouseInputListener);
   125         desktopIcon.addMouseMotionListener(mouseInputListener);
   130         desktopIcon.addMouseListener(mouseInputListener);
   126         desktopIcon.addMouseListener(mouseInputListener);
   131          getDesktopIconMover().installListeners();
       
   132     }
   127     }
   133 
   128 
   134     protected void uninstallListeners() {
   129     protected void uninstallListeners() {
   135         desktopIcon.removeMouseMotionListener(mouseInputListener);
   130         desktopIcon.removeMouseMotionListener(mouseInputListener);
   136         desktopIcon.removeMouseListener(mouseInputListener);
   131         desktopIcon.removeMouseListener(mouseInputListener);
   137         mouseInputListener = null;
   132         mouseInputListener = null;
   138          getDesktopIconMover().uninstallListeners();
       
   139     }
       
   140 
       
   141     private DesktopIconMover getDesktopIconMover() {
       
   142         if (desktopIconMover == null) {
       
   143             desktopIconMover = new DesktopIconMover(desktopIcon);
       
   144         }
       
   145         return desktopIconMover;
       
   146     }
   133     }
   147 
   134 
   148     protected void installDefaults() {
   135     protected void installDefaults() {
   149         LookAndFeel.installBorder(desktopIcon, "DesktopIcon.border");
   136         LookAndFeel.installBorder(desktopIcon, "DesktopIcon.border");
   150         LookAndFeel.installProperty(desktopIcon, "opaque", Boolean.TRUE);
   137         LookAndFeel.installProperty(desktopIcon, "opaque", Boolean.TRUE);