Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "JFace Data Binding/PojoBindable/PojoBindableSVN"

(Pojo Bindable & SVN projects)
(Pojo Bindable & SVN projects)
Line 126: Line 126:
 
   </li>
 
   </li>
 
   <li>Pojo Bindable use Equinix Adaptor Hook. The bundle weawing is gragment OSGi attached to org.eclipse.osgi bundle. To work with PDE, import the bundle org.eclipse.osgi as binary project into your workspace :  
 
   <li>Pojo Bindable use Equinix Adaptor Hook. The bundle weawing is gragment OSGi attached to org.eclipse.osgi bundle. To work with PDE, import the bundle org.eclipse.osgi as binary project into your workspace :  
 +
 
[[Image:PojoBindableSVN_OSGiContext_ImportOrgEclipseOsiBundle.png]]
 
[[Image:PojoBindableSVN_OSGiContext_ImportOrgEclipseOsiBundle.png]]
  
  Your workspace look like this :   
+
  </li>
 +
  <li>Your workspace look like this :   
 +
 
 +
 
 
[[Image:PojoBindableSVN_OSGiContext_workspace.png]]
 
[[Image:PojoBindableSVN_OSGiContext_workspace.png]]
 +
 
   </li>
 
   </li>
 +
  <li>Start the bundle with '''Pojo Bindable OSGi.launch'''.</li>
 
</ol>
 
</ol>
  

Revision as of 13:01, 12 April 2010

Pojo Bindable SVN

For the last version of Pojo Bindable you can (for the moment) get it from the SVN on Dynaresume project. You can find the whole Pojo bindable project at http://dynaresume.googlecode.com/svn/trunk/JFace-Pojo-Bindable/ :

Pojo Bindable into OSGi context

You can find a basic sample with Pojo bindable into org.eclipse.core.examples.databinding.pojo.bindable.equinox bundle. This bundle has an Activator which create a basic PojoPerson coming from another bundle org.eclipse.core.examples.databinding.pojo.bindable.model:

package org.eclipse.core.examples.databinding.pojo.bindable.model;
 
public class PojoPerson {
 
	String name = "HelloWorld";
 
	public String getName() {
		return name;
	}
 
	public void setName(String name) {
		this.name = name;
	}
}

and add it a PropertyChangeListener listener :

public class Activator implements BundleActivator {
 
	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext
	 * )
	 */
	public void start(BundleContext context) throws Exception {
 
		// Create Pojo instance
		PojoPerson person = new PojoPerson();
 
		PropertyChangeListener listener = new PropertyChangeListener() {
			public void propertyChange(PropertyChangeEvent event) {
				System.out.println("---------- Property User changed --------");
				System.out.println("  PropertyName=" + event.getPropertyName());
				System.out.println("  OldValue=" + event.getOldValue());
				System.out.println("  NewValue=" + event.getNewValue());
				System.out
						.println("------------------------------------------");
			}
		};
 
		// Add Listener
		try {
			Method m = person.getClass().getMethod("addPropertyChangeListener",
					String.class, PropertyChangeListener.class);
			m.invoke(person, "name", listener);
		} catch (Exception e) {
			e.printStackTrace();
		}
 
		// Change name property.
		person.setName("New name");
 
	}
...
}

When bundle is started, you will see on console :

---------- Property User changed --------
  PropertyName=name
  OldValue=HelloWorld
  NewValue=New name
------------------------------------------

You can notice that there is no dependencies to Pojo Bindable in this code. If Pojo Bindable is well configured into OSGi context, when PojoPersonn Class is used, the bytecode is updated when Class is loaded to add PropertyChangeSupport.

Pojo Bindable works into OSGi context only with Equinox. Indead Pojo bindable provides an OSGi fragment org.eclipse.core.databinding.pojo.bindable.equinox.weaving which is linked to org.eclipse.osgi and use Adaptor Hook.

Pojo Bindable & SVN projects

To test the bundle org.eclipse.core.examples.databinding.pojo.bindable.equinox, you must :

  1. import from SVN the projects :
    1. the 3 ASM projects stored into dependencies :
    2. org.eclipse.core.examples.databinding.pojo.bindable: Pojo Bindable bundle.
    3. TODO other bundles (see screenshot).
    4. PojoBindableSVN OSGiContext Projects.png

  2. Pojo Bindable use Equinix Adaptor Hook. The bundle weawing is gragment OSGi attached to org.eclipse.osgi bundle. To work with PDE, import the bundle org.eclipse.osgi as binary project into your workspace : PojoBindableSVN OSGiContext ImportOrgEclipseOsiBundle.png
  3. Your workspace look like this : PojoBindableSVN OSGiContext workspace.png
  4. Start the bundle with Pojo Bindable OSGi.launch.

Pojo Bindable & EclipseLink

EclipseLink provider Dynamic Weaving Fragment for Equinox into org.eclipse.persistence.jpa.equinox.weaving fragment to transform bytecode.

Back to the top