styled the chart

This commit is contained in:
Jonas Dann committed 2016-02-11 19:06:04 +01:00
1 parent 6f41d6dc6d
commit 59df2d85ef
4 files changed
+77 -17

No files matched your search

+5 -3
View File
@@ -778,7 +778,7 @@ img.openColumn {
font-weight: bold;
padding: 15px 25px;
background-color: #efab00;
border: 1px solid gray;
border: 1px solid #e5e5e5;
}
.EditMarkPositionConfirmCancelButtons .gwt-MenuItem:hover {
@@ -800,15 +800,17 @@ img.openColumn {
}
.EditMarkPositionMarkTable {
padding: 10px;
margin: 10px;
min-width: 300px;
border-top: 1px solid #e5e5e5;
border-left: 1px solid #e5e5e5;
}
.EditMarkPositionMarkTable button {
width: 100%;
font-size: 12px;
font-weight: bold;
border: 1px solid gray;
border: 1px solid #e5e5e5;
background-color: #efab00;
padding: 7px;
color: #fff;
@@ -106,7 +106,7 @@ public class EditMarkPositionPanel extends AbstractRaceChart implements Componen
private List<OverlayClickHandler> overlayClickHandlers;
//TODO: Extend timeslider when there are fixes outside the current slider
//TODO: Show current buoy position
//TODO: Select mark in table when it is clicked on on the map
public EditMarkPositionPanel(final RaceMap raceMap, final LeaderboardPanel leaderboardPanel,
RegattaAndRaceIdentifier selectedRaceIdentifier, String leaderboardName, final StringMessages stringMessages,
SailingServiceAsync sailingService, Timer timer, TimeRangeWithZoomProvider timeRangeWithZoomProvider,
@@ -124,7 +124,7 @@ public class EditMarkPositionPanel extends AbstractRaceChart implements Componen
this.setVisible(false);
this.overlayClickHandlers = new ArrayList<>();
chart = new Chart()
.setPersistent(true)
.setZoomType(BaseChart.ZoomType.X)
@@ -168,7 +168,8 @@ public class EditMarkPositionPanel extends AbstractRaceChart implements Componen
chart.getYAxis().setAxisTitleText("").setOption("labels/enabled", false);
timePlotLine = chart.getXAxis().createPlotLine().setColor("#656565").setWidth(1)
.setDashStyle(DashStyle.SOLID);
markSeriesPlotOptions = new LinePlotOptions().setSelected(true).setShowInLegend(false).setLineWidth(1).setColor("#000");
markSeriesPlotOptions = new LinePlotOptions().setSelected(true).setShowInLegend(false).setLineWidth(1).setColor("#000")
.setHoverStateLineWidth(1).setEnableMouseTracking(false);
markSeries = chart.createSeries().setType(Series.Type.LINE).setYAxis(0)
.setPlotOptions(markSeriesPlotOptions);
chart.addSeries(markSeries, false, false);
@@ -586,7 +587,7 @@ public class EditMarkPositionPanel extends AbstractRaceChart implements Componen
}
raceMap.unregisterAllCourseMarkInfoWindowClickHandlers();
} else {
marksPanel.unselectMarks();
marksPanel.deselectMarks();
selectedMark = null;
if (sideBySideComponentViewer != null) {
sideBySideComponentViewer.setLeftComponent(leaderboardPanel);
@@ -688,19 +689,25 @@ public class EditMarkPositionPanel extends AbstractRaceChart implements Componen
public void onSelectionChange(SelectionChangeEvent event) {
List<MarkDTO> selected = marksPanel.getSelectedMarks();
if (selected.size() > 0) {
if (selected.size() > 1) {
marksPanel.deselectMark(selectedMark);
hideAllFixOverlays();
hideAllPolylines();
selected = marksPanel.getSelectedMarks();
} else if (selectedMark == selected.get(0)) {
return;
}
selectedMark = selected.get(0);
setWidget(chart);
markSeries.remove();
markSeries.setPlotOptions(markSeriesPlotOptions.setMarker(
new Marker().setFillColor(selectedMark.color != null ? selectedMark.color : "#efab00").setLineColor("#fff").setLineWidth(2)));
new Marker().setFillColor(selectedMark.color != null ? selectedMark.color : "#efab00")
.setLineColor("#fff").setLineWidth(2)));
chart.addSeries(markSeries);
setSeriesPoints(selectedMark);
onResize(); // redraw chart
for (Map.Entry<String, CourseMarkOverlay> overlay : raceMap.getCourseMarkOverlays().entrySet()) {
if (!overlay.getKey().equals(selectedMark.getName())) {
overlay.getValue().setVisible(false);
}
}
hideAllCourseMarkOverlaysExceptSelected();
raceMap.hideAllHelplines();
for (FixOverlay overlay : marks.get(selectedMark).values()) {
overlay.setVisible(true);
}
@@ -709,6 +716,7 @@ public class EditMarkPositionPanel extends AbstractRaceChart implements Componen
selectedMark = null;
setWidget(noMarkSelectedLabel);
showAllCourseMarkOverlays();
raceMap.showAllHelplinesToShow();
hideAllFixOverlays();
hideAllPolylines();
}
@@ -720,6 +728,14 @@ public class EditMarkPositionPanel extends AbstractRaceChart implements Componen
}
}
public void hideAllCourseMarkOverlaysExceptSelected() {
for (Map.Entry<String, CourseMarkOverlay> overlay : raceMap.getCourseMarkOverlays().entrySet()) {
if (!overlay.getKey().equals(selectedMark.getName())) {
overlay.getValue().setVisible(false);
}
}
}
public void hideAllFixOverlays() {
for (Map.Entry<MarkDTO, SortedMap<GPSFixDTO, FixOverlay>> mark : marks.entrySet()) {
for (FixOverlay overlay : mark.getValue().values()) {
@@ -31,8 +31,6 @@ public class MarksPanel extends SimplePanel implements Component<AbstractSetting
private final ListDataProvider<MarkDTO> markDataProvider;
private final FlushableSortedCellTableWithStylableHeaders<MarkDTO> markTable;
// TODO: Maybe write the current time into the add new fix button
// TODO: Deal with multiselection
public MarksPanel(final EditMarkPositionPanel parent, final ListDataProvider<MarkDTO> markDataProvider, final StringMessages stringMessages) {
this.markDataProvider = markDataProvider;
setTitle("Marks");
@@ -142,10 +140,14 @@ public class MarksPanel extends SimplePanel implements Component<AbstractSetting
}
return list;
}
public void deselectMark(MarkDTO mark) {
markTable.getSelectionModel().setSelected(mark, false);
}
public void unselectMarks() {
public void deselectMarks() {
for (MarkDTO mark : markDataProvider.getList()) {
markTable.getSelectionModel().setSelected(mark, false);
deselectMark(mark);
}
}
}
@@ -2791,4 +2791,44 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe
public CoordinateSystem getCoordinateSystem() {
return coordinateSystem;
}
public void hideAllHelplines() {
startLine.setVisible(false);
finishLine.setVisible(false);
advantageLine.setVisible(false);
windwardStartLineMarkToFirstMarkLine.setVisible(false);
leewardStartLineMarkToFirstMarkLine.setVisible(false);
for (Polyline courseMiddleline : courseMiddleLines.values()) {
courseMiddleline.setVisible(false);
}
for (Polygon courseSideline : courseSidelines.values()) {
courseSideline.setVisible(false);
}
}
public void showAllHelplinesToShow() {
if (settings.getHelpLinesSettings().isShowAnyHelperLines()) {
if (startLine != null && settings.getHelpLinesSettings().isVisible(HelpLineTypes.STARTLINE))
startLine.setVisible(true);
if (finishLine != null && settings.getHelpLinesSettings().isVisible(HelpLineTypes.FINISHLINE))
finishLine.setVisible(true);
if (advantageLine != null && settings.getHelpLinesSettings().isVisible(HelpLineTypes.ADVANTAGELINE))
advantageLine.setVisible(true);
if (windwardStartLineMarkToFirstMarkLine != null && leewardStartLineMarkToFirstMarkLine != null &&
settings.getHelpLinesSettings().isVisible(HelpLineTypes.STARTLINETOFIRSTMARKTRIANGLE)) {
windwardStartLineMarkToFirstMarkLine.setVisible(true);
leewardStartLineMarkToFirstMarkLine.setVisible(true);
}
if (settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEMIDDLELINE)) {
for (Polyline courseMiddleline : courseMiddleLines.values()) {
courseMiddleline.setVisible(true);
}
}
if (settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEGEOMETRY)) {
for (Polygon courseSideline : courseSidelines.values()) {
courseSideline.setVisible(true);
}
}
}
}
}