ExtJS - Plugin obecně
Po předchozích dvou článcích, které popisovaly plugin pro tab.Panel a grid.Panel si v tentokrát popíšeme základní informace o tom jak si v ExtJS 4 vytvoříme nový plugin.
Základní struktura pluginu není nijak komplikovaná. Začneme jednoduchou definicí třídy, která rozšiřuje třídu AbstractPlugin:
Ext.define('Ext.ux.plugin.TestPlugin',
extend : 'Ext.AbstractPlugin',
alias : 'plugin.testplugin'
Toto je asi nejjednodušší cesta, jak plugin vytvořit. Třída AbstractPlugin nám přináší veškerou funkčnost spojenou s destruktorem, ve chvíli kdy je zavolán destruktor komponenty, ke které je plugin připojen. Alias 'plugin.~nazevpluginu~' vychází z ExtJS systému správy tříd díky čemuž je třída pluginu automaticky zaregistrována pomocí PluginManageru a můžeme ji tak bez problémů připojit k libovolné komponentě:
Ext.create('Ext.Component', {
plugins : [{
ptype : 'testplugin'
}]
});
První metoda, kterou v pluginu vytváříme, je funkce init. Ta je zodpovědná za detekci pluginu a registrování událostí. Druhou metodou je funkce destroy, ve které si po sobě uklidíme. Zbývající části pluginu jsou čistě dle implementace.