39
39
import org .eclipse .jface .viewers .ViewerFilter ;
40
40
import org .eclipse .jface .wizard .ProgressMonitorPart ;
41
41
import org .eclipse .swt .SWT ;
42
+ import org .eclipse .swt .events .SelectionAdapter ;
43
+ import org .eclipse .swt .events .SelectionEvent ;
42
44
import org .eclipse .swt .graphics .Image ;
43
45
import org .eclipse .swt .graphics .Point ;
44
46
import org .eclipse .swt .layout .GridLayout ;
@@ -69,6 +71,7 @@ public class EngineDownloadDialog extends TitleAreaDialog{
69
71
private CordovaEngineProvider engineProvider ;
70
72
private List <HybridMobileEngine > engines ;
71
73
private ProgressMonitorPart progressMonitorPart ;
74
+ private Button nightlyBuilds ;
72
75
73
76
74
77
private class DownloadableEngineLabelProvider extends LabelProvider implements ITableLabelProvider {
@@ -142,6 +145,7 @@ public boolean select(Viewer viewer, Object parentElement,
142
145
private class DownloadableVersionsContentProvider implements ITreeContentProvider {
143
146
private DownloadableCordovaEngine [] downloadables ;
144
147
private PlatformSupport [] platforms ;
148
+ private boolean nightlyBuilds = false ;
145
149
146
150
@ Override
147
151
public void dispose () {
@@ -189,7 +193,11 @@ public Object[] getChildren(Object parentElement) {
189
193
ArrayList <DownloadableCordovaEngine > platformDownloadables = new ArrayList <DownloadableCordovaEngine >();
190
194
for (DownloadableCordovaEngine engine : downloadables ) {
191
195
if (engine .getPlatformId ().equals (platform .getPlatformId ())){
192
- platformDownloadables .add (engine );
196
+ if (nightlyBuilds ) {
197
+ platformDownloadables .add (engine );
198
+ } else if (!isNightlyBuild (engine )){
199
+ platformDownloadables .add (engine );
200
+ }
193
201
}
194
202
}
195
203
return platformDownloadables .toArray (new DownloadableCordovaEngine [platformDownloadables .size ()]);
@@ -212,6 +220,14 @@ public Object getParent(Object element) {
212
220
public boolean hasChildren (Object element ) {
213
221
return element instanceof PlatformSupport ;
214
222
}
223
+
224
+ public void showNightlyBuilds (boolean nightlyBuilds ){
225
+ this .nightlyBuilds = nightlyBuilds ;
226
+ }
227
+
228
+ private boolean isNightlyBuild (DownloadableCordovaEngine engine ){
229
+ return engine .getVersion () != null && engine .getVersion ().contains ("nightly" );
230
+ }
215
231
216
232
}
217
233
@@ -243,7 +259,8 @@ protected Control createDialogArea(Composite parent) {
243
259
tree .setLinesVisible (true );
244
260
245
261
platformList = new CheckboxTreeViewer (tree );
246
- platformList .setContentProvider (new DownloadableVersionsContentProvider ());
262
+ final DownloadableVersionsContentProvider provider = new DownloadableVersionsContentProvider ();
263
+ platformList .setContentProvider (provider );
247
264
platformList .setLabelProvider (new DownloadableEngineLabelProvider ());
248
265
platformList .setComparator (new DownloadableEngineComparator ());
249
266
platformList .addFilter (new InstalledVersionsFilter ());
@@ -259,6 +276,20 @@ public void checkStateChanged(CheckStateChangedEvent event) {
259
276
}
260
277
});
261
278
279
+
280
+ nightlyBuilds = new Button (composite , SWT .CHECK );
281
+ nightlyBuilds .setText ("Show nightly builds" );
282
+ nightlyBuilds .setSelection (false );
283
+ nightlyBuilds .addSelectionListener (new SelectionAdapter () {
284
+
285
+ @ Override
286
+ public void widgetSelected (SelectionEvent e ) {
287
+ provider .showNightlyBuilds (nightlyBuilds .getSelection ());
288
+ platformList .refresh ();
289
+ validate ();
290
+ }
291
+ });
292
+
262
293
createProgressMonitorPart (composite );
263
294
engineProvider = new CordovaEngineProvider ();
264
295
try {
0 commit comments