javax.swing.text.Element.getElementIndex()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(9.3k)|赞(0)|评价(0)|浏览(259)

本文整理了Java中javax.swing.text.Element.getElementIndex()方法的一些代码示例,展示了Element.getElementIndex()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Element.getElementIndex()方法的具体详情如下:
包路径:javax.swing.text.Element
类名称:Element
方法名:getElementIndex

Element.getElementIndex介绍

暂无

代码示例

代码示例来源:origin: skylot/jadx

  1. private boolean isCurrentLine(int rowStartOffset) {
  2. int caretPosition = codeArea.getCaretPosition();
  3. Element root = codeArea.getDocument().getDefaultRootElement();
  4. return root.getElementIndex(rowStartOffset) == root.getElementIndex(caretPosition);
  5. }

代码示例来源:origin: SonarSource/sonarqube

  1. private boolean isCurrentLine(int rowStartOffset) {
  2. int caretPosition = component.getCaretPosition();
  3. Element root = component.getDocument().getDefaultRootElement();
  4. return root.getElementIndex(rowStartOffset) == root.getElementIndex(caretPosition);
  5. }

代码示例来源:origin: SonarSource/sonarqube

  1. protected String getTextLineNumber(int rowStartOffset) {
  2. Element root = component.getDocument().getDefaultRootElement();
  3. int index = root.getElementIndex(rowStartOffset);
  4. Element line = root.getElement(index);
  5. if (line.getStartOffset() == rowStartOffset)
  6. return String.valueOf(index + 1);
  7. else
  8. return "";
  9. }

代码示例来源:origin: skylot/jadx

  1. @Nullable
  2. protected String getTextLineNumber(int rowStartOffset) {
  3. Element root = codeArea.getDocument().getDefaultRootElement();
  4. int index = root.getElementIndex(rowStartOffset);
  5. Element line = root.getElement(index);
  6. if (line.getStartOffset() != rowStartOffset) {
  7. return null;
  8. }
  9. int lineNumber = index + 1;
  10. if (useSourceLines) {
  11. Integer sourceLine = codeArea.getSourceLine(lineNumber);
  12. if (sourceLine == null) {
  13. return null;
  14. }
  15. return String.valueOf(sourceLine);
  16. }
  17. return String.valueOf(lineNumber);
  18. }

代码示例来源:origin: SonarSource/sonarqube

  1. @Override
  2. public void caretUpdate(CaretEvent e) {
  3. // Get the line the caret is positioned on
  4. int caretPosition = component.getCaretPosition();
  5. Element root = component.getDocument().getDefaultRootElement();
  6. int currentLine = root.getElementIndex(caretPosition);
  7. // Need to repaint so the correct line number can be highlighted
  8. if (lastLine != currentLine) {
  9. repaint();
  10. lastLine = currentLine;
  11. }
  12. }

代码示例来源:origin: skylot/jadx

  1. @Override
  2. public void caretUpdate(CaretEvent e) {
  3. int caretPosition = codeArea.getCaretPosition();
  4. Element root = codeArea.getDocument().getDefaultRootElement();
  5. int currentLine = root.getElementIndex(caretPosition);
  6. if (lastLine != currentLine) {
  7. repaint();
  8. lastLine = currentLine;
  9. }
  10. }

代码示例来源:origin: skylot/jadx

  1. int index = root.getElementIndex(rowStartOffset);
  2. Element line = root.getElement(index);
  3. for (int i = 0; i < line.getElementCount(); i++) {

代码示例来源:origin: SonarSource/sonarqube

  1. int index = root.getElementIndex(rowStartOffset);
  2. Element line = root.getElement(index);

代码示例来源:origin: groovy/groovy-core

  1. @Override
  2. public void paintComponent(Graphics g) {
  3. super.paintComponent(g);
  4. // starting position in document
  5. int start = textEditor.viewToModel(getViewport().getViewPosition());
  6. // end position in document
  7. int end = textEditor.viewToModel(new Point(10,
  8. getViewport().getViewPosition().y +
  9. (int) textEditor.getVisibleRect().getHeight())
  10. );
  11. // translate offsets to lines
  12. Document doc = textEditor.getDocument();
  13. int startline = doc.getDefaultRootElement().getElementIndex(start) + 1;
  14. int endline = doc.getDefaultRootElement().getElementIndex(end) + 1;
  15. Font f = textEditor.getFont();
  16. int fontHeight = g.getFontMetrics(f).getHeight();
  17. int fontDesc = g.getFontMetrics(f).getDescent();
  18. int startingY = -1;
  19. try {
  20. startingY = textEditor.modelToView(start).y + fontHeight - fontDesc;
  21. } catch (BadLocationException e1) {
  22. System.err.println(e1.getMessage());
  23. }
  24. g.setFont(f);
  25. for (int line = startline, y = startingY; line <= endline; y += fontHeight, line++) {
  26. String lineNumber = StringGroovyMethods.padLeft(Integer.toString(line), 4, " ");
  27. g.drawString(lineNumber, 0, y);
  28. }
  29. }
  30. }

代码示例来源:origin: groovy/groovy-core

  1. public int findTabLocation(int offset) {
  2. // find first {
  3. boolean cont = true;
  4. while (offset > -1 && cont) {
  5. Element el = doc.getCharacterElement(offset);
  6. Object color =
  7. el.getAttributes().getAttribute(StyleConstants.Foreground);
  8. if (!COMMENT_COLOR.equals(color)) {
  9. cont = segment.array[offset] != '{' &&
  10. segment.array[offset] != '}';
  11. }
  12. offset -= cont ? 1 : 0;
  13. }
  14. if (offset > -1 && segment.array[offset] == '{') {
  15. while (offset > -1 &&
  16. !Character.isWhitespace(segment.array[offset--])) {
  17. }
  18. }
  19. int index = offset < 0 || segment.array[offset] == '}' ? -4 : 0;
  20. if (offset > -1) {
  21. Element top = doc.getDefaultRootElement();
  22. offset = top.getElement(top.getElementIndex(offset)).getStartOffset();
  23. while (Character.isWhitespace(segment.array[offset++])) {
  24. index++;
  25. }
  26. }
  27. return index;
  28. }
  29. }

代码示例来源:origin: bobbylight/RSyntaxTextArea

  1. @Override
  2. public int yForLineContaining(Rectangle alloc, int offs)
  3. throws BadLocationException {
  4. Element map = getElement();
  5. int line = map.getElementIndex(offs);
  6. return yForLine(alloc, line);
  7. }

代码示例来源:origin: ron190/jsql-injection

  1. /**
  2. * Get index of line for current offset (generally cursor position).
  3. * @param offset Position on the line
  4. * @return Index of the line
  5. * @throws BadLocationException
  6. */
  7. public int getLineOfOffset(int offset) throws BadLocationException {
  8. String errorMsg = "Can't translate offset to line";
  9. Document doc = this.getDocument();
  10. if (offset < 0) {
  11. throw new BadLocationException(errorMsg, -1);
  12. } else if (offset > doc.getLength()) {
  13. throw new BadLocationException(errorMsg, doc.getLength() + 1);
  14. } else {
  15. Element map = doc.getDefaultRootElement();
  16. return map.getElementIndex(offset);
  17. }
  18. }

代码示例来源:origin: bobbylight/RSyntaxTextArea

  1. /**
  2. * Returns the token at the specified offset.
  3. *
  4. * @param doc The document.
  5. * @param offset The offset of the token.
  6. * @return The token, or <code>null</code> if the offset is not valid.
  7. * @see #getTokenAtOffset(RSyntaxTextArea, int)
  8. * @see #getTokenAtOffset(Token, int)
  9. */
  10. public static Token getTokenAtOffset(RSyntaxDocument doc,
  11. int offset) {
  12. Element root = doc.getDefaultRootElement();
  13. int lineIndex = root.getElementIndex(offset);
  14. Token t = doc.getTokenListForLine(lineIndex);
  15. return RSyntaxUtilities.getTokenAtOffset(t, offset);
  16. }

代码示例来源:origin: bobbylight/RSyntaxTextArea

  1. private static Element getLineElem(Document d, int offs) {
  2. Element map = d.getDefaultRootElement();
  3. int index = map.getElementIndex(offs);
  4. Element elem = map.getElement(index);
  5. if ((offs>=elem.getStartOffset()) && (offs<elem.getEndOffset())) {
  6. return elem;
  7. }
  8. return null;
  9. }

代码示例来源:origin: bobbylight/RSyntaxTextArea

  1. @Override
  2. protected int getWordStart(RTextArea textArea, int offs)
  3. throws BadLocationException {
  4. RSyntaxDocument doc = (RSyntaxDocument)textArea.getDocument();
  5. Element root = doc.getDefaultRootElement();
  6. int line = root.getElementIndex(offs);
  7. Element elem = root.getElement(line);
  8. return getWordStartImpl(doc, elem, offs);
  9. }

代码示例来源:origin: bobbylight/RSyntaxTextArea

  1. @Override
  2. public void insertUpdate(DocumentEvent e) {
  3. // Adding text containing a newline to the visible line of a folded
  4. // Fold causes that Fold to unfold. Check only start offset of
  5. // insertion since that's the line that was "modified".
  6. int startOffs = e.getOffset();
  7. int endOffs = startOffs + e.getLength();
  8. Document doc = e.getDocument();
  9. Element root = doc.getDefaultRootElement();
  10. int startLine = root.getElementIndex(startOffs);
  11. int endLine = root.getElementIndex(endOffs);
  12. if (startLine!=endLine) { // Inserted text covering > 1 line...
  13. Fold fold = getFoldForLine(startLine);
  14. if (fold!=null && fold.isCollapsed()) {
  15. fold.toggleCollapsedState();
  16. }
  17. }
  18. }

代码示例来源:origin: bobbylight/RSyntaxTextArea

  1. /**
  2. * Returns the leading whitespace of a specific line in a document.
  3. *
  4. * @param doc The document.
  5. * @param offs The offset whose line to get the leading whitespace for.
  6. * @return The leading whitespace.
  7. * @throws BadLocationException If <code>offs</code> is not a valid offset
  8. * in the document.
  9. * @see #getLeadingWhitespace(String)
  10. */
  11. public static String getLeadingWhitespace(Document doc, int offs)
  12. throws BadLocationException {
  13. Element root = doc.getDefaultRootElement();
  14. int line = root.getElementIndex(offs);
  15. Element elem = root.getElement(line);
  16. int startOffs = elem.getStartOffset();
  17. int endOffs = elem.getEndOffset() - 1;
  18. String text = doc.getText(startOffs, endOffs-startOffs);
  19. return getLeadingWhitespace(text);
  20. }

代码示例来源:origin: bobbylight/RSyntaxTextArea

  1. /**
  2. * Returns whether the specified offset is "inside" the fold. This method
  3. * returns <code>true</code> if the offset is greater than the fold start
  4. * offset, and no further than the last offset of the last folded line.
  5. *
  6. * @param offs The offset to check.
  7. * @return Whether the offset is "inside" the fold.
  8. * @see #containsLine(int)
  9. */
  10. public boolean containsOffset(int offs) {
  11. boolean contained = false;
  12. if (offs>getStartOffset()) {
  13. // Use Elements to avoid BadLocationExceptions
  14. Element root = textArea.getDocument().getDefaultRootElement();
  15. int line = root.getElementIndex(offs);
  16. contained = line<=getEndLine();
  17. }
  18. return contained;
  19. }

代码示例来源:origin: bobbylight/RSyntaxTextArea

  1. @Override
  2. protected int getWordEnd(RTextArea textArea, int offs)
  3. throws BadLocationException {
  4. RSyntaxDocument doc = (RSyntaxDocument)textArea.getDocument();
  5. Element root = doc.getDefaultRootElement();
  6. int line = root.getElementIndex(offs);
  7. Element elem = root.getElement(line);
  8. int end = elem.getEndOffset() - 1;
  9. int wordEnd = offs;
  10. while (wordEnd <= end) {
  11. if (!isIdentifierChar(doc.charAt(wordEnd))) {
  12. break;
  13. }
  14. wordEnd++;
  15. }
  16. return wordEnd;
  17. }

代码示例来源:origin: bobbylight/RSyntaxTextArea

  1. @Override
  2. public void actionPerformedImpl(ActionEvent e, RTextArea textArea) {
  3. try {
  4. // We use the elements instead of calling getLineOfOffset(),
  5. // etc. to speed things up just a tad (i.e. micro-optimize).
  6. Document document = textArea.getDocument();
  7. int caretPosition = textArea.getCaretPosition();
  8. Element map = document.getDefaultRootElement();
  9. int currentLineNum = map.getElementIndex(caretPosition);
  10. Element currentLineElement = map.getElement(currentLineNum);
  11. // Always take -1 as we don't want to remove the newline.
  12. int currentLineEnd = currentLineElement.getEndOffset()-1;
  13. if (caretPosition<currentLineEnd) {
  14. document.remove(caretPosition,
  15. currentLineEnd-caretPosition);
  16. }
  17. } catch (BadLocationException ble) {
  18. ble.printStackTrace();
  19. }
  20. }

相关文章