diff --git a/src/mol-plugin/state/actions/basic.ts b/src/mol-plugin/state/actions/basic.ts index e9607ca09b3e91d8f62a8a853092c000d1e8d635..92da1e4c66371e2c3c19562c834a181b448ef4bf 100644 --- a/src/mol-plugin/state/actions/basic.ts +++ b/src/mol-plugin/state/actions/basic.ts @@ -30,20 +30,20 @@ const DownloadStructure = StateAction.build({ 'pdbe-updated': PD.Group({ id: PD.Text('1cbs', { label: 'Id' }), supportProps: PD.Boolean(false) - }, { isExpanded: true }), + }, { isFlat: true }), 'rcsb': PD.Group({ id: PD.Text('1tqn', { label: 'Id' }), supportProps: PD.Boolean(false) - }, { isExpanded: true }), + }, { isFlat: true }), 'bcif-static': PD.Group({ id: PD.Text('1tqn', { label: 'Id' }), supportProps: PD.Boolean(false) - }, { isExpanded: true }), + }, { isFlat: true }), 'url': PD.Group({ url: PD.Text(''), isBinary: PD.Boolean(false), supportProps: PD.Boolean(false) - }, { isExpanded: true }) + }, { isFlat: true }) }, { options: [ ['pdbe-updated', 'PDBe Updated'], diff --git a/src/mol-plugin/ui/controls/parameters.tsx b/src/mol-plugin/ui/controls/parameters.tsx index bfaff131f548ccdb73cd6add74e849067d3efc85..b1a8775ddc594562b5af5b5ce17c02734f81b485 100644 --- a/src/mol-plugin/ui/controls/parameters.tsx +++ b/src/mol-plugin/ui/controls/parameters.tsx @@ -284,6 +284,12 @@ export class GroupControl extends React.PureComponent<ParamProps<PD.Group<any>>, const params = this.props.param.params; const label = this.props.param.label || camelCaseToWords(this.props.name); + const controls = <ParameterControls params={params} onChange={this.onChangeParam} values={this.props.value} onEnter={this.props.onEnter} isDisabled={this.props.isDisabled} />; + + if (this.props.param.isFlat) { + return controls; + } + return <div className='msp-control-group-wrapper'> <div className='msp-control-group-header'> <button className='msp-btn msp-btn-block' onClick={this.toggleExpanded}> @@ -292,7 +298,7 @@ export class GroupControl extends React.PureComponent<ParamProps<PD.Group<any>>, </button> </div> {this.state.isExpanded && <div className='msp-control-offset' style={{ display: this.state.isExpanded ? 'block' : 'none' }}> - <ParameterControls params={params} onChange={this.onChangeParam} values={this.props.value} onEnter={this.props.onEnter} isDisabled={this.props.isDisabled} /> + {controls} </div> } </div> diff --git a/src/mol-util/param-definition.ts b/src/mol-util/param-definition.ts index 403fa613690465eb60d988359a5e94bcb13206a8..b618052cfe18649afff4fca1d3624f9195b2654d 100644 --- a/src/mol-util/param-definition.ts +++ b/src/mol-util/param-definition.ts @@ -141,11 +141,13 @@ export namespace ParamDefinition { export interface Group<T> extends Base<T> { type: 'group', params: Params, - isExpanded?: boolean + isExpanded?: boolean, + isFlat?: boolean } - export function Group<P extends Params>(params: P, info?: Info & { isExpanded?: boolean }): Group<Values<P>> { + export function Group<P extends Params>(params: P, info?: Info & { isExpanded?: boolean, isFlat?: boolean }): Group<Values<P>> { const ret = setInfo<Group<Values<P>>>({ type: 'group', defaultValue: getDefaultValues(params) as any, params }, info); if (info && info.isExpanded) ret.isExpanded = info.isExpanded; + if (info && info.isFlat) ret.isFlat = info.isFlat; return ret; }