source: [view]
this.editor = editor;
this._buttons = [];
this.breadcrumbBar = new dijit.Toolbar();
var strings = dojo.i18n.getLocalization("dojox.editor.plugins", "Breadcrumb");
this._titleTemplate = strings.nodeActions;
dojo.place(this.breadcrumbBar.domNode, editor.footer);
this.editor.onLoadDeferred.addCallback(dojo.hitch(this, function(){
this._menu = new dijit.Menu({});
dojo.addClass(this.breadcrumbBar.domNode, "dojoxEditorBreadcrumbArrow");
var self = this;
var body = new dijit.form.ComboButton({
showLabel: true,
label: "body",
_selNode: editor.editNode,
dropDown: this._menu,
onClick: dojo.hitch(this, function(){
this._menuTarget = editor.editNode;
this._selectContents();
})
});
// Build the menu
this._menuTitle = new dojox.editor.plugins._BreadcrumbMenuTitle({menuTitle: strings.nodeActions});
this._selCMenu = new dijit.MenuItem({label: strings.selectContents, onClick: dojo.hitch(this, this._selectContents)});
this._delCMenu = new dijit.MenuItem({label: strings.deleteContents, onClick: dojo.hitch(this, this._deleteContents)});
this._selEMenu = new dijit.MenuItem({label: strings.selectElement, onClick: dojo.hitch(this, this._selectElement)});
this._delEMenu = new dijit.MenuItem({label: strings.deleteElement, onClick: dojo.hitch(this, this._deleteElement)});
this._moveSMenu = new dijit.MenuItem({label: strings.moveStart, onClick: dojo.hitch(this, this._moveCToStart)});
this._moveEMenu = new dijit.MenuItem({label: strings.moveEnd, onClick: dojo.hitch(this, this._moveCToEnd)});
this._menu.addChild(this._menuTitle);
this._menu.addChild(this._selCMenu);
this._menu.addChild(this._delCMenu);
this._menu.addChild(new dijit.MenuSeparator({}));
this._menu.addChild(this._selEMenu);
this._menu.addChild(this._delEMenu);
this._menu.addChild(new dijit.MenuSeparator({}));
this._menu.addChild(this._moveSMenu);
this._menu.addChild(this._moveEMenu);
body._ddConnect = dojo.connect(body, "openDropDown", dojo.hitch(this, function(){
this._menuTarget = body._selNode;
this._menuTitle.set("menuTitle", dojo.string.substitute(this._titleTemplate,{
"nodeName": "<body>"
}));
this._selEMenu.set("disabled", true);
this._delEMenu.set("disabled", true);
this._selCMenu.set("disabled", false);
this._delCMenu.set("disabled", false);
this._moveSMenu.set("disabled", false);
this._moveEMenu.set("disabled", false);
}));
this.breadcrumbBar.addChild(body);
this.connect(this.editor, "onNormalizedDisplayChanged", "updateState");
}));
this.breadcrumbBar.startup();
if(dojo.isIE){
// Sometimes IE will mess up layout and needs to be poked.
setTimeout(dojo.hitch(this, function(){this.breadcrumbBar.domNode.className = this.breadcrumbBar.domNode.className;}), 100);
}