| 1 package org.columba.mail.spellcheck; 17 18 import java.io.BufferedReader ; 19 import java.io.BufferedWriter ; 20 import java.io.IOException ; 21 import java.io.StringReader ; 22 import java.io.StringWriter ; 23 24 import org.columba.mail.spellcheck.cswilly.FileSpellChecker; 25 import org.columba.mail.spellcheck.cswilly.SpellException; 26 27 28 public class ASpellInterface { 29 30 private static final java.util.logging.Logger LOG = 31 java.util.logging.Logger.getLogger("org.columba.mail.spellcheck"); 33 private static FileSpellChecker fileSpellChecker = null; 34 private static String aspellExeFilename; 35 36 public static String checkBuffer(String buffer) { 37 String checkedBuffer; 38 FileSpellChecker checker = null; 39 40 try { 41 BufferedReader input = new BufferedReader (new StringReader (buffer)); 42 StringWriter stringWriter = new StringWriter (buffer.length()); 43 BufferedWriter output = new BufferedWriter (stringWriter); 44 45 checker = getFileSpellChecker(); 46 47 boolean checkingNotCanceled = checker.checkFile(input, output); 48 49 input.close(); 50 output.close(); 51 52 if (checkingNotCanceled) { 53 checkedBuffer = stringWriter.toString(); 54 } else { 55 checkedBuffer = null; 56 } 57 } catch (SpellException e) { 58 String msg = "Cannot check selection.\nError (Aspell) is: " + 59 e.getMessage(); 60 LOG.info(msg); 61 checkedBuffer = null; 62 } catch (IOException e) { 63 String msg = "Cannot check selection.\nError (Interface) is: " + 64 e.getMessage(); 65 LOG.info(msg); 66 checkedBuffer = null; 67 } 68 69 return checkedBuffer; 70 } 71 72 private static FileSpellChecker getFileSpellChecker() { 73 String aspellExeFilename = getAspellExeFilename(); 74 75 if (fileSpellChecker == null) { 76 fileSpellChecker = new FileSpellChecker(aspellExeFilename); 77 } else if (!aspellExeFilename.equals( 78 fileSpellChecker.getAspellExeFilename())) { 79 fileSpellChecker.stop(); 80 fileSpellChecker = new FileSpellChecker(aspellExeFilename); 81 } 82 83 return fileSpellChecker; 84 } 85 86 public static String getAspellExeFilename() { 87 if ((aspellExeFilename == null) || aspellExeFilename.equals("")) { 88 aspellExeFilename = "aspell.exe"; 89 } 90 91 return aspellExeFilename; 92 } 93 94 public static void setAspellExeFilename(String exeFilename) { 95 aspellExeFilename = exeFilename; 96 } 97 } 98 | Popular Tags |