コード例 #1
0
 private void writeTag(final Tag tag, final int depth, final int end) throws IOException {
   // sets index to last position written, guaranteed < end
   // assert index==tag.begin
   // assert index < end
   nextTag = tag.findNextTag();
   final int tagEnd = (tag.end < end) ? tag.end : end;
   // assert index < tagEnd
   if (tag.getTagType() == StartTagType.COMMENT
       || tag.getTagType() == StartTagType.CDATA_SECTION
       || tag.getTagType().isServerTag()) {
     writeTextPreserveIndentation(tagEnd, depth);
   } else if (tidyTags) {
     final String tidyTag = tag.tidy();
     if ((tag instanceof StartTag) && ((StartTag) tag).getAttributes() != null)
       writer.write(tidyTag);
     else writeSpecifiedTextInline(tidyTag, depth);
     index = tagEnd;
   } else {
     writeTextInline(
         tagEnd, depth,
         true); // Write tag keeping linefeeds. This will add an indent to any attribute values
     // containing linefeeds, but the normal situation where line breaks are between
     // attributes will look nice.
   }
   if (end <= tag.end || !(tag instanceof StartTag)) return;
   if ((tag.name == HTMLElementName.SCRIPT && !indentScriptElements)
       || tag.getTagType().isServerTag()) {
     // NOTE SERVER ELEMENTS CONTAINING NON-INLINE TAGS WILL NOT FORMAT PROPERLY. NEED TO
     // INVESTIGATE INCLUDING SUCH SERVER ELEMENTS IN DOCUMENT HIERARCHY.
     // this is a script or server start tag, we may need to write the whole element:
     final Element element = tag.getElement();
     final EndTag endTag = element.getEndTag();
     if (endTag == null) return;
     final int contentEnd = (end < endTag.begin) ? end : endTag.begin;
     boolean singleLineContent = true;
     if (index != contentEnd) {
       // elementContainsMarkup should be made into a TagType property one day.
       // for the time being assume all server element content is code, although this is not true
       // for some Mason elements.
       final boolean elementContainsMarkup = false;
       if (elementContainsMarkup) {
         singleLineContent = writeTextInline(contentEnd, depth + 1, false);
       } else {
         singleLineContent = writeTextPreserveIndentation(contentEnd, depth);
       }
     }
     if (endTag.begin >= end) return;
     if (!singleLineContent) {
       writeEssentialNewLine(); // some server or client side scripting languages might need the
       // final new line
       writeIndent(depth);
     }
     // assert index==endTag.begin
     writeTag(endTag, depth, end);
   }
 }
コード例 #2
0
ファイル: TagStatsView.java プロジェクト: aprasa/project
  private void rebuild(Tag tag) {
    if (panel == null || panel.isDisposed()) {

      TagType tt = tag.getTagType();

      tt.removeTagTypeListener(this);

      tt.getTagManager().removeTagManagerListener(this);

      return;
    }

    rebuild();
  }
コード例 #3
0
ファイル: ListTag.java プロジェクト: meyerkizner/Minelib
 @Override
 public Tag checkElement(Tag element) {
   checkArgument(element.getTagType() == elementType);
   return element;
 }