Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / columns.html
diff --git a/docs/source/columns.html b/docs/source/columns.html
new file mode 100644 (file)
index 0000000..fc1e004
--- /dev/null
@@ -0,0 +1,168 @@
+<html>\r
+<head>\r
+  <title>The source code</title>\r
+    <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
+    <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
+</head>\r
+<body  onload="prettyPrint();">\r
+    <pre class="prettyprint lang-js">// Grid column plugin that does the complete/active button in the left-most column\r
+CompleteColumn = function(){\r
+    var grid;\r
+\r
+    function getRecord(t){\r
+        var index = grid.getView().findRowIndex(t);\r
+        return grid.store.getAt(index);\r
+    }\r
+\r
+    function onMouseDown(e, t){\r
+        if(Ext.fly(t).hasClass('task-check')){\r
+            e.stopEvent();\r
+            var record = getRecord(t);\r
+            record.set('completed', !record.data.completed);\r
+            grid.store.applyFilter();\r
+        }\r
+    }\r
+\r
+    function onMouseOver(e, t){\r
+        if(Ext.fly(t).hasClass('task-check')){\r
+            Ext.fly(t.parentNode).addClass('task-check-over');\r
+        }\r
+    }\r
+\r
+    function onMouseOut(e, t){\r
+        if(Ext.fly(t).hasClass('task-check')){\r
+            Ext.fly(t.parentNode).removeClass('task-check-over');\r
+        }\r
+    }\r
+\r
+    Ext.apply(this, {\r
+        width: 22,\r
+        header: '<div class="task-col-hd"></div>',\r
+        fixed: true,\r
+               menuDisabled: true,\r
+        id: 'task-col',\r
+        renderer: function(){\r
+            return '<div class="task-check"></div>';\r
+        },\r
+        init : function(xg){\r
+            grid = xg;\r
+            grid.on('render', function(){\r
+                var view = grid.getView();\r
+                view.mainBody.on('mousedown', onMouseDown);\r
+                view.mainBody.on('mouseover', onMouseOver);\r
+                view.mainBody.on('mouseout', onMouseOut);\r
+            });\r
+        }\r
+    });\r
+};\r
+\r
+\r
+ReminderColumn = function(){\r
+    var grid, menu, record;\r
+\r
+       function getRecord(t){\r
+        var index = grid.getView().findRowIndex(t);\r
+        return grid.store.getAt(index);\r
+    }\r
+       \r
+       function onMenuCheck(item){\r
+               if(item.reminder === false){\r
+                       record.set('reminder', '');\r
+               }else{\r
+                       var s = record.data.dueDate ? record.data.dueDate.clearTime(true) : new Date().clearTime();\r
+                       s = s.add('mi', Ext.state.Manager.get('defaultReminder'));\r
+                       s = s.add('mi', item.reminder*-1);\r
+                       record.set('reminder', s);\r
+               }\r
+       }\r
+\r
+       function getMenu(){\r
+               if(!menu){\r
+                       menu = new Ext.menu.Menu({\r
+                               plain: true,\r
+                               items: [{\r
+                                       text: 'No Reminder',\r
+                                       reminder: false,\r
+                                       handler: onMenuCheck\r
+                               },'-',{\r
+                                       text: 'On the Due Date',\r
+                                       reminder: 0,\r
+                                       handler: onMenuCheck\r
+                               },'-',{\r
+                                       text: '1 day before',\r
+                                       reminder: 24*60,\r
+                                       handler: onMenuCheck\r
+                               },{\r
+                                       text: '2 days before',\r
+                                       reminder: 48*60,\r
+                                       handler: onMenuCheck\r
+                               },{\r
+                                       text: '3 days before',\r
+                                       reminder: 72*60,\r
+                                       handler: onMenuCheck\r
+                               },{\r
+                                       text: '1 week before',\r
+                                       reminder: 7*24*60,\r
+                                       handler: onMenuCheck\r
+                               },{\r
+                                       text: '2 weeks before',\r
+                                       reminder: 14*24*60,\r
+                                       handler: onMenuCheck\r
+                               },'-',{\r
+                                       text: 'Set Default Time...',\r
+                                       handler: function(){\r
+                                               Ext.air.NativeWindowManager.getPrefWindow();\r
+                                       }\r
+                               }]\r
+                       });\r
+               }\r
+               return menu;\r
+       }\r
+\r
+    function onMouseDown(e, t){\r
+        if(Ext.fly(t).hasClass('reminder')){\r
+                       e.stopEvent();\r
+            record = getRecord(t);\r
+                       if (!record.data.completed) {\r
+                               var rmenu = getMenu();\r
+                               rmenu.show(t, 'tr-br?');\r
+                       }\r
+        }\r
+    }\r
+\r
+    function onMouseOver(e, t){\r
+        if(Ext.fly(t).hasClass('reminder')){\r
+            Ext.fly(t.parentNode).addClass('reminder-over');\r
+        }\r
+    }\r
+\r
+    function onMouseOut(e, t){\r
+        if(Ext.fly(t).hasClass('reminder')){\r
+            Ext.fly(t.parentNode).removeClass('reminder-over');\r
+        }\r
+    }\r
+\r
+    Ext.apply(this, {\r
+        width: 26,\r
+        header: '<div class="reminder-col-hd"></div>',\r
+        fixed: true,\r
+        id: 'reminder-col',\r
+               menuDisabled: true,\r
+        dataIndex:'reminder',\r
+        renderer: function(v){\r
+                       return '<div class="reminder '+(v ? 'reminder-active' : '')+'"></div>';\r
+        },\r
+        init : function(xg){\r
+            grid = xg;\r
+            grid.on('render', function(){\r
+                var view = grid.getView();\r
+                view.mainBody.on('contextmenu', onMouseDown);\r
+                view.mainBody.on('mousedown', onMouseDown);\r
+                view.mainBody.on('mouseover', onMouseOver);\r
+                view.mainBody.on('mouseout', onMouseOut);\r
+            });\r
+        }\r
+    });\r
+};</pre>    \r
+</body>\r
+</html>
\ No newline at end of file