Revision 48932
Added by Antonis Lempesis almost 7 years ago
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
merge -r47169:HEAD https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-repository-manager-gui/branches/newtheme .