]>
git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.webapp/src/main/webapp/source/class/org/argeo/slc/web/event/Command.js
1 qx
.Class
.define("org.argeo.slc.web.event.Command",
3 extend
: qx
.event
.Command
,
13 menuCallback
: {nullable
:true}
16 construct : function(id
, label
, icon
, shortcut
){
17 this.base(arguments
, shortcut
);
25 getMenuButton : function(){
26 var button
= new qx
.ui
.menu
.Button(
32 this.addTooltip(button
);
34 this.addListener("changeMenu", function(event
){
35 this.setMenu(event
.getData());
41 getToolbarButton : function(){
44 button
= new qx
.ui
.toolbar
.MenuButton(
49 this.addListener("changeMenu", function(event
){
50 button
.setMenu(this.getMenuClone());
52 this.addListener("changeEnabled", function(e
){
53 this.setEnabled(e
.getData());
55 button
.setEnabled(this.getEnabled());
57 button
= new qx
.ui
.toolbar
.Button(
63 this.addTooltip(button
);
67 getMenuClone : function(){
69 this.menuClone
= new qx
.ui
.menu
.Menu();
70 this.menuClone
.setMinWidth(110);
72 return this.menuClone
;
75 clearMenus : function(){
76 this.getMenu().removeAll();
77 this.getMenuClone().removeAll();
80 addSubMenuButton : function(label
, icon
, commandId
, menu
){
81 var button
= new qx
.ui
.menu
.Button(label
);
82 button
.setUserData("commandId", commandId
);
83 button
.addListener("execute", this.executeSubMenuCallback
, this);
87 this.getMenu().add(button
);
88 this.addSubMenuButton(label
, icon
, commandId
, this.menuClone
);
92 executeSubMenuCallback : function(event
){
93 var button
= event
.getTarget();
94 var callback
= this.getMenuCallback();
95 callback
= qx
.lang
.Function
.bind(callback
, this);
96 callback(button
.getUserData("commandId"));
99 addTooltip : function(element
){
100 if(this.getShortcut() != null){
101 element
.setToolTip(new qx
.ui
.tooltip
.ToolTip(this.getShortcut()));