Project

General

Profile

Download (4.08 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9

    
10
package eu.etaxonomy.taxeditor.newWizard;
11

    
12
import java.util.List;
13

    
14
import org.eclipse.jface.viewers.ISelectionChangedListener;
15
import org.eclipse.jface.viewers.IStructuredContentProvider;
16
import org.eclipse.jface.viewers.IStructuredSelection;
17
import org.eclipse.jface.viewers.LabelProvider;
18
import org.eclipse.jface.viewers.ListViewer;
19
import org.eclipse.jface.viewers.SelectionChangedEvent;
20
import org.eclipse.jface.viewers.Viewer;
21
import org.eclipse.jface.wizard.WizardPage;
22
import org.eclipse.swt.SWT;
23
import org.eclipse.swt.events.SelectionEvent;
24
import org.eclipse.swt.events.SelectionListener;
25
import org.eclipse.swt.widgets.Button;
26
import org.eclipse.swt.widgets.Composite;
27
import org.eclipse.swt.widgets.Text;
28

    
29
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
30
import eu.etaxonomy.cdm.ext.ipni.IIpniService;
31
import eu.etaxonomy.cdm.ext.ipni.IpniService;
32
import eu.etaxonomy.cdm.model.reference.Reference;
33
import eu.etaxonomy.taxeditor.store.CdmStore;
34
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
35
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
36

    
37
/**
38
 * <p>ExternalReferenceServiceWizardPage class.</p>
39
 *
40
 * @author n.hoffmann
41
 * @created Sep 16, 2010
42
 */
43
public class ExternalReferenceServiceWizardPage extends WizardPage implements SelectionListener, ISelectionChangedListener {
44

    
45
	private ConversationHolder conversation;
46
	private CdmFormFactory formFactory;
47
	private Reference entity;
48
	private Composite control;
49
	private ListViewer viewer;
50

    
51
	private IIpniService ipniService;
52
	private Text text_query;
53
	private Button button_search;
54

    
55
	protected ExternalReferenceServiceWizardPage(CdmFormFactory formFactory, ConversationHolder conversation, Reference entity) {
56
		super("ExternalReferenceServiceWizardPage");
57
		this.formFactory = formFactory;
58
		this.entity = entity;
59
		this.conversation = conversation;
60
		ipniService = new IpniService();
61

    
62
		setDescription("Query IPNI service for references");
63
	}
64

    
65
	@Override
66
	public void createControl(Composite parent) {
67
		control = formFactory.createComposite(parent);
68

    
69
		control.setLayout(LayoutConstants.LAYOUT(2, false));
70

    
71
		text_query = new Text(control, SWT.SINGLE | SWT.BORDER);
72
		text_query.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
73

    
74
		button_search = new Button(control, SWT.PUSH);
75
		button_search.setLayoutData(LayoutConstants.RIGHT());
76
		button_search.setText("Search");
77

    
78
		button_search.addSelectionListener(this);
79

    
80
		viewer = new ListViewer(control);
81
		viewer.getControl().setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2,1));
82

    
83
		viewer.setContentProvider(new IStructuredContentProvider(){
84

    
85
			@Override
86
			public Object[] getElements(Object inputElement) {
87
				if(inputElement instanceof List){
88
					return ((List) inputElement).toArray();
89
				}
90
				return null;
91
			}
92

    
93
			@Override
94
			public void inputChanged(Viewer viewer, Object oldInput,
95
					Object newInput) {}
96

    
97
			@Override
98
			public void dispose() {}
99

    
100
		});
101
		viewer.setLabelProvider(new LabelProvider(){
102
			@Override
103
			public String getText(Object element) {
104
				if(element instanceof Reference){
105
					return ((Reference) element).getTitleCache();
106
				}
107
				return "Element is not a reference";
108
			}
109
		});
110

    
111
		viewer.addSelectionChangedListener(this);
112

    
113
		setControl(control);
114
	}
115

    
116
	@Override
117
	public void widgetSelected(SelectionEvent e) {
118
		String query = text_query.getText();
119
		List<Reference> publications = ipniService.getPublications(query, null, CdmStore.getCurrentApplicationConfiguration(), null);
120
		viewer.setInput(publications);
121
	}
122

    
123
	@Override
124
	public void widgetDefaultSelected(SelectionEvent e) {}
125

    
126
	@Override
127
	public void selectionChanged(SelectionChangedEvent event) {
128
		IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
129

    
130
		Reference selectedReference = (Reference) selection.getFirstElement();
131
		if(selectedReference != null){
132
			((AbstractNewEntityWizard) getWizard()).setEntity(selectedReference);
133
		}
134
	}
135
}
(4-4/28)