$

$ is a global helper function that may be used to create instances of WidgetCollection, to generate strings from JSX expressions, or to access specific NativeObject instances for debugging purposes.

Examples

JSX

Group widgets in a WidgetCollection:

contentView.append(
  <$>
    <TextView/>
    <Button/>
    <CheckBox/>
  </$>
);

Create a markup string:

const str = (
  <$>
    This is <b>some</b> text
    across multiple lines
  </$>
);
contentView.append(<TextView>{str}</TextView>);

Same as:

contentView.append(
  <TextView>
    This is <b>some</b> text
    across multiple lines
  </TextView>
);

Obtaining a widget reference:

contentView.append(
  <Composite>
    <TextView>Hello World</TextView>
  </Composite>
);

const textView = $(TextView).first();
console.log(textView === contentView.find(TextView).first()); // true

TypeScript/JSX

Create markup string, but avoid implicit any type:

const str: string = (
  <$>
    This is <b>some</b> text
    across multiple lines
  </$>
);

Interactive Console

Obtain any NativeObject instance by cid:

>> console.dirxml(tabris.contentView)
<ContentView cid='$3' bounds='{left: 0, top: 0, width: 768, height: 1004}'>
  <Stack cid='$31' bounds='{left: 0, top: 248, width: 768, height: 207}' alignment='stretchX'>
    <CheckBox cid='$24' bounds='{left: 0, top: 0, width: 736, height: 25}' text='Tint background' checked='false'/>
    <CheckBox cid='$25' bounds='{left: 0, top: 25, width: 736, height: 25}' text='Tint textColor' checked='false'/>
  </Stack>
</ContentView>
<- undefined
>> $(24)
<- CheckBox[cid="$24"]
>> $(24).textColor
<- rgb(0, 0, 0)
>>

Methods

$(selector?)

A shortcut to tabris.contentView.find(). Returns a collection containing all descendants of contentView that match the given selector. This does not include any widgets in the drawer, a popover, or encapsulated in a custom component.

Parameter Type Description
selector Selector A selector expression or a predicate function to filter the results. Optional.

Returns: WidgetCollection

$(cidNumber)

Returns the non-disposed NativeObject instance (e.g. a widget) associated with the given cid number. The number can be obtained via the cid property. Example: If the cid of an object is '$23' it can be obtained by $(23). The cid is visible in the log when passing a NativeObject to any log method, e.g. console.log(widget), or console.dirxml(widget). The native object may then be obtained using the developer console or the interactive console feature for the tabris CLI serve command.

This feature is meant for debugging purposes only. Using it in production code is dangerous since it allows interfering with the internals of the framework or encapsulated components. Also, the cid of a NativeObject is not stable, meaning it can change each time the code is executed.

Parameter Type Description
cidNumber number The cid number is the trailing part of the cid property string.

Returns: tabris.NativeObject