On Thu, Aug 19, 2010 at 03:37, Daniel Hirtzbruch <dan...@hirtzbruch.eu>wrote:
> > Hello, > > I'm currently implementing a mechanism to save a user's current frontend > view on logout / leave for reloading it when the user re-appears to my app. > > 'm now stuck at a imho rather basic problem - saving and loading a large > table's scroll position. The scroll position is saved correctly by using > the > following code: > > [code] > var scroller = table.getPaneScroller(1); > data.rsTbl.scrollPos = { > X : scroller.getScrollX(), > Y : scroller.getScrollY() > }; > [/code] > > My problem now is how to scroll the table to X/Y position when reloading > the > app. I tried it by using this solution: > Try this: table.getPaneScroller(1).getChildControl("scrollbar-y").setPosition( data.rsTbl.scrollPos.Y); table.getPaneScroller(1).getChildControl("scrollbar-x").setPosition( data.rsTbl.scrollPos.X); Here's my playground test program: 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", "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 tcm.setHeaderCellRenderer(2, new qx.ui.table.headerrenderer.Icon( "icon/16/apps/office-calendar.png", "A date")); this.table = table; ​var button1 = new qx.ui.form.Button("Get scroll position"); button1.addListener("execute", function(e) { this.yPos = table.getPaneScroller(0).getScrollY(); }, this); this.getRoot().add(button1, { left : 0, top : 0 }); var button2 = new qx.ui.form.Button("Set scroll position"); button2.addListener("execute", function(e) { table.getPaneScroller(0).getChildControl("scrollbar-y" ).setPosition(this.yPos); }, this); this.getRoot().add(button2, { left : 150, top : 0 }); Derrell
------------------------------------------------------------------------------ This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev
_______________________________________________ qooxdoo-devel mailing list qooxdoo-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel