Overview
All Wayfast controls require some minimum properties to be set in order to tell Wayfast Render Engine how to display them. In this lesson we will review standard settings required for EVERY control be displayed in Wayfast.
Why is the Layout tab so important?
The “Layout” tab is a key part of every control as it allows us to indicate Wayfast where to place a control in the UI. We do this by selecting a “place holder” and setting the “order” field. We can also set which CSS class will be applied to each control through these two properties: “Container Style” and “Item Style”.
...
Field | Description |
Place Holder | Sets the place holder where Wayfast will place the control. Placeholder name’s are defined in our Layout using a convention. We just prefix HTML tags ids with “PH_” and everything that comes after that in the ID property will be interpreted as a placeholder name and displayed as an option in placeholder field under Layout tab. You can use friendly names for your place holders so all developers in your team can reuse your Layouts. |
Order | Indicates the order for each control in the page. Wayfast Render Engine will use this value while drawing your application in the screen to know which control should be displayed first. Order value can be a decimal numer. This is useful to intersperse controls. |
Alignment | Display Has to options: “Normal” to display the label at the beginning of the row (Normal) or to and “To the right of the previous control” that positions the control next to previous control contained in the selected same placeholder. |
Container Style | Sets the CSS Class applied to apply to the control’s container. |
Item Style | Sets the CSS Class to apply applied to the control’s content. |
Conditional tab
Wayfast allows us to manage control’s visibility using conditional clauses. This is helpful for cases when you want to tie UI behavior to some variable like a user role. For instance we could do something like, if User’s Roles Role is Admin then display Save the “Save” button. Else, hide it. For such condition these cases we use a conditional Syntax. Let’s review how it works.
Conditional clauses have this structure: ‘&VariableNameA’<operator>’&VariableNameB' Please notice that variables in Wayfast start with & symbol but when contained in a conditional clauses they need to be enclosed between single quotes. Variables can refere (First variable name starting with ampersand and enclosed in single quotes followed by a logical operator and last another variable name starting with ampersand and enclosed in single quotes.
Variables can refer to Wayfast objects like Controls, Datasets, Page Variables, Context Variables or Global Variables.
In the aforementioned syntax, <operator> can be one of the following relational operators:
Operator Name | Symbol | Description |
---|---|---|
Equality | = | This operators compares if the term in the left side is equal to the term in the right side. |
Difference | # | This operators compares if the term in the left side is different to the term in the right side. |
Bigger than | > | This operators compares if the term in the left side is bigger than the term in the right side. |
Less than | < | This operators compares if the term in the left side is less than the term in the right side. |
Multiple conditions can be evaluated together as a whole using boolean logical operators such as AND & OR concatenating conditions using the pipe symbol AND & OR logical operators.
Logical operators use this syntax:
‘&<variable1>’<relational_operator1>'<value1>'|<logical_operator1>|‘&<variable3>’<relational_operator2>'<value2>'
Note that logical operators are enclosed in pipes (|).
Let’s see a few examples assuming variable &Ligh Light is set to green:
Expression | Result | Description |
---|---|---|
'&Light'='green' | true | This clause evaluates if &Light variable is equal to “green”. As the variable was actually set to green the result is true. |
‘&Light’#'green' | false | This clause evaluates if &Light variable is different than “green”. As the variable was actually set to green the result is false. |
‘&Light’='green'|AND|‘&Light’#'yellow' | true | This clause evaluates if &light is green and not Yellow. As &light is green it returns true. |
‘&Light’='Red'|OR|‘&Light’='Yellow' | false | This clause evaluates if &light is Red or Yellow. As &light is green it returns false. |
Example
Let’s create a Dropdown control with two options (“Yes”/”No”) and to apply a condition over a Button to make it visible only when the selected option in the Dropdown is “Yes”. If the selected option is “No” the Button will remain hidden. This is a common use case in many applications, : if certain field is not selected, then we can’t submit a form.
First you need a page. We are going to create one and call it “ConditionalButtonSample”.
Then open it and click “WYSIWYG” button to open the visual editor.
...
No let’s go to “Data Binding” tab and set the option we want to display in our Dropdown.
...
Info |
---|
We can set multiple conditions using the syntax to create these rules. These are other common examples:
|
Recap
On this lesson, we reviewed two important sections to setup controls in Wayfast. In the first part, we learnt the Layout importance to indicate where to place our objects in the screen by place and order. In the second part, we had our first approach on Conditional rules that give us the chance to display or edit our objects depending on the clauses that we establish.