aligned boat class icon file names with BoatClassMasterdata enum literals and expose icons through gwt.ui web bundle;

added icon URLs and further fields to BoatClassesResource

Change-Id: Ib0bc71521fbe173883ff9d55524a338f0b672f5b
This commit is contained in:
Axel Uhl
2018-12-07 00:28:56 +01:00
parent b22fc11336
commit 0262e5268a
10 changed files with 32 additions and 8 deletions
@@ -1,19 +1,38 @@
package com.sap.sailing.server.gateway.serialization.impl;
import java.util.Arrays;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import com.sap.sailing.domain.base.BoatClass;
import com.sap.sailing.domain.common.BoatClassMasterdata;
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
public class BoatClassJsonSerializer implements JsonSerializer<BoatClass> {
public static final String FIELD_NAME = "name";
public static final String FIELD_TYPICALLY_STARTS_UPWIND = "typicallyStartsUpwind";
public static final String FIELD_HULL_LENGTH_IN_METERS = "hullLengthInMeters";
public static final String FIELD_HULL_BEAM_IN_METERS = "hullBeamInMeters";
public static final String FIELD_DISPLAY_NAME = "displayName";
public static final String FIELD_ALIAS_NAMES = "aliasNames";
public static final String FIELD_ICON_URL = "iconUrl";
@Override
public JSONObject serialize(BoatClass boatClass) {
JSONObject result = new JSONObject();
result.put(FIELD_NAME, boatClass.getName());
result.put(FIELD_TYPICALLY_STARTS_UPWIND, boatClass.typicallyStartsUpwind());
result.put(FIELD_HULL_LENGTH_IN_METERS, boatClass.getHullLength().getMeters());
result.put(FIELD_HULL_BEAM_IN_METERS, boatClass.getHullBeam().getMeters());
result.put(FIELD_DISPLAY_NAME, boatClass.getDisplayName());
final BoatClassMasterdata masterData = BoatClassMasterdata.resolveBoatClass(boatClass.getDisplayName());
final JSONArray aliasNames = new JSONArray();
if (masterData != null) {
result.put(FIELD_ICON_URL, "/gwt/src/main/resources/com/sap/sailing/gwt/ui/client/images/boatclass/"+masterData.name().replaceAll("^_", "")+".png");
aliasNames.addAll(Arrays.asList(masterData.getAlternativeNames()));
}
result.put(FIELD_ALIAS_NAMES, aliasNames);
return result;
}
}