performed javacscript:fix and worked on documentation
[taxeditor.git] / taxeditor-editor / src / main / java / eu / etaxonomy / taxeditor / section / classification / TaxonNodeWizardPage.java
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 }