Размещение двух диалогов на одной странице - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь получить от этого до этого .Насколько я понимаю, лучше всего это сделать с помощью GridLayout, однако я даже не могу добиться изменения в окне вывода, и я медленно, но верно схожу с ума.Это метод, в котором создается текущий диалог:

private MTestScript letUserSelectTestScript(final Collection<MTestScript> testScripts) {
return DialogUtils.openWithDeadLockCheck(new IRunnableWithResult<MTestScript>() {
  @Override
  public IResultStatus<MTestScript> run(Shell shell, IProgressMonitor progressMonitor) {
    ILabelProvider labelProvider = ProviderManager.getProviderManager().getLabelProvider(getOutermostPackageOfMetric());
    TestElementListSelectionDialog selectionDialog = new TestElementListSelectionDialog(shell, labelProvider, new ArrayContentProvider(), testScripts) {
      @Override
      public void updateOKStatus() {
        if (getSelection() == null || getSelection().isEmpty()) {
          updateStatus(new Status(IStatus.ERROR, PlatformUI.PLUGIN_ID, IStatus.ERROR, "Please make a selection.", null)); //$NON-NLS-1$
        } else {
          updateStatus(null);
        }
      }

      @Override
      protected void updateButtonsEnableState(IStatus status) {
        super.updateButtonsEnableState(status == null ? Status.OK_STATUS : status);
      }

    };
    selectionDialog.setTitle("Handling Inputs (1/2)"); //$NON-NLS-1$
    selectionDialog.setMessage("Please select the script to use..."); //$NON-NLS-1$

    selectionDialog.create();
    int result = selectionDialog.open();
    if (Dialog.OK == result) {
      return ResultStatus.createOK((MTestScript) selectionDialog.getFirstResult());
    }
    return ResultStatus.createCancel(null);
  }

});

}

Моя последняя попытка модификации TestElementSelectionDialog (не обращайте на это большого внимания, поскольку я в основном стреляю вслепую, надеясь, что что-то произойдет):

private class TestElementListSelectionDialog extends ElementListSelectionDialog {

public TestElementListSelectionDialog(Shell arg0, ILabelProvider arg1, IStructuredContentProvider arg2, Collection<?> arg3) {
  super(arg0, arg1, arg2, arg3);
  testInputDialog = new InputDialog(arg0, "dialogTitle", "dialogMessage", "initialValue", null);
  arg0.layout();
}

InputDialog testInputDialog;
//GridLayout gridLayout = new GridLayout(4, 2);

RowLayout rowLayout = new RowLayout();

@Override
public ColumnViewer createViewer(Composite parent) {
  ColumnViewer out = super.createViewer(parent);
  return out;
}

}

Я подозреваю, что что-то должно быть сделано в createViewer, однако я не могу разобраться с этим.Оригинальный createViewer:

public ColumnViewer createViewer(Composite parent) {
 _tableViewer = new TableViewer(parent, getViewerStyle());

 GridData data = new GridData();
 data.widthHint = convertWidthInCharsToPixels(getWidth());
 data.heightHint = convertHeightInCharsToPixels(getHeight());
 data.grabExcessVerticalSpace = true;
 data.grabExcessHorizontalSpace = true;
 data.horizontalAlignment = GridData.FILL;
 data.verticalAlignment = GridData.FILL;

 final Table tree = _tableViewer.getTable();
 tree.setLayoutData(data);
 tree.setFont(parent.getFont());

 setLabelProviderToTableViewer();

 _tableViewer.setContentProvider(getContentProvider());
 _tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
   @Override
   public void selectionChanged(SelectionChangedEvent event) {
     ISelection selection = event.getSelection();
     if (selection instanceof StructuredSelection) {
       StructuredSelection actualSelection = (StructuredSelection) selection;
       if (!actualSelection.isEmpty()) {
         updateOKStatus();
       }
     }
   }
 });

 _tableViewer.setSorter(new ViewerSorterForModelElements(false));
 _tableViewer.setUseHashlookup(true);

 _tableViewer.setInput(getElementsToDisplay(getInputArtefacts()));

 StructuredSelection selection = new StructuredSelection(getInitialElementSelections());
 _tableViewer.setSelection(selection, true);

 return _tableViewer;
}

Мне бы очень помогло, если бы кто-нибудь сказал мне, как сделать даже небольшое изменение в окне.Как только я смогу немного это изменить, я смогу это понять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...