package fr.opensagres.nosql.ide.ui.wizards; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchWizard; import fr.opensagres.nosql.ide.core.model.ICollection; import fr.opensagres.nosql.ide.core.model.IDatabase; import fr.opensagres.nosql.ide.core.model.IServer; import fr.opensagres.nosql.ide.core.model.ITreeSimpleNode; import fr.opensagres.nosql.ide.core.model.TreeSimpleNode; public abstract class AbstractSelectNodeWizard extends AbstractNewWizard { public enum SelectType { Server, Database, Collection } private IServer server; private IDatabase database; private ICollection 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; init(node); } } } public void init(ITreeSimpleNode node) { if (node instanceof IServer) { server = (IServer) node; } else if (node instanceof IDatabase) { database = (IDatabase) node; server = database.getParent(); } else if (node instanceof ICollection) { collection = (ICollection) node; database = collection.getDatabase(); server = database.getParent(); } } public IServer getInitialServer() { return server; } public IDatabase getInitialDatabase() { return database; } }