From ea419c68ae1fde6dba9fcf2f12eacd48eda67eb8 Mon Sep 17 00:00:00 2001 From: Alexander Rose <alex.rose@rcsb.org> Date: Mon, 17 Jun 2019 15:41:03 -0700 Subject: [PATCH] removed old unused ui code --- src/mol-app/component/parameter/boolean.tsx | 39 --------- src/mol-app/component/parameter/color.tsx | 43 ---------- .../component/parameter/multi-select.tsx | 45 ----------- src/mol-app/component/parameter/number.tsx | 45 ----------- src/mol-app/component/parameter/select.tsx | 42 ---------- src/mol-app/component/parameter/text.tsx | 41 ---------- src/mol-app/component/parameters.tsx | 64 --------------- src/mol-app/component/sequence.tsx | 81 ------------------- 8 files changed, 400 deletions(-) delete mode 100644 src/mol-app/component/parameter/boolean.tsx delete mode 100644 src/mol-app/component/parameter/color.tsx delete mode 100644 src/mol-app/component/parameter/multi-select.tsx delete mode 100644 src/mol-app/component/parameter/number.tsx delete mode 100644 src/mol-app/component/parameter/select.tsx delete mode 100644 src/mol-app/component/parameter/text.tsx delete mode 100644 src/mol-app/component/parameters.tsx delete mode 100644 src/mol-app/component/sequence.tsx diff --git a/src/mol-app/component/parameter/boolean.tsx b/src/mol-app/component/parameter/boolean.tsx deleted file mode 100644 index bb93409e4..000000000 --- a/src/mol-app/component/parameter/boolean.tsx +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. - * - * @author Alexander Rose <alexander.rose@weirdbyte.de> - */ - -import * as React from 'react' -import { ParamDefinition as PD } from '../../../mol-util/param-definition'; - -export interface BooleanParamComponentProps { - label: string - param: PD.BooleanParam - value: boolean - onChange(v: boolean): void -} - -export interface BooleanParamComponentState { - value: boolean -} - -export class BooleanParamComponent extends React.Component<BooleanParamComponentProps, BooleanParamComponentState> { - state = { - value: this.props.value - } - - onChange(value: boolean) { - this.setState({ value }) - this.props.onChange(value) - } - - render() { - return <div> - <span>{this.props.label} </span> - <button onClick={e => this.onChange(!this.state.value) }> - {this.state.value ? 'Off' : 'On'} - </button> - </div>; - } -} \ No newline at end of file diff --git a/src/mol-app/component/parameter/color.tsx b/src/mol-app/component/parameter/color.tsx deleted file mode 100644 index 9835fa360..000000000 --- a/src/mol-app/component/parameter/color.tsx +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. - * - * @author Alexander Rose <alexander.rose@weirdbyte.de> - */ - -import * as React from 'react' -import { ParamDefinition as PD } from '../../../mol-util/param-definition'; -import { ColorNames } from '../../../mol-util/color/tables'; -import { Color } from '../../../mol-util/color'; - -export interface ColorParamComponentProps { - label: string - param: PD.Color - value: Color - onChange(v: Color): void -} - -export interface ColorParamComponentState { - value: Color -} - -export class ColorParamComponent extends React.Component<ColorParamComponentProps, ColorParamComponentState> { - state = { - value: this.props.value - } - - onChange(value: Color) { - this.setState({ value }) - this.props.onChange(value) - } - - render() { - return <div> - <span>{this.props.label} </span> - <select value={this.state.value} onChange={e => this.onChange(Color(parseInt(e.target.value))) }> - {Object.keys(ColorNames).map(name => { - return <option key={name} value={(ColorNames as { [k: string]: Color})[name]}>{name}</option> - })} - </select> - </div>; - } -} \ No newline at end of file diff --git a/src/mol-app/component/parameter/multi-select.tsx b/src/mol-app/component/parameter/multi-select.tsx deleted file mode 100644 index 8ce2406b6..000000000 --- a/src/mol-app/component/parameter/multi-select.tsx +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. - * - * @author Alexander Rose <alexander.rose@weirdbyte.de> - */ - -import * as React from 'react' -import { ParamDefinition as PD } from '../../../mol-util/param-definition'; - -export interface MultiSelectParamComponentProps<T extends string> { - label: string - param: PD.MultiSelect<T> - value: T[] - onChange(v: T[]): void -} - -export interface MultiSelectParamComponentState<T extends string> { - value: T[] -} - -export class MultiSelectParamComponent<T extends string> extends React.Component<MultiSelectParamComponentProps<T>, MultiSelectParamComponentState<T>> { - state = { - value: this.props.value - } - - onChange(value: T[]) { - this.setState({ value }) - this.props.onChange(value) - } - - render() { - return <div> - <span>{this.props.label} </span> - <select multiple value={this.state.value} onChange={e => { - const value = Array.from(e.target.options).filter(option => option.selected).map(option => option.value) - this.onChange(value as T[]) - }}> - {this.props.param.options.map(v => { - const [value, label] = v - return <option key={label} value={value}>{label}</option> - })} - </select> - </div>; - } -} \ No newline at end of file diff --git a/src/mol-app/component/parameter/number.tsx b/src/mol-app/component/parameter/number.tsx deleted file mode 100644 index 493f33957..000000000 --- a/src/mol-app/component/parameter/number.tsx +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. - * - * @author Alexander Rose <alexander.rose@weirdbyte.de> - */ - -import * as React from 'react' -import { ParamDefinition as PD } from '../../../mol-util/param-definition'; - -export interface NumberParamComponentProps { - label: string - param: PD.Numeric - value: number - onChange(v: number): void -} - -export interface NumberParamComponentState { - value: number -} - -export class NumberParamComponent extends React.Component<NumberParamComponentProps, NumberParamComponentState> { - state = { - value: this.props.value - } - - onChange(valueStr: string) { - const value = this.props.param.step && Number.isInteger(this.props.param.step) ? parseInt(valueStr) : parseFloat(valueStr) - this.setState({ value }) - this.props.onChange(value) - } - - render() { - return <div> - <span>{this.props.label} </span> - <input type='range' - value={this.state.value} - min={this.props.param.min} - max={this.props.param.max} - step={this.props.param.step} - onChange={e => this.onChange(e.currentTarget.value)} - > - </input> - </div>; - } -} \ No newline at end of file diff --git a/src/mol-app/component/parameter/select.tsx b/src/mol-app/component/parameter/select.tsx deleted file mode 100644 index 6299292c8..000000000 --- a/src/mol-app/component/parameter/select.tsx +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. - * - * @author Alexander Rose <alexander.rose@weirdbyte.de> - */ - -import * as React from 'react' -import { ParamDefinition as PD } from '../../../mol-util/param-definition'; - -export interface SelectParamComponentProps<T extends string> { - label: string - param: PD.Select<T> - value: T - onChange(v: T): void -} - -export interface SelectParamComponentState<T extends string> { - value: T -} - -export class SelectParamComponent<T extends string> extends React.Component<SelectParamComponentProps<T>, SelectParamComponentState<T>> { - state = { - value: this.props.value - } - - onChange(value: T) { - this.setState({ value }) - this.props.onChange(value) - } - - render() { - return <div> - <span>{this.props.label} </span> - <select value={this.state.value} onChange={e => this.onChange(e.target.value as T) }> - {this.props.param.options.map(v => { - const [value, label] = v - return <option key={label} value={value}>{label}</option> - })} - </select> - </div>; - } -} \ No newline at end of file diff --git a/src/mol-app/component/parameter/text.tsx b/src/mol-app/component/parameter/text.tsx deleted file mode 100644 index 5a577b1cf..000000000 --- a/src/mol-app/component/parameter/text.tsx +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. - * - * @author Alexander Rose <alexander.rose@weirdbyte.de> - */ - -import * as React from 'react' -import { ParamDefinition as PD } from '../../../mol-util/param-definition'; - -export interface TextParamComponentProps { - label: string - param: PD.Text - value: string - onChange(v: string): void -} - -export interface TextParamComponentState { - value: string -} - -export class TextParamComponent extends React.Component<TextParamComponentProps, TextParamComponentState> { - state = { - value: this.props.value - } - - onChange(value: string) { - this.setState({ value }) - this.props.onChange(value) - } - - render() { - return <div> - <span>{this.props.label} </span> - <input type='text' - value={this.state.value} - onChange={e => this.onChange(e.currentTarget.value)} - > - </input> - </div>; - } -} \ No newline at end of file diff --git a/src/mol-app/component/parameters.tsx b/src/mol-app/component/parameters.tsx deleted file mode 100644 index 7370392d7..000000000 --- a/src/mol-app/component/parameters.tsx +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. - * - * @author Alexander Rose <alexander.rose@weirdbyte.de> - */ - -import * as React from 'react' -import { ParamDefinition as PD } from '../../mol-util/param-definition'; -import { BooleanParamComponent } from './parameter/boolean'; -import { NumberParamComponent } from './parameter/number'; -import { SelectParamComponent } from './parameter/select'; -import { MultiSelectParamComponent } from './parameter/multi-select'; -import { TextParamComponent } from './parameter/text'; -import { ColorParamComponent } from './parameter/color'; -import { camelCaseToWords } from '../../mol-util/string'; - -interface ParametersProps<P extends PD.Params> { - params: P - values: { [k in keyof P]: P[k]['defaultValue'] } - onChange<K extends keyof P>(k: K, v: P[K]['defaultValue']): void -} - -type ParametersState = {} - -function getParamComponent<P extends PD.Any>(label: string, param: PD.Any, value: P['defaultValue'], onChange: (v: P['defaultValue']) => void) { - switch (param.type) { - case 'boolean': - return <BooleanParamComponent label={label} param={param} value={value} onChange={onChange} /> - case 'number': - return <NumberParamComponent label={label} param={param} value={value} onChange={onChange} /> - case 'select': - return <SelectParamComponent label={label} param={param} value={value} onChange={onChange} /> - case 'multi-select': - return <MultiSelectParamComponent label={label} param={param} value={value} onChange={onChange} /> - case 'text': - return <TextParamComponent label={label} param={param} value={value} onChange={onChange} /> - case 'color': - return <ColorParamComponent label={label} param={param} value={value} onChange={onChange} /> - } - return '' -} - -function getLabel(name: string, param: PD.Base<any>) { - return param.label === undefined ? camelCaseToWords(name) : param.label -} - -export class ParametersComponent<P extends PD.Params> extends React.Component<ParametersProps<P>, ParametersState> { - onChange(k: string, value: any) { - this.props.onChange(k, value) - } - - render() { - return <div style={{ width: '100%' }}> - { Object.keys(this.props.params).map(k => { - const param = this.props.params[k] - const value = this.props.values[k] - const label = getLabel(k, param) - return <div key={k}> - {getParamComponent(label, param, value, v => this.onChange(k, v))} - </div> - })} - </div>; - } -} \ No newline at end of file diff --git a/src/mol-app/component/sequence.tsx b/src/mol-app/component/sequence.tsx deleted file mode 100644 index f90039eb3..000000000 --- a/src/mol-app/component/sequence.tsx +++ /dev/null @@ -1,81 +0,0 @@ -// /** -// * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. -// * -// * @author David Sehnal <david.sehnal@gmail.com> -// */ - -// import * as React from 'react' -// import { Structure, StructureSequence, Queries, StructureSelection, StructureProperties, StructureQuery } from 'mol-model/structure'; -// import { EmptyLoci } from 'mol-model/loci'; - -// export class SequenceView extends View<SequenceViewController, {}, {}> { -// render() { -// const s = this.controller.latestState.structure; -// if (!s) return <div className='molstar-sequence-view-wrap'>No structure available.</div>; - -// const seqs = s.models[0].sequence.sequences; -// return <div className='molstar-sequence-view-wrap'> -// {seqs.map((seq, i) => <EntitySequence key={i} ctx={this.controller.context} seq={seq} structure={s} /> )} -// </div>; -// } -// } - -// function createQuery(entityId: string, label_seq_id: number) { -// return Queries.generators.atoms({ -// entityTest: ctx => StructureProperties.entity.id(ctx.element) === entityId, -// residueTest: ctx => StructureProperties.residue.label_seq_id(ctx.element) === label_seq_id -// }); -// } - -// // TODO: this is really ineffective and should be done using a canvas. -// class EntitySequence extends React.Component<{ ctx: Context, seq: StructureSequence.Entity, structure: Structure }> { - -// raiseInteractityEvent(seqId?: number) { -// if (typeof seqId === 'undefined') { -// InteractivityEvents.HighlightLoci.dispatch(this.props.ctx, EmptyLoci); -// return; -// } - -// const query = createQuery(this.props.seq.entityId, seqId); -// const loci = StructureSelection.toLoci(StructureQuery.run(query, this.props.structure)); -// if (loci.elements.length === 0) InteractivityEvents.HighlightLoci.dispatch(this.props.ctx, EmptyLoci); -// else InteractivityEvents.HighlightLoci.dispatch(this.props.ctx, loci); -// } - - -// render() { -// const { ctx, seq } = this.props; -// const { offset, sequence } = seq.sequence; - -// const elems: JSX.Element[] = []; -// for (let i = 0, _i = sequence.length; i < _i; i++) { -// elems[elems.length] = <ResidueView ctx={ctx} seqId={offset + i} letter={sequence[i]} parent={this} key={i} />; -// } - -// return <div style={{ wordWrap: 'break-word' }}> -// <span style={{ fontWeight: 'bold' }}>{this.props.seq.entityId}:{offset} </span> -// {elems} -// </div>; -// } -// } - -// class ResidueView extends React.Component<{ ctx: Context, seqId: number, letter: string, parent: EntitySequence }, { isHighlighted: boolean }> { -// state = { isHighlighted: false } - -// mouseEnter = () => { -// this.setState({ isHighlighted: true }); -// this.props.parent.raiseInteractityEvent(this.props.seqId); -// } - -// mouseLeave = () => { -// this.setState({ isHighlighted: false }); -// this.props.parent.raiseInteractityEvent(); -// } - -// render() { -// return <span onMouseEnter={this.mouseEnter} onMouseLeave={this.mouseLeave} -// style={{ cursor: 'pointer', backgroundColor: this.state.isHighlighted ? 'yellow' : void 0 }}> -// {this.props.letter} -// </span>; -// } -// } \ No newline at end of file -- GitLab