Search in sources :

Example 31 with PageModel

use of com.agiletec.aps.system.services.pagemodel.PageModel in project entando-core by entando.

the class ApiPageModelInterface method deletePageModel.

public void deletePageModel(Properties properties) throws ApiException, Throwable {
    String code = properties.getProperty("code");
    try {
        PageModel pageModel = this.getPageModelManager().getPageModel(code);
        if (null == pageModel) {
            throw new ApiException(IApiErrorCodes.API_VALIDATION_ERROR, "PageModel with code '" + code + "' does not exist", Response.Status.CONFLICT);
        }
        Map<String, List<Object>> references = new HashMap<String, List<Object>>();
        ListableBeanFactory factory = (ListableBeanFactory) this.getBeanFactory();
        String[] defNames = factory.getBeanNamesForType(PageModelUtilizer.class);
        for (int i = 0; i < defNames.length; i++) {
            Object service = null;
            try {
                service = this.getBeanFactory().getBean(defNames[i]);
            } catch (Throwable t) {
                _logger.error("error extracting bean with name '{}'", defNames[i], t);
                throw new ApsSystemException("error extracting bean with name '" + defNames[i] + "'", t);
            }
            if (service != null) {
                PageModelUtilizer pageModelUtilizer = (PageModelUtilizer) service;
                List<Object> utilizers = pageModelUtilizer.getPageModelUtilizers(code);
                if (utilizers != null && !utilizers.isEmpty()) {
                    references.put(pageModelUtilizer.getName(), utilizers);
                }
            }
        }
        if (!references.isEmpty()) {
            throw new ApiException(IApiErrorCodes.API_VALIDATION_ERROR, "PageModel with code " + code + " has references with other object", Response.Status.CONFLICT);
        }
        this.getPageModelManager().deletePageModel(code);
    } catch (ApiException ae) {
        throw ae;
    } catch (Throwable t) {
        _logger.error("Error deleting page model throw api", t);
        throw t;
    }
}
Also used : HashMap(java.util.HashMap) ApsSystemException(com.agiletec.aps.system.exception.ApsSystemException) ArrayList(java.util.ArrayList) List(java.util.List) PageModel(com.agiletec.aps.system.services.pagemodel.PageModel) PageModelUtilizer(com.agiletec.aps.system.services.pagemodel.PageModelUtilizer) ListableBeanFactory(org.springframework.beans.factory.ListableBeanFactory) ApiException(org.entando.entando.aps.system.services.api.model.ApiException)

Example 32 with PageModel

use of com.agiletec.aps.system.services.pagemodel.PageModel in project entando-core by entando.

the class PageModelAction method extractPageModelFormValues.

protected String extractPageModelFormValues() {
    try {
        PageModel pageModel = super.getPageModel(this.getCode());
        if (null == pageModel) {
            this.addActionError(this.getText("error.pageModel.notExist"));
            return "pageModelList";
        }
        this.setDescription(pageModel.getDescription());
        this.setPluginCode(pageModel.getPluginCode());
        // TO DELETE - start
        if (null != pageModel.getConfiguration()) {
            PageModelDOM dom = new PageModelDOM(pageModel);
            String xml = dom.getXMLDocument();
            this.setXmlConfiguration(xml);
        }
        // TO DELETE - end
        this.setTemplate(pageModel.getTemplate());
    } catch (Throwable t) {
        _logger.error("error in extractPageModelFormValues", t);
        return FAILURE;
    }
    return SUCCESS;
}
Also used : PageModelDOM(com.agiletec.aps.system.services.pagemodel.PageModelDOM) PageModel(com.agiletec.aps.system.services.pagemodel.PageModel)

Example 33 with PageModel

use of com.agiletec.aps.system.services.pagemodel.PageModel in project entando-core by entando.

the class PageModelAction method checkModelForDelete.

protected String checkModelForDelete() throws ApsSystemException {
    PageModel model = super.getPageModel(this.getCode());
    if (null == model) {
        this.addActionError(this.getText("error.pageModel.notExist"));
        return "pageModelList";
    }
    this.extractReferencingObjects(this.getCode());
    if (null != this.getReferences() && this.getReferences().size() > 0) {
        return "references";
    }
    return null;
}
Also used : PageModel(com.agiletec.aps.system.services.pagemodel.PageModel)

Example 34 with PageModel

use of com.agiletec.aps.system.services.pagemodel.PageModel in project entando-core by entando.

the class PageModelAction method createPageModel.

protected PageModel createPageModel() throws Throwable {
    PageModel model = null;
    try {
        if (ApsAdminSystemConstants.ADD == this.getStrutsAction()) {
            model = new PageModel();
            model.setCode(this.getCode());
        } else {
            model = this.getPageModel(this.getCode());
        }
        model.setDescription(this.getDescription());
        String template = (!StringUtils.isBlank(this.getTemplate())) ? this.getTemplate() : null;
        model.setTemplate(template);
        // TO DELETE - start
        String xml = this.getXmlConfiguration();
        PageModelDOM dom = new PageModelDOM(xml, this.getWidgetTypeManager());
        Frame[] configuration = dom.getConfiguration();
        int mainFrame = dom.getMainFrame();
        if (mainFrame > -1) {
            model.setMainFrame(mainFrame);
        }
        model.setConfiguration(configuration);
    // TO DELETE - end
    } catch (Throwable t) {
        _logger.error("error in creating page model", t);
        throw t;
    }
    return model;
}
Also used : Frame(com.agiletec.aps.system.services.pagemodel.Frame) PageModelDOM(com.agiletec.aps.system.services.pagemodel.PageModelDOM) PageModel(com.agiletec.aps.system.services.pagemodel.PageModel)

Example 35 with PageModel

use of com.agiletec.aps.system.services.pagemodel.PageModel in project entando-core by entando.

the class PageModelFinderAction method getPageModels.

public List<PageModel> getPageModels() {
    List<PageModel> models = new ArrayList<PageModel>();
    models.addAll(this.getPageModelManager().getPageModels());
    BeanComparator c = new BeanComparator("description");
    Collections.sort(models, c);
    return models;
}
Also used : ArrayList(java.util.ArrayList) PageModel(com.agiletec.aps.system.services.pagemodel.PageModel) BeanComparator(org.apache.commons.beanutils.BeanComparator)

Aggregations

PageModel (com.agiletec.aps.system.services.pagemodel.PageModel)47 IPage (com.agiletec.aps.system.services.page.IPage)13 ApsSystemException (com.agiletec.aps.system.exception.ApsSystemException)11 Page (com.agiletec.aps.system.services.page.Page)10 Widget (com.agiletec.aps.system.services.page.Widget)10 ApsProperties (com.agiletec.aps.util.ApsProperties)10 PageMetadata (com.agiletec.aps.system.services.page.PageMetadata)9 ArrayList (java.util.ArrayList)8 List (java.util.List)8 RestServerError (org.entando.entando.aps.system.exception.RestServerError)7 BeanPropertyBindingResult (org.springframework.validation.BeanPropertyBindingResult)7 ValidationConflictException (org.entando.entando.web.common.exceptions.ValidationConflictException)6 Frame (com.agiletec.aps.system.services.pagemodel.Frame)5 Map (java.util.Map)5 RestRourceNotFoundException (org.entando.entando.aps.system.exception.RestRourceNotFoundException)5 WidgetConfigurationDto (org.entando.entando.aps.system.services.page.model.WidgetConfigurationDto)5 WidgetConfigurationRequest (org.entando.entando.web.page.model.WidgetConfigurationRequest)5 IPageModelManager (com.agiletec.aps.system.services.pagemodel.IPageModelManager)4 PageModelDOM (com.agiletec.aps.system.services.pagemodel.PageModelDOM)4 IDtoBuilder (org.entando.entando.aps.system.services.IDtoBuilder)4