public void handleEvent()

in uimaj-ep-cev/src/main/java/org/apache/uima/cev/views/CEVAnnotationTreeViewPage.java [100:143]


    public void handleEvent(Event event) {
      switch (event.type) {
        case SWT.Dispose:
        case SWT.KeyDown:
        case SWT.MouseMove: {
          if (tip == null)
            break;
          tip.dispose();
          tip = null;
          label = null;
          break;
        }
        case SWT.MouseHover: {
          TreeItem item = tree.getItem(new Point(event.x, event.y));

          if (item != null && item.getData() instanceof CEVAnnotationTreeNode) {
            if (tip != null && !tip.isDisposed())
              tip.dispose();

            tip = new Shell(Display.getCurrent().getActiveShell(), SWT.ON_TOP | SWT.NO_FOCUS
                    | SWT.TOOL);

            tip.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
            FillLayout layout = new FillLayout();
            layout.marginWidth = 2;
            tip.setLayout(layout);

            label = new Label(tip, SWT.NONE);
            label.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_INFO_FOREGROUND));
            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_INFO_BACKGROUND));

            AnnotationFS annot = ((CEVAnnotationTreeNode) item.getData()).getAnnotation();

            label.setText(TOOLTIP_TEXT_BEGIN + annot.getBegin() + TOOLTIP_TEXT_END + annot.getEnd());

            Point size = tip.computeSize(SWT.DEFAULT, SWT.DEFAULT);
            Rectangle rect = item.getBounds(0);
            Point pt = tree.toDisplay(rect.x, rect.y);
            tip.setBounds(pt.x, pt.y, size.x, size.y);
            tip.setVisible(true);
          }
        }
      }
    }