3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
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.
11 package eu
.etaxonomy
.taxeditor
.section
.classification
;
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
;
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
;
27 * <p>TaxonNodeWizardPage class.</p>
30 * @created Sep 15, 2009
33 public class TaxonNodeWizardPage
extends AbstractCdmEntityWizardPage
<ITreeNode
> implements IPropertyChangeListener
{
35 private static final Logger logger
= Logger
36 .getLogger(TaxonNodeWizardPage
.class);
39 * <p>Constructor for TaxonNodeWizardPage.</p>
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.
45 public TaxonNodeWizardPage(CdmFormFactory formFactory
,
46 ConversationHolder conversation
, ITreeNode entity
) {
47 super(formFactory
, conversation
, entity
);
48 setTitle("Create a new Taxon");
53 * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement(eu.etaxonomy.taxeditor.forms.ICdmFormElement)
57 public TaxonNodeDetailElement
createElement(ICdmFormElement rootElement
) {
59 TaxonNodeDetailElement detailElement
= (TaxonNodeDetailElement
) formFactory
.createCdmDetailElement(DetailType
.TAXON_NODE
, rootElement
, SWT
.NULL
);
60 detailElement
.setEntity(entity
);
61 formFactory
.addPropertyChangeListener(this);
67 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
71 public void propertyChange(PropertyChangeEvent event
) {
72 if(event
.getSource() == getDetailElement()){
73 setPageComplete(checkComplete());
80 private boolean checkComplete() {
81 TaxonNodeDetailElement detailElement
= (TaxonNodeDetailElement
) getDetailElement();
83 if(detailElement
.getClassification() == null){
84 setMessage("No classification", WARNING
);
95 * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#dispose()
99 public void dispose() {
100 formFactory
.removePropertyChangeListener(this);
105 // private static final String BUTTON_TEXT_BROWSE = "Browse";
107 // private static final String ERROR_MESSAGE_TAXONOMIC_TREE_EMPTY = "Classification must not be empty";
109 // private TaxonomicTree classification;
111 // private ParseHandler parseHandler;
113 // private TaxonNode parentTaxonNode;
115 // private TaxonBase taxonBase;
117 // private boolean reuseExistingTaxon = false;
119 // private TaxonNameBase taxonName;
121 // private boolean openInEditor = true;
123 // private Button button_openInEditor;
125 // private Text text_parentTaxonNode;
127 // private Text text_reuseTaxon;
129 // private Text text_taxonName;
131 // private Text text_taxonomicTree;
133 // private Button button_taxonName;
135 // private Button button_reuseTaxon;
137 // private Button button_toggleReuseTaxon;
142 // protected TaxonNodeWizardPage(IStructuredSelection selection) {
143 // super("New Taxon");
145 // if(selection != null && selection.size() == 1){
146 // if(selection.getFirstElement() instanceof ITreeNode){
147 // ITreeNode parentNode = (ITreeNode) selection.getFirstElement();
149 // if(parentNode instanceof TaxonNode){
150 // parentTaxonNode = (TaxonNode) parentNode;
151 // classification = parentTaxonNode.getTaxonomicTree();
153 // classification = (TaxonomicTree) parentNode;
157 // setPageComplete(false);
163 // * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
165 // public void createControl(Composite parent) {
166 // Composite composite = new Composite(parent, SWT.NULL);
168 // GridLayout layout = new GridLayout(3, false);
169 // composite.setLayout(layout);
172 // Label label_taxonomicTree = new Label(composite, SWT.NULL);
173 // label_taxonomicTree.setText("Classification");
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() : "");
181 // Button button_taxonomicTree = new Button(composite, SWT.PUSH);
182 // button_taxonomicTree.setText(BUTTON_TEXT_BROWSE);
183 // button_taxonomicTree.addSelectionListener(new TaxonomicTreeSelector());
187 // Label label_parentTaxonNode = new Label(composite, SWT.NULL);
188 // label_parentTaxonNode.setText("Parent Taxon");
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() : "");
195 // Button button_parentTaxonNode = new Button(composite, SWT.PUSH);
196 // button_parentTaxonNode.setText(BUTTON_TEXT_BROWSE);
197 // button_parentTaxonNode.addSelectionListener(new TaxonNodeSelector());
200 // Composite container_label_reuseTaxon = new Composite(composite, SWT.NULL);
201 // container_label_reuseTaxon.setLayout(new GridLayout(2, false));
203 // button_toggleReuseTaxon = new Button(container_label_reuseTaxon, SWT.CHECK);
204 // button_toggleReuseTaxon.addSelectionListener(new ToggleReuseTaxonSelector());
205 // button_toggleReuseTaxon.setSelection(reuseExistingTaxon);
207 // Label label_reuseTaxon = new Label(container_label_reuseTaxon, SWT.NULL);
208 // label_reuseTaxon.setText("Reuse Existing Taxon");
209 // label_reuseTaxon.setEnabled(false);
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);
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);
222 // Label label_taxonName = new Label(composite, SWT.NULL);
223 // label_taxonName.setText("Taxon Name");
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));
229 // button_taxonName = new Button(composite, SWT.PUSH);
230 // button_taxonName.setText(BUTTON_TEXT_BROWSE);
231 // button_taxonName.addSelectionListener(new TaxonNameSelector());
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);
240 // Label label_openInEditor = new Label(container_openInEditor, SWT.NULL);
241 // label_openInEditor.setText("Open Taxon in Editor");
243 // // initialize the parse handler
244 // parseHandler = ParseHandler.NewInstance(text_taxonName, taxonName);
246 // // set focus to name field
247 // text_taxonName.setFocus();
249 // setControl(composite);
253 // * @return the taxon
255 // public TaxonBase getTaxon() {
260 // * @return the name
262 // public TaxonNameBase getTaxonName() {
269 // public ITreeNode getParentNode() {
270 // return parentTaxonNode != null ? parentTaxonNode : classification;
273 // public boolean openInEditor(){
274 // return openInEditor;
277 // private void updatePage() {
278 // getWizard().getContainer().updateButtons();
282 // * SELECTION ADAPTERS
285 // private class TaxonomicTreeSelector extends SelectionAdapter{
287 // * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
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;
298 // setPageComplete(true);
302 // private class TaxonNodeSelector extends SelectionAdapter{
304 // * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
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());
316 // setPageComplete(true);
321 // private class TaxonSelector extends SelectionAdapter{
323 // * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
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());
335 // private class TaxonNameSelector extends SelectionAdapter{
337 // * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
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());
349 // private class OpenInEditorSelector extends SelectionAdapter{
351 // * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
354 // public void widgetSelected(SelectionEvent e) {
355 // super.widgetSelected(e);
356 // openInEditor = button_openInEditor.getSelection();
360 // private class ToggleReuseTaxonSelector extends SelectionAdapter{
362 // * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
365 // public void widgetSelected(SelectionEvent e) {
366 // super.widgetSelected(e);
368 // if(button_toggleReuseTaxon.getSelection()){
369 // // enable reuse Taxon
370 // text_reuseTaxon.setEnabled(true);
371 // button_reuseTaxon.setEnabled(true);
373 // text_taxonName.setEnabled(false);
374 // button_taxonName.setEnabled(false);
376 // // disable reuse Taxon
377 // text_reuseTaxon.setEnabled(false);
378 // button_reuseTaxon.setEnabled(false);
380 // text_taxonName.setEnabled(true);
381 // button_taxonName.setEnabled(true);
388 // * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
390 // public void modifyText(ModifyEvent e) {
391 // if (e.getSource().equals(text_taxonomicTree)) {
392 // if (! "".equals(text_taxonomicTree.getText())) {
393 // setErrorMessage(null);
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);
403 // taxonName = parseHandler.parse();