Java tutorial
/* * Copyright (c) 2008-2016 Haulmont. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package com.haulmont.cuba.gui.xml.layout.loaders; import com.haulmont.chile.core.model.MetaProperty; import com.haulmont.chile.core.model.MetaPropertyPath; import com.haulmont.cuba.gui.components.Component; import com.haulmont.cuba.gui.components.Field; import org.apache.commons.lang.StringUtils; import org.dom4j.Element; import java.util.List; public abstract class AbstractFieldLoader<T extends Field> extends AbstractDatasourceComponentLoader<T> { @Override public void loadComponent() { assignFrame(resultComponent); assignXmlDescriptor(resultComponent, element); loadDatasource(resultComponent, element); loadVisible(resultComponent, element); loadEditable(resultComponent, element); loadEnable(resultComponent, element); loadStyleName(resultComponent, element); loadCaption(resultComponent, element); loadIcon(resultComponent, element); loadDescription(resultComponent, element); loadContextHelp(resultComponent, element); loadValidators(resultComponent, element); loadRequired(resultComponent, element); loadHeight(resultComponent, element); loadWidth(resultComponent, element); loadAlign(resultComponent, element); loadResponsive(resultComponent, element); } protected void loadRequired(Field component, Element element) { String required = element.attributeValue("required"); if (StringUtils.isNotEmpty(required)) { component.setRequired(Boolean.parseBoolean(required)); } String requiredMessage = element.attributeValue("requiredMessage"); if (requiredMessage != null) { component.setRequiredMessage(loadResourceString(requiredMessage)); } else if (component.isRequired() && component.getDatasource() != null) { MetaPropertyPath propertyPath = component.getMetaPropertyPath(); component.setRequiredMessage( messageTools.getDefaultRequiredMessage(propertyPath.getMetaClass(), propertyPath.toString())); } } protected void loadValidators(Field component, Element element) { @SuppressWarnings({ "unchecked" }) List<Element> validatorElements = element.elements("validator"); if (!validatorElements.isEmpty()) { for (Element validatorElement : validatorElements) { Field.Validator validator = loadValidator(validatorElement); if (validator != null) { component.addValidator(validator); } } } else if (component.getDatasource() != null) { MetaProperty property = component.getMetaProperty(); Field.Validator validator = getDefaultValidator(property); if (validator != null) { component.addValidator(validator); } } } protected void loadBuffered(Component.Buffered component, Element element) { String buffered = element.attributeValue("buffered"); if (StringUtils.isNotEmpty(buffered)) { component.setBuffered(Boolean.parseBoolean(buffered)); } } }