- {isOver &&
}
-
- {connectDragSource(
-
-
-
-
-
- )}
-
-
- {
- if (newName === property.getName())
- return;
-
- const projectScopedContainers = projectScopedContainersAccessor.get();
- const validatedNewName = getValidatedPropertyName(
- properties,
- projectScopedContainers,
- newName
- );
- onRenameProperty(
- property.getName(),
- validatedNewName
- );
- property.setName(validatedNewName);
-
- forceUpdate();
- onPropertiesUpdated &&
- onPropertiesUpdated();
- }}
- fullWidth
- />
-
-
- {
- if (value === 'Hidden') {
- setHidden(property, true);
- setDeprecated(property, false);
- setAdvanced(property, false);
- } else if (value === 'Deprecated') {
- setHidden(property, false);
- setDeprecated(property, true);
- setAdvanced(property, false);
- } else if (value === 'Advanced') {
- setHidden(property, false);
- setDeprecated(property, false);
- setAdvanced(property, true);
- } else if (value === 'Visible') {
- setHidden(property, false);
- setDeprecated(property, false);
- setAdvanced(property, false);
- }
- }}
- fullWidth
- >
-
-
-
-
-
-
-
-
-
-
- }
- buildMenuTemplate={(i18n: I18nType) => [
- {
- label: i18n._(t`Add a property below`),
- click: () => addPropertyAt(i + 1),
- },
- {
- label: i18n._(t`Delete`),
- click: () =>
- removeProperty(property.getName()),
- },
- {
- label: i18n._(t`Copy`),
- click: () => copyProperty(property),
- },
- {
- label: i18n._(t`Paste`),
- click: () =>
- pastePropertiesBefore(property),
- enabled: isClipboardContainingProperties,
- },
- {
- label: i18n._(t`Duplicate`),
- click: () =>
- duplicateProperty(property, i + 1),
- },
- { type: 'separator' },
- {
- label: i18n._(t`Move up`),
- click: () => moveProperty(i, i - 1),
- enabled: i - 1 >= 0,
- },
- {
- label: i18n._(t`Move down`),
- click: () => moveProperty(i, i + 1),
- enabled: i + 1 < properties.getCount(),
- },
- {
- label: i18n._(
- t`Generate expression and action`
- ),
- click: () => {
- gd.PropertyFunctionGenerator.generateBehaviorGetterAndSetter(
- project,
- extension,
- eventsBasedBehavior,
- property,
- !!isSceneProperties
- );
- onEventsFunctionsAdded();
- },
- enabled: gd.PropertyFunctionGenerator.canGenerateGetterAndSetter(
- eventsBasedBehavior,
- property
- ),
- },
- ...renderQuickCustomizationMenuItems({
- i18n,
- visibility: property.getQuickCustomizationVisibility(),
- onChangeVisibility: visibility => {
- property.setQuickCustomizationVisibility(
- visibility
- );
- forceUpdate();
- onPropertiesUpdated &&
- onPropertiesUpdated();
- },
- }),
- ]}
- />
-
-
-
-
-
- Type}
- value={property.getType()}
- onChange={(e, i, value: string) => {
- property.setType(value);
- if (value === 'Behavior') {
- property.setHidden(false);
- }
- if (value === 'Resource') {
- setExtraInfoString(
- property,
- 'json'
- );
- }
- forceUpdate();
- onPropertyTypeChanged(
- property.getName()
- );
- onPropertiesUpdated &&
- onPropertiesUpdated();
- }}
- fullWidth
- >
-
-
-
-
-
-
-
-
-
- {!isSceneProperties && (
-
- )}
-
- {property.getType() === 'Number' && (
- Measurement unit
- }
- value={property
- .getMeasurementUnit()
- .getName()}
- onChange={(e, i, value: string) => {
- property.setMeasurementUnit(
- gd.MeasurementUnit.getDefaultMeasurementUnitByName(
- value
- )
- );
- forceUpdate();
- onPropertiesUpdated &&
- onPropertiesUpdated();
- }}
- fullWidth
- >
- {mapFor(
- 0,
- gd.MeasurementUnit.getDefaultMeasurementUnitsCount(),
- i => {
- const measurementUnit = gd.MeasurementUnit.getDefaultMeasurementUnitAtIndex(
- i
- );
- const unitShortLabel = getMeasurementUnitShortLabel(
- measurementUnit
- );
- const label =
- measurementUnit.getLabel() +
- (unitShortLabel.length > 0
- ? ' — ' + unitShortLabel
- : '');
- return (
-
- );
- }
- )}
-
- )}
- {(property.getType() === 'String' ||
- property.getType() === 'Number' ||
- property.getType() ===
- 'ObjectAnimationName' ||
- property.getType() === 'KeyboardKey' ||
- property.getType() ===
- 'MultilineString') && (
- Default value
- }
- hintText={
- property.getType() === 'Number'
- ? '123'
- : 'ABC'
- }
- value={property.getValue()}
- onChange={newValue => {
- property.setValue(newValue);
- forceUpdate();
- onPropertiesUpdated &&
- onPropertiesUpdated();
- }}
- multiline={
- property.getType() ===
- 'MultilineString'
- }
- fullWidth
- />
- )}
- {property.getType() === 'Boolean' && (
- Default value
- }
- value={
- property.getValue() === 'true'
- ? 'true'
- : 'false'
- }
- onChange={(e, i, value) => {
- property.setValue(value);
- forceUpdate();
- onPropertiesUpdated &&
- onPropertiesUpdated();
- }}
- fullWidth
- >
-
-
-
- )}
- {property.getType() === 'Behavior' && (
- {
- // Change the type of the required behavior.
- const extraInfo = property.getExtraInfo();
- if (extraInfo.size() === 0) {
- extraInfo.push_back(newValue);
- } else {
- extraInfo.set(0, newValue);
- }
- const behaviorMetadata = gd.MetadataProvider.getBehaviorMetadata(
- project.getCurrentPlatform(),
- newValue
- );
- const projectScopedContainers = projectScopedContainersAccessor.get();
- const validatedNewName = getValidatedPropertyName(
- properties,
- projectScopedContainers,
- behaviorMetadata.getDefaultName()
- );
- property.setName(validatedNewName);
- property.setLabel(
- behaviorMetadata.getFullName()
- );
- forceUpdate();
- onPropertiesUpdated &&
- onPropertiesUpdated();
- }}
- disabled={false}
- />
- )}
- {property.getType() === 'Color' && (
- Default value
- }
- disableAlpha
- fullWidth
- color={property.getValue()}
- onChange={color => {
- property.setValue(color);
- forceUpdate();
- onPropertiesUpdated &&
- onPropertiesUpdated();
- }}
- />
- )}
- {property.getType() === 'Resource' && (
- 0
- ? property.getExtraInfo().at(0)
- : ''
- }
- onChange={(e, i, value) => {
- setExtraInfoString(property, value);
- forceUpdate();
- onPropertiesUpdated &&
- onPropertiesUpdated();
- }}
- fullWidth
- />
- )}
- {property.getType() === 'Choice' && (
- Default value
- }
- value={property.getValue()}
- onChange={(e, i, value) => {
- property.setValue(value);
- forceUpdate();
- onPropertiesUpdated &&
- onPropertiesUpdated();
- }}
- fullWidth
- >
- {getChoicesArray(property).map(
- (choice, index) => (
-
- )
- )}
-
- )}
-
- {property.getType() === 'Choice' && (
-
- )}
-
- Short label
- }
- translatableHintText={t`Make the purpose of the property easy to understand`}
- floatingLabelFixed
- value={property.getLabel()}
- onChange={text => {
- property.setLabel(text);
- forceUpdate();
- }}
- fullWidth
- />
- Group name
- }
- hintText={t`Leave it empty to use the default group`}
- fullWidth
- value={property.getGroup()}
- onChange={text => {
- property.setGroup(text);
- forceUpdate();
- onPropertiesUpdated &&
- onPropertiesUpdated();
- }}
- dataSource={getPropertyGroupNames().map(
- name => ({
- text: name,
- value: name,
- })
- )}
- openOnFocus={true}
- />
-
- Description
- }
- translatableHintText={t`Optionally, explain the purpose of the property in more details`}
- floatingLabelFixed
- value={property.getDescription()}
- onChange={text => {
- property.setDescription(text);
- forceUpdate();
- }}
- fullWidth
- />
-
-
-
- )
- }
-