nl.cloudfarming.client.fleet.machine.wizard.MachineWizardFactory Maven / Gradle / Ivy
/**
* Copyright (C) 2008-2012 AgroSense Foundation.
*
* AgroSense is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* There are special exceptions to the terms and conditions of the GPLv3 as it is applied to
* this software, see the FLOSS License Exception
* .
*
* AgroSense is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with AgroSense. If not, see .
*/
package nl.cloudfarming.client.fleet.machine.wizard;
import java.util.List;
import nl.cloudfarming.client.fleet.machine.MachineDataService;
import nl.cloudfarming.client.fleet.model.MachineProvider;
import org.netbeans.api.project.Project;
import org.openide.WizardDescriptor;
/**
* This factory provides functionality for the creation of objects used by the
* machine creation wizard. Create an implementation for this factory to
* customize the machine wizard for different machine types.
*
* @author Wytse Visser
*/
public abstract class MachineWizardFactory {
private Project project;
/**
* Creates a MachineWizardFactory for the given project
*
* @param project The project
*/
public MachineWizardFactory(Project project) {
this.project = project;
}
/**
* @return The project which belongs to this factory
*/
protected Project getProject() {
return project;
}
/**
* Creates a new WizardIterator for the wizard.
*
* @return A WizardIterator for the machine wizard.
*/
public MachineWizardIterator createWizardIterator() {
return new MachineWizardIterator(this);
}
/**
* Creates an overview panel for a machine wizard. This panel is added to
* the last step in the machine creation wizard.
*
* @return The created overview panel
*/
public abstract MachineWizardPanel createOverviewPanel();
/**
* Creates the panels which are initially added to the machine creation
* wizard.
*
* @return The list with the initial panels.
*/
public abstract List> createInitialPanels();
/**
* @return The class that is implemented by data services for this machine
* type.
*/
public abstract Class extends MachineDataService> getDataServiceClass();
/**
* @return The class of the specific implementation of MachineProvider for
* this machine
*/
public abstract Class extends MachineProvider> getMachineProviderClass();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy