3 * Copyright (C) 2014 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.taxeditor
.ui
.mvc
;
12 import org
.eclipse
.swt
.widgets
.Composite
;
13 import org
.eclipse
.swt
.widgets
.Control
;
15 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
16 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
17 import eu
.etaxonomy
.taxeditor
.ui
.mvc
.interfaces
.ICdmComposite
;
18 import eu
.etaxonomy
.taxeditor
.ui
.mvc
.interfaces
.CdmCompositeController
;
25 public abstract class AbstractCdmComposite
extends Composite
implements ICdmComposite
{
27 protected CdmCompositeController controller
;
33 public AbstractCdmComposite(Composite parent
, int style
) {
37 protected void initChildController(CdmFormFactory formFactory
, ICdmFormElement parentElement
){
38 Control
[] children
= this.getChildren();
39 for (int i
= 0; i
< children
.length
; i
++) {
40 if(children
[i
] instanceof ICdmComposite
){
41 ICdmComposite cdmComposite
= (ICdmComposite
)children
[i
];
42 cdmComposite
.initController(formFactory
, parentElement
);
43 formFactory
.adapt(cdmComposite
.getController());
44 parentElement
.addElement(cdmComposite
.getController());
50 * @see eu.etaxonomy.taxeditor.ui.mvc.interfaces.CdmComposite#initController(eu.etaxonomy.taxeditor.ui.element.CdmFormFactory, eu.etaxonomy.taxeditor.ui.element.ICdmFormElement)
53 public void initController(CdmFormFactory formFactory
, ICdmFormElement parentElement
) {
54 initInternalController(formFactory
, parentElement
);
55 initChildController(formFactory
, parentElement
);
60 * @param parentElement
63 protected abstract void initInternalController(CdmFormFactory formFactory
, ICdmFormElement parentElement
);
66 public CdmCompositeController
getController(){