Description:
We will manage (add/remove/edit/switch-active) configurations in
seviral place (such as in Application Descriptor Form Editor, in project
properties page, in peojrct create wizard page, etc.), so we should create a
reusable UI component for configuration management. DeviceSelector.java is a
example.

Description:
Since the project will have multiple devices associated to it, the
deployment folder also need to separated according to the devices associated on
the project. when the project is build it must generate a jar/jad for each of
the devices associated to the project.

We will use *configuration name* as deployment folder name. User must switch configuration before build for another configuration.

Description:
when user input the right preprocess prefix("//#" or "// #") in
preprocess project(which has preprocess nature), and press content assist
key("Alt+/") in right place, the supported preprocess directive will be
proposed.

Description:
After the right preprocess directive, if user press content assist
key in a right place, the symbols belongs to the relevant project(can be
configured in the configurations of the project) will be proposed.

when a symbol is selected, a pop-up window will be used to show the following
information: the configuration name that provide this symbol, the symbol value
provided by this configuration.

Description:
Each runtime configuration may require a specific set of resources, since that, MTJ shall provide a way for
developers to customize the contents packaged on the application package during build.