de.gsi.chart.renderer.spi.utils.CssToColorHelper Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of chartfx-chart Show documentation
Show all versions of chartfx-chart Show documentation
This charting library ${project.artifactId}- is an extension
in the spirit of Oracle's XYChart and performance/time-proven JDataViewer charting functionalities.
Emphasis was put on plotting performance for both large number of data points and real-time displays,
as well as scientific accuracies leading to error bar/surface plots, and other scientific plotting
features (parameter measurements, fitting, multiple axes, zoom, ...).
package de.gsi.chart.renderer.spi.utils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.sun.javafx.css.converters.ColorConverter;
import javafx.beans.property.ObjectProperty;
import javafx.beans.value.WritableValue;
import javafx.css.CssMetaData;
import javafx.css.Styleable;
import javafx.css.StyleableObjectProperty;
import javafx.css.StyleableProperty;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.paint.Color;
/**
* https://stackoverflow.com/questions/32625212/convert-color-from-css-to-javafx-color-object
* @author Zydar
*/
public class CssToColorHelper extends Parent{
public static final Color DEFAULT_NAMED_COLOR = null;
private ObjectProperty namedColor;
public ObjectProperty namedColorProperty() {
if(namedColor == null) {
namedColor = new StyleableObjectProperty(CssToColorHelper.DEFAULT_NAMED_COLOR) {
@Override
protected void invalidated() {
super.invalidated();
}
@Override
public CssMetaData getCssMetaData() {
return StyleableProperties.NAMED_COLOR;
}
@Override
public Object getBean() {
return CssToColorHelper.this;
}
@Override
public String getName() {
return "namedColor";
}
};
}
return namedColor;
}
public Color getNamedColor() {
return namedColorProperty().get();
}
public CssToColorHelper() {
setFocusTraversable(false);
getStyleClass().add("css-to-color-helper");
}
private static class StyleableProperties {
private static final CssMetaData NAMED_COLOR =
new CssMetaData("-named-color", ColorConverter.getInstance(),
CssToColorHelper.DEFAULT_NAMED_COLOR) {
@Override
public boolean isSettable(CssToColorHelper n) {
return n.namedColor == null || !n.namedColor.isBound();
}
@Override
public StyleableProperty getStyleableProperty(CssToColorHelper n) {
return (StyleableProperty) (WritableValue) n.namedColorProperty();
}
};
private static final List> STYLEABLES;
static {
final List> styleables =
new ArrayList<>(Node.getClassCssMetaData());
styleables.add(StyleableProperties.NAMED_COLOR);
STYLEABLES = Collections.unmodifiableList(styleables);
}
}
@Override
public List> getCssMetaData() {
return StyleableProperties.STYLEABLES;
}
}