
io.imunity.furms.ui.components.administrators.UserGridItem Maven / Gradle / Ivy
/*
* Copyright (c) 2020 Bixbit s.c. All rights reserved.
* See LICENSE file for licensing information.
*/
package io.imunity.furms.ui.components.administrators;
import com.vaadin.flow.component.icon.Icon;
import io.imunity.furms.domain.invitations.InvitationId;
import io.imunity.furms.domain.users.FURMSUser;
import io.imunity.furms.domain.users.FenixUserId;
import io.imunity.furms.domain.users.PersistentId;
import io.imunity.furms.domain.users.UserStatus;
import java.util.Objects;
import java.util.Optional;
import static com.vaadin.flow.component.icon.VaadinIcon.ANGLE_RIGHT;
public class UserGridItem implements AbstractUserGridItem {
private final Optional id;
private final Optional fenixUserId;
private final Optional firstName;
private final Optional lastName;
private final Optional invitationId;
private final UserUIStatus status;
private final String email;
private Icon icon = ANGLE_RIGHT.create();
public UserGridItem(FURMSUser user){
this.id = user.id;
this.fenixUserId = user.fenixUserId;
this.firstName = user.firstName;
this.lastName = user.lastName;
this.status = UserStatus.ENABLED.equals(user.status) ? UserUIStatus.ENABLED : UserUIStatus.DISABLED;
this.email = user.email;
this.invitationId = Optional.empty();
}
public UserGridItem(FURMSUser user, UserUIStatus userUIStatus){
this.id = user.id;
this.fenixUserId = user.fenixUserId;
this.firstName = user.firstName;
this.lastName = user.lastName;
this.status = userUIStatus;
this.email = user.email;
this.invitationId = Optional.empty();
}
public UserGridItem(String email, InvitationId invitationId) {
this.id = Optional.empty();
this.fenixUserId = Optional.empty();
this.firstName = Optional.empty();
this.lastName = Optional.empty();
this.status = UserUIStatus.AWAITS_APPROVAL;
this.email = email;
this.invitationId = Optional.of(invitationId);
}
public Optional getId() {
return id;
}
public Optional getFirstName() {
return firstName;
}
public Optional getLastName() {
return lastName;
}
public UserUIStatus getStatus() {
return status;
}
public String getEmail() {
return email;
}
public Optional getInvitationId() {
return invitationId;
}
public Icon getIcon() {
return icon;
}
public void setIcon(Icon icon) {
this.icon = icon;
}
public Optional getFenixUserId() {
return fenixUserId;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
UserGridItem that = (UserGridItem) o;
return id.equals(that.id) && Objects.equals(email, that.email);
}
@Override
public int hashCode() {
return Objects.hash(id);
}
@Override
public String toString() {
return "AdministratorsGridItem{" +
"id='" + id + '\'' +
", firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
", status='" + status + '\'' +
", email='" + email + '\'' +
'}';
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy