1 33 34 package com.icesoft.faces.component.menubar; 35 36 import com.icesoft.faces.component.ext.HtmlCommandLink; 37 38 import javax.faces.component.NamingContainer; 39 import javax.faces.component.UICommand; 40 import javax.faces.component.UIComponent; 41 import javax.faces.context.FacesContext; 42 import javax.faces.event.AbortProcessingException; 43 import javax.faces.event.FacesEvent; 44 import java.util.List ; 45 46 47 50 public abstract class MenuItemBase extends UICommand 51 implements NamingContainer { 52 53 protected static String DEFAULT_CSS_IMAGE_DIR = ""; 54 55 public MenuItemBase() { 56 } 57 58 61 public void processDecodes(FacesContext context) { 62 if (context == null) { 63 throw new NullPointerException ("context"); 64 } 65 if (!isRendered()) { 66 return; 67 } 68 69 decodeRecursive(this, context); 70 try { 71 decode(context); 72 } catch (RuntimeException e) { 73 context.renderResponse(); 74 throw e; 75 } 76 } 77 78 82 private void decodeRecursive(UIComponent component, FacesContext context) { 83 if (component instanceof MenuItems) { 84 List list = (List ) ((MenuItems) component).getValue(); 85 86 for (int j = 0; j < list.size(); j++) { 87 MenuItem item = (MenuItem) list.get(j); 88 item.processDecodes(context); 89 decodeRecursiveItems(item, context); 90 } 91 92 } 93 94 for (int i = 0; i < component.getChildCount(); i++) { 95 UIComponent next = (UIComponent) component.getChildren().get(i); 96 if (next instanceof HtmlCommandLink) { 97 next.processDecodes(context); 98 } 99 decodeRecursive(next, context); 100 } 101 } 102 103 107 private void decodeRecursiveItems(UIComponent component, 108 FacesContext context) { 109 for (int i = 0; i < component.getChildCount(); i++) { 110 UIComponent next = (UIComponent) component.getChildren().get(i); 111 112 next.processDecodes(context); 113 114 decodeRecursiveItems(next, context); 115 } 116 } 117 118 121 public void queueEvent(FacesEvent event) { 122 super.queueEvent(event); 123 } 124 125 128 public void broadcast(FacesEvent event) throws AbortProcessingException { 129 super.broadcast(event); 130 return; 131 132 } 133 134 135 } 136 | Popular Tags |