Martijn Evers
Martijn Evers
This blog post refers to a wiki which supposed to have all kinds of ideas, features and use cases: https://news.qooxdoo.org/infrastructure-for-virtual-widgets-call-for-ideas-b755b23aa1e7 Does anybody know where it is? I get a not...
Hi, The main reason why performance is bad is because the table listens to changes on the table-column-model (TCM). This is fine when changing the width (or other property) of...
@oetiker I had to subclass the basic column model and overwrite the init method. As you can see, it doesn't call the base method if a table is given (this...
I did some further research and made this playground example to demonstrate the problem: [link to playground](http://www.qooxdoo.org/devel/playground/#%7B%22code%22%3A%22var%2520button1%2520%253D%2520new%2520qx.ui.form.Button(%2522First%2520Button%2522%252C%2520%2522icon%252F22%252Fapps%252Finternet-web-browser.png%2522)%253B%250Avar%2520check%2520%253D%2520new%2520qx.ui.form.CheckBox(%2522Slow%2522)%253B%250Avar%2520doc%2520%253D%2520this.getRoot()%253B%250Adoc.add(button1%252C%2520%257B%2520left%2520%253A%2520100%252C%2520top%2520%2520%253A%252050%2520%257D)%253B%250Adoc.add(check%252C%2520%257B%2520left%2520%253A%2520300%252C%2520top%2520%2520%253A%252050%2520%257D)%253B%250Abutton1.addListener(%2522execute%2522%252C%2520function(e)%2520%257B%250A%2520%2520%2520%2520try%2520%257B%250A%2520%2520%2520%2520%2520%2520var%2520t%2520%253D%2520(new%2520Date()).getTime()%253B%250A%2520%2520%2520%2520%2520%2520buidlTable(!!check.getValue())%253B%250A%2520%2520%2520%2520%2520%2520this.info((new%2520Date()).getTime()%2520-%2520t)%253B%250A%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%257D%2520catch%2520(e)%2520%257B%250A%2520%2520%2520%2520%2520%2520console.log(e)%253B%250A%2520%2520%2520%2520%257D%250A%2520%250A%257D)%253B%250A%250Avar%2520buidlTable%2520%253D%2520function(slow)%2520%257B%250A%2520%2520%250A%2520%2520%2520%252F%252F%2520make%2520model%250A%2520%2520var%2520m%2520%253D%2520new%2520qx.ui.table.model.Simple()%253B%250A%2520%2520var%2520columns%2520%253D%2520'abcdefghijklnmopqrstuvwxyz'.split(%2522%2522)%253B%250A%2520%2520m.setColumns(columns)%253B%250A%250A%2520%2520%252F%252F%2520now%2520table%250A%2520%2520var%2520t%2520%253D%2520new%2520qx.ui.table.Table(m)%253B%250A%2520%2520var%2520tcm%2520%253D%2520t.getTableColumnModel()%253B%250A%2520%2520%250A%2520%2520%252F%252F%2520then%2520configure%2520columns%250A%2520%2520columns.forEach(function(_%252C%2520col)%2520%257B%250A%2520%2520%2520%2520if%2520(slow)%2520%257B%250A%2520%2520%2520%2520%2520%2520tcm.setColumnVisible(col%252C%2520Boolean(Math.round(Math.random())))%253B%250A%2520%2520%2520%2520%257D%2520else%2520%257B%250A%2520%2520%2520%2520%2520%2520tcm.setColumnWidth(col%252C%2520Math.round(20%2520%252B%2520Math.random()%2520*%252080))%253B%250A%2520%2520%2520%2520%257D%250A%2520%2520%257D)%253B%250A%250A%2520%2520doc.add(t%252C%2520%257B%2520left%2520%253A%2520100%252C%2520top%2520%2520%253A%2520100%2520%252B%2520doc.getChildren().length%2520*%252050%2520%257D)%253B%250A%257D%253B%22%2C%20%22mode%22%3A%22ria%22%7D) As you can see there, the table is optimized for some column changes...
> Not everybody is using doctrine or a field for the type. > > Using a pure object oriented approach, you do not need a "type field" (as doctrine does)...
Hi @goetas, My apologies it took me long to respond to you. My answer is specific to JSON, but the theory about types is generally applicable (you probably know that...