Merge branch 'gwt' of ssh://kielweek.web4sap.com/home/trac/git into gwt

This commit is contained in:
Marcus Kammer committed 2012-02-06 18:10:35 +01:00
commit b94a0a6c05
12 files changed
+37 -48

No files matched your search

@@ -91,7 +91,8 @@ public class DynamicGPSFixMovingTrackImpl<ItemType> extends DynamicTrackImpl<Ite
new KnotSpeedWithBearingImpl(speedWithConfidence.getObject().getKnots(), bearing);
SpeedWithBearingWithConfidence<TimePoint> result = speedWithConfidence == null || bearingAverage == null ? null :
new SpeedWithBearingWithConfidenceImpl<TimePoint>(avgSpeed,
/* confidence */ (speedWithConfidence.getConfidence() + bearingAverage.getConfidence())/2., at);
/* confidence */ ((speedWithConfidence == null ? 0.0 : speedWithConfidence.getConfidence()) +
(bearingAverage == null ? 0.0 : bearingAverage.getConfidence()))/2., at);
return result;
}
+5 -5
View File
@@ -25,11 +25,6 @@ Computes leaderboard information for sailing races and offers RESTful APIs to al
<import plugin="org.eclipse.osgi"/>
<import plugin="javax.servlet" version="2.5.0" match="greaterOrEqual"/>
<import plugin="com.mongodb.driver" version="2.6.2" match="greaterOrEqual"/>
<import plugin="com.sap.ui5.commons"/>
<import plugin="com.sap.ui5.core"/>
<import plugin="com.sap.ui5.resource"/>
<import plugin="com.sap.ui5.gwt.commons"/>
<import plugin="com.sap.ui5.gwt.core"/>
<import plugin="com.google.gwt.osgi" version="2.4.0" match="greaterOrEqual"/>
</requires>
@@ -172,4 +167,9 @@ Computes leaderboard information for sailing races and offers RESTful APIs to al
install-size="0"
version="0.0.0"/>
<plugin
id="com.sap.sailing.www.events"
download-size="0"
install-size="0"
version="0.0.0"/>
</feature>
+5 -5
View File
@@ -11,11 +11,11 @@
<link href='images/sap-sailing-app-icon.png' rel='apple-touch-icon-precomposed'>
<link href='http://fonts.googleapis.com/css?family=Ubuntu:300,400,500,700,300italic,400italic,500italic,700italic' rel='stylesheet' type='text/css'>
<script id="sap-ui-bootstrap"
type="text/javascript"
src="/gwt/sap-ui-core.js"
data-sap-ui-theme="sap_platinum"
data-sap-ui-libs="sap.ui.commons"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="highcharts/js/highcharts.js"></script>
<!-- Optionally, add a highcharts theme file -->
<script type="text/javascript" src="highcharts/js/themes/grid.js"></script>
<script type="text/javascript" language="javascript" src="com.sap.sailing.gwt.ui.RaceBoard/com.sap.sailing.gwt.ui.RaceBoard.nocache.js"></script>
@@ -14,16 +14,6 @@
<url-pattern>/sailing</url-pattern>
</servlet-mapping>
<servlet>
<display-name>ResourceServlet</display-name>
<servlet-name>ResourceServlet</servlet-name>
<servlet-class>com.sap.ui5.resource.ResourceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ResourceServlet</servlet-name>
<url-pattern>/resources/*</url-pattern>
</servlet-mapping>
<!-- enabling remote logging -->
<servlet>
<servlet-name>remoteLoggingServlet</servlet-name>
@@ -34,6 +24,4 @@
<servlet-name>remoteLoggingServlet</servlet-name>
<url-pattern>/com.sap.sailing.gwt.ui.AdminConsole/remote_logging</url-pattern>
</servlet-mapping>
</web-app>
@@ -670,11 +670,6 @@ public class RaceMap implements TimeListener, CompetitorSelectionChangeListener,
return result;
}
private String getColorString(CompetitorDTO competitorDTO) {
// TODO green no more than 70, red no less than 120
return "#" + (Integer.toHexString(competitorDTO.hashCode()) + "000000").substring(0, 4).toUpperCase() + "00";
}
/**
* Creates a polyline for the competitor represented by <code>competitorDTO</code>, taking the fixes from
* {@link #fixes fixes.get(competitorDTO)} and using the fixes starting at time point <code>from</code> (inclusive)
@@ -716,7 +711,7 @@ public class RaceMap implements TimeListener, CompetitorSelectionChangeListener,
}
PolylineOptions options = PolylineOptions.newInstance(
/* clickable */true, /* geodesic */true);
Polyline result = new Polyline(points.toArray(new LatLng[0]), getColorString(competitorDTO), /* width */ 1,
Polyline result = new Polyline(points.toArray(new LatLng[0]), competitorSelection.getColor(competitorDTO), /* width */ 1,
/* opacity */0.5, options);
result.addPolylineClickHandler(new PolylineClickHandler() {
@Override
@@ -186,7 +186,7 @@ public class RaceMapResources {
public double getRealBoatSizeScaleFactor(Size imageSize) {
// the possible zoom level range is 0 to 21 (zoom level 0 would show the whole world)
int zoomLevel = map == null ? 1 : map.getZoomLevel();
double minScaleFactor = 0.33;
double minScaleFactor = 0.45;
double maxScaleFactor = 2.0;
double realBoatSizeScaleFactor = minScaleFactor;
// here it would be better to get the boat length from the boat class -> for now we assume a length of 5m
@@ -18,12 +18,15 @@ public class CompetitorSelectionModel implements CompetitorSelectionProvider {
private final boolean hasMultiSelection;
private final ColorMap<CompetitorDTO> competitorsColorMap;
public CompetitorSelectionModel(boolean hasMultiSelection) {
super();
this.hasMultiSelection = hasMultiSelection;
this.allCompetitors = new HashSet<CompetitorDTO>();
this.selectedCompetitors = new LinkedHashSet<CompetitorDTO>();
this.listeners = new HashSet<CompetitorSelectionChangeListener>();
this.competitorsColorMap = new ColorMap<CompetitorDTO>();
}
/**
@@ -152,4 +155,14 @@ public class CompetitorSelectionModel implements CompetitorSelectionProvider {
remove(oldCompetitorToRemove);
}
}
@Override
public String getColor(CompetitorDTO competitor) {
if (allCompetitors.contains(competitor)) {
return competitorsColorMap.getColorByID(competitor);
}
return null;
}
}
@@ -43,6 +43,8 @@ public interface CompetitorSelectionProvider {
boolean hasMultiSelection();
String getColor(CompetitorDTO competitor);
void addCompetitorSelectionChangeListener(CompetitorSelectionChangeListener listener);
void removeCompetitorSelectionChangeListener(CompetitorSelectionChangeListener listener);
@@ -53,7 +53,6 @@ import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.domain.common.DetailType;
import com.sap.sailing.domain.common.RaceIdentifier;
import com.sap.sailing.domain.common.impl.Util.Pair;
import com.sap.sailing.gwt.ui.client.ColorMap;
import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener;
import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
import com.sap.sailing.gwt.ui.client.DetailTypeFormatter;
@@ -93,7 +92,6 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener {
private final Label title;
private final DeckPanel chart;
private final RaceSelectionProvider raceSelectionProvider;
private final ColorMap<Integer> colorMap;
private int stepsToLoad = 100;
private final StringMessages stringMessages;
private PlotWithOverview plot;
@@ -124,7 +122,6 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener {
seriesIsUsed = new HashSet<SeriesHandler>();
competitorID = new ArrayList<CompetitorDTO>();
markSeriesID = new ArrayList<SeriesHandler>();
colorMap = new ColorMap<Integer>();
competitorLabels = new HashMap<CompetitorDTO, Widget>();
markPassingBuoyName = new HashMap<String, String>();
this.sailingService = sailingService;
@@ -420,13 +417,14 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener {
plotOptions.setGridOptions(new GridOptions().setHoverable(true).setMouseActiveRadius(5).setAutoHighlight(true));
plotOptions.setSelectionOptions(new SelectionOptions().setDragging(true).setMode("x"));
for (int i = 0; i < getCompetitorsAndTimePointsDTO().getCompetitors().length; i++){
SeriesHandler series = model.addSeries(""+i, colorMap.getColorByID(i));
for (int i = 0; i < getCompetitorsAndTimePointsDTO().getCompetitors().length; i++){
CompetitorDTO competitor = getCompetitorsAndTimePointsDTO().getCompetitors()[i];
SeriesHandler series = model.addSeries(""+i, competitorSelectionProvider.getColor(competitor));
series.setOptions(SeriesType.LINES, new LineSeriesOptions().setLineWidth(2.5).setShow(true));
series.setOptions(SeriesType.POINTS, new PointsSeriesOptions().setLineWidth(0).setShow(false));
series.setVisible(false);
seriesID.add(series);
series = model.addSeries(i + " passed mark", colorMap.getColorByID(i));
series = model.addSeries(i + " passed mark", competitorSelectionProvider.getColor(competitor));
series.setOptions(SeriesType.LINES, new LineSeriesOptions().setLineWidth(0).setShow(false));
series.setOptions(SeriesType.POINTS, new PointsSeriesOptions().setLineWidth(3).setShow(true));
series.setVisible(false);
@@ -550,7 +548,7 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener {
private void setLegendVisible(CompetitorDTO competitor, boolean visible) {
Widget label = competitorLabels.get(competitor);
if (label == null){
label = createCompetitorLabel(competitor.name, colorMap.getColorByID(competitorID.indexOf(competitor)));
label = createCompetitorLabel(competitor.name, competitorSelectionProvider.getColor(competitor));
competitorLabels.put(competitor, label);
legendPanel.add(label);
}
@@ -117,12 +117,12 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
raceMap.onRaceSelectionChange(Collections.singletonList(selectedRaceIdentifier));
collapsableViewers.add(raceMapViewer);
boolean showWindChart = false;
boolean showWindChart = true;
if(showWindChart) {
WindChartSettings windChartSettings = new WindChartSettings();
WindChart windChart = new WindChart(sailingService, raceSelectionProvider, windChartSettings, stringMessages, errorReporter);
CollapsableComponentViewer<WindChartSettings> windChartViewer = new CollapsableComponentViewer<WindChartSettings>(
windChart, "600px", "300px", stringMessages);
windChart, "600px", "500px", stringMessages);
windChart.onRaceSelectionChange(raceSelectionProvider.getSelectedRaces());
collapsableViewers.add(windChartViewer);
}
@@ -207,6 +207,7 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
max = selectedRace.endOfRace;
} else if (selectedRace.timePointOfNewestEvent != null) {
max = selectedRace.timePointOfNewestEvent;
timer.setPlayMode(PlayModes.Live);
}
if(min != null && max != null)
@@ -70,7 +70,6 @@ public class LeaderboardGroupPanel extends FormPanel implements HasWelcomeWidget
}
mainPanel = new FlowPanel();
mainPanel.setWidth("95%");
add(mainPanel);
loadGroup(groupName);
}
@@ -122,7 +121,6 @@ public class LeaderboardGroupPanel extends FormPanel implements HasWelcomeWidget
if (group.leaderboards.size() <= MAX_COLUMNS_IN_ROW) {
LeaderboardGroupFullTableResources tableResources = GWT.create(LeaderboardGroupFullTableResources.class);
CellTable<Integer> leaderboardsTable = new CellTable<Integer>(200, tableResources);
leaderboardsTable.setWidth("100%");
leaderboardsTable.setSelectionModel(new NoSelectionModel<Integer>());
int maxRacesNum = 0;
@@ -172,13 +170,10 @@ public class LeaderboardGroupPanel extends FormPanel implements HasWelcomeWidget
LeaderboardGroupCompactTableResources tableResources = GWT.create(LeaderboardGroupCompactTableResources.class);
CellTable<LeaderboardDTO> leaderboardsTable = new CellTable<LeaderboardDTO>(200, tableResources);
leaderboardsTable.setWidth("100%");
leaderboardsTable.setSelectionModel(new NoSelectionModel<LeaderboardDTO>());
leaderboardsTable.addColumn(nameColumn, stringConstants.name());
leaderboardsTable.setColumnWidth(nameColumn, "30%");
leaderboardsTable.addColumn(racesColumn, stringConstants.races());
leaderboardsTable.setColumnWidth(racesColumn, "70%");
leaderboardsTable.setRowData(group.leaderboards);
mainPanel.add(leaderboardsTable);
@@ -255,7 +250,6 @@ public class LeaderboardGroupPanel extends FormPanel implements HasWelcomeWidget
public void setWelcomeWidget(WelcomeWidget welcome) {
boolean needsToBeInserted = welcomeWidget == null;
welcomeWidget = welcome;
welcomeWidget.setWidth("100%");
if (needsToBeInserted) {
mainPanel.insert(welcomeWidget, 0);
}
@@ -43,13 +43,11 @@ public class SpectatorEntryPoint extends AbstractEntryPoint implements EventRefr
root = (root.equals("leaderboardGroupPanel") || root.equals("overview")) ? root : null;
}
RootPanel rootPanel = RootPanel.get();
rootPanel.setSize("100%", "100%");
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages);
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
rootPanel.add(logoAndTitlePanel);
//TODO Create LeaderboardGroupPanel if groupName is filled
FormPanel panelToDisplay = null;
if (groupName == null) {
panelToDisplay = new OverviewEventPanel(sailingService, this, this, stringMessages);
@@ -59,7 +57,6 @@ public class SpectatorEntryPoint extends AbstractEntryPoint implements EventRefr
groupPanel.setWelcomeWidget(new ClosableWelcomeWidget(true, stringMessages.welcomeToSailingAnalytics(),
"Ipsum lorum\nHello World!", stringMessages));
}
panelToDisplay.setSize("100%", "100%");
rootPanel.add(panelToDisplay);
fillEvents();