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
.CdmCompositeController
;
18 import eu
.etaxonomy
.taxeditor
.ui
.mvc
.interfaces
.ICdmComposite
;
21 * Basic implementation of {@link ICdmComposite}.
25 * @param <T> The {@link CdmCompositeController} for this composite.
27 public abstract class AbstractCdmComposite
<T
extends CdmCompositeController
> extends Composite
implements ICdmComposite
{
29 protected T controller
;
35 public AbstractCdmComposite(Composite parent
, int style
) {
39 protected void initChildController(CdmFormFactory formFactory
, ICdmFormElement parentElement
){
40 Control
[] children
= this.getChildren();
41 for (int i
= 0; i
< children
.length
; i
++) {
42 if(children
[i
] instanceof ICdmComposite
){
43 ICdmComposite cdmComposite
= (ICdmComposite
)children
[i
];
44 cdmComposite
.initController(formFactory
, parentElement
);
45 formFactory
.adapt(cdmComposite
.getController());
46 parentElement
.addElement(cdmComposite
.getController());
52 * @see eu.etaxonomy.taxeditor.ui.mvc.interfaces.CdmComposite#initController(eu.etaxonomy.taxeditor.ui.element.CdmFormFactory, eu.etaxonomy.taxeditor.ui.element.ICdmFormElement)
55 public void initController(CdmFormFactory formFactory
, ICdmFormElement parentElement
) {
56 initInternalController(formFactory
, parentElement
);
57 initChildController(formFactory
, parentElement
);
62 * @param parentElement
65 protected abstract void initInternalController(CdmFormFactory formFactory
, ICdmFormElement parentElement
);
68 public T
getController(){