001 package edu.nrao.sss.webapp.faces.tag; 002 003 import javax.faces.webapp.UIComponentTag; 004 import javax.faces.component.UIComponent; 005 import javax.faces.context.FacesContext; 006 import javax.faces.application.Application; 007 import javax.faces.el.ValueBinding; 008 import javax.faces.el.ReferenceSyntaxException; 009 010 import edu.nrao.sss.webapp.faces.component.NotesUIComponent; 011 012 public class NotesTag extends UIComponentTag 013 { 014 private String value = null, 015 headerClass, 016 styleClass, 017 collapseLinkClass, 018 enabled = null; 019 020 public String getComponentType() { return "edu.nrao.sss.Notes"; } 021 public String getRendererType() { return null; } 022 023 @SuppressWarnings("unchecked") 024 protected void setProperties(UIComponent c) 025 { 026 super.setProperties(c); 027 028 NotesUIComponent component = (NotesUIComponent)c; 029 030 FacesContext context = FacesContext.getCurrentInstance(); 031 Application app = context.getApplication(); 032 033 if (value != null) 034 { 035 if (isValueReference(value)) 036 { 037 ValueBinding vb = app.createValueBinding(value); 038 039 component.setValueBinding("value", vb); 040 } 041 042 else 043 { 044 throw new ReferenceSyntaxException(value + " is not a valid EL expression"); 045 } 046 } 047 048 if (enabled != null) 049 { 050 if (isValueReference(enabled)) 051 { 052 ValueBinding vb = app.createValueBinding(enabled); 053 054 component.setValueBinding("enabled", vb); 055 } 056 057 else 058 { 059 component.setEnabled(Boolean.valueOf(enabled)); 060 } 061 } 062 063 if (styleClass != null) 064 { 065 if (isValueReference(styleClass)) 066 { 067 ValueBinding vb = app.createValueBinding(styleClass); 068 069 component.setValueBinding("styleClass", vb); 070 } 071 072 else 073 { 074 component.getAttributes().put("styleClass", styleClass); 075 } 076 } 077 078 if (headerClass != null) 079 { 080 if (isValueReference(headerClass)) 081 { 082 ValueBinding vb = app.createValueBinding(headerClass); 083 084 component.setValueBinding("headerClass", vb); 085 } 086 087 else 088 { 089 component.getAttributes().put("headerClass", headerClass); 090 } 091 } 092 093 if (collapseLinkClass != null) 094 { 095 if (isValueReference(collapseLinkClass)) 096 { 097 ValueBinding vb = app.createValueBinding(collapseLinkClass); 098 099 component.setValueBinding("collapseLinkClass", vb); 100 } 101 102 else 103 { 104 component.getAttributes().put("collapseLinkClass", collapseLinkClass); 105 } 106 } 107 } 108 109 public void release() 110 { 111 super.release(); 112 this.enabled = null; 113 this.value = null; 114 this.styleClass = null; 115 this.headerClass = null; 116 this.collapseLinkClass = null; 117 } 118 119 public void setValue(String v) 120 { 121 this.value = v; 122 } 123 124 public void setEnabled(String e) 125 { 126 this.enabled = e; 127 } 128 129 public void setStyleClass(String c) 130 { 131 this.styleClass = c; 132 } 133 134 public void setHeaderClass(String c) 135 { 136 this.headerClass = c; 137 } 138 139 public void setCollapseLinkClass(String c) 140 { 141 this.collapseLinkClass = c; 142 } 143 }