+ private void asynchronousRefresh() {
+ refreshFilteredList();
+ // FIXME Does not work yet: how can the job set the viewer input ?
+ // RefreshJob job = new RefreshJob(session, artifactTxt.getText());
+ // job.setUser(true);
+ // job.schedule();
+ // viewer.setInput(nodes);
+ }
+
+ private class RefreshJob extends Job {
+ private Session session;
+ private List<Node> nodes;
+ private String filter;
+
+ public RefreshJob(Session session, String filter, List<Node> nodes) {
+ super("Get bundle list");
+ this.session = session;
+ }
+
+ @Override
+ protected IStatus run(IProgressMonitor progressMonitor) {
+ try {
+ ArgeoMonitor monitor = new EclipseArgeoMonitor(progressMonitor);
+ monitor.beginTask("Getting bundle list", -1);
+ List<Node> result = JcrUtils
+ .nodeIteratorToList(listBundleArtifacts(session, filter));
+ nodes.addAll(result);
+ } catch (Exception e) {
+ return new Status(IStatus.ERROR, DistPlugin.ID,
+ "Cannot get bundle list", e);
+ }
+ return Status.OK_STATUS;
+ }
+ }
+