race tree view can clear selection

This commit is contained in:
Axel Uhl committed 2011-08-26 17:10:20 +02:00
1 parent 2db990a5c1
commit dab3a2a294
3 files changed
+44 -8

No files matched your search

@@ -24,12 +24,15 @@ import com.sap.sailing.gwt.ui.client.DataEntryDialog.Validator;
import com.sap.sailing.gwt.ui.shared.EventDAO;
import com.sap.sailing.gwt.ui.shared.LeaderboardDAO;
import com.sap.sailing.gwt.ui.shared.Pair;
import com.sap.sailing.gwt.ui.shared.RaceDAO;
import com.sap.sailing.gwt.ui.shared.RegattaDAO;
import com.sap.sailing.gwt.ui.shared.Triple;
public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer {
public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer, RaceSelectionChangeListener {
private static final int MAX_NUMBER_OF_DISCARDED_RESULTS = 4;
private RaceTreeView raceTree;
private final RaceTreeView raceTree;
private final StringConstants stringConstants;
@@ -61,6 +64,10 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer
private final Button columnRemoveButton;
private final Button linkRaceColumnToTrackedRaceButton;
private final Button unlinkRaceColumnFromTrackedRaceButton;
public LeaderboardConfigPanel(SailingServiceAsync sailingService, AdminConsole adminConsole,
ErrorReporter errorReporter, StringConstants stringConstants) {
this.stringConstants = stringConstants;
@@ -191,27 +198,29 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer
}
});
// --------- linking columns to tracked races ------------
Label lblTrackedRaceConnected = new Label(stringConstants.trackedRaceConnectedToSelectedRaceName());
grid.setWidget(4, 0, lblTrackedRaceConnected);
raceTree = new RaceTreeView(stringConstants, /* multiselection */ false);
grid.setWidget(5, 0, raceTree);
raceTree.addRaceSelectionChangeListener(this);
VerticalPanel verticalPanel_2 = new VerticalPanel();
grid.setWidget(5, 1, verticalPanel_2);
Button btnLinkToColumn = new Button(stringConstants.linkToColumn());
verticalPanel_2.add(btnLinkToColumn);
btnLinkToColumn.addClickHandler(new ClickHandler() {
linkRaceColumnToTrackedRaceButton = new Button(stringConstants.linkToColumn());
verticalPanel_2.add(linkRaceColumnToTrackedRaceButton);
linkRaceColumnToTrackedRaceButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// TODO Auto-generated method stub
}
});
Button btnUnlink = new Button(stringConstants.unlink());
verticalPanel_2.add(btnUnlink);
btnUnlink.addClickHandler(new ClickHandler() {
unlinkRaceColumnFromTrackedRaceButton = new Button(stringConstants.unlink());
verticalPanel_2.add(unlinkRaceColumnFromTrackedRaceButton);
unlinkRaceColumnFromTrackedRaceButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// TODO Auto-generated method stub
@@ -305,6 +314,9 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer
} else {
columnRenameButton.setEnabled(false);
columnRemoveButton.setEnabled(false);
raceTree.clearSelection();
linkRaceColumnToTrackedRaceButton.setEnabled(false);
unlinkRaceColumnFromTrackedRaceButton.setEnabled(false);
}
}
@@ -543,4 +555,12 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer
}
});
}
@Override
public void onRaceSelectionChange(List<Triple<EventDAO, RegattaDAO, RaceDAO>> selectedRaces) {
if (selectedRaces.isEmpty()) {
linkRaceColumnToTrackedRaceButton.setEnabled(false);
unlinkRaceColumnFromTrackedRaceButton.setEnabled(false);
}
}
}
@@ -18,6 +18,8 @@ public interface RaceSelectionChangeListener {
/**
* The first element is the first one selected
*
* @param selectedRaces a non-<code>null</code> list which is empty if nothing is selected
*/
void onRaceSelectionChange(List<Triple<EventDAO, RegattaDAO, RaceDAO>> selectedRaces);
@@ -48,6 +48,20 @@ public class RaceTreeView extends FormPanel implements EventDisplayer, RaceSelec
}
return result;
}
public void clearSelection() {
if (eventsList != null) {
for (EventDAO event : eventsList.getList()) {
trackedEventsModel.getSelectionModel().setSelected(event, false);
for (RegattaDAO regatta : event.regattas) {
trackedEventsModel.getSelectionModel().setSelected(regatta, false);
for (RaceDAO race : regatta.races) {
trackedEventsModel.getSelectionModel().setSelected(race, false);
}
}
}
}
}
@Override
public void addRaceSelectionChangeListener(RaceSelectionChangeListener listener) {