Frames | No Frames |
1: /* ======================================================================== 2: * JCommon : a free general purpose class library for the Java(tm) platform 3: * ======================================================================== 4: * 5: * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors. 6: * 7: * Project Info: http://www.jfree.org/jcommon/index.html 8: * 9: * This library is free software; you can redistribute it and/or modify it 10: * under the terms of the GNU Lesser General Public License as published by 11: * the Free Software Foundation; either version 2.1 of the License, or 12: * (at your option) any later version. 13: * 14: * This library is distributed in the hope that it will be useful, but 15: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 16: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 17: * License for more details. 18: * 19: * You should have received a copy of the GNU Lesser General Public 20: * License along with this library; if not, write to the Free Software 21: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 22: * USA. 23: * 24: * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 25: * in the United States and other countries.] 26: * 27: * ---------------- 28: * ProjectInfo.java 29: * ---------------- 30: * (C) Copyright 2001-2004, by Object Refinery Limited. 31: * 32: * Original Author: David Gilbert (for Object Refinery Limited); 33: * Contributor(s): -; 34: * 35: * $Id: ProjectInfo.java,v 1.5 2005/11/16 15:58:41 taqua Exp $ 36: * 37: * Changes (since 27-Jun-2002) 38: * --------------------------- 39: * 27-Jun-2002 : Added logo, updated source header and Javadocs (DG); 40: * 08-Oct-2002 : Added set methods for most attributes. Fixed errors reported by Checkstyle (DG); 41: * 42: */ 43: 44: package org.jfree.ui.about; 45: 46: import java.awt.Image; 47: import java.util.Iterator; 48: import java.util.List; 49: 50: import org.jfree.base.BootableProjectInfo; 51: import org.jfree.base.Library; 52: 53: /** 54: * A class for recording the basic information about a free or open source software project. 55: * 56: * @author David Gilbert 57: */ 58: public class ProjectInfo extends BootableProjectInfo { 59: 60: /** An optional project logo. */ 61: private Image logo; 62: 63: /** The licence text. */ 64: private String licenceText; 65: 66: /** A list of contributors. */ 67: private List contributors; 68: 69: /** 70: * Constructs an empty project info object. 71: */ 72: public ProjectInfo() { 73: // nothing required 74: } 75: 76: /** 77: * Constructs a project info object. 78: * 79: * @param name the name of the project. 80: * @param version the version. 81: * @param info other info (usually a URL). 82: * @param logo the project logo. 83: * @param copyright a copyright statement. 84: * @param licenceName the name of the licence that applies to the project. 85: * @param licenceText the text of the licence that applies to the project. 86: */ 87: public ProjectInfo(final String name, 88: final String version, 89: final String info, 90: final Image logo, 91: final String copyright, 92: final String licenceName, 93: final String licenceText) { 94: 95: super(name, version, info, copyright, licenceName); 96: this.logo = logo; 97: this.licenceText = licenceText; 98: 99: } 100: 101: /** 102: * Returns the logo. 103: * 104: * @return the project logo. 105: */ 106: public Image getLogo() { 107: return this.logo; 108: } 109: 110: /** 111: * Sets the project logo. 112: * 113: * @param logo the project logo. 114: */ 115: public void setLogo(final Image logo) { 116: this.logo = logo; 117: } 118: 119: /** 120: * Returns the licence text. 121: * 122: * @return the licence text. 123: */ 124: public String getLicenceText() { 125: return this.licenceText; 126: } 127: 128: /** 129: * Sets the project licence text. 130: * 131: * @param licenceText the licence text. 132: */ 133: public void setLicenceText(final String licenceText) { 134: this.licenceText = licenceText; 135: } 136: 137: /** 138: * Returns the list of contributors for the project. 139: * 140: * @return the list of contributors. 141: */ 142: public List getContributors() { 143: return this.contributors; 144: } 145: 146: /** 147: * Sets the list of contributors. 148: * 149: * @param contributors the list of contributors. 150: */ 151: public void setContributors(final List contributors) { 152: this.contributors = contributors; 153: } 154: 155: /** 156: * Returns a string describing the project. 157: * 158: * @return a string describing the project. 159: */ 160: public String toString() { 161: 162: final StringBuffer result = new StringBuffer(); 163: result.append(getName()); 164: result.append(" version "); 165: result.append(getVersion()); 166: result.append(".\n"); 167: result.append(getCopyright()); 168: result.append(".\n"); 169: result.append("\n"); 170: result.append("For terms of use, see the licence below.\n"); 171: result.append("\n"); 172: result.append("FURTHER INFORMATION:"); 173: result.append(getInfo()); 174: result.append("\n"); 175: result.append("CONTRIBUTORS:"); 176: if (this.contributors != null) { 177: final Iterator iterator = this.contributors.iterator(); 178: while (iterator.hasNext()) { 179: final Contributor contributor = (Contributor) iterator.next(); 180: result.append(contributor.getName()); 181: result.append(" ("); 182: result.append(contributor.getEmail()); 183: result.append(")."); 184: } 185: } 186: else { 187: result.append("None"); 188: } 189: 190: result.append("\n"); 191: result.append("OTHER LIBRARIES USED BY "); 192: result.append(getName()); 193: result.append(":"); 194: final Library[] libraries = getLibraries(); 195: if (libraries.length != 0) { 196: for (int i = 0; i < libraries.length; i++) { 197: final Library lib = libraries[i]; 198: result.append(lib.getName()); 199: result.append(" "); 200: result.append(lib.getVersion()); 201: result.append(" ("); 202: result.append(lib.getInfo()); 203: result.append(")."); 204: } 205: } 206: else { 207: result.append("None"); 208: } 209: result.append("\n"); 210: result.append(getName()); 211: result.append(" LICENCE TERMS:"); 212: result.append("\n"); 213: result.append(getLicenceText()); 214: 215: return result.toString(); 216: 217: } 218: 219: }