Estensione di ContextHub extending-contexthub
Definisci nuovi tipi di archivi e moduli ContextHub quando quelli forniti non soddisfano i requisiti della soluzione.
Creazione di candidati store personalizzati creating-custom-store-candidates
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 creating-a-contexthub-store-candidate
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
. Per imparare da questi esempi, utilizza CRXDE Lite per aprire i file javascript.
Registrazione di un candidato all’archivio ContextHub registering-a-contexthub-store-candidate
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 creating-contexthub-ui-module-types
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. LaClass
l'oggetto definisce una proprietà denominataextend
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 percontexthub.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 il modulo dell’interfaccia utente contexthub.browserinfo. 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
.