/* * File : Revision.java * Created : 13-jul-2001 11:33 * By : fbusquets * * JClic - Authoring and playing system for educational activities * * Copyright (C) 2000 - 2005 Francesc Busquets & Departament * d'Educacio de la Generalitat de Catalunya * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details (see the LICENSE file). */ package edu.xtec.jclic.project; import edu.xtec.util.Domable; import edu.xtec.util.Html; import edu.xtec.util.JDomUtility; import java.text.DateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; /** * * @author Francesc Busquets (fbusquets@xtec.cat) * @version 13.09.10 */ public class Revision extends Object implements Domable{ public Date date; public Author[] authors; public String description; public String comments; /** Creates new Revision */ public Revision() { date=new Date(); description=new String(); comments=null; } public Revision(Date setDate, String setDescription){ date=setDate; description=setDescription; //by=null; authors=null; comments=null; } public static final String ELEMENT_NAME="revision"; public static final String DATE="date", /*BY="by",*/ DESCRIPTION="description", COMMENTS="comments"; public org.jdom.Element getJDomElement(){ org.jdom.Element e=new org.jdom.Element(ELEMENT_NAME); e.setAttribute(DESCRIPTION, description); e.setAttribute(DATE, JDomUtility.dateToStringShortUS(date)); if(comments!=null) JDomUtility.addParagraphs(e, COMMENTS, comments); if(authors!=null) for(Author author : authors) e.addContent(author.getJDomElement()); return e; } public static Revision getRevision(org.jdom.Element e) throws Exception{ Revision r=new Revision(); r.setProperties(e, null); return r; } public void setProperties(org.jdom.Element e, Object aux) throws Exception{ JDomUtility.checkName(e, ELEMENT_NAME); description=JDomUtility.getStringAttr(e, DESCRIPTION, description, true); date=JDomUtility.getDateAttrShortUS(e, DATE, date); comments=JDomUtility.getParagraphs(e.getChild(COMMENTS)); ArrayList<Author> al=new ArrayList<Author>(); Iterator itr = e.getChildren(Author.ELEMENT_NAME).iterator(); while (itr.hasNext()) al.add(Author.getAuthor((org.jdom.Element)itr.next())); if(!al.isEmpty()) authors=al.toArray(new Author[al.size()]); } public String toHtmlString(edu.xtec.util.Messages msg){ Html html=new Html(300); html.bold(msg.getShortDateStr(date)); if(description!=null) html.append("<B>: ").appendParagraphs(description).append("</B>"); if(authors!=null) for(Author author : authors) html.br().append(author.toHtmlString(msg)); if(comments!=null && comments.length()>0) html.br().appendParagraphs(comments); return html.toString(); } @Override public String toString(){ DateFormat df=DateFormat.getDateInstance(DateFormat.SHORT); StringBuilder sb=new StringBuilder(); sb.append(df.format(date)).append(" - "); if(description!=null && description.length()>0) sb.append(description); return sb.substring(0); } }