summaryrefslogtreecommitdiffstatshomepage
path: root/includes/js/dojox/sketch/Toolbar.js
diff options
context:
space:
mode:
authorGravatar mensonge2008-11-13 09:49:11 +0000
committerGravatar mensonge2008-11-13 09:49:11 +0000
commite44a7e37b6c7b5961adaffc62b9042b8d442938e (patch)
tree95b67c356e93163467db2451f2b8cce84ed5d582 /includes/js/dojox/sketch/Toolbar.js
parenta62b9742ee5e28bcec6872d88f50f25b820914f6 (diff)
downloadscuttle-e44a7e37b6c7b5961adaffc62b9042b8d442938e.tar.gz
scuttle-e44a7e37b6c7b5961adaffc62b9042b8d442938e.zip
New feature: basic Ajax suggestion for tags and implementation of Dojo toolkit
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@151 b3834d28-1941-0410-a4f8-b48e95affb8f
Diffstat (limited to 'includes/js/dojox/sketch/Toolbar.js')
-rw-r--r--includes/js/dojox/sketch/Toolbar.js96
1 files changed, 96 insertions, 0 deletions
diff --git a/includes/js/dojox/sketch/Toolbar.js b/includes/js/dojox/sketch/Toolbar.js
new file mode 100644
index 0000000..73dc82c
--- /dev/null
+++ b/includes/js/dojox/sketch/Toolbar.js
@@ -0,0 +1,96 @@
+if(!dojo._hasResource["dojox.sketch.Toolbar"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.sketch.Toolbar"] = true;
+dojo.provide("dojox.sketch.Toolbar");
+
+dojo.require("dojox.sketch.Annotation");
+dojo.require("dijit.Toolbar");
+dojo.require("dijit.form.Button");
+dojo.require("dijit.form.Slider");
+
+dojo.declare("dojox.sketch.ButtonGroup", null, {
+ constructor: function(){
+ this._childMaps={};
+ this._children=[];
+ },
+ add: function(/*_Plugin*/ plugin){
+ this._childMaps[plugin]=plugin.connect(plugin,'onActivate',dojo.hitch(this,'_resetGroup',plugin));
+ this._children.push(plugin);
+ },
+// remove: function(/*_Plugin*/ plugin){
+// widget.disconnect(this._childMaps[widget.id]);
+// delete this._childMaps[widget.id];
+// this._children.splice(this._children.indexOf(widget.id),1);
+// },
+ _resetGroup: function(p){
+ var cs=this._children;
+ dojo.forEach(cs,function(c){
+ if(p!=c && c['attr']){
+ c.attr('checked',false);
+ }
+ });
+ }
+});
+
+dojo.declare("dojox.sketch.Toolbar", dijit.Toolbar, {
+ figure: null,
+ plugins: null,
+ postCreate: function(){
+ this.inherited(arguments);
+ this.shapeGroup=new dojox.sketch.ButtonGroup;
+
+ this.connect(this.figure,'onLoad','reset');
+ if(!this.plugins){
+ this.plugins=['Slider','Lead','SingleArrow','DoubleArrow','Underline','Preexisting'];
+ }
+ this._plugins=[];
+
+ dojo.forEach(this.plugins,function(obj){
+ var name=dojo.isString(obj)?obj:obj.name;
+ var p=new dojox.sketch.tools[name](obj.args||{});
+ this._plugins.push(p);
+ p.setFigure(this.figure);
+ p.setToolbar(this);
+ if(!this._defaultTool && p.button){
+ this._defaultTool=p;
+ }
+ },this);
+ },
+ destroy: function(){
+ dojo.forEach(this._plugins,function(p){
+ p.destroy();
+ });
+ this.inherited(arguments);
+ delete this._defaultTool;
+ delete this._plugins;
+ },
+ addGroupItem: function(/*_Plugin*/item,group){
+ if(group!='toolsGroup'){
+ console.error('not supported group '+group);
+ return;
+ }
+
+ this.shapeGroup.add(item);
+ },
+ reset: function(){
+ this._defaultTool.activate();
+ },
+ _setShape: function(s){
+ if(!this.figure.surface) return;
+ // now do the action.
+ if(this.figure.hasSelections()){
+ for(var i=0; i<this.figure.selected.length; i++){
+ var before=this.figure.selected[i].serialize();
+ this.figure.convert(this.figure.selected[i], s);
+ this.figure.history.add(ta.CommandTypes.Convert, this.figure.selected[i], before);
+ }
+ }
+ }
+});
+
+dojox.sketch.makeToolbar=function(node,figure){
+ var toolbar=new dojox.sketch.Toolbar({"figure":figure});
+ node.appendChild(toolbar.domNode);
+ return toolbar;
+};
+
+}