-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathGranitealertDemo.java
More file actions
99 lines (82 loc) · 3.28 KB
/
GranitealertDemo.java
File metadata and controls
99 lines (82 loc) · 3.28 KB
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/*-
* #%L
* Granite Alert
* %%
* Copyright (C) 2018 - 2026 Flowing Code
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
package com.flowingcode.vaadin.addons.granitealert;
import com.flowingcode.vaadin.addons.demo.DemoSource;
import com.flowingcode.vaadin.addons.granitealert.GraniteAlert.GraniteAlertLevel;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.dependency.CssImport;
import com.vaadin.flow.component.html.Div;
import com.vaadin.flow.component.html.Span;
import com.vaadin.flow.component.icon.VaadinIcon;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.router.PageTitle;
import com.vaadin.flow.router.Route;
@SuppressWarnings("serial")
@PageTitle("Granite Alert Demo")
@DemoSource
@DemoSource(value = "/src/test/resources/META-INF/resources/frontend/styles/granitealert/demo-styles.css")
@Route(value = "granite-alert/granite-alert", layout = GranitealertDemoView.class)
@CssImport("./styles/granitealert/demo-styles.css")
public class GranitealertDemo extends Div {
private Div container = new Div();
public GranitealertDemo() {
createAlert(null, "boring", "Welcome to the GraniteAlertAddon demo. Please click any button below.");
HorizontalLayout buttons = new HorizontalLayout();
buttons.setSpacing(true);
buttons.add(new Button(VaadinIcon.EXCLAMATION.create(), ev -> createErrorAlert()));
buttons.add(new Button(VaadinIcon.WARNING.create(), ev -> createWarningAlert()));
buttons.add(new Button(VaadinIcon.INFO.create(), ev -> createInfoAlert()));
buttons.add(new Button(VaadinIcon.CHECK.create(), ev -> createSuccessAlert()));
buttons.add(new Button(VaadinIcon.MEH_O.create(), ev -> createCustomAlert("boring")));
buttons.add(new Button(VaadinIcon.SMILEY_O.create(), ev -> createCustomAlert("funny")));
setSizeFull();
add(container, buttons);
}
private void createSuccessAlert() {
createAlert(GraniteAlertLevel.SUCCESS, null, "Success");
}
private void createCustomAlert(String className) {
createAlert(null, className, "Info");
}
private void createInfoAlert() {
createAlert(GraniteAlertLevel.INFO, null, "Info");
}
private void createWarningAlert() {
createAlert(GraniteAlertLevel.WARNING, null, "Warning");
}
private void createErrorAlert() {
createAlert(GraniteAlertLevel.ERROR, null, "Error");
}
private void createAlert(GraniteAlertLevel level, String className, String message) {
GraniteAlert alert = new GraniteAlert();
alert.setCompact(true);
if (level != null) {
alert.setLevel(level);
}
if (className != null) {
alert.addClassName(className);
}
alert.add(new Span(message));
Button button = new Button(VaadinIcon.CLOSE_CIRCLE.create());
button.addClickListener(ev -> container.remove(alert));
alert.add(button);
container.add(alert);
}
}