Project

General

Profile

Download (4.44 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2007 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

    
11
package eu.etaxonomy.taxeditor.ui.section.identifier;
12

    
13
import java.util.Collection;
14

    
15
import org.eclipse.jface.action.Action;
16
import org.eclipse.jface.action.IAction;
17
import org.eclipse.jface.action.ToolBarManager;
18
import org.eclipse.jface.resource.ImageDescriptor;
19
import org.eclipse.swt.SWT;
20
import org.eclipse.swt.graphics.ImageData;
21
import org.eclipse.swt.widgets.Control;
22

    
23
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
24
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
25
import eu.etaxonomy.cdm.model.common.Identifier;
26
import eu.etaxonomy.taxeditor.model.ImageResources;
27
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
28
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
29
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
30

    
31
/**
32
 * <p>
33
 * CollectingAreasDetailSection class.
34
 * </p>
35
 *
36
 * @author n.hoffmann
37
 * @created Oct 14, 2010
38
 * @version 1.0
39
 */
40
public class IdentifierDetailSection extends AbstractEntityCollectionSection<DerivedUnitFacade, Identifier> {
41

    
42
	/**
43
	 * <p>Constructor for CollectingAreasDetailSection.</p>
44
	 *
45
	 * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
46
	 * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
47
	 * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
48
	 * @param style a int.
49
	 */
50
	public IdentifierDetailSection(CdmFormFactory formFactory,
51
			ConversationHolder conversation, ICdmFormElement parentElement, int style) {
52
		super(formFactory, conversation, parentElement, "Identifiers", style);
53
	}
54

    
55
	@Override
56
    protected Control createToolbar() {
57
        ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
58

    
59
        Action addAction = new Action("add", IAction.AS_PUSH_BUTTON){
60
            /* (non-Javadoc)
61
             * @see org.eclipse.jface.action.Action#run()
62
             */
63
            @Override
64
            public void run() {
65
                Identifier element = createNewElement();
66
                if(element != null){
67
                    if(! getSection().isExpanded()) {
68
                        getSection().setExpanded(true);
69
                    }
70
                    internalUpdateSection(true);
71
                }
72
            }
73
        };
74
        addAction.setImageDescriptor(new ImageDescriptor() {
75

    
76
            @Override
77
            public ImageData getImageData() {
78
                return ImageResources.getImage(ImageResources.ADD_ICON).getImageData();
79
            }
80
        });
81
        addAction.setToolTipText(getTooltipString());
82

    
83
        toolBarManager.add(addAction);
84

    
85
        return toolBarManager.createControl(this);
86
    }
87

    
88
	/* (non-Javadoc)
89
	 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
90
	 */
91
	/** {@inheritDoc} */
92
	@Override
93
	public Collection<Identifier> getCollection(DerivedUnitFacade entity) {
94
		return entity.getIdentifiers();
95
	}
96

    
97
	/* (non-Javadoc)
98
	 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#createNewElement()
99
	 */
100
	/** {@inheritDoc} */
101
	@Override
102
	public Identifier createNewElement() {
103
		return Identifier.NewInstance(getEntity().baseUnit(), null, null);
104
	}
105

    
106
	/* (non-Javadoc)
107
	 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
108
	 */
109
	/** {@inheritDoc} */
110
	@Override
111
	public void addElement(Identifier element) {
112
		getEntity().addIdentifier(element);
113
	}
114

    
115
	/* (non-Javadoc)
116
	 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
117
	 */
118
	/** {@inheritDoc} */
119
	@Override
120
	public void removeElement(Identifier element) {
121
	    getEntity().removeIdentifier(getEntity().getIdentifiers().get(0));
122
	    getConversationHolder().commit();
123
	}
124

    
125
	/* (non-Javadoc)
126
	 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
127
	 */
128
	/** {@inheritDoc} */
129
	@Override
130
	public String getEmptyString() {
131
		return "No identifiers yet.";
132
	}
133

    
134
	/* (non-Javadoc)
135
	 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
136
	 */
137
	/** {@inheritDoc} */
138
	@Override
139
	protected String getTooltipString() {
140
		return "Add an identifier";
141
	}
142

    
143
}
(2-2/2)