Menu

SDK Property Metadata

SourceForge Editorial Staff

SDK Property Metadata

Problem Description

For better tooling support, we would like to make two improvements to the metadata on property & style declarations:

  • To break up large listings of properties on an item, need to grow the set standardized categories that properties and styles can be bucketed into.
  • To provide validation of numeric input, need new metadata to specify the allowed numeric range of int and Number properties.

Decision

Complete this section when a decision has been made and approved

h3.

Decision Criteria

What factors should be accounted for in a reasonable solution to the problem?

Proposed Solution(s):

Categories

  • Add two new values for the category="" metadata attribute:
    • "Text" -- font/paragraph styles, text color, etc.
    • "Layout" -- settings that affect how a component lays out its children (padding/gap/etc.) or how a component is laid out by its parent (constraints, etc.)
  • Start using the category="" attribute as applicable on [Style] metadata too, not just [Inspectable] as today.

Numeric range
There are three proposals:

Syntax A:

  • minValue="N" -- value must be >= N
  • minValueExclusive="N" -- value must be > N
  • maxValue="N" -- value must be <= N
  • maxValueExlusive="N" -- value must be < N

Syntax B:

  • minValue="N" -- value must be >= N
  • minValue=">N" -- value must be > N
  • maxValue="N" -- value must be <= N
  • maxValue="<N" -- value must be < N

Syntax C:

  • range="[N,M]" -- value must be >= N, <= M
  • range="(N,M)" -- value must be > N, < M
  • range="(N,M]" -- value must be > N, <= M
  • range="(N" -- value must be > N
  • etc.

Notes:

  • N (or M) is any number -- for int properties it must be an int; for Number properties it must be a Number
  • In syntax A or B, if both min or both max attributes are specified, tooling's numeric validation behavior is undefined.
  • If the range is inverted (min > max), tooling's numeric validation behavior is undefined.

Categories
See above.

Numeric range
Recommend syntax A. This has the least "microsyntax"iness to it.


Related

Wiki: Flex 4

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.