< prev index next >

src/share/classes/com/sun/java/swing/plaf/motif/MotifDesktopIconUI.java

Print this page




  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package com.sun.java.swing.plaf.motif;
  27 
  28 import sun.swing.SwingUtilities2;
  29 import java.awt.*;
  30 import java.awt.event.*;
  31 import javax.swing.*;
  32 import javax.swing.border.*;
  33 import javax.swing.plaf.*;
  34 import javax.swing.plaf.basic.*;
  35 import java.beans.*;
  36 import java.util.EventListener;
  37 import java.io.Serializable;
  38 


  39 
  40 /**
  41  * Motif rendition of the component.
  42  *
  43  * @author Thomas Ball
  44  * @author Rich Schiavi
  45  */
  46 public class MotifDesktopIconUI extends BasicDesktopIconUI
  47 {
  48     protected DesktopIconActionListener desktopIconActionListener;
  49     protected DesktopIconMouseListener  desktopIconMouseListener;
  50 
  51     protected Icon       defaultIcon;
  52     protected IconButton iconButton;
  53     protected IconLabel  iconLabel;
  54 
  55     // This is only used for its system menu, but we need a reference to it so
  56     // we can remove its listeners.
  57     private MotifInternalFrameTitlePane sysMenuTitlePane;
  58 


 220             addMouseListener(new MouseListener() {
 221                 public void mouseClicked(MouseEvent e) {
 222                     forwardEventToParent(e);
 223                 }
 224                 public void mousePressed(MouseEvent e) {
 225                     forwardEventToParent(e);
 226                 }
 227                 public void mouseReleased(MouseEvent e) {
 228                     forwardEventToParent(e);
 229                 }
 230                 public void mouseEntered(MouseEvent e) {
 231                     forwardEventToParent(e);
 232                 }
 233                 public void mouseExited(MouseEvent e) {
 234                     forwardEventToParent(e);
 235                 }
 236             });
 237         }
 238 
 239         void forwardEventToParent(MouseEvent e) {
 240             getParent().dispatchEvent(new MouseEvent(
 241                 getParent(), e.getID(), e.getWhen(), e.getModifiers(),
 242                 e.getX(), e.getY(), e.getXOnScreen(),
 243                 e.getYOnScreen(), e.getClickCount(),
 244                 e.isPopupTrigger(), MouseEvent.NOBUTTON));




 245         }
 246 
 247         public boolean isFocusTraversable() {
 248             return false;
 249         }
 250 
 251         public Dimension getMinimumSize() {
 252             return new Dimension(defaultIcon.getIconWidth() + 1,
 253                                  LABEL_HEIGHT + LABEL_DIVIDER);
 254         }
 255 
 256         public Dimension getPreferredSize() {
 257             String title = frame.getTitle();
 258             FontMetrics fm = frame.getFontMetrics(defaultTitleFont);
 259             int w = 4;
 260             if (title != null) {
 261                 w += SwingUtilities2.stringWidth(frame, fm, title);
 262             }
 263             return new Dimension(w, LABEL_HEIGHT + LABEL_DIVIDER);
 264         }


 311                     forwardEventToParent(e);
 312                 }
 313                 public void mousePressed(MouseEvent e) {
 314                     forwardEventToParent(e);
 315                 }
 316                 public void mouseReleased(MouseEvent e) {
 317                     if (!systemMenu.isShowing()) {
 318                         forwardEventToParent(e);
 319                     }
 320                 }
 321                 public void mouseEntered(MouseEvent e) {
 322                     forwardEventToParent(e);
 323                 }
 324                 public void mouseExited(MouseEvent e) {
 325                     forwardEventToParent(e);
 326                 }
 327             });
 328         }
 329 
 330         void forwardEventToParent(MouseEvent e) {
 331             getParent().dispatchEvent(new MouseEvent(
 332                 getParent(), e.getID(), e.getWhen(), e.getModifiers(),
 333                 e.getX(), e.getY(), e.getXOnScreen(), e.getYOnScreen(),
 334                 e.getClickCount(), e.isPopupTrigger(), MouseEvent.NOBUTTON ));




 335         }
 336 
 337         public boolean isFocusTraversable() {
 338             return false;
 339         }
 340     }
 341 
 342 
 343     protected class DesktopIconActionListener implements ActionListener {
 344         public void actionPerformed(ActionEvent e){
 345             systemMenu.show(iconButton, 0, getDesktopIcon().getHeight());
 346         }
 347     }
 348 
 349     protected class DesktopIconMouseListener extends MouseAdapter {
 350         // if we drag or move we should deengage the popup
 351         public void mousePressed(MouseEvent e){
 352             if (e.getClickCount() > 1) {
 353                 try {
 354                     getFrame().setIcon(false);


  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package com.sun.java.swing.plaf.motif;
  27 
  28 import sun.swing.SwingUtilities2;
  29 import java.awt.*;
  30 import java.awt.event.*;
  31 import javax.swing.*;
  32 import javax.swing.border.*;
  33 import javax.swing.plaf.*;
  34 import javax.swing.plaf.basic.*;
  35 import java.beans.*;
  36 import java.util.EventListener;
  37 import java.io.Serializable;
  38 
  39 import sun.awt.AWTAccessor;
  40 import sun.awt.AWTAccessor.MouseEventAccessor;
  41 
  42 /**
  43  * Motif rendition of the component.
  44  *
  45  * @author Thomas Ball
  46  * @author Rich Schiavi
  47  */
  48 public class MotifDesktopIconUI extends BasicDesktopIconUI
  49 {
  50     protected DesktopIconActionListener desktopIconActionListener;
  51     protected DesktopIconMouseListener  desktopIconMouseListener;
  52 
  53     protected Icon       defaultIcon;
  54     protected IconButton iconButton;
  55     protected IconLabel  iconLabel;
  56 
  57     // This is only used for its system menu, but we need a reference to it so
  58     // we can remove its listeners.
  59     private MotifInternalFrameTitlePane sysMenuTitlePane;
  60 


 222             addMouseListener(new MouseListener() {
 223                 public void mouseClicked(MouseEvent e) {
 224                     forwardEventToParent(e);
 225                 }
 226                 public void mousePressed(MouseEvent e) {
 227                     forwardEventToParent(e);
 228                 }
 229                 public void mouseReleased(MouseEvent e) {
 230                     forwardEventToParent(e);
 231                 }
 232                 public void mouseEntered(MouseEvent e) {
 233                     forwardEventToParent(e);
 234                 }
 235                 public void mouseExited(MouseEvent e) {
 236                     forwardEventToParent(e);
 237                 }
 238             });
 239         }
 240 
 241         void forwardEventToParent(MouseEvent e) {
 242             MouseEvent newEvent = new MouseEvent(
 243                 getParent(), e.getID(), e.getWhen(), e.getModifiers(),
 244                 e.getX(), e.getY(), e.getXOnScreen(),
 245                 e.getYOnScreen(), e.getClickCount(),
 246                 e.isPopupTrigger(), MouseEvent.NOBUTTON);
 247             MouseEventAccessor meAccessor = AWTAccessor.getMouseEventAccessor();
 248             meAccessor.setCausedByTouchEvent(newEvent,
 249                 meAccessor.isCausedByTouchEvent(e));
 250             getParent().dispatchEvent(newEvent);
 251         }
 252 
 253         public boolean isFocusTraversable() {
 254             return false;
 255         }
 256 
 257         public Dimension getMinimumSize() {
 258             return new Dimension(defaultIcon.getIconWidth() + 1,
 259                                  LABEL_HEIGHT + LABEL_DIVIDER);
 260         }
 261 
 262         public Dimension getPreferredSize() {
 263             String title = frame.getTitle();
 264             FontMetrics fm = frame.getFontMetrics(defaultTitleFont);
 265             int w = 4;
 266             if (title != null) {
 267                 w += SwingUtilities2.stringWidth(frame, fm, title);
 268             }
 269             return new Dimension(w, LABEL_HEIGHT + LABEL_DIVIDER);
 270         }


 317                     forwardEventToParent(e);
 318                 }
 319                 public void mousePressed(MouseEvent e) {
 320                     forwardEventToParent(e);
 321                 }
 322                 public void mouseReleased(MouseEvent e) {
 323                     if (!systemMenu.isShowing()) {
 324                         forwardEventToParent(e);
 325                     }
 326                 }
 327                 public void mouseEntered(MouseEvent e) {
 328                     forwardEventToParent(e);
 329                 }
 330                 public void mouseExited(MouseEvent e) {
 331                     forwardEventToParent(e);
 332                 }
 333             });
 334         }
 335 
 336         void forwardEventToParent(MouseEvent e) {
 337             MouseEvent newEvent = new MouseEvent(
 338                 getParent(), e.getID(), e.getWhen(), e.getModifiers(),
 339                 e.getX(), e.getY(), e.getXOnScreen(), e.getYOnScreen(),
 340                 e.getClickCount(), e.isPopupTrigger(), MouseEvent.NOBUTTON );
 341             MouseEventAccessor meAccessor = AWTAccessor.getMouseEventAccessor();
 342             meAccessor.setCausedByTouchEvent(newEvent,
 343                 meAccessor.isCausedByTouchEvent(e));
 344             getParent().dispatchEvent(newEvent);
 345         }
 346 
 347         public boolean isFocusTraversable() {
 348             return false;
 349         }
 350     }
 351 
 352 
 353     protected class DesktopIconActionListener implements ActionListener {
 354         public void actionPerformed(ActionEvent e){
 355             systemMenu.show(iconButton, 0, getDesktopIcon().getHeight());
 356         }
 357     }
 358 
 359     protected class DesktopIconMouseListener extends MouseAdapter {
 360         // if we drag or move we should deengage the popup
 361         public void mousePressed(MouseEvent e){
 362             if (e.getClickCount() > 1) {
 363                 try {
 364                     getFrame().setIcon(false);
< prev index next >