Skip to content

Commit 4aa1fb9

Browse files
committed
[498266] Add checkbox to show/hide nightly builds in EngineDownloadDialog
Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=498266 Signed-off-by: Rastislav Wagner <[email protected]>
1 parent d4ccc0e commit 4aa1fb9

File tree

1 file changed

+33
-2
lines changed

1 file changed

+33
-2
lines changed

plugins/org.eclipse.thym.ui/src/org/eclipse/thym/ui/internal/engine/EngineDownloadDialog.java

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
import org.eclipse.jface.viewers.ViewerFilter;
4040
import org.eclipse.jface.wizard.ProgressMonitorPart;
4141
import org.eclipse.swt.SWT;
42+
import org.eclipse.swt.events.SelectionAdapter;
43+
import org.eclipse.swt.events.SelectionEvent;
4244
import org.eclipse.swt.graphics.Image;
4345
import org.eclipse.swt.graphics.Point;
4446
import org.eclipse.swt.layout.GridLayout;
@@ -69,6 +71,7 @@ public class EngineDownloadDialog extends TitleAreaDialog{
6971
private CordovaEngineProvider engineProvider;
7072
private List<HybridMobileEngine> engines;
7173
private ProgressMonitorPart progressMonitorPart;
74+
private Button nightlyBuilds;
7275

7376

7477
private class DownloadableEngineLabelProvider extends LabelProvider implements ITableLabelProvider{
@@ -142,6 +145,7 @@ public boolean select(Viewer viewer, Object parentElement,
142145
private class DownloadableVersionsContentProvider implements ITreeContentProvider{
143146
private DownloadableCordovaEngine[] downloadables;
144147
private PlatformSupport[] platforms;
148+
private boolean nightlyBuilds = false;
145149

146150
@Override
147151
public void dispose() {
@@ -189,7 +193,11 @@ public Object[] getChildren(Object parentElement) {
189193
ArrayList<DownloadableCordovaEngine> platformDownloadables = new ArrayList<DownloadableCordovaEngine>();
190194
for (DownloadableCordovaEngine engine : downloadables) {
191195
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+
}
193201
}
194202
}
195203
return platformDownloadables.toArray(new DownloadableCordovaEngine[platformDownloadables.size()]);
@@ -212,6 +220,14 @@ public Object getParent(Object element) {
212220
public boolean hasChildren(Object element) {
213221
return element instanceof PlatformSupport;
214222
}
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+
}
215231

216232
}
217233

@@ -243,7 +259,8 @@ protected Control createDialogArea(Composite parent) {
243259
tree.setLinesVisible(true);
244260

245261
platformList = new CheckboxTreeViewer(tree);
246-
platformList.setContentProvider(new DownloadableVersionsContentProvider());
262+
final DownloadableVersionsContentProvider provider = new DownloadableVersionsContentProvider();
263+
platformList.setContentProvider(provider);
247264
platformList.setLabelProvider(new DownloadableEngineLabelProvider());
248265
platformList.setComparator(new DownloadableEngineComparator());
249266
platformList.addFilter(new InstalledVersionsFilter());
@@ -259,6 +276,20 @@ public void checkStateChanged(CheckStateChangedEvent event) {
259276
}
260277
});
261278

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+
262293
createProgressMonitorPart(composite);
263294
engineProvider = new CordovaEngineProvider();
264295
try {

0 commit comments

Comments
 (0)