Project

General

Profile

Download (2.24 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2014 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
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.
9
*/
10
package eu.etaxonomy.taxeditor.ui.mvc;
11

    
12
import org.eclipse.swt.widgets.Composite;
13
import org.eclipse.swt.widgets.Control;
14

    
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;
19

    
20
/**
21
 * @author pplitzner
22
 * @date 11.02.2014
23
 *
24
 */
25
public abstract class AbstractCdmComposite<T extends CdmCompositeController> extends Composite implements ICdmComposite {
26

    
27
    protected T controller;
28

    
29
    /**
30
     * @param parent
31
     * @param style
32
     */
33
    public AbstractCdmComposite(Composite parent, int style) {
34
        super(parent, style);
35
    }
36

    
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());
45
            }
46
        }
47
    }
48

    
49
    /* (non-Javadoc)
50
     * @see eu.etaxonomy.taxeditor.ui.mvc.interfaces.CdmComposite#initController(eu.etaxonomy.taxeditor.ui.element.CdmFormFactory, eu.etaxonomy.taxeditor.ui.element.ICdmFormElement)
51
     */
52
    @Override
53
    public void initController(CdmFormFactory formFactory, ICdmFormElement parentElement) {
54
        initInternalController(formFactory, parentElement);
55
        initChildController(formFactory, parentElement);
56
    }
57

    
58
    /**
59
     * @param formFactory
60
     * @param parentElement
61
     * @return
62
     */
63
    protected abstract void initInternalController(CdmFormFactory formFactory, ICdmFormElement parentElement);
64

    
65
    @Override
66
    public T getController(){
67
        return controller;
68
    }
69

    
70
}
(1-1/3)