Due to persistance nature of our chatroo, i prefer Virtuallist .

Is there anyway ?

On Wed, Jun 24, 2015 at 8:29 PM, Mustafa Sak <mustafa....@1und1.de> wrote:

>  Yes, virtual widgets are made for scalability.  But for a chat with max.
> one or two thousand items the form list should be good enough. Please take
> try.
>
>
>
> Dank & Gruß
> * Mustafa Sak*
>
> Softwareentwickler
> Mail Development
>
> 1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135
> Karlsruhe | Germany
> Phone: +49 721 91374-6977
> E-Mail: mustafa....@1und1.de | Web: www.1und1.de
>
>
>
> *Von:* Phyo Arkar [mailto:phyo.arkarl...@gmail.com]
> *Gesendet:* Mittwoch, 24. Juni 2015 15:46
> *An:* qooxdoo Development
> *Betreff:* Re: [qooxdoo-devel] How can i scroll to the end of a list ,
> after list item updated (continue), using dynamic virtual list widget sizes?
>
>
>
> Virtualist can render un-limited  , right? I know i am a bit greedy..
>
>
>
> On Wed, Jun 24, 2015 at 7:38 PM, Mustafa Sak <mustafa....@1und1.de> wrote:
>
> Ok, but why you want to implement it with an virtual list? Did you think
> about using the qx.ui.form.List?
>
>
>
> Dank & Gruß
> * Mustafa Sak*
>
> Softwareentwickler
> Mail Development
>
> 1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135
> Karlsruhe | Germany
> Phone: +49 721 91374-6977
> E-Mail: mustafa....@1und1.de | Web: www.1und1.de
>
>
>
> *Von:* Phyo Arkar [mailto:phyo.arkarl...@gmail.com]
> *Gesendet:* Mittwoch, 24. Juni 2015 14:35
> *An:* qooxdoo Development
> *Betreff:* Re: [qooxdoo-devel] How can i scroll to the end of a list ,
> after list item updated (continue), using dynamic virtual list widget sizes?
>
>
>
> My intention is simple , a chatroom , with vote up/down , and a content
> widget (Rich label widdget).
>
>
>
> Default height is 50px but it is automatically re-sized to Arbitrary size
> according to the content , which renders Markdown and display (rendered as
> html, as height as possible , no max-height specified) .
>
> All others are at default height.
>
>
>
> Here is my implementation.
>
>
>
> https://gist.github.com/v3ss0n/1eff1f35153f67c8edfe
>
>
>
> Screesshot also included.
>
>
>
>
>
> On Wed, Jun 24, 2015 at 6:35 PM, Mustafa Sak <mustafa....@1und1.de> wrote:
>
> So let’s start at then scratch:
>
>
>
> What is your intention?
>
> Do you have a set of list item widgets with defined height? (this would
> make the job much easier)
>
>
>
> Dank & Gruß
> * Mustafa Sak*
>
> Softwareentwickler
> Mail Development
>
> 1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135
> Karlsruhe | Germany
> Phone: +49 721 91374-6977
> E-Mail: mustafa....@1und1.de | Web: www.1und1.de
>
>
>
> *Von:* Phyo Arkar [mailto:phyo.arkarl...@gmail.com]
> *Gesendet:* Mittwoch, 24. Juni 2015 13:18
>
>
> *An:* qooxdoo Development
> *Betreff:* Re: [qooxdoo-devel] How can i scroll to the end of a list ,
> after list item updated (continue), using dynamic virtual list widget sizes?
>
>
>
> That implementation , do not work in firefox, it just keep scrolling
> indefinately.
>
>
>
> I am out of ideas.
>
>
>
> Can i pay for support on that?
>
>
>
> On Wed, Jun 24, 2015 at 12:53 AM, Phyo Arkar <phyo.arkarl...@gmail.com>
> wrote:
>
> that gist version is working as intended now, just did it very dirty way
> (counting number of updates it called and if >3 , scrolls)
>
>
>
> On Wed, Jun 24, 2015 at 12:20 AM, Phyo Arkar <phyo.arkarl...@gmail.com>
> wrote:
>
> I made a gist https://gist.github.com/v3ss0n/f48e336c4a2eb6a80089
>
> because tinyurl can't work with it. Only saying request URL too long ,even
> tho i deleted all comments. Hope you don't mind.
>
>
>
> You can copy paste directly to playground, i have tested and it works.
>
>
>
> On Wed, Jun 24, 2015 at 12:11 AM, Phyo Arkar <phyo.arkarl...@gmail.com>
> wrote:
>
> Also i get request URL too Long when i just try to shorten url. i guess we
> need a real qooxdoo playground like codepen.io , if anyone going to
> chipin for hosting fee , i will build one.
>
>
>
> On Wed, Jun 24, 2015 at 12:03 AM, Phyo Arkar <phyo.arkarl...@gmail.com>
> wrote:
>
> Yes i tried on playground before sending code directly , it giving me
> syntax errors and i can't find where it is. The code runs correctly without
> playground.
>
>
>
>
>
> On Tue, Jun 23, 2015 at 8:41 PM, Mustafa Sak <mustafa....@1und1.de> wrote:
>
>   Hi,
>
>
>
> it is much easier for us to answer if you provide us with an playground
> example. But anyway, dealing with different sizes on a virtual widget is
> difficult, so we are not always able to help with concrete code examples.
>
>
>
> Dank & Gruß
> * Mustafa Sak*
>
> Softwareentwickler
> Mail Development
>
> 1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135
> Karlsruhe | Germany
> Phone: +49 721 91374-6977
> E-Mail: mustafa....@1und1.de | Web: www.1und1.de
>
>
>
> *Von:* Phyo Arkar [mailto:phyo.arkarl...@gmail.com]
> *Gesendet:* Montag, 22. Juni 2015 20:18
> *An:* qooxdoo Development
> *Betreff:* Re: [qooxdoo-devel] How can i scroll to the end of a list ,
> after list item updated (continue), using dynamic virtual list widget sizes?
>
>
>
> Another separated but related problem is size of scrollbar knob changed
> and irregular scrollbar position when list item is reized (huge list item)
> , how can i sync that?
>
>
>
> On Tue, Jun 23, 2015 at 12:39 AM, Phyo Arkar <phyo.arkarl...@gmail.com>
> wrote:
>
> I cant get to work properly with the example you gave , it always out of
> scroll position after adding more than 1 item.
>
> here is only working solution so far but very dirty.
>
> If there any better solution?
>
> qx.Class.define('phwabe.utils.list.InfiniList', {
>
>   extend: qx.ui.list.List,
>
>
>
>   members: {
>
>     __deferredCall: null,
>
>     __scrollBottom: false,
>
>     __updateCount: 0,
>
>     __resizeCount:0,
>
>
>
>     _initLayer: *function*() {
>
>       *this*.base(arguments);
>
>       *this*._layer.addListener("updated", *this*._onUpdated, *this*);
>
>       *// this.getPane().addListener("update", this._scrollBottom, this)*
>
>     },
>
>
>
>     _onUpdated: *function*(event) {
>
>       *if* (*this*.__deferredCall === null) {
>
>         *this*.__deferredCall = *new* qx.util.DeferredCall(*function*() {
>
>
>
>           qx.ui.core.queue.Widget.add(*this*, 'updateSize');
>
>
>
>         }, *this*);
>
>       }
>
>       *this*.__deferredCall.schedule();
>
>     },
>
>     _updateSize: *function*(callback) {
>
>       *var* firstRow = *this*._layer.getFirstRow();
>
>       *var* rowSize = *this*._layer.getRowSizes().length;
>
>       *// console.log(rowSize)*
>
>       *for* (*var* row = firstRow; row < firstRow + rowSize; row++) {
>
>         *var* widget = *this*._layer.getRenderedCellWidget(row, 0);
>
>         *if* (widget !== null) {
>
>           *var* height = widget.getSizeHint().height;
>
>           *var* current_height = 
> *this*.getPane().getRowConfig().getItemSize(row);
>
>           *if* (height !== current_height) {
>
>             *this*.getPane().getRowConfig().setItemSize(row, height);
>
>             console.log("resizing")
>
>
>
>           }
>
>
>
>         }
>
>
>
>       }
>
>       callback()
>
>     },
>
>     _scrollBottom: *function*(limit) {
>
>       *if* (*this*.__scrollBottom === true) {
>
>         *this*.getPane().setScrollY(1e99)
>
>         *this*.scrollToY(1e99)
>
>         *var* lastrow =  *this*.getModel().length -1;
>
>         console.log(lastrow)
>
>         *this*.getPane().scrollRowIntoView(lastrow)
>
>         *if* (*this*.__updateCount >= limit) {
>
>           *this*.__scrollBottom = false
>
>         }
>
>
>
>       }
>
>     },
>
>   syncWidget: *function*(jobs) {
>
>     *var* that = *this*
>
>     *if* (jobs.scrollBottom & jobs.updateSize) {
>
>       console.log(jobs)
>
>       *this*.__scrollBottom = true
>
>       *this*.__updateCount = 0
>
>       *this*._updateSize(*function*(){
>
>         that._scrollBottom(6)
>
>       })
>
>       console.log("BOTH JOBS no of updates" + *this*.__updateCount)
>
>
>
>       *this*.__updateCount += 1
>
>     } *else* *if* (jobs.scrollBottom) {
>
>       *this*.__scrollBottom = true
>
>       *this*.__updateCount = 0
>
>     } *else* *if* (jobs.updateSize) {
>
>       *this*._updateSize(*function*(){
>
>         that._scrollBottom(3)
>
>       })
>
>       *this*.__updateCount += 1
>
>       console.log("no of updates" + *this*.__updateCount)
>
>     }
>
>
>
>
>
>
>
>   }
>
> }
>
> });
>
>  ​
>
>
>
> On Mon, Jun 22, 2015 at 2:11 AM, Phyo Arkar <phyo.arkarl...@gmail.com>
> wrote:
>
> After trying to remember what my bugzilla pass , i had filed a bug.
> Bugzilla needs OAuth support badly.
>
>
>
>
>
>
>
> On Wed, Jun 17, 2015 at 9:29 PM, Phyo Arkar <phyo.arkarl...@gmail.com>
> wrote:
>
> About disaapearing Scrollbars on Chrome? Ok i will file one.
>
> It dosen't appear in my code tho.
>
>
>
> On Wed, Jun 17, 2015 at 8:55 PM, Mustafa Sak <mustafa....@1und1.de> wrote:
>
> You are using Chrome right?
>
>
>
> Would you please report a bug?
>
>
>
> Dank & Gruß
> * Mustafa Sak*
>
> Softwareentwickler
> Mail Development
>
> 1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135
> Karlsruhe | Germany
> Phone: +49 721 91374-6977
> E-Mail: mustafa....@1und1.de | Web: www.1und1.de
>
>
>
> *Von:* Phyo Arkar [mailto:phyo.arkarl...@gmail.com]
> *Gesendet:* Mittwoch, 17. Juni 2015 10:51
> *An:* qooxdoo Development
> *Betreff:* Re: [qooxdoo-devel] How can i scroll to the end of a list ,
> after list item updated (continue), using dynamic virtual list widget sizes?
>
>
>
>   I can't see the scroll bar , it was hidden on purpose?
>
>
>
> On Wed, Jun 17, 2015 at 3:19 PM, Phyo Arkar <phyo.arkarl...@gmail.com>
> wrote:
>
> Thanks a lot for helping me out!
>
> When a singile last one is added its ok .
>
> When multiple LastOnes are added it dosen't scroll to bottom.
>
> Any thoughts?
>
>
>
> On Wed, Jun 17, 2015 at 1:47 PM, Mustafa Sak <mustafa....@1und1.de> wrote:
>
>    Wow,
>
>
>
> it was not so easy to solve that issue. But would you please try this
> example? http://tinyurl.com/nus7pev
>
>
>
> Dank & Gruß
> * Mustafa Sak*
>
> Softwareentwickler
> Mail Development
>
> 1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135
> Karlsruhe | Germany
> Phone: +49 721 91374-6977
> E-Mail: mustafa....@1und1.de | Web: www.1und1.de
>
>
>
> *Von:* Phyo Arkar [mailto:phyo.arkarl...@gmail.com]
> *Gesendet:* Montag, 15. Juni 2015 12:23
> *An:* qooxdoo-devel
> *Betreff:* [qooxdoo-devel] How can i scroll to the end of a list , after
> list item updated (continue), using dynamic virtual list widget sizes?
>
>
>
> Previous thread was abandoned so i making new one , with more information.
>
> I am now using syncWidget to scroll to bottom of a virtual list when new
> item is added.
> But the problem is this virtuallist implementation automatically resizes
> list item height , and when scrolled inside syncWidget , it is not actually
> scrolled to the end , but to that widget item’s start.
>
> here is handler for list’s updates:
>
>       this.chat_list.getModel().addListener("change", function() {
>
>           // qx.ui.core.queue.Manager.flush();
>
>           qx.ui.core.queue.Widget.remove(this.chat_list,"scrollBottom");
>
>           // normally using the flush should be time enough for the renderer
>
>           qx.ui.core.queue.Widget.add(this.chat_list, "scrollBottom");
>
>       },this)
>
> I added a work around by counting how many times layer is updated , if it
> updated for 3 times , scrolls to button : this._layer.addListener("updated",
> this._onUpdated, this); .
> Because i observed whenever a new item is added , layer firest updated 3
> times and only at the last time it need to actually scroll.
>
> Here is the infinite list with auto-resizing of item height from
> stackoverflow.com/questions/21456941/infinite-scroll-in-qooxdoo-with-virtual-list
> .
>
> qx.Class.define('phwabe.utils.list.InfiniList', {
>
>   extend: qx.ui.list.List,
>
>
>
>   members: {
>
>     __deferredCall: null,
>
>     __scrollBottom: false,
>
>     __updateCount: 0,
>
>
>
>     _initLayer: *function*() {
>
>       *this*.base(arguments);
>
>       console.log("initing layer")
>
>       *this*._layer.addListener("updated", *this*._onUpdated, *this*);
>
>     },
>
>
>
>     _onUpdated: *function*(event) {
>
>       *if* (*this*.__deferredCall === null) {
>
>         *this*.__deferredCall = *new* qx.util.DeferredCall(*function*() {
>
>
>
>           qx.ui.core.queue.Widget.add(*this*, 'updateSize');
>
>
>
>         }, *this*);
>
>       }
>
>       *this*.__deferredCall.schedule();
>
>     },
>
>     _updateSize: *function*() {
>
>       *var* firstRow = *this*._layer.getFirstRow();
>
>       *var* rowSize = *this*._layer.getRowSizes().length;
>
>       *for* (*var* row = firstRow; row < firstRow + rowSize; row++) {
>
>         *var* widget = *this*._layer.getRenderedCellWidget(row, 0);
>
>         *if* (widget !== null) {
>
>           *var* height = widget.getSizeHint().height;
>
>           *this*.getPane().getRowConfig().setItemSize(row, height);
>
>         }
>
>
>
>       }
>
>     },
>
>     _scrollBottom: *function*(limit) {
>
>       *if* (*this*.__scrollBottom === true) {
>
>         *this*.scrollToY(1e99)
>
>         *if* (*this*.__updateCount >= limit) {
>
>           *this*.__scrollBottom = false
>
>         }
>
>
>
>       }
>
>     },
>
>     syncWidget: *function*(jobs) {
>
>       *if* (jobs.scrollBottom & jobs.updateSize) {
>
>         console.log(jobs)
>
>         *this*.__scrollBottom = true
>
>         *this*.__updateCount = 0
>
>         *this*._updateSize()
>
>         *this*._scrollBottom(5)
>
>         console.log("BOTH JOBS no of updates" + *this*.__updateCount)
>
>
>
>         *this*
>
>                             ...
>
> [Message clipped]
>
> ------------------------------------------------------------------------------
> Monitor 25 network devices or servers for free with OpManager!
> OpManager is web-based network management software that monitors
> network devices and physical & virtual servers, alerts via email & sms
> for fault. Monitor 25 devices for free with no restriction. Download now
> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
> _______________________________________________
> qooxdoo-devel mailing list
> qooxdoo-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>
>
>
>
>
> ------------------------------------------------------------------------------
> Monitor 25 network devices or servers for free with OpManager!
> OpManager is web-based network management software that monitors
> network devices and physical & virtual servers, alerts via email & sms
> for fault. Monitor 25 devices for free with no restriction. Download now
> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
> _______________________________________________
> qooxdoo-devel mailing list
> qooxdoo-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>
>
>
>
> ------------------------------------------------------------------------------
> Monitor 25 network devices or servers for free with OpManager!
> OpManager is web-based network management software that monitors
> network devices and physical & virtual servers, alerts via email & sms
> for fault. Monitor 25 devices for free with no restriction. Download now
> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
> _______________________________________________
> qooxdoo-devel mailing list
> qooxdoo-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>
>
------------------------------------------------------------------------------
Monitor 25 network devices or servers for free with OpManager!
OpManager is web-based network management software that monitors 
network devices and physical & virtual servers, alerts via email & sms 
for fault. Monitor 25 devices for free with no restriction. Download now
http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to