UNPKG

awv3

Version:
71 lines (62 loc) 2.4 kB
import { actions as connectionActions } from '../../session/store/connections'; import Plugin from '../../session/plugin'; import Dimension from '../dimension/'; import { buildFeaturePath } from '../../session/helpers'; import { Spacer, Group, Button, Input, Label, Selection, Checkbox, Dropdown } from '../../session/elements'; import React, { Component, connect } from '../../session/renderer'; const resources = ['isometric'].reduce( (prev, item) => ({ ...prev, [item]: require('!!url-loader!awv3-icons/32x32/' + item + '.png') }), {}, ); class Member extends Component { constructor(props) { super(props); const item = props.items[props.key]; this.state = { value: item.expression || item.value }; } update = event => { if (event.key === 'Enter') { const path = buildFeaturePath(this.plugin.tree, this.plugin.feature); const command = `${path}.OBJ_SetMemberExpr("${this.props.key}","${this.state .value}");_C.GlobaleFunktionen.UseOnStartRecalc(_O);`; console.log(command); this.plugin.connection.execute(command); } }; render({ items, key }, { value }, set) { const item = items[key]; return <Input name={key} value={value} onValue={value => set({ value })} onLastEvent={this.update} />; } } @connect((state, props) => { let connection = state.connections[state.globals.activeConnection]; return { members: connection.tree[props.id].members }; }) class Members extends Component { render({ members, filter }) { let keys = Object.keys(members).filter(member => !filter.length || filter.indexOf(member) != -1); return ( <Group format={Group.Format.Table}> {keys.map(key => <Member items={members} key={key} />)} </Group> ); } } @connect((state, props) => ({ feature: state.plugins[props.id].feature })) class Base extends Component { render({ filter, feature }) { return ( <Group> <Members id={feature} filter={filter} /> </Group> ); } } export default class Feature extends Plugin { constructor(session, args) { super(session, { type: 'Feature', icon: 'feature', filter: [], resources, ...args }); } render() { return <Base id={this.id} filter={this.filter} />; } }