예제 #1
0
  private void installTitleDrag(Form form) {
    if (titleDragSourceListener == null /*&& !hasLeftToolBar()*/) {
      Transfer[] transferTypes;
      if (null == task) {
        transferTypes = new Transfer[] {TextTransfer.getInstance()};
      } else {
        transferTypes =
            new Transfer[] {
              LocalSelectionTransfer.getTransfer(),
              TextTransfer.getInstance(),
              FileTransfer.getInstance()
            };
      }
      titleDragSourceListener =
          new TaskDragSourceListener(
              new SelectionProviderAdapter() {
                @Override
                public ISelection getSelection() {
                  return new StructuredSelection(task);
                }
              });

      if (titleLabel != null) {
        DragSource source = new DragSource(titleLabel, DND.DROP_MOVE | DND.DROP_LINK);
        source.setTransfer(transferTypes);
        source.addDragListener(titleDragSourceListener);
      } else {
        form.addTitleDragSupport(
            DND.DROP_MOVE | DND.DROP_LINK, transferTypes, titleDragSourceListener);
      }
    }
  }