/** * @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 */