package com.idega.content.themes.presentation;
import java.rmi.RemoteException;
import java.util.Arrays;
import org.springframework.beans.factory.annotation.Autowired;
import com.idega.block.web2.business.JQuery;
import com.idega.block.web2.business.Web2Business;
import com.idega.content.business.ContentConstants;
import com.idega.idegaweb.IWBundle;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.presentation.Block;
import com.idega.presentation.IWContext;
import com.idega.presentation.Image;
import com.idega.presentation.Layer;
import com.idega.util.CoreConstants;
import com.idega.util.CoreUtil;
import com.idega.util.PresentationUtil;
import com.idega.util.StringUtil;
import com.idega.util.expression.ELUtil;
public class ThemesSliderViewer extends Block {
private String mainId = "themesSliderContainer";
private String mainStyleClass = "themesSlider";
private boolean hiddenOnLoad = false;
private String initAction;
@Autowired
private Web2Business web2;
@Autowired
private JQuery jQuery;
@Override
public void main(IWContext iwc) {
ELUtil.getInstance().autowire(this);
IWBundle bundle = getBundle(iwc);
IWResourceBundle iwrb = getResourceBundle(iwc);
// Main container
Layer container = new Layer();
container.setId(getMainId());
container.setStyleClass(getMainStyleClass());
if (hiddenOnLoad) {
container.setStyleAttribute("display", "none");
}
// Left scroller
Layer leftScroller = new Layer();
leftScroller.setId("leftScrollerContainer");
leftScroller.setStyleClass("themeScroller");
leftScroller.add(getScrollImage(bundle.getVirtualPathWithFileNameString("images/left.png"),
iwrb.getLocalizedString("scroll_left", "Scroll to left"), "leftScroller"));
container.add(leftScroller);
// Ticker
Layer tickerContainer = new Layer();
tickerContainer.setId("themesTickerContainer");
tickerContainer.setStyleClass("themesTicker");
Layer ticker = new Layer();
ticker.setId("themes");
ticker.setStyleClass("multiImageGallery");
ticker.setStyleAttribute("left", "0px");
tickerContainer.add(ticker);
container.add(tickerContainer);
// Right scroller
Layer rightScroller = new Layer();
rightScroller.setId("rightScrollerContainer");
rightScroller.setStyleClass("themeScroller rightThemeScroller");
rightScroller.add(getScrollImage(bundle.getVirtualPathWithFileNameString("images/right.png"),
iwrb.getLocalizedString("scroll_right", "Scroll to right"), "rightScroller"));
container.add(rightScroller);
// Resources
try {
PresentationUtil.addJavaScriptSourcesLinesToHeader(iwc, Arrays.asList(
web2.getBundleURIToMootoolsLib(),
web2.getReflectionForMootoolsScriptFilePath(),
jQuery.getBundleURIToJQueryLib(),
web2.getBundleUriToContextMenuScript(false),
CoreConstants.DWR_ENGINE_SCRIPT,
"/dwr/interface/ThemesEngine.js",
"/dwr/interface/LucidEngine.js",
bundle.getVirtualPathWithFileNameString("javascript/ThemesHelper.js"),
bundle.getVirtualPathWithFileNameString("javascript/ThemesManagerHelper.js"),
bundle.getVirtualPathWithFileNameString("javascript/ThemesSliderHelper.js")
));
} catch (RemoteException e) {
e.printStackTrace();
}
PresentationUtil.addStyleSheetToHeader(iwc, bundle.getVirtualPathWithFileNameString("style/content.css"));
if (!StringUtil.isEmpty(initAction)) {
String action = getInitAction();
if (!CoreUtil.isSingleComponentRenderingProcess(iwc)) {
action = new StringBuilder("jQuery(window).load(function() {").append(action).append("});").toString();
}
PresentationUtil.addJavaScriptActionToBody(iwc, action);
}
add(container);
}
private Image getScrollImage(String uri, String name, String id) {
Image image = new Image(uri, name);
image.setId(id);
image.setOnClick(new StringBuffer("scroll('").append(image.getId()).append("');").toString());
return image;
}
public String getMainId() {
return mainId;
}
public void setMainId(String mainId) {
this.mainId = mainId;
}
public String getMainStyleClass() {
return mainStyleClass;
}
public void setMainStyleClass(String mainStyleClass) {
this.mainStyleClass = mainStyleClass;
}
public boolean isHiddenOnLoad() {
return hiddenOnLoad;
}
public void setHiddenOnLoad(boolean hiddenOnLoad) {
this.hiddenOnLoad = hiddenOnLoad;
}
public String getInitAction() {
return initAction;
}
public void setInitAction(String initAction) {
this.initAction = initAction;
}
@Override
public String getBundleIdentifier() {
return ContentConstants.IW_BUNDLE_IDENTIFIER;
}
}