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    }