> Hello everybody, i am working with  qx.ui.table.headerrenderer.HeaderCell
> and i found an example that works perfectly, but when i try to implement it
> in a class, it show this error:
>
> TypeError: ga.sgop.common.models.headerRenderer is not a constructor
>
> here is the code from the playground (it works perfectly):
>
> ............................................................................................................
> qx.Class.define("myHeaderCell",
> {
>   extend : qx.ui.table.headerrenderer.HeaderCell,
>
>   construct : function()
>   {
>     this.base(arguments);
>   },
>
>   members :
>   {
>     // overridden
>     _createChildControlImpl : function(id, hash)
>     {
>       var control;
>
>       switch(id)
>       {
>         case "label":
>           control = new qx.ui.basic.Label(this.getLabel()).set({
>             anonymous: true,
>             allowShrinkX: true,
>             rich : true,
>             wrap: true
>           });
>           this._add(control, {row: 0, column: 1});
>           break;
>       }
>
>       return control || this.base(arguments, id);
>     }
>   }
> });
>
> qx.Class.define("myHeaderRenderer",
> {
>   extend : qx.ui.table.headerrenderer.Default,
>
>   members :
>   {
>       _getContextMenuA : function()
>       {
>         var menu = new qx.ui.menu.Menu();
>             var btn = new qx.ui.menu.CheckBox("Modificar").set({value:
> true});
>             var btn1 = new qx.ui.menu.CheckBox("Eliminar").set({value:
> true});
>             menu.add(btn);
>             menu.add(btn1);
>             return menu;
>         },
>
>     // overridden
>     createHeaderCell : function(cellInfo)
>     {
>       var widget = new myHeaderCell();
>       widget.setContextMenu(this._getContextMenuA());
>       this.updateHeaderCell(cellInfo, widget);
>
>       return widget;
>     }
>   }
> });
>
>
>
> function createRandomRows(rowCount) {
>   var rowData = [];
>   var now = new Date().getTime();
>   var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
>   var nextId = 0;
>   for (var row = 0; row < rowCount; row++) {
>     var date = new Date(now + Math.random() * dateRange - dateRange / 2);
>     rowData.push([ nextId++, Math.random() * 10000, date, (Math.random() >
> 0.5) ]);
>   }
>   return rowData;
> }
>
>
> // window
> var win = new qx.ui.window.Window("Table").set({
>   layout : new qx.ui.layout.Grow(),
>   allowClose: false,
>   allowMinimize: false,
>   contentPadding: 0
> });
> this.getRoot().add(win);
> win.moveTo(30, 40);
> win.open();
>
> // table model
> var tableModel = new qx.ui.table.model.Simple();
> tableModel.setColumns([ "ID", "A number dsfsdfolsdf sdfoldsfds fsdfsdofsd
> fds fsdkfsdnfs dfdsf", "A date", "Boolean" ]);
> tableModel.setData(createRandomRows(1000));
>
> // make second column editable
> tableModel.setColumnEditable(1, true);
>
> // table
> var table = new qx.ui.table.Table(tableModel).set({
>   decorator: null
> });
> win.add(table);
>
> var tcm = table.getTableColumnModel();
>
> // Display a checkbox in column 3
> tcm.setDataCellRenderer(3, new qx.ui.table.cellrenderer.Boolean());
>
> // use a different header renderer
>
> table.setHeaderCellHeight(50);
> tcm.setHeaderCellRenderer(1, new myHeaderRenderer);
> tcm.setHeaderCellRenderer(3, new myHeaderRenderer);
>
> ............................................................................................................
>
>
> Now, when i try to implement it in a class:
>
> ....................headerCell class.......................
>
> qx.Class.define("ga.sgop.common.models.headerCell",
> {
>   extend : qx.ui.table.headerrenderer.HeaderCell,
>
>   construct : function()
>   {
>     this.base(arguments);
>   },
>
>   members :
>   {
>     // overridden
>     _createChildControlImpl : function(id, hash)
>     {
>       var control;
>
>       switch(id)
>       {
>         case "label":
>           control = new qx.ui.basic.Label(this.getLabel()).set({
>             anonymous: true,
>             allowShrinkX: true,
>             rich : true,
>             wrap: true
>           });
>           this._add(control, {row: 0, column: 1});
>           break;
>       }
>       return control || this.base(arguments, id);
>     }
>   }
> });
>
> ....................headerRenderer class.......................
> qx.Class.define("ga.sgop.common.models.headerRenderer",
> {
>   extend : qx.ui.table.headerrenderer.Default,
>
> //  properties:{
> //    values: {init: [], nullable: false, event: changeValues}
> //  },
>
>   members :
>   {
>       _getContextMenuA : function()
>       {
>         var menu = new qx.ui.menu.Menu();
> //        values = this.getValues(),
> //        i =0;
> //        while(values[i]){
> //            var btn = new qx.ui.menu.CheckBox(values[i]).set({value:
> true});
> //            menu.add(btn);
> //            i++;
> //        }
>             var btn = new qx.ui.menu.CheckBox("Modificar").set({value:
> true});
>             var btn1 = new qx.ui.menu.CheckBox("Eliminar").set({value:
> true});
>             menu.add(btn);
>             menu.add(btn1);
>             return menu;
>         },
>
>     // overridden
>     createHeaderCell : function(cellInfo)
>     {
>       var widget = new ga.sgop.common.models.headerCell();
>       widget.setContextMenu(this._getContextMenuA());
>       this.updateHeaderCell(cellInfo, widget);
>       return widget;
>     }
>   }
> });
>
> ....................the example class....................
> qx.Class.define("ga.ejemplo",
>         {
>     extend : qx.ui.window.Window,
>
>     properties:{
>         value: {check: 'Object', nullable: true, init: null, event:
> 'changeValue'},
>         save: {check: 'Boolean', nullable: false, init: false, event:
> 'changeSave'}
>     },
>
>     include: [ga.sgop.common.actions.MTable],
>
>     construct : function()
>     {
>         this.base(arguments,"Seleccionar estructura");
>         this.set({
>             showMinimize: false,
>             showMaximize: false,
>             width: 500,
>             height: 420,
>             modal: true,
>             resizableBottom: false,
>             resizableLeft: false,
>             resizableRight: false,
>             resizableTop: false,
> //            allowMaximize: false,
> //            allowMinimize: false,
>             layout: new qx.ui.layout.Canvas()
>         });
>         this.center();
>         this.initComponent();
>     },
>
>     members :
>     {
>         initComponent : function()
>         {
>             var tableModel = new qx.ui.table.model.Simple();
>             tableModel.setColumns([ "ID", "A number dsfsdfolsdf sdfoldsfds
> fsdfsdofsd fds fsdkfsdnfs dfdsf", "A date", "Boolean" ]);
>             tableModel.setData(this.createRandomRows(1000));
>
>             // make second column editable
>             tableModel.setColumnEditable(1, true);
>
>             // table
>             var table = new qx.ui.table.Table(tableModel).set({
>               decorator: null
>             });
>             this.add(table);
>
>             var tcm = table.getTableColumnModel();
>
>             // Display a checkbox in column 3
>             tcm.setDataCellRenderer(3, new
> qx.ui.table.cellrenderer.Boolean());
>
>             // use a different header renderer
>
>             table.setHeaderCellHeight(50);
>             tcm.setHeaderCellRenderer(1, new
> ga.sgop.common.models.headerRenderer());
>             tcm.setHeaderCellRenderer(3, new
> ga.sgop.common.models.headerRenderer());
>         },
>
>         createRandomRows: function(rowCount) {
>           var rowData = [];
>           var now = new Date().getTime();
>           var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
>           var nextId = 0;
>           for (var row = 0; row < rowCount; row++) {
>             var date = new Date(now + Math.random() * dateRange -
> dateRange / 2);
>             rowData.push([ nextId++, Math.random() * 10000, date,
> (Math.random() > 0.5) ]);
>           }
>           return rowData;
>         }
>     }
>
> });
>
> Please, can someone tell me what is wrong??
>
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to