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) {
}
}
|