示例#1
0
  @Override
  public Object execute(ExecutionEvent event) throws ExecutionException {
    if (HandlerUtil.getActivePartChecked(event) instanceof ViewPart) {
      ViewPart view = (ViewPart) HandlerUtil.getActivePartChecked(event);
      IWorkbenchPartSite myIWorkbenchPartSite = view.getSite();
      ISelectionProvider selectionProvider = myIWorkbenchPartSite.getSelectionProvider();

      if (selectionProvider != null
          && selectionProvider.getSelection() instanceof IStructuredSelection) {
        IStructuredSelection selection = (IStructuredSelection) selectionProvider.getSelection();

        ArtifactClipboard clipboard = new ArtifactClipboard(view.getSite().getId());
        Iterator<?> iterator = selection.iterator();
        Object selectionObject = null;

        while (iterator.hasNext()) {
          Object object = iterator.next();

          if (object instanceof IAdaptable) {
            selectionObject = ((IAdaptable) object).getAdapter(Branch.class);

            if (selectionObject == null) {
              selectionObject = ((IAdaptable) object).getAdapter(Artifact.class);
            }
          } else if (object instanceof Match) {
            selectionObject = ((Match) object).getElement();
          }

          if (selectionObject instanceof Artifact) {
            ArtifactPasteConfiguration config = new ArtifactPasteConfiguration();
            Operations.executeAsJob(
                new ArtifactPasteOperation(
                    config,
                    (Artifact) selectionObject,
                    clipboard.getCopiedContents(),
                    new ArtifactNameConflictHandler()),
                true);
          }
        }
      }
    }
    return null;
  }