diff -r ed1c9f64298a -r 5b9d4d8641ce trace/traceviewer/com.nokia.trace.eventview/src/com/nokia/trace/eventview/EventListEntryThrowable.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trace/traceviewer/com.nokia.trace.eventview/src/com/nokia/trace/eventview/EventListEntryThrowable.java Wed Jun 23 14:49:59 2010 +0300 @@ -0,0 +1,110 @@ +/* + * Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: + * + * Event list entry, which contains a Throwable + * + */ +package com.nokia.trace.eventview; + +import org.eclipse.jface.action.IMenuManager; + +/** + * Event list entry, which contains a Throwable + * + */ +final class EventListEntryThrowable extends EventListEntryString { + + /** + * Action to show the exception to user + */ + private ShowExceptionAction action; + + /** + * Source + */ + private Throwable throwable; + + /** + * Constructor + * + * @param type + * event type + * @param description + * event description + * @param source + * event source + */ + EventListEntryThrowable(int type, String description, Throwable source) { + super(type, description, null); + this.throwable = source; + } + + /* + * (non-Javadoc) + * + * @see + * com.nokia.trace.eventview.EventListEntryString#addSourceActions(org.eclipse + * .jface.action.IMenuManager) + */ + @Override + protected void addSourceActions(IMenuManager manager) { + super.addSourceActions(manager); + if (action == null) { + action = new ShowExceptionAction((Throwable) getSource()); + } + manager.add(action); + } + + /* + * (non-Javadoc) + * + * @see com.nokia.trace.eventview.EventListEntryString#getSource() + */ + @Override + protected Object getSource() { + return throwable; + } + + /* + * (non-Javadoc) + * + * @see com.nokia.trace.eventview.EventListEntryString#getSourceName() + */ + @Override + protected String getSourceName() { + return throwable.getMessage(); + } + + /* + * (non-Javadoc) + * + * @see com.nokia.trace.eventview.EventListEntryString#hasSource() + */ + @Override + protected boolean hasSource() { + return true; + } + + /* + * (non-Javadoc) + * + * @see com.nokia.trace.eventview.EventListEntryString#hasSourceActions() + */ + @Override + protected boolean hasSourceActions() { + return true; + } + +}