home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text.html;
-
- import java.io.IOException;
- import java.io.StringReader;
- import java.net.URL;
- import java.net.URLEncoder;
- import java.util.BitSet;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import javax.swing.ButtonGroup;
- import javax.swing.ButtonModel;
- import javax.swing.ComboBoxModel;
- import javax.swing.DefaultComboBoxModel;
- import javax.swing.DefaultListModel;
- import javax.swing.JToggleButton;
- import javax.swing.event.DocumentEvent;
- import javax.swing.event.HyperlinkEvent;
- import javax.swing.event.UndoableEditEvent;
- import javax.swing.event.DocumentEvent.EventType;
- import javax.swing.text.AbstractDocument;
- import javax.swing.text.AttributeSet;
- import javax.swing.text.BadLocationException;
- import javax.swing.text.DefaultStyledDocument;
- import javax.swing.text.Document;
- import javax.swing.text.Element;
- import javax.swing.text.ElementIterator;
- import javax.swing.text.GapContent;
- import javax.swing.text.MutableAttributeSet;
- import javax.swing.text.PlainDocument;
- import javax.swing.text.SimpleAttributeSet;
- import javax.swing.text.StyleConstants;
- import javax.swing.text.html.HTML.Attribute;
- import javax.swing.text.html.HTML.Tag;
- import javax.swing.undo.CompoundEdit;
- import javax.swing.undo.UndoableEdit;
-
- public class HTMLDocument extends DefaultStyledDocument {
- private boolean frameDocument;
- private boolean preservesUnknownTags;
- private ButtonGroup radioButtonGroup;
- static final String TokenThreshold = "token threshold";
- public static final String AdditionalComments = "AdditionalComments";
- static final String StyleType = "StyleType";
- URL base;
- private HTMLEditorKit.Parser parser;
- private static AttributeSet contentAttributeSet = new SimpleAttributeSet();
- static String MAP_PROPERTY = "__MAP__";
- private static char[] NEWLINE;
-
- public HTMLDocument() {
- this(new GapContent(4096), new StyleSheet());
- }
-
- public HTMLDocument(StyleSheet var1) {
- this(new GapContent(4096), var1);
- }
-
- public HTMLDocument(AbstractDocument.Content var1, StyleSheet var2) {
- super(var1, var2);
- this.frameDocument = false;
- this.preservesUnknownTags = true;
- }
-
- public HTMLEditorKit.ParserCallback getReader(int var1) {
- Object var2 = ((AbstractDocument)this).getProperty("stream");
- if (var2 instanceof URL) {
- this.setBase((URL)var2);
- }
-
- HTMLReader var3 = new HTMLReader(this, var1);
- return var3;
- }
-
- public HTMLEditorKit.ParserCallback getReader(int var1, int var2, int var3, HTML.Tag var4) {
- return this.getReader(var1, var2, var3, var4, true);
- }
-
- HTMLEditorKit.ParserCallback getReader(int var1, int var2, int var3, HTML.Tag var4, boolean var5) {
- Object var6 = ((AbstractDocument)this).getProperty("stream");
- if (var6 instanceof URL) {
- this.setBase((URL)var6);
- }
-
- HTMLReader var7 = new HTMLReader(this, var1, var2, var3, var4, var5, false, true);
- return var7;
- }
-
- public URL getBase() {
- return this.base;
- }
-
- public void setBase(URL var1) {
- this.base = var1;
- this.getStyleSheet().setBase(var1);
- }
-
- protected void insert(int var1, DefaultStyledDocument.ElementSpec[] var2) throws BadLocationException {
- super.insert(var1, var2);
- }
-
- protected void insertUpdate(AbstractDocument.DefaultDocumentEvent var1, AttributeSet var2) {
- if (var2 == null) {
- var2 = contentAttributeSet;
- } else if (var2.isDefined(StyleConstants.ComposedTextAttribute)) {
- ((MutableAttributeSet)var2).addAttributes(contentAttributeSet);
- }
-
- super.insertUpdate(var1, var2);
- }
-
- protected void create(DefaultStyledDocument.ElementSpec[] var1) {
- super.create(var1);
- }
-
- public void setParagraphAttributes(int var1, int var2, AttributeSet var3, boolean var4) {
- try {
- ((AbstractDocument)this).writeLock();
- int var5 = Math.min(var1 + var2, ((AbstractDocument)this).getLength());
- Element var6 = ((DefaultStyledDocument)this).getParagraphElement(var1);
- var1 = var6.getStartOffset();
- var6 = ((DefaultStyledDocument)this).getParagraphElement(var5);
- var2 = Math.max(0, var6.getEndOffset() - var1);
- AbstractDocument.DefaultDocumentEvent var7 = new AbstractDocument.DefaultDocumentEvent(this, var1, var2, EventType.CHANGE);
- AttributeSet var8 = var3.copyAttributes();
- int var9 = Integer.MAX_VALUE;
-
- for(int var10 = var1; var10 <= var5; var10 = var9) {
- Element var11 = ((DefaultStyledDocument)this).getParagraphElement(var10);
- if (var9 == var11.getEndOffset()) {
- ++var9;
- } else {
- var9 = var11.getEndOffset();
- }
-
- MutableAttributeSet var12 = (MutableAttributeSet)var11.getAttributes();
- var7.addEdit(new DefaultStyledDocument.AttributeUndoableEdit(var11, var8, var4));
- if (var4) {
- var12.removeAttributes(var12);
- }
-
- var12.addAttributes(var3);
- }
-
- ((CompoundEdit)var7).end();
- this.fireChangedUpdate(var7);
- this.fireUndoableEditUpdate(new UndoableEditEvent(this, var7));
- } finally {
- ((AbstractDocument)this).writeUnlock();
- }
-
- }
-
- public StyleSheet getStyleSheet() {
- return (StyleSheet)((AbstractDocument)this).getAttributeContext();
- }
-
- public Iterator getIterator(HTML.Tag var1) {
- return var1.isBlock() ? null : new LeafIterator(var1, this);
- }
-
- protected Element createLeafElement(Element var1, AttributeSet var2, int var3, int var4) {
- return new RunElement(this, var1, var2, var3, var4);
- }
-
- protected Element createBranchElement(Element var1, AttributeSet var2) {
- return new BlockElement(this, var1, var2);
- }
-
- protected AbstractDocument.AbstractElement createDefaultRoot() {
- ((AbstractDocument)this).writeLock();
- SimpleAttributeSet var1 = new SimpleAttributeSet();
- var1.addAttribute(StyleConstants.NameAttribute, Tag.HTML);
- BlockElement var2 = new BlockElement(this, (Element)null, var1.copyAttributes());
- var1.removeAttributes(var1);
- var1.addAttribute(StyleConstants.NameAttribute, Tag.BODY);
- BlockElement var3 = new BlockElement(this, var2, var1.copyAttributes());
- var1.removeAttributes(var1);
- var1.addAttribute(StyleConstants.NameAttribute, Tag.P);
- BlockElement var4 = new BlockElement(this, var3, var1.copyAttributes());
- var1.removeAttributes(var1);
- var1.addAttribute(StyleConstants.NameAttribute, Tag.CONTENT);
- RunElement var5 = new RunElement(this, var4, var1, 0, 1);
- Element[] var6 = new Element[]{var5};
- ((AbstractDocument.BranchElement)var4).replace(0, 0, var6);
- var6[0] = var4;
- ((AbstractDocument.BranchElement)var3).replace(0, 0, var6);
- var6[0] = var3;
- ((AbstractDocument.BranchElement)var2).replace(0, 0, var6);
- ((AbstractDocument)this).writeUnlock();
- return var2;
- }
-
- public void setTokenThreshold(int var1) {
- ((AbstractDocument)this).putProperty("token threshold", new Integer(var1));
- }
-
- public int getTokenThreshold() {
- Integer var1 = (Integer)((AbstractDocument)this).getProperty("token threshold");
- return var1 != null ? var1 : Integer.MAX_VALUE;
- }
-
- public void setPreservesUnknownTags(boolean var1) {
- this.preservesUnknownTags = var1;
- }
-
- public boolean getPreservesUnknownTags() {
- return this.preservesUnknownTags;
- }
-
- public void processHTMLFrameHyperlinkEvent(HTMLFrameHyperlinkEvent var1) {
- String var2 = var1.getTarget();
- Element var3 = var1.getSourceElement();
- String var4 = ((HyperlinkEvent)var1).getURL().toString();
- if (var2.equals("_self")) {
- this.updateFrame(var3, var4);
- } else if (var2.equals("_parent")) {
- this.updateFrameSet(var3.getParentElement(), var4);
- } else {
- Element var5 = this.findFrame(var2);
- if (var5 != null) {
- this.updateFrame(var5, var4);
- }
- }
-
- }
-
- private Element findFrame(String var1) {
- ElementIterator var2 = new ElementIterator(this);
- Object var3 = null;
-
- while((var6 = var2.next()) != null) {
- AttributeSet var4 = var6.getAttributes();
- if (this.matchNameAttribute(var4, Tag.FRAME)) {
- String var5 = (String)var4.getAttribute(Attribute.NAME);
- if (var5 != null && var5.equals(var1)) {
- break;
- }
- }
- }
-
- return var6;
- }
-
- boolean matchNameAttribute(AttributeSet var1, HTML.Tag var2) {
- Object var3 = var1.getAttribute(StyleConstants.NameAttribute);
- if (var3 instanceof HTML.Tag) {
- HTML.Tag var4 = (HTML.Tag)var3;
- if (var4 == var2) {
- return true;
- }
- }
-
- return false;
- }
-
- private void updateFrameSet(Element var1, String var2) {
- try {
- int var3 = var1.getStartOffset();
- int var4 = var1.getEndOffset();
- ((AbstractDocument)this).remove(var3, var4 - var3);
- SimpleAttributeSet var5 = new SimpleAttributeSet();
- var5.addAttribute(Attribute.SRC, var2);
- var5.addAttribute(StyleConstants.NameAttribute, Tag.FRAME);
- ((AbstractDocument)this).insertString(var3, " ", var5);
- } catch (BadLocationException var6) {
- }
-
- }
-
- private void updateFrame(Element var1, String var2) {
- try {
- ((AbstractDocument)this).writeLock();
- AbstractDocument.DefaultDocumentEvent var3 = new AbstractDocument.DefaultDocumentEvent(this, var1.getStartOffset(), 1, EventType.CHANGE);
- AttributeSet var4 = var1.getAttributes().copyAttributes();
- MutableAttributeSet var5 = (MutableAttributeSet)var1.getAttributes();
- var3.addEdit(new DefaultStyledDocument.AttributeUndoableEdit(var1, var4, false));
- var5.removeAttribute(Attribute.SRC);
- var5.addAttribute(Attribute.SRC, var2);
- ((CompoundEdit)var3).end();
- this.fireChangedUpdate(var3);
- this.fireUndoableEditUpdate(new UndoableEditEvent(this, var3));
- } finally {
- ((AbstractDocument)this).writeUnlock();
- }
-
- }
-
- boolean isFrameDocument() {
- return this.frameDocument;
- }
-
- void setFrameDocumentState(boolean var1) {
- this.frameDocument = var1;
- }
-
- void addMap(Map var1) {
- String var2 = var1.getName();
- if (var2 != null) {
- Object var3 = ((AbstractDocument)this).getProperty(MAP_PROPERTY);
- if (var3 == null) {
- var3 = new Hashtable(11);
- ((AbstractDocument)this).putProperty(MAP_PROPERTY, var3);
- }
-
- if (var3 instanceof Hashtable) {
- ((Hashtable)var3).put("#" + var2, var1);
- }
- }
-
- }
-
- void removeMap(Map var1) {
- String var2 = var1.getName();
- if (var2 != null) {
- Object var3 = ((AbstractDocument)this).getProperty(MAP_PROPERTY);
- if (var3 instanceof Hashtable) {
- ((Hashtable)var3).remove("#" + var2);
- }
- }
-
- }
-
- Map getMap(String var1) {
- if (var1 != null) {
- Object var2 = ((AbstractDocument)this).getProperty(MAP_PROPERTY);
- if (var2 != null && var2 instanceof Hashtable) {
- return (Map)((Hashtable)var2).get(var1);
- }
- }
-
- return null;
- }
-
- Enumeration getMaps() {
- Object var1 = ((AbstractDocument)this).getProperty(MAP_PROPERTY);
- return var1 instanceof Hashtable ? ((Hashtable)var1).elements() : null;
- }
-
- void setDefaultStyleSheetType(String var1) {
- ((AbstractDocument)this).putProperty("StyleType", var1);
- }
-
- String getDefaultStyleSheetType() {
- String var1 = (String)((AbstractDocument)this).getProperty("StyleType");
- return var1 == null ? "text/css" : var1;
- }
-
- public void setParser(HTMLEditorKit.Parser var1) {
- this.parser = var1;
- ((AbstractDocument)this).putProperty("__PARSER__", (Object)null);
- }
-
- public HTMLEditorKit.Parser getParser() {
- Object var1 = ((AbstractDocument)this).getProperty("__PARSER__");
- return var1 instanceof HTMLEditorKit.Parser ? (HTMLEditorKit.Parser)var1 : this.parser;
- }
-
- public void setInnerHTML(Element var1, String var2) throws BadLocationException, IOException {
- this.verifyParser();
- if (var1 != null && var1.isLeaf()) {
- throw new IllegalArgumentException("Can not set inner HTML of a leaf");
- } else {
- if (var1 != null && var2 != null) {
- int var3 = var1.getElementCount();
- int var4 = var1.getStartOffset();
- this.insertHTML(var1, var1.getStartOffset(), var2, true);
- if (var1.getElementCount() > var3) {
- this.removeElements(var1, var1.getElementCount() - var3, var3);
- }
- }
-
- }
- }
-
- public void setOuterHTML(Element var1, String var2) throws BadLocationException, IOException {
- this.verifyParser();
- if (var1 != null && var1.getParentElement() != null && var2 != null) {
- int var3 = var1.getStartOffset();
- int var4 = var1.getEndOffset();
- int var5 = ((AbstractDocument)this).getLength();
- boolean var6 = !var1.isLeaf();
- if (!var6 && (var4 > var5 || ((AbstractDocument)this).getText(var4 - 1, 1).charAt(0) == NEWLINE[0])) {
- var6 = true;
- }
-
- Element var7 = var1.getParentElement();
- int var8 = var7.getElementCount();
- this.insertHTML(var7, var3, var2, var6);
- int var9 = ((AbstractDocument)this).getLength();
- if (var8 != var7.getElementCount()) {
- int var10 = var7.getElementIndex(var3 + var9 - var5);
- this.removeElements(var7, var10, 1);
- }
- }
-
- }
-
- public void insertAfterStart(Element var1, String var2) throws BadLocationException, IOException {
- this.verifyParser();
- if (var1 != null && var1.isLeaf()) {
- throw new IllegalArgumentException("Can not insert HTML after start of a leaf");
- } else {
- this.insertHTML(var1, var1.getStartOffset(), var2, false);
- }
- }
-
- public void insertBeforeEnd(Element var1, String var2) throws BadLocationException, IOException {
- this.verifyParser();
- if (var1 != null && var1.isLeaf()) {
- throw new IllegalArgumentException("Can not set inner HTML before end of leaf");
- } else {
- int var3 = var1.getEndOffset();
- if (var1.getElement(var1.getElementIndex(var3 - 1)).isLeaf() && ((AbstractDocument)this).getText(var3 - 1, 1).charAt(0) == NEWLINE[0]) {
- --var3;
- }
-
- this.insertHTML(var1, var3, var2, false);
- }
- }
-
- public void insertBeforeStart(Element var1, String var2) throws BadLocationException, IOException {
- this.verifyParser();
- if (var1 != null) {
- Element var3 = var1.getParentElement();
- if (var3 != null) {
- this.insertHTML(var3, var1.getStartOffset(), var2, false);
- }
- }
-
- }
-
- public void insertAfterEnd(Element var1, String var2) throws BadLocationException, IOException {
- this.verifyParser();
- if (var1 != null) {
- Element var3 = var1.getParentElement();
- if (var3 != null) {
- int var4 = var1.getEndOffset();
- if (var1.isLeaf() && ((AbstractDocument)this).getText(var4 - 1, 1).charAt(0) == NEWLINE[0]) {
- --var4;
- }
-
- this.insertHTML(var3, var4, var2, false);
- }
- }
-
- }
-
- public Element getElement(String var1) {
- return var1 == null ? null : this.getElement(((DefaultStyledDocument)this).getDefaultRootElement(), Attribute.ID, var1, true);
- }
-
- public Element getElement(Element var1, Object var2, Object var3) {
- return this.getElement(var1, var2, var3, false);
- }
-
- private Element getElement(Element var1, Object var2, Object var3, boolean var4) {
- AttributeSet var5 = var1.getAttributes();
- if (var5 != null && var5.isDefined(var2) && var3.equals(var5.getAttribute(var2))) {
- return var1;
- } else {
- if (!var1.isLeaf()) {
- int var6 = 0;
-
- for(int var7 = var1.getElementCount(); var6 < var7; ++var6) {
- Element var8 = this.getElement(var1.getElement(var6), var2, var3, var4);
- if (var8 != null) {
- return var8;
- }
- }
- } else if (var4 && var5 != null) {
- Enumeration var9 = var5.getAttributeNames();
- if (var9 != null) {
- while(var9.hasMoreElements()) {
- Object var10 = var9.nextElement();
- if (var10 instanceof HTML.Tag && var5.getAttribute(var10) instanceof AttributeSet) {
- AttributeSet var11 = (AttributeSet)var5.getAttribute(var10);
- if (var11.isDefined(var2) && var3.equals(var11.getAttribute(var2))) {
- return var1;
- }
- }
- }
- }
- }
-
- return null;
- }
- }
-
- private void verifyParser() {
- if (this.getParser() == null) {
- throw new IllegalStateException("No HTMLEditorKit.Parser");
- }
- }
-
- private void insertHTML(Element var1, int var2, String var3, boolean var4) throws BadLocationException, IOException {
- if (var1 != null && var3 != null) {
- HTMLEditorKit.Parser var5 = this.getParser();
- if (var5 != null) {
- int var6 = Math.max(0, var2 - 1);
- Element var7 = ((DefaultStyledDocument)this).getCharacterElement(var6);
- Element var8 = var1;
- int var9 = 0;
- int var10 = 0;
- if (var1.getStartOffset() > var6) {
- while(var8 != null && var8.getStartOffset() > var6) {
- var8 = var8.getParentElement();
- ++var10;
- }
-
- if (var8 == null) {
- throw new BadLocationException("No common parent", var2);
- }
- }
-
- while(var7 != null && var7 != var8) {
- ++var9;
- var7 = var7.getParentElement();
- }
-
- if (var7 != null) {
- HTMLReader var11 = new HTMLReader(this, var2, var9 - 1, var10, (HTML.Tag)null, false, true, var4);
- var5.parse(new StringReader(var3), var11, true);
- var11.flush();
- }
- }
- }
-
- }
-
- private void removeElements(Element var1, int var2, int var3) throws BadLocationException {
- ((AbstractDocument)this).writeLock();
-
- try {
- int var4 = var1.getElement(var2).getStartOffset();
- int var5 = var1.getElement(var2 + var3 - 1).getEndOffset();
- if (var5 > ((AbstractDocument)this).getLength()) {
- this.removeElementsAtEnd(var1, var2, var3, var4, var5);
- } else {
- this.removeElements(var1, var2, var3, var4, var5);
- }
- } finally {
- ((AbstractDocument)this).writeUnlock();
- }
-
- }
-
- private void removeElementsAtEnd(Element var1, int var2, int var3, int var4, int var5) throws BadLocationException {
- Element[] var6 = new Element[0];
- boolean var7 = var1.getElement(var2 - 1).isLeaf();
- if (var7) {
- --var2;
- }
-
- Element[] var8 = new Element[var3];
-
- for(int var9 = 0; var9 < var3; ++var9) {
- var8[var9] = var1.getElement(var9 + var2);
- }
-
- AbstractDocument.DefaultDocumentEvent var10 = new AbstractDocument.DefaultDocumentEvent(this, var4 - 1, var5 - var4 + 1, EventType.REMOVE);
- var10.addEdit(new AbstractDocument.ElementEdit(var1, var2, var8, var6));
- ((AbstractDocument.BranchElement)var1).replace(var2, var8.length, var6);
- UndoableEdit var11;
- if (var7) {
- var11 = ((AbstractDocument)this).getContent().remove(var4 - 1, var5 - var4);
- } else {
- Element var12;
- for(var12 = var1.getElement(var2 - 1); !var12.isLeaf(); var12 = var12.getElement(var12.getElementCount() - 1)) {
- }
-
- Element[] var13 = new Element[1];
- Element[] var14 = new Element[1];
- var13[0] = var12;
- AttributeSet var15 = var12.getAttributes();
- var12 = var12.getParentElement();
- var11 = ((AbstractDocument)this).getContent().remove(var4 - 1, var5 - var4);
- var14[0] = this.createLeafElement(var12, var15, var4 - 1, var4);
- ((AbstractDocument.BranchElement)var12).replace(var12.getElementCount() - 1, 1, var14);
- var10.addEdit(new AbstractDocument.ElementEdit(var12, var12.getElementCount() - 1, var13, var14));
- }
-
- if (var11 != null) {
- var10.addEdit(var11);
- }
-
- ((AbstractDocument)this).postRemoveUpdate(var10);
- ((CompoundEdit)var10).end();
- ((AbstractDocument)this).fireRemoveUpdate(var10);
- if (var11 != null) {
- this.fireUndoableEditUpdate(new UndoableEditEvent(this, var10));
- }
-
- }
-
- private void removeElements(Element var1, int var2, int var3, int var4, int var5) throws BadLocationException {
- Element[] var6 = new Element[var3];
- Element[] var7 = new Element[0];
-
- for(int var8 = 0; var8 < var3; ++var8) {
- var6[var8] = var1.getElement(var8 + var2);
- }
-
- AbstractDocument.DefaultDocumentEvent var9 = new AbstractDocument.DefaultDocumentEvent(this, var4, var5 - var4, EventType.REMOVE);
- ((AbstractDocument.BranchElement)var1).replace(var2, var6.length, var7);
- var9.addEdit(new AbstractDocument.ElementEdit(var1, var2, var6, var7));
- UndoableEdit var10 = ((AbstractDocument)this).getContent().remove(var4, var5 - var4);
- if (var10 != null) {
- var9.addEdit(var10);
- }
-
- ((AbstractDocument)this).postRemoveUpdate(var9);
- ((CompoundEdit)var9).end();
- ((AbstractDocument)this).fireRemoveUpdate(var9);
- if (var10 != null) {
- this.fireUndoableEditUpdate(new UndoableEditEvent(this, var9));
- }
-
- }
-
- void obtainLock() {
- ((AbstractDocument)this).writeLock();
- }
-
- void releaseLock() {
- ((AbstractDocument)this).writeUnlock();
- }
-
- protected void fireChangedUpdate(DocumentEvent var1) {
- super.fireChangedUpdate(var1);
- }
-
- protected void fireUndoableEditUpdate(UndoableEditEvent var1) {
- super.fireUndoableEditUpdate(var1);
- }
-
- AttributeSet getFormAttributes(AttributeSet var1) {
- Enumeration var2 = var1.getAttributeNames();
-
- while(var2.hasMoreElements()) {
- Object var3 = var2.nextElement();
- if (var3 instanceof HTML.Tag) {
- HTML.Tag var4 = (HTML.Tag)var3;
- if (var4 == Tag.FORM) {
- Object var5 = var1.getAttribute(var4);
- if (var5 != null && var5 instanceof AttributeSet) {
- return (AttributeSet)var5;
- }
- }
- }
- }
-
- return null;
- }
-
- private boolean formMatchesSubmissionRequest(AttributeSet var1, AttributeSet var2) {
- AttributeSet var3 = this.getFormAttributes(var1);
- return var3 != null ? var2.isEqual(var3) : false;
- }
-
- void getFormData(StringBuffer var1, Element var2) {
- AttributeSet var3 = var2.getAttributes();
- AttributeSet var4 = this.getFormAttributes(var3);
- ElementIterator var5 = new ElementIterator(((DefaultStyledDocument)this).getDefaultRootElement());
- if (var4 != null) {
- boolean var7 = false;
-
- Element var6;
- while((var6 = var5.next()) != null) {
- AttributeSet var8 = var6.getAttributes();
- if (this.formMatchesSubmissionRequest(var8, var4)) {
- var7 = true;
- String var9 = (String)var8.getAttribute(Attribute.TYPE);
- if ((var9 == null || !var9.equals("submit") || var6 == var2) && (var9 == null || !var9.equals("image"))) {
- this.loadElementDataIntoBuffer(var6, var1);
- }
- } else if (var7 && var6.isLeaf()) {
- break;
- }
- }
-
- }
- }
-
- private void loadElementDataIntoBuffer(Element var1, StringBuffer var2) {
- AttributeSet var3 = var1.getAttributes();
- String var4 = (String)var3.getAttribute(Attribute.NAME);
- if (var4 != null) {
- String var5 = null;
- HTML.Tag var6 = (HTML.Tag)var1.getAttributes().getAttribute(StyleConstants.NameAttribute);
- if (var6 == Tag.INPUT) {
- var5 = this.getInputElementData(var3);
- } else if (var6 == Tag.TEXTAREA) {
- var5 = this.getTextAreaData(var3);
- } else if (var6 == Tag.SELECT) {
- this.loadSelectData(var3, var2);
- }
-
- if (var4 != null && var5 != null) {
- this.appendBuffer(var2, var4, var5);
- }
-
- }
- }
-
- private String getInputElementData(AttributeSet var1) {
- Object var2 = var1.getAttribute(StyleConstants.ModelAttribute);
- String var3 = (String)var1.getAttribute(Attribute.TYPE);
- String var4 = null;
- if (!var3.equals("text") && !var3.equals("password")) {
- if (!var3.equals("submit") && !var3.equals("hidden")) {
- if (var3.equals("radio") || var3.equals("checkbox")) {
- ButtonModel var8 = (ButtonModel)var2;
- if (var8.isSelected()) {
- var4 = (String)var1.getAttribute(Attribute.VALUE);
- if (var4 == null) {
- var4 = "on";
- }
- }
- }
- } else {
- var4 = (String)var1.getAttribute(Attribute.VALUE);
- if (var4 == null) {
- var4 = "";
- }
- }
- } else {
- Document var5 = (Document)var2;
-
- try {
- var4 = var5.getText(0, var5.getLength());
- } catch (BadLocationException var7) {
- var4 = null;
- }
- }
-
- return var4;
- }
-
- private String getTextAreaData(AttributeSet var1) {
- Document var2 = (Document)var1.getAttribute(StyleConstants.ModelAttribute);
-
- try {
- return var2.getText(0, var2.getLength());
- } catch (BadLocationException var4) {
- return null;
- }
- }
-
- private void loadSelectData(AttributeSet var1, StringBuffer var2) {
- String var3 = (String)var1.getAttribute(Attribute.NAME);
- if (var3 != null) {
- Object var4 = var1.getAttribute(StyleConstants.ModelAttribute);
- if (var4 instanceof OptionListModel) {
- OptionListModel var5 = (OptionListModel)var4;
-
- for(int var6 = 0; var6 < ((DefaultListModel)var5).getSize(); ++var6) {
- if (var5.isSelectedIndex(var6)) {
- Option var7 = (Option)((DefaultListModel)var5).getElementAt(var6);
- this.appendBuffer(var2, var3, var7.getValue());
- }
- }
- } else if (var4 instanceof ComboBoxModel) {
- ComboBoxModel var8 = (ComboBoxModel)var4;
- Option var9 = (Option)var8.getSelectedItem();
- if (var9 != null) {
- this.appendBuffer(var2, var3, var9.getValue());
- }
- }
-
- }
- }
-
- private void appendBuffer(StringBuffer var1, String var2, String var3) {
- this.ampersand(var1);
- String var4 = URLEncoder.encode(var2);
- var1.append(var4);
- var1.append('=');
- String var5 = URLEncoder.encode(var3);
- var1.append(var5);
- }
-
- private void ampersand(StringBuffer var1) {
- if (var1.length() > 0) {
- var1.append('&');
- }
-
- }
-
- boolean isLastTextOrPasswordField(Element var1) {
- ElementIterator var2 = new ElementIterator(((DefaultStyledDocument)this).getDefaultRootElement());
- boolean var4 = false;
- AttributeSet var5 = this.getFormAttributes(var1.getAttributes());
-
- while(true) {
- Element var3;
- if ((var3 = var2.next()) != null) {
- AttributeSet var6 = var3.getAttributes();
- if (this.formMatchesSubmissionRequest(var6, var5)) {
- if (var4 && this.matchNameAttribute(var6, Tag.INPUT)) {
- String var7 = (String)var6.getAttribute(Attribute.TYPE);
- if (var7.equals("text") || var7.equals("password")) {
- return false;
- }
- }
-
- if (var3 == var1) {
- var4 = true;
- }
- continue;
- }
-
- if (!var4 || !var3.isLeaf()) {
- continue;
- }
- }
-
- return true;
- }
- }
-
- void resetForm(Element var1) {
- ElementIterator var2 = new ElementIterator(((DefaultStyledDocument)this).getDefaultRootElement());
- boolean var4 = false;
- AttributeSet var5 = this.getFormAttributes(var1.getAttributes());
-
- Element var3;
- while((var3 = var2.next()) != null) {
- AttributeSet var6 = var3.getAttributes();
- if (!this.formMatchesSubmissionRequest(var6, var5)) {
- if (var4 && var3.isLeaf()) {
- break;
- }
- } else {
- Object var7 = var6.getAttribute(StyleConstants.ModelAttribute);
- if (var7 instanceof TextAreaDocument) {
- TextAreaDocument var8 = (TextAreaDocument)var7;
- var8.reset();
- } else if (var7 instanceof PlainDocument) {
- try {
- PlainDocument var14 = (PlainDocument)var7;
- ((AbstractDocument)var14).remove(0, ((AbstractDocument)var14).getLength());
- if (this.matchNameAttribute(var6, Tag.INPUT)) {
- String var9 = (String)var6.getAttribute(Attribute.VALUE);
- if (var9 != null) {
- ((AbstractDocument)var14).insertString(0, var9, (AttributeSet)null);
- }
- }
- } catch (BadLocationException var13) {
- }
- } else if (var7 instanceof OptionListModel) {
- OptionListModel var15 = (OptionListModel)var7;
- int var18 = ((DefaultListModel)var15).getSize();
-
- for(int var10 = 0; var10 < var18; ++var10) {
- var15.removeIndexInterval(var10, var10);
- }
-
- BitSet var11 = var15.getInitialSelection();
-
- for(int var12 = 0; var12 < var11.size(); ++var12) {
- if (var11.get(var12)) {
- var15.addSelectionInterval(var12, var12);
- }
- }
- } else if (var7 instanceof OptionComboBoxModel) {
- OptionComboBoxModel var16 = (OptionComboBoxModel)var7;
- Option var19 = var16.getInitialSelection();
- if (var19 != null) {
- ((DefaultComboBoxModel)var16).setSelectedItem(var19);
- }
- } else if (var7 instanceof JToggleButton.ToggleButtonModel) {
- boolean var17 = (String)var6.getAttribute(Attribute.CHECKED) != null;
- JToggleButton.ToggleButtonModel var20 = (JToggleButton.ToggleButtonModel)var7;
- var20.setSelected(var17);
- }
-
- var4 = true;
- }
- }
-
- }
-
- // $FF: synthetic method
- static char[] access$000() {
- return NEWLINE;
- }
-
- // $FF: synthetic method
- static ButtonGroup access$402(HTMLDocument var0, ButtonGroup var1) {
- return var0.radioButtonGroup = var1;
- }
-
- // $FF: synthetic method
- static ButtonGroup access$400(HTMLDocument var0) {
- return var0.radioButtonGroup;
- }
-
- static {
- ((MutableAttributeSet)contentAttributeSet).addAttribute(StyleConstants.NameAttribute, Tag.CONTENT);
- NEWLINE = new char[1];
- NEWLINE[0] = '\n';
- }
- }
-