package org.cloudgraph.web.model.navigation;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.cloudgraph.web.model.Action;
import org.cloudgraph.web.model.ModelBean;
import org.cloudgraph.web.model.tree.ActionHandler;
import org.cloudgraph.web.model.tree.TreeNodeAction;
import org.cloudgraph.web.model.tree.TreeSelectionModel;
@ManagedBean(name="NavigationBean")
@SessionScoped
public class NavigationBean extends ModelBean {
private static final long serialVersionUID = 1L;
private static Log log = LogFactory.getLog(NavigationBean.class);
// RichFaces Toolbar cannot be loaded using a overview iterator such as overviewTable, i.e. dynamically without
// using the 'binding' attribute which means we have to create all sub-components
// dynamically as well. Hence declare top-nav items statically. :(
private TreeNodeAction dashboardAction;
private TreeNodeAction overviewAction;
private TreeNodeAction demoAction;
private TreeNodeAction downloadAction;
private TreeNodeAction documentationAction;
private TreeNodeAction newsAction;
private TreeNodeAction emailAction;
private TreeNodeAction blogAction;
private TreeNodeAction forumAction;
private TreeNodeAction contactAction;
private TreeNodeAction administrationAction;
private TreeNodeAction selectedTopAction;
private TreeSelectionModel topSelectionModel;
public NavigationBean()
{
ActionHandler topActionHandler = new ActionHandler() {
@Override
public String handleAction(Action action) {
// TODO Auto-generated method stub
return action.toString();
}
};
topSelectionModel = new TreeSelectionModel() {
@Override
public void clearSelection() {
dashboardAction.setSelected(false);
overviewAction.setSelected(false);
downloadAction.setSelected(false);
documentationAction.setSelected(false);
newsAction.setSelected(false);
emailAction.setSelected(false);
blogAction.setSelected(false);
demoAction.setSelected(false);
forumAction.setSelected(false);
contactAction.setSelected(false);
administrationAction.setSelected(false);
}
@Override
public void setSelection(TreeNodeAction selection) {
clearSelection();
selectedTopAction = selection;
selectedTopAction.setSelected(true);
}
@Override
public TreeNodeAction getSelection() {
return selectedTopAction;
}
};
dashboardAction = new TreeNodeAction(Action.topnav_dashboard,
topActionHandler, topSelectionModel);
//dashboardAction.setSelected(true);
//selectedTopAction = dashboardAction;
overviewAction = new TreeNodeAction(Action.topnav_overview,
topActionHandler, topSelectionModel);
overviewAction.setSelected(true);
selectedTopAction = overviewAction;
demoAction = new TreeNodeAction(Action.topnav_demo,
topActionHandler, topSelectionModel);
downloadAction = new TreeNodeAction(Action.topnav_download,
topActionHandler, topSelectionModel);
documentationAction = new TreeNodeAction(Action.topnav_documentation,
topActionHandler, topSelectionModel);
newsAction = new TreeNodeAction(Action.topnav_news,
topActionHandler, topSelectionModel);
emailAction = new TreeNodeAction(Action.topnav_email,
topActionHandler, topSelectionModel);
blogAction = new TreeNodeAction(Action.topnav_blog,
topActionHandler, topSelectionModel);
forumAction = new TreeNodeAction(Action.topnav_forum,
topActionHandler, topSelectionModel);
contactAction = new TreeNodeAction(Action.topnav_contact,
topActionHandler, topSelectionModel);
administrationAction = new TreeNodeAction(Action.topnav_administration,
topActionHandler, topSelectionModel);
ActionHandler leftActionHandler = new ActionHandler() {
@Override
public String handleAction(Action action) {
return selectedTopAction.getAction().toString();
}
};
// default selection
setDocumentationSelected(new Boolean(true));
}
public void setDashboardSelected(Object selected) {
Boolean b = new Boolean(String.valueOf(selected));
if (b.booleanValue())
this.topSelectionModel.setSelection(this.dashboardAction);
else
this.dashboardAction.setSelected(false);
}
public void setOverviewSelected(Object selected) {
Boolean b = new Boolean(String.valueOf(selected));
if (b.booleanValue())
this.topSelectionModel.setSelection(this.overviewAction);
else
this.overviewAction.setSelected(false);
}
public void setDemoSelected(Object selected) {
Boolean b = new Boolean(String.valueOf(selected));
if (b.booleanValue())
this.topSelectionModel.setSelection(this.demoAction);
else
this.demoAction.setSelected(false);
}
public void setDownloadSelected(Object selected) {
Boolean b = new Boolean(String.valueOf(selected));
if (b.booleanValue())
this.topSelectionModel.setSelection(this.downloadAction);
else
this.downloadAction.setSelected(false);
}
public void setDocumentationSelected(Object selected) {
Boolean b = new Boolean(String.valueOf(selected));
if (b.booleanValue())
this.topSelectionModel.setSelection(this.documentationAction);
else
this.documentationAction.setSelected(false);
}
public void setNewsSelected(Object selected) {
Boolean b = new Boolean(String.valueOf(selected));
if (b.booleanValue())
this.topSelectionModel.setSelection(this.newsAction);
else
this.newsAction.setSelected(false);
}
public void setEmailSelected(Object selected) {
Boolean b = new Boolean(String.valueOf(selected));
if (b.booleanValue())
this.topSelectionModel.setSelection(this.emailAction);
else
this.emailAction.setSelected(false);
}
public void setBlogSelected(Object selected) {
Boolean b = new Boolean(String.valueOf(selected));
if (b.booleanValue())
this.topSelectionModel.setSelection(this.blogAction);
else
this.blogAction.setSelected(false);
}
public void setForumSelected(Object selected) {
Boolean b = new Boolean(String.valueOf(selected));
if (b.booleanValue())
this.topSelectionModel.setSelection(this.forumAction);
else
this.forumAction.setSelected(false);
}
public void setContactSelected(Object selected) {
Boolean b = new Boolean(String.valueOf(selected));
if (b.booleanValue())
this.topSelectionModel.setSelection(this.contactAction);
else
this.contactAction.setSelected(false);
}
public void setAdminitstrationSelected(Object selected) {
Boolean b = new Boolean(String.valueOf(selected));
if (b.booleanValue())
this.topSelectionModel.setSelection(this.administrationAction);
else
this.blogAction.setSelected(false);
}
public TreeNodeAction getDashboardAction() {
return dashboardAction;
}
public void setDashboardAction(TreeNodeAction dashboardAction) {
this.dashboardAction = dashboardAction;
}
public TreeNodeAction getOverviewAction() {
return overviewAction;
}
public void setOverviewAction(TreeNodeAction overviewAction) {
this.overviewAction = overviewAction;
}
public TreeNodeAction getDownloadAction() {
return downloadAction;
}
public void setDownloadAction(TreeNodeAction downloadAction) {
this.downloadAction = downloadAction;
}
public TreeNodeAction getDocumentationAction() {
return documentationAction;
}
public void setDocumentationAction(TreeNodeAction documentationAction) {
this.documentationAction = documentationAction;
}
public TreeNodeAction getNewsAction() {
return newsAction;
}
public void setNewsAction(TreeNodeAction newsAction) {
this.newsAction = newsAction;
}
public TreeNodeAction getEmailAction() {
return emailAction;
}
public void setEmailAction(TreeNodeAction emailAction) {
this.emailAction = emailAction;
}
public TreeNodeAction getBlogAction() {
return blogAction;
}
public void setBlogAction(TreeNodeAction blogAction) {
this.blogAction = blogAction;
}
public TreeNodeAction getForumAction() {
return forumAction;
}
public void setForumAction(TreeNodeAction forumAction) {
this.forumAction = forumAction;
}
public TreeNodeAction getContactAction() {
return contactAction;
}
public void setContactAction(TreeNodeAction contactAction) {
this.contactAction = contactAction;
}
public TreeNodeAction getDemoAction() {
return demoAction;
}
public void setDemoAction(TreeNodeAction demoAction) {
this.demoAction = demoAction;
}
public TreeNodeAction getAdministrationAction() {
return administrationAction;
}
public void setAdministrationAction(TreeNodeAction administrationAction) {
this.administrationAction = administrationAction;
}
public TreeNodeAction getSelectedTopAction() {
return selectedTopAction;
}
public void setSelectedTopAction(TreeNodeAction selectedTopAction) {
this.selectedTopAction = selectedTopAction;
}
}