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.