I have only one TabView.

I don't know how to save such a thing globally in this environment.
Attach it to root?

Thanks!
Scott

On Thu, Mar 15, 2012 at 12:40 PM, Derrell Lipman
<[email protected]> wrote:
> It looks like you'd just need one more getLayoutParent() than what I showed
> you. That is beginning to seem pretty hokey, though. Why don't you just save
> the tabview in some retrievable location, rather than figuring out where it
> is. Do you have lots of these things, or only one of them?
>
> Derrell
>
>
> On Thu, Mar 15, 2012 at 15:25, Scott Chapman <[email protected]> wrote:
>>
>> On Wed, Mar 14, 2012 at 5:13 PM, Derrell Lipman
>> <[email protected]> wrote:
>> > On Wed, Mar 14, 2012 at 20:01, Scott Chapman <[email protected]> wrote:
>> >>
>> >> Hi!
>> >>
>> >> I have a Page with a Table on it...
>> >>
>> >> qx.Class.define("kiosk_portal.KioskListTab",
>> >> {
>> >>  extend : qx.ui.tabview.Page,
>> >>  members :
>> >>  {
>> >>    host_id : null
>> >>  },
>> >>  construct : function(label)
>> >>    {
>> >>      this.base(arguments, label);
>> >>      this.setLayout(new qx.ui.layout.Grow());
>> >>
>> >>      this.__kioskListTable = new kiosk_portal.KioskListTable().set({
>> >>        decorator: null,
>> >>        height: 20,
>> >>        maxWidth: 550
>> >>      });
>> >>
>> >>      this.add(this.__kioskListTable);
>> >>      this.setShowCloseButton(false);
>> >>    },
>> >>
>> >> >From within the kiosk_portal.KioskListTable(), I want to grab the
>> >> TabView that holds this Page, so I can call a method on it.
>> >>
>> >> How to get the parent TabView for this Table?
>> >
>> >
>> > You're using two different names but I think one of them is a typo.
>> > kiosk_portal.KioskListTable is missing the trailing "le" in the class
>> > definition, but I think you intend for the question and the class to
>> > refer
>> > to the same thing.
>> >
>> > The TabView has two child controls, "bar" and "pane". When you do
>> > tabView.add(page) you are actually adding the page to the "pane" child.
>> > Therefore, given a  Page object, you should be able to retrieve the
>> > TabView
>> > it's associated with, using:
>> >
>> > var tabView = page.getLayoutParent().getLayoutParent();
>> >
>> > Let's try it:
>> >
>> > http://tinyurl.com/7ro3dzm
>> >
>>
>> Thanks Derrell,
>> I do have two classes, one for the Tab and one for the Table which is
>> added to the Tab.  Here's the Table's class:
>>
>>
>> qx.Class.define("kiosk_portal.KioskListTable",
>> {
>>  extend : qx.ui.table.Table,
>>  construct : function()
>>    {
>>      this.base(arguments);
>>      this.setInitiallyHiddenColumns([0,1]);
>>      this.setColumnVisibilityButtonVisible(false);
>>      var tableModel = new qx.ui.table.model.Simple();
>>      tableModel.setColumns([ "ID", "ShortHostString", "MinutesOld", "Host"
>> ]);
>>      this.setTableModel(tableModel);
>>      this.setColumnWidth(0, 70);
>>      this.setColumnWidth(1, 120);
>>      this.setColumnWidth(2, 75);
>>      this.setColumnWidth(3, 420);
>>      this.setStatusBarVisible(true);
>>      this.__jsonHostsListFetcher = new qx.data.store.Json(null);
>>
>>      this.setShowCellFocusIndicator(false);
>>
>>      this.__jsonHostsListFetcher.setUrl("/kiosk_list");
>>      this.__jsonHostsListFetcher.addListener( "loaded",
>>      function(e)
>>      {
>>        this.resetAdditionalStatusBarText();
>>        var tData = e.getData();
>>        var nativeData = [ ];
>>        tData.toArray().forEach(
>>          function(row)
>>          {
>>            nativeData.push(row.toArray());
>>          });
>>        var tableModel = this.getTableModel();
>>        tableModel.setData(nativeData);
>>        var row_count = tableModel.getRowCount();
>>        this.setHeight(40 + 20 * row_count);
>>      },
>>      this);
>>
>>      this.addListener("cellDblclick",
>>        function (e) {
>>          var tableModel = this.getTableModel()
>>          var row = tableModel.getRowData(e.getRow())
>>          var label = row[1];
>>          var host_id = row[0];
>>          this.__tabView.openOrSelectTab(label, host_id);
>>        }
>>        ,this);
>>
>>      this.__timer1 = new qx.event.Timer(60000); // 60,000
>> microseconds = 1 minute
>>      this.__timer1.addListener("interval", function(e)
>>      {
>>        this.setAdditionalStatusBarText(" -- Loading --");
>>        this.__jsonHostsListFetcher.reload();
>>      }, this);
>>      this.__timer1.start();
>>  },
>>  destruct : function()
>>    {
>>    //console.log("destructor called on KioskCompletedTasksTable");
>>    this.__timer1.stop();
>>    //this._disposeObjects("__timer1");
>>    }
>> });
>>
>>
>> You can see in the cellDblClick listener that I want to do:
>>
>>     this.__tabView.openOrSelectTab(label, host_id);
>>
>> So from within this listener, I need the containing TabView that
>> contains the Tab that contains the Table, so I can tell the TabView to
>> open a new Tab.  I don't know how to get the TabView from within the
>> Table class.
>>
>> Scott
>>
>>
>> ------------------------------------------------------------------------------
>> This SF email is sponsosred by:
>> Try Windows Azure free for 90 days Click Here
>> http://p.sf.net/sfu/sfd2d-msazure
>> _______________________________________________
>> qooxdoo-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>
>
>
> ------------------------------------------------------------------------------
> This SF email is sponsosred by:
> Try Windows Azure free for 90 days Click Here
> http://p.sf.net/sfu/sfd2d-msazure
> _______________________________________________
> qooxdoo-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>

------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to