예제 #1
0
  @Override
  protected Control createDialogArea(Composite parent) {
    Composite main = new Composite(parent, SWT.NONE);
    GridLayoutFactory.swtDefaults().applyTo(main);
    GridDataFactory.fillDefaults().indent(0, 0).grab(true, true).applyTo(main);
    Group fetchResultGroup = new Group(main, SWT.SHADOW_ETCHED_IN);
    fetchResultGroup.setText(UIText.PullResultDialog_FetchResultGroupHeader);
    GridLayoutFactory.fillDefaults().applyTo(fetchResultGroup);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(fetchResultGroup);
    FetchResult fRes = result.getFetchResult();
    if (hasFetchResults()) {
      GridLayoutFactory.fillDefaults().applyTo(fetchResultGroup);
      FetchResultDialog dlg =
          new FetchResultDialog(getParentShell(), repo, fRes, result.getFetchedFrom());
      Control fresult = dlg.createFetchResultTable(fetchResultGroup);
      Object layoutData = fresult.getLayoutData();
      if (layoutData instanceof GridData)
        GridDataFactory.createFrom((GridData) layoutData).hint(SWT.DEFAULT, 130).applyTo(fresult);

    } else {
      GridLayoutFactory.swtDefaults().applyTo(fetchResultGroup);
      Label noResult = new Label(fetchResultGroup, SWT.NONE);
      if (result.getFetchedFrom().equals(".")) // $NON-NLS-1$
      noResult.setText(UIText.PullResultDialog_NothingToFetchFromLocal);
      else
        noResult.setText(
            NLS.bind(UIText.FetchResultDialog_labelEmptyResult, result.getFetchedFrom()));
    }
    Group mergeResultGroup = new Group(main, SWT.SHADOW_ETCHED_IN);
    mergeResultGroup.setText(UIText.PullResultDialog_MergeResultGroupHeader);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(mergeResultGroup);
    if (hasMergeResults()) {
      GridLayoutFactory.fillDefaults().applyTo(mergeResultGroup);
      MergeResultDialog dlg =
          new MergeResultDialog(getParentShell(), repo, result.getMergeResult());
      dlg.createDialogArea(mergeResultGroup);
    } else if (hasRebaseResults()) {
      Status status = result.getRebaseResult().getStatus();
      GridLayoutFactory.fillDefaults().applyTo(mergeResultGroup);
      switch (status) {
        case OK:
          // fall through
        case FAST_FORWARD:
          // fall through
        case UP_TO_DATE:
          // fall through
        case FAILED:
          // fall through
        case ABORTED:
          break;
        case STOPPED:
          Label errorLabel = new Label(mergeResultGroup, SWT.NONE);
          errorLabel.setImage(
              PlatformUI.getWorkbench()
                  .getSharedImages()
                  .getImage(ISharedImages.IMG_OBJS_ERROR_TSK));
          Text errorText = new Text(mergeResultGroup, SWT.READ_ONLY);
          errorText.setText(UIText.PullResultDialog_RebaseStoppedMessage);
          break;
      }
      Label statusLabel = new Label(mergeResultGroup, SWT.NONE);
      statusLabel.setText(UIText.PullResultDialog_RebaseStatusLabel);
      Text statusText = new Text(mergeResultGroup, SWT.READ_ONLY);
      statusText.setText(status.name());
    } else {
      GridLayoutFactory.swtDefaults().applyTo(mergeResultGroup);
      Label noResult = new Label(mergeResultGroup, SWT.NONE);
      noResult.setText(UIText.PullResultDialog_MergeAlreadyUpToDateMessage);
    }
    return main;
  }
예제 #2
0
 private boolean hasRebaseResults() {
   final RebaseResult rebaseResult = result.getRebaseResult();
   return rebaseResult != null && rebaseResult.getStatus() != Status.UP_TO_DATE;
 }