External module "ext/CvViewMenu"
Variables
CvDropdownViewMenu
Cv
DropdownViewMenu: ClassicComponentClass<CvViewMenuProps> = React.createClass<CvViewMenuProps, CvViewMenuState>({mixins: [CvBaseMixin, CvViewMenuBase],componentWillMount: function() {if(!this._checkVisibility()) {this.props.viewLoadedListener && this.props.viewLoadedListener('no_view_support');}},componentDidMount: function () {if(this.state.visible) {this.refresh();}},componentWillReceiveProps: function (nextProps, nextContext) {if(this._checkVisibility(nextProps, nextContext)) {this.refresh(nextProps, nextContext);}},getDefaultProps: function () {return {paneContext: null,actionListeners: [],navigationListeners: [],navTarget: null,viewDescs: [],openLeft: false,viewSelectionListener: null,viewLoadedListener: null,selectedViewId: null}},getInitialState: function() {return {selectedViewId: null, visible:true}},render: function () {if(this.state.visible) {const viewDescs:Array<ViewDesc> = this.viewDescs();const selectedViewId:ViewId = this.state.selectedViewId;let buttonText = 'Select View';if(selectedViewId && selectedViewId.value) {const selectedViewDesc:ViewDesc = ArrayUtil.find<ViewDesc>(this.viewDescs(), (viewDesc:ViewDesc)=>{return selectedViewId.value == viewDesc.viewId;});if(selectedViewDesc) {buttonText = selectedViewDesc.name;}}const itemProps:CvViewDescProps = {paneContext: this.props.paneContext,actionListeners: this.props.actionListeners,navigationListeners: this.props.navigationListeners,navTarget: this.props.navTarget,catavolt: this.props.catavolt,eventRegistry: this.props.eventRegistry};let viewItemClassName = "dropdown-menu cv-dropdown-menu";if (this.props.openLeft) viewItemClassName += ' dropdown-menu-right';const itemRenderer = (cvContext:CvContext, callback:CvViewDescCallback)=> {const viewDesc:ViewDesc = cvContext.scopeCtx.scopeObj;return <li onClick={()=>{ if(selectedViewId && (selectedViewId.value != viewDesc.viewId)) {callback.openView((success:any, error?:any)=>{if(!error){this.setState({selectedViewId: new ViewId(viewDesc.viewId)});this.props.viewSelectionListener && this.props.viewSelectionListener(viewDesc.viewId);}});}}}><a className="cv-target">{viewDesc.name}</a></li>};return (<span className="dropdown cv-view-dropdown"><button className="btn btn-xs" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">{buttonText} <span className="caret"/></button><ul className={viewItemClassName}>{viewDescs.map((viewDesc:ViewDesc)=>{return <CvViewDesc {...itemProps} viewDesc={viewDesc} renderer={itemRenderer} key={viewDesc.viewId}/>})}</ul></span>);} else {return null;}},_checkVisibility: function(nextProps, nextContext):boolean {const viewDescs:Array<ViewDesc> = this.viewDescs(nextProps, nextContext);if(!this.catavolt().isFeatureSetAvailable("View_Support") || !viewDescs || viewDescs.length < 2) {if(this.state.visible) {this.setState({visible: false});}return false;} else {if(!this.state.visible) {this.setState({visible:true});}return true;}}})
Object literals
CvViewMenuBase
CvViewMenuBase: object
paneContext
- paneContext(nextProps: any, nextContext: any): PaneContext
-
Parameters
-
nextProps: any
-
nextContext: any
Returns PaneContext
refresh
- refresh(nextProps: any, nextContext: any): void
-
Parameters
-
nextProps: any
-
nextContext: any
Returns void
viewDescs
- viewDescs(nextProps: any, nextContext: any): Array<ViewDesc>
-
Parameters
-
nextProps: any
-
nextContext: any
Returns Array<ViewDesc>