diff --git a/static/plugin_dbui/src/base.js b/static/plugin_dbui/src/base.js
index c47901b2c6f97ca7036870113fc3fcb9b0e9440a..e90a4a666686c36ae5ec09e7ac04213d070b5e56 100644
--- a/static/plugin_dbui/src/base.js
+++ b/static/plugin_dbui/src/base.js
@@ -193,7 +193,4 @@ Ext.define('App', {
         }
         return false;
     }
-});
-
-// Define name spaces for the remaining class.
-Ext.ns("App.data", "App.form", "App.grid", "App.panel");
+});
\ No newline at end of file
diff --git a/static/plugin_dbui/src/basepanelwithselector.js b/static/plugin_dbui/src/basepanelwithselector.js
index b5849a95924c822be3f0c381f940514bab497c53..06554445502c854e782f151ec741567e361a6481 100644
--- a/static/plugin_dbui/src/basepanelwithselector.js
+++ b/static/plugin_dbui/src/basepanelwithselector.js
@@ -22,7 +22,7 @@
 Ext.define('App.BasePanelWithSelector', {
 
     extend: 'Ext.Panel',
-    xtype: 'xpanelwithselector',
+    alias: 'widget.xpanelwithselector',
 
     /**
      * @cfg {Object}
diff --git a/static/plugin_dbui/src/buttondownload.js b/static/plugin_dbui/src/buttondownload.js
index d140f7e319ba0a918271adc980aff6269b9405db..da43a7e50ba8c4ba7231a759575d612984d74ccc 100644
--- a/static/plugin_dbui/src/buttondownload.js
+++ b/static/plugin_dbui/src/buttondownload.js
@@ -5,7 +5,7 @@
 Ext.define('App.ButtonDownload', {
 
     extend: 'Ext.Button',
-    xtype: 'xbuttondownload',
+    alias: 'widget.xbuttondownload',
 
     /**
      * @cfg{String}
diff --git a/static/plugin_dbui/src/combobox.js b/static/plugin_dbui/src/combobox.js
index 778ddd4dc010e6a9158d10da122441275b57531a..f1484d6db06dd34a0c02aa5b31a029daecde77a7 100644
--- a/static/plugin_dbui/src/combobox.js
+++ b/static/plugin_dbui/src/combobox.js
@@ -5,7 +5,7 @@
 Ext.define('App.form.ComboBox', {
 
     extend: 'Ext.form.ComboBox',
-    xtype: 'xcombobox',
+    alias: 'widget.xcombobox',
 
     // Predefined setting
     mode: 'remote',
diff --git a/static/plugin_dbui/src/fielddict.js b/static/plugin_dbui/src/fielddict.js
index e51b1427b9e456b1a768fc234c3b65c72bdc7363..b572663bef9fa1fce17b02b7db4efb547e140654 100644
--- a/static/plugin_dbui/src/fielddict.js
+++ b/static/plugin_dbui/src/fielddict.js
@@ -1,11 +1,13 @@
 /**
  * Extend the default type for Ext.grid.column in order to render JSON object.
- * The new type can be access using xtype = jsoncolumn in the column model.
+ *
+ * @since 0.4.15.0
  *
  */
 Ext.define('Ext.grid.JsonColumn', {
 
-    extend: 'Ext.grid.Column',
+    extend: 'Ext.grid.column.Column',
+    alias: 'widget.jsoncolumn',
 
     constructor: function (cfg) {
 
@@ -16,8 +18,6 @@ Ext.define('Ext.grid.JsonColumn', {
     }
 });
 
-Ext.grid.Column.types.jsoncolumn = Ext.grid.JsonColumn;
-
 /**
  * The DictField widget is an Ext.grid.PropertyGrid which is associated
  * to a JSON database field. It can be embedded in Ext.form.FormPanel.
@@ -35,7 +35,7 @@ Ext.grid.Column.types.jsoncolumn = Ext.grid.JsonColumn;
 Ext.define('App.form.DictField', {
 
     extend: 'Ext.form.Field',
-    xtype: 'xdictfield',
+    alias: 'widget.xdictfield',
 
     /**
      * @cfg {Boolean}
diff --git a/static/plugin_dbui/src/fieldeditor.js b/static/plugin_dbui/src/fieldeditor.js
index c40468e0fed74b92f5079704dad73852f1ad9b5d..19fe3553b19990e1c0f9991704fe74a0ab349300 100644
--- a/static/plugin_dbui/src/fieldeditor.js
+++ b/static/plugin_dbui/src/fieldeditor.js
@@ -10,7 +10,7 @@
 Ext.define('App.form.AceEditorField', {
 
     extend: 'Ext.form.Field',
-    xtype: 'xaceeditorfield',
+    alias: 'widget.xaceeditorfield',
 
     /**
      * @cfg {Number}
diff --git a/static/plugin_dbui/src/fieldlist.js b/static/plugin_dbui/src/fieldlist.js
index 27551edcf739434fa77c105699c6bf555087460b..cbddd064681104cfa3cb01749bd346812e1c458f 100644
--- a/static/plugin_dbui/src/fieldlist.js
+++ b/static/plugin_dbui/src/fieldlist.js
@@ -11,7 +11,7 @@
 Ext.define('App.form.ListField', {
 
     extend: 'Ext.form.Field',
-    xtype: 'xlistfield',
+    alias: 'widget.xlistfield',
 
     /**
      * @cfg {boolean}
diff --git a/static/plugin_dbui/src/form.js b/static/plugin_dbui/src/form.js
index f83ab2b4172cf2cfc353357043cbc9f059655d9d..a3a3f0303edfd7a2d64a7790eca682c23d59cd9f 100644
--- a/static/plugin_dbui/src/form.js
+++ b/static/plugin_dbui/src/form.js
@@ -12,7 +12,7 @@
 Ext.define('App.form.FormPanel', {
 
     extend: 'Ext.form.FormPanel',
-    xtype: 'xform',
+    alias: 'widget.xform',
 
     /**
      * @property {Ext.Button}
diff --git a/static/plugin_dbui/src/grid.js b/static/plugin_dbui/src/grid.js
index 845b5b18f358a8c0cf88e7ac47990e07c3e8f43c..d70f157977f46569f711effe30643a832b79429b 100644
--- a/static/plugin_dbui/src/grid.js
+++ b/static/plugin_dbui/src/grid.js
@@ -7,7 +7,7 @@
 Ext.define('App.grid.Grid', {
 
     extend: 'Ext.grid.GridPanel',
-    xtype: 'xgrid',
+    alias: 'widget.xgrid',
 
     /**
      * @property {Number}
diff --git a/static/plugin_dbui/src/gridfilter.js b/static/plugin_dbui/src/gridfilter.js
index 45a1b6125036e4647e1b70b5e765d38e9ec448f9..86d6017dac97426b8f2e94f5a18d80c432885188 100644
--- a/static/plugin_dbui/src/gridfilter.js
+++ b/static/plugin_dbui/src/gridfilter.js
@@ -7,7 +7,7 @@
 Ext.define('App.grid.GridFilter', {
 
     extend: 'Ext.form.FieldSet',
-    xtype: 'xgridfilter',
+    alias: 'widget.xgridfilter',
 
     // Private object containing where clause related to the filter resquest
     filterConditions: {},
diff --git a/static/plugin_dbui/src/gridwithfilter.js b/static/plugin_dbui/src/gridwithfilter.js
index 1334837c4c628c1875b000c0b0815ec10580c580..def90c2778d5b737e40a7373d28b526bab7b7287 100644
--- a/static/plugin_dbui/src/gridwithfilter.js
+++ b/static/plugin_dbui/src/gridwithfilter.js
@@ -5,7 +5,7 @@
 Ext.define('App.grid.GridWithFilter', {
 
     extend: 'App.BasePanelWithSelector',
-    xtype: 'xgridwithfilter',
+    alias: 'widget.xgridwithfilter',
 
     // private method require by the Ext JS component model
     initComponent: function () {
diff --git a/static/plugin_dbui/src/jsonstore.js b/static/plugin_dbui/src/jsonstore.js
index 985cf69b966cffc5e52996eb580a54d01884916e..6a62c0fc9391e161c77ec2537381131771040677 100644
--- a/static/plugin_dbui/src/jsonstore.js
+++ b/static/plugin_dbui/src/jsonstore.js
@@ -15,7 +15,7 @@
 Ext.define('App.data.DirectStore', {
 
     extend: 'Ext.data.DirectStore',
-    xtype: 'xdirectstore',
+    alias: 'widget.xdirectstore',
 
     /**
      * @property {Boolean} encode JsonWiter property, by default false
diff --git a/static/plugin_dbui/src/linkedcombobox.js b/static/plugin_dbui/src/linkedcombobox.js
index fd5462ba03361cbeed005c9e2f1c2f32201d4285..53122da0a44e6b77577e02b3e967131deddf77b5 100644
--- a/static/plugin_dbui/src/linkedcombobox.js
+++ b/static/plugin_dbui/src/linkedcombobox.js
@@ -19,7 +19,7 @@
 Ext.define('App.form.LinkedComboBox', {
 
     extend: 'Ext.form.ComboBox',
-    xtype: 'xlinkedcombobox',
+    alias: 'widget.xlinkedcombobox',
 
     /**
      * @cfg {String}
diff --git a/static/plugin_dbui/src/panelwithurlselector.js b/static/plugin_dbui/src/panelwithurlselector.js
index 83db3a11758c40a5f82f1ea7f1fc41bfdc4a888e..bef462ebe3b74cb50f6476f5559becbfea743903 100644
--- a/static/plugin_dbui/src/panelwithurlselector.js
+++ b/static/plugin_dbui/src/panelwithurlselector.js
@@ -20,7 +20,7 @@
 Ext.define('App.PanelWithUrlSelector', {
 
     extend: 'App.BasePanelWithSelector',
-    xtype: 'xpanelwithurlselector',
+    alias: 'widget.xpanelwithurlselector',
 
     /**
      * @cfg {String}
diff --git a/static/plugin_dbui/src/pformtooltip.js b/static/plugin_dbui/src/pformtooltip.js
index a64d6ed4e38a27a965952684af56a1ea293aeb84..bf10fc2a804f8123aadfeec598d4c1723dce4c5f 100644
--- a/static/plugin_dbui/src/pformtooltip.js
+++ b/static/plugin_dbui/src/pformtooltip.js
@@ -6,15 +6,11 @@
  *
  * **Note**: It used the dedicated Field configuration option: *tipText*.
  *
- * @ptype pFormToolTip
- *
  */
 Ext.define('App.form.ToolTip', {
 
     extend: 'Object',
-
-    // Private parameter identifying the type of plugin
-    ptype: 'pFormToolTip',
+    alias: 'plugin.pFormToolTip',
 
     /**
      * The plugin initialization
@@ -47,11 +43,4 @@ Ext.define('App.form.ToolTip', {
             }
         });
     }
-},
-
-function() {
-    // Note: require to register the plugin in Ext JS 3.4.1.1
-    // to be removed in Ext JS 4 and use the alias: 'plugin.ptype' instead.
-    Ext.preg('pFormToolTip', App.form.ToolTip);
-});
-
+});
\ No newline at end of file
diff --git a/static/plugin_dbui/src/pgridexpertmenu.js b/static/plugin_dbui/src/pgridexpertmenu.js
index f1c10469a74c58352f29ef4d329744ef22b2fdd8..adfc6b7c101cbb6933691987b8e35966a9298455 100644
--- a/static/plugin_dbui/src/pgridexpertmenu.js
+++ b/static/plugin_dbui/src/pgridexpertmenu.js
@@ -1,14 +1,11 @@
 /**
  * The grid expert menu plugin for toolbar
  *
- * @ptype pGridExpertMenu
  */
 Ext.define('App.grid.ExpertMenu', {
 
     extend: 'Object',
-
-    // Private property identifying the type of plugin
-    ptype: 'pGridExpertMenu',
+    alias: 'plugin.pGridExpertMenu',
 
     // Private properties for internationalisation
     textExport: 'Export to CSV file',
@@ -54,10 +51,4 @@ Ext.define('App.grid.ExpertMenu', {
         var grid = this;
         grid.reset();
     }
-},
-
-function() {
-    // Note: require to register the plugin in Ext JS 3.4.1.1
-    // to be removed in Ext JS 4 and use the alias: 'plugin.ptype' instead.
-    Ext.preg('pGridExpertMenu', App.grid.ExpertMenu);
 });
\ No newline at end of file
diff --git a/static/plugin_dbui/src/pgridmathjax.js b/static/plugin_dbui/src/pgridmathjax.js
index 84153ec931988eea1247dddec259d543c833b39d..7332914837c1c95d9c3115ae9bde5b133c60ad90 100644
--- a/static/plugin_dbui/src/pgridmathjax.js
+++ b/static/plugin_dbui/src/pgridmathjax.js
@@ -3,15 +3,11 @@
  * The processing is performed by MathJax.
  * The MathJax library is loaded by the framework
  *
- * @ptype pGridMathJax
- *
  */
 Ext.define('App.grid.MathJax', {
 
     extend: 'Object',
-
-    // Private property identifying the type of plugin
-    ptype: 'pGridMathJax',
+    alias: 'plugin.pGridMathJax',
 
     /**
      * The plugin initialization
@@ -54,10 +50,4 @@ Ext.define('App.grid.MathJax', {
         MathJax.Hub.Queue(["Typeset", MathJax.Hub, domEl]);
 
     }
-},
-
-function() {
-    // Note: require to register the plugin in Ext JS 3.4.1.1
-    // to be removed in Ext JS 4 and use the alias: 'plugin.ptype' instead.
-    Ext.preg('pGridMathJax', App.grid.MathJax);
 });
\ No newline at end of file
diff --git a/static/plugin_dbui/src/pgridpaging.js b/static/plugin_dbui/src/pgridpaging.js
index 3bec6a1d9c90d09162db96e0d9791c700556b97d..a919514e77b161e10b0779d1667528f9b9211277 100644
--- a/static/plugin_dbui/src/pgridpaging.js
+++ b/static/plugin_dbui/src/pgridpaging.js
@@ -6,17 +6,11 @@
  * **Note**: the number of row load in the grid at the first time
  * is defined by the grid when loading the store.
  *
- * @class App.grid.Paging
- * @extend Object
- * @ptype pGridPaging
- *
  */
 Ext.define('App.grid.Paging', {
 
     extend: 'Object',
-
-    // Private property identifying the type of plugin
-    ptype: 'pGridPaging',
+    alias: 'plugin.pGridPaging',
 
     // Private property for internationalisation
     textSlider: 'Rows per page',
@@ -199,11 +193,4 @@ Ext.define('App.grid.Paging', {
         slider.setMaxValue(grid.store.getTotalCount());
         slider.setValue(grid.store.getCount());
     }
-},
-
-function() {
-    // Note: require to register the plugin in Ext JS 3.4.1.1
-    // to be removed in Ext JS 4 and use the alias: 'plugin.ptype' instead.
-    Ext.preg('pGridPaging', App.grid.Paging);
-});
-
+});
\ No newline at end of file
diff --git a/static/plugin_dbui/src/pgridroweditorbase.js b/static/plugin_dbui/src/pgridroweditorbase.js
index 5a4adb93f43c37e0ec72305be402360fb25cc525..72b4aee258dd84a8c1de5d71f30fba7fe407a902 100644
--- a/static/plugin_dbui/src/pgridroweditorbase.js
+++ b/static/plugin_dbui/src/pgridroweditorbase.js
@@ -6,15 +6,11 @@
  *
  * **Note**: This plugin limits the number of selected row to one.
  *
- * @ptype pGridRowEditor
- *
  */
 Ext.define('App.grid.RowEditor',  {
 
     extend: 'Ext.Window',
-
-    // Private attribute identifying the type of plugin
-    ptype: 'pGridRowEditor',
+    alias: 'plugin.pGridRowEditor',
 
     // Private shortcuts
     formPanel: null,
@@ -286,11 +282,4 @@ Ext.define('App.grid.RowEditor',  {
             this.formPanel.currentIndex = index;
         }
     }
-},
-
-function() {
-    // Note: require to register the plugin in Ext JS 3.4.1.1
-    // to be removed in Ext JS 4 and use the alias: 'plugin.ptype' instead.
-    Ext.preg('pGridRowEditor', App.grid.RowEditor);
-});
-
+});
\ No newline at end of file
diff --git a/static/plugin_dbui/src/pgridroweditorconfirmdelete.js b/static/plugin_dbui/src/pgridroweditorconfirmdelete.js
index 79d6a566d685beef67ceffc0f7076feb7912032e..9ecd11e6d2b92aaaf85bc9cbb337a03a51cbab52 100644
--- a/static/plugin_dbui/src/pgridroweditorconfirmdelete.js
+++ b/static/plugin_dbui/src/pgridroweditorconfirmdelete.js
@@ -1,15 +1,11 @@
 /**
  * Extend the grid App.grid.RowEditor plugin by adding confirmation on delete.
  *
- * @ptype pGridRowEditorConfirmDelete
- *
  */
 Ext.define('App.grid.RowEditorConfirmDelete',  {
 
     extend: 'App.grid.RowEditor',
-
-    // Private attribute identifying the type of plugin
-    ptype: 'pGridRowEditorConfirmDelete',
+    alias: 'plugin.pGridRowEditorConfirmDelete',
 
     // Private property for internationalization
     confirmMsg: 'Do you really want to delete this item?',
@@ -33,11 +29,4 @@ Ext.define('App.grid.RowEditorConfirmDelete',  {
             }
         }, this);
     }
-},
-
-function() {
-    // Note: require to register the plugin in Ext JS 3.4.1.1
-    // to be removed in Ext JS 4 and use the alias: 'plugin.ptype' instead.
-    Ext.preg('pGridRowEditorConfirmDelete', App.grid.RowEditorConfirmDelete);
-});
-
+});
\ No newline at end of file
diff --git a/static/plugin_dbui/src/pgridroweditorcontextmenu.js b/static/plugin_dbui/src/pgridroweditorcontextmenu.js
index 861a6f68be45d0200db5636b7d881f1f6264fafb..69336416085041be226a459a6f5b90ddc7c3fd82 100644
--- a/static/plugin_dbui/src/pgridroweditorcontextmenu.js
+++ b/static/plugin_dbui/src/pgridroweditorcontextmenu.js
@@ -4,17 +4,13 @@
  * Display the context menu when the user right click on a row.
  * The content of the menu allows to manipulate the App.grid.RowEditor.
  *
- * @ptype pGridRowEditorContextMenu
- *
  * @uses App.grid.RowEditor
  *
  */
 Ext.define('App.grid.RowEditorContextMenu',  {
 
     extend: 'Object',
-
-    // Private attribute identifying the type of plugin
-    ptype: 'pGridRowEditorContextMenu',
+    alias: 'plugin.pGridRowEditorContextMenu',
 
     // private properties for internationalization
     textAdd: 'Add',
@@ -140,11 +136,4 @@ Ext.define('App.grid.RowEditorContextMenu',  {
         grid.selModel.selectRow(rowIndex);
         this.menu.showAt(event.getXY());
     }
-},
-
-function() {
-    // Note: require to register the plugin in Ext JS 3.4.1.1
-    // to be removed in Ext JS 4 and use the alias: 'plugin.ptype' instead.
-    Ext.preg('pGridRowEditorContextMenu', App.grid.RowEditorContextMenu);
-});
-
+});
\ No newline at end of file
diff --git a/static/plugin_dbui/src/pgridroweditordblclick.js b/static/plugin_dbui/src/pgridroweditordblclick.js
index cb09254d5151c003008ebc570e253cae0c6b84d6..c3c33f1c418c2443b984fb06ba6b5e24158945b8 100644
--- a/static/plugin_dbui/src/pgridroweditordblclick.js
+++ b/static/plugin_dbui/src/pgridroweditordblclick.js
@@ -2,16 +2,12 @@
  * The grid plugin instantiating RowEditor double click.
  * Launch the update action when the user double click on a row.
  *
- * @ptype pGridRowEditorDblClick
- *
  * @uses App.grid.RowEditor
  */
 Ext.define('App.grid.RowEditorDblClick',  {
 
     extend: 'Object',
-
-    // Private attribute identifying the type of plugin
-    ptype: 'pGridRowEditorDblClick',
+    alias: 'plugin.pGridRowEditorDblClick',
 
     /**
      * Plugin initialization
@@ -42,11 +38,4 @@ Ext.define('App.grid.RowEditorDblClick',  {
 
         grid.un('rowdblclick', grid.rowEditor.onEditRow, grid.rowEditor);
     }
-},
-
-function() {
-    // Note: require to register the plugin in Ext JS 3.4.1.1
-    // to be removed in Ext JS 4 and use the alias: 'plugin.ptype' instead.
-    Ext.preg('pGridRowEditorDblClick', App.grid.RowEditorDblClick);
-});
-
+});
\ No newline at end of file
diff --git a/static/plugin_dbui/src/pgridroweditortoolbar.js b/static/plugin_dbui/src/pgridroweditortoolbar.js
index 751b2c6612966270f314de4884924d8ca8cb0c22..6c9c862b628534cbcb4319b6eff3cf6b6abd98d6 100644
--- a/static/plugin_dbui/src/pgridroweditortoolbar.js
+++ b/static/plugin_dbui/src/pgridroweditortoolbar.js
@@ -2,17 +2,13 @@
  * The grid plugin instantiating a toolbar with buttons to manipulate
  * the App.grid.RowEditor.
  *
- * @ptype pGridRowEditorToolbar
- *
  * @uses App.grid.RowEditor
  *
  */
 Ext.define('App.grid.RowEditorToolbar',  {
 
     extend: 'Object',
-
-    // Private parameter identifying the type of plugin
-    ptype: 'pGridRowEditorToolbar',
+    alias: 'plugin.pGridRowEditorToolbar',
 
     /**
      * Plugin initialization
@@ -59,11 +55,4 @@ Ext.define('App.grid.RowEditorToolbar',  {
             scope: grid.rowEditor
         }, '-']);
     }
-},
-
-function() {
-    // Note: require to register the plugin in Ext JS 3.4.1.1
-    // to be removed in Ext JS 4 and use the alias: 'plugin.ptype' instead.
-    Ext.preg('pGridRowEditorToolbar', App.grid.RowEditorToolbar);
-});
-
+});
\ No newline at end of file
diff --git a/static/plugin_dbui/src/ppanelmathjax.js b/static/plugin_dbui/src/ppanelmathjax.js
index 4fe1408cd0d61bdd932b88dfa5a8d5137830f1a7..2c8330a5d2cb5d96f80cac495bbe78ac57255e46 100644
--- a/static/plugin_dbui/src/ppanelmathjax.js
+++ b/static/plugin_dbui/src/ppanelmathjax.js
@@ -2,15 +2,11 @@
  * Plugin to render mathematics formula embedded in HTML content.
  * The processing is performed by the [MathJax](http://www.mathjax.org/) library.
  *
- * @ptype pPanelMathJax
- *
  */
 Ext.define('App.panel.MathJax',  {
 
     extend: 'Object',
-
-    // Private property identifying the type of plugin
-    ptype: 'pPanelMathJax',
+    alias: 'plugin.pPanelMathJax',
 
     /**
      * The plugin initialization
@@ -50,11 +46,4 @@ Ext.define('App.panel.MathJax',  {
         MathJax.Hub.PreProcess();
         MathJax.Hub.Process();
     }
-},
-
-function() {
-    // Note: require to register the plugin in Ext JS 3.4.1.1
-    // to be removed in Ext JS 4 and use the alias: 'plugin.ptype' instead.
-    Ext.preg('pPanelMathJax', App.panel.MathJax);
-});
-
+});
\ No newline at end of file
diff --git a/static/plugin_dbui/src/pregexp.js b/static/plugin_dbui/src/pregexp.js
index 29af339015c08abd723de8cd5059d68ee02ddeec..32e317aa91d1e3c2272cd1674af5dfa8a9711880 100644
--- a/static/plugin_dbui/src/pregexp.js
+++ b/static/plugin_dbui/src/pregexp.js
@@ -3,17 +3,11 @@
  * by a regular expression object.
  * It can be used by any component using the property *regex*.
  *
- * @class App.PRegExp
- * @extend Object
- * @ptype pRegEx
- *
  */
 Ext.define('App.PRegExp',  {
 
     extend: 'Object',
-
-    // Private property identifying the type of plugin
-    ptype: 'pRegExp',
+    alias: 'plugin.pRegExp',
 
     /**
      * The plugin initialization
@@ -29,11 +23,5 @@ Ext.define('App.PRegExp',  {
             component.regex = new RegExp(component.regex);
         }
     }
-},
-
-function() {
-    // Note: require to register the plugin in Ext JS 3.4.1.1
-    // to be removed in Ext JS 4 and use the alias: 'plugin.ptype' instead.
-    Ext.preg('pRegExp', App.PRegExp);
 });
 
diff --git a/static/plugin_dbui/src/pviewportlogin.js b/static/plugin_dbui/src/pviewportlogin.js
index 0e16ba73168dc30382e80eb491e721ec76a46d70..b82f2e2dacac5cab1b6c8239f3ea99781819fda7 100644
--- a/static/plugin_dbui/src/pviewportlogin.js
+++ b/static/plugin_dbui/src/pviewportlogin.js
@@ -7,17 +7,13 @@
  *      Change password → /application/default/user/change_password
  *      Logout          → /application/default/user/logout
  *
- * @ptype pViewportLogin
- *
  * @uses App.Viewport
  *
  */
 Ext.define('App.ViewportLogin', {
 
     extend: 'Object',
-
-    // Private attribute identifying the type of plugin
-    ptype: 'pViewportLogin',
+    alias: 'plugin.pViewportLogin',
 
     // Private properties for internationalization
     textChangePwd: "Change password...",
@@ -94,10 +90,4 @@ Ext.define('App.ViewportLogin', {
 
         window.location = url + button.href;
     }
-},
-
-function() {
-    // Note: require to register the plugin in Ext JS 3.4.1.1
-    // to be removed in Ext JS 4 and use the alias: 'plugin.ptype' instead.
-    Ext.preg('pViewportLogin', App.ViewportLogin);
-});
+});
\ No newline at end of file
diff --git a/static/plugin_dbui/src/viewport.js b/static/plugin_dbui/src/viewport.js
index a0233693d54294d848296236ac5ae25b86bf75a4..d1d70a23020497574219419dc50f05b2279006fe 100644
--- a/static/plugin_dbui/src/viewport.js
+++ b/static/plugin_dbui/src/viewport.js
@@ -17,7 +17,7 @@
 Ext.define('App.Viewport', {
 
     extend: 'Ext.Viewport',
-    xtype: 'xviewport',
+    alias: 'widget.xviewport',
 
     /**
      * @property {Ext.tree.TreeNode.tex[]}