Controller for Composite

The CompositeController is build around a Composite. It extends a org.adichatz.engine.controller.AEntityManagerController that means:

  • It is a collection controller wich can contain other controllers (field controllers, collection controllers…).
  • It can receive and manage its own entity.


Control

The control org.eclipse.swt.widgets.Composite is a SWT controls container which owns its own layout.

Usage:

Code

<formPage formText="#MSG(adichatzStudio, scenario.rcp.formText, #PARAM(pluginName))" title="#MSG(adichatzStudio, scenario.rcp.page)" id="rcpPage">
    <layout columnConstraints="[grow,fill]" layoutConstraints="wrap"/>
    <include adiResourceURI="adi://editor/ScenarioTBM" id="rcpTBM"/>
	<composite id="parentRcpComposite" entity="#ENTITY(#BEAN().getGenerationScenario())" entityURI="adi://org.adichatz.studio/model/GenerationScenarioMM">
        <layout columnConstraints="[grow,fill]" layoutConstraints="wrap, ins 0"/>
   	    <checkBox id="rcpPart" text="#MSG(adichatzStudio, scenario.has.rcp.part)" controllerClassName="org.adichatz.studio.xjc.controller.RcpCheckBoxController"/>
   	    <composite id="rcpComposite" entityURI="adi://org.adichatz.studio/model/RcpPartMM" entity="#ENTITY(#BEAN().getRcpPart())" valid="false" layoutData="gap left 20"> 
       		<layout columnConstraints="[grow,fill]" layoutConstraints="wrap 1"/>
   	    	<checkBox id="application" property="application" text="#MSG(adichatzStudio, scenario.is.application)" noLabel="true"/>
   	    	<checkBox id="navigator" property="navigator" text="#MSG(adichatzStudio, scenario.has.navigator)" noLabel="true"/>
		</composite>
	</composite>
</formPage>

Overview

Composite


Explanations
entityURI="adi://org.adichatz.studio/model/RcpPartMM" Gives the type of the entity (EntityMetaModel).
entity=“entity=”#ENTITY(#BEAN().getRcpPart())“ Injects and entity in the composite: bean of the new entity is the property rcpPart of the entity injected in the parent controller.
valid=“false” The controller is not build, the life of cycle ignores the controller and its children. The controller org.adichatz.studio.xjc.controller.RcpCheckBoxController manages the validity of the composite.
layoutData=“gap left 20” Add a margin of 20 pixels.
<layout columnConstraints=”[grow,fill]“ …/>Composite layout has one column and components in the composite take all place and grow with composite.