KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > icesoft > applications > faces > auctionMonitor > beans > ReadmeBean


1 /*
2  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3  *
4  * "The contents of this file are subject to the Mozilla Public License
5  * Version 1.1 (the "License"); you may not use this file except in
6  * compliance with the License. You may obtain a copy of the License at
7  * http://www.mozilla.org/MPL/
8  *
9  * Software distributed under the License is distributed on an "AS IS"
10  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
11  * License for the specific language governing rights and limitations under
12  * the License.
13  *
14  * The Original Code is ICEfaces 1.5 open source software code, released
15  * November 5, 2006. The Initial Developer of the Original Code is ICEsoft
16  * Technologies Canada, Corp. Portions created by ICEsoft are Copyright (C)
17  * 2004-2006 ICEsoft Technologies Canada, Corp. All Rights Reserved.
18  *
19  * Contributor(s): _____________________.
20  *
21  * Alternatively, the contents of this file may be used under the terms of
22  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"
23  * License), in which case the provisions of the LGPL License are
24  * applicable instead of those above. If you wish to allow use of your
25  * version of this file only under the terms of the LGPL License and not to
26  * allow others to use your version of this file under the MPL, indicate
27  * your decision by deleting the provisions above and replace them with
28  * the notice and other provisions required by the LGPL License. If you do
29  * not delete the provisions above, a recipient may use your version of
30  * this file under either the MPL or the LGPL License."
31  *
32  */

33
34 package com.icesoft.applications.faces.auctionMonitor.beans;
35
36 import org.apache.commons.logging.Log;
37 import org.apache.commons.logging.LogFactory;
38
39 import java.io.IOException JavaDoc;
40 import java.io.InputStreamReader JavaDoc;
41 import java.io.Reader JavaDoc;
42 import java.io.StringWriter JavaDoc;
43
44 /**
45  * Class used to handle all readme interaction (including reading the html file,
46  * on page button management, etc.) The readme.html file contains the demo notes
47  * for auction monitor
48  */

49 public class ReadmeBean {
50     private static Log log = LogFactory.getLog(ReadmeBean.class);
51     private String JavaDoc readmeText = "";
52     private boolean expanded = false;
53     private String JavaDoc buttonLabel = README;
54     private static final String JavaDoc SUCCESS = "success";
55     private static final String JavaDoc README = "./images/view-notes-button.gif";
56     private static final String JavaDoc CLOSEME = "./images/hide-notes-button.gif";
57
58     public ReadmeBean() {
59         loadDefaultReadmeFile();
60     }
61
62     public ReadmeBean(String JavaDoc readmeText) {
63         this.readmeText = readmeText;
64     }
65
66     public String JavaDoc getReadmeText() {
67         return readmeText;
68     }
69
70     public String JavaDoc getButtonLabel() {
71         return buttonLabel;
72     }
73
74     public boolean isExpanded() {
75         return expanded;
76     }
77
78     public void setExpanded(boolean expanded) {
79         this.expanded = expanded;
80     }
81
82     public String JavaDoc pressExpandButton() {
83         expanded = !expanded;
84         if (expanded) {
85             this.buttonLabel = CLOSEME;
86         } else {
87             this.buttonLabel = README;
88         }
89         return SUCCESS;
90     }
91
92     /**
93      * Method to load a default readme file (at readme.html) The file will be
94      * read in and converted to a displayable string
95      *
96      * @return boolean true on successful read
97      */

98     private boolean loadDefaultReadmeFile() {
99         try {
100             Reader JavaDoc readmeReader =
101                     new InputStreamReader JavaDoc(this.getClass().getClassLoader()
102                             .getResourceAsStream(
103                             "com/icesoft/applications/faces/auctionMonitor/readme.html"));
104             StringWriter JavaDoc readmeWriter = new StringWriter JavaDoc();
105
106             char[] buf = new char[2000];
107             int len;
108             try {
109                 while ((len = readmeReader.read(buf)) > -1) {
110                     readmeWriter.write(buf, 0, len);
111                 }
112             } catch (IOException JavaDoc e) {
113                 if (log.isErrorEnabled()) {
114                     log.error(
115                             "Something went wrong while parsing the readme file, likely because of " +
116                             e);
117                 }
118             }
119             // clean up the stream reader
120
readmeReader.close();
121
122             this.readmeText = readmeWriter.toString();
123
124             // clean up the writer
125
readmeWriter.close();
126
127             return true;
128
129         } catch (Exception JavaDoc e) {
130             if (log.isWarnEnabled()) {
131                 log.warn(
132                         "General error while attempting to load the readme file, cause may be " +
133                         e);
134             }
135         }
136
137         return false;
138     }
139 }
140
Popular Tags