Thread: [Jreepad-CVS] jreepad/src/jreepad JreepadViewer.java, 1.46, 1.47 JreepadNode.java, 1.22, 1.23
Brought to you by:
danstowell
From: PeWu <pe...@us...> - 2007-01-22 23:00:42
|
Update of /cvsroot/jreepad/jreepad/src/jreepad In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24141/src/jreepad Modified Files: JreepadViewer.java JreepadNode.java Log Message: refactoring: extracted HtmlWriter from JreepadNode Index: JreepadViewer.java =================================================================== RCS file: /cvsroot/jreepad/jreepad/src/jreepad/JreepadViewer.java,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** JreepadViewer.java 20 Jan 2007 13:01:19 -0000 1.46 --- JreepadViewer.java 22 Jan 2007 23:00:36 -0000 1.47 *************** *** 48,51 **** --- 48,52 ---- import jreepad.io.AutoDetectReader; + import jreepad.io.HtmlWriter; import jreepad.io.JreepadReader; import jreepad.io.JreepadWriter; *************** *** 1892,1916 **** getPrefs().exportLocation = fileChooser.getSelectedFile(); ! String output; switch(exportFormat) { case FILE_FORMAT_HTML: ! output = theJreepad.getCurrentNode().exportAsHtml(getPrefs().htmlExportArticleType, ! getPrefs().htmlExportUrlsToLinks, ! getPrefs().htmlExportAnchorLinkType); break; case FILE_FORMAT_XML: case FILE_FORMAT_HJT: ! JreepadWriter writer; ! if (exportFormat == FILE_FORMAT_XML) ! writer= new XmlWriter(getPrefs().getEncoding()); ! else ! writer= new TreepadWriter(getPrefs().getEncoding()); ! OutputStream fos = new FileOutputStream(getPrefs().exportLocation); ! writer.write(fos, theJreepad.getCurrentNode()); ! fos.close(); ! setCursor(Cursor.getDefaultCursor()); ! return; ! case FILE_FORMAT_TEXT: output = theJreepad.getCurrentNode().getContent(); --- 1893,1912 ---- getPrefs().exportLocation = fileChooser.getSelectedFile(); ! String output = null; ! JreepadWriter writer = null; switch(exportFormat) { case FILE_FORMAT_HTML: ! writer = new HtmlWriter(getPrefs().getEncoding(), ! getPrefs().htmlExportArticleType, ! getPrefs().htmlExportUrlsToLinks, ! getPrefs().htmlExportAnchorLinkType); break; case FILE_FORMAT_XML: + writer= new XmlWriter(getPrefs().getEncoding()); + break; case FILE_FORMAT_HJT: ! writer= new TreepadWriter(getPrefs().getEncoding()); ! break; case FILE_FORMAT_TEXT: output = theJreepad.getCurrentNode().getContent(); *************** *** 1931,1942 **** } ! FileOutputStream fO = new FileOutputStream(getPrefs().exportLocation); ! // DataOutputStream dO = new DataOutputStream(fO); ! OutputStreamWriter osw = new OutputStreamWriter(fO, getPrefs().getEncoding()); ! // dO.writeBytes(output); ! osw.write(output); ! osw.close(); ! // dO.close(); ! fO.close(); setCursor(Cursor.getDefaultCursor()); } --- 1927,1942 ---- } ! OutputStream fos = new FileOutputStream(getPrefs().exportLocation); ! if (writer != null) ! { ! writer.write(fos, theJreepad.getCurrentNode()); ! fos.close(); ! } ! else // assume (output != null) ! { ! OutputStreamWriter osw = new OutputStreamWriter(fos, getPrefs().getEncoding()); ! osw.write(output); ! osw.close(); ! } setCursor(Cursor.getDefaultCursor()); } *************** *** 1953,1959 **** setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); ! String output = theJreepad.getCurrentNode().exportAsHtml(getPrefs().htmlExportArticleType, ! getPrefs().htmlExportUrlsToLinks, ! getPrefs().htmlExportAnchorLinkType, true); toBrowserForPrintAction(output); --- 1953,1963 ---- setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); ! HtmlWriter writer = new HtmlWriter( ! getPrefs().getEncoding(), ! getPrefs().htmlExportArticleType, ! getPrefs().htmlExportUrlsToLinks, ! getPrefs().htmlExportAnchorLinkType, ! true); ! String output = writer.write(theJreepad.getCurrentNode()); toBrowserForPrintAction(output); Index: JreepadNode.java =================================================================== RCS file: /cvsroot/jreepad/jreepad/src/jreepad/JreepadNode.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** JreepadNode.java 20 Jan 2007 13:01:19 -0000 1.22 --- JreepadNode.java 22 Jan 2007 23:00:37 -0000 1.23 *************** *** 102,151 **** public static final int EXPORT_HTML_ANCHORS_PATH=0; public static final int EXPORT_HTML_ANCHORS_WIKI=1; - public String exportAsHtml(int exportMode, boolean urlsToLinks, int anchorType) - { - return exportAsHtml(exportMode, urlsToLinks, anchorType, false); - } - public String exportAsHtml(int exportMode, boolean urlsToLinks, int anchorType, boolean causeToPrint) - { - StringBuffer ret = new StringBuffer(); - ret.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\">\n<head>\n<title>"); - ret.append(htmlSpecialChars(getTitle())); - ret.append("</title>\n<style type=\"text/css\">\n" - + "dl {}\ndl dt { font-weight: bold; margin-top: 10px; font-size: 24pt; }\ndl dd {margin-left: 20px; padding-left: 0px;}\ndl dd dl dt {background: black; color: white; font-size: 12pt; }\ndl dd dl dd dl dt {background: white; color: black; }" - + "\n</style>\n</head>\n\n<body" - + (causeToPrint? " onload='print();'" : "") - + ">\n<!-- Exported from Jreepad -->\n<dl>"); - ret.append(exportAsHtml(exportMode, urlsToLinks, htmlSpecialChars(getTitle()), anchorType)); - ret.append("\n</dl>\n</body>\n</html>"); - return ret.toString(); - } - public StringBuffer exportAsHtml(int exportMode, boolean urlsToLinks, String anchorName, int anchorType) - { - StringBuffer ret = new StringBuffer(); - ret.append("\n<dt><a name=\""); - if(anchorType==EXPORT_HTML_ANCHORS_WIKI) - ret.append(getTitle()); - else - ret.append(anchorName); - ret.append("\"></a>"); - ret.append(htmlSpecialChars(getTitle())); - ret.append("</dt>\n<dd>"); - - // Write out the node's article content - using normal, preformatted, or HTML modes as appropriate - ret.append(articleToHtml(exportMode, urlsToLinks, anchorName, anchorType)); - - if(getChildCount()>0) - ret.append("\n<dl>"); - for(int i=0; i<children.size(); i++) - { - JreepadNode thisKid = (JreepadNode)getChildAt(i); - ret.append(thisKid.exportAsHtml(exportMode, urlsToLinks, anchorName+"/"+htmlSpecialChars(thisKid.getTitle()), anchorType)); - } - if(getChildCount()>0) - ret.append("\n</dl>"); - ret.append("</dd>"); - - return ret; - } public String exportSingleArticleAsHtml(int exportMode, boolean urlsToLinks, int anchorType, boolean causeToPrint) --- 102,105 ---- *************** *** 159,168 **** + (causeToPrint? " onload='print();'" : "") + ">\n<!-- Exported from Jreepad -->\n<dl>"); ! ret.append(articleToHtml(exportMode, urlsToLinks, htmlSpecialChars(getTitle()), anchorType)); ret.append("\n</dl>\n</body>\n</html>"); return ret.toString(); } ! public String articleToHtml(int exportMode, boolean urlsToLinks, String anchorName, int anchorType) { switch(articleMode) --- 113,122 ---- + (causeToPrint? " onload='print();'" : "") + ">\n<!-- Exported from Jreepad -->\n<dl>"); ! ret.append(articleToHtml(exportMode, urlsToLinks, anchorType)); ret.append("\n</dl>\n</body>\n</html>"); return ret.toString(); } ! public String articleToHtml(int exportMode, boolean urlsToLinks, int anchorType) { switch(articleMode) *************** *** 213,216 **** --- 167,177 ---- } + public String getWikiAnchor() + { + if (getParent() == null) + return htmlSpecialChars(getTitle()); + return getParentNode().getWikiAnchor() + "/" + htmlSpecialChars(getTitle()); + } + private static String htmlSpecialChars(String in) { *************** *** 730,733 **** --- 691,699 ---- } + public JreepadNode getSoftLinkTarget() + { + return softLinkTarget; + } + public String getTitle() { return articleMode==ARTICLEMODE_SOFTLINK ? softLinkTarget.getTitle() : title; } *************** *** 784,788 **** static final int CSVPARSE_MODE_EXPECTINGDELIMITER = 2; static final int CSVPARSE_MODE_EXPECTINGDATA = 3; ! protected String[][] interpretContentAsCsv() { return interpretContentAsCsv(getContent()); --- 750,754 ---- static final int CSVPARSE_MODE_EXPECTINGDELIMITER = 2; static final int CSVPARSE_MODE_EXPECTINGDATA = 3; ! public String[][] interpretContentAsCsv() { return interpretContentAsCsv(getContent()); *************** *** 931,978 **** } - private static String xmlUnescapeChars(String in) - { - char[] c = in.toCharArray(); - StringBuffer ret = new StringBuffer(); - StringBuffer entity = new StringBuffer(); - String ent; - - int i,j; - OuterLoop: - for(i=0; i<c.length; i++) - if(c[i]=='&') - { - entity = new StringBuffer(); - for(j=0; j<8; j++) // Add things into the entity buffer until we hit a semicolon - { - i++; - if(i == c.length) - { - ret.append('&' + entity.toString()); - continue OuterLoop; - } - else if(c[i]!=';') - entity.append(c[i]); - else - break; // Reached end of the entity (or end of the whole string!) - } - ent = entity.toString(); - if(ent.equals("lt")) - ret.append("<"); - else if(ent.equals("gt")) - ret.append(">"); - else if(ent.equals("amp")) - ret.append("&"); - else if(ent.equals("quot")) - ret.append("\""); - else - ret.append('&' + ent + ';'); - } - else - ret.append(c[i]); - - return ret.toString(); - } - private void makeMeASoftLinkTo(JreepadNode targetNode) { --- 897,900 ---- |