diff -r 14dc2103a631 -r ed1c9f64298a trace/tracebuilder/com.nokia.tracebuilder.view/src/com/nokia/tracebuilder/view/ListNavigatorActionProvider.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trace/tracebuilder/com.nokia.tracebuilder.view/src/com/nokia/tracebuilder/view/ListNavigatorActionProvider.java Wed Jun 23 14:35:40 2010 +0300 @@ -0,0 +1,217 @@ +/* +* Copyright (c) 2007 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: +* +* Navigator action provider +* +*/ +package com.nokia.tracebuilder.view; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IAction; +import org.eclipse.ui.ISharedImages; +import org.eclipse.ui.PlatformUI; + +import com.nokia.tracebuilder.action.TraceViewActionProvider; +import com.nokia.tracebuilder.model.TraceModelExtensionUpdateListener; +import com.nokia.tracebuilder.model.TraceObject; + +/** + * Navigator action provider + * + */ +final class ListNavigatorActionProvider implements TraceViewActionProvider { + + /** + * Action list + */ + private ArrayList actions = new ArrayList(); + + /** + * The list to be navigated + */ + private ListWrapper listWrapper; + + /** + * Next action + */ + private Action nextAction; + + /** + * Previous action + */ + private Action previousAction; + + /** + * View reference + */ + private Object viewReference; + + /** + * Constructor + * + * @param list + * the list wrapper to be navigated + */ + ListNavigatorActionProvider(ListWrapper list) { + this.listWrapper = list; + nextAction = new Action(Messages + .getString("ListNavigatorActionProvider.Next")) { //$NON-NLS-1$ + @Override + public void run() { + listWrapper.showNext(); + } + }; + previousAction = new Action(Messages + .getString("ListNavigatorActionProvider.Previous")) { //$NON-NLS-1$ + @Override + public void run() { + listWrapper.showPrevious(); + } + }; + actions.add(previousAction); + actions.add(nextAction); + nextAction.setImageDescriptor(PlatformUI.getWorkbench() + .getSharedImages().getImageDescriptor( + ISharedImages.IMG_TOOL_FORWARD)); + previousAction.setImageDescriptor(PlatformUI.getWorkbench() + .getSharedImages().getImageDescriptor( + ISharedImages.IMG_TOOL_BACK)); + nextAction.setDisabledImageDescriptor(PlatformUI.getWorkbench() + .getSharedImages().getImageDescriptor( + ISharedImages.IMG_TOOL_FORWARD_DISABLED)); + previousAction.setDisabledImageDescriptor(PlatformUI.getWorkbench() + .getSharedImages().getImageDescriptor( + ISharedImages.IMG_TOOL_BACK_DISABLED)); + // The list is initially at the end + nextAction.setEnabled(false); + } + + /** + * Enables / disables the previous action + * + * @param flag + * the flag value + */ + void setPreviousEnabled(boolean flag) { + previousAction.setEnabled(flag); + } + + /** + * Enables / disables the next action + * + * @param flag + * the flag value + */ + void setNextEnabled(boolean flag) { + nextAction.setEnabled(flag); + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.engine.TraceViewActionProvider#getActions() + */ + public Iterator getActions() { + return actions.iterator(); + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.engine.TraceViewExtension#hideWhenEmpty() + */ + public boolean hideWhenEmpty() { + return false; + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.model.TraceModelExtension# + * setOwner(com.nokia.tracebuilder.model.TraceObject) + */ + public void setOwner(TraceObject owner) { + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.model.TraceModelExtension#getOwner() + */ + public TraceObject getOwner() { + return null; + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.engine.TraceViewExtension#getChildren() + */ + public Iterator getChildren() { + List list = Collections.emptyList(); + return list.iterator(); + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.engine.TraceViewExtension#hasChildren() + */ + public boolean hasChildren() { + return false; + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.model.TraceModelUpdatableExtension# + * addUpdateListener(com.nokia.tracebuilder.model.TraceModelExtensionUpdateListener) + */ + public void addUpdateListener(TraceModelExtensionUpdateListener listener) { + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.model.TraceModelUpdatableExtension# + * removeUpdateListener(com.nokia.tracebuilder.model.TraceModelExtensionUpdateListener) + */ + public void removeUpdateListener(TraceModelExtensionUpdateListener listener) { + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.engine.TraceViewExtension#getViewReference() + */ + public Object getViewReference() { + return viewReference; + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.engine.TraceViewExtension#setViewReference(java.lang.Object) + */ + public void setViewReference(Object reference) { + this.viewReference = reference; + } + +}