96b7048f714fef171667cedba9b7b966fa2549da
[taxeditor.git] / taxeditor-editor / src / main / java / eu / etaxonomy / taxeditor / forms / DescriptionElementSourceComposite.java
1 /**
2 *
3 */
4 package eu.etaxonomy.taxeditor.forms;
5
6 import org.eclipse.jface.util.IPropertyChangeListener;
7 import org.eclipse.jface.util.PropertyChangeEvent;
8 import org.eclipse.swt.SWT;
9 import org.eclipse.swt.events.ModifyEvent;
10 import org.eclipse.swt.events.ModifyListener;
11 import org.eclipse.swt.widgets.Composite;
12
13 import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
14
15 /**
16 * @author nho
17 */
18 public class DescriptionElementSourceComposite extends AbstractFormComposite implements IPropertyChangeListener{
19
20 private DescriptionElementSource source;
21
22 private ReferenceSelectionComposite citationSelection;
23 private TextWithLabelComposite microCitation;
24 private NameSelectionComposite nameSelection;
25
26 protected DescriptionElementSourceComposite(Composite parent, DescriptionElementSource source, int style){
27 super(parent, style);
28 this.source = source;
29
30 citationSelection = new ReferenceSelectionComposite(this, "Citation", source.getCitation(), SWT.NULL);
31 citationSelection.addPropertyChangeListener(this);
32
33 microCitation = new TextWithLabelComposite(this, "Citation Detail", source.getCitationMicroReference(), SWT.NULL);
34 microCitation.addPropertyChangeListener(this);
35
36 nameSelection = new NameSelectionComposite(this, "Name in Source", source.getNameUsedInSource(), SWT.NULL);
37 nameSelection.addPropertyChangeListener(this);
38 }
39
40
41 /**
42 * @return the source
43 */
44 public DescriptionElementSource getSource() {
45 return source;
46 }
47
48 /* (non-Javadoc)
49 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
50 */
51 public void propertyChange(PropertyChangeEvent event) {
52 source.setCitation(citationSelection.getSelection());
53 source.setCitationMicroReference(microCitation.getText());
54 source.setNameUsedInSource(nameSelection.getSelection());
55 firePropertyChangeEvent(event);
56 }
57 }