![JAR search and dependency download from the Maven repository](/logo.png)
io.imunity.vaadin.auth.services.layout.AuthnLayoutConfigToUIConverter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of unity-server-vaadin-authentication Show documentation
Show all versions of unity-server-vaadin-authentication Show documentation
Vaadin login view and components
/*
* Copyright (c) 2021 Bixbit - Krzysztof Benedyczak. All rights reserved.
* See LICENCE.txt file for licensing information.
*/
package io.imunity.vaadin.auth.services.layout;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import io.imunity.vaadin.auth.services.layout.configuration.AuthnLayoutColumnConfiguration;
import io.imunity.vaadin.auth.services.layout.configuration.AuthnLayoutConfiguration;
import io.imunity.vaadin.auth.services.layout.configuration.elements.AuthnElementConfiguration;
import io.imunity.vaadin.auth.services.layout.ui.AuthenticationLayoutContent;
import io.imunity.vaadin.auth.services.layout.ui.AuthnLayoutColumn;
import io.imunity.vaadin.auth.services.layout.ui.ColumnComponent;
import io.imunity.vaadin.auth.services.layout.ui.components.AuthnLayoutComponentsFactory;
import io.imunity.vaadin.elements.LocalizedTextFieldDetails;
import pl.edu.icm.unity.base.i18n.I18nString;
/**
* Converts authentication layout UI elements to authentication layout
* configuration elements and revert
*
* @author P.Piernik
*
*/
public class AuthnLayoutConfigToUIConverter
{
public static AuthenticationLayoutContent convertToUI(AuthnLayoutConfiguration config,
AuthnLayoutComponentsFactory factory)
{
List separators = new ArrayList<>();
for (I18nString s : config.separators)
{
separators.add(factory.getSeparatorField(s));
}
AuthenticationLayoutContent content = new AuthenticationLayoutContent(
getColumns(config.columns, factory), separators);
return content;
}
private static List getColumns(List columnsC,
AuthnLayoutComponentsFactory factory)
{
List columns = new ArrayList<>();
for (AuthnLayoutColumnConfiguration config : columnsC)
{
AuthnLayoutColumn c = factory.getColumn();
c.setColumnTitle(config.title);
c.setColumnWidth(config.width);
c.setElements(getColumnElements(config.contents, factory));
columns.add(c);
}
return columns;
}
public static List getColumnElements(List contents,
AuthnLayoutComponentsFactory factory)
{
List elements = new ArrayList<>();
if (contents == null)
return elements;
for (AuthnElementConfiguration config : contents)
{
Optional el = factory.getForType(config);
if (el.isPresent())
{
ColumnComponent elp = el.get();
elp.setConfigState(config);
elements.add(elp);
}
}
return elements;
}
public static AuthnLayoutConfiguration convertFromUI(AuthenticationLayoutContent config)
{
List separators = new ArrayList<>();
for (LocalizedTextFieldDetails s : config.separators)
{
separators.add(new I18nString(s.getValue()));
}
return new AuthnLayoutConfiguration(getColumns(config.columns), separators);
}
private static List getColumns(List columns)
{
List columnsConfigs = new ArrayList<>();
for (AuthnLayoutColumn column : columns)
{
columnsConfigs.add(new AuthnLayoutColumnConfiguration(column.getColumnTitle(),
column.getColumnWidth(), getColumnElements(column.getElements())));
}
return columnsConfigs;
}
public static List getColumnElements(List elements)
{
List elemetsC = new ArrayList<>();
for (ColumnComponent element : elements)
{
elemetsC.add(element.getConfigState());
}
return elemetsC;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy