author | Eugene Ostroukhov <eugeneo@symbian.org> |
Fri, 13 Aug 2010 16:28:00 -0700 | |
changeset 463 | aea4c83725d8 |
permissions | -rw-r--r-- |
463
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
1 |
package org.symbian.tools.tmw.internal.ui.wizard; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
2 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
3 |
import org.eclipse.core.databinding.DataBindingContext; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
4 |
import org.eclipse.core.databinding.UpdateValueStrategy; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
5 |
import org.eclipse.core.databinding.beans.BeansObservables; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
6 |
import org.eclipse.core.databinding.observable.value.IObservableValue; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
7 |
import org.eclipse.jface.databinding.viewers.IViewerObservableValue; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
8 |
import org.eclipse.jface.databinding.viewers.ViewersObservables; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
9 |
import org.eclipse.jface.viewers.ArrayContentProvider; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
10 |
import org.eclipse.jface.viewers.DoubleClickEvent; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
11 |
import org.eclipse.jface.viewers.IDoubleClickListener; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
12 |
import org.eclipse.jface.viewers.ISelectionChangedListener; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
13 |
import org.eclipse.jface.viewers.IStructuredSelection; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
14 |
import org.eclipse.jface.viewers.LabelProvider; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
15 |
import org.eclipse.jface.viewers.SelectionChangedEvent; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
16 |
import org.eclipse.jface.viewers.TableViewer; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
17 |
import org.eclipse.jface.viewers.ViewerSorter; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
18 |
import org.eclipse.jface.wizard.IWizardPage; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
19 |
import org.eclipse.jface.wizard.WizardPage; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
20 |
import org.eclipse.swt.SWT; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
21 |
import org.eclipse.swt.graphics.Image; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
22 |
import org.eclipse.swt.layout.FormAttachment; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
23 |
import org.eclipse.swt.layout.FormData; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
24 |
import org.eclipse.swt.layout.FormLayout; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
25 |
import org.eclipse.swt.layout.GridData; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
26 |
import org.eclipse.swt.widgets.Composite; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
27 |
import org.eclipse.swt.widgets.Display; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
28 |
import org.eclipse.swt.widgets.Text; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
29 |
import org.symbian.tools.tmw.ui.project.IProjectTemplate; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
30 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
31 |
public class NewApplicationTemplateWizardPage extends WizardPage { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
32 |
public class ProjectTemplateLabelProvider extends LabelProvider { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
33 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
34 |
@Override |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
35 |
public Image getImage(Object element) { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
36 |
return ((IProjectTemplate) element).getIcon(); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
37 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
38 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
39 |
@Override |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
40 |
public String getText(Object element) { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
41 |
return ((IProjectTemplate) element).getName(); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
42 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
43 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
44 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
45 |
private TableViewer templates; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
46 |
private Text description; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
47 |
private final WizardContext context; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
48 |
private final DataBindingContext bindingContext; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
49 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
50 |
public NewApplicationTemplateWizardPage(WizardContext context, DataBindingContext bindingContext) { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
51 |
super("Create a New Mobile Web Application"); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
52 |
setTitle("Create a New Mobile Web Application"); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
53 |
this.context = context; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
54 |
this.bindingContext = bindingContext; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
55 |
setDescription("Select project name and template that will be used to populate"); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
56 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
57 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
58 |
public void createControl(Composite parent) { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
59 |
Composite composite = new Composite(parent, SWT.NONE); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
60 |
composite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
61 |
FormLayout layout = new FormLayout(); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
62 |
layout.marginWidth = 5; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
63 |
composite.setLayout(layout); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
64 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
65 |
templates = new TableViewer(composite, SWT.BORDER | SWT.SINGLE); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
66 |
FormData templatesData = new FormData(); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
67 |
templatesData.top = new FormAttachment(0, 0); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
68 |
templatesData.left = new FormAttachment(0, 0); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
69 |
templatesData.right = new FormAttachment(40, -2); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
70 |
templatesData.bottom = new FormAttachment(100, -8); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
71 |
templates.getControl().setLayoutData(templatesData); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
72 |
templates.addSelectionChangedListener(new ISelectionChangedListener() { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
73 |
public void selectionChanged(SelectionChangedEvent event) { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
74 |
IStructuredSelection selection = (IStructuredSelection) event.getSelection(); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
75 |
final IProjectTemplate template = (IProjectTemplate) selection.getFirstElement(); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
76 |
refreshSelection(template); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
77 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
78 |
}); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
79 |
templates.addDoubleClickListener(new IDoubleClickListener() { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
80 |
public void doubleClick(DoubleClickEvent arg0) { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
81 |
switchWizardPage(); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
82 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
83 |
}); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
84 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
85 |
description = new Text(composite, SWT.BORDER | SWT.MULTI | SWT.WRAP | SWT.READ_ONLY); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
86 |
FormData descriptionData = new FormData(); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
87 |
descriptionData.top = new FormAttachment(0, 0); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
88 |
descriptionData.bottom = new FormAttachment(100, -8); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
89 |
descriptionData.left = new FormAttachment(templates.getControl(), 5); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
90 |
descriptionData.right = new FormAttachment(100, 0); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
91 |
descriptionData.width = 50; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
92 |
description.setLayoutData(descriptionData); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
93 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
94 |
templates.setContentProvider(new ArrayContentProvider()); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
95 |
templates.setLabelProvider(new ProjectTemplateLabelProvider()); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
96 |
templates.setSorter(new ViewerSorter() { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
97 |
@Override |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
98 |
public int category(Object element) { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
99 |
return Integer.valueOf(((IProjectTemplate) element).getWeight()); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
100 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
101 |
}); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
102 |
setPageComplete(false); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
103 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
104 |
IObservableValue input = ViewersObservables.observeInput(templates); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
105 |
IObservableValue templ = BeansObservables.observeValue(context, WizardContext.TEMPLATES); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
106 |
bindingContext.bindValue(input, templ, new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
107 |
new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE)); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
108 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
109 |
IViewerObservableValue selection = ViewersObservables.observeSingleSelection(templates); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
110 |
IObservableValue property = BeansObservables.observeValue(context, WizardContext.TEMPLATE); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
111 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
112 |
bindingContext.bindValue(selection, property); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
113 |
if (context.getTemplate() != null) { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
114 |
refreshSelection(context.getTemplate()); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
115 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
116 |
setErrorMessage(null); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
117 |
setControl(composite); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
118 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
119 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
120 |
protected void switchWizardPage() { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
121 |
Display display = getShell().getDisplay(); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
122 |
display.asyncExec(new Runnable() { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
123 |
public void run() { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
124 |
if (isPageComplete()) { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
125 |
IWizardPage nextPage = getWizard().getNextPage(NewApplicationTemplateWizardPage.this); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
126 |
getContainer().showPage(nextPage); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
127 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
128 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
129 |
}); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
130 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
131 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
132 |
protected void refreshSelection(IProjectTemplate template) { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
133 |
if (template != null) { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
134 |
description.setText(template.getDescription()); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
135 |
} else { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
136 |
description.setText(""); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
137 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
138 |
validatePage(); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
139 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
140 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
141 |
protected boolean validatePage() { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
142 |
if (templates.getSelection().isEmpty()) { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
143 |
setErrorMessage("Project template is not selected"); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
144 |
setPageComplete(false); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
145 |
return false; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
146 |
} else { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
147 |
setErrorMessage(null); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
148 |
setPageComplete(true); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
149 |
return true; |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
150 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
151 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
152 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
153 |
public IProjectTemplate getSelectedProjectTemplate() { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
154 |
IStructuredSelection selection = (IStructuredSelection) templates.getSelection(); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
155 |
return (IProjectTemplate) selection.getFirstElement(); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
156 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
157 |
|
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
158 |
@Override |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
159 |
public void setVisible(boolean visible) { |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
160 |
super.setVisible(visible); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
161 |
templates.getControl().setFocus(); |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
162 |
} |
aea4c83725d8
Project template work-in-progress
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
163 |
} |