Upgrade to ExtJS 4.0.0 - Released 04/26/2011
[extjs.git] / examples / desktop / App.js
diff --git a/examples/desktop/App.js b/examples/desktop/App.js
new file mode 100755 (executable)
index 0000000..ef976f4
--- /dev/null
@@ -0,0 +1,129 @@
+/*!
+ * Ext JS Library 4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+
+Ext.define('MyDesktop.App', {
+    extend: 'Ext.ux.desktop.App',
+
+    requires: [
+        'Ext.window.MessageBox',
+
+        'Ext.ux.desktop.ShortcutModel',
+
+        'MyDesktop.SystemStatus',
+        'MyDesktop.VideoWindow',
+        'MyDesktop.GridWindow',
+        'MyDesktop.TabWindow',
+        'MyDesktop.AccordionWindow',
+        'MyDesktop.Notepad',
+        'MyDesktop.BogusMenuModule',
+        'MyDesktop.BogusModule',
+
+//        'MyDesktop.Blockalanche',
+        'MyDesktop.Settings'
+    ],
+
+    init: function() {
+        // custom logic before getXYZ methods get called...
+
+        this.callParent();
+
+        // now ready...
+    },
+
+    getModules : function(){
+        return [
+            new MyDesktop.VideoWindow(),
+            //new MyDesktop.Blockalanche(),
+            new MyDesktop.SystemStatus(),
+            new MyDesktop.GridWindow(),
+            new MyDesktop.TabWindow(),
+            new MyDesktop.AccordionWindow(),
+            new MyDesktop.Notepad(),
+            new MyDesktop.BogusMenuModule(),
+            new MyDesktop.BogusModule()
+        ];
+    },
+
+    getDesktopConfig: function () {
+        var me = this, ret = me.callParent();
+
+        return Ext.apply(ret, {
+            //cls: 'ux-desktop-black',
+
+            contextMenuItems: [
+                { text: 'Change Settings', handler: me.onSettings, scope: me }
+            ],
+
+            shortcuts: Ext.create('Ext.data.Store', {
+                model: 'Ext.ux.desktop.ShortcutModel',
+                data: [
+                    { name: 'Grid Window', iconCls: 'grid-shortcut', module: 'grid-win' },
+                    { name: 'Accordion Window', iconCls: 'accordion-shortcut', module: 'acc-win' },
+                    { name: 'Notepad', iconCls: 'notepad-shortcut', module: 'notepad' },
+                    { name: 'System Status', iconCls: 'cpu-shortcut', module: 'systemstatus'}
+                ]
+            }),
+
+            wallpaper: 'wallpapers/Blue-Sencha.jpg',
+            wallpaperStretch: false
+        });
+    },
+
+    // config for the start menu
+    getStartConfig : function() {
+        var me = this, ret = me.callParent();
+
+        return Ext.apply(ret, {
+            title: 'Don Griffin',
+            iconCls: 'user',
+            height: 300,
+            toolConfig: {
+                width: 100,
+                items: [
+                    {
+                        text:'Settings',
+                        iconCls:'settings',
+                        handler: me.onSettings,
+                        scope: me
+                    },
+                    '-',
+                    {
+                        text:'Logout',
+                        iconCls:'logout',
+                        handler: me.onLogout,
+                        scope: me
+                    }
+                ]
+            }
+        });
+    },
+
+    getTaskbarConfig: function () {
+        var ret = this.callParent();
+
+        return Ext.apply(ret, {
+            quickStart: [
+                { name: 'Accordion Window', iconCls: 'accordion', module: 'acc-win' },
+                { name: 'Grid Window', iconCls: 'icon-grid', module: 'grid-win' }
+            ],
+            trayItems: [
+                { xtype: 'trayclock', flex: 1 }
+            ]
+        });
+    },
+
+    onLogout: function () {
+        Ext.Msg.confirm('Logout', 'Are you sure you want to logout?');
+    },
+
+    onSettings: function () {
+        var dlg = new MyDesktop.Settings({
+            desktop: this.desktop
+        });
+        dlg.show();
+    }
+});