Package org.jboss.dashboard.ui.config.components.resources

Source Code of org.jboss.dashboard.ui.config.components.resources.ResourcesPropertiesHandler

/**
* Copyright (C) 2012 JBoss Inc
*
* 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 org.jboss.dashboard.ui.config.components.resources;

import org.jboss.dashboard.ui.components.HandlerFactoryElement;
import org.jboss.dashboard.ui.controller.CommandRequest;
import org.jboss.dashboard.workspace.GraphicElementManager;
import org.jboss.dashboard.ui.resources.GraphicElement;
import org.jboss.dashboard.ui.resources.GraphicElementPreview;
import org.apache.commons.lang.StringEscapeUtils;
import org.jboss.dashboard.workspace.GraphicElementManager;

import java.io.File;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

public class ResourcesPropertiesHandler extends HandlerFactoryElement {
    private static transient org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(ResourcesPropertiesHandler.class.getName());

    private String resourceType;  //graphicElement
    private String workspaceId;
    private String socpeWorkspaceId;
    private Long sectionId;
    private Long panelId;
    private String resourceId;
    private File file;
    private boolean preview = false;
    private boolean inserted = false;
    private String actionCreate;
    private String actionCancel;
    private List fieddErrors = new ArrayList();
    private boolean zipHasError;
    public static final String PREVIEW_ATTRIBUTE = "attrPreview";
    public static final String FIELD_RESOURCEID = "resourceId";
    public static final String FIELD_FILE = "inputFile";

    public boolean isZipHasError() {
        return zipHasError;
    }

    public void setZipHasError(boolean zipHasError) {
        this.zipHasError = zipHasError;
    }

    public List getFieddErrors() {
        return fieddErrors;
    }

    public void setFieddErrors(List fieddErrors) {
        this.fieddErrors = fieddErrors;
    }

    public String getSocpeWorkspaceId() {
        return socpeWorkspaceId;
    }

    public void setSocpeWorkspaceId(String socpeWorkspaceId) {
        this.socpeWorkspaceId = socpeWorkspaceId;
    }

    public boolean isInserted() {
        return inserted;
    }

    public void setInserted(boolean inserted) {
        this.inserted = inserted;
    }

    public String getActionCreate() {
        return actionCreate;
    }

    public void setActionCreate(String actionCreate) {
        this.actionCreate = actionCreate;
    }

    public String getActionCancel() {
        return actionCancel;
    }

    public void setActionCancel(String actionCancel) {
        this.actionCancel = actionCancel;
    }

    public boolean isPreview() {
        return preview;
    }

    public void setPreview(boolean preview) {
        this.preview = preview;
    }

    public File getFile() {
        return file;
    }

    public void setFile(File file) {
        this.file = file;
    }

    public String getResourceId() {
        return resourceId;
    }

    public void setResourceId(String resourceId) {
        this.resourceId = resourceId;
    }

    public String getResourceType() {
        return resourceType;
    }

    public void setResourceType(String resourceType) {
        this.resourceType = resourceType;
    }

    public String getWorkspaceId() {
        return workspaceId;
    }

    public void setWorkspaceId(String workspaceId) {
        this.workspaceId = workspaceId;
    }

    public Long getSectionId() {
        return sectionId;
    }

    public void setSectionId(Long sectionId) {
        this.sectionId = sectionId;
    }

    public Long getPanelId() {
        return panelId;
    }

    public void setPanelId(Long panelId) {
        this.panelId = panelId;
    }

    public void actionStartPreview(CommandRequest request) {

        preview = false;
        zipHasError = false;

        if (fieddErrors.size() > 0) fieddErrors.clear();

        if ((getFieldErrors().size() > 0)) {
            log.error("Error on form");
            return;
        }

        if ((resourceId == null) || ("".equals(resourceId))) {
            fieddErrors.add(FIELD_RESOURCEID);
            if (!((file == null) || ("".equals(file.toString())))) return;
        }

        if ((file == null) || ("".equals(file.toString()))) {
            fieddErrors.add(FIELD_FILE);
            return;
        }

        if (request.getUploadedFilesCount() > 1) {
            log.error("Number of files uploaded are more than one. It is necessari to upload just one file");
            return;
        }
        if ((resourceType == null) || "".equals(resourceType)) {
            log.error("Error. Graphic element is not correct");
            return;
        }
        preview = true;
        try {
            resourceId = StringEscapeUtils.escapeHtml(resourceId);
            String graphicElementClassName = resourceType.substring(0, 1).toUpperCase() + resourceType.substring(1);
            Class graphicElementClass = Class.forName("org.jboss.dashboard.ui.resources." + graphicElementClassName);
            if ("".equals(socpeWorkspaceId)) socpeWorkspaceId = null;
            Method previewGetter = graphicElementClass.getMethod("getPreviewInstance", new Class[]{File.class, String.class, Long.class, Long.class, String.class});
            GraphicElementPreview preview = (GraphicElementPreview) previewGetter.invoke(null, new Object[]{file, (workspaceId == null) ? socpeWorkspaceId : workspaceId, sectionId, panelId, resourceId});
            request.getSessionObject().setAttribute(PREVIEW_ATTRIBUTE, preview);
            actionCancel = null;
            actionCreate = null;
        } catch (Exception e) {
            log.error("Error: " + e.getMessage());
            setErrorOnZipFile();
        }
    }

    public void actionConfirmNewElement(CommandRequest request) {

        if ((actionCreate == null) || (zipHasError)) {
            goToElementsPage();
            return;
        }
        GraphicElementPreview previewElement = (GraphicElementPreview) request.getSessionObject().getAttribute(PREVIEW_ATTRIBUTE);
        if (previewElement.getStatus() != GraphicElementPreview.STATUS_OK) {
            goToElementsPage();
            return;
        }

        try {
            String graphicElementClassName = resourceType.substring(0, 1).toUpperCase() + resourceType.substring(1);
            Class graphicElementClass = Class.forName("org.jboss.dashboard.ui.resources." + graphicElementClassName);
            Method managerGetter = graphicElementClass.getMethod("getManager", new Class[]{});
            GraphicElementManager manager = (GraphicElementManager) managerGetter.invoke(null, new Object[]{});
            GraphicElementPreview preview = (GraphicElementPreview) request.getSessionObject().getAttribute(PREVIEW_ATTRIBUTE);
            final GraphicElement element = preview.toElement();
            manager.createOrUpdate(element);
            actionCreate = null;
            actionCancel = null;
            inserted = true;
            resourceId = null;
            file = null;
            //preview and inserted change the value in ResourcePropertiesFormatter
        } catch (Exception e) {
            log.error("Error: " + e.getMessage(), e);
            setErrorOnZipFile();
        }
    }

    public void setErrorOnZipFile() {
        zipHasError = true;
        preview = true;
        actionCancel = null;
        resourceId = null;
        inserted = false;
    }

    public void goToElementsPage() {
        preview = false;
        actionCancel = null;
        resourceId = null;
        inserted = false;
    }
}
TOP

Related Classes of org.jboss.dashboard.ui.config.components.resources.ResourcesPropertiesHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.