Hi,
I have loaded version 2.0.1, of the theme but it seems incompatible with version 7.0.1 of PF.
I have this exception:
java.lang.NoSuchMethodError: org.primefaces.manhattan.component.ManhattanMenuRenderer.buildAjaxRequest(Ljavax/faces/context/FacesContext;Lorg/primefaces/component/menu/AbstractMenu;Lorg/primefaces/component/api/AjaxSource;Ljavax/faces/component/UIComponent;Ljava/util/Map;)Ljava/lang/String;
at org.primefaces.manhattan.component.ManhattanMenuRenderer.encodeMenuItem(ManhattanMenuRenderer.java:238)
at org.primefaces.manhattan.component.ManhattanMenuRenderer.encodeElement(ManhattanMenuRenderer.java:76)
at org.primefaces.manhattan.component.ManhattanMenuRenderer.encodeElements(ManhattanMenuRenderer.java:55)
at org.primefaces.manhattan.component.ManhattanMenuRenderer.encodeMarkup(ManhattanMenuRenderer.java:45)
at org.primefaces.component.menu.BaseMenuRenderer.encodeEnd(BaseMenuRenderer.java:109)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:595)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1654)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:152)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:566)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:278)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:90)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:566)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1647)
at com.sun.faces.renderkit.html_basic.CompositeRenderer.encodeChildren(CompositeRenderer.java:54)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:566)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1647)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1650)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1650)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:468)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:170)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:132)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:132)
at org.omnifaces.viewhandler.OmniViewHandler.renderView(OmniViewHandler.java:119)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:132)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:102)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:76)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:199)
at javax.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:708)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:451)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1628)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:339)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:209)
at org.glassfish.tyrus.servlet.TyrusServletFilter.doFilter(TyrusServletFilter.java:305)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:251)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:209)
at teseusN.SecurityCheckFilter.doFilter(SecurityCheckFilter.java:648)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:251)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:209)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:755)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:575)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:159)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:371)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:238)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:520)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:217)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:182)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:156)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:218)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:95)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:260)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:177)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:109)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:88)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:53)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:524)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:89)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:94)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$0(WorkerThreadIOStrategy.java:90)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:114)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:569)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:549)
at java.lang.Thread.run(Thread.java:748)
Could you help me please?
Primefaces 7 compatibility
Forum rules
Please note that response time for technical support is within 3-5 business days.
Please note that response time for technical support is within 3-5 business days.
-
- Posts: 5281
- Joined: 29 Jun 2013, 12:38
Hi,
The new version released. Please try it. Migration Guide; https://www.primefaces.org/manhattan/docs.xhtml
Best Regards,
The new version released. Please try it. Migration Guide; https://www.primefaces.org/manhattan/docs.xhtml
Best Regards,
Github Profile: https://github.com/mertsincan
-
- Posts: 3
- Joined: 04 Dec 2017, 10:16
Hi,
where can I find 3.0.0 release?
In PrimeStore I only see 2.0.2.
Thanks
where can I find 3.0.0 release?
In PrimeStore I only see 2.0.2.
Thanks
-
- Posts: 5281
- Joined: 29 Jun 2013, 12:38
Hi,
Please try again.
Best Regards,
Please try again.
Best Regards,
Github Profile: https://github.com/mertsincan
-
- Posts: 5281
- Joined: 29 Jun 2013, 12:38
Glad to hear, thanks a lot for the update!
Best Regards,
Best Regards,
Github Profile: https://github.com/mertsincan
-
- Posts: 3
- Joined: 31 Aug 2019, 22:33
I have the same problem to sentinel template, Is it possible to migrate??
Thanks!
Thanks!
-
- Posts: 5281
- Joined: 29 Jun 2013, 12:38
Please change old SentinalMenuRenderer.java with new;
Code: Select all
package org.primefaces.sentinel.component.menu;
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.faces.FacesException;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import org.primefaces.component.api.AjaxSource;
import org.primefaces.component.api.UIOutcomeTarget;
import org.primefaces.component.menu.AbstractMenu;
import org.primefaces.component.menu.BaseMenuRenderer;
import org.primefaces.expression.SearchExpressionFacade;
import org.primefaces.model.menu.MenuElement;
import org.primefaces.model.menu.MenuItem;
import org.primefaces.model.menu.Separator;
import org.primefaces.model.menu.Submenu;
import org.primefaces.util.AjaxRequestBuilder;
import org.primefaces.util.ComponentUtils;
import org.primefaces.util.WidgetBuilder;
public class SentinelMenuRenderer extends BaseMenuRenderer {
@Override
protected void encodeMarkup(FacesContext context, AbstractMenu abstractMenu) throws IOException {
SentinelMenu menu = (SentinelMenu) abstractMenu;
ResponseWriter writer = context.getResponseWriter();
String clientId = menu.getClientId(context);
String style = menu.getStyle();
String styleClass = menu.getStyleClass();
styleClass = (styleClass == null) ? "layout-menubar-container" : "layout-menubar-container " + styleClass;
writer.startElement("ul", menu);
writer.writeAttribute("id", clientId, "id");
writer.writeAttribute("class", styleClass, "styleClass");
if(style != null) {
writer.writeAttribute("style", style, "style");
}
if(menu.getElementsCount() > 0) {
encodeElements(context, menu, menu.getElements(), 0);
}
writer.endElement("ul");
}
protected void encodeElements(FacesContext context, AbstractMenu menu, List<MenuElement> elements, int marginLevel) throws IOException {
ResponseWriter writer = context.getResponseWriter();
String menuClientId = menu.getClientId(context);
for(MenuElement element : elements) {
if(element.isRendered()) {
if(element instanceof MenuItem) {
MenuItem menuItem = (MenuItem) element;
String menuItemClientId = (menuItem instanceof UIComponent) ? menuItem.getClientId() : menuClientId + "_" + menuItem.getClientId();
String containerStyle = menuItem.getContainerStyle();
String containerStyleClass = menuItem.getContainerStyleClass();
writer.startElement("li", null);
writer.writeAttribute("id", menuItemClientId, null);
writer.writeAttribute("role", "menuitem", null);
if(containerStyle != null) writer.writeAttribute("style", containerStyle, null);
if(containerStyleClass != null) writer.writeAttribute("class", containerStyleClass, null);
encodeMenuItem(context, menu, menuItem, marginLevel);
writer.endElement("li");
}
else if(element instanceof Submenu) {
Submenu submenu = (Submenu) element;
String submenuClientId = (submenu instanceof UIComponent) ? ((UIComponent) submenu).getClientId() : menuClientId + "_" + submenu.getId();
String style = submenu.getStyle();
String styleClass = submenu.getStyleClass();
writer.startElement("li", null);
writer.writeAttribute("id", submenuClientId, null);
writer.writeAttribute("role", "menuitem", null);
if(style != null) writer.writeAttribute("style", style, null);
if(styleClass != null) writer.writeAttribute("class", styleClass, null);
encodeSubmenu(context, menu, submenu, marginLevel);
writer.endElement("li");
}
else if(element instanceof Separator) {
encodeSeparator(context, (Separator) element);
}
}
}
}
protected void encodeMenuItem(FacesContext context, AbstractMenu menu, MenuItem menuitem, int marginLevel) throws IOException {
ResponseWriter writer = context.getResponseWriter();
String title = menuitem.getTitle();
boolean disabled = menuitem.isDisabled();
String style = menuitem.getStyle();
String widgetVar = ((SentinelMenu)menu).resolveWidgetVar();
writer.startElement("a", null);
if(title != null) writer.writeAttribute("title", title, null);
if(style != null) writer.writeAttribute("style", style, null);
if(marginLevel > 0) writer.writeAttribute("class", "marginLevel-" + marginLevel, null);
if(disabled) {
writer.writeAttribute("href", "#", null);
writer.writeAttribute("onclick", "return false;", null);
}
else {
String onclick = menuitem.getOnclick();
if(marginLevel == 0) {
onclick = (onclick == null) ? "PF('"+ widgetVar +"').toggleSubMenu(this)" : "PF('"+ widgetVar +"').toggleSubMenu(this);" + onclick;
}
//GET
if(menuitem.getUrl() != null || menuitem.getOutcome() != null) {
String targetURL = getTargetURL(context, (UIOutcomeTarget) menuitem);
writer.writeAttribute("href", targetURL, null);
if(menuitem.getTarget() != null) {
writer.writeAttribute("target", menuitem.getTarget(), null);
}
}
//POST
else {
writer.writeAttribute("href", "#", null);
UIComponent form = ComponentUtils.findParentForm(context, menu);
if(form == null) {
throw new FacesException("MenuItem must be inside a form element");
}
String command;
if(menuitem.isDynamic()) {
String menuClientId = menu.getClientId(context);
Map<String,List<String>> params = menuitem.getParams();
if(params == null) {
params = new LinkedHashMap<String, List<String>>();
}
List<String> idParams = new ArrayList<String>();
idParams.add(menuitem.getId());
params.put(menuClientId + "_menuid", idParams);
command = menuitem.isAjax() ? createAjaxRequest(context, menu, (AjaxSource) menuitem, form, params) : buildNonAjaxRequest(context, menu, form, menuClientId, params, true);
}
else {
command = menuitem.isAjax() ? createAjaxRequest(context, (AjaxSource) menuitem, form) : buildNonAjaxRequest(context, ((UIComponent) menuitem), form, ((UIComponent) menuitem).getClientId(context), true);
}
onclick = (onclick == null) ? command : onclick + ";" + command;
}
if(onclick != null) {
writer.writeAttribute("onclick", onclick, null);
}
}
encodeMenuItemContent(context, menu, menuitem);
writer.endElement("a");
}
@Override
protected void encodeMenuItemContent(FacesContext context, AbstractMenu menu, MenuItem menuitem) throws IOException {
ResponseWriter writer = context.getResponseWriter();
String icon = menuitem.getIcon();
Object value = menuitem.getValue();
if(icon != null) {
writer.startElement("i", null);
writer.writeAttribute("class", icon + " yellow i", null);
writer.endElement("i");
}
if(value != null) {
writer.writeText(" " + value, "value");
}
}
protected void encodeSubmenu(FacesContext context, AbstractMenu menu, Submenu submenu, int marginLevel) throws IOException{
ResponseWriter writer = context.getResponseWriter();
String icon = submenu.getIcon();
String label = submenu.getLabel();
String widgetVar = ((SentinelMenu)menu).resolveWidgetVar();
//title
writer.startElement("a", null);
writer.writeAttribute("href", "#", null);
writer.writeAttribute("onclick", "PF('"+ widgetVar +"').toggleSubMenu(this);return false;", null);
if(marginLevel > 0) {
writer.writeAttribute("class", "marginLevel-" + marginLevel, null);
}
if(icon != null) {
writer.startElement("i", null);
writer.writeAttribute("class", icon + " yellow i", null);
writer.endElement("i");
}
if(label != null) {
writer.writeText(" " + label, null);
}
writer.startElement("i", null);
writer.writeAttribute("class", "icon-angle-down Fright", null);
writer.endElement("i");
writer.endElement("a");
//submenus and menuitems
if(submenu.getElementsCount() > 0) {
writer.startElement("ul", null);
writer.writeAttribute("class", "layout-menubar-submenu-container", null);
writer.writeAttribute("role", "menu", null);
encodeElements(context, menu, submenu.getElements(), ++marginLevel);
writer.endElement("ul");
}
}
@Override
protected void encodeScript(FacesContext context, AbstractMenu abstractMenu) throws IOException {
SentinelMenu menu = (SentinelMenu) abstractMenu;
String clientId = menu.getClientId(context);
WidgetBuilder wb = getWidgetBuilder(context);
wb.initWithDomReady("Sentinel", menu.resolveWidgetVar(), clientId).finish();
}
protected String createAjaxRequest(FacesContext context, AjaxSource source, UIComponent form) {
UIComponent component = (UIComponent) source;
String clientId = component.getClientId(context);
AjaxRequestBuilder builder = getAjaxRequestBuilder();
builder.init()
.source(clientId)
.form(SearchExpressionFacade.resolveClientId(context, component, source.getForm()))
.process(component, source.getProcess())
.update(component, source.getUpdate())
.async(source.isAsync())
.global(source.isGlobal())
.delay(source.getDelay())
.timeout(source.getTimeout())
.partialSubmit(source.isPartialSubmit(), source.isPartialSubmitSet(), source.getPartialSubmitFilter())
.resetValues(source.isResetValues(), source.isResetValuesSet())
.ignoreAutoUpdate(source.isIgnoreAutoUpdate())
.onstart(source.getOnstart())
.onerror(source.getOnerror())
.onsuccess(source.getOnsuccess())
.oncomplete(source.getOncomplete())
.params(component);
if (form != null) {
builder.form(form.getClientId(context));
}
builder.preventDefault();
return builder.build();
}
protected String createAjaxRequest(FacesContext context, AbstractMenu menu, AjaxSource source, UIComponent form,
Map<String, List<String>> params) {
String clientId = menu.getClientId(context);
AjaxRequestBuilder builder = getAjaxRequestBuilder();
builder.init()
.source(clientId)
.process(menu, source.getProcess())
.update(menu, source.getUpdate())
.async(source.isAsync())
.global(source.isGlobal())
.delay(source.getDelay())
.timeout(source.getTimeout())
.partialSubmit(source.isPartialSubmit(), source.isPartialSubmitSet(), source.getPartialSubmitFilter())
.resetValues(source.isResetValues(), source.isResetValuesSet())
.ignoreAutoUpdate(source.isIgnoreAutoUpdate())
.onstart(source.getOnstart())
.onerror(source.getOnerror())
.onsuccess(source.getOnsuccess())
.oncomplete(source.getOncomplete())
.params(params);
if (form != null) {
builder.form(form.getClientId(context));
}
builder.preventDefault();
return builder.build();
}
protected AjaxRequestBuilder getAjaxRequestBuilder() {
Class rootContext;
Object requestContextInstance;
AjaxRequestBuilder builder;
try {
rootContext = Class.forName("org.primefaces.context.PrimeRequestContext");
} catch (ClassNotFoundException ex) {
try {
rootContext = Class.forName("org.primefaces.context.RequestContext");
} catch (ClassNotFoundException ex1) {
throw new RuntimeException(ex1);
}
}
try {
Method method = rootContext.getMethod("getCurrentInstance");
requestContextInstance = method.invoke(null);
method = requestContextInstance.getClass().getMethod("getAjaxRequestBuilder");
builder = (AjaxRequestBuilder) method.invoke(requestContextInstance);
} catch (Exception ex) {
throw new RuntimeException(ex);
}
return builder;
}
}
Github Profile: https://github.com/mertsincan
-
- Posts: 3
- Joined: 31 Aug 2019, 22:33
Thanks aragorn for you answer, but How Can I modify the class SentinalMenuRenderer.java? because I work with sentinel-theme-2.1.jar
Thanks for advance
Thanks for advance
-
- Posts: 5281
- Joined: 29 Jun 2013, 12:38
Hi,
You can extend SentinelMenuRenderer.java with your custom MenuRenderer.
Similar examples;
http://jsfcorner.blogspot.com/2014/10/o ... faces.html
https://stackoverflow.com/questions/256 ... stom-class
You can extend SentinelMenuRenderer.java with your custom MenuRenderer.
Similar examples;
http://jsfcorner.blogspot.com/2014/10/o ... faces.html
https://stackoverflow.com/questions/256 ... stom-class
Github Profile: https://github.com/mertsincan
-
- Information
-
Who is online
Users browsing this forum: No registered users and 2 guests