mercoledì 16 dicembre 2009

Un ComboBox per selezionare le viste di una applicazione RCP

In una applicazione RCP che sto sviluppando mi è capitato di avere molte viste, ciascuna che deve essere associabile ad una serie di permessi. Per permettere ad un utente amministratore di selezionare a quali viste concedere quali permessi, ho creato un semplice wrapper attorno ad un combo che contiene l'array delle viste disponibili e la loro descrizione. Il codice è abbastanza banale, ma potrebbe tornare utile in altre applicazioni.

public class ViewsCombo {

/**
* The combo that will be displayed.
*/
private Combo combo = null;


/**
* The available views in the system.
*/
private IViewDescriptor[] availableViews = null;

/**
* Initializes the combo and the map to contain the views.
* @param parent
*/
public ViewsCombo( Composite parent, String viewIDToSelect ){
super();
// create the combo
this.combo = new Combo( parent, SWT.READ_ONLY );

// fill the combo with the data
this.fillComboAndMap();

// select a view if specified
if( viewIDToSelect != null )
for( int i = 0; i < availableviews =" (IViewDescriptor[])">

2 commenti:

William Foster ha detto...

Caro Luca,

secondo te è possibile istanziare un Combo SWT affinché gli elementi della lista non siano solo del semplice testo, ma volendo anche con degli stili (grassetto, colore etc.) per delle sue parti?

Magari facendo sì che siano addirittura dei Composite customizzati per affiancarci immagini, etc?

Ti ringrazio,
Alessandro

Luca Ferrari ha detto...

Per quello che ne so SWT non supporta dei Combo che abbiano qualcosa in piu' di etichette di testo. Esistono degli sviluppi di terze parti che includono le immagini (ad esempio ComboEx) ma non sono portabili (credo ne esista solo la versione per Windows).