Great work, Martin! Always happy to see improvements in UI code :)
Vojtech ----- Original Message ----- > From: "Martin Betak" <[email protected]> > To: "devel" <[email protected]> > Cc: "Vojtech Szocs" <[email protected]>, "Tomas Jelinek" > <[email protected]>, "Alexander Wels" <[email protected]> > Sent: Monday, July 25, 2016 8:54:39 PM > Subject: Type Safety on the Frontend (refactoring of all async queries) > > Hi All, > > today a *major* frontend refactoring was merged [1]. > Its purpose was to remove some of the most significant artifacts of legacy C# > code. > > Huge thanks to Vojtech and Alex for heavenly patience during code review! > > For a complete description please see the commit message, but here are > some highlights for programmers that need to touch FE code: > > 1) AsyncQuery, AsyncCallback and Converter are now generic and typesafe > (formerly INewAsyncCallback and IAsyncConverter). > > 2) It is no longer possible (or desirable) to PASS MODEL to queries. > From within Model sublasses `new AsyncQuery<>(...)` will have the correct > value set > (see patch for impl details) and if you want to run a query on a different > model > (so the infrastructure would set the progress spinner on that model > instead), > usually for the purpose of a ListModel showing a popup window - where we > want to > display the spinner on the dialog window instead, you can use the > `myWindowModel.asyncQuery(...)` helper factory to create query with model > set > to myWindowModel. > > // note: this also has the nice side-effect of eliminating the harmful > pattern of using > // the model value from within callbacks by casting it to surrounding > model type (while that > // value is already available by feature of java inner classes) > > 3) AsyncDataProvider's API methods now deal with strongly typed queries. This > is facilitated > through usage of strongly typed Converters (please see some defined > converters -> usually > you just need a CastingConverter<> or a ListConverter<>). > Please use this architectural layer of strongly typed AsyncDataProvider to > your advantage. > (as plain Fronted.runQuery does not provide any guarantees and leaves you > at risk of > mis-casting the return value). > > If you have any more questions please feel free to ask me or look at the > patch for details > (warning: it's quite big!). > > This kind of major change necessarily touched all areas of the code (those > issuing queries...) > and there is of course some probability that something may break. But I > believe this risk is > well outweight by the benefits. Nevertheless if you find any issue please let > me know and > we can fix it together. > > Thanks again to anyone who contributed to this noble effort. > > Best regards :-) > > Martin > > [1] https://gerrit.ovirt.org/#/c/60822/ > _______________________________________________ Devel mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/devel
