From d288adb7f7594d89520572d02cb374f3c8ec1df9 Mon Sep 17 00:00:00 2001 From: Val Erastov Date: Sun, 26 Sep 2021 02:10:21 -0700 Subject: [PATCH] change enum definition --- .../examples/features/occ_bottle/index.ts | 4 ++-- .../modeler/features/fillet_tool/index.ts | 19 +++++++++++----- .../modeler/features/hole_tool/index.ts | 4 ++-- web/app/cad/icons/DeclarativeIcon.tsx | 2 +- web/app/cad/mdf/generateForm.tsx | 22 +++++++++---------- web/app/cad/mdf/mdf.ts | 7 ++++-- 6 files changed, 35 insertions(+), 23 deletions(-) diff --git a/modules/workbenches/examples/features/occ_bottle/index.ts b/modules/workbenches/examples/features/occ_bottle/index.ts index 4c982053..45a092d7 100644 --- a/modules/workbenches/examples/features/occ_bottle/index.ts +++ b/modules/workbenches/examples/features/occ_bottle/index.ts @@ -33,10 +33,10 @@ export default { defaultValue: 150 }, color: { - type: 'enum', + type: 'string', defaultValue: "red", label: 'Color', - options: [ + enum: [ { label: 'Red', value: 'red' diff --git a/modules/workbenches/modeler/features/fillet_tool/index.ts b/modules/workbenches/modeler/features/fillet_tool/index.ts index 76bc0419..06a9c6a3 100644 --- a/modules/workbenches/modeler/features/fillet_tool/index.ts +++ b/modules/workbenches/modeler/features/fillet_tool/index.ts @@ -25,13 +25,22 @@ export default { paramsInfo: ({ sizeA, }) => `(${r(sizeA)} })`, schema: { edgeOperationType: { - type: 'TextField', + type: 'string', defaultValue: "FILLET", label: 'Operation Type', - children: [ - "Fillet", - "Champher", - "2 Sided Champher", + enum: [ + { + label: "Fillet", + value: "FILLET" + }, + { + label: "Champher", + value: "CHAMPHER" + }, + { + label: "2 Sided Champher", + value: "TWO_SIDED_CHAMPHER" + } ], }, diff --git a/modules/workbenches/modeler/features/hole_tool/index.ts b/modules/workbenches/modeler/features/hole_tool/index.ts index 75c3f9de..ac8bc3b1 100644 --- a/modules/workbenches/modeler/features/hole_tool/index.ts +++ b/modules/workbenches/modeler/features/hole_tool/index.ts @@ -16,10 +16,10 @@ export default { paramsInfo: ({ diameter, depth, counterBoreDiameter, counterBoreDepth, countersinkDiameter, countersinkAngle, holeType, }) => `(${r(depth)} ${r(counterBoreDiameter)}) ${r(counterBoreDepth)})`, schema: { holeType: { - type: 'enum', + type: 'string', defaultValue: "counterbore", label: 'HoleType', - options: [ + enum: [ { label: 'Counterbore', value: 'counterbore' diff --git a/web/app/cad/icons/DeclarativeIcon.tsx b/web/app/cad/icons/DeclarativeIcon.tsx index be66bf91..65876130 100644 --- a/web/app/cad/icons/DeclarativeIcon.tsx +++ b/web/app/cad/icons/DeclarativeIcon.tsx @@ -47,7 +47,7 @@ function Icon(props: { } -function getSizeInPx(sizeName: IconSize): number { +export function getSizeInPx(sizeName: IconSize): number { switch (sizeName) { case 'small': return 16; case 'medium': return 24; diff --git a/web/app/cad/mdf/generateForm.tsx b/web/app/cad/mdf/generateForm.tsx index 8a46c0c7..8a7d9e9f 100644 --- a/web/app/cad/mdf/generateForm.tsx +++ b/web/app/cad/mdf/generateForm.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { ComboBoxOption } from 'ui/components/controls/ComboBoxControl'; import Entity from '../craft/wizard/components/form/Entity'; -import { CheckboxField, NumberField, ComboBoxField, TextField} from '../craft/wizard/components/form/Fields'; +import { CheckboxField, NumberField, ComboBoxField, TextField } from '../craft/wizard/components/form/Fields'; import { Group } from '../craft/wizard/components/form/Form'; import { OperationSchema, SchemaField } from './mdf'; @@ -16,16 +16,18 @@ export function generateForm(schema: OperationSchema) { if (fieldDef.type === 'number') { return - } else if (fieldDef.type === 'TextField') { - return ; + } else if (fieldDef.type === 'string') { + if (fieldDef.enum) { + return + {fieldDef.enum.map(opt => + {opt.label} + )} + + } else { + return ; + } } else if (['face', 'edge', 'sketchObject', 'datumAxis'].includes(fieldDef.type)) { return ; - } else if (fieldDef.type === 'enum') { - return - {fieldDef.options.map(opt => - {opt.label} - )} - } else if (fieldDef.type === 'boolean') { return ; } else { @@ -35,6 +37,4 @@ export function generateForm(schema: OperationSchema) { })} ; }; - - } \ No newline at end of file diff --git a/web/app/cad/mdf/mdf.ts b/web/app/cad/mdf/mdf.ts index 6ff8ad7f..e73f4d18 100644 --- a/web/app/cad/mdf/mdf.ts +++ b/web/app/cad/mdf/mdf.ts @@ -25,8 +25,11 @@ export type OperationSchema = { }; export interface SchemaField { - type: 'number' | 'face' | 'datumAxis' | 'edge' | 'sketchObject' | 'boolean' | 'enum' - options: string[] | number[], + type: 'number' | 'boolean' | 'string' | 'face' | 'datumAxis' | 'edge' | 'sketchObject', + enum?: { + value: string; + label: string; + }[]; defaultValue: Coercable, optional: boolean, label?: string