Skip to content

SAIF.Presentation.Web.Controls.V2.Menu overview

Documentation context: Consumed as a packaged NuGet dependency by downstream front-end applications. Documented via: SAIF.BOF.Presentation.Web.Infragistics103.nuspec (repository root)

SAIF.Presentation.Web.Controls.V2.Menu is a pure ASP.NET WebForms presentation-tier control library that renders application navigation chrome — a collapsible left-side "Applications"/Favorites panel (SAIFMenu) and a top toolbar of category links and CRUD/print/help action icons (SAIFMenuTop) — on top of navigation and authorization data supplied entirely by external libraries.

Purpose

  • Renders navigation chrome (side panel and top toolbar) for ASP.NET WebForms pages, exposing eventing (MenuNavigate, ToolbarClick, DefaultOnSubmit, OnContextChanged) so the hosting application performs actual navigation and business actions.
  • Consumed by ASP.NET WebForms pages that derive from ViewPageBase (SAIF.Presentation.Web.MVC)*, dropped onto pages via ToolboxData markup or master pages.

Responsibilities

  • Render a left-side navigation panel (SAIFMenu): favorites link list, collapsible application/category accordion (via AjaxControlToolkit.Accordion), and an optional "context value" text box (e.g., a claim-number field).
  • Render a top toolbar (SAIFMenuTop): category-scoped navigation links plus a row of action icon buttons (Insert/Save/Delete/Edit/Cancel/Submit/Print/Preview/Email/Download/Calculate/Help/Set-Clear-Preferences), with per-button visibility/enabled state exposed via the nested clsMenuButton value object.
  • Provide a shared building-block control (SAIFImageButton) that adds a "busy indicator" CSS class and client-side script for disabling other form controls while a postback is pending.
  • Raise host-page-facing eventing (MenuNavigate, ToolbarClick, DefaultOnSubmit, OnContextChanged) so navigation/redirection and business actions are performed by the consuming application rather than by this library.
  • Cache and reuse a session-scoped NavigationContext (keyed by the current Windows-authenticated user) so both controls can share the same navigation data on a page.
  • Persist lightweight UI state: per-button model state in ViewState, and the "Show Applications" expand/collapse preference via SAIF.Presentation.clsPreferences (per-user, PrefScope.AppLevel, key "SHOWAPPS", group "BOMENU").

Key components

  • SAIFMenu: left/side navigation panel — favorites list, collapsible application/category accordion, and context-value text box.
  • SAIFMenuTop: top toolbar combining category-scoped navigation links with a row of CRUD/print/help/preference action icons.
  • SAIFMenuTop.clsMenuButton: nested value object describing one toolbar button's visibility/enabled/tooltip/image state, persisted in ViewState.
  • SAIFImageButton: shared ImageButton subclass providing a "busy indicator" UX behavior with a companion client script, used by every toolbar icon and independently reusable.

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.

Sources

  • SAIF.Presentation.Web.Controls.V2.Menu\SAIF.Presentation.Web.Controls.V2.Menu.vbproj
  • SAIF.Presentation.Web.Controls.V2.Menu\SAIFMenu.vb
  • SAIF.Presentation.Web.Controls.V2.Menu\SAIFMenuTop.vb
  • SAIF.Presentation.Web.Controls.V2.Menu\SAIFImageButton.vb
  • SAIF.BOF.Presentation.Web.Infragistics103.nuspec