Skip to main content

GUI Overview

The GUI section covers everything needed to build user interfaces in Oidis — from the Page-Panel-Controller architecture to specific components like tables, dialogs, and form controls. All GUI code lives in the Gui/ subdirectory of your project namespace.

Pages in This Section​

PagePurpose
Panels and ControllersPractical guide to building UI features — lifecycle hooks, data binding, events, validation, and CRUD patterns
Data BindingThe data-oidis-bind system — connecting HTML elements to typed component references in Panels
Events and ValidationEventsBinding.SingleClick, component events via getEvents(), and form validation with TextField and ValidationBinding
TablesTable<T> component — the 3-callback BindData pattern, pagination, refresh, and custom items
DialogsDialog and DialogBinding — modal dialogs for confirmations, forms, and detail views
User ControlsBuilt-in UI components — Button, TextField, Label, DropDown, CheckBox, Table, Dialog, and Toast
Events SystemDeep dive into the event system — EventType enum, EventArgs classes, two-level architecture, and direct getEvents() patterns
ElementManagerDirect DOM utilities — visibility control, z-index management, and global theme switching
Component InternalsInheritance hierarchy, lifecycle states, rendering pipeline, and responsive layout — for building custom components
File UploadFileUploadBinding for file selection, reading, and upload — button, drag-drop, chunked transfer, and progress tracking
Page LayoutsHub GUI page layout variants — BasePageLayout, StickyHeaderLayout, MenuPageLayout — tab configuration, mobile menu, and built-in primitives
AutocompleteTypeahead search component with dropdown results — server-side or client-side filtering, keyboard navigation, and custom formatters
ResponsiveTableResponsiveTable<T> — responsive data table with column filtering, pagination, select-all, and row state management
PaginationPage navigation component for data tables — standalone usage or integrated into Table and ResponsiveTable
Person CardsAvatars with initials fallback, MemberBinding, hover person card fed by an app resolver that decides visibility
GUI PitfallsCommon mistakes — Text() renders HTML, member name clashes, component creation, validation feedback, dialog bindings

Which Component Do I Need?​

TaskComponentPage
Display a data list/gridTable<T> or ResponsiveTable<T>Tables
Show a modal form or confirmationDialog + DialogBindingDialogs
Search with typeaheadAutocompleteAutocomplete
Upload filesFileUploadBindingFile Upload
Add page navigationPaginationPagination
Build a form with inputsTextField, DropDownList, CheckBoxUser Controls
Create a page with tabsBasePageLayoutPage Layouts
Respond to DOM eventsEventsBinding.SingleClick, getEvents()Events and Validation
Validate form inputsTextField.Validate(), ValidationBindingEvents and Validation

Where to Start​

If you're new to Oidis GUI, read Panels and Controllers first — it covers the full lifecycle from creating a panel to wiring up events and displaying data. Then explore specific topics as needed.

For the architectural concepts behind the GUI system, see Page-Panel-Controller in the Architecture section.


See also: Architecture Overview | Page-Panel-Controller | Decorators