package fr.opensagres.mongodb.ide.ui.wizards;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchWizard;
import fr.opensagres.mongodb.ide.core.model.Collection;
import fr.opensagres.mongodb.ide.core.model.Database;
import fr.opensagres.mongodb.ide.core.model.Server;
import fr.opensagres.mongodb.ide.core.model.TreeSimpleNode;
public abstract class AbstractSelectNodeWizard extends AbstractNewWizard {
public enum SelectType {
Server, Database, Collection
}
private Server server;
private Database database;
private Collection collection;
public AbstractSelectNodeWizard() {
}
/**
* We will accept the selection in the workbench to see if we can initialize
* from it.
*
* @see IWorkbenchWizard#init(IWorkbench, IStructuredSelection)
*/
public void init(IWorkbench workbench, IStructuredSelection selection) {
this.server = null;
this.database = null;
if (!selection.isEmpty()) {
Object element = selection.getFirstElement();
if (element instanceof TreeSimpleNode) {
TreeSimpleNode node = (TreeSimpleNode) element;
if (node instanceof Server) {
server = (Server) node;
} else if (node instanceof Database) {
database = (Database) node;
server = database.getParent();
} else if (node instanceof Collection) {
collection = (Collection) node;
database = collection.getDatabase();
server = database.getParent();
}
}
}
}
public Server getInitialServer() {
return server;
}
public Database getInitialDatabase() {
return database;
}
}