Menu

MainPreconditions

Remo

Preconditions

For using RCPForms some preconditions are needed, please read first if this applies to your application.

Software

  • If you use Eclipse 3.4 and JDK 1.5, fine, just go ahead.
  • If you use Eclipse 3.2, there is a backport available. It will not offer all the features of rcpforms, but basic data binding
  • If you use an Eclipse version lower than 3.2, forget it. RCPForms will not work. I strongly recommend to think about upgrading to at least Eclipse 3.3.
  • Eclipse 3.2 or higher is needed; there is no way around this. Since error marker support and databinding was only introduced with Eclipse 3.3, we strongly recommend Eclipse 3.3.
  • If you really need Eclipse 3.2, there is a tweaky backport of rcpforms to Eclipse 3.2 and some special databinding patch, which will offer most features on Eclipse 3.2 as well. Anyway, expect some backporting work to be done if you want to use special features like Date Picker, more sophisticated table editing etc. Check out the branch and try the rcpforms examples to see which things work and which dont.
  • If you use Eclipse 3.3, you will additionally have to install the databinding version 1.1 plugins from Eclipse 3.4, since RCPForms uses several of the Eclipse Databinding 1.1 features. My standard target platform for developing rcpforms is Eclipse 3.3, I have imported the databinding plugins org.eclipse.core.databinding, org.eclipse.core.databinding.beans,org.eclipse.jface.databinding into my workspace.
  • JDK 1.5 or higher is needed; RCPForms uses generics and other JDK 1.5 features; you might be able to do a backport, but I will not do it (unless you pay me for this ;-))
  • currently RCPForms is only tested on Windows systems (including Vista); users reported it is running on Mac, please report if it runs on Linux too. Even if not all features work out of the box on Linux or Mac, it should be nearly no effort to get it running there --> patches welcome !

Architectural Constraints

Well, if you do not want to use RCP or SWT, you picked the wrong place. RCPForms is a solution for Eclipse UI, not .net, netbeans or swing.
If you want to do HTML user interfaces, this might be interesting for you; actually supporting RAP (in short: an effort to run Eclipse UI in a browser while maintaining SWT/JFace API compatibility ) is strongly wished and planned, but not yet there. If you want to contribute into making RCPForms run on RAP, go ahead. If you want to pay someone doing it for you, please contact the main author.

There are no specific constraints on the model you use to maintain the data manipulated by your UI; it should be change-aware and able to fire change notifications, otherwise you will have a refresh problem. Anything like Java Beans or EMF will do; RCPForms supports Model Adapters to access attributes and meta-information. Having an already existing databinding layer for your model will make things much easier, thus Java Bean or EMF is recommended.

One major architectural goal of RCPForms was not to force you into an architecture you do not want; thus it is strongly layered. If your architecture places some constraints which do not align well with some of the RCPForms ideas, you can still use some of the lower layers, e.g. use widget wrappers with the centralized factory, convenient creation and state management without using databinding at all, or using the table support without using the widget wrappers at all.
See Layers? for more details.

Know How

The framework tries to hide some of the complexity of developing forms from you; as with all frameworks there might be points in time where it just does not work and you have to dig deeper into the secrets of SWT, JFace, UI Forms or Databinding. For your project you should have at least one programmer who has profound Eclipse RCP experience to solve these problems and coach other programmers if they are in trouble.

Anyway, the programming model of rcpforms is simple by design and you can test your form using a standard Java Startup, no osgi needs to be involved. Starting from the examples included a programmer should be able to create simple forms and do validation in a couple of days.

Anyway, there is some knowhow needed for all of them:

  • Using Eclipse to develop applications
  • basic knowledge of eclipse plugins and classpath management
  • Layout management in SWT, especially grid layout
  • Knowledge about the model and change notifications, e.g. Java Beans or EMF
  • in-depth look at the rcpforms Sandbox example application

Of course, all knowhow you need to develop forms in RCP without using RCPForms is helpful too, but actually I won't recommend doing it the plain way once you need decorations and data binding:

  • in-depth knowledge of SWT controls, its event model and problems with SWT
  • in-depth knowledge of JFace, especially content and label providers
  • in-depth knowledge of Eclipse Databinding

Licensing

This is free and EPL, so there should be no licensing problems at all.


Related

Documentation: BackportEclipse32
Documentation: Home
Documentation: MainUserManual

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.