Project

General

Profile

« Previous | Next » 

Revision 7710d1ab

Added by Patrick Plitzner about 6 years ago

ref #7095 Add progress monitor to working set service (unstable)

View differences:

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