private void showBalloon() {

    Shell shell = new Shell();

    final ToolTip tip = new ToolTip(shell, SWT.BALLOON | SWT.ICON_INFORMATION);
    tip.setText(ballonTitle);
    tip.setMessage(message);
    tip.setAutoHide(autoHide);

    Image image = null;

    Display display = 
      Display.getDefault();
//    shell.getDisplay();
    
    Tray tray = display.getSystemTray();
    TrayItem item = null;
    if (tray != null) {
      item = new TrayItem(tray, SWT.NONE);
      InputStream eclipsePng;
      try {
        Bundle bundle = Platform.getBundle(PLUGIN_NAME);
        URL entry = bundle.getEntry(PNG_NAME);

        eclipsePng = entry.openStream();
      } catch (IOException e) {
        throw new RuntimeException(e);
      }
      image = new Image(display, eclipsePng);
      item.setImage(image);
      item.setToolTip(tip);
    } else {
      tip.setLocation(400, 400);
    }
    tip.setVisible(true);
    while (tip.getVisible()) {
      if (!display.readAndDispatch()) {
        display.sleep();
      }
    }
    if (item != null) {
      item.dispose();
    }
    if (image != null) {
      image.dispose();
    }
  }