blob: 20534d6a34864f02f9970b9620c5af8b67030347 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2002, 2006 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM - Initial API and implementation
*******************************************************************************/
package org.eclipse.core.tools.metadata;
import java.io.File;
import org.eclipse.core.tools.*;
import org.eclipse.jface.action.*;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.TextViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Menu;
/**
* Dump Summary Spy view. This view shows the outcome of a dumping.
*/
public class DumpSummaryView extends SpyView {
/** Stores the initially assigned view title. */
private String initialTitle;
/** The JFace widget that shows the current selected file dump summary */
private TextViewer viewer;
/** The id by which this view is known in the plug-in registry */
public static final String VIEW_ID = DumpSummaryView.class.getName();
/**
* Creates this view widget and actions.
*
* @param parent the parent control
* @see org.eclipse.ui.IWorkbenchPart#createPartControl
* (org.eclipse.swt.widgets.Composite)
*/
@Override
public void createPartControl(final Composite parent) {
// creates a read-only text viewer
viewer = new TextViewer(parent, SWT.V_SCROLL | SWT.H_SCROLL);
viewer.setDocument(new Document());
viewer.setEditable(false);
final IAction copySelectionAction = new CopyTextSelectionAction(viewer);
final IAction clearContentsAction = new ClearTextAction(viewer.getDocument());
// adds actions to the menu bar
IMenuManager barMenuManager = getViewSite().getActionBars().getMenuManager();
barMenuManager.add(copySelectionAction);
barMenuManager.add(clearContentsAction);
// creates a context menu with actions and adds it to the viewer control
MenuManager menuMgr = new MenuManager();
menuMgr.add(copySelectionAction);
menuMgr.add(clearContentsAction);
Menu menu = menuMgr.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
}
/**
* Rebuilds the view with the dump object provided. Only summary information
* is made available.
*
* @param dump a dump object describing the result of a dumping process.
*/
void load(IDump dump) {
// now is safe to get the part title
if (initialTitle == null)
this.initialTitle = this.getTitle();
// sets title and tool tip
File file = dump.getFile();
this.setContentDescription(initialTitle + " : " + file.getName()); //$NON-NLS-1$
this.setTitleToolTip("Dump summary for file " + file.getAbsolutePath()); //$NON-NLS-1$
// generates text to be shown on this view
StringBuilder output = new StringBuilder();
if (dump.isFailed())
output.append(dump.getFailureReason().toString());
else
output.append("No errors. "); //$NON-NLS-1$
output.append(dump.getOffset());
output.append('/');
output.append(dump.getFile().length());
output.append(" byte(s) read"); //$NON-NLS-1$
// updates the view contents
viewer.getDocument().set(output.toString());
}
}