Revision 7710d1ab
Added by Patrick Plitzner about 6 years ago
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/matrix/CharacterMatrix.java | ||
---|---|---|
19 | 19 |
import java.util.Map; |
20 | 20 |
import java.util.Properties; |
21 | 21 |
import java.util.Set; |
22 |
import java.util.UUID; |
|
22 | 23 |
import java.util.stream.Collectors; |
23 | 24 |
|
24 | 25 |
import org.apache.commons.collections4.map.LinkedMap; |
25 | 26 |
import org.eclipse.core.runtime.ICoreRunnable; |
26 |
import org.eclipse.core.runtime.IProgressMonitor; |
|
27 | 27 |
import org.eclipse.core.runtime.jobs.Job; |
28 | 28 |
import org.eclipse.jface.layout.GridDataFactory; |
29 | 29 |
import org.eclipse.jface.viewers.ArrayContentProvider; |
... | ... | |
119 | 119 |
import ca.odell.glazedlists.EventList; |
120 | 120 |
import ca.odell.glazedlists.SortedList; |
121 | 121 |
import ca.odell.glazedlists.TreeList; |
122 |
import eu.etaxonomy.cdm.api.application.CdmApplicationState; |
|
123 |
import eu.etaxonomy.cdm.api.service.IProgressMonitorService; |
|
122 | 124 |
import eu.etaxonomy.cdm.api.service.IWorkingSetService; |
123 | 125 |
import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO; |
126 |
import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor; |
|
124 | 127 |
import eu.etaxonomy.cdm.model.description.DescriptionElementBase; |
125 | 128 |
import eu.etaxonomy.cdm.model.description.Feature; |
126 | 129 |
import eu.etaxonomy.cdm.model.description.FeatureNode; |
... | ... | |
1004 | 1007 |
|
1005 | 1008 |
|
1006 | 1009 |
public void loadDescriptions(WorkingSet workingSet) { |
1010 |
UUID monitorUuid = CdmStore.getService(IWorkingSetService.class).monitGetRowWrapper(workingSet); |
|
1011 |
|
|
1012 |
final IProgressMonitorService progressMonitorService = CdmApplicationState.getCurrentAppConfig().getProgressMonitorService(); |
|
1013 |
final IRemotingProgressMonitor remotingMonitor = progressMonitorService.getRemotingMonitor(monitorUuid); |
|
1014 |
|
|
1007 | 1015 |
String jobLabel = "Load character data"; |
1008 | 1016 |
Job job = Job.create(jobLabel, (ICoreRunnable) monitor -> { |
1009 |
monitor.beginTask(jobLabel, IProgressMonitor.UNKNOWN); |
|
1010 |
Collection<RowWrapperDTO> wrappers = CdmStore.getService(IWorkingSetService.class).getRowWrapper(workingSet); |
|
1017 |
monitor.beginTask(jobLabel, remotingMonitor.getTotalWork()); |
|
1018 |
while(remotingMonitor.isMonitorThreadRunning()){ |
|
1019 |
if(monitor.isCanceled()){ |
|
1020 |
remotingMonitor.getThread().interrupt(); |
|
1021 |
} |
|
1022 |
} |
|
1023 |
|
|
1024 |
Collection<RowWrapperDTO> wrappers = (Collection<RowWrapperDTO>) remotingMonitor.getResult(); |
|
1011 | 1025 |
wrappers.forEach(wrapper->{ |
1012 | 1026 |
CharacterMatrix.this.descriptions.add(wrapper); |
1013 | 1027 |
}); |
Also available in: Unified diff
ref #7095 Add progress monitor to working set service (unstable)