newSelectionModel: removed constructors form SelectionCheckboxColumn.java

This commit is contained in:
Lukas Furmanek committed 2015-12-02 15:44:36 +01:00
1 parent e5b4858ff8
commit aebcd513c7
7 files changed
+57 -88

No files matched your search

@@ -47,6 +47,7 @@ import com.sap.sse.common.Util;
import com.sap.sse.common.Util.Pair;
import com.sap.sse.common.util.NaturalComparator;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.celltable.EntityIdentityComparator;
import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel;
@@ -90,10 +91,8 @@ public class EventListComposite extends Composite implements EventsRefresher, Le
private final AdminConsoleTableResources tableRes = GWT.create(AdminConsoleTableResources.class);
public EventListComposite(final SailingServiceAsync sailingService, final RefreshableMultiSelectionModel<EventDTO> refreshableEventSelectionModel,
final ErrorReporter errorReporter, final StringMessages stringMessages) {
public EventListComposite(final SailingServiceAsync sailingService, final ErrorReporter errorReporter, final StringMessages stringMessages) {
this.sailingService = sailingService;
this.refreshableEventSelectionModel = refreshableEventSelectionModel;
this.stringMessages = stringMessages;
this.errorReporter = errorReporter;
availableLeaderboardGroups = Collections.emptyList();
@@ -184,9 +183,15 @@ public class EventListComposite extends Composite implements EventsRefresher, Le
eventListDataProvider.addDataDisplay(table);
table.setWidth("100%");
SelectionCheckboxColumn<EventDTO> eventSelectionCheckboxColumn = new SelectionCheckboxColumn<EventDTO>(refreshableEventSelectionModel, tableRes.cellTableStyle().cellTableCheckboxSelected(),
SelectionCheckboxColumn<EventDTO> eventSelectionCheckboxColumn = new SelectionCheckboxColumn<EventDTO>(
tableRes.cellTableStyle().cellTableCheckboxSelected(),
tableRes.cellTableStyle().cellTableCheckboxDeselected(),
tableRes.cellTableStyle().cellTableCheckboxColumnCell()) {
tableRes.cellTableStyle().cellTableCheckboxColumnCell(), new EntityIdentityComparator<EventDTO>() {
@Override
public boolean representSameEntity(EventDTO dto1, EventDTO dto2) {
return dto1.id.equals(dto2.id);
}
}) {
@Override
protected ListDataProvider<EventDTO> getListDataProvider() {
return eventListDataProvider;
@@ -599,4 +604,8 @@ public class EventListComposite extends Composite implements EventsRefresher, Le
public List<EventDTO> getAllEvents() {
return allEvents;
}
public RefreshableMultiSelectionModel<EventDTO> getRefreshableMultiSelectionModel() {
return refreshableEventSelectionModel;
}
}
@@ -13,7 +13,6 @@ import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.EventDTO;
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.celltable.EntityIdentityComparator;
import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel;
/**
@@ -39,16 +38,17 @@ public class EventManagementPanel extends SimplePanel implements EventsRefresher
VerticalPanel eventsContentPanel = new VerticalPanel();
eventsPanel.setContentWidget(eventsContentPanel);
refreshableEventSelectionModel = new RefreshableMultiSelectionModel<>(new EntityIdentityComparator<EventDTO>() {
@Override
public boolean representSameEntity(EventDTO dto1, EventDTO dto2) {
return dto1.id.equals(dto2.id);
}
});
eventListComposite = new EventListComposite(sailingService, errorReporter, stringMessages);
eventListComposite.ensureDebugId("EventListComposite");
eventsContentPanel.add(eventListComposite);
eventDetailsComposite = new EventDetailsComposite(sailingService, errorReporter, stringMessages);
eventDetailsComposite.ensureDebugId("EventDetailsComposite");
eventDetailsComposite.setVisible(false);
mainPanel.add(eventDetailsComposite);
refreshableEventSelectionModel = eventListComposite.getRefreshableMultiSelectionModel();
refreshableEventSelectionModel.addSelectionChangeHandler(new Handler() {
@Override
public void onSelectionChange(SelectionChangeEvent event) {
final Set<EventDTO> selectedEvents = refreshableEventSelectionModel.getSelectedSet();
@@ -67,15 +67,6 @@ public class EventManagementPanel extends SimplePanel implements EventsRefresher
}
}
});
eventListComposite = new EventListComposite(sailingService, refreshableEventSelectionModel, errorReporter, stringMessages);
eventListComposite.ensureDebugId("EventListComposite");
eventsContentPanel.add(eventListComposite);
eventDetailsComposite = new EventDetailsComposite(sailingService, errorReporter, stringMessages);
eventDetailsComposite.ensureDebugId("EventDetailsComposite");
eventDetailsComposite.setVisible(false);
mainPanel.add(eventDetailsComposite);
}
@Override
@@ -40,6 +40,7 @@ import com.sap.sse.common.Util;
import com.sap.sse.common.util.NaturalComparator;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
import com.sap.sse.gwt.client.celltable.EntityIdentityComparator;
import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel;
@@ -75,11 +76,10 @@ public class RegattaListComposite extends Composite implements RegattasDisplayer
}
}
public RegattaListComposite(final SailingServiceAsync sailingService,
final RefreshableMultiSelectionModel<RegattaDTO> refreshableRegattaMultiSelectionModel, RegattaRefresher regattaRefresher,
@SuppressWarnings("unchecked")
public RegattaListComposite(final SailingServiceAsync sailingService, RegattaRefresher regattaRefresher,
final ErrorReporter errorReporter, final StringMessages stringMessages) {
this.sailingService = sailingService;
this.refreshableRegattaMultiSelectionModel = refreshableRegattaMultiSelectionModel;
this.regattaRefresher = regattaRefresher;
this.errorReporter = errorReporter;
this.stringMessages = stringMessages;
@@ -96,8 +96,9 @@ public class RegattaListComposite extends Composite implements RegattasDisplayer
panel.add(noRegattasLabel);
regattaListDataProvider = new ListDataProvider<RegattaDTO>();
regattaTable = createRegattaTable(this.refreshableRegattaMultiSelectionModel);
regattaTable = createRegattaTable();
regattaTable.ensureDebugId("RegattasCellTable");
refreshableRegattaMultiSelectionModel = (RefreshableMultiSelectionModel<RegattaDTO>) regattaTable.getSelectionModel();
regattaTable.setVisible(false);
filterablePanelRegattas = new LabeledAbstractFilterablePanel<RegattaDTO>(filterRegattasLabel, allRegattas,
@@ -123,14 +124,20 @@ public class RegattaListComposite extends Composite implements RegattasDisplayer
return refreshableRegattaMultiSelectionModel.addSelectionChangeHandler(handler);
}
protected CellTable<RegattaDTO> createRegattaTable(RefreshableMultiSelectionModel<RegattaDTO> selectionmodel) {
protected CellTable<RegattaDTO> createRegattaTable() {
CellTable<RegattaDTO> table = new CellTable<RegattaDTO>(/* pageSize */10000, tableRes);
regattaListDataProvider.addDataDisplay(table);
table.setWidth("100%");
SelectionCheckboxColumn<RegattaDTO> regattaSelectionCheckboxColumn = new SelectionCheckboxColumn<RegattaDTO>(selectionmodel, tableRes.cellTableStyle().cellTableCheckboxSelected(),
SelectionCheckboxColumn<RegattaDTO> regattaSelectionCheckboxColumn = new SelectionCheckboxColumn<RegattaDTO>(
tableRes.cellTableStyle().cellTableCheckboxSelected(),
tableRes.cellTableStyle().cellTableCheckboxDeselected(),
tableRes.cellTableStyle().cellTableCheckboxColumnCell()) {
tableRes.cellTableStyle().cellTableCheckboxColumnCell(), new EntityIdentityComparator<RegattaDTO>() {
@Override
public boolean representSameEntity(RegattaDTO dto1, RegattaDTO dto2) {
return dto1.getRegattaIdentifier().equals(dto2.getRegattaIdentifier());
}
}) {
@Override
protected ListDataProvider<RegattaDTO> getListDataProvider() {
return regattaListDataProvider;
@@ -233,7 +240,6 @@ public class RegattaListComposite extends Composite implements RegattasDisplayer
table.addColumn(rankingMetricColumn, stringMessages.rankingMetric());
table.addColumn(regattaActionColumn, stringMessages.actions());
table.setSelectionModel(regattaSelectionCheckboxColumn.getSelectionModel(), regattaSelectionCheckboxColumn.getSelectionManager());
return table;
}
@@ -353,4 +359,7 @@ public class RegattaListComposite extends Composite implements RegattasDisplayer
return allRegattas;
}
public RefreshableMultiSelectionModel<RegattaDTO> getRefreshableMultiSelectionModel() {
return refreshableRegattaMultiSelectionModel;
}
}
@@ -30,7 +30,6 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO;
import com.sap.sailing.gwt.ui.shared.SeriesDTO;
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.celltable.EntityIdentityComparator;
import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
@@ -103,15 +102,10 @@ public class RegattaManagementPanel extends SimplePanel implements RegattasDispl
});
regattaManagementControlsPanel.add(removeRegattaButton);
regattasContentPanel.add(regattaManagementControlsPanel);
refreshableRegattaMultiSelectionModel = new RefreshableMultiSelectionModel<>(new EntityIdentityComparator<RegattaDTO>() {
@Override
public boolean representSameEntity(RegattaDTO dto1, RegattaDTO dto2) {
return dto1.getRegattaIdentifier().equals(dto2.getRegattaIdentifier());
}
});
regattaListComposite = new RegattaListComposite(sailingService, regattaRefresher, errorReporter, stringMessages);
regattaListComposite.ensureDebugId("RegattaListComposite");
refreshableRegattaMultiSelectionModel = regattaListComposite.getRefreshableMultiSelectionModel();
refreshableRegattaMultiSelectionModel.addSelectionChangeHandler(new Handler() {
@Override
public void onSelectionChange(SelectionChangeEvent event) {
List<RegattaDTO> selectedRegattas = new ArrayList<>(refreshableRegattaMultiSelectionModel.getSelectedSet());
@@ -134,9 +128,6 @@ public class RegattaManagementPanel extends SimplePanel implements RegattasDispl
removeRegattaButton.setEnabled(!selectedRegattas.isEmpty());
}
});
regattaListComposite = new RegattaListComposite(sailingService, refreshableRegattaMultiSelectionModel, regattaRefresher, errorReporter, stringMessages);
regattaListComposite.ensureDebugId("RegattaListComposite");
regattasContentPanel.add(regattaListComposite);
regattaDetailsComposite = new RegattaDetailsComposite(sailingService, regattaRefresher, errorReporter, stringMessages);
@@ -14,7 +14,7 @@ import com.sap.sailing.gwt.ui.client.shared.controls.SelectionCheckboxColumn;
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
import com.sap.sse.common.util.NaturalComparator;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel;
import com.sap.sse.gwt.client.celltable.EntityIdentityComparator;
public class StructureImportListComposite extends RegattaListComposite implements RegattasDisplayer {
@@ -25,25 +25,29 @@ public class StructureImportListComposite extends RegattaListComposite implement
RegattaStructure getRegattaStructure(RegattaDTO regatta);
}
public StructureImportListComposite(final SailingServiceAsync sailingService,
final RefreshableMultiSelectionModel<RegattaDTO> refreshableRegattaSelectionModel, RegattaRefresher regattaRefresher,
public StructureImportListComposite(final SailingServiceAsync sailingService, RegattaRefresher regattaRefresher,
RegattaStructureProvider regattaStructureProvider, final ErrorReporter errorReporter,
final StringMessages stringMessages) {
super(sailingService, refreshableRegattaSelectionModel, regattaRefresher, errorReporter, stringMessages);
super(sailingService, regattaRefresher, errorReporter, stringMessages);
this.regattaStructureProvider = regattaStructureProvider;
}
// create Regatta Table in StructureImportManagementPanel
@Override
protected CellTable<RegattaDTO> createRegattaTable(RefreshableMultiSelectionModel<RegattaDTO> refreshableRegattaSelectionModel) {
protected CellTable<RegattaDTO> createRegattaTable() {
CellTable<RegattaDTO> table = new CellTable<RegattaDTO>(/* pageSize */10000, tableRes);
regattaListDataProvider.addDataDisplay(table);
table.setWidth("100%");
this.selectionCheckboxColumn = new SelectionCheckboxColumn<RegattaDTO>(refreshableRegattaSelectionModel,
this.selectionCheckboxColumn = new SelectionCheckboxColumn<RegattaDTO>(
tableRes.cellTableStyle().cellTableCheckboxSelected(),
tableRes.cellTableStyle().cellTableCheckboxDeselected(),
tableRes.cellTableStyle().cellTableCheckboxColumnCell()) {
tableRes.cellTableStyle().cellTableCheckboxColumnCell(), new EntityIdentityComparator<RegattaDTO>() {
@Override
public boolean representSameEntity(RegattaDTO dto1, RegattaDTO dto2) {
return dto1.getRegattaIdentifier().equals(dto2.getRegattaIdentifier());
}
}) {
@Override
protected ListDataProvider<RegattaDTO> getListDataProvider() {
return regattaListDataProvider;
@@ -45,8 +45,6 @@ import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
import com.sap.sailing.gwt.ui.shared.SeriesDTO;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.celltable.EntityIdentityComparator;
import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel;
import com.sap.sse.gwt.client.controls.busyindicator.BusyIndicator;
import com.sap.sse.gwt.client.controls.busyindicator.SimpleBusyIndicator;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
@@ -104,14 +102,8 @@ public class StructureImportManagementPanel extends SimplePanel implements Regat
this.errorReporter = errorReporter;
this.stringMessages = stringMessages;
this.regattaRefresher = regattaRefresher;
this.regattaListComposite = new StructureImportListComposite(this.sailingService,
new RefreshableMultiSelectionModel<RegattaDTO>(new EntityIdentityComparator<RegattaDTO>() {
@Override
public boolean representSameEntity(RegattaDTO dto1, RegattaDTO dto2) {
return dto1.getRegattaIdentifier().equals(dto2.getRegattaIdentifier());
}
}), this.regattaRefresher, this, this.errorReporter, this.stringMessages);
this.regattaListComposite = new StructureImportListComposite(this.sailingService, this.regattaRefresher, this,
this.errorReporter, this.stringMessages);
regattaListComposite.ensureDebugId("RegattaListComposite");
VerticalPanel mainPanel = new VerticalPanel();
@@ -1,7 +1,6 @@
package com.sap.sailing.gwt.ui.client.shared.controls;
import java.util.List;
import com.google.gwt.cell.client.Cell.Context;
import com.google.gwt.dom.client.BrowserEvents;
import com.google.gwt.dom.client.NativeEvent;
@@ -21,7 +20,6 @@ import com.sap.sailing.domain.common.dto.LeaderboardRowDTO;
import com.sap.sailing.domain.common.impl.InvertibleComparatorAdapter;
import com.sap.sse.gwt.client.celltable.EntityIdentityComparator;
import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel;
import com.sap.sse.gwt.client.celltable.RefreshableSelectionModel;
/**
* A column to be used in a {@link CellTable} that controls and reflects a table's selection model using stylable
@@ -50,23 +48,7 @@ public abstract class SelectionCheckboxColumn<T> extends AbstractSortableColumnW
private final String checkboxColumnCellCSSClass;
private final EventTranslator<T> selectionEventTranslator;
private final RefreshableMultiSelectionModel<T> selectionModel;
/**
* @param selectionModel
* {@link RefreshableSelectionModel} to set an already existing selectionmodel for the
* {@link SelectionCheckboxColumn}
* @param selectedCheckboxCSSClass
* CSS class for the <code>&lt;div&gt;</code> element representing a selected element
* @param deselectedCheckboxCSSClass
* CSS class for the <code>&lt;div&gt;</code> element representing a deselected element
* @param checkboxColumnCellCSSClass
* CSS class for the <code>&lt;td&gt;</code> element rendering the cell
*/
// TODO Lukas: test whether using an arbitrary selection model here that does not trigger the redrawRow method displays the checkbox correctly when the selection is changed programmatically; is this required at all, or could the client grab the selection model from this column instead?
protected SelectionCheckboxColumn(RefreshableMultiSelectionModel<T> selectionModel, String selectedCheckboxCSSClass,
String deselectedCheckboxCSSClass, String checkboxColumnCellCSSClass) {
this(selectionModel, new BetterCheckboxCell(selectedCheckboxCSSClass, deselectedCheckboxCSSClass), checkboxColumnCellCSSClass);
}
/**
* @param selectedCheckboxCSSClass
* CSS class for the <code>&lt;div&gt;</code> element representing a selected element
@@ -82,15 +64,6 @@ public abstract class SelectionCheckboxColumn<T> extends AbstractSortableColumnW
this(new BetterCheckboxCell(selectedCheckboxCSSClass, deselectedCheckboxCSSClass), checkboxColumnCellCSSClass,
entityIdentityComparator);
}
// TODO Lukas: test whether using an arbitrary selection model here that does not trigger the redrawRow method displays the checkbox correctly when the selection is changed programmatically; is this required at all, or could the client grab the selection model from this column instead?
private SelectionCheckboxColumn(RefreshableMultiSelectionModel<T> selectionModel, BetterCheckboxCell checkboxCell, String checkboxColumnCellCSSClass) {
super(checkboxCell, SortingOrder.DESCENDING);
this.cell = checkboxCell;
this.checkboxColumnCellCSSClass = checkboxColumnCellCSSClass;
this.selectionEventTranslator = createSelectionEventTranslator();
this.selectionModel = selectionModel;
}
private SelectionCheckboxColumn(BetterCheckboxCell checkboxCell, String checkboxColumnCellCSSClass, EntityIdentityComparator<T> entityIdentityComparator) {
super(checkboxCell, SortingOrder.DESCENDING);