/******************************************************************************* * Copyright (c) 2013 Cloud Bees, Inc. * All rights reserved. * This program is 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: * Cloud Bees, Inc. - initial API and implementation *******************************************************************************/ package com.cloudbees.eclipse.dev.ui.actions; import org.eclipse.jface.action.Action; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Event; import com.cloudbees.eclipse.core.jenkins.api.JenkinsBuild; import com.cloudbees.eclipse.core.jenkins.api.JenkinsJobsResponse; import com.cloudbees.eclipse.dev.ui.CBDEVImages; import com.cloudbees.eclipse.dev.ui.CloudBeesDevUiPlugin; public class OpenBuildAction extends Action { private Object build; public OpenBuildAction(final boolean last) { super(last ? "Open last build details" : "Open build details", Action.AS_PUSH_BUTTON | SWT.NO_FOCUS); //TODO i18n setToolTipText(last ? "Open last build details of this job" : "Open build details"); //TODO i18n setImageDescriptor(CloudBeesDevUiPlugin.getImageDescription(CBDEVImages.IMG_BUILD_DETAILS)); super.setEnabled(false); } @Override public void setEnabled(final boolean enable) { // ignore } public void setBuild(final Object build) { this.build = build; super.setEnabled(this.build != null); } @Override public boolean isEnabled() { return this.build != null; } @Override public void runWithEvent(final Event event) { if (this.build instanceof JenkinsJobsResponse.Job) { CloudBeesDevUiPlugin.getDefault().showBuildForJob(((JenkinsJobsResponse.Job) this.build)); } else if (this.build instanceof JenkinsBuild) { CloudBeesDevUiPlugin.getDefault().showBuild(((JenkinsBuild) this.build)); } } }