/*
* Copyright 2015-Present Entando Inc. (http://www.entando.com) All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package org.entando.entando.plugins.jpmyportalplus.apsadmin.portal.model;
import com.agiletec.aps.system.services.pagemodel.Frame;
import com.agiletec.aps.system.services.pagemodel.PageModel;
import java.util.HashMap;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.entando.entando.apsadmin.portal.model.AbstractPageModelAction;
import org.entando.entando.plugins.jpmyportalplus.aps.system.services.pagemodel.IMyPortalPageModelManager;
import org.entando.entando.plugins.jpmyportalplus.aps.system.services.pagemodel.MyPortalFrameConfig;
/**
* @author E.Santoboni
*/
public class PageModelConfigAction extends AbstractPageModelAction {
private static final Logger _logger = LoggerFactory.getLogger(PageModelConfigAction.class);
@Override
public void validate() {
super.validate();
}
public String edit() {
PageModel pageModel = super.getPageModel(this.getCode());
if (null == pageModel) {
this.addActionError(this.getText("error.pageModel.notExist"));
return "pageModelList";
}
return SUCCESS;
}
public String save() {
try {
Map<Integer, MyPortalFrameConfig> myPortalConfiguration = new HashMap<Integer, MyPortalFrameConfig>();
PageModel pageModel = super.getPageModel(this.getCode());
if (null == pageModel) {
this.addActionError(this.getText("error.pageModel.notExist"));
return "pageModelList";
}
Frame[] configuration = pageModel.getConfiguration();
if (null != configuration) {
for (int i = 0; i < configuration.length; i++) {
Frame frame = configuration[i];
String isFreeString = this.getRequest().getParameter("freePosition_" + frame.getPos());
Integer column = null;
try {
column = Integer.parseInt(this.getRequest().getParameter("columnPosition_" + frame.getPos()));
} catch (Throwable t) {}
MyPortalFrameConfig config = new MyPortalFrameConfig();
config.setColumn(column);
config.setLocked(null == isFreeString);
myPortalConfiguration.put(frame.getPos(), config);
}
}
this.getMyPortalPageModelManager().updateModelConfig(pageModel.getCode(), myPortalConfiguration);
} catch (Throwable t) {
_logger.error("error in save", t);
return FAILURE;
}
return SUCCESS;
}
public Map<Integer, MyPortalFrameConfig> getConfiguration(String code) {
return this.getMyPortalPageModelManager().getPageModelConfig(code);
}
@Override
public PageModel getPageModel(String code) {
return super.getPageModel(code);
}
public String getCode() {
return _code;
}
public void setCode(String code) {
this._code = code;
}
protected IMyPortalPageModelManager getMyPortalPageModelManager() {
return _myPortalPageModelManager;
}
public void setMyPortalPageModelManager(IMyPortalPageModelManager myPortalPageModelManager) {
this._myPortalPageModelManager = myPortalPageModelManager;
}
private String _code;
private IMyPortalPageModelManager _myPortalPageModelManager;
}