Search in sources :

Example 11 with ScriptMethod

use of com.servoy.j2db.persistence.ScriptMethod in project servoy-client by Servoy.

the class JSForm method js_setOnDeleteAllRecordsCmdMethod.

/**
 * @deprecated  As of release 4.1, replaced by setOnDeleteAllRecordsCmd(JSMethod).
 */
@Deprecated
public void js_setOnDeleteAllRecordsCmdMethod(Object functionOrInteger) {
    checkModification();
    if (functionOrInteger instanceof Function) {
        Function function = (Function) functionOrInteger;
        ScriptMethod scriptMethod = getScriptMethod(function, application.getFlattenedSolution());
        if (scriptMethod != null) {
            getForm().setOnDeleteAllRecordsCmdMethodID(scriptMethod.getID());
        } else {
            getForm().setOnDeleteAllRecordsCmdMethodID(0);
        }
    } else if (functionOrInteger instanceof Number) {
        getForm().setOnDeleteAllRecordsCmdMethodID(((Number) functionOrInteger).intValue());
    }
}
Also used : JSFunction(org.mozilla.javascript.annotations.JSFunction) Function(org.mozilla.javascript.Function) ScriptMethod(com.servoy.j2db.persistence.ScriptMethod)

Example 12 with ScriptMethod

use of com.servoy.j2db.persistence.ScriptMethod in project servoy-client by Servoy.

the class JSForm method getEventHandler.

public static <T extends AbstractBase> JSMethod getEventHandler(IApplication application, T persist, int methodid, IJSParent<?> parent, String propertyName) {
    if (methodid > 0) {
        IJSScriptParent<?> scriptParent = null;
        ScriptMethod scriptMethod = null;
        if (parent instanceof JSForm) {
            // form method
            scriptMethod = ((JSForm) parent).getSupportChild().getScriptMethod(methodid);
            if (scriptMethod == null) {
                Form f = ((JSForm) parent).getSupportChild();
                while (f != null && f.getExtendsID() > 0 && scriptMethod == null) {
                    f = application.getFlattenedSolution().getForm(f.getExtendsID());
                    if (f != null)
                        scriptMethod = f.getScriptMethod(methodid);
                }
                if (scriptMethod != null) {
                    scriptParent = application.getScriptEngine().getSolutionModifier().instantiateForm(f, false);
                }
            }
        }
        if (scriptMethod == null) {
            // foundset method
            if (parent instanceof JSDataSourceNode) {
                scriptMethod = ((JSDataSourceNode) parent).getSupportChild().getFoundsetMethod(methodid);
            } else if (parent instanceof JSForm && ((JSForm) parent).getForm().getDataSource() != null) {
                Iterator<ScriptMethod> foundsetMethods = application.getFlattenedSolution().getFoundsetMethods(((JSForm) parent).getForm().getDataSource(), false);
                scriptMethod = AbstractBase.selectById(foundsetMethods, methodid);
                if (scriptMethod != null) {
                    scriptParent = new JSDataSourceNode(application, ((JSForm) parent).getForm().getDataSource());
                }
            }
        }
        if (scriptMethod == null) {
            // global method
            scriptMethod = application.getFlattenedSolution().getScriptMethod(methodid);
        }
        if (scriptMethod != null) {
            if (scriptParent == null) {
                if (scriptMethod.getParent() instanceof TableNode && parent instanceof JSDataSourceNode) {
                    scriptParent = (JSDataSourceNode) parent;
                } else if (scriptMethod.getParent() instanceof Solution) {
                    // global
                    scriptParent = null;
                } else {
                    // form method
                    scriptParent = getJSFormParent(parent);
                }
            }
            List<Object> arguments = persist.getFlattenedMethodArguments(propertyName);
            if (arguments == null || arguments.size() == 0) {
                return new JSMethod(scriptParent, scriptMethod, application, false);
            } else {
                return new JSMethodWithArguments(application, scriptParent, scriptMethod, false, arguments.toArray());
            }
        }
    } else if (methodid == 0 && BaseComponent.isCommandProperty(propertyName)) {
        return (JSMethod) ISMDefaults.COMMAND_DEFAULT;
    }
    return null;
}
Also used : Form(com.servoy.j2db.persistence.Form) ISMForm(com.servoy.j2db.solutionmodel.ISMForm) IMobileSMForm(com.servoy.base.solutionmodel.mobile.IMobileSMForm) Iterator(java.util.Iterator) TableNode(com.servoy.j2db.persistence.TableNode) IConstantsObject(com.servoy.j2db.scripting.IConstantsObject) ScriptMethod(com.servoy.j2db.persistence.ScriptMethod) FlattenedSolution(com.servoy.j2db.FlattenedSolution) Solution(com.servoy.j2db.persistence.Solution)

Example 13 with ScriptMethod

use of com.servoy.j2db.persistence.ScriptMethod in project servoy-client by Servoy.

the class JSForm method js_setOnNewRecordCmdMethod.

/**
 * @deprecated As of release 4.1, replaced by setOnNewRecordCmd(JSMethod).
 */
@Deprecated
public void js_setOnNewRecordCmdMethod(Object functionOrInteger) {
    checkModification();
    if (functionOrInteger instanceof Function) {
        Function function = (Function) functionOrInteger;
        ScriptMethod scriptMethod = getScriptMethod(function, application.getFlattenedSolution());
        if (scriptMethod != null) {
            getForm().setOnNewRecordCmdMethodID(scriptMethod.getID());
        } else {
            getForm().setOnNewRecordCmdMethodID(0);
        }
    } else if (functionOrInteger instanceof Number) {
        getForm().setOnNewRecordCmdMethodID(((Number) functionOrInteger).intValue());
    }
}
Also used : JSFunction(org.mozilla.javascript.annotations.JSFunction) Function(org.mozilla.javascript.Function) ScriptMethod(com.servoy.j2db.persistence.ScriptMethod)

Example 14 with ScriptMethod

use of com.servoy.j2db.persistence.ScriptMethod in project servoy-client by Servoy.

the class JSForm method js_setOnShowOmittedRecordsCmdMethod.

/**
 * @deprecated As of release 4.1, replaced by setOnShowOmittedRecordsCmd(JSMethod).
 */
@Deprecated
public void js_setOnShowOmittedRecordsCmdMethod(Object functionOrInteger) {
    checkModification();
    if (functionOrInteger instanceof Function) {
        Function function = (Function) functionOrInteger;
        ScriptMethod scriptMethod = getScriptMethod(function, application.getFlattenedSolution());
        if (scriptMethod != null) {
            getForm().setOnShowOmittedRecordsCmdMethodID(scriptMethod.getID());
        } else {
            getForm().setOnShowOmittedRecordsCmdMethodID(0);
        }
    } else if (functionOrInteger instanceof Number) {
        getForm().setOnShowOmittedRecordsCmdMethodID(((Number) functionOrInteger).intValue());
    }
}
Also used : JSFunction(org.mozilla.javascript.annotations.JSFunction) Function(org.mozilla.javascript.Function) ScriptMethod(com.servoy.j2db.persistence.ScriptMethod)

Example 15 with ScriptMethod

use of com.servoy.j2db.persistence.ScriptMethod in project servoy-client by Servoy.

the class JSForm method getEventHandler.

public static <T extends AbstractBase> JSMethod getEventHandler(IApplication application, T persist, String uuidOrName, IJSParent<?> parent, String propertyName) {
    if (uuidOrName != null) {
        IJSScriptParent<?> scriptParent = null;
        ScriptMethod scriptMethod = application.getFlattenedSolution().getScriptMethod(uuidOrName);
        ;
        if (scriptMethod != null) {
            if (scriptMethod.getParent() instanceof TableNode && parent instanceof JSDataSourceNode) {
                scriptParent = (JSDataSourceNode) parent;
            } else if (scriptMethod.getParent() instanceof Solution) {
                // global
                scriptParent = null;
            } else {
                // form method
                scriptParent = getJSFormParent(parent);
                if (scriptMethod.getParent() != scriptParent.getSupportChild() && scriptParent.getSupportChild() instanceof Form) {
                    scriptParent = application.getScriptEngine().getSolutionModifier().instantiateForm((Form) scriptParent.getSupportChild(), false);
                }
            }
            List<Object> arguments = persist.getFlattenedMethodArguments(propertyName);
            if (arguments == null || arguments.size() == 0) {
                return new JSMethod(scriptParent, scriptMethod, application, false);
            } else {
                return new JSMethodWithArguments(application, scriptParent, scriptMethod, false, arguments.toArray());
            }
        }
    }
    return null;
}
Also used : Form(com.servoy.j2db.persistence.Form) ISMForm(com.servoy.j2db.solutionmodel.ISMForm) IMobileSMForm(com.servoy.base.solutionmodel.mobile.IMobileSMForm) TableNode(com.servoy.j2db.persistence.TableNode) IConstantsObject(com.servoy.j2db.scripting.IConstantsObject) ScriptMethod(com.servoy.j2db.persistence.ScriptMethod) FlattenedSolution(com.servoy.j2db.FlattenedSolution) Solution(com.servoy.j2db.persistence.Solution)

Aggregations

ScriptMethod (com.servoy.j2db.persistence.ScriptMethod)55 JSFunction (org.mozilla.javascript.annotations.JSFunction)31 Function (org.mozilla.javascript.Function)27 FlattenedSolution (com.servoy.j2db.FlattenedSolution)14 Solution (com.servoy.j2db.persistence.Solution)14 RepositoryException (com.servoy.j2db.persistence.RepositoryException)12 Form (com.servoy.j2db.persistence.Form)11 TableNode (com.servoy.j2db.persistence.TableNode)9 ServoyException (com.servoy.j2db.util.ServoyException)8 ArrayList (java.util.ArrayList)7 GlobalScope (com.servoy.j2db.scripting.GlobalScope)6 Scriptable (org.mozilla.javascript.Scriptable)5 IMobileSMForm (com.servoy.base.solutionmodel.mobile.IMobileSMForm)4 ISMForm (com.servoy.j2db.solutionmodel.ISMForm)4 ServoyClientSupport (com.servoy.base.scripting.annotations.ServoyClientSupport)3 ApplicationException (com.servoy.j2db.ApplicationException)3 FlattenedForm (com.servoy.j2db.persistence.FlattenedForm)3 IPersist (com.servoy.j2db.persistence.IPersist)3 ISupportChilds (com.servoy.j2db.persistence.ISupportChilds)3 FormScope (com.servoy.j2db.scripting.FormScope)3