mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-26 15:36:40 +00:00
bug4104: TagListProvider is now used
This commit is contained in:
+12
-12
@@ -1,11 +1,9 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.google.gwt.view.client.ListDataProvider;
|
||||
import com.sap.sailing.gwt.ui.shared.TagDTO;
|
||||
import com.sap.sse.common.Util;
|
||||
@@ -14,23 +12,21 @@ import com.sap.sse.common.filter.FilterSet;
|
||||
|
||||
public class TagListProvider extends ListDataProvider<TagDTO> implements TagProvider{
|
||||
|
||||
private final List<TagDTO> allTags;
|
||||
|
||||
private FilterSet<TagDTO, Filter<TagDTO>> tagsFilterSet;
|
||||
|
||||
|
||||
public TagListProvider(List<TagDTO> allTags, FilterSet<TagDTO, Filter<TagDTO>> tagsFilterSet) {
|
||||
this.allTags = allTags;
|
||||
public TagListProvider(FilterSet<TagDTO, Filter<TagDTO>> tagsFilterSet) {
|
||||
this.tagsFilterSet = tagsFilterSet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<TagDTO> getAllTags() {
|
||||
return allTags;
|
||||
public List<TagDTO> getAllTags() {
|
||||
return getList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<TagDTO> getFilteredTags() {
|
||||
Set<TagDTO> currentFilteredList = new LinkedHashSet<>(allTags);
|
||||
public List<TagDTO> getFilteredTags() {
|
||||
List<TagDTO> currentFilteredList = new ArrayList<TagDTO>(getAllTags());
|
||||
|
||||
if (tagsFilterSet != null) {
|
||||
for (Filter<TagDTO> filter : tagsFilterSet.getFilters()) {
|
||||
@@ -65,7 +61,7 @@ public class TagListProvider extends ListDataProvider<TagDTO> implements TagProv
|
||||
@Override
|
||||
public boolean hasActiveFilters() {
|
||||
return (tagsFilterSet != null && !tagsFilterSet.getFilters().isEmpty()
|
||||
&& Util.size(getFilteredTags()) != allTags.size());
|
||||
&& Util.size(getFilteredTags()) != getAllTags().size());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -78,4 +74,8 @@ public class TagListProvider extends ListDataProvider<TagDTO> implements TagProv
|
||||
public int getFilteredTagsListSize() {
|
||||
return Util.size(getFilteredTags());
|
||||
}
|
||||
|
||||
public void addTag(TagDTO tag) {
|
||||
getAllTags().add(tag);
|
||||
}
|
||||
}
|
||||
+6
-5
@@ -1,5 +1,7 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.gwt.ui.shared.TagDTO;
|
||||
import com.sap.sse.common.filter.Filter;
|
||||
import com.sap.sse.common.filter.FilterSet;
|
||||
@@ -7,15 +9,14 @@ import com.sap.sse.common.filter.FilterSet;
|
||||
public interface TagProvider {
|
||||
|
||||
/**
|
||||
* @return a non-<code>null</code> sequence of all Tags which may be empty.
|
||||
* @return all tags.
|
||||
*/
|
||||
Iterable<TagDTO> getAllTags();
|
||||
List<TagDTO> getAllTags();
|
||||
|
||||
/**
|
||||
* @return a non-<code>null</code> sequence of all Tags filtered by the applied
|
||||
* {@link #getTagsFilterSet() filter set} (which may be null).
|
||||
* @return all tags which match current filtering criteria
|
||||
*/
|
||||
Iterable<TagDTO> getFilteredTags();
|
||||
List<TagDTO> getFilteredTags();
|
||||
|
||||
|
||||
public FilterSet<TagDTO, Filter<TagDTO>> getTagsFilterSet();
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ public class SelectedTagsFilter implements FilterWithUI<TagDTO>, TagSelectionPro
|
||||
@Override
|
||||
public boolean matches(TagDTO tag) {
|
||||
boolean result = false;
|
||||
if(tagsSelectionProvider != null && tagsSelectionProvider.isSelected(tag)) {
|
||||
if(tagsSelectionProvider != null) {// && tagsSelectionProvider.isSelected(tag)) {
|
||||
result = true;
|
||||
}
|
||||
return result;
|
||||
|
||||
+1
-12
@@ -12,28 +12,18 @@ import com.google.gwt.user.client.ui.Button;
|
||||
import com.google.gwt.user.client.ui.FlowPanel;
|
||||
import com.google.gwt.user.client.ui.TextBox;
|
||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||
import com.sap.sailing.domain.common.dto.CompetitorDTO;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.TagListProvider;
|
||||
import com.sap.sailing.gwt.ui.client.TagProvider;
|
||||
import com.sap.sailing.gwt.ui.client.shared.filter.CompetitorRaceRankFilter;
|
||||
import com.sap.sailing.gwt.ui.client.shared.filter.CompetitorSelectionProviderFilterContext;
|
||||
import com.sap.sailing.gwt.ui.client.shared.filter.CompetitorTotalRankFilter;
|
||||
import com.sap.sailing.gwt.ui.client.shared.filter.CompetitorsFilterSets;
|
||||
import com.sap.sailing.gwt.ui.client.shared.filter.CompetitorsFilterSetsJsonDeSerializer;
|
||||
import com.sap.sailing.gwt.ui.client.shared.filter.FilterUIFactory;
|
||||
import com.sap.sailing.gwt.ui.client.shared.filter.FilterWithUI;
|
||||
import com.sap.sailing.gwt.ui.client.shared.filter.LeaderboardFilterContext;
|
||||
import com.sap.sailing.gwt.ui.client.shared.filter.SelectedTagsFilter;
|
||||
import com.sap.sailing.gwt.ui.client.shared.filter.TagSelectionProviderFilterContext;
|
||||
import com.sap.sailing.gwt.ui.client.shared.filter.SelectedRaceFilterContext;
|
||||
import com.sap.sailing.gwt.ui.client.shared.filter.TagsFilterSets;
|
||||
import com.sap.sailing.gwt.ui.client.shared.filter.TagsFilterSetsDialog;
|
||||
import com.sap.sailing.gwt.ui.client.shared.filter.TagsFilterSetsJsonDeSerializer;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.CompetitorFilterResources;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.CompetitorFilterResources.CompetitorFilterCss;
|
||||
import com.sap.sailing.gwt.ui.shared.TagDTO;
|
||||
import com.sap.sse.common.filter.BinaryOperator;
|
||||
import com.sap.sse.common.filter.Filter;
|
||||
import com.sap.sse.common.filter.FilterSet;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
|
||||
@@ -60,11 +50,10 @@ public class TagFilterPanel extends FlowPanel implements KeyUpHandler, FilterWit
|
||||
|
||||
private FilterSet<TagDTO, FilterWithUI<TagDTO>> lastActiveTagFilterSet;
|
||||
|
||||
public TagFilterPanel(RaceIdentifier selectedRaceIdentifier, StringMessages stringMessages, TagsFilterSets tagsFilterSets, TagListProvider tagProvider) {
|
||||
public TagFilterPanel(RaceIdentifier selectedRaceIdentifier, StringMessages stringMessages, TagListProvider tagProvider) {
|
||||
css.ensureInjected();
|
||||
this.selectedRaceIdentifier = selectedRaceIdentifier;
|
||||
this.stringMessages = stringMessages;
|
||||
this.tagsFilterSets = tagsFilterSets;
|
||||
this.tagProvider = tagProvider;
|
||||
this.setStyleName(css.competitorFilterContainer());
|
||||
|
||||
|
||||
+10
-13
@@ -152,8 +152,6 @@ public class TaggingPanel extends ComponentWithoutSettings implements TimeListen
|
||||
private final Panel buttonsPanel;
|
||||
|
||||
private final List<Button> buttons;
|
||||
private final List<TagDTO> tags;
|
||||
private final ListDataProvider<TagDTO> tagProvider;
|
||||
private final TagListProvider tagListProvider;
|
||||
private final TagsFilterSets tagsFilterSet;
|
||||
|
||||
@@ -174,13 +172,11 @@ public class TaggingPanel extends ComponentWithoutSettings implements TimeListen
|
||||
TagPanelResources.INSTANCE.style().ensureInjected();
|
||||
CellListResources.INSTANCE.cellListStyle().ensureInjected();
|
||||
|
||||
tags = new ArrayList<TagDTO>();
|
||||
tagProvider = new ListDataProvider<TagDTO>();
|
||||
tagsFilterSet = new TagsFilterSets();
|
||||
tagListProvider = new TagListProvider(tags, tagsFilterSet.getActiveFilterSetWithGeneralizedType());
|
||||
tagListProvider = new TagListProvider(tagsFilterSet.getActiveFilterSetWithGeneralizedType());
|
||||
|
||||
panel = new HeaderPanel();
|
||||
filterbarPanel = new TagFilterPanel(null, stringMessages, tagsFilterSet, tagListProvider);
|
||||
filterbarPanel = new TagFilterPanel(null, stringMessages, tagListProvider);
|
||||
tagCellList = new CellList<TagDTO>(new TagCell(), CellListResources.INSTANCE);
|
||||
tagSelectionModel = new SingleSelectionModel<TagDTO>();
|
||||
|
||||
@@ -223,8 +219,8 @@ public class TaggingPanel extends ComponentWithoutSettings implements TimeListen
|
||||
panel.setFooterWidget(buttonsPanel);
|
||||
|
||||
// Content (tags)
|
||||
tagProvider.addDataDisplay(tagCellList);
|
||||
tagProvider.setList(tags);
|
||||
tagListProvider.addDataDisplay(tagCellList);
|
||||
tagListProvider.setList(new ArrayList<TagDTO>());
|
||||
|
||||
tagCellList.setSelectionModel(tagSelectionModel);
|
||||
tagSelectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
|
||||
@@ -283,7 +279,7 @@ public class TaggingPanel extends ComponentWithoutSettings implements TimeListen
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
Notification.notify("Added new tag successfully", NotificationType.INFO);
|
||||
tags.add(tag);
|
||||
tagListProvider.addTag(tag);
|
||||
updateContent();
|
||||
}
|
||||
});
|
||||
@@ -300,8 +296,8 @@ public class TaggingPanel extends ComponentWithoutSettings implements TimeListen
|
||||
}
|
||||
|
||||
private void updateContent() {
|
||||
tagCellList.setVisibleRange(0, tags.size());
|
||||
tags.sort(new Comparator<TagDTO>() {
|
||||
tagCellList.setVisibleRange(0, tagListProvider.getFilteredTagsListSize());
|
||||
tagListProvider.getAllTags().sort(new Comparator<TagDTO>() {
|
||||
@Override
|
||||
public int compare(TagDTO tag1, TagDTO tag2) {
|
||||
long time1 = tag1.getRaceTimepoint().asMillis();
|
||||
@@ -309,7 +305,7 @@ public class TaggingPanel extends ComponentWithoutSettings implements TimeListen
|
||||
return time1 < time2 ? -1 : time1 == time2 ? 0 : 1;
|
||||
}
|
||||
});
|
||||
tagProvider.refresh();
|
||||
tagListProvider.refresh();
|
||||
}
|
||||
|
||||
private void updateButtons() {
|
||||
@@ -336,8 +332,9 @@ public class TaggingPanel extends ComponentWithoutSettings implements TimeListen
|
||||
@Override
|
||||
public void onSuccess(List<TagDTO> result) {
|
||||
if (result != null) {
|
||||
List<TagDTO> tags = tagListProvider.getAllTags();
|
||||
for (TagDTO tag : result) {
|
||||
if (!tags.contains(tag)) {
|
||||
if (!tagListProvider.getAllTags().contains(tag)) {
|
||||
tags.add(tag);
|
||||
lastReceivedTag = tag.getRaceTimepoint();
|
||||
updateContent();
|
||||
|
||||
Reference in New Issue
Block a user