/*
* $Id: ArticleAdminBlock.java,v 1.9 2008/04/24 23:15:06 laddi Exp $
*
* Copyright (C) 2004 Idega. All Rights Reserved.
*
* This software is the proprietary information of Idega.
* Use is subject to license terms.
*/
package com.idega.block.article.component;
import javax.faces.context.FacesContext;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.ActionEvent;
import javax.faces.event.ActionListener;
import com.idega.block.article.IWBundleStarter;
import com.idega.block.article.business.ArticleUtil;
import com.idega.content.bean.ManagedContentBeans;
import com.idega.webface.WFBlockTabbed;
import com.idega.webface.WFTabbedPane;
import com.idega.webface.WFUtil;
/**
* <p>
* This is the main block for administering articles (creating,editing)
* </p>
* Last modified: $Date: 2008/04/24 23:15:06 $ by $Author: laddi $
*
* @author Joakim, Tryggvi Larusson
* @version $Revision: 1.9 $
*/
public class ArticleAdminBlock extends WFBlockTabbed implements ActionListener, ManagedContentBeans {
public final static String ARTICLE_BLOCK_ID = "article_admin_block";
private final static String P = "article_admin_block_"; // Id prefix
private final static String TASKBAR_ID = P + "taskbar";
public final static String TASK_ID_EDIT = P + "t_edit";
public final static String TASK_ID_PREVIEW = P + "t_preview";
public final static String TASK_ID_LIST = P + "t_list";
public final static String TASK_ID_DETAILS = P + "t_details";
private String mode;
public ArticleAdminBlock() {
super(_("article"));
setId(ARTICLE_BLOCK_ID);
setMaximizedVertically(true);
}
/* (non-Javadoc)
* @see com.idega.webface.WFBlockTabbed#initializeTabbedPane(javax.faces.context.FacesContext)
*/
@Override
protected WFTabbedPane initializeTabbedPane(FacesContext context) {
WFTabbedPane tb = new WFTabbedPane();
//tb.setMainAreaStyleClass(WFContainer.DEFAULT_STYLE_CLASS);
tb.setId(TASKBAR_ID);
//add(tb);
EditArticleView editArticleBlock = new EditArticleView();
tb.addTab(TASK_ID_EDIT, _("edit"), editArticleBlock);
tb.addTab(TASK_ID_DETAILS, _("details"), new ArticleDetailView());
// tb.addTab(TASK_ID_LIST, _("list"), new ListArticlesBlock());
tb.addTab(TASK_ID_PREVIEW, _("preview"), new ArticlePreview());
tb.setSelectedMenuItemId(TASK_ID_EDIT);
//if (taskbarListener != null) {
// tb.addTabListener(taskbarListener);
//}
String editMode = getEditMode();
if(editMode!=null){
editArticleBlock.setEditMode(editMode);
}
return tb;
}
@Override
public void initializeComponent(FacesContext context){
super.initializeComponent(context);
//Saving the state of the articleItemBean specially because the scpoe
//of this bean now is 'request' not 'session'
add(ArticleUtil.getBeanSaveState(ARTICLE_ITEM_BEAN_ID));
}
protected EditArticleView getEditArticleView(){
WFTabbedPane tab = getTabbedPane();
if(tab!=null){
return (EditArticleView) tab.getTabView(TASK_ID_EDIT);
}
return null;
}
public void setEditMode(String mode) {
//editArticleBlock.setEditMode(mode);
//getAttributes().put(KEY_EDITMODE,mode);
this.mode=mode;
EditArticleView editView = getEditArticleView();
if(editView!=null){
editView.setEditMode(mode);
}
}
public String getEditMode(){
//String sReturn = (String) getAttributes().get(KEY_EDITMODE);
//return sReturn;
return this.mode;
}
/* (non-Javadoc)
* @see javax.faces.event.ActionListener#processAction(javax.faces.event.ActionEvent)
*/
public void processAction(ActionEvent arg0) throws AbortProcessingException {
// TODO Auto-generated method stub
}
/**
* @see javax.faces.component.UIPanel#saveState(javax.faces.context.FacesContext)
*/
@Override
public Object saveState(FacesContext ctx) {
Object values[] = new Object[2];
values[0] = super.saveState(ctx);
values[1] = this.mode;
return values;
}
/**
* @see javax.faces.component.UIPanel#restoreState(javax.faces.context.FacesContext,
* java.lang.Object)
*/
@Override
public void restoreState(FacesContext ctx, Object state) {
Object values[] = (Object[]) state;
super.restoreState(ctx, values[0]);
this.mode = (String)values[1];
//super.restoreState(ctx,state);
}
private static String _(String localizationKey) {
return WFUtil.getLocalizedStringExpr(IWBundleStarter.BUNDLE_IDENTIFIER, localizationKey);
}
}