Skip to content

Commit 5d88d60

Browse files
authored
Merge pull request #1279 from AlexUg/master
Library Preferences page was improved.
2 parents 6900606 + c86127c commit 5d88d60

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

io.sloeber.ui/src/io/sloeber/ui/preferences/LibrarySelectionPage.java

+17-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
import org.eclipse.core.runtime.IProgressMonitor;
44
import org.eclipse.core.runtime.IStatus;
55
import org.eclipse.core.runtime.MultiStatus;
6+
import org.eclipse.core.runtime.jobs.IJobChangeEvent;
67
import org.eclipse.core.runtime.jobs.Job;
8+
import org.eclipse.core.runtime.jobs.JobChangeAdapter;
9+
import org.eclipse.jface.dialogs.MessageDialog;
710
import org.eclipse.jface.preference.PreferencePage;
811
import org.eclipse.jface.viewers.CellLabelProvider;
912
import org.eclipse.jface.viewers.CheckboxTreeViewer;
@@ -80,15 +83,27 @@ protected Control createContents(Composite parent) {
8083
public boolean performOk() {
8184
if (this.isJobRunning == false) {
8285
this.isJobRunning = true;
83-
new Job(Messages.ui_Adopting_arduino_libraries) {
86+
Job job = new Job(Messages.ui_Adopting_arduino_libraries) {
8487
@Override
8588
protected IStatus run(IProgressMonitor monitor) {
8689
MultiStatus status = new MultiStatus(Activator.getId(), 0, Messages.ui_installing_arduino_libraries,
8790
null);
8891
return LibraryManager.setLibraryTree(LibrarySelectionPage.this.libs, monitor, status);
8992
}
90-
}.schedule();
93+
};
94+
job.addJobChangeListener(new JobChangeAdapter() {
95+
96+
@Override
97+
public void done(IJobChangeEvent event) {
98+
LibrarySelectionPage.this.isJobRunning = false;
99+
}
100+
101+
});
102+
job.setUser(true);
103+
job.schedule();
91104
return true;
105+
} else {
106+
MessageDialog.openInformation(getShell(), "Library Manager", "Library Manager is busy. Please wait some time...");
92107
}
93108
return false;
94109
}

0 commit comments

Comments
 (0)