Package javax.swing.text

Examples of javax.swing.text.Element


      private String getLink(int pos, JEditorPane html) {
        Document doc = html.getDocument();
        if (doc instanceof HTMLDocument) {
          HTMLDocument hdoc = (HTMLDocument) doc;
          Element e = hdoc.getCharacterElement(pos);
          AttributeSet a = e.getAttributes();
          AttributeSet anchor = (AttributeSet) a.getAttribute(HTML.Tag.A);

          if (anchor != null) {
            return (String) anchor.getAttribute(HTML.Attribute.HREF);
          }
        }
        return null;
      }

      private String getSelection(int pos, JEditorPane html) {
        Caret caret = html.getCaret();
        if (caret != null) {
          try {
            int start = Math.min(caret.getDot(), caret.getMark());
            int length = Math.abs(caret.getDot() - caret.getMark());
            return html.getDocument().getText(start, length);
          } catch (BadLocationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          }
        }
        return null;
      }

    });

    mInfoEP.addHyperlinkListener(new HyperlinkListener() {
      private String mTooltip;

      public void hyperlinkUpdate(HyperlinkEvent evt) {
        if (evt.getEventType() == HyperlinkEvent.EventType.ENTERED) {
          mTooltip = mInfoEP.getToolTipText();
          mInfoEP.setToolTipText(getLinkTooltip(evt));
        }
        if (evt.getEventType() == HyperlinkEvent.EventType.EXITED) {
          mInfoEP.setToolTipText(mTooltip);
        }
        if (evt.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
          URL url = evt.getURL();
          if (url != null) {
            Launch.openURL(url.toString());
          }
        }
      }
    });

    mFindAsYouType = new TextComponentFindAction(mInfoEP, true);

    final JScrollPane scrollPane = new JScrollPane(mInfoEP);
    scrollPane.getVerticalScrollBar().setUnitIncrement(30);

    // ScrollActions
    mUpAction = new AbstractAction() {
      public void actionPerformed(ActionEvent e) {
        scrollPane.getVerticalScrollBar().setValue(
            scrollPane.getVerticalScrollBar().getValue()
                - scrollPane.getVerticalScrollBar().getUnitIncrement());
      }
    };

    mDownAction = new AbstractAction() {
      public void actionPerformed(ActionEvent e) {
        scrollPane.getVerticalScrollBar().setValue(
            scrollPane.getVerticalScrollBar().getValue()
                + scrollPane.getVerticalScrollBar().getUnitIncrement());
      }
    };

    mPluginsPane = new JTaskPane();
    mPluginsPane.add(mFunctionGroup);

    mActionsPane = new JScrollPane(mPluginsPane);

    mConfigBtn = new JButton(mLocalizer.msg("config", "Configure view"));
    mConfigBtn.setIcon(TVBrowserIcons.preferences(TVBrowserIcons.SIZE_SMALL));

    ButtonBarBuilder2 buttonBuilder = new ButtonBarBuilder2();

    buttonBuilder.addButton(mConfigBtn);
    mConfigBtn.setVisible(showSettings);

    if (pluginsSize == null) {
      mActionsPane.setPreferredSize(new Dimension(250, 500));
    } else {
      mActionsPane.setPreferredSize(pluginsSize);
    }

    if (ProgramInfo.getInstance().getSettings().getShowFunctions()) {
      JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
      split.setDividerSize(5);
      split.setContinuousLayout(true);
      split.setDividerLocation(mActionsPane.getPreferredSize().width + 1);
      split.setLeftComponent(mActionsPane);
      split.setRightComponent(scrollPane);
      mMainPanel.add(split, BorderLayout.CENTER);
      mFindAsYouType.installKeyListener(split);
    } else {
      final JButton functions = new JButton(mLocalizer.msg("functions",
          "Functions"));
      functions.setFocusable(false);

      functions.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
          if (e.getClickCount() == 1) {
            JPopupMenu popupMenu = PluginProxyManager.createPluginContextMenu(
                mProgram, ProgramInfoProxy.getInstance());
            popupMenu.show(functions, e.getX(), e.getY()
                - popupMenu.getPreferredSize().height);
          }
        }
      });
View Full Code Here


    int endLine = rootElement.getElementIndex( delimiter );

    for (int i = line + 1; i < endLine; i++)
    {
      Element branch = rootElement.getElement( i );
      Element leaf = doc.getCharacterElement( branch.getStartOffset() );
      AttributeSet as = leaf.getAttributes();

      if ( as.isEqual(comment) ) {
        applyHighlighting(content, i);
      }
    }
View Full Code Here

  }

  private String getLine(String content, int offset)
  {
    int line = rootElement.getElementIndex( offset );
    Element lineElement = rootElement.getElement( line );
    int start = lineElement.getStartOffset();
    int end = lineElement.getEndOffset();
    return content.substring(start, end - 1);
  }
View Full Code Here

        public int findTabLocation(int offset) {

            // find first {
            boolean cont = true;
            while (offset > -1 && cont) {
                Element el = doc.getCharacterElement(offset);
                Object color =
                        el.getAttributes().getAttribute(StyleConstants.Foreground);
                if (!COMMENT_COLOR.equals(color)) {
                    cont = segment.array[offset] != '{' &&
                            segment.array[offset] != '}';
                }
                offset -= cont ? 1 : 0;
            }

            if (offset > -1 && segment.array[offset] == '{') {
                while (offset > -1 &&
                        !Character.isWhitespace(segment.array[offset--])) {
                }
            }

            int index = offset < 0 || segment.array[offset] == '}' ? -4 : 0;
            if (offset > -1) {
                Element top = doc.getDefaultRootElement();
                offset = top.getElement(top.getElementIndex(offset)).getStartOffset();

                while (Character.isWhitespace(segment.array[offset++])) {
                    index++;
                }
            }
View Full Code Here

    List elements = new ArrayList();

    Document document = editorPane.getDocument();

    Element root = document.getDefaultRootElement();
    if (root != null)
    {
      addElements(elements, root);
    }

    int startOffset = 0;
    int endOffset = 0;
    int crtOffset = 0;
    String chunk = null;
    JRPrintHyperlink hyperlink = null;
    Element element = null;
    Element parent = null;
    boolean bodyOccurred = false;
    int[] orderedListIndex = new int[elements.size()];
    String whitespace = "    ";
    String[] whitespaces = new String[elements.size()];
    for(int i = 0; i < elements.size(); i++)
    {
      whitespaces[i] = "";
    }
    JRStyledText styledText = new JRStyledText();
   
    for(int i = 0; i < elements.size(); i++)
    {
      if (bodyOccurred && chunk != null)
      {
        styledText.append(chunk);
        Map styleAttributes = getAttributes(element.getAttributes());
        if (hyperlink != null)
        {
          styleAttributes.put(JRTextAttribute.HYPERLINK, hyperlink);
          hyperlink = null;
        }
        if (!styleAttributes.isEmpty())
        {
          styledText.addRun(new JRStyledText.Run(styleAttributes,
              startOffset + crtOffset, endOffset + crtOffset));
        }
      }

      chunk = null;
      element = (Element)elements.get(i);
      parent = element.getParentElement();
      startOffset = element.getStartOffset();
      endOffset = element.getEndOffset();
      AttributeSet attrs = element.getAttributes();

      Object elementName = attrs.getAttribute(AbstractDocument.ElementNameAttribute);
      Object object = (elementName != null) ? null : attrs.getAttribute(StyleConstants.NameAttribute);
      if (object instanceof HTML.Tag)
      {
       
        HTML.Tag htmlTag = (HTML.Tag) object;
        if(htmlTag == Tag.BODY)
        {
          bodyOccurred = true;
          crtOffset = - startOffset;
        }
        else if(htmlTag == Tag.BR)
        {
          chunk = "\n";
        }
        else if(htmlTag == Tag.OL)
        {
          orderedListIndex[i] = 0;
          String parentName = parent.getName().toLowerCase();
          whitespaces[i] = whitespaces[elements.indexOf(parent)] + whitespace;
          if(parentName.equals("li"))
          {
            chunk = "";
          }
          else
          {
            chunk = "\n";
            ++crtOffset;
          }
        }
        else if(htmlTag == Tag.UL)
        {
          whitespaces[i] = whitespaces[elements.indexOf(parent)] + whitespace;

          String parentName = parent.getName().toLowerCase();
          if(parentName.equals("li"))
          {
            chunk = "";
          }
          else
          {
            chunk = "\n";
            ++crtOffset;
          }
         
        }
        else if(htmlTag == Tag.LI)
        {
         
          whitespaces[i] = whitespaces[elements.indexOf(parent)];
          if(element.getElement(0) != null &&
              (element.getElement(0).getName().toLowerCase().equals("ol") || element.getElement(0).getName().toLowerCase().equals("ul"))
              )
          {
            chunk = "";
          }
          else if(parent.getName().equals("ol"))
          {
            int index = elements.indexOf(parent);
            chunk = whitespaces[index] + String.valueOf(++orderedListIndex[index]) + ".  ";
          }
          else
View Full Code Here

    {
      elements.add(element);
    }
    for(int i = 0; i < element.getElementCount(); i++)
    {
      Element child = element.getElement(i);
      addElements(elements, child);
    }
  }
View Full Code Here

    List elements = new ArrayList();

    Document document = editorPane.getDocument();

    Element root = document.getDefaultRootElement();
    if (root != null)
    {
      addElements(elements, root);
    }

    String chunk = null;
    Element element = null;
    int startOffset = 0;
    int endOffset = 0;
   
    JRStyledText styledText = new JRStyledText();
    styledText.setGlobalAttributes(new HashMap());
    for(int i = 0; i < elements.size(); i++)
    {
      if (chunk != null)
      {
        styledText.append(chunk);
        styledText.addRun(new JRStyledText.Run(getAttributes(element.getAttributes()), startOffset, endOffset));
      }

      chunk = null;
      element = (Element)elements.get(i);
      startOffset = element.getStartOffset();
      endOffset = element.getEndOffset();

      try
      {
        chunk = document.getText(startOffset, endOffset - startOffset);
      }
      catch(BadLocationException e)
      {
        if (log.isDebugEnabled())
        {
          log.debug("Error converting markup.", e);
        }
      }

    }

    if (chunk != null && !"\n".equals(chunk))
    {
      styledText.append(chunk);
      styledText.addRun(new JRStyledText.Run(getAttributes(element.getAttributes()), startOffset, endOffset));
    }

    return JRStyledTextParser.getInstance().write(styledText);
  }
View Full Code Here

    {
      elements.add(element);
    }
    for(int i = 0; i < element.getElementCount(); i++)
    {
      Element child = element.getElement(i);
      addElements(elements, child);
    }
  }
View Full Code Here

    }

    public void remove(int offs, int len) throws BadLocationException {

      super.remove(offs, len);
      Element e = getCharacterElement(offs - len);
      computeLinks(e);
    }
View Full Code Here

    public void insertString(int offs, String str, AttributeSet a)
        throws BadLocationException {

      super.insertString(offs, str, a);
      Element e = getCharacterElement(offs);
      computeLinks(e);
    }
View Full Code Here

TOP

Related Classes of javax.swing.text.Element

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.