diff --git a/src/mol-plugin/ui/state-tree.tsx b/src/mol-plugin/ui/state-tree.tsx index 87123f35abcb6f93a966933e488c5815939f8328..59a5fc8c260476607d79dfe8a2bac39fd5ff1596 100644 --- a/src/mol-plugin/ui/state-tree.tsx +++ b/src/mol-plugin/ui/state-tree.tsx @@ -177,10 +177,6 @@ class StateTreeNodeLabel extends PluginComponent<{ nodeRef: string, state: State const children = this.props.state.tree.children.get(this.props.nodeRef); const cellState = this.props.state.cellStates.get(this.props.nodeRef); - const remove = <button onClick={this.remove} className='msp-btn msp-btn-link msp-tree-remove-button'> - <span className='msp-icon msp-icon-remove' /> - </button>; - const visibility = <button onClick={this.toggleVisible} className={`msp-btn msp-btn-link msp-tree-visibility${cellState.isHidden ? ' msp-tree-visibility-hidden' : ''}`}> <span className='msp-icon msp-icon-visual-visibility' /> </button>; @@ -190,7 +186,9 @@ class StateTreeNodeLabel extends PluginComponent<{ nodeRef: string, state: State {children.size > 0 && <button onClick={this.toggleExpanded} className='msp-btn msp-btn-link msp-tree-toggle-exp-button'> <span className={`msp-icon msp-icon-${cellState.isCollapsed ? 'expand' : 'collapse'}`} /> </button>} - {remove}{visibility} + {!cell.transform.props.isLocked && <button onClick={this.remove} className='msp-btn msp-btn-link msp-tree-remove-button'> + <span className='msp-icon msp-icon-remove' /> + </button>}{visibility} </div> } } \ No newline at end of file diff --git a/src/mol-state/transform.ts b/src/mol-state/transform.ts index 86edad5a9e06d2fd28e0ed74c76b1a4085c046a6..dea70d4da12f4fa6ed617773dc26aa4bb13a331b 100644 --- a/src/mol-state/transform.ts +++ b/src/mol-state/transform.ts @@ -25,7 +25,9 @@ export namespace Transform { export interface Props { tag?: string isGhost?: boolean, - isBinding?: boolean + isBinding?: boolean, + // determine if the corresponding cell can be deleted by the user. + isLocked?: boolean } export interface Options {