/**
*
*/
package com.idega.builder.presentation;
import java.util.Arrays;
import javax.faces.context.FacesContext;
import org.springframework.beans.factory.annotation.Autowired;
import com.idega.block.login.presentation.Login2;
import com.idega.block.web2.business.JQuery;
import com.idega.builder.bean.AdminToolbarSession;
import com.idega.builder.business.BuilderConstants;
import com.idega.core.accesscontrol.business.StandardRoles;
import com.idega.idegaweb.IWBundle;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.presentation.IWBaseComponent;
import com.idega.presentation.IWContext;
import com.idega.presentation.Layer;
import com.idega.presentation.text.Heading1;
import com.idega.presentation.text.ListItem;
import com.idega.presentation.text.Lists;
import com.idega.presentation.text.Paragraph;
import com.idega.presentation.text.Text;
import com.idega.util.CoreConstants;
import com.idega.util.PresentationUtil;
import com.idega.util.expression.ELUtil;
/**
* Creates toolbar for super administrators for switching page into different modes: builder, content, themes or preview
*
* Last modified: $Date: 2009/04/27 14:52:25 $ by $Author: valdas $
*
* @author <a href="mailto:laddi@idega.com">laddi</a>
* @version $Revision: 1.12 $
*/
public class AdminToolbar extends IWBaseComponent {
@Autowired
private JQuery jQuery;
@Autowired
private AdminToolbarSession adminToolbarSettings;
@Override
protected void initializeComponent(FacesContext context) {
IWContext iwc = IWContext.getIWContext(context);
String mainId = "adminTopLayer";
if (iwc.getViewRoot().findComponent(mainId) != null) {
return;
}
ELUtil.getInstance().autowire(this);
IWBundle bundle = getBundle(context, getBundleIdentifier());
IWResourceBundle iwrb = bundle.getResourceBundle(iwc);
// CSS
PresentationUtil.addStyleSheetsToHeader(iwc, Arrays.asList(
bundle.getVirtualPathWithFileNameString("style/builder.css"),
bundle.getVirtualPathWithFileNameString("style/admin-core.css")
));
// JavaScript
PresentationUtil.addJavaScriptSourcesLinesToHeader(iwc, Arrays.asList(
jQuery.getBundleURIToJQueryLib(),
CoreConstants.DWR_ENGINE_SCRIPT,
CoreConstants.DWR_UTIL_SCRIPT,
"/dwr/interface/AdminToolbarSession.js",
iwc.getIWMainApplication().getBundle(CoreConstants.CORE_IW_BUNDLE_IDENTIFIER).getVirtualPathWithFileNameString("javascript/AdminCore.js")
));
Layer layer = new Layer();
layer.setID(mainId);
add(layer);
Login2 login = new Login2();
login.setURLToRedirectToOnLogoff("/pages/");
layer.add(login);
Lists list = new Lists();
list.setModernNavigation(Boolean.FALSE);
layer.add(list);
ListItem themes = new ListItem();
themes.setStyleClass("adminThemesMode");
themes.add(new Text(iwrb.getLocalizedString("admin_mode.themes", "Themes")));
if (iwc.hasRole(StandardRoles.ROLE_KEY_ADMIN) || iwc.hasRole(StandardRoles.ROLE_KEY_EDITOR)) {
list.add(themes);
}
Layer themesHelp = new Layer();
themesHelp.setStyleClass("modeHelper");
themesHelp.add(new Heading1(iwrb.getLocalizedString("admin_mode.themes_help", "Themes mode")));
Paragraph paragraph = new Paragraph();
paragraph.add(new Text(iwrb.getLocalizedString("admin_mode.themes_help_text", "Themes help text")));
themesHelp.add(paragraph);
themes.add(themesHelp);
ListItem edit = new ListItem();
edit.setStyleClass("adminEditMode");
edit.add(new Text(iwrb.getLocalizedString("admin_mode.edit", "Edit")));
if (iwc.hasRole(StandardRoles.ROLE_KEY_ADMIN) || iwc.hasRole(StandardRoles.ROLE_KEY_EDITOR)) {
list.add(edit);
}
Layer editHelp = new Layer();
editHelp.setStyleClass("modeHelper");
editHelp.add(new Heading1(iwrb.getLocalizedString("admin_mode.edit_help", "Edit mode")));
paragraph = new Paragraph();
paragraph.add(new Text(iwrb.getLocalizedString("admin_mode.edit_help_text", "Edit help text")));
editHelp.add(paragraph);
edit.add(editHelp);
ListItem content = new ListItem();
content.setStyleClass("adminContentMode");
content.add(new Text(iwrb.getLocalizedString("admin_mode.content", "Content")));
list.add(content);
Layer contentHelp = new Layer();
contentHelp.setStyleClass("modeHelper");
contentHelp.add(new Heading1(iwrb.getLocalizedString("admin_mode.content_help", "Content mode")));
paragraph = new Paragraph();
paragraph.add(new Text(iwrb.getLocalizedString("admin_mode.content_help_text", "Content help text")));
contentHelp.add(paragraph);
content.add(contentHelp);
ListItem preview = new ListItem();
preview.setStyleClass("adminPreviewMode");
preview.add(new Text(iwrb.getLocalizedString("admin_mode.preview", "Preview")));
list.add(preview);
Layer previewHelp = new Layer();
previewHelp.setStyleClass("modeHelper");
previewHelp.add(new Heading1(iwrb.getLocalizedString("admin_mode.preview_help", "Preview mode")));
paragraph = new Paragraph();
paragraph.add(new Text(iwrb.getLocalizedString("admin_mode.preview_help_text", "Preview help text")));
previewHelp.add(paragraph);
preview.add(previewHelp);
if (adminToolbarSettings.getMode() != null) {
String mode = adminToolbarSettings.getMode();
if (mode.equals("isThemesAdmin")) {
themes.setStyleClass("selected");
}
else if (mode.equals("isEditAdmin")) {
edit.setStyleClass("selected");
}
else if (mode.equals("isContentAdmin")) {
content.setStyleClass("selected");
}
else {
preview.setStyleClass("selected");
}
PresentationUtil.addJavaScriptActionToBody(iwc, new StringBuilder("AdminCoreHelper.currentMode = '").append(mode).append("';").toString());
}
else {
preview.setStyleClass("selected");
}
}
public String getBundleIdentifier() {
return BuilderConstants.IW_BUNDLE_IDENTIFIER;
}
}