Ejemplo n.º 1
0
  private void dropDown(boolean drop) {
    if (drop == isDropped()) return;
    if (!drop) {
      popup.setVisible(false);
      if (!isDisposed() && arrow.isFocusControl()) {
        text.setFocus();
      }
      return;
    }

    if (getShell() != popup.getParent()) {
      String[] items = list.getItems();
      int selectionIndex = list.getSelectionIndex();
      list.removeListener(SWT.Dispose, listener);
      popup.dispose();
      popup = null;
      list = null;
      createPopup(items, selectionIndex);
    }

    computeShowArea();

    popup.setAlpha(popup.getFinalAlpha());
    popup.setVisible(true);
  }
Ejemplo n.º 2
0
 void comboEvent(Event event) {
   switch (event.type) {
     case SWT.Dispose:
       if (popup != null && !popup.isDisposed()) {
         list.removeListener(SWT.Dispose, listener);
         popup.dispose();
       }
       Shell shell = getShell();
       shell.removeListener(SWT.Deactivate, listener);
       Display display = getDisplay();
       display.removeFilter(SWT.FocusIn, filter);
       popup = null;
       text = null;
       list = null;
       arrow = null;
       break;
     case SWT.Move:
       dropDown(false);
       break;
     case SWT.Resize:
       internalLayout(false);
       break;
   }
 }