Estensione di ContextHub

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

Creazione di candidati store personalizzati

Gli store ContextHub vengono creati dai candidati store registrati. Per creare uno store personalizzato, dovete creare e registrare un candidato per lo store.

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

contexthub.store.[storeType]

La parte storeType della categoria è la storeType con cui è registrato il candidato all'acquisto. (Vedere Registrazione di un candidato per lo store 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 per lo store ContextHub

Per creare un candidato all'acquisto, utilizzate la funzione ContextHub.Utils.inheritance.inherit per estendere uno dei punti vendita di base:

Tenere presente che ogni archivio di base estende lo store ContextHub.Store.Core.

Nell'esempio seguente viene creata l'estensione più semplice del candidato ContextHub.Store.PersistedStore allo store:

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

Realisticamente, i candidati all'acquisto personalizzati definiranno funzioni aggiuntive o ignoreranno la configurazione iniziale dello store. Diversi candidati store di esempio sono installati nella directory archivio sotto /libs/granite/contexthub/components/stores.

Registrazione di un candidato per lo store ContextHub

Registrate un candidato per lo store per integrarlo con il framework ContextHub e consentire la creazione di store da esso. Per registrare un candidato per uno store, utilizzare la funzione registerStoreCandidate della classe ContextHub.Utils.storeCandidates.

Quando registrate un candidato per uno store, fornite un nome per il tipo di store. Quando create uno store dal candidato, utilizzate il tipo di store per identificare il candidato su cui si basa.

Quando registrate un candidato per un negozio, ne indicate la priorità. Quando un candidato del negozio viene registrato con lo stesso tipo di negozio di un candidato già registrato, viene utilizzato il candidato con la priorità più alta. Pertanto, potete escludere i candidati esistenti per lo 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 è possibile conoscere registrazioni più avanzate, che consente di scegliere una delle poche implementazioni dello store in base alla condizione javascript (applies) e alla priorità del candidato.

Creazione di tipi di moduli interfaccia utente ContextHub

Crea tipi di moduli di interfaccia utente personalizzati quando quelli installati con ContextHub non soddisfano i requisiti dell'utente. Per creare un tipo di modulo dell'interfaccia utente, create un nuovo renderer di moduli dell'interfaccia utente estendendo la classe ContextHub.UI.BaseModuleRenderer e quindi registrandola con ContextHub.UI.

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

  • Estende la classe ContextHub.UI.BaseModuleRenderer. Questa classe è l'implementazione di base per tutti i renderer di moduli dell'interfaccia utente. L'oggetto Class definisce una proprietà denominata extend che viene utilizzata per denominare questa classe come quella che viene estesa.
  • Fornire una configurazione predefinita. Creare una proprietà defaultConfig. Questa proprietà è un oggetto che include le proprietà definite per il modulo contexthub.base 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 renderer, utilizzate il metodo registerRenderer della classe ContextHub.UI. È necessario specificare un nome per il tipo di modulo. Quando gli amministratori creano un modulo dell'interfaccia utente basato su questo renderer, specificano questo nome.

Creare e registrare la classe del renderer in una funzione anonima che esegue automaticamente. L'esempio seguente è basato sul codice sorgente per il modulo contexthub.browserinfo dell'interfaccia utente. Questo modulo dell'interfaccia utente è una semplice estensione della classe ContextHub.UI.BaseModuleRenderer.

;(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 una cartella libreria client. La categoria della cartella deve corrispondere al seguente pattern:

contexthub.module.[moduleType]

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

In questa pagina