1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.ui.vaadin.gwt.client.magnoliashell.shellmessage;
35
36 import info.magnolia.ui.vaadin.gwt.client.magnoliashell.shell.MagnoliaShellView;
37
38 import com.google.gwt.user.client.DOM;
39 import com.google.gwt.user.client.Element;
40
41
42
43
44 public class VShellErrorMessage extends ShellMessageWidget {
45
46 private Element detailsLinkEl = DOM.createSpan();
47
48 public VShellErrorMessage(final MagnoliaShellView shell, String topic, String message, String id) {
49 super(shell, topic, message, id);
50 addStyleName("error");
51 }
52
53 @Override
54 protected void construct() {
55 super.construct();
56 final Element header = getHeader();
57 detailsLinkEl.addClassName("link");
58 detailsLinkEl.setInnerHTML("[MORE]");
59 header.appendChild(detailsLinkEl);
60 }
61
62 @Override
63 protected void onMessageClicked(Element targetEl) {
64 if (targetEl == detailsLinkEl) {
65 getShell().navigateToMessageDetails(getId());
66 }
67 super.onMessageClicked(targetEl);
68 }
69
70 @Override
71 public void show() {
72 getShell().shiftViewportsVertically(getHeaderHeight(), true);
73 super.show();
74 }
75
76 @Override
77 public void hide() {
78 getShell().shiftViewportsVertically(0, false);
79 super.hide();
80 }
81
82 @Override
83 public void hideWithoutTransition() {
84 getShell().shiftViewportsVertically(0, false);
85 super.hideWithoutTransition();
86 }
87
88 @Override
89 protected String getMessageTypeCaption() {
90 return "Error: ";
91 }
92
93 @Override
94 protected void applyCloseIconStyles(Element element) {
95 super.applyCloseIconStyles(element);
96 element.addClassName("close-error");
97 }
98 }