Differenze tra le versioni di "Programmazione:Java/Eclipse RCP/Model databinding"
(Nuova pagina: << Back to Eclipse RCP Per poter collegare il modello all'interfaccia grafica bisogna prima di tutto inserire tra le dipendenze i plugin: * '''org...) |
|||
Riga 49: | Riga 49: | ||
} | } | ||
</code> | </code> | ||
+ | |||
+ | Gli ultimi due '''null''' passati in fondo alla funzione '''bindValue''' sono implementazioni della classe '''UpdateValueStrategy''' che permettono di definire l'accesso al modello e al dato |
Versione delle 15:32, 27 mag 2008
Per poter collegare il modello all'interfaccia grafica bisogna prima di tutto inserire tra le dipendenze i plugin:
- org.eclipse.core.databinding
- org.eclipse.core.databinding.beans
- org.eclipse.jface.databinding
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.beans.BeansObservables;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.jface.databinding.swt.SWTObservables;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
public class TestBinding extends WizardPage {
public class Model {
String value;
public void setValue(String s) { value = s; }
public String setValue() { return value; }
}
private Model model = new Model();
private DataBindingContext dbc;
public TestBinding(String pageName, String title, ImageDescriptor titleImage) {
super(pageName, title, titleImage);
dbc = new DataBindingContext();
}
public TestBinding(String pageName) {
super(pageName);
dbc = new DataBindingContext();
}
public void createControl(Composite parent) {
Composite ctrl= new Composite(parent, SWT.BORDER);
setControl(ctrl);
Text test_binding = new Text(ctrl, SWT.NONE);
IObservableValue modelObservable = BeansObservables.observeValue(model, "value");
dbc.bindValue(SWTObservables.observeText(test_binding, SWT.Modify), modelObservable, null, null);
}
}
Gli ultimi due null passati in fondo alla funzione bindValue sono implementazioni della classe UpdateValueStrategy che permettono di definire l'accesso al modello e al dato