Clover Coverage Report - KS Common 1.2-M4-SNAPSHOT (Aggregated)
Coverage timestamp: Wed Jul 20 2011 12:23:34 EDT
../../../../../../../../img/srcFileCovDistChart0.png 30% of files have more coverage
39   143   17   3
8   105   0.44   13
13     1.31  
1    
 
  KSNotification       Line # 36 39 0% 17 60 0% 0.0
 
No Tests
 
1    /**
2    * Copyright 2010 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10    * software distributed under the License is distributed on an "AS IS"
11    * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12    * or implied. See the License for the specific language governing
13    * permissions and limitations under the License.
14    */
15   
16    package org.kuali.student.common.ui.client.widgets.notification;
17   
18    import com.google.gwt.dom.client.Element;
19    import com.google.gwt.event.dom.client.ClickEvent;
20    import com.google.gwt.event.dom.client.ClickHandler;
21    import com.google.gwt.event.dom.client.MouseOutEvent;
22    import com.google.gwt.event.dom.client.MouseOutHandler;
23    import com.google.gwt.event.dom.client.MouseOverEvent;
24    import com.google.gwt.event.dom.client.MouseOverHandler;
25    import com.google.gwt.event.logical.shared.CloseEvent;
26    import com.google.gwt.event.logical.shared.CloseHandler;
27    import com.google.gwt.event.logical.shared.HasCloseHandlers;
28    import com.google.gwt.event.shared.HandlerRegistration;
29    import com.google.gwt.user.client.DOM;
30    import com.google.gwt.user.client.Event;
31    import com.google.gwt.user.client.ui.Composite;
32    import com.google.gwt.user.client.ui.HTML;
33    import com.google.gwt.user.client.ui.HTMLPanel;
34    import com.google.gwt.user.client.ui.Widget;
35   
 
36    public class KSNotification extends Composite implements HasCloseHandlers<KSNotification>{
37    private final int duration;
38    public static final int DEFAULT_DURATION = 4000;
39    private final String id = HTMLPanel.createUniqueId();
40    private final String contentId = HTMLPanel.createUniqueId();
41    private final String closeLinkId = HTMLPanel.createUniqueId();
42    private final HTMLPanel panel = new HTMLPanel("<p id='" + contentId + "'></p><a href='javascript:return false;' title='Close' class='ks-notification-close' style='visibility: hidden' id='" + closeLinkId + "'></a>");
43   
 
44  0 toggle public KSNotification(final String message, boolean isHtml, final int duration) {
45  0 this.duration = duration;
46  0 panel.setStyleName("ks-notification-message");
47  0 panel.getElement().setId(id);
48   
49  0 if (isHtml) {
50  0 panel.add(new HTML(message), contentId);
51    } else {
52  0 panel.getElementById(contentId).setInnerText(message);
53    }
54   
55  0 initHandlers();
56  0 super.initWidget(panel);
57    }
58   
 
59  0 toggle public KSNotification(final String message, boolean isHtml, boolean isError, final int duration) {
60  0 this(message, isHtml, duration);
61  0 if (isError){
62  0 panel.setStyleName("ks-notification-error");
63    }
64    }
65   
 
66  0 toggle public KSNotification(final String message, boolean isHtml) {
67  0 this.duration = DEFAULT_DURATION;
68  0 panel.setStyleName("ks-notification-message");
69  0 panel.getElement().setId(id);
70   
71  0 if (isHtml) {
72  0 panel.add(new HTML(message), contentId);
73    } else {
74  0 panel.getElementById(contentId).setInnerText(message);
75    }
76   
77  0 initHandlers();
78  0 super.initWidget(panel);
79    }
80   
 
81  0 toggle public KSNotification(final Widget widget, final int duration) {
82  0 this.duration = duration;
83  0 panel.setStyleName("ks-notification-message");
84  0 panel.getElement().setId(id);
85  0 panel.add(widget, contentId);
86   
87  0 initHandlers();
88  0 super.initWidget(panel);
89    }
90   
 
91  0 toggle private void initHandlers() {
92  0 addDomHandler(new MouseOverHandler() {
 
93  0 toggle @Override
94    public void onMouseOver(MouseOverEvent event) {
95  0 DOM.getElementById(closeLinkId).getStyle().setProperty("visibility", "visible");
96    }
97    }, MouseOverEvent.getType());
98   
99  0 addDomHandler(new MouseOutHandler() {
 
100  0 toggle @Override
101    public void onMouseOut(MouseOutEvent event) {
102  0 DOM.getElementById(closeLinkId).getStyle().setProperty("visibility", "hidden");
103    }
104    }, MouseOutEvent.getType());
105   
106  0 DOM.sinkEvents(panel.getElementById(closeLinkId), Event.ONCLICK);
107  0 addDomHandler(new ClickHandler() {
 
108  0 toggle @Override
109    public void onClick(ClickEvent event) {
110  0 Element e = Element.as(event.getNativeEvent().getEventTarget());
111  0 if (e.equals(panel.getElementById(closeLinkId))) {
112  0 CloseEvent.fire(KSNotification.this, KSNotification.this);
113    }
114    }
115    }, ClickEvent.getType());
116    }
117   
118    /**
119    * @return the duration
120    */
 
121  0 toggle public int getDuration() {
122  0 return duration;
123    }
124   
 
125  0 toggle public String getId() {
126  0 return id;
127    }
128   
 
129  0 toggle public String getContentId() {
130  0 return contentId;
131    }
132   
 
133  0 toggle public String getCloseLinkId() {
134  0 return closeLinkId;
135    }
136   
137   
 
138  0 toggle @Override
139    public HandlerRegistration addCloseHandler(
140    CloseHandler<KSNotification> handler) {
141  0 return addHandler(handler, CloseEvent.getType());
142    }
143    }