aboutsummaryrefslogtreecommitdiffstats
path: root/org.openembedded.bc.ui/src/org/openembedded/bc/ui/wizards/importProject/ImportOEProjectWizard.java
blob: b810fe76aa59edcf30650c63c47362da044d9622 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package org.openembedded.bc.ui.wizards.importProject;

import java.util.Hashtable;
import java.util.Map;

import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IImportWizard;
import org.eclipse.ui.IWorkbench;
import org.openembedded.bc.ui.Activator;
import org.openembedded.bc.ui.model.ProjectInfo;
import org.openembedded.bc.ui.wizards.FiniteStateWizard;
import org.openembedded.bc.ui.wizards.newproject.CreateBBCProjectOperation;


public class ImportOEProjectWizard extends FiniteStateWizard  implements IImportWizard {
	protected final static String KEY_OEROOT = "OEROOT";
	public static final String KEY_NAME = "NAME";
	public static final String KEY_LOCATION = "LOCATION";
	public static final String KEY_INITPATH = "INITPATH";
	protected static final String KEY_PINFO = "PINFO";
	
	private Map projectModel;
	private IWorkbench workbench;
	private IStructuredSelection selection;
	
	public ImportOEProjectWizard() {
		projectModel = new Hashtable();
	}
	
	public Map getModel() {
		return projectModel;
	}
	
	@Override
	public void addPages() {
		addPage(new BBCProjectPage(projectModel));
		addPage(new ConsolePage(projectModel));
	}

	
	public boolean performFinish() {
		ProjectInfo pinfo = (ProjectInfo) projectModel.get(KEY_PINFO);
		Activator.putProjInfo(pinfo.getRootPath(), pinfo);
		try {
			getContainer().run(false, false, new CreateBBCProjectOperation(pinfo));
		} catch (Exception e) {
			Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR, e.getMessage(), e));
			this.getContainer().getCurrentPage().setDescription("Failed to create project: " + e.getMessage());
			return false;
		} 
		
		return true;
	}

	public void init(IWorkbench workbench, IStructuredSelection selection) {
		this.workbench = workbench;
		this.selection = selection;
		this.setNeedsProgressMonitor(true);
		setWindowTitle("BitBake Commander Project");
	}
}