Project

General

Profile

1
package eu.dnetlib.client.fundingrequest.stepinfo;
2

    
3
import com.google.gwt.i18n.client.DateTimeFormat;
4
import com.google.gwt.user.client.ui.HTML;
5
import com.google.gwt.user.client.ui.IsWidget;
6
import com.google.gwt.user.client.ui.Widget;
7
import eu.dnetlib.goldoa.domain.Affiliation;
8
import eu.dnetlib.goldoa.domain.Publication;
9
import eu.dnetlib.goldoa.domain.Identifier;
10
import eu.dnetlib.goldoa.domain.PublicationType;
11

    
12
/**
13
 * Created by stefania on 3/30/15.
14
 */
15
public class PublicationInlineInfo implements IsWidget {
16

    
17
    private HTML publicationInlineInfo = new HTML();
18
    private String publicationInfoContents = "";
19

    
20
    private DateTimeFormat dtf = DateTimeFormat.getFormat("yyyy/MM/dd");
21

    
22
    public PublicationInlineInfo(Publication publication) {
23

    
24
        publicationInfoContents = "<div class=\"displayInlineInfo\">";
25

    
26
        publicationInfoContents += "<dl><dt class=\"chronologySubTitle\">PUBLICATION</dt></dl>";
27

    
28
        if(publication.getType().equals(PublicationType.ARTICLE))
29
            publicationInfoContents += "<dd>Type: Article</dd>";
30
        else if(publication.getType().equals(PublicationType.MONOGRAPH))
31
            publicationInfoContents += "<dd>Type: Book</dd>";
32
        else if(publication.getType().equals(PublicationType.CONFERENCE_PROCS))
33
            publicationInfoContents += "<dd>Type: Conference Procs</dd>";
34
        else
35
            publicationInfoContents += "<dd>Type: Book chapter</dd>";
36

    
37
        if(publication.getDoi()!=null && !publication.getDoi().trim().equals(""))
38
            publicationInfoContents += "<dd>DOI: " + publication.getDoi() + "</dd>";
39
        else
40
            publicationInfoContents += "<dd>DOI: <mark>not available</mark></dd>";
41

    
42
        if(publication.getTitle()!=null && !publication.getTitle().trim().equals("")) {
43
            if(publication.getType().equals(PublicationType.BOOK_CHAPTER))
44
                publicationInfoContents += "<dd>Book Chapter Title: " + publication.getTitle() + "</dd>";
45
            else
46
                publicationInfoContents += "<dd>Title: " + publication.getTitle() + "</dd>";
47
        }
48

    
49
        if(publication.getType().equals(PublicationType.CONFERENCE_PROCS)
50
                && publication.getEventdetails()!=null && !publication.getEventdetails().trim().isEmpty())
51
            publicationInfoContents += "<dd>Event Details: " + publication.getEventdetails() + "</dd>";
52

    
53
        if(publication.getType().equals(PublicationType.BOOK_CHAPTER)) {
54
            if(publication.getAlternativetitle()!=null && !publication.getAlternativetitle().trim().equals(""))
55
                publicationInfoContents += "<dd>Book Title: " + publication.getAlternativetitle() + "</dd>";
56
            if(publication.getAlternativedoi()!=null && !publication.getAlternativedoi().trim().equals(""))
57
                publicationInfoContents += "<dd>Book DOI: " + publication.getAlternativedoi() + "</dd>";
58
        }
59

    
60
        if(!publication.getAuthors().isEmpty()) {
61

    
62
            publicationInfoContents += "<dd>Authors: ";
63
            for(int i=0; i<publication.getAuthors().size(); i++) {
64
                if(i!=0)
65
                    publicationInfoContents += ", ";
66
                publicationInfoContents += publication.getAuthors().get(i).getFirstname();
67
                if(publication.getAuthors().get(i).getInitials()!=null && !publication.getAuthors().get(i).getInitials().trim().equals(""))
68
                    publicationInfoContents += " " + publication.getAuthors().get(i).getInitials().trim() + ".";
69
                publicationInfoContents += " " + publication.getAuthors().get(i).getLastname();
70
            }
71
            publicationInfoContents += "</dd>";
72
        }
73

    
74
        if(publication.getAcceptancedate()!=null) {
75
            if(publication.getType().equals(PublicationType.ARTICLE))
76
                publicationInfoContents += "<dd>Acceptance Date: " + dtf.format(publication.getAcceptancedate()) + "</dd>";
77
            else
78
                publicationInfoContents += "<dd>Estimated Acceptance Date: " + dtf.format(publication.getAcceptancedate()) + "</dd>";
79
        }
80

    
81
        if(publication.getDate()!=null)
82
            publicationInfoContents += "<dd>Publication Date: " + dtf.format(publication.getDate()) + "</dd>";
83

    
84
        if(publication.getLanguages()!=null && !publication.getLanguages().trim().equals(""))
85
            publicationInfoContents += "<dd>Languages: " + publication.getLanguages() + "</dd>";
86

    
87
        if(publication.getSubjects()!=null && !publication.getSubjects().trim().equals(""))
88
            publicationInfoContents += "<dd>Subjects: " + publication.getSubjects() + "</dd>";
89

    
90
        if(!publication.getPublicationIdentifiers().isEmpty()) {
91

    
92
            publicationInfoContents += "<dd>Identifiers: ";
93
            for(int i=0; i<publication.getPublicationIdentifiers().size(); i++) {
94
                if(i!=0)
95
                    publicationInfoContents += ", ";
96
                publicationInfoContents += publication.getPublicationIdentifiers().get(i).getType() + " - " + publication.getPublicationIdentifiers().get(i).getValue();
97
            }
98
            publicationInfoContents += "</dd>";
99
        }
100

    
101

    
102
        publicationInfoContents += "<dl><dt class=\"chronologySubTitle\">REPOSITORY</dt></dl>";
103
        if(publication.getRepository()!=null && !publication.getRepository().equals(""))
104
            publicationInfoContents += "<dd>" + publication.getRepository() + "</dd>";
105
        else
106
            publicationInfoContents += "<dd><mark>unknown</mark></dd>";
107

    
108

    
109
        publicationInfoContents += "</div>";
110
        publicationInlineInfo.setHTML(publicationInfoContents);
111
    }
112

    
113
    @Override
114
    public Widget asWidget() {
115
        return publicationInlineInfo;
116
    }
117

    
118
    public void addStyleName(String styleName) {
119
        publicationInlineInfo.addStyleName(styleName);
120
    }
121
}
(24-24/32)