mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-17 01:31:01 +00:00
styled the chart
This commit is contained in:
1 parent
6f41d6dc6d
commit
59df2d85ef
4 files changed
+77
-17
No files matched your search
@@ -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;
|
||||
|
||||
+26
-10
@@ -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()) {
|
||||
|
||||
+6
-4
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
+40
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user