Quando il workbench crea e avvia una pagina delle proprietà, imposta nella pagina la risorsa selezionata. La pagina può utilizzare il metodo getElement() per ottenere il relativo elemento, IAdaptable.
Il modello per la creazione delle pagine delle proprietà è simile a quello per le pagine delle preferenze; quindi, ci si soffermerà solo sulle eventuali differenze. Le pagine delle proprietà mostrano informazioni relative al rispettivo elemento. Tali informazioni possono essere ottenute accedendo all'elemento per effettuare una query o per calcolare le informazioni rilevanti. Le informazioni possono anche essere memorizzate e richiamate dalle proprietà della risorsa.
La ReadmeFilePropertyPage calcola la maggior parte delle informazioni utilizzando il proprio elemento. Il frammento di codice seguente mostra come il numero delle sezioni viene calcolato e visualizzato in un'etichetta.
... IResource resource = (IResource) getElement(); ... IAdaptable sections = getSections(resource); if (sections instanceof AdaptableList) { AdaptableList list = (AdaptableList)sections; label = createLabel(panel, String.valueOf(list.size())); ...
Quando una proprietà viene calcolata, non è necessaria la logica corrispondente per salvare il valore poiché l'utente non può aggiornare questo valore.
Le pagine delle proprietà vengono comunemente utilizzate per la visualizzazione e l'impostazione delle proprietà, specifiche per applicazione, di una risorsa. Per una descrizione delle proprietà di sessione e persistenti, vedere Proprietà delle risorse. Poiché la pagina delle proprietà conosce la propria risorsa, l'API delle risorse può essere utilizzata in questa pagina per inizializzare i valori di controllo o per impostare nuovi valori di proprietà in base alle selezioni effettuate dall'utente nella pagina delle proprietà.
Il seguente frammento di codice mostra un valore di casella di controllo inizializzato da una proprietà sull'elemento di una pagina delle proprietà.
private void initializeValues() { ... IResource resource = (IResource) getElement(); label.setText(resource.getPersistentProperty("MyProperty")); ... }
Il codice corrispondente per il salvataggio nella proprietà del valore della casella di controllo appare nel modo illustrato di seguito:
private void storeValues() { ... IResource resource = (IResource) getElement(); resource.setPersistentProperty("MyProperty", label.getText()); ... }