/******************************************************************************* * 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.ui.internal.wizard; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.wizard.Wizard; import com.cloudbees.eclipse.core.domain.JenkinsInstance; import com.cloudbees.eclipse.ui.CloudBeesUIPlugin; public class JenkinsWizard extends Wizard { private final JenkinsInstance instance; private final JenkinsUrlPage pageUrl; private final JenkinsFinishPage pageFinish; public JenkinsWizard() { this(new JenkinsInstance()); } public JenkinsWizard(final JenkinsInstance ni) { this.instance = ni; setNeedsProgressMonitor(true); ImageDescriptor id = ImageDescriptor.createFromURL(CloudBeesUIPlugin.getDefault().getBundle() .getResource("/icons/cb_wiz_icon2.png")); setDefaultPageImageDescriptor(id); if (ni.label == null) { setWindowTitle("New Jenkins instance"); } else { setWindowTitle("Edit Jenkins instance"); } setForcePreviousAndNextButtons(true); setHelpAvailable(false); this.pageUrl = new JenkinsUrlPage(ni); this.pageFinish = new JenkinsFinishPage(ni); } @Override public void addPages() { addPage(this.pageUrl); addPage(this.pageFinish); } @Override public boolean performFinish() { saveInstanceInfo(); return true; } public JenkinsInstance getJenkinsInstance() { return this.instance; } private void saveInstanceInfo() { // TODO shouldn't we actually save only when Apply clicked on the preference page? CloudBeesUIPlugin.getDefault().saveJenkinsInstance(this.instance); } }