Project

General

Profile

Download (5.84 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.ui.dialog.selection;
11

    
12
import java.util.UUID;
13

    
14
import org.eclipse.swt.widgets.Control;
15
import org.eclipse.swt.widgets.Shell;
16
import org.eclipse.swt.widgets.Text;
17

    
18
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
19
import eu.etaxonomy.cdm.api.service.IReferenceService;
20
import eu.etaxonomy.cdm.model.reference.Reference;
21
import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
22
import eu.etaxonomy.taxeditor.newWizard.NewReferenceWizard;
23
import eu.etaxonomy.taxeditor.store.CdmStore;
24

    
25
/**
26
 * <p>FilteredReferenceSelectionDialog class.</p>
27
 *
28
 * @author n.hoffmann
29
 * @created 04.06.2009
30
 * @version 1.0
31
 */
32
public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelectionDialog<Reference> {
33

    
34
    protected static boolean isInReference = false;
35
    private Reference currentReference;
36
	/**
37
	 * <p>select</p>
38
	 *
39
	 * @param reference a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
40
	 * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
41
	 * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
42
	 * @return a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
43
	 */
44
	public static Reference select(Shell shell, ConversationHolder conversation, Reference reference, boolean isInReference) {
45
		ReferenceSelectionDialog dialog = new ReferenceSelectionDialog(shell, conversation,
46
				"Choose a reference", false, reference, isInReference);
47
		return getSelectionFromDialog(dialog);
48
	}
49

    
50
	/**
51
     * <p>select</p>
52
     *
53
     * @param reference a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
54
     * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
55
     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
56
     * @return a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
57
     */
58
    public static Reference select(Shell shell, ConversationHolder conversation, Reference reference) {
59
        ReferenceSelectionDialog dialog = new ReferenceSelectionDialog(shell, conversation,
60
                "Choose a reference", false, reference);
61
        return getSelectionFromDialog(dialog);
62
    }
63

    
64

    
65

    
66
	/**
67
	 * <p>Constructor for FilteredReferenceSelectionDialog.</p>
68
	 *
69
	 * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
70
	 * @param title a {@link java.lang.String} object.
71
	 * @param reference a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
72
	 * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
73
	 * @param multi a boolean.
74
	 */
75
	protected ReferenceSelectionDialog(Shell shell, ConversationHolder conversation, String title, boolean multi, Reference reference) {
76
		super(shell, conversation, title, multi, ReferenceSelectionDialog.class.getCanonicalName(), null);
77
		this.currentReference = reference;
78
	}
79

    
80

    
81

    
82

    
83
	/**
84
     * <p>Constructor for FilteredReferenceSelectionDialog.</p>
85
     *
86
     * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
87
     * @param title a {@link java.lang.String} object.
88
     * @param reference a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
89
     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
90
     * @param multi a boolean.
91
     */
92
    protected ReferenceSelectionDialog(Shell shell, ConversationHolder conversation, String title, boolean multi, Reference reference, boolean isInReference) {
93
        super(shell, conversation, title, multi, ReferenceSelectionDialog.class.getCanonicalName(), null);
94
        this.isInReference = isInReference;
95
        this.currentReference = reference;
96
    }
97

    
98

    
99
	/* (non-Javadoc)
100
	 * @see eu.etaxonomy.taxeditor.dialogs.AbstractFilteredCdmResourceSelectionDialog#getPersistentObject(java.util.UUID)
101
	 */
102
	/** {@inheritDoc} */
103
	@Override
104
	protected Reference getPersistentObject(UUID cdmUuid) {
105
		return CdmStore.getService(IReferenceService.class).load(cdmUuid);
106
	}
107

    
108
	/* (non-Javadoc)
109
	 * @see eu.etaxonomy.taxeditor.dialogs.AbstractFilteredCdmResourceSelectionDialog#initModel()
110
	 */
111
	/** {@inheritDoc} */
112
	@Override
113
	protected void initModel() {
114
	    Control control = getPatternControl();
115
        String pattern = null;
116
        if (control != null){
117
            pattern = ((Text)control).getText();
118
        }
119

    
120
        if (pattern == null || pattern.equals("?")){
121
            if (isInReference && currentReference != null){
122
                model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCache(null,null,currentReference.getType());
123
            }else{
124
                model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCache(null,null);
125
            }
126
        }else{
127
            if (isInReference && currentReference != null){
128
                model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCache(limitOfInitialElements,pattern, currentReference.getType());
129
            }else{
130
                model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCache(limitOfInitialElements,pattern);
131
            }
132
        }
133
	}
134

    
135

    
136
	/** {@inheritDoc} */
137
	@Override
138
	protected String getTitle(Reference cdmObject) {
139
		if(cdmObject == null){
140
			return "";
141
		}else{
142
			return super.getTitle(cdmObject);
143
		}
144
//		}else{
145
//			return DefaultReferenceCacheStrategy.putAuthorToEndOfString(cdmObject.getTitleCache(), cdmObject.getAuthorship().getTitleCache());
146
//		}
147
	}
148

    
149
	/** {@inheritDoc} */
150
	@Override
151
	protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
152
		return new NewReferenceWizard();
153
	}
154

    
155
	/** {@inheritDoc} */
156
	@Override
157
	protected String getNewWizardLinkText() {
158
		return String.format("Create a new <a>%1s</a>", "Reference ");
159
	}
160

    
161
}
(26-26/35)