/******************************************************************************* * Copyright (c) 2004, 2005 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.debug.internal.ui.views.memory.renderings; import org.eclipse.debug.internal.ui.DebugUIMessages; import org.eclipse.debug.ui.DebugUITools; import org.eclipse.debug.ui.memory.AbstractMemoryRendering; import org.eclipse.jface.text.Document; import org.eclipse.jface.text.TextViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.StyledText; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; /** * A dummy rendering for displaying an error message in a view tab. * @since 3.1 */ /** * @author chanskw * */ public class ErrorRendering extends AbstractMemoryRendering { private TextViewer fTextViewer; private String fRenderingId; private Throwable fException; /** * @param renderingId - id of rendering that the memory view has failed * to create. */ public ErrorRendering(String renderingId, Throwable exception) { super("org.eclipse.debug.internal.ui.views.memory.errorrendering"); //$NON-NLS-1$ fRenderingId = renderingId; fException = exception; } /* (non-Javadoc) * @see org.eclipse.debug.ui.memory.IMemoryRendering#createControl(org.eclipse.swt.widgets.Composite) */ @Override public Control createControl(Composite parent) { fTextViewer = new TextViewer(parent, SWT.READ_ONLY); fTextViewer.setDocument(new Document()); StyledText styleText = fTextViewer.getTextWidget(); styleText.setText("\r\n\r\n" + DebugUIMessages.EmptyViewTab_Unable_to_create + "\n" + getRenderingName() + "\n\n" + DebugUIMessages.ErrorRendering_0 + fException.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ return fTextViewer.getControl(); } /** * */ private String getRenderingName() { if (DebugUITools.getMemoryRenderingManager().getRenderingType(fRenderingId)!= null) { String name = DebugUITools.getMemoryRenderingManager() .getRenderingType(fRenderingId) .getLabel(); return name; } return "Unknown"; //$NON-NLS-1$ } /* (non-Javadoc) * @see org.eclipse.debug.internal.ui.memory.AbstractMemoryRendering#getControl() */ @Override public Control getControl() { return fTextViewer.getControl(); } public void refresh() { } }