aboutsummaryrefslogtreecommitdiffstats
path: root/org.openembedded.bc.ui/src/org/openembedded/bc/ui/wizards/install/InstallWizard.java
blob: 2297939c04600111d00adbc1cfc61c7662f4e141 (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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package org.openembedded.bc.ui.wizards.install;

import java.lang.reflect.InvocationTargetException;
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.IWorkbench;
import org.eclipse.ui.IWorkbenchWizard;
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;


/**
 * A wizard for installing a fresh copy of an OE system.
 * 
 * @author kgilmer
 * 
 */
public class InstallWizard extends FiniteStateWizard implements IWorkbenchWizard {

	static final String KEY_PINFO = "KEY_PINFO";
	private Map model;

	public InstallWizard() {
		this.model = new Hashtable();
		setWindowTitle("BitBake Commander");
		setNeedsProgressMonitor(false);
		setDefaultPageImageDescriptor(Activator.getImageDescriptor("icons/OE_logo_96.png"));
	}

	public InstallWizard(IStructuredSelection selection) {
		model = new Hashtable();
	}

	/*@Override
	public IWizardPage getNextPage(IWizardPage page) {
		if (page instanceof WelcomePage) {
			if (model.containsKey(WelcomePage.ACTION_USE)) {
				return bbcProjectPage;
			}
		} else if (page instanceof ProgressPage) {
			return bitbakePage;
		}
		
		if (super.getNextPage(page) != null) {
			System.out.println("next page: " + super.getNextPage(page).getClass().getName());
		} else {
			System.out.println("end page");
		}

		return super.getNextPage(page);
	}

	@Override
	public boolean canFinish() {
		System.out.println("can finish: " + super.canFinish());
		return super.canFinish();
	}
*/
	@Override
	public void addPages() {
	//	flavorPage = new FlavorPage(model);
	//	bitbakePage = new BitbakePage(model);
	//	bbcProjectPage = new BBCProjectPage(model);
		//addPage(new WelcomePage(model));
		addPage(new FlavorPage(model));
		addPage(new OptionsPage(model));
		addPage(new ProgressPage(model));
		//addPage(bbcProjectPage);
		addPage(new BitbakePage(model));
	}

	@Override
	public Map getModel() {
		return model;
	}

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

		return true;
	}

	public void init(IWorkbench workbench, IStructuredSelection selection) {
	}
}