Mukautetut asettelut
Toisinaan on ehkä kirjoitettava omia
Layout-luokkia. Näin tulee tehdä erityisesti tilanteessa, jolloin sovelluksessa käytetään monimutkaista asettelua useissa eri paikoissa. Huomaa, että ellei kirjoitettavana ole hyvin yleinen layout-luokka, jonka asettelua käytetään useissa widget-yhdistelmäobjekteissa, saattaa olla helpompaa laskea koon ja sijainnin aliobjektit koonmuutoksen kuuntelutoiminnossa.
Asettelujen layout-luokissa toteutetaan kaksi metodia:
- computeSize(...) laskee sen suorakulmion leveyden ja korkeuden, johon sisältyvät kaikki yhdistelmän aliobjektit, kun niiden koko ja sijainti on määritetty layout-algoritmin perusteella. Vihjeparametreja käytettäessä voidaan leveyttä ja korkeutta rajoittaa. Asettelu voi esimerkiksi kasvaa toiseen suuntaan, jos sitä on rajoitettu toisessa suunnassa.
- layout(...) määrittää yhdistelmän aliobjektien sijainnit ja koot.
Asettelu voi määrittää asetteluun liittyvät tiedot tallennettaviksi välimuistiin. Tällaisia tietoja voivat olla esimerkiksi kunkin aliobjektin ensisijaiset laajuudet. Parametri flushCache ilmoittaa
Layout-luokalle, että välimuistiin tallennetut tiedot tulee tyhjentää, mikä on välttämätöntä, jos muut tekijät kuin yhdistelmän koko ovat muuttuneet. Tällaisia tekijöitä voivat olla esimerkiksi aliobjektien luonti tai poisto sekä widget-objektin fontin muutos.
Kolmas metodi on flushCache(...), jonka avulla voidaan valinnaisesti toteuttaa tiettyyn ohjausobjektiin liittyvien välimuistiin tallennettujen tietojen poisto.
Widget-objektin computeSize()-metodin käyttö voi usein vaatia paljon tehoa, joten asettelut voivat parantaa suorituskykyä tallentamalla tulokset välimuistiin.
Lisätietoa mukautetuista asetteluista on englanninkielisessä artikkelissa Understanding
layouts in SWT.