src/windows/classes/sun/awt/windows/WChoicePeer.java

Print this page




  67     /**
  68      * DEPRECATED, but for now, called by add(String, int).
  69      */
  70     public void addItem(String item, int index) {
  71         addItems(new String[] {item}, index);
  72     }
  73     public native void addItems(String[] items, int index);
  74 
  75     public synchronized native void reshape(int x, int y, int width, int height);
  76 
  77     private WindowListener windowListener;
  78 
  79     // Toolkit & peer internals
  80 
  81     WChoicePeer(Choice target) {
  82         super(target);
  83     }
  84 
  85     native void create(WComponentPeer parent);
  86 

  87     void initialize() {
  88         Choice opt = (Choice)target;
  89         int itemCount = opt.getItemCount();
  90         if (itemCount > 0) {
  91             String[] items = new String[itemCount];
  92             for (int i=0; i < itemCount; i++) {
  93                 items[i] = opt.getItem(i);
  94             }
  95             addItems(items, 0);
  96             if (opt.getSelectedIndex() >= 0) {
  97                 select(opt.getSelectedIndex());
  98             }
  99         }
 100 
 101         Window parentWindow = SunToolkit.getContainingWindow((Component)target);
 102         if (parentWindow != null) {
 103             WWindowPeer wpeer = (WWindowPeer)parentWindow.getPeer();
 104             if (wpeer != null) {
 105                 windowListener = new WindowAdapter() {
 106                         public void windowIconified(WindowEvent e) {
 107                             closeList();
 108                         }
 109                         public void windowClosing(WindowEvent e) {
 110                             closeList();
 111                         }
 112                     };
 113                 wpeer.addWindowListener(windowListener);
 114             }
 115         }
 116         super.initialize();
 117     }
 118 

 119     protected void disposeImpl() {
 120         // TODO: we should somehow reset the listener when the choice
 121         // is moved to another toplevel without destroying its peer.
 122         Window parentWindow = SunToolkit.getContainingWindow((Component)target);
 123         if (parentWindow != null) {
 124             WWindowPeer wpeer = (WWindowPeer)parentWindow.getPeer();
 125             if (wpeer != null) {
 126                 wpeer.removeWindowListener(windowListener);
 127             }
 128         }
 129         super.disposeImpl();
 130     }
 131 
 132     // native callbacks
 133 
 134     void handleAction(final int index) {
 135         final Choice c = (Choice)target;
 136         WToolkit.executeOnEventHandlerThread(c, new Runnable() {
 137             public void run() {
 138                 c.select(index);




  67     /**
  68      * DEPRECATED, but for now, called by add(String, int).
  69      */
  70     public void addItem(String item, int index) {
  71         addItems(new String[] {item}, index);
  72     }
  73     public native void addItems(String[] items, int index);
  74 
  75     public synchronized native void reshape(int x, int y, int width, int height);
  76 
  77     private WindowListener windowListener;
  78 
  79     // Toolkit & peer internals
  80 
  81     WChoicePeer(Choice target) {
  82         super(target);
  83     }
  84 
  85     native void create(WComponentPeer parent);
  86 
  87     @SuppressWarnings("deprecation")
  88     void initialize() {
  89         Choice opt = (Choice)target;
  90         int itemCount = opt.getItemCount();
  91         if (itemCount > 0) {
  92             String[] items = new String[itemCount];
  93             for (int i=0; i < itemCount; i++) {
  94                 items[i] = opt.getItem(i);
  95             }
  96             addItems(items, 0);
  97             if (opt.getSelectedIndex() >= 0) {
  98                 select(opt.getSelectedIndex());
  99             }
 100         }
 101 
 102         Window parentWindow = SunToolkit.getContainingWindow((Component)target);
 103         if (parentWindow != null) {
 104             WWindowPeer wpeer = (WWindowPeer)parentWindow.getPeer();
 105             if (wpeer != null) {
 106                 windowListener = new WindowAdapter() {
 107                         public void windowIconified(WindowEvent e) {
 108                             closeList();
 109                         }
 110                         public void windowClosing(WindowEvent e) {
 111                             closeList();
 112                         }
 113                     };
 114                 wpeer.addWindowListener(windowListener);
 115             }
 116         }
 117         super.initialize();
 118     }
 119 
 120     @SuppressWarnings("deprecation")
 121     protected void disposeImpl() {
 122         // TODO: we should somehow reset the listener when the choice
 123         // is moved to another toplevel without destroying its peer.
 124         Window parentWindow = SunToolkit.getContainingWindow((Component)target);
 125         if (parentWindow != null) {
 126             WWindowPeer wpeer = (WWindowPeer)parentWindow.getPeer();
 127             if (wpeer != null) {
 128                 wpeer.removeWindowListener(windowListener);
 129             }
 130         }
 131         super.disposeImpl();
 132     }
 133 
 134     // native callbacks
 135 
 136     void handleAction(final int index) {
 137         final Choice c = (Choice)target;
 138         WToolkit.executeOnEventHandlerThread(c, new Runnable() {
 139             public void run() {
 140                 c.select(index);