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); |