PL-7421 Extract duplicated code from FileMultiUploadFieldLoader and FileUploadFieldLoader

This commit is contained in:
Yuriy Artamonov 2016-06-27 19:27:12 +04:00
parent b37f256a99
commit 632d7caf0d
3 changed files with 90 additions and 132 deletions

View File

@ -0,0 +1,87 @@
/*
* 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.cuba.gui.components.BoxLayout;
import com.haulmont.cuba.gui.components.Component;
import com.haulmont.cuba.gui.components.UploadField;
import org.apache.commons.lang.StringUtils;
import org.dom4j.Element;
import java.util.Arrays;
import java.util.HashSet;
public abstract class AbstractUploadFieldLoader<T extends UploadField> extends AbstractComponentLoader<T> {
@Override
public void loadComponent() {
assignFrame(resultComponent);
loadEnable(resultComponent, element);
loadVisible(resultComponent, element);
loadStyleName(resultComponent, element);
loadAlign(resultComponent, element);
loadHeight(resultComponent, element);
loadWidth(resultComponent, element);
loadIcon(resultComponent, element);
loadCaption(resultComponent, element);
loadDescription(resultComponent, element);
loadAccept(resultComponent, element);
loadPermittedExtensions(resultComponent, element);
loadDropZone(resultComponent, element);
String fileSizeLimit = element.attributeValue("fileSizeLimit");
if (StringUtils.isNotEmpty(fileSizeLimit)) {
resultComponent.setFileSizeLimit(Long.valueOf(fileSizeLimit));
}
}
protected void loadAccept(UploadField uploadField, Element element) {
String accept = element.attributeValue("accept");
if (StringUtils.isNotEmpty(accept)) {
uploadField.setAccept(accept);
}
}
protected void loadPermittedExtensions(UploadField uploadField, Element element) {
String permittedExtensions = element.attributeValue("permittedExtensions");
if (StringUtils.isNotEmpty(permittedExtensions)) {
uploadField.setPermittedExtensions(new HashSet<>(Arrays.asList(permittedExtensions.split("\\s*,\\s*"))));
}
}
protected void loadDropZone(UploadField uploadField, Element element) {
String dropZoneId = element.attributeValue("dropZone");
if (StringUtils.isNotEmpty(dropZoneId)) {
Component dropZone = context.getFrame().getComponent(dropZoneId);
if (dropZone instanceof BoxLayout) {
uploadField.setDropZone(new UploadField.DropZone((BoxLayout) dropZone));
}
}
String dropZonePrompt = element.attributeValue("dropZonePrompt");
if (StringUtils.isNotEmpty(dropZonePrompt)) {
uploadField.setDropZonePrompt(loadResourceString(dropZonePrompt));
}
}
}

View File

@ -16,75 +16,12 @@
*/
package com.haulmont.cuba.gui.xml.layout.loaders;
import com.haulmont.cuba.gui.components.*;
import org.apache.commons.lang.StringUtils;
import org.dom4j.Element;
import com.haulmont.cuba.gui.components.FileMultiUploadField;
import java.util.Arrays;
import java.util.HashSet;
public class FileMultiUploadFieldLoader extends AbstractComponentLoader<FileMultiUploadField> {
public class FileMultiUploadFieldLoader extends AbstractUploadFieldLoader<FileMultiUploadField> {
@Override
public void createComponent() {
resultComponent = (FileMultiUploadField) factory.createComponent(FileMultiUploadField.NAME);
loadId(resultComponent, element);
}
@Override
public void loadComponent() {
assignFrame(resultComponent);
loadEnable(resultComponent, element);
loadVisible(resultComponent, element);
loadStyleName(resultComponent, element);
loadAlign(resultComponent, element);
loadHeight(resultComponent, element);
loadWidth(resultComponent, element);
loadIcon(resultComponent, element);
loadCaption(resultComponent, element);
loadDescription(resultComponent, element);
loadAccept(resultComponent, element);
loadPermittedExtensions(resultComponent, element);
loadDropZone(resultComponent, element);
String fileSizeLimit = element.attributeValue("fileSizeLimit");
if (StringUtils.isNotEmpty(fileSizeLimit)) {
resultComponent.setFileSizeLimit(Long.valueOf(fileSizeLimit));
}
}
protected void loadAccept(FileMultiUploadField uploadField, Element element) {
String accept = element.attributeValue("accept");
if (StringUtils.isNotEmpty(accept)) {
uploadField.setAccept(accept);
}
}
protected void loadPermittedExtensions(FileMultiUploadField uploadField, Element element) {
String permittedExtensions = element.attributeValue("permittedExtensions");
if (StringUtils.isNotEmpty(permittedExtensions)) {
uploadField.setPermittedExtensions(new HashSet<>(Arrays.asList(permittedExtensions.split("\\s*,\\s*"))));
}
}
protected void loadDropZone(FileMultiUploadField uploadField, Element element) {
String dropZoneId = element.attributeValue("dropZone");
if (StringUtils.isNotEmpty(dropZoneId)) {
Component dropZone = context.getFrame().getComponent(dropZoneId);
if (dropZone instanceof BoxLayout) {
uploadField.setDropZone(new UploadField.DropZone((BoxLayout) dropZone));
}
}
String dropZonePrompt = element.attributeValue("dropZonePrompt");
if (StringUtils.isNotEmpty(dropZonePrompt)) {
uploadField.setDropZonePrompt(loadResourceString(dropZonePrompt));
}
}
}

View File

@ -16,78 +16,12 @@
*/
package com.haulmont.cuba.gui.xml.layout.loaders;
import com.haulmont.cuba.gui.components.BoxLayout;
import com.haulmont.cuba.gui.components.Component;
import com.haulmont.cuba.gui.components.FileUploadField;
import com.haulmont.cuba.gui.components.UploadField;
import org.apache.commons.lang.StringUtils;
import org.dom4j.Element;
import java.util.Arrays;
import java.util.HashSet;
public class FileUploadFieldLoader extends AbstractComponentLoader<FileUploadField> {
public class FileUploadFieldLoader extends AbstractUploadFieldLoader<FileUploadField> {
@Override
public void createComponent() {
resultComponent = (FileUploadField) factory.createComponent(FileUploadField.NAME);
loadId(resultComponent, element);
}
@Override
public void loadComponent() {
assignFrame(resultComponent);
loadEnable(resultComponent, element);
loadVisible(resultComponent, element);
loadStyleName(resultComponent, element);
loadAlign(resultComponent, element);
loadHeight(resultComponent, element);
loadWidth(resultComponent, element);
loadIcon(resultComponent, element);
loadCaption(resultComponent, element);
loadDescription(resultComponent, element);
loadAccept(resultComponent, element);
loadPermittedExtensions(resultComponent, element);
loadDropZone(resultComponent, element);
String fileSizeLimit = element.attributeValue("fileSizeLimit");
if (StringUtils.isNotEmpty(fileSizeLimit)) {
resultComponent.setFileSizeLimit(Long.valueOf(fileSizeLimit));
}
}
protected void loadAccept(FileUploadField uploadField, Element element) {
String accept = element.attributeValue("accept");
if (StringUtils.isNotEmpty(accept)) {
uploadField.setAccept(accept);
}
}
protected void loadPermittedExtensions(FileUploadField uploadField, Element element) {
String permittedExtensions = element.attributeValue("permittedExtensions");
if (StringUtils.isNotEmpty(permittedExtensions)) {
uploadField.setPermittedExtensions(new HashSet<>(Arrays.asList(permittedExtensions.split("\\s*,\\s*"))));
}
}
protected void loadDropZone(FileUploadField uploadField, Element element) {
String dropZoneId = element.attributeValue("dropZone");
if (StringUtils.isNotEmpty(dropZoneId)) {
Component dropZone = context.getFrame().getComponent(dropZoneId);
if (dropZone instanceof BoxLayout) {
uploadField.setDropZone(new UploadField.DropZone((BoxLayout) dropZone));
}
}
String dropZonePrompt = element.attributeValue("dropZonePrompt");
if (StringUtils.isNotEmpty(dropZonePrompt)) {
uploadField.setDropZonePrompt(loadResourceString(dropZonePrompt));
}
}
}