applied selection checkbox also for other competitor tables

This commit is contained in:
Axel Uhl committed 2015-03-03 15:24:25 +01:00
1 parent 791f985d13
commit d70c11c0dd
6 files changed
+55 -13

No files matched your search

@@ -61,8 +61,10 @@ public class CompetitorPanel extends SimplePanel {
this.stringMessages = stringMessages;
this.errorReporter = errorReporter;
this.leaderboardName = leaderboardName;
this.competitorTable = new CompetitorTableWrapper<>(sailingService, stringMessages, errorReporter,
new MultiSelectionModel<CompetitorDTO>(), false);
final Class<?> selectionModelType = MultiSelectionModel.class;
@SuppressWarnings("unchecked")
final Class<MultiSelectionModel<CompetitorDTO>> multiSelectionType = (Class<MultiSelectionModel<CompetitorDTO>>) selectionModelType;
this.competitorTable = new CompetitorTableWrapper<>(sailingService, stringMessages, errorReporter, multiSelectionType, false);
this.competitorSelectionModel = competitorTable.getSelectionModel();
VerticalPanel mainPanel = new VerticalPanel();
this.setWidget(mainPanel);
@@ -6,6 +6,7 @@ import java.util.List;
import com.google.gwt.cell.client.SafeHtmlCell;
import com.google.gwt.core.client.Callback;
import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
@@ -15,23 +16,32 @@ import com.google.gwt.user.cellview.client.TextColumn;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.ImageResourceRenderer;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.view.client.ListDataProvider;
import com.google.gwt.view.client.SelectionModel;
import com.google.gwt.view.client.SingleSelectionModel;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.domain.common.impl.NaturalComparator;
import com.sap.sailing.gwt.ui.adminconsole.AdminConsoleTableResources.AdminConsoleTableStyle;
import com.sap.sailing.gwt.ui.adminconsole.ColorColumn.ColorRetriever;
import com.sap.sailing.gwt.ui.client.FlagImageResolver;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.SelectionCheckboxColumn;
import com.sap.sse.common.Color;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel;
public class CompetitorTableWrapper<S extends SelectionModel<CompetitorDTO>> extends TableWrapper<CompetitorDTO, S> {
private static final AdminConsoleTableResources tableResources = GWT.create(AdminConsoleTableResources.class);
private static final AdminConsoleTableStyle tableSTyle = tableResources.cellTableStyle();
private final LabeledAbstractFilterablePanel<CompetitorDTO> filterField;
private final S selectionModel;
public CompetitorTableWrapper(SailingServiceAsync sailingService, StringMessages stringMessages,ErrorReporter errorReporter,
S selectionModel, boolean enablePager) {
super(sailingService, stringMessages, errorReporter, selectionModel, enablePager);
Class<S> selectionModelType, boolean enablePager) {
super(sailingService, stringMessages, errorReporter, /* selectionModel will be set later below */ null, enablePager);
ListHandler<CompetitorDTO> competitorColumnListHandler = new ListHandler<CompetitorDTO>(dataProvider.getList());
@@ -131,6 +141,26 @@ public class CompetitorTableWrapper<S extends SelectionModel<CompetitorDTO>> ext
};
mainPanel.insert(filterField, 0);
if (selectionModelType.getName().contains("Multi")) {
// add a selection checkbox column
SelectionCheckboxColumn<CompetitorDTO> selectionCheckboxColumn = new SelectionCheckboxColumn<CompetitorDTO>(
tableSTyle.cellTableCheckboxSelected(), tableSTyle.cellTableCheckboxDeselected(), tableSTyle.cellTableCheckboxColumnCell()) {
@Override
protected ListDataProvider<CompetitorDTO> getListDataProvider() {
return dataProvider;
}
};
@SuppressWarnings("unchecked")
S mySelectionModel = (S) selectionCheckboxColumn.getSelectionModel();
selectionModel = mySelectionModel;
table.setSelectionModel(selectionModel, selectionCheckboxColumn.getSelectionManager());
table.addColumn(selectionCheckboxColumn, selectionCheckboxColumn.getHeader());
} else {
@SuppressWarnings("unchecked")
S mySelectionModel = (S) new SingleSelectionModel<CompetitorDTO>();
selectionModel = mySelectionModel;
table.setSelectionModel(selectionModel);
}
table.addColumnSortHandler(competitorColumnListHandler);
table.addColumn(sailIdColumn, stringMessages.sailNumber());
table.addColumn(competitorNameColumn, stringMessages.name());
@@ -139,6 +169,11 @@ public class CompetitorTableWrapper<S extends SelectionModel<CompetitorDTO>> ext
table.addColumn(competitorIdColumn, stringMessages.id());
}
@Override
public S getSelectionModel() {
return selectionModel;
}
public Iterable<CompetitorDTO> getAllCompetitors() {
return filterField.getAll();
}
@@ -60,8 +60,10 @@ public class ImportFixesAndAddMappingsDialog extends DataEntryDialog<Collection<
}
});
competitorTable = new CompetitorTableWrapper<>(sailingService, stringMessages, errorReporter,
new SingleSelectionModel<CompetitorDTO>(), true);
final Class<?> selectionModelType = SingleSelectionModel.class;
@SuppressWarnings("unchecked")
final Class<SingleSelectionModel<CompetitorDTO>> singleSelectionType = (Class<SingleSelectionModel<CompetitorDTO>>) selectionModelType;
competitorTable = new CompetitorTableWrapper<>(sailingService, stringMessages, errorReporter, singleSelectionType, true);
markTable = new MarkTableWrapper<SingleSelectionModel<MarkDTO>>(
new SingleSelectionModel<MarkDTO>(), sailingService, stringMessages, errorReporter);
@@ -35,9 +35,11 @@ public class ItemToMapToDeviceSelectionPanel implements IsWidget {
this.selected = selected;
this.errorReporter = errorReporter;
final Class<?> selectionModelType = SingleSelectionModel.class;
@SuppressWarnings("unchecked")
final Class<SingleSelectionModel<CompetitorDTO>> singleSelectionType = (Class<SingleSelectionModel<CompetitorDTO>>) selectionModelType;
competitorTable = new CompetitorTableWrapper<>(sailingService, stringMessages, errorReporter, singleSelectionType, true);
final SingleSelectionModel<MarkDTO> markSelectionModel = new SingleSelectionModel<MarkDTO>();
competitorTable = new CompetitorTableWrapper<>(sailingService, stringMessages, errorReporter,
new SingleSelectionModel<CompetitorDTO>(), true);
markTable = new MarkTableWrapper<SingleSelectionModel<MarkDTO>>(markSelectionModel, sailingService,
stringMessages, errorReporter);
@@ -88,10 +88,11 @@ public class RaceLogTrackingCompetitorRegistrationsDialog extends AbstractSaveDi
mainPanel.add(panel);
CaptionPanel allCompetitorsPanel = new CaptionPanel(stringMessages.competitorPool());
CaptionPanel registeredCompetitorsPanel = new CaptionPanel(stringMessages.registeredCompetitors());
allCompetitorsTable = new CompetitorTableWrapper<>(sailingService, stringMessages, errorReporter,
new MultiSelectionModel<CompetitorDTO>(), true);
registeredCompetitorsTable = new CompetitorTableWrapper<>(sailingService, stringMessages, errorReporter,
new MultiSelectionModel<CompetitorDTO>(), true);
final Class<?> selectionModelType = MultiSelectionModel.class;
@SuppressWarnings("unchecked")
final Class<MultiSelectionModel<CompetitorDTO>> multiSelectionType = (Class<MultiSelectionModel<CompetitorDTO>>) selectionModelType;
allCompetitorsTable = new CompetitorTableWrapper<>(sailingService, stringMessages, errorReporter, multiSelectionType, true);
registeredCompetitorsTable = new CompetitorTableWrapper<>(sailingService, stringMessages, errorReporter, multiSelectionType, true);
allCompetitorsPanel.add(allCompetitorsTable);
registeredCompetitorsPanel.add(registeredCompetitorsTable);
VerticalPanel movePanel = new VerticalPanel();
@@ -19,7 +19,7 @@ import com.sap.sse.gwt.client.ErrorReporter;
*/
public abstract class TableWrapper<T, S extends SelectionModel<T>> implements IsWidget {
protected final CellTable<T> table;
protected final S selectionModel;
private final S selectionModel;
protected final ListDataProvider<T> dataProvider;
protected VerticalPanel mainPanel;
protected final SailingServiceAsync sailingService;