improved AdminConsole support for Expedition device configurations

Change-Id: I73c72f43ff603a55ec00edee4de656d48bdf06a5
This commit is contained in:
Axel Uhl
2017-10-25 18:42:10 +02:00
parent d7924a3fdf
commit 7e33e88d70
10 changed files with 105 additions and 50 deletions
@@ -29,4 +29,47 @@ public class ExpeditionDeviceConfiguration extends NamedImpl implements Serializ
public Integer getExpeditionBoatId() { public Integer getExpeditionBoatId() {
return expeditionBoatId; return expeditionBoatId;
} }
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getName() == null) ? 0 : getName().hashCode());
result = prime * result + ((deviceUuid == null) ? 0 : deviceUuid.hashCode());
result = prime * result + ((expeditionBoatId == null) ? 0 : expeditionBoatId.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
ExpeditionDeviceConfiguration other = (ExpeditionDeviceConfiguration) obj;
if (getName() == null) {
if (other.getName() != null)
return false;
} else if (!getName().equals(other.getName()))
return false;
if (deviceUuid == null) {
if (other.deviceUuid != null)
return false;
} else if (!deviceUuid.equals(other.deviceUuid))
return false;
if (expeditionBoatId == null) {
if (other.expeditionBoatId != null)
return false;
} else if (!expeditionBoatId.equals(other.expeditionBoatId))
return false;
return true;
}
@Override
public String toString() {
return "ExpeditionDeviceConfiguration [deviceUuid=" + deviceUuid + ", expeditionBoatId=" + expeditionBoatId
+ ", getName()=" + getName() + "]";
}
} }
@@ -140,16 +140,19 @@ public class ExpeditionTrackerFactory implements WindTrackerFactory, DeviceRegis
} }
public void addOrReplaceDeviceConfiguration(ExpeditionDeviceConfiguration deviceConfiguration) { public void addOrReplaceDeviceConfiguration(ExpeditionDeviceConfiguration deviceConfiguration) {
final ExpeditionDeviceConfiguration old = deviceConfigurations.put(deviceConfiguration.getDeviceUuid(), deviceConfiguration); if (deviceConfiguration.getExpeditionBoatId() != null &&
if (old != null && old.getExpeditionBoatId() != null) { devicesPerBoatId.containsKey(deviceConfiguration.getExpeditionBoatId()) &&
devicesPerBoatId.remove(old.getExpeditionBoatId()); !devicesPerBoatId.get(deviceConfiguration.getExpeditionBoatId()).equals(deviceConfiguration)) {
} throw new IllegalStateException("Trying to create an ambiguous Expedition Boat ID mapping: established is "+
final ExpeditionDeviceConfiguration collision = devicesPerBoatId.get(deviceConfiguration.getExpeditionBoatId()); devicesPerBoatId.get(deviceConfiguration.getExpeditionBoatId())+
if (collision != null) {
throw new IllegalStateException("Trying to create an ambiguous Expedition Boat ID mapping: established is "+collision+
" and boat ID #"+deviceConfiguration.getExpeditionBoatId()+" therefore cannot be mapped to "+deviceConfiguration+ " and boat ID #"+deviceConfiguration.getExpeditionBoatId()+" therefore cannot be mapped to "+deviceConfiguration+
" at the same time."); " at the same time.");
} }
deviceConfigurations.put(deviceConfiguration.getDeviceUuid(), deviceConfiguration);
final ExpeditionDeviceConfiguration old = deviceConfigurations.get(deviceConfiguration.getDeviceUuid());
if (old != null && old.getExpeditionBoatId() != null) {
devicesPerBoatId.remove(old.getExpeditionBoatId());
}
if (deviceConfiguration.getExpeditionBoatId() != null) { if (deviceConfiguration.getExpeditionBoatId() != null) {
devicesPerBoatId.put(deviceConfiguration.getExpeditionBoatId(), deviceConfiguration); devicesPerBoatId.put(deviceConfiguration.getExpeditionBoatId(), deviceConfiguration);
} }
@@ -20,7 +20,7 @@ public class ExpeditionDeviceConfiguration_CustomFieldSerializer extends CustomF
throws SerializationException { throws SerializationException {
streamWriter.writeString(instance.getName()); streamWriter.writeString(instance.getName());
streamWriter.writeObject(instance.getDeviceUuid()); streamWriter.writeObject(instance.getDeviceUuid());
streamWriter.writeInt(instance.getExpeditionBoatId()); streamWriter.writeObject(instance.getExpeditionBoatId());
} }
@Override @Override
@@ -36,7 +36,7 @@ public class ExpeditionDeviceConfiguration_CustomFieldSerializer extends CustomF
public static ExpeditionDeviceConfiguration instantiate(SerializationStreamReader streamReader) public static ExpeditionDeviceConfiguration instantiate(SerializationStreamReader streamReader)
throws SerializationException { throws SerializationException {
return new ExpeditionDeviceConfiguration(streamReader.readString(), (UUID) streamReader.readObject(), streamReader.readInt()); return new ExpeditionDeviceConfiguration(streamReader.readString(), (UUID) streamReader.readObject(), (Integer) streamReader.readObject());
} }
@Override @Override
@@ -242,8 +242,12 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements
ExpeditionDeviceConfigurationsPanel expeditionDeviceConfigurationsPanel = new ExpeditionDeviceConfigurationsPanel(sailingService, this, getStringMessages()); ExpeditionDeviceConfigurationsPanel expeditionDeviceConfigurationsPanel = new ExpeditionDeviceConfigurationsPanel(sailingService, this, getStringMessages());
expeditionDeviceConfigurationsPanel.ensureDebugId("ExpeditionDeviceConfigurations"); expeditionDeviceConfigurationsPanel.ensureDebugId("ExpeditionDeviceConfigurations");
panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<ExpeditionDeviceConfigurationsPanel>(expeditionDeviceConfigurationsPanel), panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<ExpeditionDeviceConfigurationsPanel>(expeditionDeviceConfigurationsPanel) {
getStringMessages().expeditionDeviceConfigurations(), Permission.MANAGE_EXPEDITION_DEVICE_CONFIGURATIONS); @Override
public void refreshAfterBecomingVisible() {
expeditionDeviceConfigurationsPanel.refresh();
}
}, getStringMessages().expeditionDeviceConfigurations(), Permission.MANAGE_EXPEDITION_DEVICE_CONFIGURATIONS);
ResultImportUrlsManagementPanel resultImportUrlsManagementPanel = new ResultImportUrlsManagementPanel(sailingService, this, getStringMessages()); ResultImportUrlsManagementPanel resultImportUrlsManagementPanel = new ResultImportUrlsManagementPanel(sailingService, this, getStringMessages());
panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<ResultImportUrlsManagementPanel>(resultImportUrlsManagementPanel), panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<ResultImportUrlsManagementPanel>(resultImportUrlsManagementPanel),
@@ -2,6 +2,7 @@ package com.sap.sailing.gwt.ui.adminconsole;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@@ -28,8 +29,6 @@ import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.view.client.ListDataProvider; import com.google.gwt.view.client.ListDataProvider;
import com.google.gwt.view.client.SelectionChangeEvent;
import com.google.gwt.view.client.SelectionChangeEvent.Handler;
import com.sap.sailing.expeditionconnector.ExpeditionDeviceConfiguration; import com.sap.sailing.expeditionconnector.ExpeditionDeviceConfiguration;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.StringMessages;
@@ -54,7 +53,7 @@ public class ExpeditionDeviceConfigurationsPanel extends FlowPanel {
public static class DeviceConfigurationImagesBarCell extends ImagesBarCell { public static class DeviceConfigurationImagesBarCell extends ImagesBarCell {
public static final String ACTION_REMOVE = "ACTION_REMOVE"; public static final String ACTION_REMOVE = "ACTION_REMOVE";
public static final String ACTION_EDIT = "ACTION_REMOVE"; public static final String ACTION_EDIT = "ACTION_EDIT";
private final StringMessages stringMessages; private final StringMessages stringMessages;
public DeviceConfigurationImagesBarCell(StringMessages stringMessages) { public DeviceConfigurationImagesBarCell(StringMessages stringMessages) {
@@ -70,8 +69,8 @@ public class ExpeditionDeviceConfigurationsPanel extends FlowPanel {
@Override @Override
protected Iterable<ImageSpec> getImageSpecs() { protected Iterable<ImageSpec> getImageSpecs() {
return Arrays.asList( return Arrays.asList(
new ImageSpec(ACTION_REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon())), new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.editIcon())),
new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.editIcon()))); new ImageSpec(ACTION_REMOVE, stringMessages.actionRemove(), makeImagePrototype(IconResources.INSTANCE.removeIcon())));
} }
} }
@@ -110,26 +109,7 @@ public class ExpeditionDeviceConfigurationsPanel extends FlowPanel {
}, filterDeviceConfigurationsPanel.getAllListDataProvider()); }, filterDeviceConfigurationsPanel.getAllListDataProvider());
allDeviceConfigurations.setSelectionModel(refreshableDeviceConfigurationsSelectionModel); allDeviceConfigurations.setSelectionModel(refreshableDeviceConfigurationsSelectionModel);
final Panel controlsPanel = new HorizontalPanel(); final Panel controlsPanel = new HorizontalPanel();
final Button removeAccountButton = new Button(stringMessages.remove());
removeAccountButton.setEnabled(false);
removeAccountButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if (refreshableDeviceConfigurationsSelectionModel.getSelectedObject() != null) {
if (Window.confirm("Do you really want to remove the leaderboards?")) {
removeDeviceConfiguration(refreshableDeviceConfigurationsSelectionModel.getSelectedObject(), filteredDeviceConfigurations);
}
}
}
});
refreshableDeviceConfigurationsSelectionModel.addSelectionChangeHandler(new Handler() {
@Override
public void onSelectionChange(SelectionChangeEvent event) {
removeAccountButton.setEnabled(refreshableDeviceConfigurationsSelectionModel.getSelectedObject() != null);
}
});
controlsPanel.add(filterDeviceConfigurationsPanel); controlsPanel.add(filterDeviceConfigurationsPanel);
controlsPanel.add(removeAccountButton);
add(controlsPanel); add(controlsPanel);
add(allDeviceConfigurations); add(allDeviceConfigurations);
Column<ExpeditionDeviceConfiguration, String> deviceConfigurationNameColumn = new TextColumn<ExpeditionDeviceConfiguration>() { Column<ExpeditionDeviceConfiguration, String> deviceConfigurationNameColumn = new TextColumn<ExpeditionDeviceConfiguration>() {
@@ -151,6 +131,16 @@ public class ExpeditionDeviceConfigurationsPanel extends FlowPanel {
deviceConfigurationColumnListHandler.setComparator(deviceConfigurationUuidColumn, deviceConfigurationColumnListHandler.setComparator(deviceConfigurationUuidColumn,
(c1, c2)->new NaturalComparator(/* caseSensitive */ false).compare(c1.getDeviceUuid().toString(), c2.getDeviceUuid().toString())); (c1, c2)->new NaturalComparator(/* caseSensitive */ false).compare(c1.getDeviceUuid().toString(), c2.getDeviceUuid().toString()));
allDeviceConfigurations.addColumn(deviceConfigurationUuidColumn, stringMessages.id()); allDeviceConfigurations.addColumn(deviceConfigurationUuidColumn, stringMessages.id());
Column<ExpeditionDeviceConfiguration, String> deviceConfigurationBoatIdColumn = new TextColumn<ExpeditionDeviceConfiguration>() {
@Override
public String getValue(ExpeditionDeviceConfiguration object) {
return object.getExpeditionBoatId() == null ? "" : object.getExpeditionBoatId().toString();
}
};
deviceConfigurationBoatIdColumn.setSortable(true);
deviceConfigurationColumnListHandler.setComparator(deviceConfigurationBoatIdColumn,
Comparator.comparing(ExpeditionDeviceConfiguration::getExpeditionBoatId, Comparator.nullsLast(Comparator.naturalOrder())));
allDeviceConfigurations.addColumn(deviceConfigurationBoatIdColumn, stringMessages.expeditionBoatId());
ImagesBarColumn<ExpeditionDeviceConfiguration, DeviceConfigurationImagesBarCell> deviceConfigurationActionColumn = new ImagesBarColumn<ExpeditionDeviceConfiguration, DeviceConfigurationImagesBarCell>( ImagesBarColumn<ExpeditionDeviceConfiguration, DeviceConfigurationImagesBarCell> deviceConfigurationActionColumn = new ImagesBarColumn<ExpeditionDeviceConfiguration, DeviceConfigurationImagesBarCell>(
new DeviceConfigurationImagesBarCell(stringMessages)); new DeviceConfigurationImagesBarCell(stringMessages));
deviceConfigurationActionColumn.setFieldUpdater(new FieldUpdater<ExpeditionDeviceConfiguration, String>() { deviceConfigurationActionColumn.setFieldUpdater(new FieldUpdater<ExpeditionDeviceConfiguration, String>() {
@@ -158,7 +148,7 @@ public class ExpeditionDeviceConfigurationsPanel extends FlowPanel {
public void update(int index, ExpeditionDeviceConfiguration deviceConfiguration, String value) { public void update(int index, ExpeditionDeviceConfiguration deviceConfiguration, String value) {
if (DeviceConfigurationImagesBarCell.ACTION_REMOVE.equals(value)) { if (DeviceConfigurationImagesBarCell.ACTION_REMOVE.equals(value)) {
if (Window.confirm(stringMessages.doYouReallyWantToRemoveExpeditionDeviceConfiguration(deviceConfiguration.getName()))) { if (Window.confirm(stringMessages.doYouReallyWantToRemoveExpeditionDeviceConfiguration(deviceConfiguration.getName()))) {
removeDeviceConfiguration(deviceConfiguration, filteredDeviceConfigurations); removeDeviceConfiguration(deviceConfiguration, filterDeviceConfigurationsPanel);
} }
} else if (DeviceConfigurationImagesBarCell.ACTION_EDIT.equals(value)) { } else if (DeviceConfigurationImagesBarCell.ACTION_EDIT.equals(value)) {
new EditDeviceConfigurationDialog(filterDeviceConfigurationsPanel, sailingService, stringMessages, errorReporter, deviceConfiguration).show(); new EditDeviceConfigurationDialog(filterDeviceConfigurationsPanel, sailingService, stringMessages, errorReporter, deviceConfiguration).show();
@@ -166,6 +156,7 @@ public class ExpeditionDeviceConfigurationsPanel extends FlowPanel {
} }
}); });
allDeviceConfigurations.addColumn(deviceConfigurationActionColumn, stringMessages.actions()); allDeviceConfigurations.addColumn(deviceConfigurationActionColumn, stringMessages.actions());
allDeviceConfigurations.addColumnSortHandler(deviceConfigurationColumnListHandler);
updateAllAccounts(sailingService, filterDeviceConfigurationsPanel, stringMessages, errorReporter); updateAllAccounts(sailingService, filterDeviceConfigurationsPanel, stringMessages, errorReporter);
Button addAccountButton = new Button(stringMessages.add()); Button addAccountButton = new Button(stringMessages.add());
addAccountButton.ensureDebugId("addExpeditionDeviceConfiguration"); addAccountButton.ensureDebugId("addExpeditionDeviceConfiguration");
@@ -180,18 +171,17 @@ public class ExpeditionDeviceConfigurationsPanel extends FlowPanel {
refreshButton.addClickHandler(new ClickHandler() { refreshButton.addClickHandler(new ClickHandler() {
@Override @Override
public void onClick(ClickEvent event) { public void onClick(ClickEvent event) {
refresh(sailingService, errorReporter, stringMessages); refresh();
} }
}); });
add(refreshButton); add(refreshButton);
} }
private void refresh(final SailingServiceAsync sailingService, final ErrorReporter errorReporter, public void refresh() {
final StringMessages stringMessages) {
updateAllAccounts(sailingService, filterDeviceConfigurationsPanel, stringMessages, errorReporter); updateAllAccounts(sailingService, filterDeviceConfigurationsPanel, stringMessages, errorReporter);
} }
private class AbstractDeviceConfigurationDialog extends DataEntryDialog<ExpeditionDeviceConfiguration> { private abstract class AbstractDeviceConfigurationDialog extends DataEntryDialog<ExpeditionDeviceConfiguration> {
protected TextBox boatName; protected TextBox boatName;
protected com.sap.sse.gwt.client.controls.IntegerBox boatId; protected com.sap.sse.gwt.client.controls.IntegerBox boatId;
@@ -231,11 +221,6 @@ public class ExpeditionDeviceConfigurationsPanel extends FlowPanel {
protected FocusWidget getInitialFocusWidget() { protected FocusWidget getInitialFocusWidget() {
return boatName; return boatName;
} }
@Override
protected ExpeditionDeviceConfiguration getResult() {
return new ExpeditionDeviceConfiguration(boatName.getText(), UUID.randomUUID(), boatId.getValue());
}
} }
private class AddDeviceConfigurationDialog extends AbstractDeviceConfigurationDialog { private class AddDeviceConfigurationDialog extends AbstractDeviceConfigurationDialog {
@@ -265,6 +250,11 @@ public class ExpeditionDeviceConfigurationsPanel extends FlowPanel {
}); });
ensureDebugId("AddExpeditionDeviceConfigurationDialog"); ensureDebugId("AddExpeditionDeviceConfigurationDialog");
} }
@Override
protected ExpeditionDeviceConfiguration getResult() {
return new ExpeditionDeviceConfiguration(boatName.getText(), UUID.randomUUID(), boatId.getValue());
}
} }
private class EditDeviceConfigurationDialog extends AbstractDeviceConfigurationDialog { private class EditDeviceConfigurationDialog extends AbstractDeviceConfigurationDialog {
@@ -307,6 +297,11 @@ public class ExpeditionDeviceConfigurationsPanel extends FlowPanel {
boatId.setValue(valueToEdit.getExpeditionBoatId()); boatId.setValue(valueToEdit.getExpeditionBoatId());
return result; return result;
} }
@Override
protected ExpeditionDeviceConfiguration getResult() {
return new ExpeditionDeviceConfiguration(this.boatName.getValue(), valueToEdit.getDeviceUuid(), this.boatId.getValue());
}
} }
private static void updateAllAccounts(SailingServiceAsync sailingService, final LabeledAbstractFilterablePanel<ExpeditionDeviceConfiguration> filterAccountsPanel, private static void updateAllAccounts(SailingServiceAsync sailingService, final LabeledAbstractFilterablePanel<ExpeditionDeviceConfiguration> filterAccountsPanel,
@@ -328,7 +323,8 @@ public class ExpeditionDeviceConfigurationsPanel extends FlowPanel {
new AddDeviceConfigurationDialog(filterDeviceConfigurationsPanel, sailingService, stringMessages, errorReporter).show(); new AddDeviceConfigurationDialog(filterDeviceConfigurationsPanel, sailingService, stringMessages, errorReporter).show();
} }
private void removeDeviceConfiguration(final ExpeditionDeviceConfiguration expeditionDeviceConfiguration, final ListDataProvider<ExpeditionDeviceConfiguration> filteredDeviceConfigurations) { private void removeDeviceConfiguration(final ExpeditionDeviceConfiguration expeditionDeviceConfiguration,
final LabeledAbstractFilterablePanel<ExpeditionDeviceConfiguration> filterDeviceConfigurationsPanel) {
sailingService.removeExpeditionDeviceConfiguration(expeditionDeviceConfiguration, new AsyncCallback<Void>() { sailingService.removeExpeditionDeviceConfiguration(expeditionDeviceConfiguration, new AsyncCallback<Void>() {
@Override @Override
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
@@ -337,7 +333,7 @@ public class ExpeditionDeviceConfigurationsPanel extends FlowPanel {
@Override @Override
public void onSuccess(Void result) { public void onSuccess(Void result) {
filteredDeviceConfigurations.getList().remove(expeditionDeviceConfiguration); filterDeviceConfigurationsPanel.remove(expeditionDeviceConfiguration);
} }
}); });
} }
@@ -104,7 +104,7 @@ public class IgtimiAccountsPanel extends FlowPanel {
@Override @Override
public void onClick(ClickEvent event) { public void onClick(ClickEvent event) {
if (refreshableAccountsSelectionModel.getSelectedObject() != null) { if (refreshableAccountsSelectionModel.getSelectedObject() != null) {
if (Window.confirm("Do you really want to remove the leaderboards?")) { if (Window.confirm(stringMessages.doYouReallyWantToRemoveTheSelectedIgtimiAccounts())) {
removeAccount(refreshableAccountsSelectionModel.getSelectedObject(), filteredAccounts); removeAccount(refreshableAccountsSelectionModel.getSelectedObject(), filteredAccounts);
} }
} }
@@ -142,6 +142,7 @@ public class IgtimiAccountsPanel extends FlowPanel {
} }
}); });
allAccounts.addColumn(accountActionColumn, stringMessages.actions()); allAccounts.addColumn(accountActionColumn, stringMessages.actions());
allAccounts.addColumnSortHandler(accountColumnListHandler);
updateAllAccounts(sailingService, filterAccountsPanel, stringMessages, errorReporter); updateAllAccounts(sailingService, filterAccountsPanel, stringMessages, errorReporter);
Button addAccountButton = new Button(stringMessages.addIgtimiAccount()); Button addAccountButton = new Button(stringMessages.addIgtimiAccount());
addAccountButton.ensureDebugId("addIgtimiAccount"); addAccountButton.ensureDebugId("addIgtimiAccount");
@@ -1940,4 +1940,6 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages,
String addExpeditionDeviceConfiguration(); String addExpeditionDeviceConfiguration();
String editExpeditionDeviceConfiguration(); String editExpeditionDeviceConfiguration();
String expeditionBoatId(); String expeditionBoatId();
String doYouReallyWantToRemoveTheSelectedExpeditionDeviceConfigurations();
String doYouReallyWantToRemoveTheSelectedIgtimiAccounts();
} }
@@ -1924,4 +1924,6 @@ errorFetchingExpeditionDeviceConfigurations=Error fetching Expedition device con
expeditionDeviceConfigurations=Expedition Device Configurations expeditionDeviceConfigurations=Expedition Device Configurations
addExpeditionDeviceConfiguration=Add Expedition Device Configuration addExpeditionDeviceConfiguration=Add Expedition Device Configuration
editExpeditionDeviceConfiguration=Edit Expedition Device Configuration editExpeditionDeviceConfiguration=Edit Expedition Device Configuration
expeditionBoatId=Boat ID (e.g. 0, 1, or 2) expeditionBoatId=Boat ID (e.g. 0, 1, or 2)
doYouReallyWantToRemoveTheSelectedExpeditionDeviceConfigurations=Do you really want to remove the selected Expedition device configurations?
doYouReallyWantToRemoveTheSelectedIgtimiAccounts=Do you really want to remove the selected Igtimi accounts?
@@ -1918,4 +1918,6 @@ errorFetchingExpeditionDeviceConfigurations=Fehler beim Laden der Expedition Ger
expeditionDeviceConfigurations=Expedition Gerätekonfigurationen expeditionDeviceConfigurations=Expedition Gerätekonfigurationen
addExpeditionDeviceConfiguration=Expedition Gerätekonfiguration hinzufügen addExpeditionDeviceConfiguration=Expedition Gerätekonfiguration hinzufügen
editExpeditionDeviceConfiguration=Expedition Gerätekonfiguration bearbeiten editExpeditionDeviceConfiguration=Expedition Gerätekonfiguration bearbeiten
expeditionBoatId=Boot-ID (z.B. 0, 1 oder 2) expeditionBoatId=Boot-ID (z.B. 0, 1 oder 2)
doYouReallyWantToRemoveTheSelectedExpeditionDeviceConfigurations=Möchten Sie wirklich die ausgewählten Expedition Gerätekonfigurationen löschen?
doYouReallyWantToRemoveTheSelectedIgtimiAccounts=Möchten Sie wirklich die ausgewählten Igtimi-Konten löschen?
@@ -6669,6 +6669,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
@Override @Override
public void addOrReplaceExpeditionDeviceConfiguration(ExpeditionDeviceConfiguration deviceConfiguration) { public void addOrReplaceExpeditionDeviceConfiguration(ExpeditionDeviceConfiguration deviceConfiguration) {
// TODO consider replication
final ExpeditionTrackerFactory expeditionConnector = expeditionConnectorTracker.getService(); final ExpeditionTrackerFactory expeditionConnector = expeditionConnectorTracker.getService();
if (expeditionConnector != null) { if (expeditionConnector != null) {
expeditionConnector.addOrReplaceDeviceConfiguration(deviceConfiguration); expeditionConnector.addOrReplaceDeviceConfiguration(deviceConfiguration);
@@ -6677,6 +6678,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
@Override @Override
public void removeExpeditionDeviceConfiguration(ExpeditionDeviceConfiguration deviceConfiguration) { public void removeExpeditionDeviceConfiguration(ExpeditionDeviceConfiguration deviceConfiguration) {
// TODO consider replication
final ExpeditionTrackerFactory expeditionConnector = expeditionConnectorTracker.getService(); final ExpeditionTrackerFactory expeditionConnector = expeditionConnectorTracker.getService();
if (expeditionConnector != null) { if (expeditionConnector != null) {
expeditionConnector.removeDeviceConfiguration(deviceConfiguration); expeditionConnector.removeDeviceConfiguration(deviceConfiguration);