/*******************************************************************************
* 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 com.cloudbees.eclipse.core.jenkins.api.JenkinsBuild;
import com.cloudbees.eclipse.core.jenkins.api.JenkinsBuildDetailsResponse;
import com.cloudbees.eclipse.dev.ui.CBDEVImages;
import com.cloudbees.eclipse.dev.ui.CloudBeesDevUiPlugin;
/**
* @author antons
*/
public class OpenLogAction extends Action {
private Object build;
public OpenLogAction() {
super("Open console log", Action.AS_PUSH_BUTTON | SWT.NO_FOCUS); //TODO i18n
setToolTipText("Open console log"); //TODO i18n
setImageDescriptor(CloudBeesDevUiPlugin.getImageDescription(CBDEVImages.IMG_CONSOLE));
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 run() {
if (this.build instanceof JenkinsBuild) {
CloudBeesDevUiPlugin.getDefault().getJobConsoleManager()
.showConsole(((JenkinsBuild) this.build).getDisplayName(), ((JenkinsBuild) this.build).url);
} else if (this.build instanceof JenkinsBuildDetailsResponse) {
CloudBeesDevUiPlugin.getDefault().getJobConsoleManager()
.showConsole(((JenkinsBuildDetailsResponse) this.build).getDisplayName(),
((JenkinsBuildDetailsResponse) this.build).url);
}
}
}