Differenze tra le versioni di "Programmazione:Java/Eclipse RCP/Model databinding"

Da WikiSitech.
Vai alla navigazioneVai alla ricerca
(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

<< Back to Eclipse RCP

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