Project

General

Profile

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

    
11
package eu.etaxonomy.taxeditor.section.classification;
12

    
13

    
14
import org.apache.log4j.Logger;
15
import org.eclipse.jface.util.IPropertyChangeListener;
16
import org.eclipse.jface.util.PropertyChangeEvent;
17
import org.eclipse.swt.SWT;
18

    
19
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
20
import eu.etaxonomy.cdm.model.taxon.ITreeNode;
21
import eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage;
22
import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
23
import eu.etaxonomy.taxeditor.forms.CdmFormFactory.DetailType;
24
import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
25

    
26
/**
27
 * <p>TaxonNodeWizardPage class.</p>
28
 *
29
 * @author n.hoffmann
30
 * @created Sep 15, 2009
31
 * @version 1.0
32
 */
33
public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITreeNode> implements IPropertyChangeListener{
34
	
35
	private static final Logger logger = Logger
36
			.getLogger(TaxonNodeWizardPage.class);
37
	
38
	/**
39
	 * <p>Constructor for TaxonNodeWizardPage.</p>
40
	 *
41
	 * @param formFactory a {@link eu.etaxonomy.taxeditor.forms.CdmFormFactory} object.
42
	 * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
43
	 * @param entity a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
44
	 */
45
	public TaxonNodeWizardPage(CdmFormFactory formFactory,
46
			ConversationHolder conversation, ITreeNode entity) {
47
		super(formFactory, conversation, entity);
48
		setTitle("Create a new Taxon");
49
	}
50

    
51

    
52
	/* (non-Javadoc)
53
	 * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement(eu.etaxonomy.taxeditor.forms.ICdmFormElement)
54
	 */
55
	/** {@inheritDoc} */
56
	@Override
57
	public TaxonNodeDetailElement createElement(ICdmFormElement rootElement) {
58
	
59
		TaxonNodeDetailElement detailElement = (TaxonNodeDetailElement) formFactory.createCdmDetailElement(DetailType.TAXON_NODE, rootElement, SWT.NULL);
60
		detailElement.setEntity(entity);
61
		formFactory.addPropertyChangeListener(this);
62
		return detailElement;
63
	}
64

    
65

    
66
	/* (non-Javadoc)
67
	 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
68
	 */
69
	/** {@inheritDoc} */
70
	@Override
71
	public void propertyChange(PropertyChangeEvent event) {
72
		if(event.getSource() == getDetailElement()){
73
			setPageComplete(checkComplete());
74
		}
75
	}
76

    
77
	/**
78
	 * 
79
	 */
80
	private boolean checkComplete() {
81
		TaxonNodeDetailElement detailElement = (TaxonNodeDetailElement) getDetailElement();
82
		
83
		if(detailElement.getClassification() == null){
84
			setMessage("No classification", WARNING);
85
		}else{
86
			setMessage(null);
87
			return true;
88
		}
89
		
90
		return false;
91
	}
92

    
93

    
94
	/* (non-Javadoc)
95
	 * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#dispose()
96
	 */
97
	/** {@inheritDoc} */
98
	@Override
99
	public void dispose() {
100
		formFactory.removePropertyChangeListener(this);
101
		super.dispose();
102
	}
103
	
104
	
105
//	private static final String BUTTON_TEXT_BROWSE = "Browse";
106
//	
107
//	private static final String ERROR_MESSAGE_TAXONOMIC_TREE_EMPTY = "Classification must not be empty";
108
//
109
//	private TaxonomicTree classification;
110
//	
111
//	private ParseHandler parseHandler;
112
//	
113
//	private TaxonNode parentTaxonNode;
114
//	
115
//	private TaxonBase taxonBase;
116
//	
117
//	private boolean reuseExistingTaxon = false;
118
//	
119
//	private TaxonNameBase taxonName;
120
//	
121
//	private boolean openInEditor = true;
122
//
123
//	private Button button_openInEditor;
124
//
125
//	private Text text_parentTaxonNode;
126
//
127
//	private Text text_reuseTaxon;
128
//
129
//	private Text text_taxonName;
130
//
131
//	private Text text_taxonomicTree;
132
//
133
//	private Button button_taxonName;
134
//
135
//	private Button button_reuseTaxon;
136
//
137
//	private Button button_toggleReuseTaxon;
138
//	
139
//	/**
140
//	 * @param pageName
141
//	 */
142
//	protected TaxonNodeWizardPage(IStructuredSelection selection) {
143
//		super("New Taxon");
144
//		
145
//		if(selection != null && selection.size() == 1){
146
//			if(selection.getFirstElement() instanceof ITreeNode){
147
//				ITreeNode parentNode = (ITreeNode) selection.getFirstElement();			
148
//				
149
//				if(parentNode instanceof TaxonNode){
150
//					parentTaxonNode = (TaxonNode) parentNode;
151
//					classification = parentTaxonNode.getTaxonomicTree();
152
//				}else{
153
//					classification = (TaxonomicTree) parentNode;
154
//				}
155
//			}
156
//		}else{
157
//			setPageComplete(false);
158
//		}
159
//		
160
//	}
161
//	
162
//	/* (non-Javadoc)
163
//	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
164
//	 */
165
//	public void createControl(Composite parent) {
166
//		Composite composite = new Composite(parent, SWT.NULL);
167
//		
168
//		GridLayout layout = new GridLayout(3, false);
169
//		composite.setLayout(layout);
170
//		
171
//		// taxonomic tree
172
//		Label label_taxonomicTree = new Label(composite, SWT.NULL);
173
//		label_taxonomicTree.setText("Classification");
174
//		
175
//		text_taxonomicTree = new Text(composite, SWT.BORDER | SWT.SINGLE);
176
//		text_taxonomicTree.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true));
177
//		text_taxonomicTree.setEnabled(false);
178
//		text_taxonomicTree.addModifyListener(this);
179
//		text_taxonomicTree.setText(classification != null ? classification.getTitleCache() : "");
180
//		
181
//		Button button_taxonomicTree = new Button(composite, SWT.PUSH);
182
//		button_taxonomicTree.setText(BUTTON_TEXT_BROWSE);
183
//		button_taxonomicTree.addSelectionListener(new TaxonomicTreeSelector());
184
//		
185
//		
186
//		// parental node
187
//		Label label_parentTaxonNode = new Label(composite, SWT.NULL);
188
//		label_parentTaxonNode.setText("Parent Taxon");
189
//		
190
//		text_parentTaxonNode = new Text(composite, SWT.BORDER | SWT.SINGLE);
191
//		text_parentTaxonNode.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true));
192
//		text_parentTaxonNode.setEnabled(false);
193
//		text_parentTaxonNode.setText(parentTaxonNode != null ? parentTaxonNode.getTaxon().getName().getTitleCache() : "");
194
//		
195
//		Button button_parentTaxonNode = new Button(composite, SWT.PUSH);
196
//		button_parentTaxonNode.setText(BUTTON_TEXT_BROWSE);
197
//		button_parentTaxonNode.addSelectionListener(new TaxonNodeSelector());
198
//		
199
//		// existing taxon
200
//		Composite container_label_reuseTaxon = new Composite(composite, SWT.NULL);
201
//		container_label_reuseTaxon.setLayout(new GridLayout(2, false));
202
//		
203
//		button_toggleReuseTaxon = new Button(container_label_reuseTaxon, SWT.CHECK);
204
//		button_toggleReuseTaxon.addSelectionListener(new ToggleReuseTaxonSelector());
205
//		button_toggleReuseTaxon.setSelection(reuseExistingTaxon);
206
//		
207
//		Label label_reuseTaxon = new Label(container_label_reuseTaxon, SWT.NULL);
208
//		label_reuseTaxon.setText("Reuse Existing Taxon");
209
//		label_reuseTaxon.setEnabled(false);
210
//		
211
//		text_reuseTaxon = new Text(composite, SWT.BORDER | SWT.SINGLE);
212
//		text_reuseTaxon.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true));
213
//		text_reuseTaxon.setEnabled(false);
214
//	
215
//		
216
//		button_reuseTaxon = new Button(composite, SWT.PUSH);
217
//		button_reuseTaxon.setText(BUTTON_TEXT_BROWSE);
218
//		button_reuseTaxon.addSelectionListener(new TaxonSelector());
219
//		button_reuseTaxon.setEnabled(false);
220
//		
221
//		// name
222
//		Label label_taxonName = new Label(composite, SWT.NULL);
223
//		label_taxonName.setText("Taxon Name");
224
//		
225
//		text_taxonName = new Text(composite, SWT.BORDER | SWT.SINGLE);
226
//		text_taxonName.addModifyListener(this);
227
//		text_taxonName.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true));
228
//		
229
//		button_taxonName = new Button(composite, SWT.PUSH);
230
//		button_taxonName.setText(BUTTON_TEXT_BROWSE);
231
//		button_taxonName.addSelectionListener(new TaxonNameSelector());
232
//		
233
//		// open in editor
234
//		Composite container_openInEditor = new Composite(composite, SWT.NULL);
235
//		container_openInEditor.setLayout(new GridLayout(2, false));
236
//		button_openInEditor = new Button(container_openInEditor, SWT.CHECK);
237
//		button_openInEditor.addSelectionListener(new OpenInEditorSelector());
238
//		button_openInEditor.setSelection(openInEditor);
239
//		
240
//		Label label_openInEditor = new Label(container_openInEditor, SWT.NULL);
241
//		label_openInEditor.setText("Open Taxon in Editor");
242
//				
243
//		// initialize the parse handler
244
//		parseHandler = ParseHandler.NewInstance(text_taxonName, taxonName);
245
//		
246
//		// set focus to name field
247
//		text_taxonName.setFocus();
248
//		
249
//		setControl(composite);
250
//	}
251
//	
252
//	/**
253
//	 * @return the taxon
254
//	 */
255
//	public TaxonBase getTaxon() {
256
//		return taxonBase;
257
//	}
258
//
259
//	/**
260
//	 * @return the name
261
//	 */
262
//	public TaxonNameBase getTaxonName() {
263
//		return taxonName;
264
//	}
265
//	
266
//	/**
267
//	 * @return
268
//	 */
269
//	public ITreeNode getParentNode() {
270
//		return parentTaxonNode != null ? parentTaxonNode : classification;
271
//	}
272
//	
273
//	public boolean openInEditor(){
274
//		return openInEditor;
275
//	}
276
//	
277
//	private void updatePage() {
278
//		getWizard().getContainer().updateButtons();
279
//	}
280
//	
281
//	/*
282
//	 * SELECTION ADAPTERS
283
//	 */
284
//	
285
//	private class TaxonomicTreeSelector extends SelectionAdapter{
286
//		/* (non-Javadoc)
287
//		 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
288
//		 */
289
//		@Override
290
//		public void widgetSelected(SelectionEvent e) {
291
//			super.widgetSelected(e);
292
//			classification = FilteredClassificationSelectionDialog.selectClassification(NavigationUtil.getShell(), null);
293
//			if (classification != null) {
294
//				text_taxonomicTree.setText(classification.getTitleCache());
295
//				text_parentTaxonNode.setText("");
296
//				parentTaxonNode = null;
297
//			}
298
//			setPageComplete(true);
299
//		}
300
//	}
301
//	
302
//	private class TaxonNodeSelector extends SelectionAdapter{
303
//		/* (non-Javadoc)
304
//		 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
305
//		 */
306
//		@Override
307
//		public void widgetSelected(SelectionEvent e) {
308
//			super.widgetSelected(e);
309
//			parentTaxonNode = FilteredTaxonNodeSelectionDialog.selectTaxonNode(NavigationUtil.getShell(), "Select parent", null, null);
310
//			if (parentTaxonNode != null) {
311
//				text_parentTaxonNode.setText(parentTaxonNode.getTaxon().getTitleCache());
312
//				text_taxonomicTree.setText(parentTaxonNode.getTaxonomicTree().getTitleCache());
313
//
314
//				
315
//			}
316
//			setPageComplete(true);
317
//		}
318
//		
319
//	}
320
//	
321
//	private class TaxonSelector extends SelectionAdapter{
322
//		/* (non-Javadoc)
323
//		 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
324
//		 */
325
//		@Override
326
//		public void widgetSelected(SelectionEvent e) {
327
//			super.widgetSelected(e);
328
//			taxonBase = FilteredTaxonSelectionDialog.selectTaxon(NavigationUtil.getShell(), null);
329
//			if (taxonBase != null) {
330
//				text_reuseTaxon.setText(taxonBase.getTitleCache());
331
//			}
332
//		}
333
//	}
334
//	
335
//	private class TaxonNameSelector extends SelectionAdapter{
336
//		/* (non-Javadoc)
337
//		 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
338
//		 */
339
//		@Override
340
//		public void widgetSelected(SelectionEvent e) {
341
//			super.widgetSelected(e);
342
//			taxonName = FilteredNameSelectionDialog.selectName(NavigationUtil.getShell(), null, null);
343
//			if (taxonName != null) {
344
//				text_taxonName.setText(taxonName.getTitleCache());
345
//			}
346
//		}
347
//	}
348
//	
349
//	private class OpenInEditorSelector extends SelectionAdapter{
350
//		/* (non-Javadoc)
351
//		 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
352
//		 */
353
//		@Override
354
//		public void widgetSelected(SelectionEvent e) {
355
//			super.widgetSelected(e);
356
//			openInEditor = button_openInEditor.getSelection();
357
//		}
358
//	}
359
//	
360
//	private class ToggleReuseTaxonSelector extends SelectionAdapter{
361
//		/* (non-Javadoc)
362
//		 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
363
//		 */
364
//		@Override
365
//		public void widgetSelected(SelectionEvent e) {
366
//			super.widgetSelected(e);
367
//			
368
//			if(button_toggleReuseTaxon.getSelection()){
369
//				// enable reuse Taxon
370
//				text_reuseTaxon.setEnabled(true);
371
//				button_reuseTaxon.setEnabled(true);
372
//				// disable name
373
//				text_taxonName.setEnabled(false);
374
//				button_taxonName.setEnabled(false);
375
//			}else{
376
//				// disable reuse Taxon
377
//				text_reuseTaxon.setEnabled(false);
378
//				button_reuseTaxon.setEnabled(false);
379
//				// enable name
380
//				text_taxonName.setEnabled(true);
381
//				button_taxonName.setEnabled(true);
382
//			}
383
//			
384
//		}
385
//	}
386
//
387
//	/* (non-Javadoc)
388
//	 * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
389
//	 */
390
//	public void modifyText(ModifyEvent e) {
391
//		if (e.getSource().equals(text_taxonomicTree)) {
392
//			if (! "".equals(text_taxonomicTree.getText())) {
393
//				setErrorMessage(null);
394
//			}
395
//		}
396
//		
397
//		if (e.getSource().equals(text_taxonName)) {
398
//			// Set error message if taxonomic tree was not chosen
399
//			if ("".equals(text_taxonomicTree.getText())) {
400
//				setErrorMessage(ERROR_MESSAGE_TAXONOMIC_TREE_EMPTY);
401
//			}
402
//			
403
//			taxonName = parseHandler.parse();
404
//		}
405
//		
406
//		updatePage();
407
//	}	
408
}
(6-6/6)