There is even more going on - I have a translation system where I translate prompts, titles, mouse over hints etc. I also resize and reposition things under the hood since different translation requires more or less space. French takes more space than English.
I do load an empty form for all of the tabs up front. There are lots of inter dependencies between parameters. There are 435 translations.
To get around size limitations I send the data to the form in 8 large chunks. Html Dialog does have a size limitation (can’t remember the exact size). I kinow that with web dialog I could have sent fewer chunks. Since my code works with both Html and web I don’t worry about that. So I send the first chunk and process it on the dialog side and once finished I send a request back to ruby to send the next chunk, ruby side receives the request and sends the next chunk. This back and forth continues until all chunks are processed. I do not have any timers slowing things down.
After this is accomplished I trigger cascading changes which essentially enables the proper controls and prompts.
I am on a 6 year old desktop. I’m happy running a slower machine since it immediately shows where I need to improve code performance.
The user can switch between html dialogs and web dialogs and choose the one they want. If they are running older Sketchup then their choice is ignored and in that case I use web dialog.
Drop Downs - 141
Check Boxes - 114
Text Boxes - 401
titles - 66
labels - 448
buttons - 24
Total controls - 1194