Project

General

Profile

1 36747 stefania.m
package eu.dnetlib.client.fundingrequest.stepinfo;
2
3
import com.google.gwt.event.dom.client.MouseOverEvent;
4
import com.google.gwt.event.dom.client.MouseOverHandler;
5
import com.google.gwt.i18n.client.DateTimeFormat;
6
import com.google.gwt.user.client.ui.HTML;
7
import com.google.gwt.user.client.ui.IsWidget;
8
import com.google.gwt.user.client.ui.Widget;
9 46067 panagiotis
import eu.dnetlib.goldoa.domain.*;
10 36747 stefania.m
11
/**
12
 * Created by stefania on 4/27/15.
13
 */
14
public class PublicationChronologyInfo implements IsWidget {
15
16
    private HTML publicationInfo = new HTML();
17
    private String publicationInfoContents = "";
18
19
    private DateTimeFormat dtf = DateTimeFormat.getFormat("yyyy/MM/dd");
20
21
    public PublicationChronologyInfo(Publication publication) {
22
23
        publicationInfoContents = "<div>";
24
25
        publicationInfoContents += "<dl><dt class=\"chronologySubTitle\">PUBLICATION</dt></dl>";
26
27
        if(publication.getTitle()!=null && !publication.getTitle().trim().equals("")) {
28
            if (publication.getTitle().length() > 50)
29
                publicationInfoContents += "<dd>" + publication.getTitle().substring(0, 50) + " ... </dd>";
30
            else
31
                publicationInfoContents += "<dd>" + publication.getTitle() + "</dd>";
32
        }
33
34
        publicationInfoContents += "</div>";
35
        publicationInfo.setHTML(publicationInfoContents);
36
37
        addMouseOverInfo(publication);
38
    }
39
40
    @Override
41
    public Widget asWidget() {
42
        return publicationInfo;
43
    }
44
45
    public void addStyleName(String styleName) {
46
        publicationInfo.addStyleName(styleName);
47
    }
48
49
    private void addMouseOverInfo(final Publication publication) {
50
51
        publicationInfo.addMouseOverHandler(new MouseOverHandler() {
52
            @Override
53
            public void onMouseOver(MouseOverEvent mouseOverEvent) {
54
55
                String tooltipText = "";
56
57
                if(publication.getTitle()!=null && !publication.getTitle().trim().equals(""))
58
                    tooltipText += publication.getTitle() + "\n";
59
60 45991 panagiotis
                if(publication.getType().equals(PublicationType.CONFERENCE_PROCS)
61
                        && publication.getEventdetails()!=null && !publication.getEventdetails().trim().isEmpty())
62
                    tooltipText += publication.getEventdetails() + "\n";
63 42559 stefania.m
64 36747 stefania.m
                if(publication.getDoi()!=null && !publication.getDoi().trim().equals(""))
65
                    tooltipText += publication.getDoi() + "\n";
66
67
                if(!publication.getAuthors().isEmpty()) {
68
69 46067 panagiotis
                    for(Author author : publication.getAuthors()) {
70
                        tooltipText += author.getFirstname();
71
                        if(author.getInitials()!=null && !author.getInitials().trim().equals(""))
72
                            tooltipText += " " + author.getInitials().trim();
73
                        tooltipText += " " + author.getLastname() + ", ";
74 36747 stefania.m
                    }
75
76
                    tooltipText = tooltipText.substring(0, tooltipText.length()-2);
77
                    tooltipText += "\n";
78
                }
79
80 45991 panagiotis
                if(publication.getDate()!=null)
81
                    tooltipText += dtf.format(publication.getDate()) + "\n";
82 36747 stefania.m
83 45991 panagiotis
                if(publication.getAcceptancedate()!=null)
84
                    tooltipText += dtf.format(publication.getAcceptancedate()) + "\n";
85 36747 stefania.m
86 45991 panagiotis
                if(publication.getType().equals(PublicationType.ARTICLE))
87 36747 stefania.m
                    tooltipText += "Article\n";
88 45991 panagiotis
                else if(publication.getType().equals(PublicationType.MONOGRAPH))
89 40567 stefania.m
                    tooltipText += "Book\n";
90 45991 panagiotis
                else if(publication.getType().equals(PublicationType.CONFERENCE_PROCS))
91 42559 stefania.m
                    tooltipText += "Conference Procs\n";
92 36747 stefania.m
                else
93 40567 stefania.m
                    tooltipText += "Book chapter\n";
94 36747 stefania.m
95
                if(publication.getLanguages()!=null && !publication.getLanguages().trim().equals(""))
96
                    tooltipText += publication.getLanguages() + "\n";
97
98
                if(publication.getSubjects()!=null && !publication.getSubjects().trim().equals(""))
99
                    tooltipText += publication.getSubjects() + "\n";
100
101 45991 panagiotis
                if(!publication.getPublicationIdentifiers().isEmpty()) {
102 36747 stefania.m
103 45991 panagiotis
                    for(Identifier publicationIdentifier : publication.getPublicationIdentifiers()) {
104 36747 stefania.m
                        tooltipText += publicationIdentifier.getType() + " - " + publicationIdentifier.getValue() + "\n";
105
                    }
106
                }
107
108
                tooltipText += "Deposited to: ";
109
                if(publication.getRepository()!=null && !publication.getRepository().equals(""))
110
                    tooltipText += publication.getRepository();
111
                else
112
                    tooltipText += "unknown";
113
                tooltipText += "\n";
114
115
                publicationInfo.setTitle(tooltipText);
116
            }
117
        });
118
    }
119
}