Displays Layouts (Reference) the Operator UI's structural framework, organizing displays into regions that persist during navigation while the Content area changes with each page.
DisplayLayout provide:
- Consistent navigation structure
- Platform-adaptive regions
- Header/Menu precedence control
- Automatic display fallback
- Multi-platform optimization
On this page:
Layout Editor Workspace
(1) Layout List Search, +, ×, sort Startup |
(2) Panel Configuration
|
||||||||||||||||||||||||||||||
(3) Page Assignment Table
|
|||||||||||||||||||||||||||||||
(4) Platform Previews | |||||||||||||||||||||||||||||||
Desktop Web Preview
Preview area
|
Desktop Windows WPF
Preview area
|
||||||||||||||||||||||||||||||
Mobile Preview
Preview area
|
Tablet Preview
Preview area
|
Legend:
(1) Layout List
(2) Panel Configuration — Panel Regions
(3) Page Assignment Table
(4) Platform Previews
Layout Regions
Region | Purpose | Position | Dynamic |
---|---|---|---|
Header | Logo, title, main navigation | Top | No |
Menu | Primary navigation links | Left | Optional splitter |
Content | Main display area | Center | Yes |
Submenu | Secondary navigation | Right | Optional |
Footer | Copyright, links, info | Bottom | No |
Creating Layouts
- Navigate to Displays → Layouts
- Click Add New button
- Configure:
- Name - Layout identifier
- Description - Purpose documentation
- Click OK
- Map displays to regions
Region Configuration
Mapping Displays
- Select layout in grid
- For each region row:
- Click "..." in Page column
- Select display from dialog
- Repeat for Mobile/Landscape
Platform-Specific Settings
Column | Target | Fallback |
---|---|---|
Page | Desktop (WPF/HTML5) | Required |
Mobile | Mobile portrait | Uses Page |
MobileLandscape | Mobile landscape | Uses Mobile |
<ac:structured-macro ac:name="tip"> ac:rich-text-body To remove a region on mobile, enter underscore (_) instead of leaving blank. Empty fields inherit from Page configuration. </ac:rich-text-body> </ac:structured-macro>
Layout Customization
Header/Footer Alignment
Option | Behavior | Use Case |
---|---|---|
Stretch | Full width | Standard header |
Left | Align left | Logo placement |
Center | Center content | Title focus |
Right | Align right | User controls |
Menu Configuration
- Optional splitter for resizing
- Adjusts to header/footer
- Can be hidden on mobile
Preview Options
Test layouts before deployment:
- Desktop Web - HTML5 preview
- Desktop Windows - WPF preview
- Mobile Portrait - Phone view
- Mobile Landscape - Tablet view
Runtime Configuration
Startup Layout
Set default at Displays → Client Settings:
Initial Execution Conditions
??? Layout: [Select Layout]
Runtime Changes
Change entire layout:
csharp
@Client.OpenLayout("AlternateLayout");
Change content only:
csharp
@Client.OpenDisplay("NewDisplay");
// Or
@Display.NewDisplay.Open();
Configuration Properties
Property | Description | Type |
---|---|---|
Region | Layout area identifier | Enum |
Docking | Attachment position | String |
Page | Desktop display | Display |
Mobile | Mobile display | Display |
MobileLandscape | Landscape display | Display |
HorizontalAlign | Alignment option | Enum |
Splitter | Resizable divider | Boolean |
Row/Column | Grid position | Integer |
RowSpan/ColumnSpan | Grid spanning | Integer |
Best Practices
- Plan Structure - Define regions before displays
- Test All Platforms - Verify on each target
- Consider Mobile - Simplify for small screens
- Use Splitters Wisely - Only where needed
- Keep Headers Simple - Essential navigation only
- Document Layouts - Explain purpose
- Version Control - Track layout changes
Common Layout Patterns
Standard Application
Header: Navigation Bar
Menu: Equipment List (with splitter)
Content: Main Display (changes)
Footer: Status Bar
Kiosk Mode
Header: Company Logo (center)
Content: Full Screen Display
Footer: Hidden (_)
Dashboard
Header: Title Only
Menu: Hidden (_)
Content: Dashboard Display
Submenu: Quick Actions
Footer: Timestamp
Mobile Considerations
Responsive Design
- Simplify navigation for touch
- Hide non-essential regions
- Optimize for portrait orientation
- Test gesture navigation
Region Removal
Desktop Menu: NavigationPanel
Mobile Menu: _ (removed)
Troubleshooting
Layout not loading:
- Verify layout exists
- Check display assignments
- Review platform compatibility
- Test startup settings
Region not showing:
- Confirm display mapped
- Check visibility settings
- Verify display engine
- Test without underscore
Mobile layout issues:
- Review mobile mappings
- Check responsive settings
- Test orientation changes
- Verify touch targets
Layout Switching Scenarios
User Role Based
csharp
public void SetLayoutByRole()
{
string role = @Security.CurrentUser.Role;
string layout = role switch
{
"Operator" => "OperatorLayout",
"Engineer" => "EngineeringLayout",
"Manager" => "ManagerLayout",
_ => "DefaultLayout"
};
@Client.OpenLayout(layout);
}
Time Based
csharp
public void SetDayNightLayout()
{
bool isNight = DateTime.Now.Hour >= 18 ||
DateTime.Now.Hour < 6;
@Client.OpenLayout(isNight ? "NightLayout" : "DayLayout");
}
Metadata Tracking
Field | Purpose | Auto-Updated |
---|---|---|
ID | Unique identifier | Yes |
VersionID | Change tracking | Yes |
DateCreated | Creation audit | Yes |
DateModified | Last change | Yes |
The metadata tracking pattern applies consistently across all configuration tables in the platform.
In this section...