From: <dr...@us...> - 2003-07-03 05:20:40
|
Update of /cvsroot/webmacro/wiki/src/org/tcdi/opensource/wiki/builder In directory sc8-pr-cvs1:/tmp/cvs-serv7466a/src/org/tcdi/opensource/wiki/builder Modified Files: DefaultPageBuilder.java WikiPageBuilder.java Log Message: - fixed rendering issues with DiffPage - add begin() and done() notifications to the page builder - add parser/renderer supported for numbered lists - fix rendering bug with: ~~ - fix bugs where one could create a page with all lower-case letters (also cleaned up filesystem of production webserver) - add ability to Preview before Saving a page edit - cleanup "thank you for registering" page a little bit - don't show the "Diff to Previous" link if we're not actually viewing a valid page - attempt to convince WMServlet to log my exception stack traces so I can hunt down the cause of a few NPE's I've seen in the error log on the production server Index: DefaultPageBuilder.java =================================================================== RCS file: /cvsroot/webmacro/wiki/src/org/tcdi/opensource/wiki/builder/DefaultPageBuilder.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** DefaultPageBuilder.java 27 Nov 2002 07:06:32 -0000 1.6 --- DefaultPageBuilder.java 3 Jul 2003 05:20:07 -0000 1.7 *************** *** 50,55 **** --- 50,58 ---- */ public class DefaultPageBuilder implements WikiPageBuilder { + protected static final short LIST_TYPE_NORMAL = 0; + protected static final short LIST_TYPE_NUMBERED = 1; protected WikiTermMatcher _matcher; protected boolean _bold, _underline, _italic, _color, _header, _space, _list; + protected short _listType; protected String _currentHeader = null; protected StringBuffer _text = new StringBuffer (); *************** *** 65,68 **** --- 68,79 ---- } + public void begin() { + // nothing to do here + } + + public void done() { + finishFormatting (); + } + public void setWikiTermMatcher (WikiTermMatcher matcher) { _matcher = matcher; *************** *** 93,100 **** public void li() { ! if (!_list) { newData(); _currentData.setType(WikiDataTypes.START_LIST); _list = true; } newData(); --- 104,114 ---- public void li() { ! if (_list && _listType != LIST_TYPE_NORMAL) ! endList(); ! if (!_list) { newData(); _currentData.setType(WikiDataTypes.START_LIST); _list = true; + _listType = LIST_TYPE_NORMAL; } newData(); *************** *** 102,105 **** --- 116,146 ---- } + public void liNumbered() { + if (_list && _listType != LIST_TYPE_NUMBERED) + endList(); + if (!_list) { + newData(); + _currentData.setType(WikiDataTypes.START_NUMBERED_LIST); + _list = true; + _listType = LIST_TYPE_NUMBERED; + } + newData(); + _currentData.setType(WikiDataTypes.LI); + } + + private void endList() { + newData(); + switch (_listType) { + case LIST_TYPE_NORMAL: + _currentData.setType(WikiDataTypes.END_LIST); + break; + + case LIST_TYPE_NUMBERED: + _currentData.setType(WikiDataTypes.END_NUMBERED_LIST); + break; + } + _list = false; + } + public void underline() { newData (); *************** *** 169,178 **** public void paragraph() { finishFormatting (); ! if (_list) { ! newData(); ! _currentData.setType(WikiDataTypes.END_LIST); ! _list = false; ! ! } newData (); _currentData.setType (WikiDataTypes.PARAGRAPH_BREAK); --- 210,215 ---- public void paragraph() { finishFormatting (); ! if (_list) ! endList(); newData (); _currentData.setType (WikiDataTypes.PARAGRAPH_BREAK); Index: WikiPageBuilder.java =================================================================== RCS file: /cvsroot/webmacro/wiki/src/org/tcdi/opensource/wiki/builder/WikiPageBuilder.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** WikiPageBuilder.java 27 Nov 2002 07:06:32 -0000 1.4 --- WikiPageBuilder.java 3 Jul 2003 05:20:07 -0000 1.5 *************** *** 53,56 **** --- 53,62 ---- public interface WikiPageBuilder extends WikiTermMatcher { + /** called when the page building process first begins */ + public void begin(); + + /** called when the page building process is complete */ + public void done(); + /** * A WikiPageBuilder should use a <code>WikiTermMatcher</code> *************** *** 109,112 **** --- 115,121 ---- /** a bulleted list item */ public void li (); + + /** a numbered bulleted list item */ + public void liNumbered (); /** add a URL */ |