/* * jPOS Project [http://jpos.org] * Copyright (C) 2000-2017 jPOS Software SRL * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.jpos.qi.eeuser; import com.vaadin.data.fieldgroup.FieldGroup; import com.vaadin.data.fieldgroup.FieldGroupFieldFactory; import com.vaadin.ui.*; import org.jpos.ee.*; import org.jpos.qi.QIEntityView; import org.jpos.qi.QIHelper; import org.jpos.qi.components.QIFieldFactory; import java.util.Set; public class RolesView extends QIEntityView { public RolesView() { super(Role.class, "roles"); } @Override public String getHeaderSpecificTitle(Object entity) { if (entity instanceof Role) { Role r = (Role) entity; return r.getName() != null ? r.getName() : "New"; } else { return null; } } @Override public Object getEntity(Object entity) { if (entity instanceof Role) { Role r = (Role) entity; if (r.getId() != null) return getHelper().getEntityByParam(String.valueOf(((Role) entity).getId())); } return null; } @Override public Object createNewEntity() { return new Role(); } @Override public QIHelper createHelper() { return new RolesHelper(); } @Override public FieldGroupFieldFactory createFieldFactory() { return new QIFieldFactory() { @Override public <T extends Field> T createField(Class<?> dataType, Class<T> fieldType) { if (Set.class.equals(dataType)) { OptionGroup f = new OptionGroup("Permissions"); f.setMultiSelect(true); f.setNullSelectionAllowed(false); for (SysConfig sys : ((RolesHelper)getHelper()).getPermissions()) { Permission p = Permission.valueOf(sys.getId().substring(5)); f.addItem(p); f.setItemCaption(p, sys.getValue()); } f.setImmediate(true); return (T) f; } else { Field f = super.createField(dataType, fieldType); return (T) f; } } }; } //override to add validators @Override protected Layout addFields(FieldGroup fieldGroup) { Layout l = super.addFields(fieldGroup); Field name = fieldGroup.getField("name"); name.setRequired(true); name.setRequiredError(getApp().getMessage("errorMessage.req", name.getCaption())); return l; } @Override public boolean canEdit() { return true; } @Override public boolean canAdd() { return true; } @Override public boolean canRemove() { return true; } @Override public String[] getVisibleColumns() { return new String[] { "name" }; } }