1 package org.jahia.clipbuilder.html.web.html.Impl.ExtractorFilter; 2 3 import java.io.*; 4 5 import javax.swing.text.html.*; 6 7 import org.jahia.clipbuilder.html.util.*; 8 import org.jahia.clipbuilder.html.web.html.HTMLDocument; 9 import org.htmlparser.Parser; 10 import org.htmlparser.filters.*; 11 import org.htmlparser.util.*; 12 13 18 public class FormExtractorFilter extends AbsctractExtractoreFilter { 19 private String key; 20 private final String NAME = "FormExtractorFilter"; 21 private static org.apache.log4j.Logger logger = 22 org.apache.log4j.Logger.getLogger(FormExtractorFilter.class); 23 24 25 28 public FormExtractorFilter() { 29 super("FormExtractorFilter"); 30 } 31 32 33 40 public FormExtractorFilter(String name, String id, int position) { 41 super("FormExtractorFilter"); 42 String key = buildKey(name, id, position); 43 this.addKeyPart(key); 44 } 45 46 47 52 public String getName() { 53 return NAME.toString(); 54 } 55 56 57 64 public String getSelectedPart(HTMLDocument doc, int action) { 65 String selectedPart = ""; 66 String encoded = ""; 67 String html = ""; 68 if (action == ACTION_BUILD_KEY_PART) { 69 html = doc.getTransformedDocumentAsString(); 71 } 72 else if (action == ACTION_RETRIEVE_SELECTED_PART) { 73 html = doc.getUserDocumentAsString(); 75 } 76 77 Parser parser = Parser.createParser(html, encoded); 78 try { 79 switch (getMode()) { 80 case MODE_CSS: 81 82 TagNameFilter styleFilter = new TagNameFilter(HTML.Tag.STYLE.toString()); 84 NodeList styleList = parser.parse(styleFilter); 85 86 for (int i = 0; i < styleList.size(); i++) { 88 selectedPart = selectedPart + styleList.elementAt(i).toHtml(); 89 } 90 91 case MODE_WHITOUT_CSS: 92 94 default: 95 96 logger.debug("build selected part"); 98 parser.reset(); 99 TagNameFilter formFilter = new TagNameFilter(HTML.Tag.FORM.toString()); 101 NodeList formList = parser.parse(formFilter); 102 103 for (int i = 0; i < formList.size(); i++) { 105 selectedPart = selectedPart + formList.elementAt(i).toHtml(); 106 } 107 encoded = selectedPart; 108 109 } 110 } 111 112 catch (ParserException ex) { 113 ex.printStackTrace(); 114 } 115 116 return encoded; 117 } 118 119 120 125 public String getKeyPart() { 126 return key; 127 } 128 129 130 135 public void addKeyPart(String key) { 136 this.key = key; 137 } 138 139 140 148 private String buildKey(String name, String id, int position) { 149 return HashUtilities.buildFormHash(name, id, position); 150 } 151 152 } 153 | Popular Tags |