Adatlap megvalósítása

Ha a munkaterület létrehoz vagy elindít egy adatlapot, akkor beállítja a kiválasztott erőforrást az oldalba. Az oldal a getElement() metódus segítségével lekérheti az elemeket, egy IAdaptable elemet.

Az adatlapok létrehozásának mintája hasonlít a beállításlapokéra, így csak a különbségekre koncentrálunk. Az adatlapok az elemekkel kapcsolatos információkat biztosítanak. Ez az információ az elem elérésével kérhető le a lényeges információk lekérése vagy feldolgozása érdekében.  Az információk az erőforrások tulajdonságaiban is tárolhatók és innen le is kérhetők.

A ReadmeFilePropertyPage feldolgozza az információk nagy részét az elemek segítségével. Az alábbi részlet bemutatja, hogy a szakaszok hogyan kerülnek feldolgozásra és megjelenítésre.

   ...
   IResource resource = (IResource) getElement();
   ...
   IAdaptable sections = getSections(resource);
   if (sections instanceof AdaptableList) {
      AdaptableList list = (AdaptableList)sections;
      label = createLabel(panel, String.valueOf(list.size()));
   ...

A tulajdonság feldolgozásakor nincs szükség megfelelő logikára az érték elmentéséhez, mivel a felhasználó nem tudja frissíteni ezt az értéket.

Az adatlapokat általánosan a megjelenítéshez és az erőforrás alkalmazás-specifikus beállításához használják . (A szakasz és az állandó tulajdonságok leírását az Erőforrás-tulajdonságok rész tartalmazza.)  Mivel az adatlap ismeri az erőforrásokat, az erőforrások API használható az oldalon a vezérlőértékek inicializálásához, vagy új tulajdonságértékek beállításához a tulajdonságok lap felhasználói kiválasztásai alapján.

Az alábbi részlet megjelenít egy jelölőnégyzet-értéket, amely az adatlap elemének egyik tulajdonságából kerül inicializálásra.

   private void initializeValues() {
      ...
      IResource resource = (IResource) getElement();
      label.setText(resource.getPersistentProperty("MyProperty"));
      ...
   }

A jelölőnégyzet-érték tulajdonságba mentésének megfelelő kódja az alábbi módon néz ki:

   private void storeValues() {
      ...
      IResource resource = (IResource) getElement();
      resource.setPersistentProperty("MyProperty", label.getText());
      ...
   }