Skip to content

Commit bdcafe8

Browse files
committed
A branch and start towards #31
1 parent 72dd27a commit bdcafe8

File tree

3 files changed

+89
-2
lines changed

3 files changed

+89
-2
lines changed

src/main/java/org/vaadin/tinymce/TinyMce.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.vaadin.flow.component.ComponentEventListener;
2121
import com.vaadin.flow.component.DetachEvent;
2222
import com.vaadin.flow.component.Focusable;
23+
import com.vaadin.flow.component.HasLabel;
2324
import com.vaadin.flow.component.HasSize;
2425
import com.vaadin.flow.component.Tag;
2526
import com.vaadin.flow.component.UI;
@@ -52,7 +53,7 @@
5253
@JavaScript("context://frontend/tinymceConnector.js")
5354
@StyleSheet("context://frontend/tinymceLumo.css")
5455
public class TinyMce extends AbstractCompositeField<Div, TinyMce, String>
55-
implements HasSize, Focusable<TinyMce> {
56+
implements HasSize, Focusable<TinyMce>, HasLabel {
5657

5758
private final DomListenerRegistration domListenerRegistration;
5859
private String id;

src/main/resources/META-INF/resources/frontend/tinymceLumo.css

+31-1
Original file line numberDiff line numberDiff line change
@@ -147,4 +147,34 @@ div.tox-collection__item > div.tox-collection__item-icon {
147147

148148
.tinymce-flow[disabled]:not([readonly]) {
149149
opacity: 0.5;
150-
}
150+
}
151+
152+
tinymce-flow label {
153+
align-self: flex-start;
154+
color: var(--lumo-secondary-text-color);
155+
font-weight: 500;
156+
font-size: var(--lumo-font-size-s);
157+
transition: color 0.2s;
158+
line-height: 1;
159+
overflow: hidden;
160+
white-space: nowrap;
161+
text-overflow: ellipsis;
162+
position: relative;
163+
max-width: 100%;
164+
box-sizing: border-box;
165+
padding-right: 1em;
166+
padding-bottom: 0.5em;
167+
margin-left: calc(var(--lumo-border-radius-m) / 4);
168+
}
169+
170+
.tinymce-flow label::after {
171+
content: var(--lumo-required-field-indicator, "\2022");
172+
transition: opacity 0.2s;
173+
opacity: var(--tcs-required-dot-opacity);
174+
color: var(--lumo-primary-text-color);
175+
right: 0;
176+
width: 1em;
177+
margin-left: 4px;
178+
text-align: center;
179+
}
180+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package org.vaadin.tinymce;
2+
3+
import com.vaadin.flow.component.Key;
4+
import com.vaadin.flow.component.KeyModifier;
5+
import com.vaadin.flow.component.button.Button;
6+
import com.vaadin.flow.component.formlayout.FormLayout;
7+
import com.vaadin.flow.component.html.Div;
8+
import com.vaadin.flow.component.html.H5;
9+
import com.vaadin.flow.component.notification.Notification;
10+
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
11+
import com.vaadin.flow.component.textfield.TextField;
12+
import com.vaadin.flow.router.Route;
13+
import org.vaadin.firitin.components.RichText;
14+
15+
@Route
16+
public class FormAndFeatures extends FormLayout {
17+
18+
19+
protected TinyMce tinyMce;
20+
21+
public FormAndFeatures() {
22+
23+
tinyMce = new TinyMce();
24+
tinyMce.setLabel("Label for RTE");
25+
// TODO tinyMce.setRequired(true);
26+
tinyMce.setRequiredIndicatorVisible(true);
27+
tinyMce.setValue("<p>Voi <strong>jorma</strong>!<p>");
28+
tinyMce.setHeight("400px");
29+
30+
add(tinyMce);
31+
32+
TextField textField = new TextField("Normal text field");
33+
textField.setValue("This is here for a reference...");
34+
textField.setRequired(true);
35+
add(textField);
36+
37+
Button b = new Button("Set content dynamically", e -> {
38+
tinyMce.setValue("New value");
39+
});
40+
add(b);
41+
42+
Button b2 = new Button("Show content", e -> {
43+
44+
var n = new Notification("", 3000);
45+
n.add(new VerticalLayout(
46+
new H5("New value:"),
47+
new RichText(tinyMce.getCurrentValue())
48+
)
49+
);
50+
n.open();
51+
});
52+
add(b2);
53+
54+
}
55+
56+
}

0 commit comments

Comments
 (0)