/** * Copyright (c) 2005-2013 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.debug.core.PydevDebugPlugin; import org.python.pydev.shared_core.callbacks.ICallbackListener; /** * @author fabioz */ public class RestorePinHistoryAction extends Action implements ICallbackListener<PyUnitTestRun> { private WeakReference<PyUnitView> view; private PyUnitTestRun testRun; /** * @param pyUnitView */ public RestorePinHistoryAction(PyUnitView pyUnitView) { this.view = new WeakReference<PyUnitView>(pyUnitView); this.setImageDescriptor(PydevDebugPlugin.getImageCache().getDescriptor("icons/refresh.png")); PyUnitViewTestsHolder.onPinSelected.registerListener(this); this.call(PyUnitViewTestsHolder.getCurrentPinned()); } private void setInitialTooltipText() { this.setToolTipText("Click to restore pinned test run."); } @Override 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(); } } }