Project

General

Profile

Download (3.79 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.vaadin.util;
2

    
3
import java.sql.SQLException;
4
import java.util.List;
5
import java.util.UUID;
6

    
7
import com.vaadin.server.VaadinSession;
8
import com.vaadin.ui.Notification;
9
import com.vaadin.ui.Notification.Type;
10

    
11
import eu.etaxonomy.cdm.model.location.NamedArea;
12
import eu.etaxonomy.cdm.model.taxon.Classification;
13
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
14
import eu.etaxonomy.cdm.model.term.TermVocabulary;
15
import eu.etaxonomy.cdm.vaadin.view.distributionStatus.IDistributionTableView;
16

    
17
/**
18
 * A utility class for the distribution status editor.
19
 *
20
 */
21
public class DistributionEditorUtil {
22

    
23
	public static final String VIEW_TABLE = "table";
24

    
25
	public static final String SATTR_SELECTED_AREAS = "selectedAreas";
26

    
27
    public static final String SATTR_SELECTED_AREA_VOCABULARY_UUID = "selectedVocabularyUuid";
28

    
29
	public static final String SATTR_TAXON_NODES_UUID = "taxonNodesUUID";
30

    
31
	public static final String SATTR_CLASSIFICATION = "classificationUUID";
32

    
33
    public static final String SATTR_ABBREVIATED_LABELS = "abbreviatedLabels";
34

    
35
    public static final String SATTR_DISTRIBUTION_STATUS = "distributionStatus";
36

    
37
    public static final String SEPARATOR = ";;";
38

    
39
    public static final boolean INCLUDE_UNPUBLISHED = true;
40

    
41
    /**
42
     * Updates the vaadin session attributes related to the chosen
43
     * {@link TaxonNode}s, {@link NamedArea}s and {@link Classification}
44
     * and refreshes the given {@code distributionStatusTableView}.
45
     * @param distributionTableView The view to refresh after updating the session variables.
46
     * @param taxonNodes The taxa to be shown in the {@code distributionTableView}.
47
     * @param areaVoc The {@link TermVocabulary} of {@link NamedArea}s to be used.
48
     * @param selectedAreas The {@link NamedArea}s to be availbale in the {@code distributionTableView}.
49
     * @param classificationUuid The {@link UUID} of the {@link Classification} the {@code taxonNodes} belong to.
50
     */
51
    public static void updateDistributionView(IDistributionTableView distributionTableView, List<UUID> taxonNodes, TermVocabulary<NamedArea> areaVoc,
52
            List<NamedArea> selectedAreas, UUID classificationUuid) {
53
	    VaadinSession.getCurrent().setAttribute(SATTR_TAXON_NODES_UUID, taxonNodes);
54
	    VaadinSession.getCurrent().setAttribute(SATTR_SELECTED_AREA_VOCABULARY_UUID, areaVoc.getUuid());
55
	    VaadinSession.getCurrent().setAttribute(SATTR_SELECTED_AREAS, selectedAreas);
56
	    VaadinSession.getCurrent().setAttribute(SATTR_CLASSIFICATION, classificationUuid);
57
	    distributionTableView.update();
58
	}
59

    
60
    /**
61
     * Clears the session attributes related to the chosen
62
     * {@link TaxonNode}s, {@link TermVocabulary} of {@link NamedArea}s,
63
     * {@link NamedArea}s and {@link Classification}.
64
     */
65
    public static void clearSessionAttributes(){
66
    	VaadinSession.getCurrent().setAttribute(SATTR_TAXON_NODES_UUID, null);
67
    	VaadinSession.getCurrent().setAttribute(SATTR_SELECTED_AREA_VOCABULARY_UUID, null);
68
    	VaadinSession.getCurrent().setAttribute(SATTR_SELECTED_AREAS, null);
69
    	VaadinSession.getCurrent().setAttribute(SATTR_CLASSIFICATION, null);
70
    }
71

    
72
    /**
73
     * Returns {@code true} if abbreviated labels should be used.
74
     * @return {@code true} if abbreviated labels should be used.
75
     */
76
    public static boolean isAbbreviatedLabels(){
77
    	Object isAbbreviated = VaadinSession.getCurrent().getAttribute(DistributionEditorUtil.SATTR_ABBREVIATED_LABELS);
78
		return (isAbbreviated==null || (boolean) isAbbreviated);
79
    }
80

    
81
    /**
82
     * Shows an {@link SQLException} to the user.
83
     * @param e The exception to show.
84
     */
85
	public static void showSqlError(SQLException e) {
86
		Notification.show("Error while accessing data base.","Cause: "+e.getMessage(), Type.ERROR_MESSAGE);
87
		e.printStackTrace();
88
	}
89

    
90
	public static final String SATTR_CONVERSATION = "conversation";
91

    
92

    
93
}
(10-10/17)