1 package org.symbian.tools.tmw.internal.ui.wizard; |
1 package org.symbian.tools.tmw.internal.ui.wizard; |
2 |
2 |
3 import java.beans.PropertyChangeListener; |
3 import java.beans.PropertyChangeListener; |
4 import java.beans.PropertyChangeSupport; |
4 import java.beans.PropertyChangeSupport; |
|
5 import java.io.FilterInputStream; |
|
6 import java.io.IOException; |
5 import java.io.InputStream; |
7 import java.io.InputStream; |
6 import java.text.MessageFormat; |
8 import java.text.MessageFormat; |
|
9 import java.util.Collection; |
7 import java.util.Map; |
10 import java.util.Map; |
8 import java.util.Set; |
11 import java.util.Set; |
9 import java.util.TreeMap; |
12 import java.util.TreeMap; |
|
13 import java.util.TreeSet; |
10 |
14 |
11 import org.eclipse.core.databinding.DataBindingContext; |
15 import org.eclipse.core.databinding.DataBindingContext; |
12 import org.eclipse.core.databinding.UpdateValueStrategy; |
16 import org.eclipse.core.databinding.UpdateValueStrategy; |
13 import org.eclipse.core.databinding.beans.BeansObservables; |
17 import org.eclipse.core.databinding.beans.BeansObservables; |
14 import org.eclipse.core.databinding.observable.Observables; |
|
15 import org.eclipse.core.databinding.observable.map.IObservableMap; |
|
16 import org.eclipse.core.databinding.observable.value.AbstractObservableValue; |
18 import org.eclipse.core.databinding.observable.value.AbstractObservableValue; |
17 import org.eclipse.core.databinding.observable.value.IObservableValue; |
19 import org.eclipse.core.databinding.observable.value.IObservableValue; |
18 import org.eclipse.core.databinding.observable.value.ValueDiff; |
20 import org.eclipse.core.databinding.observable.value.ValueDiff; |
19 import org.eclipse.core.databinding.validation.IValidator; |
21 import org.eclipse.core.databinding.validation.IValidator; |
20 import org.eclipse.core.resources.IContainer; |
22 import org.eclipse.core.resources.IContainer; |
29 import org.eclipse.jface.databinding.swt.ISWTObservableValue; |
31 import org.eclipse.jface.databinding.swt.ISWTObservableValue; |
30 import org.eclipse.jface.databinding.swt.SWTObservables; |
32 import org.eclipse.jface.databinding.swt.SWTObservables; |
31 import org.eclipse.swt.SWT; |
33 import org.eclipse.swt.SWT; |
32 import org.eclipse.swt.layout.GridData; |
34 import org.eclipse.swt.layout.GridData; |
33 import org.eclipse.swt.widgets.Composite; |
35 import org.eclipse.swt.widgets.Composite; |
34 import org.eclipse.swt.widgets.Label; |
|
35 import org.eclipse.swt.widgets.Text; |
36 import org.eclipse.swt.widgets.Text; |
36 import org.symbian.tools.tmw.core.TMWCore; |
37 import org.symbian.tools.tmw.core.TMWCore; |
37 import org.symbian.tools.tmw.core.runtimes.IMobileWebRuntime; |
38 import org.symbian.tools.tmw.core.runtimes.IMobileWebRuntime; |
38 import org.symbian.tools.tmw.internal.util.Util; |
39 import org.symbian.tools.tmw.internal.util.Util; |
39 import org.symbian.tools.tmw.ui.TMWCoreUI; |
40 import org.symbian.tools.tmw.ui.TMWCoreUI; |
56 private IProjectTemplate template = null; |
57 private IProjectTemplate template = null; |
57 |
58 |
58 private String widgetId; |
59 private String widgetId; |
59 |
60 |
60 private String widgetName; |
61 private String widgetName; |
|
62 private final Collection<String> jsIncludes = new TreeSet<String>(); |
61 |
63 |
62 public WizardContext() { |
64 public WizardContext() { |
63 IMobileWebRuntime[] runtimes = TMWCore.getRuntimesManager().getAllRuntimes(); |
65 IMobileWebRuntime[] runtimes = TMWCore.getRuntimesManager().getAllRuntimes(); |
64 if (runtimes.length > 0) { |
66 if (runtimes.length > 0) { |
65 runtime = runtimes[0]; |
67 runtime = runtimes[0]; |
71 monitor.beginTask(name.toOSString(), 100); |
73 monitor.beginTask(name.toOSString(), 100); |
72 final IFile file = project.getFile(name); |
74 final IFile file = project.getFile(name); |
73 if (!file.exists()) { |
75 if (!file.exists()) { |
74 create(file.getParent()); |
76 create(file.getParent()); |
75 } |
77 } |
76 file.create(contents, false, new SubProgressMonitor(monitor, 100)); |
78 file.create(new NonClosingStream(contents), false, new SubProgressMonitor(monitor, 100)); |
77 monitor.done(); |
79 monitor.done(); |
78 return file; |
80 return file; |
79 } |
81 } |
80 |
82 |
81 public void addPropertyChangeListener(PropertyChangeListener arg0) { |
83 public void addPropertyChangeListener(PropertyChangeListener arg0) { |
89 private void create(IContainer parent) throws CoreException { |
91 private void create(IContainer parent) throws CoreException { |
90 if (!parent.exists() && parent instanceof IFolder) { |
92 if (!parent.exists() && parent instanceof IFolder) { |
91 create(parent.getParent()); |
93 create(parent.getParent()); |
92 ((IFolder) parent).create(false, true, new NullProgressMonitor()); |
94 ((IFolder) parent).create(false, true, new NullProgressMonitor()); |
93 } |
95 } |
94 } |
|
95 |
|
96 protected void createLabel(Composite root, String text) { |
|
97 Label label = new Label(root, SWT.NONE); |
|
98 label.setText(text); |
|
99 } |
96 } |
100 |
97 |
101 private Text createText(Composite root, IObservableValue model, String propertyName, |
98 private Text createText(Composite root, IObservableValue model, String propertyName, |
102 DataBindingContext bindingContext, AbstractDataBindingPage page, IValidator... validators) { |
99 DataBindingContext bindingContext, AbstractDataBindingPage page, IValidator... validators) { |
103 Text text = new Text(root, SWT.BORDER); |
100 Text text = new Text(root, SWT.BORDER); |
115 AbstractDataBindingPage page, IValidator... validators) { |
112 AbstractDataBindingPage page, IValidator... validators) { |
116 return createText(root, BeansObservables.observeValue(this, property), propertyName, bindingContext, page, |
113 return createText(root, BeansObservables.observeValue(this, property), propertyName, bindingContext, page, |
117 validators); |
114 validators); |
118 } |
115 } |
119 |
116 |
120 protected Text createTextForExt(Composite root, String property, String propertyName, |
|
121 DataBindingContext bindingContext, AbstractDataBindingPage page) { |
|
122 IObservableMap map = BeansObservables.observeMap(this, "extensions"); |
|
123 IObservableValue entry = Observables.observeMapEntry(map, property, String.class); |
|
124 return createText(root, entry, propertyName, bindingContext, page); |
|
125 } |
|
126 |
|
127 private IProjectTemplate getDefaultTemplate(IMobileWebRuntime runtime) { |
117 private IProjectTemplate getDefaultTemplate(IMobileWebRuntime runtime) { |
128 return TMWCoreUI.getProjectTemplateManager().getDefaultTemplate(runtime); |
118 return TMWCoreUI.getProjectTemplateManager().getDefaultTemplate(runtime); |
129 } |
119 } |
130 |
120 |
131 private String getDefaultWidgetId() { |
121 private String getDefaultWidgetId() { |
185 vars.putAll(t.getDefaultParameterValues()); |
175 vars.putAll(t.getDefaultParameterValues()); |
186 } |
176 } |
187 |
177 |
188 vars.put("widgetName", getWidgetName()); |
178 vars.put("widgetName", getWidgetName()); |
189 vars.put("widgetId", getWidgetId()); |
179 vars.put("widgetId", getWidgetId()); |
|
180 vars.put("jsIncludes", jsIncludes); |
190 vars.putAll(extensions); |
181 vars.putAll(extensions); |
191 |
182 |
192 return vars; |
183 return vars; |
193 } |
184 } |
194 |
185 |