Project

General

Profile

« Previous | Next » 

Revision 48932

View differences:

SelectTopicWidget.java
8 8
import com.google.gwt.user.client.ui.Widget;
9 9
import eu.dnetlib.gwt.client.help.HelpService;
10 10
import eu.dnetlib.gwt.client.help.HelpServiceAsync;
11
import eu.dnetlib.repo.manager.client.AbstractRepositoryManagerWidget;
11 12
import eu.dnetlib.repo.manager.client.HelpCallback;
12 13
import eu.dnetlib.repo.manager.client.RepositoryManagerWidget;
13 14
import eu.dnetlib.repo.manager.client.services.BrokerService;
......
22 23
/**
23 24
 * Created by stefania on 10/31/16.
24 25
 */
25
public class SelectTopicWidget implements RepositoryManagerWidget {
26
public class SelectTopicWidget extends AbstractRepositoryManagerWidget implements RepositoryManagerWidget {
26 27

  
27 28
    private String parentToken = "";
28 29
    private String restToken = "";
29 30

  
30
    private FlowPanel selectTopicPanel = new FlowPanel();
31

  
32
    private FlowPanel selectTopicColPanel = new FlowPanel();
33
    private FlowPanel selectTopicInnerPanel = new FlowPanel();
34
    private FlowPanel selectTopicBox = new FlowPanel();
35 31
    private FlowPanel selectTopicBoxContent = new FlowPanel();
36 32

  
37 33
    private Alert errorAlert = new Alert();
38 34

  
39
    private FlowPanel helpPanel = new FlowPanel();
40

  
41 35
    private static HelpServiceAsync helpService = GWT.create(HelpService.class);
42 36
    private static BrokerServiceAsync brokerService = GWT.create(BrokerService.class);
43 37

  
44 38
    public SelectTopicWidget() {
45 39

  
46
        selectTopicPanel.addStyleName("row");
40
        super();
47 41

  
48
        selectTopicColPanel.addStyleName("col-lg-12");
49
        selectTopicColPanel.add(selectTopicInnerPanel);
42
        //TODO find datasource name?
43
        HTML title = new HTML("<h1 class=\"uk-article-title\">Topics for datasource</h1>");
44
        title.addStyleName("uk-margin-medium-bottom");
45
        contentPanel.add(title);
50 46

  
51
        selectTopicInnerPanel.addStyleName("wrapper wrapper-content animated fadeInUp");
52
        selectTopicInnerPanel.add(selectTopicBox);
53

  
54
        selectTopicBox.addStyleName("ibox");
55
        selectTopicBox.add(selectTopicBoxContent);
56

  
57
        selectTopicBoxContent.addStyleName("ibox-content bigContent");
58

  
59 47
        errorAlert.setType(AlertType.DANGER);
60 48
        errorAlert.setDismissable(false);
61 49
        errorAlert.setVisible(false);
62 50
        selectTopicBoxContent.add(errorAlert);
63 51

  
64
        selectTopicPanel.add(selectTopicColPanel);
52
        contentPanel.add(selectTopicBoxContent);
65 53
    }
66 54

  
67 55
    @Override
......
69 57

  
70 58
        selectTopicBoxContent.clear();
71 59
        errorAlert.setVisible(false);
72
        selectTopicPanel.remove(helpPanel);
60
        gridPanel.remove(helpPanel);
73 61
    }
74 62

  
75 63
    @Override
76 64
    public void reload() {
77 65

  
78
        Document.get().getElementById("page-wrapper").removeClassName("sidebar-content");
66
        Document.get().getElementById("headerNoTransparent").removeClassName("tm-header-transparent");
79 67
        selectTopicBoxContent.add(errorAlert);
80 68

  
81
        helpService.getHelpById(parentToken + "_selectTopic", new HelpCallback(selectTopicColPanel, helpPanel, selectTopicPanel));
69
        helpService.getHelpById(parentToken + "_selectTopic", new HelpCallback(helpPanel, gridPanel));
82 70

  
83 71
        final HTML loadingWheel = new HTML("<div class=\"loader-big\" style=\"text-align: center; padding-top: 170px; " +
84 72
                "color: rgb(47, 64, 80); font-weight: bold;\">Retrieving topics...</div>" +
......
104 92
                selectTopicBoxContent.removeStyleName("loading-big");
105 93
                selectTopicBoxContent.remove(loadingWheel);
106 94

  
107
                FlowPanel contentRowPanel = new FlowPanel();
108
                contentRowPanel.addStyleName("row");
109
                selectTopicBoxContent.add(contentRowPanel);
110

  
111
                final FlowPanel contentColPanel = new FlowPanel();
112
                contentColPanel.addStyleName("col-lg-12");
113
                contentRowPanel.add(contentColPanel);
114

  
115 95
                final FlowPanel topicsList = new FlowPanel();
116 96
                createTopicsList(browseEntries, topicsList);
117
                contentColPanel.add(topicsList);
97
                selectTopicBoxContent.add(topicsList);
118 98
            }
119 99
        });
120 100
    }
......
130 110

  
131 111
    }
132 112

  
133
    @Override
134
    public Widget asWidget() {
135
        return selectTopicPanel;
136
    }
137

  
138 113
    private void createTopicsList(List<BrowseEntry> browseEntries, FlowPanel topicsList) {
139 114

  
140
        topicsList.addStyleName("col-md-12 topics-list");
115
        topicsList.addStyleName("uk-grid-margin uk-grid uk-grid-stack repos-list");
141 116

  
142 117
        if(browseEntries.isEmpty()) {
118

  
143 119
            topicsList.add(new HTML("No topics were found for this datasource"));
120

  
144 121
        } else {
145 122

  
146 123
            long total = 0;
147 124

  
148
            String content = "<div class=\"row headers\">" +
149
                    "<div class=\"col-sm-9 header hidden-xs\"><label>Topic</label></div>" +
150
                    "<div class=\"col-sm-3 header hidden-xs events\"><label># of events</label></div>" +
151
                    "</div>";
125
            FlowPanel colPanel = new FlowPanel();
126
            colPanel.addStyleName("uk-width-1-1@m uk-first-column");
127
            topicsList.add(colPanel);
152 128

  
153
            for(final BrowseEntry browseEntry : browseEntries) {
129
            FlowPanel divPanel = new FlowPanel();
130
            divPanel.addStyleName("uk-overflow-auto uk-scrollspy-inview uk-animation-slide-top-medium");
131
            colPanel.add(divPanel);
154 132

  
155
                content += "<div class=\"row repo\">";
133
            String content = "<table class=\"uk-table uk-table-striped uk-table-middle\">" +
134
                    "<thead><tr><th>Topic</th><th class=\"uk-text-nowrap\"># of events</th>" +
135
                    "</tr></thead>";
156 136

  
157
                content += "<div class=\"col-sm-9\"><a class=\"\" href=\"#" + parentToken + "/" + restToken + "/" +browseEntry.getValue() + "\">" +
158
                        browseEntry.getValue() + "</a></div>" +
159
                        "<div class=\"col-sm-3 events\">" + browseEntry.getSize() + "</div>";
137
            content += "<tbody>";
160 138

  
161
                content += "</div>";
139
            for(BrowseEntry browseEntry : browseEntries) {
162 140

  
141
                content += "<tr class=\"el-item\">" +
142
                        "<td class=\"uk-text-nowrap uk-table-shrink\">\n" +
143
                        "<a href=\"#" + parentToken + "/" + restToken + "/" +browseEntry.getValue() + "\" class=\"el-link\">" +
144
                        browseEntry.getValue() + "</a>" +
145
                        "</td>" +
146
                        "<td class=\"uk-text-nowrap uk-table-shrink\">\n" +
147
                        "<div class=\"el-title\">" + browseEntry.getSize() + "</div>" +
148
                        "</td>" +
149
                        "</tr>";
150

  
163 151
                total += browseEntry.getSize();
164 152
            }
165 153

  
166
            content += "<div class=\"row footers\">" +
167
                    "<div class=\"col-sm-9 header hidden-xs\"><label>Total</label></div>" +
168
                    "<div class=\"col-sm-3 header hidden-xs events\"><label>" + total + "</label></div>" +
169
                    "</div>";
154
            content += "<tr class=\"el-item footers\">" +
155
                    "<td class=\"uk-text-nowrap uk-table-shrink\">\n" +
156
                    "<div class=\"el-title\">Total</div>" +
157
                    "</td>" +
158
                    "<td class=\"uk-text-nowrap uk-table-shrink\">\n" +
159
                    "<div class=\"el-title\">" + total + "</div>" +
160
                    "</td>" +
161
                    "</tr>";
170 162

  
171
            HTML topicsListHTML = new HTML();
172
            topicsListHTML.setHTML(content);
163
            content += "</tbody></table>";
173 164

  
174
            topicsList.add(topicsListHTML);
165
            HTML reposListHTML = new HTML();
166
            reposListHTML.setHTML(content);
167

  
168
            divPanel.add(reposListHTML);
175 169
        }
176 170
    }
177 171
}

Also available in: Unified diff