001 package edu.nrao.sss.webapp.faces.tag; 002 003 import edu.nrao.sss.webapp.faces.component.FloatingDialogUIComponent; 004 005 import javax.faces.webapp.UIComponentTag; 006 import javax.faces.component.UIComponent; 007 import javax.faces.context.FacesContext; 008 import javax.faces.application.Application; 009 import javax.faces.el.ValueBinding; 010 011 public class FloatingDialogTag extends UIComponentTag 012 { 013 public String getComponentType() { return "edu.nrao.sss.FloatingDialog"; } 014 public String getRendererType() { return null; } 015 016 private String enabled = null, 017 title = null, 018 linkId = null, 019 openOnMouseOver = null, 020 openOnClick = null, 021 closeOnMouseOut = null, 022 closeOnClick = null, 023 styleClass = null, 024 linkStyleClass = null, 025 disabledLinkStyleClass = null, 026 dialogStyleClass = null; 027 028 @SuppressWarnings("unchecked") 029 protected void setProperties(UIComponent component) 030 { 031 super.setProperties(component); 032 033 FacesContext context = FacesContext.getCurrentInstance(); 034 Application app = context.getApplication(); 035 036 if (enabled != null) 037 { 038 if (isValueReference(enabled)) 039 { 040 ValueBinding vb = app.createValueBinding(enabled); 041 042 component.setValueBinding("enabled", vb); 043 } 044 045 else 046 { 047 ((FloatingDialogUIComponent)component).setEnabled(Boolean.valueOf(enabled)); 048 } 049 } 050 051 if (openOnMouseOver != null) 052 { 053 if (isValueReference(openOnMouseOver)) 054 { 055 ValueBinding vb = app.createValueBinding(openOnMouseOver); 056 057 component.setValueBinding("openOnMouseOver", vb); 058 } 059 060 else 061 { 062 ((FloatingDialogUIComponent)component).setOpenOnMouseOver(Boolean.valueOf(openOnMouseOver)); 063 } 064 } 065 066 if (openOnClick != null) 067 { 068 if (isValueReference(openOnClick)) 069 { 070 ValueBinding vb = app.createValueBinding(openOnClick); 071 072 component.setValueBinding("openOnClick", vb); 073 } 074 075 else 076 { 077 ((FloatingDialogUIComponent)component).setOpenOnClick(Boolean.valueOf(openOnClick)); 078 } 079 } 080 081 if (closeOnMouseOut != null) 082 { 083 if (isValueReference(closeOnMouseOut)) 084 { 085 ValueBinding vb = app.createValueBinding(closeOnMouseOut); 086 087 component.setValueBinding("closeOnMouseOut", vb); 088 } 089 090 else 091 { 092 ((FloatingDialogUIComponent)component).setCloseOnMouseOut(Boolean.valueOf(closeOnMouseOut)); 093 } 094 } 095 096 if (closeOnClick != null) 097 { 098 if (isValueReference(closeOnClick)) 099 { 100 ValueBinding vb = app.createValueBinding(closeOnClick); 101 102 component.setValueBinding("closeOnClick", vb); 103 } 104 105 else 106 { 107 ((FloatingDialogUIComponent)component).setCloseOnClick(Boolean.valueOf(closeOnClick)); 108 } 109 } 110 111 if (title != null) 112 { 113 if (isValueReference(title)) 114 { 115 ValueBinding vb = app.createValueBinding(title); 116 117 component.setValueBinding("title", vb); 118 } 119 120 else 121 { 122 ((FloatingDialogUIComponent)component).setTitle(title); 123 } 124 } 125 126 if (linkId != null) 127 { 128 if (isValueReference(linkId)) 129 { 130 ValueBinding vb = app.createValueBinding(linkId); 131 132 component.setValueBinding("linkId", vb); 133 } 134 135 else 136 { 137 ((FloatingDialogUIComponent)component).setLinkId(linkId); 138 } 139 } 140 141 if (styleClass != null) 142 { 143 if (isValueReference(styleClass)) 144 { 145 ValueBinding vb = app.createValueBinding(styleClass); 146 147 component.setValueBinding("styleClass", vb); 148 } 149 150 else 151 { 152 component.getAttributes().put("styleClass", styleClass); 153 } 154 } 155 156 if (linkStyleClass != null) 157 { 158 if (isValueReference(linkStyleClass)) 159 { 160 ValueBinding vb = app.createValueBinding(linkStyleClass); 161 162 component.setValueBinding("linkStyleClass", vb); 163 } 164 165 else 166 { 167 component.getAttributes().put("linkStyleClass", linkStyleClass); 168 } 169 } 170 171 if (disabledLinkStyleClass != null) 172 { 173 if (isValueReference(disabledLinkStyleClass)) 174 { 175 ValueBinding vb = app.createValueBinding(disabledLinkStyleClass); 176 177 component.setValueBinding("disabledLinkStyleClass", vb); 178 } 179 180 else 181 { 182 component.getAttributes().put("disabledLinkStyleClass", disabledLinkStyleClass); 183 } 184 } 185 186 if (dialogStyleClass != null) 187 { 188 if (isValueReference(dialogStyleClass)) 189 { 190 ValueBinding vb = app.createValueBinding(dialogStyleClass); 191 192 component.setValueBinding("dialogStyleClass", vb); 193 } 194 195 else 196 { 197 component.getAttributes().put("dialogStyleClass", dialogStyleClass); 198 } 199 } 200 } 201 202 public void release() 203 { 204 super.release(); 205 this.title = null; 206 this.linkId = null; 207 this.openOnMouseOver = null; 208 this.openOnClick = null; 209 this.closeOnMouseOut = null; 210 this.closeOnClick = null; 211 this.styleClass = null; 212 this.linkStyleClass = null; 213 this.disabledLinkStyleClass = null; 214 this.dialogStyleClass = null; 215 } 216 217 public void setStyleClass(String sc) 218 { 219 this.styleClass = sc; 220 } 221 222 public void setLinkStyleClass(String sc) 223 { 224 this.linkStyleClass = sc; 225 } 226 227 public void setDisabledLinkStyleClass(String sc) 228 { 229 this.disabledLinkStyleClass = sc; 230 } 231 232 public void setDialogStyleClass(String sc) 233 { 234 this.dialogStyleClass = sc; 235 } 236 237 public void setEnabled(String e) 238 { 239 this.enabled = e; 240 } 241 242 public void setTitle(String t) 243 { 244 this.title = t; 245 } 246 247 public void setLinkId(String id) 248 { 249 this.linkId = id; 250 } 251 252 public void setOpenOnMouseOver(String s) 253 { 254 this.openOnMouseOver = s; 255 } 256 257 public void setOpenOnClick(String s) 258 { 259 this.openOnClick = s; 260 } 261 262 public void setCloseOnMouseOut(String s) 263 { 264 this.closeOnMouseOut = s; 265 } 266 267 public void setCloseOnClick(String s) 268 { 269 this.closeOnClick = s; 270 } 271 }