NoesisGUI
 

📘 Data Utilization

🏘️ NoesisGUI🏠 Noesis Studio📘 Working With Data ▸ 📘 Data Utilization

Overview

Noesis Studio not only provides a full suite of tools around 📘 Data Configuration, but also includes all of the features required to input and maintain Design-Time Data Values which can easily be used to populate UI content, and drive its functionality.

As part of these features, Studio includes a powerful system allowing developers to create unlimited collections of 📑 Data Sets and Values. These Data Sets can be instantly hot-swapped between eachother, and allow creators to rapidly preview how the interface looks and behaves when under the influence of different Data Values.

When assigned to a particular scope, Data Sets and the Data Values contained within, then become available to be used in the context of 📑 Data Binding, allowing elements throughout an interface to directly reflect Data Values in user-facing content.

Noesis Studio additionally includes a unique and powerful automatic 📑 Sample Data Generation toolkit. This feature allows for most Data Values to be automatically and procedurally filled with semi-randomized placeholder values according to configurable generation rules. This enables developers to rapidly make progress on interface work, even if Engine content or systems have not yet been created and made available.

Warning

In the Beta version of Noesis Studio, Data is not subject to the application's Undo/Redo features. Until these features are implemented, it is therefore highly recommended to manipulate Data in conjunction with Source Control.

Data Sets and Values

In the framework, Data Values must be stored in a Data Set for an interface to be able to read (or write to) it.

Data Set Creation

Data Sets can be created by hovering over any Data Structure and clicking the ⊕ (Create) icon:

IMAGE ALT TEXT HERE

Using this method, unlimited amounts of parallel Data Sets, each with unique Data Values can be created:

IMAGE ALT TEXT HERE

With the Data Sets created, their Values can then be populated using the techniques outlined in 📑 Data Set Population.

Data Set Assignment

For any Data Set and its Data Values to be served to the interface it powers, it must first be made available through assignment. In most cases when developing interfaces, a Data Set is assigned to a specific scope (such as to an entire Page, or to the root of a Template).

Noesis Studio offers a quick and convenient method to quickly perform this operation by hovering over any created Data Set, and clicking the ⌂ (Home) icon. This will automatically assign it, and make it available to all Elements within the selected scope.

IMAGE ALT TEXT HERE

Once this assignment has been set, it will be evidenced by a blue badge, visible on both the assigned Data Set within the 📘 Data Panel, as well as on the Root element within the 📘 Navigator Panel that the Data Set was assigned to.

IMAGE ALT TEXT HERE

It is important to note that only one Data Set can be active at a time, and that assigning a different Data Set than the one currently assigned, will automatically unassign the previous one in the process. This makes it incredibly easy to quickly jump back and forth between multiple Data Sets.

Any currently-assigned Data Set can be unassigned by hovering over it and clicking on the ☍ (Unassign) icon.

IMAGE ALT TEXT HERE

Data Set Population

With one or many Data Sets created, their Values can be easily modified by selecting a Data Set from the 📘 Data Panel. This exposes its 📘 Properties Panel from where its individual Data Values can be freely edited:

IMAGE ALT TEXT HERE

When manipulating any Data Sets containing Collections, additional items can be added to the array by clicking the + (Add) icon at the top-right of the Data Set Properties Panel:

IMAGE ALT TEXT HERE

An individual member of the collection can be duplicated or removed by hovering over it, clicking on its ⋮ (3-Dot) menu icon, and selecting the desired operation:

IMAGE ALT TEXT HERE

Note

Making changes in one Data Set doesn't modify other Data Sets.

Sample Data Generation

In addition to the ability to fill out Data Values manually, Noesis Studio includes a fully-integrated Sample Data Generation featureset that can be used to super-power Data Value population.

This can be a particularly useful tool for populating an interface with placeholder content, allowing for progress to be made on a UI, even if final content isn't yet available. The semi-randomized nature also allows creators to easily test all sorts of potential edge-cases, all with a single click of a button.

Data Generation Properties

To maintain a level of control over the Values produced by the Sample Data Generation, each of the 📘 Data Structure Properties contain an expander which can be opened, and from where the constraints of the Data Values generated can be set. The options available for each depend on which Data Type was assigned to each Data Property.

IMAGE ALT TEXT HERE

In the example above, the generator will produce:

  • A number between 1 and 128 (with no decimals) for the Number Data Property.
  • A text string between 1 and 4 words for the String Data Property
  • A random roll as to whether the Boolean Data Property is set to 'Checked' or 'Unchecked'.
  • A random image from a pre-defined folder of bitmaps.
  • A random opaque solid color brush from the entire spectrum.

Data Generation

Once the Data Generation constraints for each Data Property are set, the Generation can then be run either by hovering over a Data Set, and clicking on its 🛢(Generate) icon. Alternately, a Data Generation can be started by selecting a Data Set from the 📘 Data Panel, and clicking on the from its 🛢(Generate) icon in the upper-right of its 📘 Properties Panel.

IMAGE ALT TEXT HERE

Warning

In the Beta version of Noesis Studio, running a Data Generation permanently overwrites any Values that were previously input, whether they were manually-populated or the result of a previous Data Generation pass. Until the application's Undo/Redo stack is extended to Data manipulation, it is highly recommended to run Data Generations in conjunction with a Source Control solution.

The Values output by the Sample Data Generation can be manually overwritten at any time following the techniques outlined in 📑 Data Set Population

Data Binding

To be able to use created Data to power a user interface, it must go through a process called Data Binding. This operation feeds Data Values into an Element's Properties, allowing a centralized Data Value to be used as the Property's Value.

IMAGE ALT TEXT HERE

Note

To be able to access and bind to Data, a Data Set must have first been created (📑 Data Set Creation), and assigned to the current scope (📑 Data Set Assignment).

Binding Types

A Data Property can be bound to a compatible Element Property by hovering over it, clicking on its ⋮ (3-Dot) menu icon, and selecting one of the two Binding types:

☍+ Create Binding uses one Data Property to relay a single Data Value to the Element's Property:

IMAGE ALT TEXT HERE

In the example above, the Data Value of the Speed Data Property is rendered in a TextBlock's 'Text' Property.

☍+ Create MultiBinding allows multiple Data Properties to be mixed, to relay a composite output to the Element's Property:

IMAGE ALT TEXT HERE

In the example above, a ('Current Fuel Level') Fuel Data Value is subtracted from a ('Full Tank') Fuel_Max Data Value to output what amounts to displaying a 'Fuel Consumed' value within a TextBlock's Text Property.

In MultiBindings, the Path field corresponds to the name of the Data Property.

Additionally, referencing each Binding is performed in written formats using {0} for the first Binding, {1} for the second Binding, {2} for the third Binding, and so on and so forth. This allows them to be used in powerful and creative ways to generate brand new outputs.

Single Binding

To bind an Element's Property to a single Data Property, once a 📑 Binding Type has been selected from the Element Property's ⋮ (3-Dot) menu, within the 'Context' tab, the 'Path' toggle can then be clicked to expand and expose the list of Data Properties to select from. Clicking any Data Property in the list instantly binds it to the Element's Property.

IMAGE ALT TEXT HERE

Collection Binding

Noesis Studio includes a wide selection of 📘 Collection Elements which become particularly powerful when paired with Data Collections.

Among their most salient features, Collection Elements are able to procedurally display the individual members of a Data Collection as an array in an automated fashion:

IMAGE ALT TEXT HERE

In the example above, each character tile is automagically generated from a single 'tile' Template (which internally contains Data Bindings). The amount of characters displayed on-screen, as well as the unique content of each is fully controlled by the attributes of the Data Collection itself.

Binding a Collection Element to Data is a two-step process:

In the first step, the Collection Element itself is bound to the Data Collection itself:

Once a 📑 Binding Type has been selected from the Element Property's ⋮ (3-Dot) menu, within the 'Context' tab, the 'Path' toggle can then be clicked to expand and expose the list of Data Properties to select from. Clicking any Data Collection in the list instantly binds it to the Collection Element's Property.

IMAGE ALT TEXT HERE

In addition to populating the Collection Element with the Data Collection's individual members, it also provides access to the Elements within the Template to access this Data too.

In the second step, Elements within the Collection Element Template are then bound to a desired Data Property.

This can be done using the same method outlined in 📘 Single Binding, and selecting the assigned Collection's appropriate Property from those exposed to the internals of the Template in the first step:

IMAGE ALT TEXT HERE

Advanced Operations

One particularly empowering feature of Bindings is the ability to add another layer of configuration to the output of the relayed Data at the destination. Some features and capabilities include the ability to:

  • Apply custom formatting rules to the value that will be displayed or used, such as setting number of decimals, or enabling advanced concatenation.
  • Apply Converters, such as being able to change a Data Value with math, or setting a specific letter casing.
  • Setting whether the Data Value only Reads the Data Value, or if it is also capable of writing to the Data Values too.

These advanced options can easily be accessed by opening the expander at the bottom of the Binding Selector:

IMAGE ALT TEXT HERE
 
© 2017 Noesis Technologies