xworker.javafx.control.TooltipActions Maven / Gradle / Ivy
package xworker.javafx.control;
import javafx.scene.Node;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.Control;
import javafx.scene.control.OverrunStyle;
import javafx.scene.control.Tooltip;
import javafx.scene.text.Font;
import javafx.scene.text.TextAlignment;
import org.xmeta.ActionContext;
import org.xmeta.Thing;
import xworker.javafx.beans.property.PropertyFactory;
import xworker.javafx.util.JavaFXUtils;
public class TooltipActions {
static{
PropertyFactory.regist(Tooltip.class, "fontProperty", o -> {
Tooltip obj = (Tooltip) o;
return obj.fontProperty();
});
PropertyFactory.regist(Tooltip.class, "wrapTextProperty", o -> {
Tooltip obj = (Tooltip) o;
return obj.wrapTextProperty();
});
PropertyFactory.regist(Tooltip.class, "contentDisplayProperty", o -> {
Tooltip obj = (Tooltip) o;
return obj.contentDisplayProperty();
});
PropertyFactory.regist(Tooltip.class, "textOverrunProperty", o -> {
Tooltip obj = (Tooltip) o;
return obj.textOverrunProperty();
});
PropertyFactory.regist(Tooltip.class, "graphicTextGapProperty", o -> {
Tooltip obj = (Tooltip) o;
return obj.graphicTextGapProperty();
});
PropertyFactory.regist(Tooltip.class, "textAlignmentProperty", o -> {
Tooltip obj = (Tooltip) o;
return obj.textAlignmentProperty();
});
PropertyFactory.regist(Tooltip.class, "graphicProperty", o -> {
Tooltip obj = (Tooltip) o;
return obj.graphicProperty();
});
PropertyFactory.regist(Tooltip.class, "textProperty", o -> {
Tooltip obj = (Tooltip) o;
return obj.textProperty();
});
}
public static void init(Tooltip node, Thing thing, ActionContext actionContext) {
PopupControlActions.init(node, thing, actionContext);
if(thing.valueExists("contentDisplay")){
node.setContentDisplay(ContentDisplay.valueOf(thing.getString("contentDisplay")));
}
if(thing.valueExists("font")){
Font font = JavaFXUtils.getObject(thing, "font", actionContext);
if(font != null) {
node.setFont(font);
}
}
if(thing.valueExists("graphic")){
Node graphic = JavaFXUtils.getObject(thing, "graphic", actionContext);
if(graphic != null) {
node.setGraphic(graphic);
}
}
if(thing.valueExists("graphicTextGap")){
node.setGraphicTextGap(thing.getDouble("graphicTextGap"));
}
if(thing.valueExists("textAlignment")){
node.setTextAlignment(TextAlignment.valueOf(thing.getString("textAlignment")));
}
if(thing.valueExists("textOverrun")){
node.setTextOverrun(OverrunStyle.valueOf(thing.getString("textOverrun")));
}
if(thing.valueExists("text")){
node.setText(thing.getString("text"));
}
if(thing.valueExists("wrapText")){
node.setWrapText(thing.getBoolean("wrapText"));
}
}
public static Tooltip create(ActionContext actionContext){
Thing self = actionContext.getObject("self");
Object parent = actionContext.getObject("parent");
Tooltip node = new Tooltip();
init(node, self, actionContext);
actionContext.g().put(self.getMetadata().getName(), node);
if(parent instanceof Control){
((Control) parent).setTooltip(node);
}
actionContext.peek().put("parent", node);
for(Thing child : self.getChilds()) {
Object obj = child.doAction("create", actionContext);
if(obj instanceof Font){
node.setFont((Font) obj);
}
}
return node;
}
}