All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xworker.javafx.control.SpinnerActions Maven / Gradle / Ivy

There is a newer version: 2.0.2
Show newest version
package xworker.javafx.control;

import javafx.scene.control.Spinner;
import javafx.scene.control.SpinnerValueFactory;
import org.xmeta.ActionContext;
import org.xmeta.Thing;
import xworker.javafx.beans.property.PropertyFactory;
import xworker.javafx.util.JavaFXUtils;

public class SpinnerActions {
	static{
		PropertyFactory.regist(Spinner.class, "editableProperty", o -> {
			Spinner obj = (Spinner) o;
			return obj.editableProperty();
		});
		PropertyFactory.regist(Spinner.class, "valueFactoryProperty", o -> {
			Spinner obj = (Spinner) o;
			return obj.valueFactoryProperty();
		});
	}

	@SuppressWarnings("unchecked")
	public static void init(Spinner node, Thing thing, ActionContext actionContext) {
		ControlActions.init(node, thing, actionContext);
		        
		if(thing.valueExists("editable")){
            node.setEditable(thing.getBoolean("editable"));
        }
        if(thing.valueExists("valueFactory")){
        	SpinnerValueFactory lf = (SpinnerValueFactory) JavaFXUtils.getObject(thing, "valueFactory", actionContext);
        	if(lf != null) {
        		node.setValueFactory(lf);
        	}
        }
	}
	
	public static Spinner create(ActionContext actionContext) {
		Thing self = actionContext.getObject("self");
		
		Spinner item = new Spinner();
		init(item, self, actionContext);
		actionContext.g().put(self.getMetadata().getName(), item);
		
		actionContext.peek().put("parent", item);
		for(Thing child : self.getChilds()) {
			child.doAction("create", actionContext);
		}
		
		return item;
	}
}