/** * Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the Eclipse Public License (EPL). * Please see the license.txt included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package org.python.pydev.debug.pyunit; import java.lang.ref.WeakReference; import org.eclipse.jface.action.Action; import org.python.pydev.core.callbacks.ICallbackListener; import org.python.pydev.debug.core.PydevDebugPlugin; /** * @author fabioz * */ public class RestorePinHistoryAction extends Action implements ICallbackListener<PyUnitTestRun> { private WeakReference<PyUnitView> view; private PinHistoryAction pinHistory; private PyUnitTestRun testRun; /** * @param pyUnitView */ public RestorePinHistoryAction(PyUnitView pyUnitView, PinHistoryAction pinHistory) { this.view = new WeakReference<PyUnitView>(pyUnitView); this.pinHistory = pinHistory; this.pinHistory.onRunSelected.registerListener(this); this.setEnabled(false); this.setImageDescriptor(PydevDebugPlugin.getImageCache().getDescriptor("icons/refresh.png")); setInitialTooltipText(); } private void setInitialTooltipText() { this.setToolTipText("Click to restore pinned test run."); } public Object call(PyUnitTestRun obj) { if (obj != null) { this.setToolTipText("Click to restore test run: " + obj.name); } else { setInitialTooltipText(); } this.setEnabled(obj != null); this.testRun = obj; return null; } @Override public void run() { if (testRun != null) { SetCurrentRunAction setCurrentRunAction = new SetCurrentRunAction(view, testRun); setCurrentRunAction.run(); } } }