package nl.uva.softwcons.qls.ui.style;
import java.util.HashMap;
import java.util.Map;
import nl.uva.softwcons.qls.ast.widgetstyle.Style;
public class StyleBlock {
private final Map<String, String> properties;
public StyleBlock() {
this.properties = new HashMap<String, String>();
}
public StyleBlock(final Map<String, String> properties) {
this.properties = properties;
}
public StyleBlock(final Style style) {
this.properties = new HashMap<String, String>(style.getProperties());
}
public void addProperty(final String key, final String value) {
this.properties.put(key, value);
}
public Map<String, String> getProperties() {
return properties;
}
public StyleBlock inherit(final StyleBlock parentStyle) {
final StyleBlock mergedStyle = new StyleBlock(this.properties);
parentStyle.getProperties().forEach((key, value) -> {
if (!properties.containsKey(key)) {
mergedStyle.addProperty(key, value);
}
});
return mergedStyle;
}
public String asString() {
final StringBuilder builder = new StringBuilder();
this.properties.forEach((key, value) -> {
builder.append("-fx-" + key + ": " + value + ";\n");
});
return builder.toString();
}
}