package rocks.inspectit.ui.rcp.editor.text.input; import java.util.List; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.forms.widgets.FormToolkit; import rocks.inspectit.shared.all.communication.data.ExceptionSensorData; /** * Textual input controller for displaying the stack trace of a single {@link ExceptionSensorData} * object. * * @author Ivan Senic * */ public class UngroupedExceptionOverviewStackTraceInputController extends AbstractTextInputController { /** * The ID of this subview / controller. */ public static final String ID = "inspectit.subview.text.ungroupedexceptionoverviewstacktrace"; /** * Text box to display the stack trace. */ private Text stackTraceText; /** * {@inheritDoc} */ @Override public void createPartControl(Composite parent, FormToolkit toolkit) { stackTraceText = toolkit.createText(parent, "", SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI); stackTraceText.setEditable(false); stackTraceText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); } /** * {@inheritDoc} */ @Override public void setDataInput(List<? extends Object> data) { if ((data == null) || data.isEmpty()) { stackTraceText.setText(""); } else { Object input = data.get(0); if (input instanceof ExceptionSensorData) { stackTraceText.setText(((ExceptionSensorData) input).getStackTrace()); } } } }