giovedì 8 ottobre 2009

StackLayout

Lo StackLayout appartiene a eclipse.swt.widgets.Layout e serve per sovrapporre elementi grafici, consentendo di switchare tra essi agevolmente portando in primo piano l'oggetto che si desidera.

Un esempio molto semplice è il seguente. Ho un Composite container che contiene due altri Composite compositeOne e compositeTwo, solo uno dei due voglio che sia in primo piano:

Composite container = new Composite(compositeParent, SWT.NONE);
container.setLayoutData(new GridData(GridData.FILL_BOTH));
final StackLayout stackLayout = new StackLayout();
container.setLayout(stackLayout);

Composite compositeOne = new Composite(container, SWT.NONE);
compositeOne.setLayout(new FillLayout());

Composite compositeTwo = new Composite(container, SWT.NONE);
compositeTwo.setLayout(new FillLayout());

// se si vuole rendere visibile il compositeOne
stackLayout.topControl = compositeOne;
container.layout();

// se si vuole rendere visibile il compositeTwo
stackLayout.topControl = compositeTwo;
container.layout();


Grazie al set topControl dello stackLayout e richiamando il metodo layout() ottengo lo switch tra i due oggetti.

Nessun commento:

Posta un commento