package com.idega.block.article.component;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;
import javax.faces.component.UIComponent;
import com.idega.block.article.business.ArticleConstants;
import com.idega.block.article.component.article_view.ArticleEdit;
import com.idega.builder.bean.AdvancedProperty;
import com.idega.content.business.ContentConstants;
import com.idega.content.presentation.ContentItemToolbar;
import com.idega.content.presentation.ContentViewer;
import com.idega.core.builder.business.BuilderService;
import com.idega.idegaweb.IWMainApplicationSettings;
import com.idega.presentation.Block;
import com.idega.presentation.IWContext;
import com.idega.presentation.Layer;
import com.idega.presentation.ui.IFrame;
public class ArticleEditor extends Block {
@Override
public void main(IWContext iwc) {
Layer container = new Layer();
add(container);
String resourcePath = iwc.getParameter(ContentViewer.PARAMETER_CONTENT_RESOURCE);
if (resourcePath == null) {
return;
}
String action = iwc.getParameter(ContentViewer.PARAMETER_ACTION);
if (action == null) {
action = ContentConstants.CONTENT_ITEM_ACTION_EDIT;
}
String renderingFromList = Boolean.TRUE.toString();
String renderingParameter = iwc.getParameter(ContentConstants.RENDERING_COMPONENT_OF_ARTICLE_LIST);
if (renderingParameter != null) {
renderingFromList = renderingParameter;
}
String basePath = iwc.getParameter(ContentItemToolbar.PARAMETER_BASE_FOLDER_PATH);
String categories = iwc.getParameter(ContentItemToolbar.PARAMETER_CATEGORIES);
String containerId = iwc.getParameter(ContentConstants.CONTENT_LIST_ITEMS_IDENTIFIER);
BuilderService service = null;
try {
service = getBuilderService(iwc);
} catch (RemoteException e) {
e.printStackTrace();
return;
}
List<AdvancedProperty> parameters = new ArrayList<AdvancedProperty>();
parameters.add(new AdvancedProperty(ContentViewer.PARAMETER_CONTENT_RESOURCE, resourcePath));
parameters.add(new AdvancedProperty(ContentViewer.PARAMETER_ACTION, action));
parameters.add(new AdvancedProperty(ContentViewer.CONTENT_VIEWER_EDITOR_NEEDS_FORM, Boolean.TRUE.toString()));
parameters.add(new AdvancedProperty(ContentConstants.RENDERING_COMPONENT_OF_ARTICLE_LIST, renderingFromList));
if (basePath != null) {
parameters.add(new AdvancedProperty(ContentItemToolbar.PARAMETER_BASE_FOLDER_PATH, basePath));
}
if (categories != null) {
parameters.add(new AdvancedProperty(ContentItemToolbar.PARAMETER_CATEGORIES, categories));
}
if (containerId != null) {
parameters.add(new AdvancedProperty(ContentConstants.CONTENT_LIST_ITEMS_IDENTIFIER, containerId));
}
IWMainApplicationSettings settings = iwc.getIWMainApplication().getSettings();
Class<? extends UIComponent> articleEditorClass = settings.getBoolean(ArticleConstants.USE_ROLES_IN_ARTICLE, Boolean.FALSE) ?
ArticleEdit.class : EditArticleView.class;
String uri = service.getUriToObject(articleEditorClass, parameters);
IFrame frame = new IFrame(EditArticleView.class.getSimpleName(), uri);
frame.setStyleClass("contentItemEditorFrameStyle");
frame.setStyleAttribute("width", "100%");
frame.setStyleAttribute("height", "99%");
container.add(frame);
}
@Override
public String getBundleIdentifier() {
return ArticleConstants.IW_BUNDLE_IDENTIFIER;
}
}