/*
* $Id: IWBundleStarter.java,v 1.27 2009/05/15 07:23:50 valdas Exp $
* Created on 2.11.2004
*
* Copyright (C) 2004 Idega Software hf. All Rights Reserved.
*
* This software is the proprietary information of Idega hf.
* Use is subject to license terms.
*/
package com.idega.block.article;
import java.rmi.RemoteException;
import com.idega.block.article.business.ArticleActionURIHandler;
import com.idega.block.article.business.ArticleRSSProducer;
import com.idega.block.rss.business.RSSProducerRegistry;
import com.idega.business.IBOLookup;
import com.idega.business.IBOLookupException;
import com.idega.content.view.ContentViewManager;
import com.idega.core.uri.IWActionURIManager;
import com.idega.core.view.DefaultViewNode;
import com.idega.core.view.KeyboardShortcut;
import com.idega.core.view.ViewNode;
import com.idega.idegaweb.IWApplicationContext;
import com.idega.idegaweb.IWBundle;
import com.idega.idegaweb.IWBundleStartable;
import com.idega.slide.business.IWSlideService;
/**
*
* Last modified: $Date: 2009/05/15 07:23:50 $ by $Author: valdas $
*
* @author <a href="mailto:tryggvil@idega.com">Tryggvi Larusson</a>
* @version $Revision: 1.27 $
*/
public class IWBundleStarter implements IWBundleStartable {
public static final String BUNDLE_IDENTIFIER = "com.idega.block.article";
@Override
public void start(IWBundle starterBundle) {
addArticleIWActionURIHandler();
addArticleViews(starterBundle);
addRSSProducers(starterBundle);
}
private void addArticleIWActionURIHandler() {
IWActionURIManager manager = IWActionURIManager.getInstance();
//so it is called before contenthandler
manager.registerHandler(0, new ArticleActionURIHandler());
}
@Override
public void stop(IWBundle starterBundle) {
//No action...
}
public void addArticleViews(IWBundle bundle){
ContentViewManager cViewManager = ContentViewManager.getInstance(bundle.getApplication());
ViewNode contentNode = cViewManager.getContentNode();
DefaultViewNode articleNode = new DefaultViewNode("article",contentNode);
articleNode.setJspUri(bundle.getJSPURI("listarticles.jsp"));
articleNode.setKeyboardShortcut(new KeyboardShortcut("a"));
articleNode.setName("#{localizedStrings['com.idega.block.article']['article']}");
DefaultViewNode createNewArticleNode = new DefaultViewNode("create",articleNode);
String jspUri = bundle.getJSPURI("createarticle.jsp");
createNewArticleNode.setJspUri(jspUri);
createNewArticleNode.setVisibleInMenus(false);
createNewArticleNode.setName("#{localizedStrings['com.idega.block.article']['create_article']}");
DefaultViewNode editNewArticleNode = new DefaultViewNode("edit",articleNode);
editNewArticleNode.setJspUri(bundle.getJSPURI("editarticle.jsp"));
editNewArticleNode.setVisibleInMenus(false);
editNewArticleNode.setName("#{localizedStrings['com.idega.block.article']['edit']}");
DefaultViewNode deleteArticleNode = new DefaultViewNode("delete",articleNode);
deleteArticleNode.setJspUri(bundle.getJSPURI("deletearticle.jsp"));
deleteArticleNode.setVisibleInMenus(false);
deleteArticleNode.setName("#{localizedStrings['com.idega.block.article']['delete']}");
DefaultViewNode listArticlesNode = new DefaultViewNode("list",articleNode);
listArticlesNode.setJspUri(bundle.getJSPURI("listarticles.jsp"));
listArticlesNode.setVisibleInMenus(false);
listArticlesNode.setName("#{localizedStrings['com.idega.block.article']['list_articles']}");
DefaultViewNode previewArticlesNode = new DefaultViewNode("preview",articleNode);
previewArticlesNode.setJspUri(bundle.getJSPURI("previewarticle.jsp"));
previewArticlesNode.setVisibleInMenus(false);
previewArticlesNode.setName("#{localizedStrings['com.idega.block.article']['preview']}");
/*DefaultViewNode searchArticlesNode = new DefaultViewNode("search",articleNode);
searchArticlesNode.setJspUri(bundle.getJSPURI("searcharticle.jsp"));
searchArticlesNode.setName("#{localizedStrings['com.idega.block.article']['search_articles']}");
//searchArticlesNode.setVisibleInMenus(false);
*/
}
private void addRSSProducers(IWBundle starterBundle) {
RSSProducerRegistry registry = RSSProducerRegistry.getInstance();
//ContentRSSProducer, also a IWSlideChangeListener
ArticleRSSProducer articleProducer = new ArticleRSSProducer();
registry.addRSSProducer("article", articleProducer);
IWApplicationContext iwac = starterBundle.getApplication().getIWApplicationContext();
try {
IWSlideService service = IBOLookup.getServiceInstance(iwac,IWSlideService.class);
service.addIWSlideChangeListeners(articleProducer);
} catch (IBOLookupException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}
}