Estensione di ContextHub

Definisci nuovi tipi di archivi e moduli ContextHub quando quelli forniti non soddisfano i requisiti della soluzione.

Creazione di candidati store personalizzati

Gli archivi ContextHub vengono creati dai candidati store registrati. Per creare uno store personalizzato, è necessario creare e registrare un candidato allo store.

Il file javascript che include il codice che crea e registra il candidato store deve essere incluso in un cartella libreria client. La categoria della cartella deve corrispondere al seguente pattern:

contexthub.store.[storeType]

La storeType parte della categoria è storeType con cui è registrato il candidato del negozio. (Vedi Registrazione di un candidato all’archivio ContextHub). Ad esempio, per storeType di contexthub.mystore, la categoria della cartella della libreria client deve essere contexthub.store.contexthub.mystore.

Creazione di un candidato all’archivio ContextHub

Per creare un candidato allo store, utilizza la ContextHub.Utils.inheritance.inherit funzione per estendere uno degli archivi di base:

Tieni presente che ogni archivio di base estende ContextHub.Store.Core archiviare.

Nell'esempio seguente viene creata l'estensione più semplice di ContextHub.Store.PersistedStore candidato al negozio:

myStoreCandidate = function(){};
ContextHub.Utils.inheritance.inherit(myStoreCandidate,ContextHub.Store.PersistedStore);

In modo realistico, i candidati all'archivio personalizzati definiranno funzioni aggiuntive o ignoreranno la configurazione iniziale dell'archivio. Diversi candidati allo store di esempio sono installati nell'archivio sottostante /libs/granite/contexthub/components/stores.

Registrazione di un candidato all’archivio ContextHub

Registra un candidato store per integrarlo con il framework ContextHub e abilita la creazione di archivi da esso. Per registrare un candidato di un negozio, utilizza la registerStoreCandidate funzione ContextHub.Utils.storeCandidates classe.

Quando si registra un candidato allo store, specificare un nome per il tipo di store. Quando si crea un negozio dal candidato, si utilizza il tipo di negozio per identificare il candidato su cui si basa.

Quando si registra un candidato al negozio, viene indicata la sua priorità. Quando un candidato viene registrato utilizzando lo stesso tipo di negozio di un candidato già registrato, viene utilizzato il candidato con la priorità più alta. Pertanto, puoi sostituire i candidati esistenti allo store con nuove implementazioni.

ContextHub.Utils.storeCandidates.registerStoreCandidate(myStoreCandidate,
                                'contexthub.mystorecandidate', 0);

Nella maggior parte dei casi è necessario un solo candidato e la priorità può essere impostata su 0, ma se siete interessati potete saperne di più registrazioni più avanzate, che consente di scegliere una delle poche implementazioni store in base alla condizione javascript (applies) e priorità del candidato.

Creazione di tipi di moduli di interfaccia utente ContextHub

Crea tipi di moduli di interfaccia utente personalizzati quando quelli che sono installato con ContextHub non soddisfa le tue esigenze. Per creare un tipo di modulo dell’interfaccia utente, crea un nuovo modulo di rendering dell’interfaccia utente estendendo ContextHub.UI.BaseModuleRenderer e quindi registrarla con ContextHub.UI.

Per creare un modulo di rendering dell’interfaccia utente, crea un Class oggetto contenente la logica che esegue il rendering del modulo dell’interfaccia utente. Come minimo, la classe deve eseguire le azioni seguenti:

  • Estendi la ContextHub.UI.BaseModuleRenderer classe. Questa classe è l’implementazione di base per tutti i moduli di rendering dell’interfaccia utente. La Class l'oggetto definisce una proprietà denominata extend che si utilizza per denominare questa classe come quella in corso di estensione.
  • Fornisci una configurazione predefinita. Crea un defaultConfig proprietà. Questa proprietà è un oggetto che include le proprietà definite per contexthub.base Modulo dell’interfaccia utente e tutte le altre proprietà richieste.

L'origine per ContextHub.UI.BaseModuleRenderer si trova in /libs/granite/contexthub/code/ui/container/js/ContextHub.UI.BaseModuleRenderer.js. Per registrare il modulo di rendering, utilizza la registerRenderer metodo ContextHub.UI classe. È necessario specificare un nome per il tipo di modulo. Quando gli amministratori creano un modulo di interfaccia utente basato su questo modulo di rendering, specificano questo nome.

Crea e registra la classe renderer in una funzione anonima con esecuzione automatica. L'esempio seguente è basato sul codice sorgente per contexthub.browserinfo Modulo interfaccia utente . Questo modulo di interfaccia utente è una semplice estensione del ContextHub.UI.BaseModuleRenderer classe.

;(function() {

    var SurferinfoRenderer = new Class({
        extend: ContextHub.UI.BaseModuleRenderer,

        defaultConfig: {
            icon: 'coral-Icon--globe',
            title: 'Browser/OS Information',

            storeMapping: {
                surferinfo: 'surferinfo'
            },

            template:
                '<p>{{surferinfo.browser.family}} {{surferinfo.browser.version}}</p>' +
                '<p>{{surferinfo.os.name}} {{surferinfo.os.version}}</p>'
        }
    });

    ContextHub.UI.registerRenderer('contexthub.browserinfo', new SurferinfoRenderer());

}());

Il file javascript che include il codice che crea e registra il renderer deve essere incluso in un cartella libreria client. La categoria della cartella deve corrispondere al seguente pattern:

contexthub.module.[moduleType]

La [moduleType] parte della categoria è moduleType con cui viene registrato il modulo di rendering. Ad esempio, per moduleType di contexthub.browserinfo, la categoria della cartella della libreria client deve essere contexthub.module.contexthub.browserinfo.

In questa pagina