Did you run 'generate.py' after adding the class?

T.


On 10/14/2013 11:28 PM, Yordan Estrada wrote:

    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

------------------------------------------------------------------------------
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