Skip to content

Commit

Permalink
#67 Update Modified label to better fit with actual check state
Browse files Browse the repository at this point in the history
  • Loading branch information
arnauddieumegard authored and minhtutonthat committed Jun 9, 2022
1 parent 3392868 commit 52bb855
Showing 1 changed file with 20 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.transaction.RecordingCommand;
Expand Down Expand Up @@ -419,6 +420,7 @@ public void checkStateChanged(CheckStateChangedEvent event) {
// flush the cache for current project
if (checkedList.isEmpty()) {
FilteringToolsPlugin.getGlobalFilteringCache().remove(project);
updateModifiedResultsLabel(FilteringFactory.eINSTANCE.createFilteringResult());
return;
}

Expand All @@ -437,6 +439,7 @@ public void checkStateChanged(CheckStateChangedEvent event) {
// flush the cache for current project
if (filCriterionToCache.isEmpty()) {
FilteringToolsPlugin.getGlobalFilteringCache().remove(project);
updateModifiedResultsLabel(FilteringFactory.eINSTANCE.createFilteringResult());
return;
}

Expand All @@ -446,7 +449,7 @@ public void checkStateChanged(CheckStateChangedEvent event) {

globalFilteringCache.setCurrentFilteringResult(project, filtResult);

tagModifiedResultLabel();
updateModifiedResultsLabel(filtResult);
}

if (firstElt instanceof ComposedFilteringResult) {
Expand All @@ -458,6 +461,22 @@ public void checkStateChanged(CheckStateChangedEvent event) {
}
}

private void updateModifiedResultsLabel(FilteringResult filtResult) {
int realIndex = filteringResultCombo.getSelectionIndex() - 1;
if (realIndex < 0) {
resetModifiedResultLabel();
return;
}
AbstractFilteringResult filteringResult = filteringResults.get(realIndex);
EList<FilteringCriterion> selectedFilteringResultCriteria = filteringResult.computeFilteringCriterionSet().getFilteringCriteria();
EList<FilteringCriterion> checkedFilteringCriteria = filtResult.getFilteringCriteria();
if (selectedFilteringResultCriteria.containsAll(checkedFilteringCriteria) && checkedFilteringCriteria.containsAll(selectedFilteringResultCriteria)) {
resetModifiedResultLabel();
} else {
tagModifiedResultLabel();
}
}

private List<Object> filterNonFilteringElements(List<Object> checkedList) {
return checkedList.stream().filter(obj -> FilteringUtils.isInstanceOfFilteringExcludedElements(obj))
.collect(Collectors.toList());
Expand Down

0 comments on commit 52bb855

Please sign in to comment.