e44a7e37b6
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@151 b3834d28-1941-0410-a4f8-b48e95affb8f
83 lines
2.2 KiB
JavaScript
83 lines
2.2 KiB
JavaScript
if(!dojo._hasResource["dojox.sketch._Plugin"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
|
|
dojo._hasResource["dojox.sketch._Plugin"] = true;
|
|
dojo.provide("dojox.sketch._Plugin");
|
|
//dojo.require("dojox.sketch");
|
|
dojo.require("dijit.form.Button");
|
|
|
|
dojo.declare("dojox.sketch._Plugin", null, {
|
|
// summary
|
|
// This represents a "plugin" to the dojox.sketch.Figure, which is basically
|
|
// a single button on the Toolbar and some associated code
|
|
constructor: function(/*Object?*/args){
|
|
if(args){
|
|
dojo.mixin(this, args);
|
|
}
|
|
this._connects=[];
|
|
},
|
|
|
|
figure: null,
|
|
iconClassPrefix: "dojoxSketchIcon",
|
|
itemGroup: 'toolsGroup',
|
|
button: null,
|
|
queryCommand: null,
|
|
shape: "",
|
|
useDefaultCommand: true,
|
|
buttonClass: dijit.form.ToggleButton,
|
|
_initButton: function(){
|
|
if(this.shape.length){
|
|
//TODO: i18n
|
|
// var label = dojox.sketch.shapes[this.shape];
|
|
var className = this.iconClassPrefix+" "+this.iconClassPrefix + this.shape.charAt(0).toUpperCase() + this.shape.substr(1);
|
|
if(!this.button){
|
|
var props = {
|
|
label: this.shape,
|
|
showLabel: false,
|
|
iconClass: className,
|
|
dropDown: this.dropDown,
|
|
tabIndex: "-1"
|
|
};
|
|
this.button = new this.buttonClass(props);
|
|
this.connect(this.button,'onClick','activate');
|
|
}
|
|
}
|
|
},
|
|
attr: function(name,/*?*/value){
|
|
if(arguments.length>1){
|
|
this.button.setAttribute(name,value);
|
|
}else{
|
|
this.button.getAttribute(name);
|
|
}
|
|
},
|
|
onActivate: function(){},
|
|
activate: function(/*?*/e){
|
|
this.onActivate();
|
|
this.figure.setTool(this);
|
|
this.attr('checked',true);
|
|
},
|
|
onMouseDown: function(e){},
|
|
onMouseMove: function(e){},
|
|
onMouseUp: function(e){},
|
|
destroy: function(f){
|
|
dojo.forEach(this._connects,dojo.disconnect);
|
|
},
|
|
connect: function(o,f,tf){
|
|
this._connects.push(dojo.connect(o,f,this,tf));
|
|
},
|
|
setFigure: function(/*Widget*/figure){
|
|
// FIXME: detatch from previous figure!!
|
|
this.figure = figure;
|
|
|
|
// FIXME: prevent creating this if we don't need to (i.e., figure can't handle our command)
|
|
this._initButton();
|
|
},
|
|
setToolbar: function(/*Widget*/toolbar){
|
|
if(this.button){
|
|
toolbar.addChild(this.button);
|
|
}
|
|
if(this.itemGroup){
|
|
toolbar.addGroupItem(this,this.itemGroup);
|
|
}
|
|
}
|
|
});
|
|
|
|
}
|