mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-21 19:50:01 +00:00
allow for any RGB color in MarkEditDialog
This commit is contained in:
1 parent
8a0d1a9203
commit
ec882d37f1
5 files changed
+57
-25
No files matched your search
+34
@@ -0,0 +1,34 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import com.google.gwt.cell.client.SafeHtmlCell;
|
||||
import com.google.gwt.safehtml.shared.SafeHtml;
|
||||
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
|
||||
import com.google.gwt.user.cellview.client.Column;
|
||||
import com.sap.sailing.domain.common.Color;
|
||||
|
||||
public class ColorColumn<T> extends Column<T, SafeHtml> {
|
||||
public interface ColorRetriever<T> {
|
||||
Color getColor(T t);
|
||||
}
|
||||
|
||||
private final ColorRetriever<T> colorRetriever;
|
||||
|
||||
public ColorColumn(ColorRetriever<T> colorRetriever) {
|
||||
super(new SafeHtmlCell());
|
||||
this.colorRetriever = colorRetriever;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SafeHtml getValue(T t) {
|
||||
SafeHtmlBuilder sb = new SafeHtmlBuilder();
|
||||
if (colorRetriever.getColor(t) != null) {
|
||||
String colorString = colorRetriever.getColor(t).getAsHtml();
|
||||
sb.appendHtmlConstant("<span style=\"color: " + colorString + ";\">");
|
||||
sb.appendHtmlConstant(colorString);
|
||||
sb.appendHtmlConstant("</span>");
|
||||
} else {
|
||||
sb.appendHtmlConstant(" ");
|
||||
}
|
||||
return sb.toSafeHtml();
|
||||
}
|
||||
};
|
||||
+6
-12
@@ -16,8 +16,10 @@ import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.ImageResourceRenderer;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.view.client.MultiSelectionModel;
|
||||
import com.sap.sailing.domain.common.Color;
|
||||
import com.sap.sailing.domain.common.dto.CompetitorDTO;
|
||||
import com.sap.sailing.domain.common.impl.NaturalComparator;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.ColorColumn.ColorRetriever;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.FlagImageResolver;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
@@ -90,20 +92,12 @@ public class CompetitorTableWrapper extends TableWrapper<CompetitorDTO, MultiSel
|
||||
}
|
||||
});
|
||||
|
||||
Column<CompetitorDTO, SafeHtml> displayColorColumn = new Column<CompetitorDTO, SafeHtml>(new SafeHtmlCell()) {
|
||||
Column<CompetitorDTO, SafeHtml> displayColorColumn = new ColorColumn<>(new ColorRetriever<CompetitorDTO>() {
|
||||
@Override
|
||||
public SafeHtml getValue(CompetitorDTO competitor) {
|
||||
SafeHtmlBuilder sb = new SafeHtmlBuilder();
|
||||
if (competitor.getColor() != null) {
|
||||
sb.appendHtmlConstant("<span style=\"color: " + competitor.getColor() + ";\">");
|
||||
sb.appendHtmlConstant(competitor.getColor().getAsHtml());
|
||||
sb.appendHtmlConstant("</span>");
|
||||
} else {
|
||||
sb.appendHtmlConstant(" ");
|
||||
}
|
||||
return sb.toSafeHtml();
|
||||
public Color getColor(CompetitorDTO t) {
|
||||
return t.getColor();
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
TextColumn<CompetitorDTO> competitorIdColumn = new TextColumn<CompetitorDTO>() {
|
||||
@Override
|
||||
|
||||
+10
-4
@@ -10,8 +10,8 @@ import com.google.gwt.user.client.ui.ListBox;
|
||||
import com.google.gwt.user.client.ui.TextBox;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.MarkType;
|
||||
import com.sap.sailing.domain.common.impl.RGBColor;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.shared.HtmlPredefinedColor;
|
||||
import com.sap.sailing.gwt.ui.shared.MarkDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.racemap.Pattern;
|
||||
import com.sap.sailing.gwt.ui.shared.racemap.Shape;
|
||||
@@ -23,7 +23,7 @@ public class MarkEditDialog extends DataEntryDialog<MarkDTO> {
|
||||
private final ListBox shape;
|
||||
private final ListBox pattern;
|
||||
private final ListBox type;
|
||||
private final ListBox color;
|
||||
private final TextBox color;
|
||||
private final StringMessages stringMessages;
|
||||
|
||||
public MarkEditDialog(final StringMessages stringMessages, MarkDTO markToEdit, boolean isNewMark,
|
||||
@@ -36,6 +36,12 @@ public class MarkEditDialog extends DataEntryDialog<MarkDTO> {
|
||||
String result = null;
|
||||
if (valueToValidate.getName() == null || valueToValidate.getName().isEmpty()) {
|
||||
result = stringMessages.pleaseEnterAName();
|
||||
} else if (valueToValidate.color != null && ! valueToValidate.color.isEmpty()) {
|
||||
try {
|
||||
new RGBColor(valueToValidate.color);
|
||||
} catch (IllegalArgumentException iae) {
|
||||
result = valueToValidate.color;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -46,7 +52,7 @@ public class MarkEditDialog extends DataEntryDialog<MarkDTO> {
|
||||
this.name = createTextBox(markToEdit.getName());
|
||||
this.shape = createAndSelectListBox(Shape.values(), markToEdit.shape, true);
|
||||
this.type = createAndSelectListBox(MarkType.values(), markToEdit.type == null ? null : markToEdit.type.name(), false);
|
||||
this.color = createAndSelectListBox(HtmlPredefinedColor.values(), markToEdit.color, true);
|
||||
this.color = createTextBox(markToEdit.color);
|
||||
this.pattern = createAndSelectListBox(Pattern.values(), markToEdit.pattern, true);
|
||||
}
|
||||
|
||||
@@ -83,7 +89,7 @@ public class MarkEditDialog extends DataEntryDialog<MarkDTO> {
|
||||
MarkDTO result = new MarkDTO(markToEdit.getIdAsString(), name.getText());
|
||||
result.shape = shape.getItemText(shape.getSelectedIndex());
|
||||
result.type = MarkType.valueOf(type.getItemText(type.getSelectedIndex()));
|
||||
result.color = color.getItemText(color.getSelectedIndex());
|
||||
result.color = color.getText();
|
||||
result.pattern = pattern.getItemText(pattern.getSelectedIndex());
|
||||
return result;
|
||||
}
|
||||
|
||||
+7
-4
@@ -12,6 +12,9 @@ import com.google.gwt.user.cellview.client.Column;
|
||||
import com.google.gwt.user.cellview.client.TextColumn;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.view.client.SelectionModel;
|
||||
import com.sap.sailing.domain.common.Color;
|
||||
import com.sap.sailing.domain.common.impl.RGBColor;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.ColorColumn.ColorRetriever;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
@@ -46,12 +49,12 @@ public class MarkTableWrapper<S extends SelectionModel<MarkDTO>> extends TableWr
|
||||
};
|
||||
table.addColumn(markPositionColumn, stringMessages.position());
|
||||
|
||||
TextColumn<MarkDTO> markColorColumn = new TextColumn<MarkDTO>() {
|
||||
Column<MarkDTO, SafeHtml> markColorColumn = new ColorColumn<>(new ColorRetriever<MarkDTO>() {
|
||||
@Override
|
||||
public String getValue(MarkDTO markDTO) {
|
||||
return markDTO.color != null ? markDTO.color : "";
|
||||
public Color getColor(MarkDTO t) {
|
||||
return t.color != null && ! t.color.isEmpty() ? new RGBColor(t.color) : null;
|
||||
}
|
||||
};
|
||||
});
|
||||
table.addColumn(markColorColumn, stringMessages.color());
|
||||
|
||||
TextColumn<MarkDTO> markShapeColumn = new TextColumn<MarkDTO>() {
|
||||
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
package com.sap.sailing.gwt.ui.shared;
|
||||
|
||||
public enum HtmlPredefinedColor {
|
||||
aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, orange, purple, red, silver, teal, white, yellow
|
||||
}
|
||||
Reference in new issue
Block a user