Projects in text format¶
Introduction
A project in text format is a project in open format, easily opened by users with a code editor. When a project is created in text format, the project information model is represented in a text file in YAML format: in particular, each node/module of the project is described in a dedicated YAML file. The project can then be consulted and changed in a granular way through the different YAML files.
The text format is useful when designing in a collaborative environment with typical software development tools (e.g. GitHub, SVN, etc.). It is also useful for consulting and changing the project outside of Q Studio.
Files and folders of the project in text format
When a project is created in text format, the Nodes folder, that contains a project YAML file representing the project node (ProjectName.yaml) and a folder for each project folder node (UI, Model, Converters, Alarms, etc.), is created in the project folder. Each folder contains a YAML file that describes its related node (UI.yaml, Model.yaml, Converters.yaml, Alarms.yaml, etc.).
The .uniqo and .uniqo.design project files in a text project can also be opened with a text editor. They contain general information on the project and its dependencies with the Q Platform modules.
Example YAML file
Below is an example of representation of the UI node in YAML format.
The elements described in the YAML file are the only elements given value in the project. If a property of an object is not given a value in Q Studio, it is not described in the YAML file.
Name: UI
Type: FolderType
Children:
- Name: NativePresentationEngine
Type: NativePresentationEngine
ReferenceType: HasOrderedComponent
Children:
- Name: StartWindow
Type: NodePointer
DataType: NodeId
Value: {"IdType":2,"Id":"c5b6a0a2e7242da2ad471b89a993b1b9","Namespace":7}
Children:
- Name: Kind
Type: PropertyType
DataType: NodeId
Value: {"Id":12,"Namespace":4}
- Name: StyleSheet
Type: NodePointer
DataType: NodeId
Value: {"IdType":2,"Id":"87ddf487197f945cf28bbdd169681bc9","Namespace":7}
Children:
- Name: Kind
Type: PropertyType
DataType: NodeId
Value: {"Id":447,"Namespace":4}
- Name: EnableVirtualKeyboard
Type: BaseDataVariableType
DataType: Boolean
Value: false
- Name: StartingUser
Type: NodePointer
DataType: NodeId
Value: {"IdType":2,"Id":"bcd4b69a3d76a1ec8313316b2bbcbba2","Namespace":7}
Children:
- Name: Kind
Type: PropertyType
DataType: NodeId
Value: {"Id":14,"Namespace":1}
- Name: Sessions
Type: BaseObjectType
- Name: MainWindow
Id: g=c5b6a0a2e7242da2ad471b89a993b1b9
Supertype: Window
Children:
- Name: Width
Type: BaseDataVariableType
DataType: Size
ModellingRule: Optional
Value: 400.0
- Name: Height
Type: BaseDataVariableType
DataType: Size
ModellingRule: Optional
Value: 400.0
- Name: Panel1
Type: Panel
Children:
- Name: Width
Type: BaseVariableType
DataType: Size
ModellingRule: Optional
Value: 300.0
- Name: Height
Type: BaseVariableType
DataType: Size
ModellingRule: Optional
Value: 300.0
- Name: Label1
Children:
- Name: Text
Type: BaseDataVariableType
DataType: LocalizedText
ModellingRule: Optional
Value: {"LocaleId":"it-IT","Text":"Label1"}
- Name: NetLogicDiRuntime1
Type: NetLogic