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 / MarkerSection.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.AnnotatableEntity;
13 import eu.etaxonomy.cdm.model.common.Marker;
14
15 /**
16 * @author nho
17 *
18 */
19 public class MarkerSection extends AbstractEntitySetSection<AnnotatableEntity> {
20
21 /**
22 * @param parent
23 * @param entity
24 * @param style
25 */
26 protected MarkerSection(Composite parent, AnnotatableEntity entity, int style) {
27 super(parent, entity, style);
28 setText("Marker");
29 }
30
31 /* (non-Javadoc)
32 * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#createDynamicContents()
33 */
34 @Override
35 protected void createDynamicContents() {
36 // TODO
37 }
38
39 private class RemoveListener extends SelectionAdapter{
40 private Marker marker;
41
42 public RemoveListener(Marker marker){
43 this.marker = marker;
44 }
45
46 /* (non-Javadoc)
47 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
48 */
49 @Override
50 public void widgetSelected(SelectionEvent e) {
51 getEntity().removeMarker(marker);
52 internalUpdateSection(true);
53 }
54 }
55
56 /* (non-Javadoc)
57 * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#getAddAction()
58 */
59 @Override
60 protected IAction getAddAction() {
61 Action addMarker = new Action("add", Action.AS_PUSH_BUTTON){
62 /* (non-Javadoc)
63 * @see org.eclipse.jface.action.Action#run()
64 */
65 @Override
66 public void run() {
67 Marker marker = Marker.NewInstance();
68 getEntity().addMarker(marker);
69 internalUpdateSection(true);
70 if(! getSection().isExpanded())
71 getSection().setExpanded(true);
72 internalUpdateSection(true);
73 }
74 };
75 addMarker.setToolTipText("Create a new marker");
76 return addMarker;
77 }
78
79 }