Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.richfaces.renderkit.html;
  
  import java.util.HashMap;
  import java.util.HashSet;
  import java.util.Iterator;
  import java.util.Map;
  import java.util.Set;
 
 import  javax.faces.FacesException;
 import  javax.faces.application.ResourceDependencies;
 import  javax.faces.application.ResourceDependency;
 import  javax.faces.component.UIComponent;
 import  javax.faces.context.ExternalContext;
 import  javax.faces.context.FacesContext;
 
 
 //TODO nick - JSF have concept of library, it should be used instead of '/' in resource names
 @ResourceDependencies({ @ResourceDependency(library = "javax.faces", name = "jsf.js"),
         @ResourceDependency(name = "jquery.js"),
         @ResourceDependency(name = "richfaces.js"),
         @ResourceDependency(name = "richfaces-base-component.js"),
         @ResourceDependency(name = "richfaces-event.js"),
         @ResourceDependency(library = "org.richfaces", name = "popupPanel.js"),
         @ResourceDependency(library = "org.richfaces", name = "popupPanelBorders.js"),
         @ResourceDependency(library = "org.richfaces", name = "popupPanelSizer.js"),
         @ResourceDependency(library = "org.richfaces", name = "popupPanel.ecss") })
 public class PopupPanelBaseRenderer extends RendererBase {
     private static final String CONTROLS_FACET = "controls";
     private static final String HEADER_FACET = "header";
     private static final int SIZE = 10;
     private static final String STATE_OPTION_SUFFIX = "StateOption_";
     private static final String DEFAULT_LEFT = "auto";
     private static final String DEFAULT_TOP = "auto";
     // TODO nick - use enums
     private static final Set<StringALLOWED_ATTACHMENT_OPTIONS = new HashSet<String>();
 
     static {
         .add("body");
         .add("parent");
         .add("form");
     }
 
     public void renderHeaderFacet(FacesContext context, UIComponent componentthrows IOException {
         renderFacet(contextcomponent);
     }
 
     public void renderControlsFacet(FacesContext context, UIComponent componentthrows IOException {
         renderFacet(contextcomponent);
     }
 
     private void renderFacet(FacesContext context, UIComponent componentString facetthrows IOException {
         UIComponent headerFacet = component.getFacet(facet);
         headerFacet.encodeAll(context);
     }
 
     @SuppressWarnings("unchecked")
     protected void doDecode(FacesContext context, UIComponent component) {
         super.doDecode(contextcomponent);
 
         AbstractPopupPanel panel = (AbstractPopupPanelcomponent;
         ExternalContext exCtx = context.getExternalContext();
         Map<StringStringrqMap = exCtx.getRequestParameterMap();
         Object panelOpenState = rqMap.get(panel.getClientId(context) + "OpenedState");
 
         if (panel.isKeepVisualState()) {
             if (null != panelOpenState) {
                 // Bug https://jira.jboss.org/jira/browse/RF-2466
                 // Incorrect old:
                 // panel.setShowWhenRendered(Boolean.parseBoolean((String) clnId));
                 // ShowWhenRendered can be settled separately with modal panel "showWhenRendered" attribute
                 // so we should combine ShowWhenRendered || KeepVisualState && (OpenedState==TRUE) against rewriting
                 boolean show = panel.isShow() || Boolean.parseBoolean((StringpanelOpenState);
                 panel.setShow(show);
 
                 Map<StringObjectvisualOptions = (Map<StringObject>) getHandledVisualOptions(panel);
                 Iterator<Entry<StringString>> it = rqMap.entrySet().iterator();
                 while (it.hasNext()) {
                     Map.Entry<StringStringentry = it.next();
                     int suffixPos = entry.getKey().toString().indexOf();
                     if (-1 != suffixPos) {
                         String key = entry.getKey().toString().substring(suffixPos + .length());
                         visualOptions.put(keyentry.getValue());
                     }
                 }
             }
         }
     }
 
     protected Class getComponentClass() {
         return AbstractPopupPanel.class;
     }
 
     public void checkOptions(FacesContext context, UIComponent component) {
        AbstractPopupPanel panel = (AbstractPopupPanelcomponent;
        if (panel.isAutosized() && panel.isResizeable()) {
            throw new IllegalArgumentException("Autosized modal panel can't be resizeable.");
        }
        String domElementAttachment = panel.getDomElementAttachment();
        if (domElementAttachment != null && domElementAttachment.trim().length() != 0) {
            if (!.contains(domElementAttachment)) {
                throw new IllegalArgumentException("Value '" + domElementAttachment
                    + "' of domElementAttachment attribute is illegal. " + "Allowed values are: " + );
            }
        }
        if (panel.getMinHeight() != -1) {
            if (panel.getMinHeight() < ) {
                throw new FacesException("Attribbute minWidth should be greater then 10px");
            }
        }
        if (panel.getMinWidth() != -1) {
            if (panel.getMinWidth() < ) {
                throw new FacesException("Attribbute minHeight should be greater then 10px");
            }
        }
    }
    public boolean getRendersChildren() {
        return true;
    }
    @SuppressWarnings("unchecked")
    public String buildShowScript(FacesContext context, UIComponent component) {
        AbstractPopupPanel panel = (AbstractPopupPanelcomponent;
        StringBuilder result = new StringBuilder();
        // Bug https://jira.jboss.org/jira/browse/RF-2466
        // We are already processed KeepVisualState and current open state in
        // doDecode, so no need to check panel.isKeepVisualState() here.
        if (panel.isShow()) {
            result.append("RichFaces.ui.PopupPanel.showPopupPanel('" + panel.getClientId(context) + "', {");
            // TODO nick - use ScriptUtils.toScript
            Iterator<Map.Entry<StringObject>> it = ((Map<StringObject>) getHandledVisualOptions(panel)).entrySet()
                .iterator();
            while (it.hasNext()) {
                Map.Entry<StringObjectentry = it.next();
                result.append(entry.getKey() + ": '" + entry.getValue() + "'");
                if (it.hasNext()) {
                    result.append(", ");
                }
            }
            result.append("});");
        }
        if (result.length() > 0) {
            return result.toString();
        }
        return null;
    }
    public String getStyleIfTrimmed(UIComponent panel) {
        if (panel.getAttributes().get("trimOverlayedElements").equals(.)) {
            return "position: relative; z-index : 0";
        }
        return "";
    }
    public String getContainerStyle(UIComponent panel) {
        StringBuilder res = new StringBuilder();
        Map<StringObjectattrs = panel.getAttributes();
        res.append("position: ").append(((Booleanattrs.get("followByScroll")) ? "fixed" : "absolute").append("; ");
        Integer zindex = (Integerattrs.get("zindex");
        if (zindex != null) {
            res.append("z-index:").append(zindex).append("; ");
        }
        String style = (Stringattrs.get("style");
        if (style != null && style.length() > 0) {
            res.append(style);
        }
        return res.toString();
    }
    private Object buildEventFunction(Object eventFunction) {
        if (eventFunction != null && eventFunction.toString().length() > 0) {
            return "new Function(\"" + eventFunction.toString() + "\");";
        }
        return null;
    }
    public Map<StringObjectgetHandledVisualOptions(UIComponent component) {
        AbstractPopupPanel panel = (AbstractPopupPanelcomponent;
        String options = panel.getVisualOptions();
        Map<StringObjectresult;
        result = prepareVisualOptions(optionspanel);
        if (null == result) {
            result = new HashMap<StringObject>();
        }
        return result;
    }
    private Map<StringObjectprepareVisualOptions(Object valueAbstractPopupPanel panel) {
        if (null == value) {
            return new HashMap<StringObject>();
        } else if (value instanceof Map) {
            return (Map<StringObject>) value;
        } else if (value instanceof String) {
            String s = (Stringvalue;
            if (!s.startsWith("{")) {
                s = "{" + s + "}";
            }
            try {
                return new HashMap<StringObject>(new JSONMap(s));
            } catch (JSONException e) {
                throw new FacesException(e);
            }
        } else {
            throw new FacesException("Attribute visualOptions of component ["
                + panel.getClientId(FacesContext.getCurrentInstance())
                + "] must be instance of Map or String, but its type is " + value.getClass().getSimpleName());
        }
    }
    protected String getLeftOrDefault(UIComponent component) {
        String leftProperty = ((AbstractPopupPanelcomponent).getLeft();
        if (leftProperty == null || leftProperty.length() == 0) {
            leftProperty = ;
        }
        return leftProperty;
    }
    protected String getTopOrDefault(UIComponent component) {
        String topProperty = ((AbstractPopupPanelcomponent).getTop();
        if (topProperty == null || topProperty.length() == 0) {
            topProperty = ;
        }
        return topProperty;
    }
New to GrepCode? Check out our FAQ X