@Override public void resolve(SearchKeywordContext context, UIComponent current, String keyword) { try { Matcher matcher = PATTERN.matcher(keyword); if (matcher.matches()) { WidgetVarVisitCallback visitCallback = new WidgetVarVisitCallback(matcher.group(1)); context.getSearchExpressionContext().getFacesContext().getViewRoot().visitTree( SearchExpressionUtils.createVisitContext( context.getSearchExpressionContext().getFacesContext(), SearchExpressionHint.SKIP_UNRENDERED), visitCallback); context.invokeContextCallback(visitCallback.getComponent()); } else { throw new FacesException("Expression does not match following pattern @widgetVar(var). Expression: \"" + keyword + "\""); } } catch (Exception e) { throw new FacesException("Expression does not match following pattern @widgetVar(var). Expression: \"" + keyword + "\"", e); } } }
@Override public void resolve(SearchKeywordContext expressionContext, UIComponent current, String keyword) { expressionContext.setKeywordResolved(true); }
@Override public void resolve(SearchKeywordContext searchKeywordContext, UIComponent current, String keyword) { UIComponent parent = current.getParent(); if (parent.getChildCount() > 1) { List<UIComponent> children = parent.getChildren(); int index = children.indexOf(current); if (index > 0) { int nextIndex = -1; do { index--; if (!(children.get(index) instanceof UntargetableComponent)) { nextIndex = index; } } while (nextIndex == -1 && index > 0); if (nextIndex != -1) { searchKeywordContext.invokeContextCallback(children.get(nextIndex)); } } } searchKeywordContext.setKeywordResolved(true); }
@Override public void resolve(SearchKeywordContext context, UIComponent current, String keyword) { context.setKeywordResolved(false); for (int i = 0; i < resolvers.size(); i++) { SearchKeywordResolver resolver = resolvers.get(i); if (resolver.isResolverForKeyword(context.getSearchExpressionContext(), keyword)) { resolver.resolve(context, current, keyword); if (context.isKeywordResolved()) { return; } } } }
@Override public void resolve(SearchKeywordContext searchKeywordContext, UIComponent current, String keyword) { FacesContext facesContext = searchKeywordContext.getSearchExpressionContext().getFacesContext(); String id = extractId(keyword); if (isHintSet(searchKeywordContext.getSearchExpressionContext(), SearchExpressionHint.SKIP_VIRTUAL_COMPONENTS)) { // Avoid visit tree because in this case we need real component instances. // This means components inside UIData will not be scanned. findWithId(facesContext, id, current, searchKeywordContext.getCallback()); } else { current.visitTree( VisitContext.createVisitContext(facesContext, null, searchKeywordContext.getSearchExpressionContext().getVisitHints()), new VisitCallback() { @Override public VisitResult visit(VisitContext context, UIComponent target) { if (id.equals(target.getId())) { searchKeywordContext.invokeContextCallback(target); if (isHintSet(searchKeywordContext.getSearchExpressionContext(), SearchExpressionHint.RESOLVE_SINGLE_COMPONENT)) { return VisitResult.COMPLETE; } return VisitResult.ACCEPT; } else { return VisitResult.ACCEPT; } } }); } searchKeywordContext.setKeywordResolved(true); }
@Override public void resolve(SearchKeywordContext expressionContext, UIComponent current, String keyword) { expressionContext.invokeContextCallback(current); }
VisitContext visitContext = VisitContext.createVisitContext(context.getSearchExpressionContext().getFacesContext()); context.invokeContextCallback(new UIMessage() { @Override public String getClientId(FacesContext context) { context.setKeywordResolved(true);
protected void applyKeyword(SearchExpressionContext searchExpressionContext, UIComponent last, String command, String remainingExpression, ContextCallback topCallback) { SearchKeywordContext searchContext = new SearchKeywordContext(searchExpressionContext, topCallback, remainingExpression); searchExpressionContext.getFacesContext().getApplication() .getSearchKeywordResolver().resolve(searchContext, last, command); }
@Override public void resolve(SearchKeywordContext searchKeywordContext, UIComponent current, String keyword) { UIComponent parent = current.getParent(); if (parent.getChildCount() > 1) { List<UIComponent> children = parent.getChildren(); int index = children.indexOf(current); if (index > 0) { int nextIndex = -1; do { index--; if (!(children.get(index) instanceof UntargetableComponent)) { nextIndex = index; } } while (nextIndex == -1 && index > 0); if (nextIndex != -1) { searchKeywordContext.invokeContextCallback(children.get(nextIndex)); } } } searchKeywordContext.setKeywordResolved(true); }
@Override public void resolve(SearchKeywordContext context, UIComponent current, String keyword) { context.setKeywordResolved(false); for (int i = 0; i < resolvers.size(); i++) { SearchKeywordResolver resolver = resolvers.get(i); if (resolver.isResolverForKeyword(context.getSearchExpressionContext(), keyword)) { resolver.resolve(context, current, keyword); if (context.isKeywordResolved()) { return; } } } }
@Override public void resolve(SearchKeywordContext searchKeywordContext, UIComponent current, String keyword) { FacesContext facesContext = searchKeywordContext.getSearchExpressionContext().getFacesContext(); String id = extractId(keyword); if (isHintSet(searchKeywordContext.getSearchExpressionContext(), SearchExpressionHint.SKIP_VIRTUAL_COMPONENTS)) { // Avoid visit tree because in this case we need real component instances. // This means components inside UIData will not be scanned. findWithId(facesContext, id, current, searchKeywordContext.getCallback()); } else { current.visitTree( VisitContext.createVisitContext(facesContext, null, searchKeywordContext.getSearchExpressionContext().getVisitHints()), new VisitCallback() { @Override public VisitResult visit(VisitContext context, UIComponent target) { if (id.equals(target.getId())) { searchKeywordContext.invokeContextCallback(target); if (isHintSet(searchKeywordContext.getSearchExpressionContext(), SearchExpressionHint.RESOLVE_SINGLE_COMPONENT)) { return VisitResult.COMPLETE; } return VisitResult.ACCEPT; } else { return VisitResult.ACCEPT; } } }); } searchKeywordContext.setKeywordResolved(true); }
@Override public void resolve(SearchKeywordContext searchKeywordContext, UIComponent current, String keyword) { searchKeywordContext.invokeContextCallback(current); }
VisitContext visitContext = VisitContext.createVisitContext(context.getSearchExpressionContext().getFacesContext()); context.invokeContextCallback(new UIMessage() { @Override public String getClientId(FacesContext context) { context.setKeywordResolved(true);
protected void invokeKeywordResolvers(SearchExpressionContext searchExpressionContext, UIComponent previous, String keyword, String remainingExpression, ContextCallback callback) { // take the keyword and resolve it using the chain of responsibility pattern. SearchKeywordContext searchContext = new SearchKeywordContext(searchExpressionContext, callback, remainingExpression); searchExpressionContext.getFacesContext().getApplication() .getSearchKeywordResolver().resolve(searchContext, previous, keyword); }
@Override public void resolve(SearchKeywordContext expressionContext, UIComponent current, String keyword) { expressionContext.invokeContextCallback( expressionContext.getSearchExpressionContext().getFacesContext().getViewRoot()); }
@Override public void resolve(SearchKeywordContext searchKeywordContext, UIComponent current, String keyword) { if (current.getParent() != null) { UIComponent parent = current.getParent(); while (parent.getParent() != null) { parent = parent.getParent(); } searchKeywordContext.invokeContextCallback(parent); } else { searchKeywordContext.setKeywordResolved(true); } }
@Override public void resolve(SearchKeywordContext context, UIComponent current, String keyword) { context.setKeywordResolved(false); for (int i = 0; i < resolvers.size(); i++) { SearchKeywordResolver resolver = resolvers.get(i); if (resolver.isResolverForKeyword(context.getSearchExpressionContext(), keyword)) { resolver.resolve(context, current, keyword); if (context.isKeywordResolved()) { return; } } } }
@Override public void resolve(SearchKeywordContext searchKeywordContext, UIComponent current, String keyword) { FacesContext facesContext = searchKeywordContext.getSearchExpressionContext().getFacesContext(); String id = extractId(keyword); if (isHintSet(searchKeywordContext.getSearchExpressionContext(), SearchExpressionHint.SKIP_VIRTUAL_COMPONENTS)) { // Avoid visit tree because in this case we need real component instances. // This means components inside UIData will not be scanned. findWithId(facesContext, id, current, searchKeywordContext.getCallback()); } else { current.visitTree( VisitContext.createVisitContext(facesContext, null, searchKeywordContext.getSearchExpressionContext().getVisitHints()), new VisitCallback() { @Override public VisitResult visit(VisitContext context, UIComponent target) { if (id.equals(target.getId())) { searchKeywordContext.invokeContextCallback(target); if (isHintSet(searchKeywordContext.getSearchExpressionContext(), SearchExpressionHint.RESOLVE_SINGLE_COMPONENT)) { return VisitResult.COMPLETE; } return VisitResult.ACCEPT; } else { return VisitResult.ACCEPT; } } }); } searchKeywordContext.setKeywordResolved(true); }
@Override public void resolve(SearchKeywordContext searchKeywordContext, UIComponent current, String keyword) { searchKeywordContext.invokeContextCallback(current); }
@Override public void resolve(SearchKeywordContext searchKeywordContext, UIComponent current, String keyword) { searchKeywordContext.setKeywordResolved(true); }