Project

General

Profile

Download (4.82 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.taxeditor.ui.section.description;
2

    
3
import org.apache.commons.lang.StringUtils;
4
import org.eclipse.swt.SWT;
5
import org.eclipse.swt.events.SelectionAdapter;
6
import org.eclipse.swt.events.SelectionEvent;
7
import org.eclipse.swt.events.SelectionListener;
8
import org.eclipse.swt.graphics.Color;
9
import org.eclipse.swt.widgets.Button;
10

    
11
import eu.etaxonomy.cdm.model.common.IIntextReferencable;
12
import eu.etaxonomy.cdm.model.common.IIntextReferenceTarget;
13
import eu.etaxonomy.cdm.model.common.IntextReference;
14
import eu.etaxonomy.cdm.model.common.IntextReferenceHelper;
15
import eu.etaxonomy.cdm.model.common.Language;
16
import eu.etaxonomy.cdm.model.common.LanguageString;
17
import eu.etaxonomy.cdm.model.reference.Reference;
18
import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
19
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
20
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
21
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
22
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
23
import eu.etaxonomy.taxeditor.ui.element.ILanguageStringProvider;
24
import eu.etaxonomy.taxeditor.ui.element.LanguageRichTextWithLabel;
25
import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
26
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
27
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
28
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
29
import eu.etaxonomy.taxeditor.util.RichtextHelper;
30

    
31
public class IntextReferenceDetailElement extends AbstractEntityCollectionElement<IntextReference>	{
32
	
33
	private ILanguageStringProvider langStringElement;
34
	protected EntitySelectionElement<Reference> selection_reference;
35
	TextWithLabelElement label;
36

    
37
	public IntextReferenceDetailElement(CdmFormFactory formFactory, AbstractFormSection section, IntextReference entity, ILanguageStringProvider textElement,
38
			SelectionListener removeListener, Color backgroundColor, int style) {
39
		super(formFactory, section, entity, removeListener, backgroundColor, style);
40
		setLangStringElement(textElement);
41
		formFactory.createSelectionArbitrator(this);
42
	}
43

    
44
	
45
	public IntextReferenceDetailElement(CdmFormFactory formFactory, AbstractFormSection section, ILanguageStringProvider element, IntextReference entity,
46
			SelectionListener removeListener, Color backgroundColor, int style) {
47
		super(formFactory, section, entity, removeListener, backgroundColor, style);
48
		setLangStringElement(element);
49
		formFactory.createSelectionArbitrator(this);
50
	}
51

    
52
	
53

    
54

    
55
	@Override
56
	public void setEntity(IntextReference entity) {
57
		this.entity = entity;
58
		if (entity != null){
59
			if (entity.getTarget() != null && entity.getTarget() instanceof Reference){
60
				selection_reference.setEntity((Reference)entity.getTarget());
61
			}
62
		}
63
		
64
	}
65

    
66
	@Override
67
	public void createControls(ICdmFormElement element, int style) {
68
		selection_reference = formFactory
69
				.createSelectionElement(Reference.class,
70
						this, "Reference",
71
						null,
72
						EntitySelectionElement.EDITABLE |EntitySelectionElement.SELECTABLE , SWT.NONE);
73
		if (entity != null){
74
			if (entity.getTarget() != null && entity.getTarget() instanceof Reference){
75
				selection_reference.setEntity((Reference)entity.getTarget());
76
			}
77
		}
78
		
79
		label = formFactory.createTextWithLabelElement(element, "Label", null, style);
80
		if (entity.getReferencedEntity() != null){
81
			String text = entity.getReferencedEntity().getText();
82
			label.setText(RichtextHelper.findInnerText(text, entity));
83
		}
84
		
85
		Button setButton = formFactory.createButton(this.getLayoutComposite(), "Set IntextReference", SWT.NONE);
86
  	  
87
		setButton.addSelectionListener(new SelectionAdapter() { 
88
			@Override 
89
			public void widgetSelected(SelectionEvent e) { 
90
  		
91
  			org.eclipse.swt.graphics.Point point = langStringElement.getSelection();
92
  			if (point == null){
93
  				point = new org.eclipse.swt.graphics.Point(0,0);
94
  			}
95
  			
96
  			//System.out.println(langStringElement.getText());
97
  			IntextReference intextRef = IntextReferenceHelper.addIntextReference((IIntextReferenceTarget)selection_reference.getSelection(), entity, point.x, point.y);
98
//  			setEntity(intextRef);
99
  			getLangStringElement().setLanguageString((LanguageString)intextRef.getReferencedEntity()) ;
100
//  			label.setText(intextRef.getReferencedEntity().getText().substring(intextRef.getStartPos(), intextRef.getEndPos()));
101
  			firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
102
  			
103
 			
104
  						
105
  	   } 
106
  	  }); 
107
		
108
		
109
	}
110

    
111
	@Override
112
	public void handleEvent(Object eventSource) {
113
		// TODO Auto-generated method stub
114
		
115
	}
116

    
117
	public LanguageString getLangString() {
118
		return langStringElement.getLanguageString();
119
		
120
	}
121
	
122
	public ILanguageStringProvider getLangStringElement() {
123
		return langStringElement;
124
	}
125

    
126
	public void setLangStringElement(ILanguageStringProvider langStringElement) {
127
		this.langStringElement = langStringElement;
128
	}
129

    
130
}
(14-14/27)