package com.baselet.element.facet.common;
import com.baselet.diagram.draw.helper.ColorOwn;
import com.baselet.diagram.draw.helper.StyleException;
import com.baselet.element.facet.FirstRunKeyValueFacet;
import com.baselet.element.facet.PropertiesParserState;
public class TransparencyFacet extends FirstRunKeyValueFacet {
public static final TransparencyFacet INSTANCE = new TransparencyFacet();
private TransparencyFacet() {}
@Override
public KeyValue getKeyValue() {
return new KeyValue("transparency", false, "0", "background color transparency in percent");
}
@Override
public void handleValue(String value, PropertiesParserState state) {
try {
int valInt = Integer.parseInt(value);
if (valInt < 0 || valInt > 100) {
throw new NumberFormatException();
}
double colorTransparencyValue = 255 - valInt * 2.55; // ColorOwn has 0 for full transparency and 255 for no transparency
ColorOwn bgColor = state.getDrawer().getBackgroundColor();
state.getDrawer().setBackgroundColor(bgColor.transparency((int) colorTransparencyValue));
} catch (NumberFormatException e) {
throw new StyleException("The value must be between 0 and 100");
}
}
}