Package com.oorian.html.layout
Class SettingsLayout
java.lang.Object
- All Implemented Interfaces:
ClientEventListener,MouseClickListener,EventListener
A layout for settings and preferences pages with navigation sidebar and content panel.
SettingsLayout provides a standard structure for settings pages, preferences screens, and configuration interfaces. It features a navigation sidebar for categories and a main panel for the settings content.
Structure:
┌────────────────────────────────────────────────┐ │ Header (optional) │ ├──────────────┬─────────────────────────────────┤ │ │ │ │ Category │ Settings Panel │ │ Nav │ ┌─────────────────────────┐ │ │ │ │ Section Title │ │ │ • General │ ├─────────────────────────┤ │ │ • Account │ │ Setting 1 │ │ │ • Privacy │ │ Setting 2 │ │ │ • ... │ │ ... │ │ │ │ └─────────────────────────┘ │ │ │ │ └──────────────┴─────────────────────────────────┘
Features:
- Category navigation sidebar
- Scrollable settings content panel
- Optional page header
- Configurable sidebar width
- Support for dividers between categories
Usage:
// Basic settings layout
SettingsLayout layout = new SettingsLayout();
layout.addCategory(generalNav)
.addCategory(accountNav)
.addCategory(privacyNav)
.content(settingsPanel);
// With header
SettingsLayout layout = new SettingsLayout();
layout.header(new H1("Settings"))
.addCategory(profileNav)
.content(profileSettings);
// Custom sidebar width
SettingsLayout layout = new SettingsLayout();
layout.setSidebarWidth(280)
.addCategory(nav1)
.content(content1);
// Full viewport
layout.fillViewport();
- Since:
- 2025
- Version:
- 1.0
- Author:
- Marvin P. Warble Jr.
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddCategory(Element<?> category) Adds a category navigation item to the sidebar.Adds a divider to the sidebar navigation.addSection(String label, Element<?> content) Adds a section with the specified label and content.addSection(String label, String id, Element<?> content) Adds a section with the specified label, ID, and content.categories(Element<?>... categories) Sets all category navigation items at once.Sets the main content panel content.intReturns the currently active section index.Returns the content deck for advanced customization.Returns the content panel for advanced customization.Returns the header pane for advanced customization.Returns the main container for advanced customization.Returns the nav items container for customization.intReturns the number of sections.Returns the sidebar for advanced customization.Sets the header content.protected voidBuilds the element tree for the layout.voidonEvent(MouseClickedEvent event) Handles click events on nav items.setCategoryGap(int gap) Sets the gap between category items in the sidebar.setCategoryGap(String gap) Sets the gap between category items in the sidebar.setContentBackground(String color) Sets the content panel background color.setContentPadding(int padding) Sets padding for the content panel.setContentPadding(String padding) Sets padding for the content panel.setHeaderBackground(String color) Sets the header background color.setHeaderPadding(int padding) Sets padding for the header.setHeaderPadding(String padding) Sets padding for the header.setNavItemGap(int gap) Sets the gap between nav items in the sidebar.setNavItemGap(String gap) Sets the gap between nav items in the sidebar.setSidebarBackground(String color) Sets the sidebar background color.setSidebarPadding(int padding) Sets padding for the sidebar.setSidebarPadding(String padding) Sets padding for the sidebar.setSidebarWidth(int width) Sets the sidebar width.setSidebarWidth(String width) Sets the sidebar width.showSection(int index) Shows the section at the specified index.showSection(String id) Shows the section with the specified ID.showSidebarBorder(String color) Adds a border to the right side of the sidebar.Methods inherited from class com.oorian.html.layout.PageLayout
createPane, createPane, fillParent, fillViewport, setBackgroundColor, setMinHeightMethods inherited from class com.oorian.html.StyledElement
addClass, addStyle, addStyle, addStyleAttribute, addTransition, animate, clearTransitions, getActiveStyle, getCssClass, getDisabledStyle, getFocusStyle, getFocusVisibleStyle, getHoverStyle, getHtml, getStyle, getStyleAttribute, hidden, hide, isDisplayed, isTransitionForwardActive, onHide, onRemovedFromPage, onShow, removeClass, setActiveStyle, setAlignContent, setAlignContent, setAlignItems, setAlignItems, setAlignSelf, setAlignSelf, setAnimation, setAnimationDelay, setAnimationDelay, setAnimationDelay, setAnimationDirection, setAnimationDirection, setAnimationDuration, setAnimationDuration, setAnimationDuration, setAnimationFillMode, setAnimationFillMode, setAnimationIterationCount, setAnimationIterationCount, setAnimationIterationCount, setAnimationName, setAnimationPlayState, setAnimationPlayState, setAnimationTimingFunction, setAnimationTimingFunction, setAnimationTimingFunction, setAnimationTimingFunction, setBackdropFilter, setBackdropFilter, setBackfaceVisibility, setBackfaceVisibility, setBackground, setBackground, setBackgroundAttachment, setBackgroundAttachment, setBackgroundBlendMode, setBackgroundBlendMode, setBackgroundClip, setBackgroundClip, setBackgroundColor, setBackgroundColor, setBackgroundImage, setBackgroundImage, setBackgroundOrigin, setBackgroundOrigin, setBackgroundPosition, setBackgroundPosition, setBackgroundPosition, setBackgroundPosition, setBackgroundPosition, setBackgroundRepeat, setBackgroundRepeat, setBackgroundSize, setBackgroundSize, setBackgroundSize, setBackgroundSize, setBackgroundSize, setBlur, setBorder, setBorder, setBorder, setBorder, setBorder, setBorder, setBorder, setBorder, setBorder, setBorderBottom, setBorderBottom, setBorderBottom, setBorderBottom, setBorderBottom, setBorderBottom, setBorderBottom, setBorderBottom, setBorderBottomColor, setBorderBottomColor, setBorderBottomLeftRadius, setBorderBottomLeftRadius, setBorderBottomLeftRadius, setBorderBottomRightRadius, setBorderBottomRightRadius, setBorderBottomRightRadius, setBorderBottomStyle, setBorderBottomStyle, setBorderBottomWidth, setBorderBottomWidth, setBorderBottomWidth, setBorderBottomWidth, setBorderColor, setBorderColor, setBorderColor, setBorderColor, setBorderImage, setBorderImage, setBorderImageOutset, setBorderImageRepeat, setBorderImageSlice, setBorderImageSource, setBorderImageWidth, setBorderLeft, setBorderLeft, setBorderLeft, setBorderLeft, setBorderLeft, setBorderLeft, setBorderLeft, setBorderLeft, setBorderLeftColor, setBorderLeftColor, setBorderLeftStyle, setBorderLeftStyle, setBorderLeftWidth, setBorderLeftWidth, setBorderLeftWidth, setBorderLeftWidth, setBorderRadius, setBorderRadius, setBorderRadius, setBorderRadius, setBorderRadius, setBorderRadius, setBorderRight, setBorderRight, setBorderRight, setBorderRight, setBorderRight, setBorderRight, setBorderRight, setBorderRight, setBorderRightColor, setBorderRightColor, setBorderRightStyle, setBorderRightStyle, setBorderRightWidth, setBorderRightWidth, setBorderRightWidth, setBorderRightWidth, setBorderStyle, setBorderStyle, setBorderTop, setBorderTop, setBorderTop, setBorderTop, setBorderTop, setBorderTop, setBorderTop, setBorderTop, setBorderTopColor, setBorderTopColor, setBorderTopLeftRadius, setBorderTopLeftRadius, setBorderTopLeftRadius, setBorderTopRightRadius, setBorderTopRightRadius, setBorderTopRightRadius, setBorderTopStyle, setBorderTopStyle, setBorderTopWidth, setBorderTopWidth, setBorderTopWidth, setBorderTopWidth, setBorderWidth, setBorderWidth, setBorderWidth, setBorderWidth, setBorderWidth, setBorderWidth, setBorderWidth, setBottom, setBottom, setBottom, setBoxShadow, setBoxShadow, setBoxShadow, setBoxShadow, setBoxShadow, setBoxSizing, setBoxSizing, setBreakAfter, setBreakBefore, setBreakInside, setBrightness, setClass, setClear, setClear, setClip, setClipPath, setClipPath, setColGap, setColGap, setColor, setColor, setColumnCount, setColumnCount, setColumnFill, setColumnFill, setColumnGap, setColumnRule, setColumnRuleColor, setColumnRuleColor, setColumnRuleStyle, setColumnRuleStyle, setColumnRuleWidth, setColumnRuleWidth, setColumns, setColumns, setColumns, setColumnSpan, setColumnWidth, setColumnWidth, setColumnWidth, setContrast, setCounterIncrement, setCounterReset, setCursor, setCursor, setDirection, setDirection, setDisabledStyle, setDisplay, setDisplay, setFilter, setFilter, setFilterOpacity, setFlex, setFlexBasis, setFlexDirection, setFlexDirection, setFlexFlow, setFlexGrow, setFlexGrow, setFlexShrink, setFlexShrink, setFlexWrap, setFlexWrap, setFloat, setFloat, setFocusStyle, setFocusVisibleStyle, setFont, setFont, setFont, setFont, setFont, setFont, setFont, setFont, setFont, setFont, setFont, setFont, setFontFace, setFontFamily, setFontFamily, setFontFeatureSettings, setFontKerning, setFontLanguageOverride, setFontSize, setFontSize, setFontSize, setFontSizeAdjust, setFontStretch, setFontStretch, setFontStyle, setFontStyle, setFontSynthesis, setFontVariant, setFontVariant, setFontVariantAlternates, setFontVariantCaps, setFontVariantEastAsian, setFontVariantLigatures, setFontVariantNumeric, setFontVariantPosition, setFontWeight, setFontWeight, setGap, setGap, setGap, setGap, setGrayscale, setHangingPunctuation, setHangingPunctuation, setHeight, setHeight, setHeight, setHoverStyle, setHueRotate, setHyphens, setImageOrientation, setImageRendering, setImageResolution, setImeMode, setInvert, setJustifyContent, setJustifyContent, setKeyFrames, setLeft, setLeft, setLeft, setLetterSpacing, setLetterSpacing, setLetterSpacing, setLetterSpacing, setLineBreak, setLineHeight, setLineHeight, setLineHeight, setLineHeight, setMargin, setMargin, setMargin, setMargin, setMargin, setMarginBottom, setMarginBottom, setMarginBottom, setMarginLeft, setMarginLeft, setMarginLeft, setMarginRight, setMarginRight, setMarginRight, setMarginTop, setMarginTop, setMarginTop, setMark, setMarkAfter, setMarkBefore, setMarks, setMarqueeDirection, setMarqueePlayCount, setMarqueeSpeed, setMarqueeStyle, setMask, setMaskType, setMaxHeight, setMaxHeight, setMaxHeight, setMaxHeightToWindowHeight, setMaxWidth, setMaxWidth, setMaxWidth, setMaxWidthToWindowWidth, setMinHeight, setMinHeight, setMinHeightToWindowHeight, setMinWidth, setMinWidth, setMinWidth, setMinWidthToWindowWidth, setNavDown, setNavIndex, setNavIndex, setNavLeft, setNavRight, setNavUp, setObjectFit, setObjectPosition, setOnClickNavigateBack, setOnClickNavigateBack, setOnClickNavigateBack, setOnClickNavigateForward, setOnClickNavigateForward, setOnClickNavigateForward, setOnClickNavigateTo, setOnDblClick, setOnDblClickChange, setOpacity, setOpacity, setOrder, setOrder, setOrphans, setOutline, setOutline, setOutline, setOutline, setOutlineColor, setOutlineColor, setOutlineOffset, setOutlineOffset, setOutlineOffset, setOutlineStyle, setOutlineStyle, setOutlineWidth, setOutlineWidth, setOutlineWidth, setOutlineWidth, setOverflow, setOverflow, setOverflow, setOverflowWrap, setOverflowX, setOverflowX, setOverflowY, setOverflowY, setPadding, setPadding, setPadding, setPadding, setPadding, setPadding, setPadding, setPadding, setPaddingBottom, setPaddingBottom, setPaddingBottom, setPaddingLeft, setPaddingLeft, setPaddingLeft, setPaddingRight, setPaddingRight, setPaddingRight, setPaddingTop, setPaddingTop, setPaddingTop, setPageBreakAfter, setPageBreakAfter, setPageBreakBefore, setPageBreakBefore, setPageBreakInside, setPageBreakInside, setPerspective, setPerspective, setPerspective, setPerspectiveOrigin, setPerspectiveOrigin, setPerspectiveOrigin, setPerspectiveOrigin, setPhonemes, setPosition, setPosition, setPosition, setPosition, setPosition, setQuotes, setResize, setResize, setResizeToWindowHeight, setResizeToWindowHeight, setResizeToWindowWidth, setRest, setRestAfter, setRestBefore, setRight, setRight, setRight, setRotate, setRotate, setRowGap, setRowGap, setSaturate, setScale, setScale, setSepia, setShow, setSize, setSize, setSize, setSkewX, setSkewY, setStyle, setStyle, setTabSize, setTabSize, setTabSize, setTabSize, setTextAlign, setTextAlign, setTextAlignLast, setTextAlignLast, setTextCombineUpright, setTextCombineWeight, setTextDecoration, setTextDecoration, setTextDecorationColor, setTextDecorationColor, setTextDecorationLine, setTextDecorationLine, setTextDecorationStyle, setTextDecorationStyle, setTextIndent, setTextIndent, setTextIndent, setTextIndent, setTextJustify, setTextJustify, setTextOrientation, setTextOverflow, setTextOverflow, setTextSelectDisabled, setTextShadow, setTextShadow, setTextShadow, setTextShadow, setTextShadow, setTextTransform, setTextTransform, setTextUnderlinePosition, setTop, setTop, setTop, setTransform, setTransform, setTransformOrigin, setTransformOrigin, setTransformOrigin, setTransformOrigin, setTransformOrigin, setTransformStyle, setTransformStyle, setTransition, setTransitionDelay, setTransitionDelay, setTransitionDelay, setTransitionDuration, setTransitionDuration, setTransitionDuration, setTransitionProperty, setTransitionTimingFunction, setTransitionTimingFunction, setTransitionTimingFunction, setTransitionTimingFunction, setTranslateX, setTranslateY, setTranslateZ, setUnicodeBidi, setUnicodeBidi, setVerticalAlign, setVerticalAlign, setVisibility, setVisibility, setVoiceBalance, setVoiceDuration, setVoicePitch, setVoicePitchRange, setVoiceRate, setVoiceStress, setVoiceVolume, setWhiteSpace, setWhiteSpace, setWidows, setWidth, setWidth, setWidth, setWordBreak, setWordBreak, setWordSpacing, setWordSpacing, setWordSpacing, setWordSpacing, setWordWrap, setWordWrap, setWritingMode, setZIndex, setZIndex, show, shown, stopAnimation, transitionForward, transitionForward, transitionReverse, transitionReverse, updateStyle, updateStyle, updateStyleIfChangedMethods inherited from class com.oorian.html.VisualElement
clearOnClick, click, disable, enable, getAccessKey, getAutoCapitalize, getEnterKeyHint, getInputMode, getPopover, getRole, getTabIndex, getTitle, isAutoFocus, isContentEditable, isDisabled, isDraggable, isHidden, isInert, isSpellCheck, onDisabled, onEnabled, setAccessKey, setAriaAtomic, setAriaBusy, setAriaChecked, setAriaCheckedMixed, setAriaControls, setAriaCurrent, setAriaDescribedBy, setAriaDisabled, setAriaErrorMessage, setAriaExpanded, setAriaHasPopup, setAriaHasPopup, setAriaHidden, setAriaInvalid, setAriaLabel, setAriaLabelledBy, setAriaLevel, setAriaLive, setAriaModal, setAriaOwns, setAriaPressed, setAriaRequired, setAriaSelected, setAriaValueRange, setAriaValueText, setAutoCapitalize, setAutoFocus, setConsumeEvent, setContentEditable, setDisabled, setDraggable, setDropAllowed, setEnterKeyHint, setFocus, setHidden, setInert, setInputMode, setOnAnimationCancel, setOnAnimationEnd, setOnAnimationIteration, setOnAnimationStart, setOnAuxClick, setOnBeforeInput, setOnBeforeToggle, setOnBlur, setOnChange, setOnClick, setOnClickChange, setOnCompositionEnd, setOnCompositionStart, setOnCompositionUpdate, setOnContextMenu, setOnCopy, setOnCut, setOnDocumentResize, setOnFocus, setOnFocusIn, setOnFocusOut, setOnFormData, setOnGotPointerCapture, setOnInput, setOnInvalid, setOnKeyDown, setOnKeyPressed, setOnKeyUp, setOnLostPointerCapture, setOnMouseDown, setOnMouseEnter, setOnMouseLeave, setOnMouseMove, setOnMouseOut, setOnMouseOutChangeClass, setOnMouseOutChangeStyle, setOnMouseOutChangeStyle, setOnMouseOver, setOnMouseOverChangeClass, setOnMouseOverChangeStyle, setOnMouseOverChangeStyle, setOnMouseOverShow, setOnMouseUp, setOnPageLoad, setOnPaste, setOnPointerCancel, setOnPointerDown, setOnPointerEnter, setOnPointerLeave, setOnPointerMove, setOnPointerOut, setOnPointerOver, setOnPointerUp, setOnResize, setOnScroll, setOnScrollEnd, setOnSelect, setOnSelectionChange, setOnSelectStart, setOnToggle, setOnTouchCancel, setOnTouchEnd, setOnTouchMove, setOnTouchStart, setOnTransitionCancel, setOnTransitionEnd, setOnTransitionRun, setOnTransitionStart, setOnWheel, setOnWindowResize, setPopover, setRole, setRole, setSpellCheck, setTabIndex, setTitle, setTooltipMethods inherited from class com.oorian.html.Element
addAttribute, addAttribute, addAttribute, addAttribute, addElement, addLineBreak, addLineOfText, addLineOfText, addLineOfText, addParagraph, addParagraph, addSpacer, addText, addText, addText, addText, assignId, containsElement, containsElement, create, dispatchEvent, dispatchEvent, dispatchEvent, dispatchEvent, equals, excludeId, executeJs, executeJs, executeJs, getAccept, getAllElements, getAncestor, getAttribute, getAttributes, getComponent, getDir, getElement, getElementById, getElementCount, getElementCount, getElements, getElements, getElementsByComponentName, getElementsByTagName, getHtml, getId, getInnerHtml, getInnerHtml, getIs, getItemId, getItemProp, getItemRef, getItemType, getLang, getNextSibling, getPage, getParent, getPart, getPrevSibling, getSlot, getTagName, getTextContent, getUrl, hasAttribute, hasElements, insertElement, isChildOf, isClosedTag, isCreated, isDescendantOf, isDescendantOf, isInitialized, isItemScope, isTranslate, onCallback, onCreated, onElementAdded, onElementRemoved, onHashChange, onHidden, onInitialized, onJsReturn, onPageLoaded, onPageUnloaded, onRefresh, onShown, onUpdated, onUserEvent, prewrite, recreate, refresh, refresh, registerAddition, registerListener, registerListener, registerListener, registerListener, registerListener, registerListener, registerListener, registerSubtraction, registerUpdate, removeAllElements, removeAttribute, removeAttribute, removeElement, removeElement, removeFromParent, requestCallback, requestCallback, requestCallback, requestCallback, resetId, scrollTo, scrollToBottom, scrollToTop, self, sendCommand, sendUpdate, setAccept, setComponent, setDir, setDir, setElement, setId, setIs, setItemId, setItemProp, setItemRef, setItemScope, setItemType, setLang, setOnError, setOnLoad, setPage, setParent, setPart, setSlot, setTagName, setText, setText, setText, setText, setTranslate, toString, unregisterListener, update, updateAttributesMethods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.oorian.messaging.events.client.MouseClickListener
onEvent
-
Constructor Details
-
SettingsLayout
public SettingsLayout()Constructs a SettingsLayout with default configuration.
-
-
Method Details
-
initialize
protected void initialize()Builds the element tree for the layout.- Overrides:
initializein classStyledElement<SettingsLayout>
-
header
Sets the header content.- Parameters:
header- the header element- Returns:
- this SettingsLayout for method chaining
-
addCategory
Adds a category navigation item to the sidebar.- Parameters:
category- the category element (link, button, etc.)- Returns:
- this SettingsLayout for method chaining
-
addDivider
Adds a divider to the sidebar navigation.- Returns:
- this SettingsLayout for method chaining
-
categories
Sets all category navigation items at once.- Parameters:
categories- the category elements- Returns:
- this SettingsLayout for method chaining
-
content
Sets the main content panel content.- Parameters:
content- the content element- Returns:
- this SettingsLayout for method chaining
-
setSidebarWidth
Sets the sidebar width.- Parameters:
width- the width in pixels- Returns:
- this SettingsLayout for method chaining
-
setSidebarWidth
Sets the sidebar width.- Parameters:
width- the width value (e.g., "240px", "20%", "15rem")- Returns:
- this SettingsLayout for method chaining
-
setSidebarBackground
Sets the sidebar background color.- Parameters:
color- the background color- Returns:
- this SettingsLayout for method chaining
-
setContentBackground
Sets the content panel background color.- Parameters:
color- the background color- Returns:
- this SettingsLayout for method chaining
-
setHeaderBackground
Sets the header background color.- Parameters:
color- the background color- Returns:
- this SettingsLayout for method chaining
-
setSidebarPadding
Sets padding for the sidebar.- Parameters:
padding- the padding in pixels- Returns:
- this SettingsLayout for method chaining
-
setSidebarPadding
Sets padding for the sidebar.- Parameters:
padding- the padding value (e.g., "16px", "1rem")- Returns:
- this SettingsLayout for method chaining
-
setContentPadding
Sets padding for the content panel.- Parameters:
padding- the padding in pixels- Returns:
- this SettingsLayout for method chaining
-
setContentPadding
Sets padding for the content panel.- Parameters:
padding- the padding value (e.g., "24px", "1.5rem")- Returns:
- this SettingsLayout for method chaining
-
setHeaderPadding
Sets padding for the header.- Parameters:
padding- the padding in pixels- Returns:
- this SettingsLayout for method chaining
-
setHeaderPadding
Sets padding for the header.- Parameters:
padding- the padding value (e.g., "16px", "1rem")- Returns:
- this SettingsLayout for method chaining
-
setCategoryGap
Sets the gap between category items in the sidebar.- Parameters:
gap- the gap in pixels- Returns:
- this SettingsLayout for method chaining
-
setCategoryGap
Sets the gap between category items in the sidebar.- Parameters:
gap- the gap value (e.g., "8px", "0.5rem")- Returns:
- this SettingsLayout for method chaining
-
showSidebarBorder
Adds a border to the right side of the sidebar.- Parameters:
color- the border color- Returns:
- this SettingsLayout for method chaining
-
getHeaderPane
Returns the header pane for advanced customization.- Returns:
- the header pane
-
getSidebar
Returns the sidebar for advanced customization.- Returns:
- the sidebar div
-
getContentPanel
Returns the content panel for advanced customization.- Returns:
- the content panel div
-
getMainContainer
Returns the main container for advanced customization.- Returns:
- the main container div
-
addSection
Adds a section with the specified label and content.This creates a clickable nav item in the sidebar and adds the content to an internal Deck. Clicking the nav item will show the corresponding content.
- Parameters:
label- the nav label for this sectioncontent- the content to display when this section is selected- Returns:
- this SettingsLayout for method chaining
-
addSection
Adds a section with the specified label, ID, and content.This creates a clickable nav item in the sidebar and adds the content to an internal Deck. Clicking the nav item will show the corresponding content.
- Parameters:
label- the nav label for this sectionid- optional ID for programmatic access (if null, generated from label)content- the content to display when this section is selected- Returns:
- this SettingsLayout for method chaining
-
showSection
Shows the section at the specified index.- Parameters:
index- the section index (0-based)- Returns:
- this SettingsLayout for method chaining
-
showSection
Shows the section with the specified ID.- Parameters:
id- the section ID- Returns:
- this SettingsLayout for method chaining
-
getActiveSectionIndex
public int getActiveSectionIndex()Returns the currently active section index.- Returns:
- the active section index, or -1 if no section is active
-
getSectionCount
public int getSectionCount()Returns the number of sections.- Returns:
- the section count
-
onEvent
Handles click events on nav items.- Specified by:
onEventin interfaceMouseClickListener- Parameters:
event- the mouse click event
-
getContentDeck
Returns the content deck for advanced customization.- Returns:
- the content Deck
-