Added checkboxes for Persist field
This commit is contained in:
parent
d00eaa0a7d
commit
6dba58126a
@ -4,6 +4,7 @@ import com.vaadin.flow.component.Component;
|
|||||||
import com.vaadin.flow.component.Unit;
|
import com.vaadin.flow.component.Unit;
|
||||||
import com.vaadin.flow.component.button.Button;
|
import com.vaadin.flow.component.button.Button;
|
||||||
import com.vaadin.flow.component.button.ButtonVariant;
|
import com.vaadin.flow.component.button.ButtonVariant;
|
||||||
|
import com.vaadin.flow.component.checkbox.Checkbox;
|
||||||
import com.vaadin.flow.component.details.Details;
|
import com.vaadin.flow.component.details.Details;
|
||||||
import com.vaadin.flow.component.html.H2;
|
import com.vaadin.flow.component.html.H2;
|
||||||
import com.vaadin.flow.component.html.Span;
|
import com.vaadin.flow.component.html.Span;
|
||||||
@ -17,21 +18,23 @@ import org.springframework.lang.Nullable;
|
|||||||
import ru.dragonestia.picker.api.repository.response.type.RNode;
|
import ru.dragonestia.picker.api.repository.response.type.RNode;
|
||||||
import ru.dragonestia.picker.api.repository.response.type.type.PickingMode;
|
import ru.dragonestia.picker.api.repository.response.type.type.PickingMode;
|
||||||
|
|
||||||
import java.util.function.Function;
|
import java.util.function.BiFunction;
|
||||||
|
|
||||||
public class RegisterNode extends Details {
|
public class RegisterNode extends Details {
|
||||||
|
|
||||||
private final Function<RNode, Response> onSubmit;
|
private final BiFunction<RNode, Boolean, Response> onSubmit;
|
||||||
private final TextField identifierField;
|
private final TextField identifierField;
|
||||||
private final RadioButtonGroup<PickingMode> modeRadio;
|
private final RadioButtonGroup<PickingMode> modeRadio;
|
||||||
|
private final Checkbox persistField;
|
||||||
|
|
||||||
public RegisterNode(Function<RNode, Response> onSubmit) {
|
public RegisterNode(BiFunction<RNode, Boolean, Response> onSubmit) {
|
||||||
super(new H2("Register node"));
|
super(new H2("Register node"));
|
||||||
this.onSubmit = onSubmit;
|
this.onSubmit = onSubmit;
|
||||||
|
|
||||||
var layout = new VerticalLayout();
|
var layout = new VerticalLayout();
|
||||||
layout.add(identifierField = createNodeIdentifierField());
|
layout.add(identifierField = createNodeIdentifierField());
|
||||||
layout.add(modeRadio = createModeRadio());
|
layout.add(modeRadio = createModeRadio());
|
||||||
|
layout.add(persistField = createPersistField());
|
||||||
layout.add(createSubmitButton());
|
layout.add(createSubmitButton());
|
||||||
|
|
||||||
add(layout);
|
add(layout);
|
||||||
@ -49,6 +52,10 @@ public class RegisterNode extends Details {
|
|||||||
return field;
|
return field;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Checkbox createPersistField() {
|
||||||
|
return new Checkbox("Persist", false);
|
||||||
|
}
|
||||||
|
|
||||||
private Button createSubmitButton() {
|
private Button createSubmitButton() {
|
||||||
var button = new Button("Register");
|
var button = new Button("Register");
|
||||||
button.addThemeVariants(ButtonVariant.LUMO_PRIMARY);
|
button.addThemeVariants(ButtonVariant.LUMO_PRIMARY);
|
||||||
@ -70,6 +77,7 @@ public class RegisterNode extends Details {
|
|||||||
|
|
||||||
public void clear() {
|
public void clear() {
|
||||||
identifierField.clear();
|
identifierField.clear();
|
||||||
|
persistField.setValue(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private @Nullable String validateForm(String identifier) {
|
private @Nullable String validateForm(String identifier) {
|
||||||
@ -94,7 +102,7 @@ public class RegisterNode extends Details {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var node = new RNode(nodeIdentifier, modeRadio.getValue());
|
var node = new RNode(nodeIdentifier, modeRadio.getValue());
|
||||||
var response = onSubmit.apply(node);
|
var response = onSubmit.apply(node, persistField.getValue());
|
||||||
clear();
|
clear();
|
||||||
if (response.error()) {
|
if (response.error()) {
|
||||||
Notifications.error(response.reason());
|
Notifications.error(response.reason());
|
||||||
|
|||||||
@ -14,17 +14,19 @@ import org.springframework.lang.Nullable;
|
|||||||
import ru.dragonestia.picker.api.repository.response.type.RNode;
|
import ru.dragonestia.picker.api.repository.response.type.RNode;
|
||||||
import ru.dragonestia.picker.api.repository.response.type.RRoom;
|
import ru.dragonestia.picker.api.repository.response.type.RRoom;
|
||||||
|
|
||||||
|
import java.util.function.BiFunction;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
public class RegisterRoom extends Details {
|
public class RegisterRoom extends Details {
|
||||||
|
|
||||||
private final RNode node;
|
private final RNode node;
|
||||||
private final Function<RRoom, Response> onSubmit;
|
private final BiFunction<RRoom, Boolean, Response> onSubmit;
|
||||||
private final TextField identifierField;
|
private final TextField identifierField;
|
||||||
private final TextArea payloadField;
|
private final TextArea payloadField;
|
||||||
private final Checkbox lockedField;
|
private final Checkbox lockedField;
|
||||||
|
private final Checkbox persistField;
|
||||||
|
|
||||||
public RegisterRoom(RNode node, Function<RRoom, Response> onSubmit) {
|
public RegisterRoom(RNode node, BiFunction<RRoom, Boolean, Response> onSubmit) {
|
||||||
super(new H2("Register room"));
|
super(new H2("Register room"));
|
||||||
this.node = node;
|
this.node = node;
|
||||||
this.onSubmit = onSubmit;
|
this.onSubmit = onSubmit;
|
||||||
@ -34,6 +36,7 @@ public class RegisterRoom extends Details {
|
|||||||
layout.add(identifierField = createRoomIdentifierField());
|
layout.add(identifierField = createRoomIdentifierField());
|
||||||
layout.add(payloadField = createPayloadField());
|
layout.add(payloadField = createPayloadField());
|
||||||
layout.add(lockedField = createLockedField());
|
layout.add(lockedField = createLockedField());
|
||||||
|
layout.add(persistField = createPersistField());
|
||||||
layout.add(createSubmitButton());
|
layout.add(createSubmitButton());
|
||||||
|
|
||||||
add(layout);
|
add(layout);
|
||||||
@ -73,6 +76,10 @@ public class RegisterRoom extends Details {
|
|||||||
return field;
|
return field;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Checkbox createPersistField() {
|
||||||
|
return new Checkbox("Persist", false);
|
||||||
|
}
|
||||||
|
|
||||||
private Button createSubmitButton() {
|
private Button createSubmitButton() {
|
||||||
var button = new Button("Register");
|
var button = new Button("Register");
|
||||||
button.addThemeVariants(ButtonVariant.LUMO_PRIMARY);
|
button.addThemeVariants(ButtonVariant.LUMO_PRIMARY);
|
||||||
@ -84,6 +91,7 @@ public class RegisterRoom extends Details {
|
|||||||
identifierField.clear();
|
identifierField.clear();
|
||||||
payloadField.clear();
|
payloadField.clear();
|
||||||
lockedField.setValue(false);
|
lockedField.setValue(false);
|
||||||
|
persistField.setValue(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private @Nullable String validateForm(String identifier) {
|
private @Nullable String validateForm(String identifier) {
|
||||||
@ -109,7 +117,7 @@ public class RegisterRoom extends Details {
|
|||||||
|
|
||||||
var room = new RRoom(nodeIdentifier, node, RRoom.INFINITE_SLOTS, payloadField.getValue());
|
var room = new RRoom(nodeIdentifier, node, RRoom.INFINITE_SLOTS, payloadField.getValue());
|
||||||
room.setLocked(lockedField.getValue());
|
room.setLocked(lockedField.getValue());
|
||||||
var response = onSubmit.apply(room);
|
var response = onSubmit.apply(room, persistField.getValue());
|
||||||
clear();
|
clear();
|
||||||
if (response.error()) {
|
if (response.error()) {
|
||||||
Notifications.error(response.reason());
|
Notifications.error(response.reason());
|
||||||
|
|||||||
@ -43,9 +43,9 @@ public class NodeDetailsPage extends VerticalLayout implements BeforeEnterObserv
|
|||||||
add(NavPath.toNode(node.getId()));
|
add(NavPath.toNode(node.getId()));
|
||||||
printNodeDetails(node);
|
printNodeDetails(node);
|
||||||
add(new Hr());
|
add(new Hr());
|
||||||
add(registerRoom = new RegisterRoom(node, (room) -> {
|
add(registerRoom = new RegisterRoom(node, (room, persist) -> {
|
||||||
try {
|
try {
|
||||||
roomRepository.register(room);
|
roomRepository.register(room, persist);
|
||||||
return new RegisterRoom.Response(false, null);
|
return new RegisterRoom.Response(false, null);
|
||||||
} catch (Error error) {
|
} catch (Error error) {
|
||||||
return new RegisterRoom.Response(true, error.getMessage());
|
return new RegisterRoom.Response(true, error.getMessage());
|
||||||
|
|||||||
@ -38,9 +38,9 @@ public class NodesPage extends VerticalLayout {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected RegisterNode createRegisterNodeElement() {
|
protected RegisterNode createRegisterNodeElement() {
|
||||||
return new RegisterNode(node -> {
|
return new RegisterNode((node, persist) -> {
|
||||||
try {
|
try {
|
||||||
nodeRepository.register(node);
|
nodeRepository.register(node, persist);
|
||||||
return new RegisterNode.Response(false, "");
|
return new RegisterNode.Response(false, "");
|
||||||
} catch (ApiException ex) {
|
} catch (ApiException ex) {
|
||||||
return new RegisterNode.Response(true, ex.getMessage());
|
return new RegisterNode.Response(true, ex.getMessage());
|
||||||
|
|||||||
@ -25,10 +25,11 @@ public class NodeRepositoryImpl implements NodeRepository {
|
|||||||
private final RestUtil rest;
|
private final RestUtil rest;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void register(RNode node) throws InvalidNodeIdentifierException, NodeAlreadyExistException {
|
public void register(RNode node, boolean persist) throws InvalidNodeIdentifierException, NodeAlreadyExistException {
|
||||||
rest.query("nodes", HttpMethod.POST, params -> {
|
rest.query("nodes", HttpMethod.POST, params -> {
|
||||||
params.put("nodeId", node.getId());
|
params.put("nodeId", node.getId());
|
||||||
params.put("method", node.getMode().name());
|
params.put("method", node.getMode().name());
|
||||||
|
params.put("persist", Boolean.toString(persist));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -27,12 +27,13 @@ public class RoomRepositoryImpl implements RoomRepository {
|
|||||||
private final RestUtil rest;
|
private final RestUtil rest;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void register(RRoom room) throws NodeNotFoundException, InvalidRoomIdentifierException, RoomAlreadyExistException {
|
public void register(RRoom room, boolean persist) throws NodeNotFoundException, InvalidRoomIdentifierException, RoomAlreadyExistException {
|
||||||
rest.query("/nodes/" + room.getNodeId() + "/rooms", HttpMethod.POST, params -> {
|
rest.query("/nodes/" + room.getNodeId() + "/rooms", HttpMethod.POST, params -> {
|
||||||
params.put("roomId", room.getId());
|
params.put("roomId", room.getId());
|
||||||
params.put("slots", Integer.toString(room.getSlots()));
|
params.put("slots", Integer.toString(room.getSlots()));
|
||||||
params.put("payload", room.getPayload());
|
params.put("payload", room.getPayload());
|
||||||
params.put("locked", Boolean.toString(room.isLocked()));
|
params.put("locked", Boolean.toString(room.isLocked()));
|
||||||
|
params.put("persist", Boolean.toString(persist));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user