mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-16 17:21:00 +00:00
When deleting tracked races only show warning if a tracked race is selected but not visible in the table. Adjusted delete button to show number of items to delete. Also changed position of the delete button to far right to avoid shifting other items to the right when the button text is changed. Added method itemIsSelectedButNotVisible to RefreshableSingleSelectionModel.
This commit is contained in:
1 parent
e2fe66c513
commit
99913a16ae
3 files changed
+43
-18
No files matched your search
+26
-17
@@ -111,23 +111,7 @@ public class TrackedRacesListComposite extends AbstractTrackedRacesListComposite
|
||||
@Override
|
||||
protected void addControlButtons(HorizontalPanel trackedRacesButtonPanel) {
|
||||
if(actionButtonsEnabled) {
|
||||
btnRemoveRace = new Button(stringMessages.remove());
|
||||
btnRemoveRace.ensureDebugId("RemoveRaceButton");
|
||||
btnRemoveRace.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
if(askUserForConfirmation()){
|
||||
removeAndUntrackRaces(refreshableSelectionModel.getSelectedSet());
|
||||
}
|
||||
}
|
||||
|
||||
private boolean askUserForConfirmation() {
|
||||
return Window.confirm(stringMessages.doYouReallyWantToRemoveTrackedRaces());
|
||||
}
|
||||
|
||||
});
|
||||
btnRemoveRace.setEnabled(false);
|
||||
trackedRacesButtonPanel.add(btnRemoveRace);
|
||||
|
||||
|
||||
btnUntrack = new Button(stringMessages.stopTracking());
|
||||
btnUntrack.ensureDebugId("StopTrackingButton");
|
||||
@@ -161,6 +145,28 @@ public class TrackedRacesListComposite extends AbstractTrackedRacesListComposite
|
||||
});
|
||||
btnExport.setEnabled(false);
|
||||
trackedRacesButtonPanel.add(btnExport);
|
||||
|
||||
btnRemoveRace = new Button(stringMessages.remove());
|
||||
btnRemoveRace.ensureDebugId("RemoveRaceButton");
|
||||
btnRemoveRace.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
if(askUserForConfirmation()){
|
||||
removeAndUntrackRaces(refreshableSelectionModel.getSelectedSet());
|
||||
}
|
||||
}
|
||||
|
||||
private boolean askUserForConfirmation() {
|
||||
if(refreshableSelectionModel.itemIsSelectedButNotVisible(raceTable.getVisibleItems())){
|
||||
final String trackedRaceNames = refreshableSelectionModel.getSelectedSet().stream().map(e -> e.getRegattaName()+" - "+e.getName()).collect(Collectors.joining("\n"));
|
||||
return Window.confirm(stringMessages.doYouReallyWantToRemoveNonVisibleTrackedRaces(trackedRaceNames));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
});
|
||||
btnRemoveRace.setEnabled(false);
|
||||
trackedRacesButtonPanel.add(btnRemoveRace);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -169,10 +175,13 @@ public class TrackedRacesListComposite extends AbstractTrackedRacesListComposite
|
||||
if (actionButtonsEnabled) {
|
||||
if (selectedRaces.isEmpty()) {
|
||||
btnRemoveRace.setEnabled(false);
|
||||
btnRemoveRace.setText(stringMessages.remove());
|
||||
btnUntrack.setEnabled(false);
|
||||
btnExport.setEnabled(false);
|
||||
} else {
|
||||
btnRemoveRace.setEnabled(true);
|
||||
final int numberOfItemsSelected = refreshableSelectionModel.getSelectedSet().size();
|
||||
btnRemoveRace.setText(numberOfItemsSelected <= 1 ? stringMessages.remove() : stringMessages.removeNumber(numberOfItemsSelected));
|
||||
btnUntrack.setEnabled(true);
|
||||
btnExport.setEnabled(true);
|
||||
}
|
||||
|
||||
+5
-1
@@ -1,5 +1,7 @@
|
||||
package com.sap.sse.gwt.client.celltable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.view.client.HasData;
|
||||
import com.google.gwt.view.client.ListDataProvider;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent.Handler;
|
||||
@@ -37,6 +39,8 @@ public interface RefreshableSelectionModel<T> extends SetSelectionModel<T> {
|
||||
* <code><T></code>.
|
||||
*/
|
||||
EntityIdentityComparator<T> getEntityIdentityComparator();
|
||||
|
||||
|
||||
boolean itemIsSelectedButNotVisible(List<T> visibleItemList);
|
||||
|
||||
void refreshSelectionModel(Iterable<T> newObjects);
|
||||
}
|
||||
+12
@@ -72,6 +72,18 @@ public class RefreshableSingleSelectionModel<T> extends SingleSelectionModel<T>
|
||||
super.setSelected(item, selected);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the currently selected object is also visible.
|
||||
*
|
||||
* @param visibleItemList
|
||||
* can be obtained by calling {@link com.google.gwt.user.cellview.client.CellTable#getVisibleItems()}
|
||||
* method.
|
||||
* @return <code>true</code> if the list of visible items does not contain the selected item.
|
||||
*/
|
||||
public boolean itemIsSelectedButNotVisible(List<T> visibleItemList) {
|
||||
return !visibleItemList.contains(getSelectedObject());
|
||||
}
|
||||
|
||||
/**
|
||||
* Refreshes the {@link RefreshableSingleSelectionModel} with the <code>newObjects</code>. If the current selected
|
||||
|
||||
Reference in new issue
Block a user