Java 类javax.swing.text.html.HTML.Tag 实例源码

项目:marathonv5    文件:JEditorPaneTagJavaElement.java   
public int getTextIndex() {
    return EventQueueWait.exec(new Callable<Integer>() {
        @Override public Integer call() throws Exception {
            String href = getText();
            int hRefIndex = 0;
            int current = 0;
            JEditorPane editor = (JEditorPane) parent.getComponent();
            HTMLDocument document = (HTMLDocument) editor.getDocument();
            Iterator iterator = document.getIterator(Tag.A);
            while (iterator.isValid()) {
                if (current++ >= index) {
                    return hRefIndex;
                }
                String attribute = ((HTMLDocument) ((JEditorPane) parent.getComponent()).getDocument())
                        .getText(iterator.getStartOffset(), iterator.getEndOffset() - iterator.getStartOffset());
                if (attribute != null && attribute.equals(href)) {
                    hRefIndex++;
                }
                iterator.next();
            }
            return -1;
        }
    });
}
项目:marathonv5    文件:JEditorPaneJavaElement.java   
private List<IJavaElement> selectByProperties(final ArrayList<IJavaElement> r, JSONObject o) {
    final Properties p;
    if (o.has("select")) {
        String spec = o.getString("select");
        if (!spec.startsWith("text=") && !spec.startsWith("link=")) {
            int pos = Integer.parseInt(spec);
            return Arrays.asList((IJavaElement) new JEditorPanePosJavaElement(this, pos));
        }
        p = parseSelectProperties(spec);
    } else {
        p = PropertyHelper.asProperties(o);
    }
    EventQueueWait.exec(new Runnable() {
        @Override public void run() {
            fillElements(Tag.A, r, new PropertyPredicate(p));
        }
    });
    return r;
}
项目:SweetHome3D    文件:HelpController.java   
@Override
public void handleStartTag(HTML.Tag tag, MutableAttributeSet att, int pos)
{
    if (tag.equals(HTML.Tag.A))
    { // <a href=...> tag
        String attribute = (String) att.getAttribute(HTML.Attribute.HREF);
        if (attribute != null)
        {
            addReferencedDocument(attribute);
        }
    }
    else if (tag.equals(HTML.Tag.TITLE))
    {
        this.inTitle = true;
    }
}
项目:javify    文件:HTMLDocument.java   
/**
 * Finds the named frame inside this document.
 *
 * @param target the name to look for
 *
 * @return the frame if there is a matching frame, <code>null</code>
 *         otherwise
 */
private Element findFrame(String target)
{
  ElementIterator i = new ElementIterator(this);
  Element next = null;
  while ((next = i.next()) != null)
    {
      AttributeSet atts = next.getAttributes();
      if (atts.getAttribute(StyleConstants.NameAttribute) == HTML.Tag.FRAME)
        {
          String name = (String) atts.getAttribute(HTML.Attribute.NAME);
          if (name != null && name.equals(target))
            break;
        }
    }
  return next;
}
项目:javify    文件:HTMLDocument.java   
/**
 * Called when an end tag is seen for one of the types of tags associated
 * with this Action.
 */
public void end(HTML.Tag t)
{
  if (t == HTML.Tag.OPTION)
    {
      option = null;
    }
  else
    {
      if (t == HTML.Tag.TEXTAREA)
        {
          inTextArea = false;
        }
      else if (t == HTML.Tag.SELECT)
        {
          selectModel = null;
          numOptions = 0;
        }
      // Finish the element.
      super.end(t);
    }
}
项目:javify    文件:HTMLDocument.java   
public void start(HTML.Tag tag, MutableAttributeSet atts)
{
  pushCharacterStyle();
  charAttr.addAttribute(tag, atts.copyAttributes());
  StyleSheet styleSheet = getStyleSheet();
  // TODO: Add other tags here.
  if (tag == HTML.Tag.FONT)
    {
      String color = (String) atts.getAttribute(HTML.Attribute.COLOR);
      if (color != null)
        styleSheet.addCSSAttribute(charAttr, CSS.Attribute.COLOR, color);
      String face = (String) atts.getAttribute(HTML.Attribute.FACE);
      if (face != null)
        styleSheet.addCSSAttribute(charAttr, CSS.Attribute.FONT_FAMILY,
                                   face);
      String size = (String) atts.getAttribute(HTML.Attribute.SIZE);
      if (size != null)
        styleSheet.addCSSAttribute(charAttr, CSS.Attribute.FONT_SIZE,
                                   size);
    }
}
项目:javify    文件:HTMLDocument.java   
/**
 * Called when an end tag is seen for one of the types of tags associated
 * with this Action.
 */
public void end(HTML.Tag t)
{
  // We read in all the stylesheets that are embedded or referenced
  // inside the header.
  if (styles != null)
    {
      int numStyles = styles.size();
      for (int i = 0; i < numStyles; i++)
        {
          String style = (String) styles.get(i);
          getStyleSheet().addRule(style);
        }
    }
  super.end(t);
}
项目:javify    文件:HTMLDocument.java   
/**
 * This is a callback from the parser that should be routed to the
 * appropriate handler for the tag.
 *
 * @param t the HTML.Tag that was encountered
 * @param a the attribute set
 * @param pos the position at which the tag was encountered
 */
public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos)
{
  if (t == insertTag)
    insertTagEncountered = true;

  if (shouldInsert())
    {
      TagAction action = (TagAction) tagToAction.get(t);
      if (action != null)
        {
          action.start(t, a);
          action.end(t);
        }
    }
}
项目:javify    文件:HTMLDocument.java   
/**
 * Adds the given text that was encountered in a <PRE> element.
 * This adds synthesized lines to hold the text runs.
 *
 * @param data the text
 */
protected void preContent(char[] data)
{
  int start = 0;
  for (int i = 0; i < data.length; i++)
    {
      if (data[i] == '\n')
        {
          addContent(data, start, i - start + 1);
          blockClose(HTML.Tag.IMPLIED);
          MutableAttributeSet atts = new SimpleAttributeSet();
          atts.addAttribute(CSS.Attribute.WHITE_SPACE, "pre");
          blockOpen(HTML.Tag.IMPLIED, atts);
          start = i + 1;
        }
    }
  if (start < data.length)
    {
      // Add remaining last line.
      addContent(data, start, data.length - start);
    }
}
项目:javify    文件:HTMLDocument.java   
/**
 * Instructs the parse buffer to create a block element with the given
 * attributes.
 *
 * @param t the tag that requires opening a new block
 * @param attr the attribute set for the new block
 */
protected void blockOpen(HTML.Tag t, MutableAttributeSet attr)
{
  if (inImpliedParagraph())
    blockClose(HTML.Tag.IMPLIED);

  // Push the new tag on top of the stack.
  parseStack.push(t);

  DefaultStyledDocument.ElementSpec element;

  AbstractDocument.AttributeContext ctx = getAttributeContext();
  AttributeSet copy = attr.copyAttributes();
  copy = ctx.addAttribute(copy, StyleConstants.NameAttribute, t);
  element = new DefaultStyledDocument.ElementSpec(copy,
                           DefaultStyledDocument.ElementSpec.StartTagType);
  parseBuffer.addElement(element);
}
项目:javify    文件:HTMLDocument.java   
/**
 * Adds content that is specified in the attribute set.
 *
 * @param t the HTML.Tag
 * @param a the attribute set specifying the special content
 */
protected void addSpecialElement(HTML.Tag t, MutableAttributeSet a)
{
  if (t != HTML.Tag.FRAME && ! inParagraph())
    {
      blockOpen(HTML.Tag.IMPLIED, new SimpleAttributeSet());
    }

  a.addAttribute(StyleConstants.NameAttribute, t);

  // The two spaces are required because some special elements like HR
  // must be broken. At least two characters are needed to break into the
  // two parts.
  DefaultStyledDocument.ElementSpec spec =
    new DefaultStyledDocument.ElementSpec(a.copyAttributes(),
      DefaultStyledDocument.ElementSpec.ContentType,
      new char[] {' '}, 0, 1 );
  parseBuffer.add(spec);
}
项目:javify    文件:HTMLDocument.java   
/**
 * Replaces the children of the given element with the contents of
 * the string. The document must have an HTMLEditorKit.Parser set.
 * This will be seen as at least two events, n inserts followed by a remove.
 *
 * @param elem - the brance element whose children will be replaced
 * @param htmlText - the string to be parsed and assigned to element.
 * @throws BadLocationException
 * @throws IOException
 * @throws IllegalArgumentException - if elem is a leaf
 * @throws IllegalStateException - if an HTMLEditorKit.Parser has not been set
 */
public void setInnerHTML(Element elem, String htmlText)
  throws BadLocationException, IOException
{
  if (elem.isLeaf())
    throw new IllegalArgumentException("Element is a leaf");

  int start = elem.getStartOffset();
  int end = elem.getEndOffset();

  HTMLEditorKit.ParserCallback reader = getInsertingReader(
    end, 0, 0, HTML.Tag.BODY, elem);

  // TODO charset
  getParser().parse(new StringReader(htmlText), reader, true);

  // Remove the previous content
  remove(start, end - start);
}
项目:javify    文件:HTMLDocument.java   
/**
   * Replaces the given element in the parent with the string. When replacing a
   * leaf, this will attempt to make sure there is a newline present if one is
   * needed. This may result in an additional element being inserted. This will
   * be seen as at least two events, n inserts followed by a remove. The
   * HTMLEditorKit.Parser must be set.
   *
   * @param elem - the branch element whose parent will be replaced
   * @param htmlText - the string to be parsed and assigned to elem
   * @throws BadLocationException
   * @throws IOException
   * @throws IllegalStateException - if parser is not set
   */
public void setOuterHTML(Element elem, String htmlText)
      throws BadLocationException, IOException
  {
    // Remove the current element:
    int start = elem.getStartOffset();
    int end = elem.getEndOffset();

    remove(start, end-start);

    HTMLEditorKit.ParserCallback reader = getInsertingReader(
      start, 0, 0, HTML.Tag.BODY, elem);

    // TODO charset
    getParser().parse(new StringReader(htmlText), reader, true);
  }
项目:jvm-stm    文件:HTMLDocument.java   
/**
 * Finds the named frame inside this document.
 *
 * @param target the name to look for
 *
 * @return the frame if there is a matching frame, <code>null</code>
 *         otherwise
 */
private Element findFrame(String target)
{
  ElementIterator i = new ElementIterator(this);
  Element next = null;
  while ((next = i.next()) != null)
    {
      AttributeSet atts = next.getAttributes();
      if (atts.getAttribute(StyleConstants.NameAttribute) == HTML.Tag.FRAME)
        {
          String name = (String) atts.getAttribute(HTML.Attribute.NAME);
          if (name != null && name.equals(target))
            break;
        }
    }
  return next;
}
项目:jvm-stm    文件:HTMLDocument.java   
/**
 * Called when an end tag is seen for one of the types of tags associated
 * with this Action.
 */
public void end(HTML.Tag t)
{
  if (t == HTML.Tag.OPTION)
    {
      option = null;
    }
  else
    {
      if (t == HTML.Tag.TEXTAREA)
        {
          inTextArea = false;
        }
      else if (t == HTML.Tag.SELECT)
        {
          selectModel = null;
          numOptions = 0;
        }
      // Finish the element.
      super.end(t);
    }
}
项目:jvm-stm    文件:HTMLDocument.java   
public void start(HTML.Tag tag, MutableAttributeSet atts)
{
  pushCharacterStyle();
  charAttr.addAttribute(tag, atts.copyAttributes());
  StyleSheet styleSheet = getStyleSheet();
  // TODO: Add other tags here.
  if (tag == HTML.Tag.FONT)
    {
      String color = (String) atts.getAttribute(HTML.Attribute.COLOR);
      if (color != null)
        styleSheet.addCSSAttribute(charAttr, CSS.Attribute.COLOR, color);
      String face = (String) atts.getAttribute(HTML.Attribute.FACE);
      if (face != null)
        styleSheet.addCSSAttribute(charAttr, CSS.Attribute.FONT_FAMILY,
                                   face);
      String size = (String) atts.getAttribute(HTML.Attribute.SIZE);
      if (size != null)
        styleSheet.addCSSAttribute(charAttr, CSS.Attribute.FONT_SIZE,
                                   size);
    }
}
项目:jvm-stm    文件:HTMLDocument.java   
/**
 * Called when an end tag is seen for one of the types of tags associated
 * with this Action.
 */
public void end(HTML.Tag t)
{
  // We read in all the stylesheets that are embedded or referenced
  // inside the header.
  if (styles != null)
    {
      int numStyles = styles.size();
      for (int i = 0; i < numStyles; i++)
        {
          String style = (String) styles.get(i);
          getStyleSheet().addRule(style);
        }
    }
  super.end(t);
}
项目:jvm-stm    文件:HTMLDocument.java   
/**
 * This is a callback from the parser that should be routed to the
 * appropriate handler for the tag.
 * 
 * @param t the HTML.Tag that was encountered
 * @param a the attribute set
 * @param pos the position at which the tag was encountered
 */
public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos)
{
  if (t == insertTag)
    insertTagEncountered = true;

  if (shouldInsert())
    {
      TagAction action = (TagAction) tagToAction.get(t);
      if (action != null)
        {
          action.start(t, a);
          action.end(t);
        }
    }
}
项目:jvm-stm    文件:HTMLDocument.java   
/**
 * Adds the given text that was encountered in a <PRE> element.
 * This adds synthesized lines to hold the text runs.
 *
 * @param data the text
 */
protected void preContent(char[] data)
{
  int start = 0;
  for (int i = 0; i < data.length; i++)
    {
      if (data[i] == '\n')
        {
          addContent(data, start, i - start + 1);
          blockClose(HTML.Tag.IMPLIED);
          MutableAttributeSet atts = new SimpleAttributeSet();
          atts.addAttribute(CSS.Attribute.WHITE_SPACE, "pre");
          blockOpen(HTML.Tag.IMPLIED, atts);
          start = i + 1;
        }
    }
  if (start < data.length)
    {
      // Add remaining last line.
      addContent(data, start, data.length - start);
    }
}
项目:jvm-stm    文件:HTMLDocument.java   
/**
 * Instructs the parse buffer to create a block element with the given 
 * attributes.
 * 
 * @param t the tag that requires opening a new block
 * @param attr the attribute set for the new block
 */
protected void blockOpen(HTML.Tag t, MutableAttributeSet attr)
{
  if (inImpliedParagraph())
    blockClose(HTML.Tag.IMPLIED);

  // Push the new tag on top of the stack.
  parseStack.push(t);

  DefaultStyledDocument.ElementSpec element;

  AbstractDocument.AttributeContext ctx = getAttributeContext();
  AttributeSet copy = attr.copyAttributes();
  copy = ctx.addAttribute(copy, StyleConstants.NameAttribute, t);
  element = new DefaultStyledDocument.ElementSpec(copy,
                           DefaultStyledDocument.ElementSpec.StartTagType);
  parseBuffer.addElement(element);
}
项目:jvm-stm    文件:HTMLDocument.java   
/**
  * Adds content that is specified in the attribute set.
  * 
  * @param t the HTML.Tag
  * @param a the attribute set specifying the special content
  */
 protected void addSpecialElement(HTML.Tag t, MutableAttributeSet a)
 {
   if (t != HTML.Tag.FRAME && ! inParagraph())
     {
       blockOpen(HTML.Tag.IMPLIED, new SimpleAttributeSet());
     }

   a.addAttribute(StyleConstants.NameAttribute, t);

   // The two spaces are required because some special elements like HR
   // must be broken. At least two characters are needed to break into the
   // two parts.
   DefaultStyledDocument.ElementSpec spec =
     new DefaultStyledDocument.ElementSpec(a.copyAttributes(),
DefaultStyledDocument.ElementSpec.ContentType, 
       new char[] {' '}, 0, 1 );
   parseBuffer.add(spec);
 }
项目:jvm-stm    文件:HTMLDocument.java   
/**
 * Replaces the children of the given element with the contents of
 * the string. The document must have an HTMLEditorKit.Parser set.
 * This will be seen as at least two events, n inserts followed by a remove.
 * 
 * @param elem - the brance element whose children will be replaced
 * @param htmlText - the string to be parsed and assigned to element.
 * @throws BadLocationException
 * @throws IOException
 * @throws IllegalArgumentException - if elem is a leaf 
 * @throws IllegalStateException - if an HTMLEditorKit.Parser has not been set
 */
public void setInnerHTML(Element elem, String htmlText) 
  throws BadLocationException, IOException
{
  if (elem.isLeaf())
    throw new IllegalArgumentException("Element is a leaf");

  int start = elem.getStartOffset();
  int end = elem.getEndOffset();

  HTMLEditorKit.ParserCallback reader = getInsertingReader(
    end, 0, 0, HTML.Tag.BODY, elem);

  // TODO charset
  getParser().parse(new StringReader(htmlText), reader, true);

  // Remove the previous content
  remove(start, end - start);
}
项目:jvm-stm    文件:HTMLDocument.java   
/**
   * Replaces the given element in the parent with the string. When replacing a
   * leaf, this will attempt to make sure there is a newline present if one is
   * needed. This may result in an additional element being inserted. This will
   * be seen as at least two events, n inserts followed by a remove. The
   * HTMLEditorKit.Parser must be set.
   * 
   * @param elem - the branch element whose parent will be replaced
   * @param htmlText - the string to be parsed and assigned to elem
   * @throws BadLocationException
   * @throws IOException
   * @throws IllegalStateException - if parser is not set
   */
public void setOuterHTML(Element elem, String htmlText)
      throws BadLocationException, IOException
  {
    // Remove the current element:
    int start = elem.getStartOffset();
    int end = elem.getEndOffset();

    remove(start, end-start);

    HTMLEditorKit.ParserCallback reader = getInsertingReader(
      start, 0, 0, HTML.Tag.BODY, elem);

    // TODO charset
    getParser().parse(new StringReader(htmlText), reader, true);
  }
项目:dawg    文件:LoginPageIT.java   
/**
 * @author Kevin Pearson
 * @throws IOException
 */
@Test(
    description="Tests if a user can input a user name and click enter to log in",
    groups="uitest"
)
public void testLogin() throws IOException {
    String user = "integrationuser";

    RemoteWebDriver driver = drivers.get();
    driver.get(TestServers.getHouse());
    loginWithUserName(driver, user);
    String expectedNewPageUrl = TestServers.getHouse() + user + "/";
    Assert.assertEquals(driver.getCurrentUrl(), expectedNewPageUrl);
    WebElement userInfo = driver.findElementByClassName(IndexPage.USER_SECTION_CLASS);
    List<WebElement> spans = userInfo.findElements(By.tagName(Tag.SPAN.toString()));
    Assert.assertFalse(spans.isEmpty());
    WebElement userDisplaySpan = spans.get(0); // the first span should show the user name
    Assert.assertEquals(userDisplaySpan.getText(), user);
}
项目:dcattools    文件:HtmlFodMobilit.java   
/**
 * Scrape the site.
 *
 * @throws IOException
 */
@Override
public void scrape() throws IOException {
    logger.info("Start scraping");
    Cache cache = getCache();

    Map<String, Page> front = cache.retrievePage(getBase());
    if (front.keySet().isEmpty()) {
        scrapePage(cache);
        front = cache.retrievePage(getBase());
    }
    // Calculate the number of datasets
    Page p = front.get(getDefaultLang());
    String datasets = p.getContent();
    Elements rows = Jsoup.parse(datasets).getElementsByTag(HTML.Tag.TR.toString());
    logger.info("Found {} datasets on page", String.valueOf(rows.size()));

    logger.info("Done scraping");
}
项目:dcattools    文件:HtmlFodMobilit.java   
/**
 * Generate one dataset
 *
 * @param store RDF store
 * @param front front
 * @param row HTML row
 * @param i number
 * @param lang language
 * @throws MalformedURLException
 * @throws RepositoryException
 */
private void generateDataset(Storage store, URL front, Element row, int i, String lang)
        throws MalformedURLException, RepositoryException {
    URL u = makeDatasetURL(String.valueOf(i));
    IRI dataset = store.getURI(u.toString());
    logger.debug("Generating dataset {}", dataset.toString());

    Elements cells = row.getElementsByTag(Tag.TD.toString());
    String desc = cells.get(0).text();
    String title = desc;

    store.add(dataset, RDF.TYPE, DCAT.DATASET);
    store.add(dataset, DCTERMS.LANGUAGE, MDR_LANG.MAP.get(lang));
    store.add(dataset, DCTERMS.TITLE, title, lang);
    store.add(dataset, DCTERMS.DESCRIPTION, desc, lang);
    store.add(dataset, DCTERMS.IDENTIFIER, makeHashId(u.toString()));
    store.add(dataset, DCAT.LANDING_PAGE, front);

    Elements link = cells.get(1).getElementsByTag(Tag.A.toString());
    generateDist(store, dataset, front, link, i, lang);
}
项目:dcattools    文件:HtmlFodMobilit.java   
/**
 * Generate DCAT datasets.
 *
 * @param store RDF store
 * @param id
 * @param page
 * @throws MalformedURLException
 * @throws RepositoryException
 */
@Override
public void generateDataset(Storage store, String id, Map<String, Page> page)
        throws MalformedURLException, RepositoryException {
    String[] langs = getAllLangs();
    for (String lang : langs) {
        Page p = page.getOrDefault(lang, new Page());
        String html = p.getContent();
        URL front = p.getUrl();
        Elements rows = Jsoup.parse(html).body().getElementsByTag(Tag.TR.toString());

        int i = 0;
        for (Element row : rows) {
            generateDataset(store, front, row, i, lang);
            i++;
        }
    }
}
项目:dcattools    文件:HtmlFodDiplomatie.java   
/**
 * Scrape the site.
 *
 * @throws IOException
 */
@Override
public void scrape() throws IOException {
    logger.info("Start scraping");
    Cache cache = getCache();

    Map<String, Page> front = cache.retrievePage(getBase());
    if (front.keySet().isEmpty()) {
        scrapePage();
        front = cache.retrievePage(getBase());
    }
    // Calculate the number of datasets
    Page p = front.get(getDefaultLang());
    String datasets = p.getContent();
    // first row is a header
    Elements rows = Jsoup.parse(datasets).getElementsByTag(HTML.Tag.TR.toString());
    logger.info("Found {} datasets on page", String.valueOf(rows.size() -1 ));

    logger.info("Done scraping");
}
项目:dcattools    文件:HtmlFodDiplomatie.java   
/**
 * Generate DCAT datasets.
 *
 * @param store RDF store
 * @param id
 * @param page
 * @throws MalformedURLException
 * @throws RepositoryException
 */
@Override
public void generateDataset(Storage store, String id, Map<String, Page> page)
        throws MalformedURLException, RepositoryException {
    String[] langs = getAllLangs();
    for (String lang : langs) {
        Page p = page.getOrDefault(lang, new Page());
        String html = p.getContent();
        URL front = p.getUrl();
        Elements rows = Jsoup.parse(html).body().getElementsByTag(Tag.TR.toString());
        // first row is a table header
        rows.remove(0);
        for (Element row : rows) {
            generateDataset(store, front, row, lang);
        }
    }
}
项目:dcattools    文件:HtmlPodMiis.java   
/**
 * Create description from paragraphs
 * 
 * @param el HTML element containing p
 * @param title title to be used as default
 * @return description
 */
private String buildDesc(Element el, String title) {
    if (el == null) {
        logger.warn("No {} element", MODAL_BODY);
        return title;
    }
    Elements paras = el.getElementsByTag(Tag.P.toString());
    if (paras != null) {
        StringBuilder buf = new StringBuilder();
        for (Element para : paras) {
            buf.append(para.text()).append('\n');
        }
        if (buf.length() > 0) {
            return buf.toString();
        }
    }
    return title;
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testSetInnerHTML_Specs2() throws Exception {
    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.setEditable(false);

    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);

    htmlDoc.setInnerHTML(p, "<a>link</a>");
    Marker insertMarker = htmlDoc.getInsertMarker();
    assertEquals(new Integer(0), getInsertInfo(insertMarker).get(1));
    ElementSpec[] specs = (ElementSpec[])(getInsertInfo(insertMarker).get(0));
    insertMarker.reset();
    assertEquals(4, specs.length);
    assertSpec(specs[0], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, "link".toCharArray());
    AttributeSet specAttr = specs[0].getAttributes();
    assertEquals(2, specAttr.getAttributeCount());
    checkAttributes(specAttr, StyleConstants.NameAttribute, Tag.CONTENT);
    assertSpec(specs[1], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, new char[]{'\n'});
    checkEndTagSpec(specs[2]);
    checkEndTagSpec(specs[3]);
}
项目:cn1    文件:HTMLDocument_ReaderTest.java   
private void checkConstructorTagParameter(final Tag tag, final String str, final int numSpecs) throws Exception {
    init();
    editable = false;
    ParserCallback reader = doc.getReader(0, 0, 0, tag);
    SimpleAttributeSet attr = new SimpleAttributeSet();
    attr.addAttribute(StyleConstants.NameAttribute, Tag.B.toString());
    doc.insertString(0, "0000", attr);
    assertFalse("no inserts", insertMarker.isOccurred());
    parse(str, reader);
    reader.flush();
    if (numSpecs == 0 && isHarmony()) {
        assertFalse("inserted", insertMarker.isOccurred());
    } else {
        assertTrue("inserted", insertMarker.isOccurred());
        ElementSpec[] specs = (ElementSpec[])insertMarker.getAuxiliary();
        assertEquals("number of specs inserted", numSpecs, specs.length);
        insertMarker.reset();
    }
}
项目:cn1    文件:HTMLDocument_ReaderTest.java   
public void testAddSpecialElement_FrameImpliedBlockOpenCheck() {
    Tag specialTag = Tag.FRAME;
    SimpleAttributeSet attr = new SimpleAttributeSet();
    attr.addAttribute("aaaa", "bbbb");
    reader.addSpecialElement(specialTag , attr);
    assertEquals(0, reader.charAttr.getAttributeCount());
    assertEquals(1, reader.parseBuffer.size());
    assertFalse(createMarker.isOccurred());
    assertFalse(insertMarker.isOccurred());

    ElementSpec spec = (ElementSpec)reader.parseBuffer.get(0);
    assertSpec(spec, ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, new char[] {' '});
    AttributeSet specAttr = spec.getAttributes();
    assertEquals(2, specAttr.getAttributeCount());
    checkAttributes(specAttr, StyleConstants.NameAttribute, specialTag);
    checkAttributes(specAttr, "aaaa", "bbbb");
}
项目:cn1    文件:HTMLDocument_ReaderTest.java   
public void testFlush_Insert_PushPopTag_Wierd() throws Exception {
    final String text = "tag";
    editable = false;
    SimpleAttributeSet attr = new SimpleAttributeSet();
    attr.addAttribute(StyleConstants.NameAttribute, Tag.CONTENT);
    reader = (HTMLReader)doc.getReader(1000, -15, 330, Tag.HTML);
    reader.parseBuffer.add(new ElementSpec(attr, ElementSpec.EndTagType));
    reader.parseBuffer.add(new ElementSpec(attr, ElementSpec.StartTagType));
    reader.parseBuffer.add(new ElementSpec(new SimpleAttributeSet(), ElementSpec.ContentType, text.toCharArray(), 0, 3));
    reader.parseBuffer.add(new ElementSpec(attr, ElementSpec.EndTagType));
    reader.parseBuffer.add(new ElementSpec(attr, ElementSpec.EndTagType));
    reader.parseBuffer.add(new ElementSpec(attr, ElementSpec.StartTagType));
    assertEquals(6, reader.parseBuffer.size());
    reader.flush();
    assertEquals(0, reader.parseBuffer.size());
    assertFalse(createMarker.isOccurred());
    assertTrue(insertMarker.isOccurred());
    assertEquals(6, ((ElementSpec[])insertMarker.getAuxiliary()).length);
}
项目:JamVM-PH    文件:HTMLDocument.java   
/**
 * Called when an end tag is seen for one of the types of tags associated
 * with this Action.
 */
public void end(HTML.Tag t)
{
  // We read in all the stylesheets that are embedded or referenced
  // inside the header.
  if (styles != null)
    {
      int numStyles = styles.size();
      for (int i = 0; i < numStyles; i++)
        {
          String style = (String) styles.get(i);
          getStyleSheet().addRule(style);
        }
    }
  super.end(t);
}
项目:cn1    文件:HTMLDocument_ReaderTest.java   
public void testAddSpecialElement_AllTagsImpliedBlockOpenCheck() {
    final Tag[] allTags = HTML.getAllTags();
    for (int i = 0; i < allTags.length; i++) {
        final Tag tag = allTags[i];
        if (Tag.FRAME.equals(tag)) {
            continue;
        }
        init();
        SimpleAttributeSet attr = new SimpleAttributeSet();
        attr.addAttribute("aaaa", "bbbb");
        reader.addSpecialElement(tag , attr);
        assertEquals(2, reader.parseBuffer.size());
        reader.blockClose(Tag.TABLE);
        assertEquals(5, reader.parseBuffer.size());
    }
}
项目:cn1    文件:HTMLDocument_Reader_ActionsTest.java   
public void testCharacterStart_vs_HandleStart() {
    SimpleAttributeSet attr = new SimpleAttributeSet();
    attr.addAttribute("aaaa", "bbbb");
    action = reader.new CharacterAction();

    reader.charAttr.addAttribute("bbbb", "aaaa");
    reader.handleStartTag(Tag.B, attr, 0);
    assertEquals(0, reader.parseBuffer.size());
    assertEquals(3, reader.charAttr.getAttributeCount());
    checkAttributes(reader.charAttr, "bbbb", "aaaa");
    checkAttributes(reader.charAttr, Tag.B, attr);
    checkAttributes(reader.charAttr, CSS.Attribute.FONT_WEIGHT, "bold");
    reader.popCharacterStyle();
    assertEquals(1, reader.charAttr.getAttributeCount());
    checkAttributes(reader.charAttr, "bbbb", "aaaa");
}
项目:cn1    文件:HTMLDocument_Reader_ActionsTest.java   
public void testSpecialStart_Calls() {
    final Marker specialMarker = new Marker();
    doc = new HTMLDocument() {
        public ParserCallback getReader(int pos) {
            return new HTMLReader(0) {
                protected void addSpecialElement(final Tag tag, final MutableAttributeSet attr) {
                    specialMarker.setOccurred();
                    ArrayList callInfo = new ArrayList();
                    callInfo.add(tag);
                    callInfo.add(attr);
                    specialMarker.setAuxiliary(callInfo);
                }
            };
        }
    };
    reader = (HTMLReader)doc.getReader(0);
    String text = "precontent";
    Tag tag = Tag.HTML;
    SimpleAttributeSet attr = new SimpleAttributeSet();
    attr.addAttribute("aaaa", "bbbb");
    reader.addSpecialElement(tag, attr);
    assertTrue(specialMarker.isOccurred());
    ArrayList callInfo = (ArrayList)specialMarker.getAuxiliary();
    assertEquals(tag, callInfo.get(0));
    assertEquals(attr, callInfo.get(1));
}
项目:cn1    文件:HTMLDocument_ReaderTest.java   
public void testHandleText_ContentMethodsCalls_Body() throws Exception {
    final Marker addContentMarker = new Marker(); 
    final Marker preContentMarker = new Marker(); 
    final Marker textAreaMarker = new Marker(); 
    createContentMarkersInstrumentedReader(addContentMarker, preContentMarker, textAreaMarker);
    String text = "data";

    reader.handleText(text.toCharArray(), 0);
    assertFalse(addContentMarker.isOccurred());
    assertFalse(preContentMarker.isOccurred());
    assertFalse(textAreaMarker.isOccurred());

    reader.handleStartTag(Tag.BODY, new SimpleAttributeSet(), 0);
    reader.handleText(text.toCharArray(), 0);
    assertTrue(addContentMarker.isOccurred());
    assertFalse(preContentMarker.isOccurred());
    assertFalse(textAreaMarker.isOccurred());
    addContentMarker.reset();

    reader.handleEndTag(Tag.BODY, 0);
    reader.handleText(text.toCharArray(), 0);
    assertTrue(addContentMarker.isOccurred());
    assertFalse(preContentMarker.isOccurred());
    assertFalse(textAreaMarker.isOccurred());
    addContentMarker.reset();
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testInsertAfterEnd_Specs2() throws Exception {
    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.setEditable(false);

    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);

    htmlDoc.insertAfterEnd(p, "<a>link</a>");
    Marker insertMarker = htmlDoc.getInsertMarker();
    assertEquals(new Integer(0), getInsertInfo(insertMarker).get(1));
    ElementSpec[] specs = (ElementSpec[])(getInsertInfo(insertMarker).get(0));
    insertMarker.reset();
    assertEquals(2, specs.length);
    checkEndTagSpec(specs[0]);
    assertSpec(specs[1], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, "link".toCharArray());
    AttributeSet specAttr = specs[1].getAttributes();
    assertEquals(2, specAttr.getAttributeCount());
    checkAttributes(specAttr, StyleConstants.NameAttribute, Tag.CONTENT);
}