/** * @class Ext.BreadcrumbBar * @extend Ext.toolbar * @xtype breadcrumbbar * * * A toolbar that displays hierarchical data from a {@link Ext.data.TreeStore TreeStore} * as a trail of breadcrumb buttons. Each button represents a node in the store. A click * on a button will "select" that node in the tree. Non-leaf nodes will display their * child nodes on a dropdown menu of the corresponding button in the breadcrumb trail, * and a click on an item in the menu will trigger selection of the corresponding child * node. * * The selection can be set programmatically using {@link #setSelection}, or retrieved * using {@link #getSelection}. */ /** * @cfg {String} buttonUI * Button UI to use for breadcrumb items */ /** * @cfg {String} displayField * The name of the field in the data model to display in the navigation items of * this breadcrumb toolbar */ /** * @cfg {Boolean} showIcons * * Controls whether or not icons of tree nodes are displayed in the breadcrumb * buttons. There are 3 possible values for this config: * * 1. unspecified (`null`) - the default value. In this mode only icons that are * specified in the tree data using ({@link Ext.data.NodeInterface#icon icon} * or {@link Ext.data.NodeInterface#iconCls iconCls} will be displayed, but the * default "folder" and "leaf" icons will not be displayed. * * 2. `true` - Icons specified in the tree data will be displayed, and the default * "folder" and "leaf" icons will be displayed for nodes that do not specify * an `icon` or `iconCls`. * * 3. `false` - No icons will be displayed in the breadcrumb buttons, only text. */ /** * @cfg {Boolean} showMenuIcons * * Controls whether or not icons of tree nodes are displayed in the breadcrumb * menu items. There are 3 possible values for this config: * * 1. unspecified (`null`) - the default value. In this mode only icons that are * specified in the tree data using ({@link Ext.data.NodeInterface#icon icon} * or {@link Ext.data.NodeInterface#iconCls iconCls} will be displayed, but the * default "folder" and "leaf" icons will not be displayed. * * 2. `true` - Icons specified in the tree data will be displayed, and the default * "folder" and "leaf" icons will be displayed for nodes that do not specify * an `icon` or `iconCls`. * * 3. `false` - No icons will be displayed on the breadcrumb menu items, only text. */ /** * @cfg {Ext.data.TreeStore} store * The TreeStore that this breadcrumb toolbar should use as its data source */ /** * @cfg {Boolean} useSplitButtons * `false` to use regular {@link Ext.Button Button}s instead of {@link * Ext.SplitButton Split Buttons}. When `true`, a click on the body of a button * will navigate to the specified node, and a click on the arrow will show a menu * containing the the child nodes. When `false`, the only mode of navigation is * the menu, since a click anywhere on the button will show the menu. */ /** * @cfg {Ext.data.TreeModel/String} selection * The selected node, or `"root"` to select the root node * @accessor */ /** * @cfg {Ext.menu.Menu/Boolean/Object} menu * A menu or menu configuration. This can be a reference to a menu instance, a menu * config object or the `xtype` alias of a {@link Ext.menu.Menu menu}-derived class. */ /** * @cfg {Object} buttonConfig * Button config to be added to button instance */ /** * @cfg {String} btnCls * The CSS class to add to this buttons widget element */ /*** @property {Boolean} isBreadcrumb* The value `true` to identify an object as an instance of this or derived class.* @readonly*/ /*** @cfg publishes* @inheritdoc*/ /*** @cfg twoWayBindable* @inheritdoc*/ /*** @event selectionchange* Fires when the selected node changes. At render time, this event will fire* indicating that the configured {@link #selection} has been selected.* @param {Ext.BreadcrumbBar} this * @param {Ext.data.TreeModel} node The selected node.* @param {Ext.data.TreeModel} prevNode The previously selected node.*/ /*** @event change* Fires when the user changes the selected record. In contrast to the * {@link #selectionchange} event, this does* *not* fire at render time, only in response to user activity.* @param {Ext.BreadcrumbBar} this * @param {Ext.data.TreeModel} node The selected node.* @param {Ext.data.TreeModel} prevNode The previously selected node.*/ /*** Internal cache of buttons that are re-used as the items of this container* as navigation occurs.* @property {Ext.SplitButton[]/Ext.Button[]} buttons* @private*/ /*** @method getSelection* Returns the currently selected {@link Ext.data.TreeModel node}.* @return {Ext.data.TreeModel} node The selected node (or null if there is no* selection).*/ /*** @method setSelection* Selects the passed {@link Ext.data.TreeModel node} in the breadcrumb component.* @param {Ext.data.TreeModel} node The node in the breadcrumb {@link #store} to* select as the active node.* @return {Ext.BreadcrumbBar} this The breadcrumb component*/ /*** Update button menu* If menu is null or false or there are no child nodes * then no need to display menu* @param {Ext.SplitButton[]} buttons Internal cache of buttons* @param {Boolean} refreshMenuItems `true` to reset menu items* @param {Boolean} forceCreate `true` to recreate menu on button*/ /*** Handles a click on a breadcrumb button* @private* @param {Ext.SplitButton} button * @param {Ext.event.Event} e */ /*** Handles a click on a button menu* @private* @param {Ext.menu.Menu} menu * @param {Ext.menu.Item} item * @param {Ext.event.Event} e */ /*** Returns button menu items* @private* @param {String} nodeId */ /*** Remove all breadcrumb buttons*/ /*** Handle breadcrumb store data update * such as (`add`, `remove`, `update`, `refresh`).* Checks with button text and update button arrow*/ /*** Handle store `update` events*/ /*** Handler store `removeAll` method*/