implementation and generalization of a form framework to be used in the tabbed proper...
[taxeditor.git] / taxeditor-editor / src / main / java / eu / etaxonomy / taxeditor / forms / entitysections / ExtensionSection.java
1 /**
2 *
3 */
4 package eu.etaxonomy.taxeditor.forms.entitysections;
5
6 import org.eclipse.jface.action.Action;
7 import org.eclipse.jface.action.IAction;
8 import org.eclipse.swt.events.SelectionAdapter;
9 import org.eclipse.swt.events.SelectionEvent;
10 import org.eclipse.swt.widgets.Composite;
11
12 import eu.etaxonomy.cdm.model.common.Extension;
13 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
14 import eu.etaxonomy.cdm.model.common.Marker;
15
16 /**
17 * @author nho
18 *
19 */
20 public class ExtensionSection extends AbstractEntitySetSection<IdentifiableEntity> {
21
22 /**
23 * @param parent
24 * @param entity
25 * @param style
26 */
27 protected ExtensionSection(Composite parent, IdentifiableEntity entity,
28 int style) {
29 super(parent, entity, style);
30 setText("Extensions");
31 }
32
33 /* (non-Javadoc)
34 * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#createDynamicContents()
35 */
36 @Override
37 protected void createDynamicContents() {
38 // TODO Auto-generated method stub
39
40 }
41
42 private class RemoveListener extends SelectionAdapter{
43 private Extension extension;
44
45 public RemoveListener(Extension extension){
46 this.extension = extension;
47 }
48
49 /* (non-Javadoc)
50 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
51 */
52 @Override
53 public void widgetSelected(SelectionEvent e) {
54 getEntity().removeExtension(extension);
55 internalUpdateSection(true);
56 }
57 }
58
59 /* (non-Javadoc)
60 * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#getAddAction()
61 */
62 @Override
63 protected IAction getAddAction() {
64 Action addExtension = new Action("add", Action.AS_PUSH_BUTTON){
65 /* (non-Javadoc)
66 * @see org.eclipse.jface.action.Action#run()
67 */
68 @Override
69 public void run() {
70 Extension extension = Extension.NewInstance();
71 getEntity().addExtension(extension);
72 internalUpdateSection(true);
73 if(! getSection().isExpanded())
74 getSection().setExpanded(true);
75 internalUpdateSection(true);
76 }
77 };
78 addExtension.setToolTipText("Create a new extension");
79 return addExtension;
80 }
81
82 }