Hi Julian-

We are also using the MDI library for a large ERP-style application 
and experienced the same issue you are describing.  The problem for 
us related to the "updateStyles()" method in the MDIWindow class in 
the library.  It seems when the code was checking for "hasFocus" 
there was a lot of unnecessary (for our needs anyways) re-setting of 
styles using the ".setStyle" notation.  This is a slow operation when 
you have windows with a lot of controls or heavy controls like the 
DataGrid.  We made modifications to the MDIWindow class because we 
could not edit what we needed through sub-classing because 
the "_hasFocus" stuff wasn't accessible.  So we made it accessible 
then overwrote it in a new sub-class that doesn't do anything (omits 
the "updateStyles()" call.  But this made the min,max,resize window 
controls out of whack because they weren't getting updated.  So we 
solved that issue by sub-classing the MDIWindowControlsContainer and 
overriding "updateDisplayList" to position everything correctly no 
matter what state the window was in.

After making these changes everything was superfast as far as 
switching focus between windows, tiling windows, minimizing, 
maximizing, no matter how many controls or rows/columns for the 
datagrids.  So, we made our changes for our specific needs which are 
probably not suitable for everyone, but if you minimize or eliminate 
the unnnecessary calls to "updateStyles()" in MDIWindow you should 
see a major improvement.  Especially without having to switch to 
another library or write something on your own.  The FlexMDI is a 
great library.



HTH-
Steve

Reply via email to