+ },\r
+ /**\r
+ * Attach a listener to a command, with a context.\r
+ * The context can be an object, a string like "view:viewId" or null. \r
+ * If a string, the viewPaneId content will be retrieved at runtime. If null, "this" will be used\r
+ * as default context.\r
+ * @param command {org.argeo.ria.event.Command} The command\r
+ * @param callback {Function} The function to execute\r
+ * @param callbackContext {Object|String} The context in which the function will be executed. \r
+ */\r
+ _attachListener:function(command, callback, callbackContext){ \r
+ if(!callbackContext){\r
+ command.addListener("execute", callback, this);\r
+ return;\r
+ }\r
+ if(typeof(callbackContext) == "object"){\r
+ command.addListener("execute", callback, callbackContext);\r
+ return;\r
+ } \r
+ if(typeof(callbackContext) == "string"){\r
+ \r
+ var split = callbackContext.split(":");\r
+ var focusPart = split[0];\r
+ var viewId = split[1];\r
+ if(command.getCallbacks()[viewId]) return;\r
+ command.registerCallback(callback, split[1]);\r
+ command.addListener("execute", function(event){\r
+ var target = event.getTarget();\r
+ var callbacks = target.getCallbacks();\r
+ if(qx.lang.Object.getLength(callbacks) == 0) return;\r
+ var view = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById(viewId).getContent();\r
+ if(qx.lang.Object.getLength(callbacks) == 1){\r
+ var binded = qx.lang.Function.bind(callbacks[qx.lang.Object.getKeys(callbacks)[0]], view);\r
+ binded(event);\r
+ return;\r
+ }\r
+ var currentFocus = org.argeo.ria.components.ViewsManager.getInstance().getCurrentFocus();\r
+ if(currentFocus && currentFocus.getViewId() && callbacks[currentFocus.getViewId()]){\r
+ var currentViewId = currentFocus.getViewId();\r
+ view = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById(currentViewId).getContent();\r
+ var binded = qx.lang.Function.bind(callbacks[currentFocus.getViewId()], view);\r
+ binded(event);\r
+ return;\r
+ }\r
+ });\r
+ \r
+ \r
+ /*\r
+ if(callbackContext.split(":")[0] == "view"){\r
+ var viewId = callbackContext.split(":")[1];\r
+ command.addListener("execute", function(event){\r
+ if(event.getTarget().getCheckFocusAtCallback()){\r
+ var currentFocus = org.argeo.ria.components.ViewsManager.getInstance().getCurrentFocus();\r
+ if(currentFocus.getViewId() != viewId) return;\r
+ }\r
+ var view = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById(viewId).getContent();\r
+ var binded = qx.lang.Function.bind(callback, view);\r
+ binded(event);\r
+ });\r
+ }else{\r
+ command.addListener("execute", callback, callbackContext);\r
+ }\r
+ */\r
+ }\r