@Override protected Control createDialogArea(Composite parent) { Composite area = (Composite) super.createDialogArea(parent); setTitle(getDialogTitle()); setMessage(getMessage(), IMessageProvider.ERROR); Composite sashForm = new XComposite(area, SWT.NONE); sashForm.setLayoutData(new GridData(GridData.FILL_BOTH)); transferTreeComposite = new TransferTreeComposite(sashForm); transferTreeComposite.setInput(paymentDatas, deliveryDatas); transferTreeComposite.setLayoutData(new GridData(GridData.FILL_BOTH)); // transferTreeComposite.getTreeViewer().expandAll(); createStackTraceText(sashForm); transferTreeComposite .getTreeViewer() .addSelectionChangedListener( new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { if (event.getSelection().isEmpty()) { errorStackTrace.setText(""); // $NON-NLS-1$ return; } IStructuredSelection sel = (IStructuredSelection) event.getSelection(); Object o = sel.getFirstElement(); String stackTrace = null; if (o instanceof PaymentResultTreeNode) { stackTrace = ((PaymentResultTreeNode) o).getPaymentResult().getErrorStackTrace(); } else if (o instanceof DeliveryResultTreeNode) { stackTrace = ((DeliveryResultTreeNode) o).getDeliveryResult().getErrorStackTrace(); } if (stackTrace == null) stackTrace = ""; // $NON-NLS-1$ errorStackTrace.setText(stackTrace); } }); return area; }
protected void sendErrorReportPressed() { ErrorReport errorReport = null; Object input = transferTreeComposite.getInput(); if (input instanceof Object[]) { Object[] paymentAndDeliveryDatas = (Object[]) input; for (Object o : paymentAndDeliveryDatas) { if (o instanceof List) { errorReport = fillErrorReport(errorReport, (List<?>) o); } } } if (errorReport == null) { Exception xxx = new IllegalStateException( "transferTreeComposite.getInput() did not return any data from which we could create an error report!"); //$NON-NLS-1$ errorReport = new ErrorReport(xxx, xxx); } ErrorReportWizardDialog dlg = new ErrorReportWizardDialog(errorReport); okPressed(); dlg.open(); }