performed javacscript:fix and worked on documentation
[taxeditor.git] / taxeditor-editor / src / main / java / eu / etaxonomy / taxeditor / dialogs / filteredSelection / FilteredDerivedUnitSelectionDialog.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.dialogs.filteredSelection;
12
13 import java.util.UUID;
14
15 import org.eclipse.swt.widgets.Shell;
16
17 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
18 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
19 import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
20 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
21 import eu.etaxonomy.taxeditor.editor.EditorUtil;
22 import eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard;
23 import eu.etaxonomy.taxeditor.editor.newWizard.NewDerivedUnitBaseWizard;
24 import eu.etaxonomy.taxeditor.store.CdmStore;
25
26 /**
27 * <p>FilteredDerivedUnitSelectionDialog class.</p>
28 *
29 * @author n.hoffmann
30 * @created Jun 17, 2010
31 * @version 1.0
32 */
33 public class FilteredDerivedUnitSelectionDialog extends
34 AbstractFilteredCdmResourceSelectionDialog<DerivedUnitBase> {
35
36 /**
37 * <p>select</p>
38 *
39 * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
40 * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
41 * @param unit a {@link eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase} object.
42 * @return a {@link eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase} object.
43 */
44 public static DerivedUnitBase select(Shell shell, ConversationHolder conversation, DerivedUnitBase unit){
45 FilteredDerivedUnitSelectionDialog dialog = new FilteredDerivedUnitSelectionDialog(shell, conversation,
46 "Choose Unit", false, FilteredDerivedUnitSelectionDialog.class.getCanonicalName(), unit);
47 return getSelectionFromDialog(dialog);
48 }
49
50 /**
51 * <p>Constructor for FilteredDerivedUnitSelectionDialog.</p>
52 *
53 * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
54 * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
55 * @param title a {@link java.lang.String} object.
56 * @param multi a boolean.
57 * @param settings a {@link java.lang.String} object.
58 * @param cdmObject a {@link eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase} object.
59 */
60 protected FilteredDerivedUnitSelectionDialog(Shell shell, ConversationHolder conversation, String title,
61 boolean multi, String settings, DerivedUnitBase cdmObject) {
62 super(shell, conversation, title, multi, settings, cdmObject);
63 }
64
65 /** {@inheritDoc} */
66 @Override
67 protected DerivedUnitBase getPersistentObject(UUID uuid) {
68 Object object = CdmStore.getOccurrenceService().load(uuid);
69
70 SpecimenOrObservationBase specimenObservationBase = (SpecimenOrObservationBase) HibernateProxyHelper.deproxy(object);
71
72 if(specimenObservationBase instanceof DerivedUnitBase){
73 return (DerivedUnitBase) specimenObservationBase;
74 }
75 EditorUtil.error(this.getClass(), "Selected unit is not a derived unit", null);
76 return null;
77 }
78
79 /** {@inheritDoc} */
80 @Override
81 protected void initModel() {
82 model = CdmStore.getOccurrenceService().getDerivedUnitBaseUuidAndTitleCache();
83 }
84
85 /** {@inheritDoc} */
86 @Override
87 protected AbstractNewEntityWizard getNewEntityWizard() {
88 return new NewDerivedUnitBaseWizard();
89 }
90
91 /** {@inheritDoc} */
92 @Override
93 protected String getNewWizardLinkText() {
94 return "Click link to create a new <A>Unit</A>.";
95 }
96 }