• IT
betterdocs-cat-icon 1-svg

Qualcosa è andato storto?

Condividi con noi la tua opinione per migliorare la nostra documentazione.

    Getting Started

    • Introduzione Instant Developer Cloud
    • Composizione della piattaforma
    • Struttura dei progetti
    • La programmazione relazionale
    • Apprendere l’uso di Instant Developer Cloud

    Struttura di un'applicazione

    • Introduzione (applicazione e sessione)
    • Le videate
    • Classi e librerie
    • Risorse e CSS
    • I pacchetti
    • Programmazione asincrona

    Struttura del database

    • Introduzione (struttura del database)
    • Definizione degli schemi relazionali
    • Scrittura di query ed esecuzione di comandi
    • Gestione dei database nel cloud
    • Il Cloud Connector

    Document Orientation

    • Introduzione Document Orientation
    • Definire Documenti e Collection
    • Utilizzo dei documenti
    • Estensione dei documenti

    Datamap

    • Introduzione Datamap
    • Creazione di liste di documenti
    • Modifica dei documenti con videate di dettaglio
    • Datamap innestate e ricorsive

    IonicUI

    • Introduzione IonicUi
    • Le pagine IonicUI
    • Definire il contenuto delle pagine
    • Il page controller
    • Il metodo app.popup
    • Videate come elementi visuali
    • Personalizzazione di IonicUI
    • Configurazione dei ruoli e degli accessi

    ShadowUI

    • Introduzione ShadowUI
    • Progetti di esempio
    • Elementi disponibili
    • Installazione
    • Le pagine ShadowUI
    • La HeaderBar e il Breadcrumb
    • I pulsanti
    • Le tabbed view
    • Definire il contenuto delle pagine
    • Il page controller
    • Sidebar e Menu
    • Componenti Shadow UI
    • Template
    • Personalizzazione

    Pannelli Griglie e Alberi

    • Introduzione (Pannelli griglie e alberi)
    • Anatomia di un pannello
    • I pannelli a runtime
    • Anatomia di un albero
    • Gli alberi a runtime

    Web API e file system

    • Introduzione Web API
    • Il file system
    • Consumare Web API
    • Esporre Web API
    • Web API in formato OData
    • Utilizzare Web API Instant Developer Foundation
    • Web API in formato OpenAPI

    Sincronizzazione

    • Introduzione sistema di sincronizzazione
    • Scambio di messaggi in tempo reale
    • Document Orientation Remota
    • Sincronizzazione del database offline

    Debugging e Test

    • Introduzione Debugging e Test
    • Strumenti e tecniche di debug
    • Test automatico delle applicazioni

    Traduzioni

    • Introduzione (traduzioni)
    • Processo di traduzione
    • Funzionamento del framework di localizzazione
    • Localizzazione di numeri e date

    Integrazioni di componenti esterni

    • Introduzione (integrazioni di componenti esterni)
    • Integrazione di componenti JavaScript
    • Integrazione di librerie di back-end
    • Integrazione di un plugin Cordova

    Launcher e Pubblicazione

    • Introduzione Launcher
    • I plugin nativi
    • Test delle applicazioni nei launcher
    • Pubblicazione sugli store
    • Configurazioni per gli store
    • Fase di build e di invio
    • Gestione dell’applicazione

    Analitiche e Feedback

    • Introduzione Analytics e Feedback
    • Installazione ed uso di Analytics
    • Raccolta dei feedback degli utenti

    Server di Produzione

    • Introduzione server di produzione
    • I server di Instant Developer Cloud
    • I server My Cloud
    • I server Self Managed
    • Tabella comparativa

    Team Works

    • Perché non basta GitHub?
    • Team Works: concetti base
    • Organizzazione del lavoro consigliata
    • Risoluzione dei problemi relativi a Team Works
    • Domande sull’utilizzo di Team Works

    Manuale PWA

    • Cos’è una PWA?
    • Creazione di una PWA su Instant Developer Cloud
    • Life Cycle
    • Installazione PWA
    • Funzionalità
    • Plugin
    View Categories

    La HeaderBar e il Breadcrumb

    Table Of Contents
    • ShaHeaderBar
    • ShaBreadcrumb
    • ShaDropdownMenu
      • ShaDropdownMenu
      • ShaDropdownMenuItem
      • ShaDropdownMenuCheckboxItem
      • ShaDropdownMenuRadioGroup e RadioItem
      • ShaDropdownMenuSeparator
      • ShaDropdownMenuLabel
    • Pattern comuni HeaderBar
      • Menu utente con avatar
      • Breadcrumb con limite elementi
      • Aggiornamento dinamico breadcrumb
      • Header con azioni contestuali

    L’header bar è il componente fisso in alto che contiene la navigazione e i controlli principali dell’applicazione.

    ShaHeaderBar #

    La ShaHeaderBar è il contenitore dell’intestazione dell’applicazione. In ShaMainViewSticky, questo elemento rimane fisso in alto durante lo scroll della pagina.
    Proprietà principali:

    ProprietàTipoDescrizione
    sidebarButtonbooleanMostra il pulsante per aprire la sidebar (default: true)
    classNamestringClassi CSS personalizzate
    styleobjectStili inline personalizzati

    Contenuto standard: 

    • Pulsante menu sidebar (su mobile)
    • ShaBreadcrumb: Navigazione breadcrumb
    • ShaDropdownMenu: Menu utente

    ShaBreadcrumb #

    Il breadcrumb mostra il percorso di navigazione corrente e permette di tornare alle pagine precedenti.
    Proprietà principali:

    ProprietàTipoDescrizione
    itemsarrayArray di oggetti { id, title } da visualizzare
    maxNamesnumberNumero massimo di elementi da mostrare (default: 4)
    disabledbooleanDisabilita l’interazione
    visiblebooleanMostra/nascondi il breadcrumb

    Struttura items:

    [
      { id: 0, title: "Dashboard" },
      { id: 1, title: "Progetti" },
      { id: 2, title: "Progetto Alpha" }
    ]

    Eventi:

    onSelect(event):

    •  Scatenato quando si clicca su un elemento del breadcrumb
    • event.id: id dell’elemento cliccato

    Aggiornamento automatico:
    Il breadcrumb viene aggiornato automaticamente quando si usano i metodi di navigazione (push, pop, setTitle). Non è necessario gestirlo manualmente.

    Comportamento al click:
    Quando l’utente clicca su un elemento del breadcrumb, il page controller chiama automaticamente pop() per tornare a quella pagina:

    // Gestito automaticamente dal framework
    shadcnBreadcrumb.onSelect = function(event) {
      let id = event.id;
    
      if (id >= (view.navStack.length - 1)) return;
    
      let nrPageToRemove = view.navStack.length - id - 1;
      view.pop(nrPageToRemove);
    };

    Esempio personalizzazione:

    // Imposta breadcrumb manualmente (raramente necessario)
    function* updateBreadcrumb() {
      this.view.shadcnBreadcrumb.items = [
        { id: 0, title: "Home" },
        { id: 1, title: "Progetti" },
        { id: 2, title: this.currentProject.name }
      ];
    }

    ShaDropdownMenu #

    Il dropdown menu nell’header contiene tipicamente le azioni utente: profilo, impostazioni, logout.
    Struttura:

    ShaDropdownMenu
    ├── ShaDropdownMenuItem (Profilo)
    ├── ShaDropdownMenuItem (Impostazioni)
    ├── ShaDropdownMenuSeparator
    └── ShaDropdownMenuItem (Logout)

    Di seguito analizziamo i componenti del dropdown.

    ShaDropdownMenu #

    Contenitore principale del menu a tendina.
    Proprietà:

    • label: Testo del trigger button
    • icon: Icona del trigger
    • align: Allineamento menu (start, center, end)

    ShaDropdownMenuItem #

    Voce di menu cliccabile.
    Proprietà:

    • label: Testo della voce
    • icon: Icona (opzionale)
    • disabled: Disabilita la voce

    Eventi: – onSelect(event): Scatenato al click.
    Esempio:

    // Dropdown menu utente
    function* profileMenuItem_onSelect() {
      yield view.push(App.ProfileView, {
        title: "Profilo Utente"
      });
    }
    
    function* logoutMenuItem_onSelect() {
      let confirm = yield app.popup(
        "Conferma Logout",
        "Sei sicuro di voler uscire?",
        ["Annulla", "Esci"]
      );
    
      if (confirm === 1) {
        yield app.logout();
        yield view.push(App.LoginView, {
          root: true,
          remove: true
        });
      }
    }

    ShaDropdownMenuCheckboxItem #

    Voce con checkbox per opzioni on/off.

    Proprietà:

    • label: Testo
    • checked: Stato checkbox (boolean)

    Eventi:

    • onCheckedChange(event): Scatenato al cambio stato

    Esempio:

    // Toggle notifiche
    function* notificationsCheckbox_onCheckedChange() {
      let enabled = this.sender.checked;
    
      yield app.settings.setNotifications(enabled);
    
      yield app.toast(
        enabled ? "Notifiche attivate" : "Notifiche disattivate",
        { variant: "success" }
      );
    }

    ShaDropdownMenuRadioGroup e RadioItem #

    Per selezione esclusiva tra opzioni.

    Esempio selezione tema:

    ShaDropdownMenuRadioGroup
    ├── ShaDropdownMenuRadioItem (Light)
    ├── ShaDropdownMenuRadioItem (Dark)
    └── ShaDropdownMenuRadioItem (Auto)
    function* themeRadioItem_onSelect() {
      let theme = this.sender.value; // "light", "dark", "auto"
    
      yield app.theme.set(theme);
    
      // Notifica tutte le view aperte
      yield view.postMessage({
        bc: true,
        type: "theme-changed",
        theme: theme
      });
    }

    ShaDropdownMenuSeparator #

    Linea separatrice tra gruppi di voci.

    ShaDropdownMenuLabel #

    Etichetta non cliccabile per raggruppare voci.
    Esempio struttura completa:

    ShaDropdownMenu
    ├── ShaDropdownMenuLabel ("Account")
    ├── ShaDropdownMenuItem ("Profilo")
    ├── ShaDropdownMenuItem ("Impostazioni")
    ├── ShaDropdownMenuSeparator
    ├── ShaDropdownMenuLabel ("Preferenze")
    ├── ShaDropdownMenuCheckboxItem ("Notifiche")
    ├── ShaDropdownMenuSeparator
    └── ShaDropdownMenuItem ("Logout")

    Pattern comuni HeaderBar #

    Menu utente con avatar #

    ShaDropdownMenu
      label: app.user.name
      icon: app.user.avatar
      ├── MenuItem (Profilo)
      ├── MenuItem (Impostazioni)
      ├── Separator
      └── MenuItem (Logout)

    Breadcrumb con limite elementi #

    ShaBreadcrumb
      maxNames: 3  // Mostra max 3 elementi
    
    // Se ci sono più elementi: "Home > ... > Dettaglio"

    Aggiornamento dinamico breadcrumb #

    // Nel metodo onLoad della view
    function* onLoad() {
      yield this.view.dataDM.load();
    
      let data = this.view.dataDM.getData();
    
      // Aggiorna titolo breadcrumb
      view.setTitle(`${data.type}: ${data.name}`);
    }

    Header con azioni contestuali #

    // Aggiungi pulsanti nell'header per azioni della pagina corrente
    ShaHeaderBar
      └── actionsContainer
            ├── ShaButton (Salva)
            ├── ShaButton (Annulla)
            └── ShaButton (Elimina)
    Ti è stato utile?
    Aggiornato il 10 Novembre 2025
    Le pagine ShadowUII pulsanti
    Contenuti
    • ShaHeaderBar
    • ShaBreadcrumb
    • ShaDropdownMenu
      • ShaDropdownMenu
      • ShaDropdownMenuItem
      • ShaDropdownMenuCheckboxItem
      • ShaDropdownMenuRadioGroup e RadioItem
      • ShaDropdownMenuSeparator
      • ShaDropdownMenuLabel
    • Pattern comuni HeaderBar
      • Menu utente con avatar
      • Breadcrumb con limite elementi
      • Aggiornamento dinamico breadcrumb
      • Header con azioni contestuali

    Caratteristiche

    • Perché Instant Developer
    • IDE e Ambiente di Sviluppo
    • Pubblicazione Web & Mobile
    • Software Life Cycle & DevOps
    • Database, Integrazione, Sync
    • Collaboration & Workflow

    Soluzioni

    • Freelance
    • Software House
    • Company IT
    • Casi di successo
    • Applicazioni Sviluppate

    Azienda

    • Chi Siamo
    • Contatti
    • Lavora con noi

    Risorse

    • Documentazione
    • Risorse e Tutorial
    • Blog
    • Starter Kit
    • Pricing
    • Inizia Ora
    Crea un account e Inizia Gratis
    • Seguici su Twitter
    • Seguici su Facebook
    • Seguici su LinkedIn
    • Seguici su YoutTubeSeguici su YouTube
    Questo sito è protetto dalla tecnologia reCAPTCHA Enterprise e si applicano l'Informativa sulla privacy e i Termini di servizio di Google.
    Google Policy | Termini
    © Pro Gamma - p.iva, c.f. e iscr. Camera di Commercio Bologna 01985091204 - Sede legale Via D'Azeglio, 51 40123 Bologna - Italia Pro Gamma Instant Developer® è un marchio registrato.
    Privacy Policy | Cookie Policy
    • IT