Commit f1577fdc by Tuomas Riihimäki

Primefaces menujuttuja

1 parent 2fe28fb6
Showing with 173 additions and 102 deletions
...@@ -23,6 +23,7 @@ import fi.insomnia.bortal.facade.MenuNavigationFacade; ...@@ -23,6 +23,7 @@ import fi.insomnia.bortal.facade.MenuNavigationFacade;
import fi.insomnia.bortal.facade.MenuitemFacade; import fi.insomnia.bortal.facade.MenuitemFacade;
import fi.insomnia.bortal.model.LanEvent; import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.MenuNavigation; import fi.insomnia.bortal.model.MenuNavigation;
import fi.insomnia.bortal.model.Menuitem;
/** /**
* Session Bean implementation class Menubean * Session Bean implementation class Menubean
...@@ -58,6 +59,23 @@ public class MenuBean implements MenuBeanLocal { ...@@ -58,6 +59,23 @@ public class MenuBean implements MenuBeanLocal {
initializeMenu(); initializeMenu();
} }
// example....
private synchronized void initializeReabyMenu() {
LanEvent ev = eventbean.getCurrentEvent();
MenuNavigation firstlevel = new MenuNavigation(ev, "firstlevel");
MenuNavigation secondlevel = new MenuNavigation(ev, "secondlevel");
firstlevel.getChildren().add(secondlevel);
MenuNavigation third = new MenuNavigation(ev, "third");
secondlevel.getChildren().add(third);
Menuitem page = menuitemfacade.findOrCreate("/index");
third.addPage(page, UserPermission.ANYUSER);
}
private synchronized void initializeMenu() { private synchronized void initializeMenu() {
LanEvent ev = eventbean.getCurrentEvent(); LanEvent ev = eventbean.getCurrentEvent();
......
>>>>>>>>>>>>>>>>>>>> File 1
package fi.insomnia.bortal.model.salespoint; package fi.insomnia.bortal.model.salespoint;
import fi.insomnia.bortal.model.GenericEntity_; import fi.insomnia.bortal.model.GenericEntity_;
...@@ -7,7 +6,7 @@ import javax.annotation.Generated; ...@@ -7,7 +6,7 @@ import javax.annotation.Generated;
import javax.persistence.metamodel.SingularAttribute; import javax.persistence.metamodel.SingularAttribute;
import javax.persistence.metamodel.StaticMetamodel; import javax.persistence.metamodel.StaticMetamodel;
@Generated(value="Dali", date="2012-10-06T14:32:35.370+0300") @Generated(value="Dali", date="2012-10-07T05:09:10.213+0300")
@StaticMetamodel(SalesEntity.class) @StaticMetamodel(SalesEntity.class)
public class SalesEntity_ extends GenericEntity_ { public class SalesEntity_ extends GenericEntity_ {
public static volatile SingularAttribute<SalesEntity, String> certificate; public static volatile SingularAttribute<SalesEntity, String> certificate;
...@@ -17,42 +16,3 @@ public class SalesEntity_ extends GenericEntity_ { ...@@ -17,42 +16,3 @@ public class SalesEntity_ extends GenericEntity_ {
public static volatile SingularAttribute<SalesEntity, Reader> reader; public static volatile SingularAttribute<SalesEntity, Reader> reader;
public static volatile SingularAttribute<SalesEntity, Salespoint> point; public static volatile SingularAttribute<SalesEntity, Salespoint> point;
} }
>>>>>>>>>>>>>>>>>>>> File 2
package fi.insomnia.bortal.model.salespoint;
import fi.insomnia.bortal.model.GenericEntity_;
import fi.insomnia.bortal.model.Reader;
import javax.annotation.Generated;
import javax.persistence.metamodel.SingularAttribute;
import javax.persistence.metamodel.StaticMetamodel;
@Generated(value="Dali", date="2012-10-06T13:36:55.176+0300")
@StaticMetamodel(SalesEntity.class)
public class SalesEntity_ extends GenericEntity_ {
public static volatile SingularAttribute<SalesEntity, String> certificate;
public static volatile SingularAttribute<SalesEntity, String> name;
public static volatile SingularAttribute<SalesEntity, String> secret;
public static volatile SingularAttribute<SalesEntity, SalesEntityType> type;
public static volatile SingularAttribute<SalesEntity, Reader> reader;
public static volatile SingularAttribute<SalesEntity, Salespoint> point;
}
>>>>>>>>>>>>>>>>>>>> File 3
package fi.insomnia.bortal.model.salespoint;
import fi.insomnia.bortal.model.GenericEntity_;
import fi.insomnia.bortal.model.Reader;
import javax.annotation.Generated;
import javax.persistence.metamodel.SingularAttribute;
import javax.persistence.metamodel.StaticMetamodel;
@Generated(value="Dali", date="2012-10-06T21:42:26.959+0300")
@StaticMetamodel(SalesEntity.class)
public class SalesEntity_ extends GenericEntity_ {
public static volatile SingularAttribute<SalesEntity, String> certificate;
public static volatile SingularAttribute<SalesEntity, String> name;
public static volatile SingularAttribute<SalesEntity, String> secret;
public static volatile SingularAttribute<SalesEntity, SalesEntityType> type;
public static volatile SingularAttribute<SalesEntity, Reader> reader;
public static volatile SingularAttribute<SalesEntity, Salespoint> point;
}
<<<<<<<<<<<<<<<<<<<<
>>>>>>>>>>>>>>>>>>>> File 1
package fi.insomnia.bortal.model.salespoint; package fi.insomnia.bortal.model.salespoint;
import fi.insomnia.bortal.model.GenericEntity_; import fi.insomnia.bortal.model.GenericEntity_;
...@@ -8,7 +7,7 @@ import javax.persistence.metamodel.ListAttribute; ...@@ -8,7 +7,7 @@ import javax.persistence.metamodel.ListAttribute;
import javax.persistence.metamodel.SingularAttribute; import javax.persistence.metamodel.SingularAttribute;
import javax.persistence.metamodel.StaticMetamodel; import javax.persistence.metamodel.StaticMetamodel;
@Generated(value="Dali", date="2012-10-06T14:32:35.384+0300") @Generated(value="Dali", date="2012-10-07T05:09:10.222+0300")
@StaticMetamodel(Salespoint.class) @StaticMetamodel(Salespoint.class)
public class Salespoint_ extends GenericEntity_ { public class Salespoint_ extends GenericEntity_ {
public static volatile SingularAttribute<Salespoint, LanEvent> event; public static volatile SingularAttribute<Salespoint, LanEvent> event;
...@@ -16,40 +15,3 @@ public class Salespoint_ extends GenericEntity_ { ...@@ -16,40 +15,3 @@ public class Salespoint_ extends GenericEntity_ {
public static volatile SingularAttribute<Salespoint, String> description; public static volatile SingularAttribute<Salespoint, String> description;
public static volatile ListAttribute<Salespoint, SalesEntity> entities; public static volatile ListAttribute<Salespoint, SalesEntity> entities;
} }
>>>>>>>>>>>>>>>>>>>> File 2
package fi.insomnia.bortal.model.salespoint;
import fi.insomnia.bortal.model.GenericEntity_;
import fi.insomnia.bortal.model.LanEvent;
import javax.annotation.Generated;
import javax.persistence.metamodel.ListAttribute;
import javax.persistence.metamodel.SingularAttribute;
import javax.persistence.metamodel.StaticMetamodel;
@Generated(value="Dali", date="2012-10-06T13:36:55.186+0300")
@StaticMetamodel(Salespoint.class)
public class Salespoint_ extends GenericEntity_ {
public static volatile SingularAttribute<Salespoint, LanEvent> event;
public static volatile SingularAttribute<Salespoint, String> name;
public static volatile SingularAttribute<Salespoint, String> description;
public static volatile ListAttribute<Salespoint, SalesEntity> entities;
}
>>>>>>>>>>>>>>>>>>>> File 3
package fi.insomnia.bortal.model.salespoint;
import fi.insomnia.bortal.model.GenericEntity_;
import fi.insomnia.bortal.model.LanEvent;
import javax.annotation.Generated;
import javax.persistence.metamodel.ListAttribute;
import javax.persistence.metamodel.SingularAttribute;
import javax.persistence.metamodel.StaticMetamodel;
@Generated(value="Dali", date="2012-10-06T21:42:26.986+0300")
@StaticMetamodel(Salespoint.class)
public class Salespoint_ extends GenericEntity_ {
public static volatile SingularAttribute<Salespoint, LanEvent> event;
public static volatile SingularAttribute<Salespoint, String> name;
public static volatile SingularAttribute<Salespoint, String> description;
public static volatile ListAttribute<Salespoint, SalesEntity> entities;
}
<<<<<<<<<<<<<<<<<<<<
...@@ -138,8 +138,8 @@ ...@@ -138,8 +138,8 @@
<servlet-name>PlaceGroupPdf</servlet-name> <servlet-name>PlaceGroupPdf</servlet-name>
<url-pattern>/PlaceGroupPdf</url-pattern> <url-pattern>/PlaceGroupPdf</url-pattern>
</servlet-mapping> </servlet-mapping>
<context-param> <!-- <context-param>
<param-name>primefaces.THEME</param-name> <param-name>primefaces.THEME</param-name>
<param-value>bortal</param-value> <param-value>bortal</param-value>
</context-param> </context-param> -->
</web-app> </web-app>
\ No newline at end of file
...@@ -64,13 +64,7 @@ ...@@ -64,13 +64,7 @@
<div id="main"> <div id="main">
<div id="main-nav"> <p:menubar model="#{primeMenuView.menuModel}"/>
<ul>
<li jsfc="ui:repeat" var="menuitem" value="#{menuView.getMenu(1)}">
<h:link outcome="#{menuitem.outcome}" value="#{i18n[menuitem.navigation.key]}" styleClass="#{menuitem.selected?'active':''}" />
</li>
</ul>
</div>
<div class="container top"> <div class="container top">
<h:link rendered="#{layoutView.manageContent}" styleClass="editorlink" value="#{i18n['layout.editTop']}" outcome="/pages/manage"> <h:link rendered="#{layoutView.manageContent}" styleClass="editorlink" value="#{i18n['layout.editTop']}" outcome="/pages/manage">
...@@ -91,9 +85,10 @@ ...@@ -91,9 +85,10 @@
</div> </div>
</ui:fragment> </ui:fragment>
<div id="left"> <div id="left">
<ui:insert name="title" /> <ui:insert name="title" />
<p:messages globalOnly="true" severity="info" /> <p:messages severity="info" />
<h:messages />
<ui:repeat var="cont1" value="#{menuView.getPagecontent('top')}"> <ui:repeat var="cont1" value="#{menuView.getPagecontent('top')}">
<h:outputText value="#{cont1.content}" escape="false" /> <h:outputText value="#{cont1.content}" escape="false" />
</ui:repeat> </ui:repeat>
......
...@@ -3,13 +3,11 @@ ...@@ -3,13 +3,11 @@
xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html" xmlns:h="http://java.sun.com/jsf/html"
xmlns:tools="http://java.sun.com/jsf/composite/cditools" xmlns:tools="http://java.sun.com/jsf/composite/cditools"
xmlns:f="http://java.sun.com/jsf/core"> xmlns:f="http://java.sun.com/jsf/core"
<h:head> xmlns:p="http://primefaces.org/ui" >
<title></title>
</h:head>
<h:body> <h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml"> <ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<ui:param name="thispage" value="page.permissionDenied" />
<ui:define name="content"> <ui:define name="content">
<h1>#{i18n['permissiondenied.header']}</h1> <h1>#{i18n['permissiondenied.header']}</h1>
<p> <p>
...@@ -19,4 +17,4 @@ ...@@ -19,4 +17,4 @@
</ui:define> </ui:define>
</ui:composition> </ui:composition>
</h:body> </h:body>
</html> </html>
...@@ -554,7 +554,7 @@ svm.pending.successMessage = Payment pending. You will receive email after payme ...@@ -554,7 +554,7 @@ svm.pending.successMessage = Payment pending. You will receive email after payme
svm.success.errorMessage = Payment could not be verified! svm.success.errorMessage = Payment could not be verified!
svm.success.successMessage = Payment was successfull. You can now your credits in the system. svm.success.successMessage = Payment was successfull. You can now your credits in the system.
template.loggedInAs = Logged in as: template.loggedInAs = Logged in as
topnavi.adminshop = Adminshop topnavi.adminshop = Adminshop
topnavi.billing = Billing topnavi.billing = Billing
...@@ -592,6 +592,7 @@ user.hasImage = Image ...@@ -592,6 +592,7 @@ user.hasImage = Image
user.image = Image user.image = Image
user.imagelist = Saved images user.imagelist = Saved images
user.imagesubmit = Send image user.imagesubmit = Send image
user.insert = Insert
user.insertToken = Insert token user.insertToken = Insert token
user.invalidLoginCredentials = Invalid user credentials user.invalidLoginCredentials = Invalid user credentials
user.invite = Invite user.invite = Invite
......
...@@ -162,7 +162,7 @@ eventorgView.eventname = Tapahtuman nimi ...@@ -162,7 +162,7 @@ eventorgView.eventname = Tapahtuman nimi
eventorganiser.name = Tapahtumaj\u00E4rjest\u00E4j\u00E4 eventorganiser.name = Tapahtumaj\u00E4rjest\u00E4j\u00E4
game.gamepoints = Insomnia Game pisteet: game.gamepoints = Insomnia Game pisteet
global.cancel = Peruuta global.cancel = Peruuta
global.notAuthorizedExecute = Sinulla ei ole riitt\u00E4v\u00E4sti oikeuksia suorittaa t\u00E4t\u00E4 toimenpidett\u00E4! global.notAuthorizedExecute = Sinulla ei ole riitt\u00E4v\u00E4sti oikeuksia suorittaa t\u00E4t\u00E4 toimenpidett\u00E4!
...@@ -541,7 +541,7 @@ svm.pending.successMessage = Maksukuittausta odotetaan. Kuittauksesta l\u00E4het ...@@ -541,7 +541,7 @@ svm.pending.successMessage = Maksukuittausta odotetaan. Kuittauksesta l\u00E4het
svm.success.errorMessage = Verkkomaksua ei voitu verifioida! Virheest\u00E4 on raportoitu eteenp\u00E4in. svm.success.errorMessage = Verkkomaksua ei voitu verifioida! Virheest\u00E4 on raportoitu eteenp\u00E4in.
svm.success.successMessage = Verkkomaksu onnistui. svm.success.successMessage = Verkkomaksu onnistui.
template.loggedInAs = Kirjautunut tunnuksella: template.loggedInAs = Kirjautunut tunnuksella
topnavi.adminshop = Kauppa topnavi.adminshop = Kauppa
topnavi.billing = Laskutus topnavi.billing = Laskutus
......
...@@ -84,13 +84,13 @@ public abstract class GenericCDIView implements Serializable { ...@@ -84,13 +84,13 @@ public abstract class GenericCDIView implements Serializable {
navihandler.saveDestination(viewidbuilder.toString()); navihandler.saveDestination(viewidbuilder.toString());
logger.debug("Permission denied. Saving navi {} for later use", viewidbuilder.toString()); logger.debug("Permission denied. Saving navi {} for later use", viewidbuilder.toString());
// navihandler.navigateTo("/permissionDenied"); // navihandler.navigateTo("/permissionDenied");
fcont.getApplication().getNavigationHandler().handleNavigation(fcont, null, "/permissionDenied"); fcont.getApplication().getNavigationHandler().handleNavigation(fcont, null, "/permissionDenied?faces-redirect=true");
} }
return ret; return ret;
} }
protected void addFaceMessage(String string, Object... params) { protected void addFaceMessage(String string, Object... params) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(I18n.get(string, params))); FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(I18n.get(string, params)));
} }
......
package fi.insomnia.bortal.web.cdiview.menu;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
import org.primefaces.component.menuitem.MenuItem;
import org.primefaces.component.submenu.Submenu;
import org.primefaces.model.DefaultMenuModel;
import org.primefaces.model.MenuModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.MenuBeanLocal;
import fi.insomnia.bortal.model.MenuNavigation;
import fi.insomnia.bortal.utilities.I18n;
import fi.insomnia.bortal.web.cdiview.GenericCDIView;
@Named
@RequestScoped
public class PrimeMenuView extends GenericCDIView {
private static final long serialVersionUID = -5720164797157054213L;
// private String pagename;
// // @Inject
// // private transient LayoutView layoutview;
//
@EJB
private transient MenuBeanLocal menubean;
// private LinkedList<List<JsfMenuitem>> menus;
// private HashSet<MenuNavigation> navis;
// private Map<String, List<PageContent>> contents = new HashMap<String,
// List<PageContent>>();
// @EJB
// private transient SitePageBeanLocal pagebean;
private DefaultMenuModel menuModel;
private static final Logger logger = LoggerFactory.getLogger(PrimeMenuView.class);
public MenuModel getMenuModel()
{
if (menuModel == null)
{
menuModel = new DefaultMenuModel();
// menubean.findNavigation(layoutview.getPagepath());
List<MenuNavigation> tops = menubean.getTopmenus();
for (MenuNavigation m : tops)
{
if (m.getItem() != null && m.getChildren().isEmpty())
{
MenuItem menuitem = mkMenuitem(m);
if (menuitem != null)
{
menuModel.addMenuItem(menuitem);
}
} else {
Submenu subm = addSubmenu(m);
if (subm != null)
{
menuModel.addSubmenu(subm);
}
}
}
}
return menuModel;
}
private Submenu addSubmenu(MenuNavigation m) {
Submenu ret = null;
if (m.isVisible() && (m.getPermission() == null || super.hasPermission(m.getPermission())))
{
ret = new Submenu();
ret.setLabel(I18n.get(m.getKey()));
for (MenuNavigation child : m.getChildren())
{
if (child.getItem() != null && child.getChildren().isEmpty())
{
MenuItem item = mkMenuitem(child);
if (item != null)
{
item.setValue(I18n.get(child.getKey()));
ret.getChildren().add(item);
}
} else {
Submenu subm = addSubmenu(child);
if (subm != null)
{
subm.setLabel(I18n.get(child.getKey()));
ret.getChildren().add(subm);
}
}
}
if (ret.getChildCount() == 0)
{
ret = null;
}
}
return ret;
}
private MenuItem mkMenuitem(MenuNavigation m) {
MenuItem item = null;
if (m.isVisible() && (m.getPermission() == null || super.hasPermission(m.getPermission())))
{
item = new MenuItem();
String outcome;
if (m.getSitepage() != null)
{
outcome = new StringBuilder("/pages/index?id=").append(m.getSitepage().getId()).toString();
} else {
outcome = m.getItem().getUrl();
}
String key = I18n.get(m.getKey());
item.setValue(key);
item.setOutcome(outcome);
}
return item;
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!