I don't think there is one perfect implementation. And that's why we have beads. I think locked columns and individual cell selection are much easier with the current implementation, but I agree that variable row height will probably be easier if all cells are in a row container.
We just need volunteers to create the other implementations. -Alex On 5/2/20, 12:17 AM, "Piotr Zarzycki" <[email protected]> wrote: Hi, I absolutely agree with Greg. In fact before I read his email I was digging into DataGrid and my initial thought was - when I set rowHeight = NaN - My rows should be adjusted automatically by the browser - why it does not happen? This is exactly because of that: In browser I think things would be a lot easier if the > internal 'lists' were managed as a single list of native rows instead of > composed columns of lists for DataGrids (specifically in the browser). Carlos do you think it would be good to change that implementation in the way as Greg is proposing ? Do you have time to work on that ? Thanks, Piotr czw., 30 kwi 2020 o 20:48 Greg Dove <[email protected]> napisał(a): > For the variable rowHeight - that works fine for individual lists, but for > datagrid that needs to match across the corresponding renderers for each > item in the other columns, I did not check to see how that part works. > > I haven't looked at the current Jewel implementation of DataGrid yet, but I > do think that in general we have a lot of 'Flex'/swf thinking in the way > things work for DataGrid support, and I am not sure it is the best way for > browsers. I understand the need for this in emulation components, but > perhaps even the implementation there is not important if the external api > remains the same. In browser I think things would be a lot easier if the > internal 'lists' were managed as a single list of native rows instead of > composed columns of lists for DataGrids (specifically in the browser). > Columns could probably be managed then by custom uid-style classes for > styling of their parts of the 'rows'. > > I think this probably covers off things like variable row height more > height easily, and makes hover/selection at row level etc easier. And > things like snapping the scrolling to the renderers (via native snap-to > support for scroll snapping iiuc) should be much easier also I think. Do I > have time to work on this ? No - definitely not anytime real soon. But I > had been thinking about it after digging into internals of DataGrid > recently. > > > > > > > On Fri, May 1, 2020 at 3:52 AM Alex Harui <[email protected]> > wrote: > > > I haven't looked at Jewel's Lists in detail, but if they have switched to > > scenario 2 (virtual rendering is probably a good default), then there are > > assumptions in the beads about fixed rowHeight. But to handle 5, you > would > > start with the earlier beads that did 1 and forget virtual rendering for > > now. Then you should be able to not worry about fixed rowheight any more > > since our vertical layouts for containers certainly handle different > > children heights. The beads for 5 should just set a width and let the > > browser layout the children as blocks. > > > > HTH, > > -Alex > > > > On 4/30/20, 8:47 AM, "Piotr Zarzycki" <[email protected]> > wrote: > > > > I thought I do understand what do you mean, but now I'm confused. > > Where do > > you see complexity ? In amount of rows and calculations what height > of > > the > > rows are ? > > > > czw., 30 kwi 2020 o 17:44 Alex Harui <[email protected]> > > napisał(a): > > > > > IMO, there are various tricks to handle a few thousand rows if the > > > renderers are simple. For example, feeding in rows with a timer. > > If the > > > computer can handle the memory required for a few thousand > renderers > > the > > > main issue is the time to create and render for the first time. > > > > > > It is when you get out to 10,000 rows or the renderers are > > complex/slow > > > that it doesn't make sense to keep every renderer in memory and > > that's why > > > the complexity goes up. > > > > > > Also, schedule-wise, you might start with 5 now and then take more > > time to > > > work on 7 or 8. > > > > > > HTH, > > > -Alex > > > > > > On 4/30/20, 8:33 AM, "Piotr Zarzycki" <[email protected]> > > wrote: > > > > > > Hi Alex, > > > > > > It's hard to say, cause we are heavily using DataGrid in whole > > > application. > > > Each view contains some list. We have for example now view > called > > > "Correspondence" where in theory could be hundreds rows or > maybe > > even > > > thousands. > > > > > > Thanks, > > > Piotr > > > > > > czw., 30 kwi 2020 o 17:27 Alex Harui <[email protected] > > > > > napisał(a): > > > > > > > Piotr, how many rows of data are there? > > > > > > > > IMO, there are multiple scenarios of increasing complexity. > > That's > > > one of > > > > the reasons we have beads in Royale. The vast majority of > our > > work > > > so far > > > > has been to handle the simpler scenarios. The ones I can > > think of > > > are: > > > > > > > > 1) few rows, fixed height, pixel scrolling > > > > 2) lots of rows, fixed height, pixel scrolling > > > > 3) lots of rows, fixed height, row scrolling > > > > 4) few rows, fixed height, row scrolling > > > > 5) few rows, variable height, pixel scrolling > > > > 6) few rows, variable height, row scrolling > > > > 7) lots of rows, variable height, row scrolling > > > > 8) lots of rows, variable height, pixel scrolling > > > > > > > > We've done 1 & 2 as beads. 5 should be not-too-hard > although I > > > certainly > > > > be wrong about that. If you can live with 5, then see if you > > and/or > > > Carlos > > > > and other volunteers can come up with the beads for it. > There > > is a > > > big > > > > jump in complexity after 5, especially 7 & 8. > > > > > > > > HTH, > > > > -Alex > > > > > > > > On 4/30/20, 6:54 AM, "Piotr Zarzycki" < > > [email protected]> > > > wrote: > > > > > > > > Just for the reference when you setup variableRowHeight = > > true > > > in flex > > > > DataGrid looks like that - > > > > > > > > > > https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fibb.co%2FD7K9dLs&data=02%7C01%7Caharui%40adobe.com%7Cadb613d3469b4e4ff5a908d7ee68e25e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637240006609623612&sdata=sUdKOR6zDPo4XRfeXYfIB16e2X6yy6MmVDWvntYZ3no%3D&reserved=0 > > > > > > > > czw., 30 kwi 2020 o 15:51 Piotr Zarzycki < > > > [email protected]> > > > > napisał(a): > > > > > > > > > Hi Carlos, > > > > > > > > > > I also do not see any other option than generate each > > height > > > of the > > > > row > > > > > based on the largest height in each row. It is > > definitely not > > > an > > > > option to > > > > > force people use rowHeight - That model definitely fail > > in our > > > > application > > > > > where there are different portion of text in rows. One > > row > > > will have > > > > 30 > > > > > height the second one 45 because there more text to > > display > > > and so > > > > on. > > > > > > > > > > Right now Jewel DataGrid doesn't have > variableRowHeight. > > To me > > > it > > > > should > > > > > in some form appear and if: > > > > > > > > > > variableRowHeight = true - Row height is being > > calculated > > > > dynamically. > > > > > Each row can have different height. Setup rowHeight > when > > that > > > option > > > > is > > > > > true won't have affect. > > > > > variableRowHeight = false - default state. Setup > > rowHeight > > > has some > > > > > effect. Each row has some predefined default height ex. > > 35. > > > > > > > > > > Thoughts ? > > > > > > > > > > Thanks, > > > > > Piotr > > > > > > > > > > pt., 10 kwi 2020 o 17:35 Carlos Rovira < > > > [email protected]> > > > > > napisał(a): > > > > > > > > > >> Hi Piotr, > > > > >> > > > > >> I was taking a look at the issue. Some initial > thoughts: > > > > >> > > > > >> List has "variableRowHeight: true" (defined in Theme) > > and > > > rowHeight > > > > = > > > > >> NaN; by > > > > >> default > > > > >> (as we can see in first List example in TDJ. We can > have > > > different > > > > heights > > > > >> for each item renderer, while second example has > > rowHeight > > > defined > > > > and > > > > >> that > > > > >> makes all items has the same height (Side note: Here > > there's > > > a bug > > > > since > > > > >> defining rowHeight should remove "variableRowHeight", > > since > > > both > > > > should be > > > > >> mutually exclusive). > > > > >> > > > > >> In DataGrid, we have lots of Lists becoming columns. > So > > to > > > make DG > > > > work as > > > > >> List I think we need to sync all rows to match the > > bigger > > > height per > > > > >> renderer in all lists. > > > > >> > > > > >> I think there's no other way to do this. > > > > >> > > > > >> If not, other options is to avoid DG have > > "variableRowHeight" > > > and > > > > force > > > > >> people to use "rowHeight". > > > > >> > > > > >> I don't remember what Flex allow to do here, but maybe > > is > > > something > > > > to > > > > >> discuss a bit to see what could be the best for Royale > > Jewel > > > > DataGrid. > > > > >> > > > > >> Thanks > > > > >> > > > > >> Carlos > > > > >> > > > > >> > > > > >> > > > > >> > > > > >> El vie., 10 abr. 2020 a las 15:45, Piotr Zarzycki (< > > > > >> [email protected]>) escribió: > > > > >> > > > > >> > Hi Carlos, > > > > >> > > > > > >> > We have switched in our application to DataGrid. > > There are > > > > unfortunately > > > > >> > some custom adjustment to have it properly working, > > but we > > > can > > > > move > > > > >> forward > > > > >> > with that. > > > > >> > However I have found something which I believe > should > > be > > > fixed > > > > sooner > > > > >> than > > > > >> > later. > > > > >> > > > > > >> > When rowHeight is not set and there are different > > amount of > > > data > > > > in data > > > > >> > grid cells rows are being cut and data are not > > displaying > > > fully. > > > > I have > > > > >> > pushed to TourDeJewel example which shows the issue. > > > > >> > > > > > >> > Thanks, > > > > >> > -- > > > > >> > > > > > >> > Piotr Zarzycki > > > > >> > > > > > >> > Patreon: * > > > > > > > > > > https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cadb613d3469b4e4ff5a908d7ee68e25e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637240006609623612&sdata=kKWcwxHbBUFbNqIn6cbOe4PzzIJ7ZXHi%2BaDGA8pAHOY%3D&reserved=0 > > > > >> > < > > > > > > > > > > https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cadb613d3469b4e4ff5a908d7ee68e25e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637240006609633601&sdata=SrEazJzdmJ6KYFuZRDRBmt0Uk7%2BF8ZixRu5db2ol%2B00%3D&reserved=0 > > > > >* > > > > >> > > > > > >> > > > > >> > > > > >> -- > > > > >> Carlos Rovira > > > > >> > > > > > > > > > > https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Cadb613d3469b4e4ff5a908d7ee68e25e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637240006609633601&sdata=iDtaQK5fHFY6flba5jUruY2JHsnIH%2Fjach3RozTxN%2B4%3D&reserved=0 > > > > >> > > > > > > > > > > > > > > > -- > > > > > > > > > > Piotr Zarzycki > > > > > > > > > > Patreon: * > > > > > > > > > > https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cadb613d3469b4e4ff5a908d7ee68e25e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637240006609633601&sdata=SrEazJzdmJ6KYFuZRDRBmt0Uk7%2BF8ZixRu5db2ol%2B00%3D&reserved=0 > > > > > < > > > > > > > > > > https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cadb613d3469b4e4ff5a908d7ee68e25e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637240006609633601&sdata=SrEazJzdmJ6KYFuZRDRBmt0Uk7%2BF8ZixRu5db2ol%2B00%3D&reserved=0 > > > > >* > > > > > > > > > > > > > > > > > -- > > > > > > > > Piotr Zarzycki > > > > > > > > Patreon: * > > > > > > > > > > https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cadb613d3469b4e4ff5a908d7ee68e25e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637240006609633601&sdata=SrEazJzdmJ6KYFuZRDRBmt0Uk7%2BF8ZixRu5db2ol%2B00%3D&reserved=0 > > > > < > > > > > > > > > > https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cadb613d3469b4e4ff5a908d7ee68e25e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637240006609633601&sdata=SrEazJzdmJ6KYFuZRDRBmt0Uk7%2BF8ZixRu5db2ol%2B00%3D&reserved=0 > > > > >* > > > > > > > > > > > > > > > > > > -- > > > > > > Piotr Zarzycki > > > > > > Patreon: * > > > > > > https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cadb613d3469b4e4ff5a908d7ee68e25e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637240006609633601&sdata=SrEazJzdmJ6KYFuZRDRBmt0Uk7%2BF8ZixRu5db2ol%2B00%3D&reserved=0 > > > < > > > > > > https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cadb613d3469b4e4ff5a908d7ee68e25e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637240006609633601&sdata=SrEazJzdmJ6KYFuZRDRBmt0Uk7%2BF8ZixRu5db2ol%2B00%3D&reserved=0 > > > >* > > > > > > > > > > > > > -- > > > > Piotr Zarzycki > > > > Patreon: * > > > https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cadb613d3469b4e4ff5a908d7ee68e25e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637240006609633601&sdata=SrEazJzdmJ6KYFuZRDRBmt0Uk7%2BF8ZixRu5db2ol%2B00%3D&reserved=0 > > < > > > https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cadb613d3469b4e4ff5a908d7ee68e25e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637240006609633601&sdata=SrEazJzdmJ6KYFuZRDRBmt0Uk7%2BF8ZixRu5db2ol%2B00%3D&reserved=0 > > >* > > > > > > > -- Piotr Zarzycki Patreon: *https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cadb613d3469b4e4ff5a908d7ee68e25e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637240006609643604&sdata=GQpRF%2F%2FMYdF7v08zgb1Kjvlf7zUFmLAuWDaVp9fe0eE%3D&reserved=0 <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cadb613d3469b4e4ff5a908d7ee68e25e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637240006609643604&sdata=GQpRF%2F%2FMYdF7v08zgb1Kjvlf7zUFmLAuWDaVp9fe0eE%3D&reserved=0>*
