package org.mongodb.meclipse.wizards;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchWizard;
import org.mongodb.meclipse.MeclipsePlugin;
import org.mongodb.meclipse.preferences.MongoInstance;
import org.mongodb.meclipse.views.objects.Connection;
/**
* @author Flavio [FlaPer87] Percoco Premoli,
* @author Joey Mink, ExoAnalytic Solutions
*/
public class ConnectionWizard extends Wizard implements INewWizard {
private ConnectionWizardPage page;
private ISelection selection;
/**
* Constructor for InvokatronWizard.
*/
public ConnectionWizard() {
super();
setNeedsProgressMonitor(true);
}
/**
* Adding the page to the wizard.
*/
public void addPages() {
page = new ConnectionWizardPage(selection);
addPage(page);
}
/**
* This method is called when 'Finish' button is pressed in the wizard. We
* will create an operation and run it using wizard as execution context.
*/
public boolean performFinish() {
// 1st, add the connection to our overall state:
MongoInstance mongoInstance = new MongoInstance(page.getConnName());
mongoInstance.setHost(page.getHost());
mongoInstance.setPort(page.getPort());
MeclipsePlugin.getDefault().addMongo(page.getConnName(), mongoInstance);
return true;
}
public Connection getNewConnection() {
return page.getConnection();
}
/**
* 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.selection = selection;
}
}