com.cloudbees.eclipse.ui.internal.wizard.JenkinsWizard.java Source code

Java tutorial

Introduction

Here is the source code for com.cloudbees.eclipse.ui.internal.wizard.JenkinsWizard.java

Source

/*******************************************************************************
 * 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);

    }

}