javax.swing.JEditorPane#setSelectionEnd ( )源码实例Demo

下面列出了javax.swing.JEditorPane#setSelectionEnd ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: netbeans   文件: ToggleBlockCommentActionTest.java
protected void testSelectionInFile(String file) throws Exception {
    FileObject fo = getTestFile(file);
    assertNotNull(fo);
    String source = readFile(fo);

    int sourcePosStart = source.indexOf('^');
    int sourcePosEnd = source.lastIndexOf('^') - 1;
    assertNotNull(sourcePosStart);
    String sourceWithoutMarker = source.substring(0, sourcePosStart) + source.substring(sourcePosStart+1);
    sourceWithoutMarker = sourceWithoutMarker.substring(0, sourcePosEnd) + sourceWithoutMarker.substring(sourcePosEnd+1);

    JEditorPane ta = getPane(sourceWithoutMarker);
    ta.setSelectionStart(sourcePosStart);
    ta.setSelectionEnd(sourcePosEnd);
    BaseDocument doc = (BaseDocument) ta.getDocument();

    Action a = new ToggleBlockCommentAction();
    a.actionPerformed(new ActionEvent(ta, 0, null));

    doc.getText(0, doc.getLength());

    String target = doc.getText(0, doc.getLength());
    assertDescriptionMatches(file, target, false, ".toggleComment");
}
 
源代码2 项目: netbeans   文件: ToggleBlockCommentActionTest.java
protected void testSelectionInFile(String file) throws Exception {
    FileObject fo = getTestFile(file);
    assertNotNull(fo);
    String source = readFile(fo);

    int sourcePosStart = source.indexOf('^');
    assertNotNull(sourcePosStart);
    int sourcePosEnd = source.lastIndexOf('^');
    assertNotNull(sourcePosEnd);
    String sourceWithoutMarkers = source.substring(0, sourcePosStart) + source.substring(sourcePosStart + 1, sourcePosEnd) + source.substring(sourcePosEnd + 1);

    JEditorPane ta = getPane(sourceWithoutMarkers);
    Caret caret = ta.getCaret();
    caret.setDot(sourcePosStart);
    ta.setSelectionStart(sourcePosStart);
    ta.setSelectionEnd(sourcePosEnd - 1);
    BaseDocument doc = (BaseDocument) ta.getDocument();

    Action a = new ToggleBlockCommentAction();
    a.actionPerformed(new ActionEvent(ta, 0, null));

    doc.getText(0, doc.getLength());
    doc.insertString(caret.getDot(), "^", null);

    String target = doc.getText(0, doc.getLength());
    assertDescriptionMatches(file, target, false, ".toggleComment");
}
 
源代码3 项目: netbeans   文件: PhpTypedTextInterceptorTest.java
protected void insertChar(String original, char insertText, String expected, String selection, boolean codeTemplateMode, Map<String, Object> formatPrefs) throws Exception {
    String source = wrapAsPhp(original);
    String reformatted = wrapAsPhp(expected);
    Formatter formatter = getFormatter(null);

    int sourcePos = source.indexOf('^');
    assertNotNull(sourcePos);
    source = source.substring(0, sourcePos) + source.substring(sourcePos+1);

    int reformattedPos = reformatted.indexOf('^');
    assertNotNull(reformattedPos);
    reformatted = reformatted.substring(0, reformattedPos) + reformatted.substring(reformattedPos+1);

    JEditorPane ta = getPane(source);
    Caret caret = ta.getCaret();
    caret.setDot(sourcePos);
    if (selection != null) {
        int start = original.indexOf(selection);
        assertTrue(start != -1);
        assertTrue("Ambiguous selection - multiple occurrences of selection string",
                original.indexOf(selection, start+1) == -1);
        ta.setSelectionStart(start);
        ta.setSelectionEnd(start+selection.length());
        assertEquals(selection, ta.getSelectedText());
    }

    BaseDocument doc = (BaseDocument) ta.getDocument();

    if (codeTemplateMode) {
        // Copied from editor/codetemplates/src/org/netbeans/lib/editor/codetemplates/CodeTemplateInsertHandler.java
        String EDITING_TEMPLATE_DOC_PROPERTY = "processing-code-template"; // NOI18N
        doc.putProperty(EDITING_TEMPLATE_DOC_PROPERTY, Boolean.TRUE);
    }

    if (formatter != null) {
        configureIndenters(doc, formatter, true);
    }

    setupDocumentIndentation(doc, null);

    if (formatter != null && formatPrefs != null) {
        setOptionsForDocument(doc, formatPrefs);
    }
    runKitAction(ta, DefaultEditorKit.defaultKeyTypedAction, ""+insertText);

    String formatted = doc.getText(0, doc.getLength());
    assertEquals(reformatted, formatted);

    if (reformattedPos != -1) {
        assertEquals(reformattedPos, caret.getDot());
    }
}
 
源代码4 项目: netbeans   文件: CslTestBase.java
protected void insertChar(String original, char insertText, String expected, String selection, boolean codeTemplateMode) throws Exception {
    String source = original;
    String reformatted = expected;
    Formatter formatter = getFormatter(null);

    int sourcePos = source.indexOf('^');
    assertNotNull(sourcePos);
    source = source.substring(0, sourcePos) + source.substring(sourcePos+1);

    int reformattedPos = reformatted.indexOf('^');
    assertNotNull(reformattedPos);
    reformatted = reformatted.substring(0, reformattedPos) + reformatted.substring(reformattedPos+1);

    JEditorPane ta = getPane(source);
    Caret caret = ta.getCaret();
    caret.setDot(sourcePos);
    if (selection != null) {
        int start = original.indexOf(selection);
        assertTrue(start != -1);
        assertTrue("Ambiguous selection - multiple occurrences of selection string",
                original.indexOf(selection, start+1) == -1);
        ta.setSelectionStart(start);
        ta.setSelectionEnd(start+selection.length());
        assertEquals(selection, ta.getSelectedText());
    }

    BaseDocument doc = (BaseDocument) ta.getDocument();

    if (codeTemplateMode) {
        // Copied from editor/codetemplates/src/org/netbeans/lib/editor/codetemplates/CodeTemplateInsertHandler.java
        String EDITING_TEMPLATE_DOC_PROPERTY = "processing-code-template"; // NOI18N
        doc.putProperty(EDITING_TEMPLATE_DOC_PROPERTY, Boolean.TRUE);
    }

    if (formatter != null) {
        configureIndenters(doc, formatter, true);
    }

    setupDocumentIndentation(doc, null);

    runKitAction(ta, DefaultEditorKit.defaultKeyTypedAction, ""+insertText);

    String formatted = doc.getText(0, doc.getLength());
    assertEquals(reformatted, formatted);

    if (reformattedPos != -1) {
        assertEquals(reformattedPos, caret.getDot());
    }
}
 
源代码5 项目: netbeans   文件: CslTestBase.java
protected JEditorPane getPane(String text) throws Exception {
    if (!SwingUtilities.isEventDispatchThread()) {
        fail("You must run this test from the event dispatch thread! To do that, add @Override protected boolean runInEQ() { return true } from your testcase!");
    }
    String BEGIN = "$start$"; // NOI18N
    String END = "$end$"; // NOI18N
    int sourceStartPos = text.indexOf(BEGIN);
    int caretPos = -1;
    int sourceEndPos = -1;
    if (sourceStartPos != -1) {
        text = text.substring(0, sourceStartPos) + text.substring(sourceStartPos+BEGIN.length());
        sourceEndPos = text.indexOf(END);
        assertTrue(sourceEndPos != -1);
        text = text.substring(0, sourceEndPos) + text.substring(sourceEndPos+END.length());
    } else {
        caretPos = text.indexOf('^');
        if (caretPos != -1) {
            text = text.substring(0, caretPos) + text.substring(caretPos+1);
        }
    }

    JEditorPane pane = new JEditorPane();
    pane.setContentType(getPreferredMimeType());
    final NbEditorKit kit = ((NbEditorKit)getEditorKit(getPreferredMimeType()));


    Thread preload = new Thread(new Runnable() {

        @Override
        public void run() {
            // Preload actions and other stuff
            if (kit instanceof Callable) {
                try {
                    ((Callable) kit).call();
                } catch (Exception ex) {
                    Exceptions.printStackTrace(ex);
                }
            }
            kit.getActions();
        }
    });
    preload.start();
    preload.join();
    pane.setEditorKit(kit);
    pane.setText(text);

    BaseDocument bdoc = (BaseDocument)pane.getDocument();

    bdoc.putProperty(org.netbeans.api.lexer.Language.class, getPreferredLanguage().getLexerLanguage());
    bdoc.putProperty("mimeType", getPreferredMimeType());

    //bdoc.insertString(0, text, null);
    if (sourceStartPos != -1) {
        assertTrue(sourceEndPos != -1);
        pane.setSelectionStart(sourceStartPos);
        pane.setSelectionEnd(sourceEndPos);
    } else if (caretPos != -1) {
        pane.getCaret().setDot(caretPos);
    }
    pane.getCaret().setSelectionVisible(true);

    return pane;
}
 
源代码6 项目: Shuffle-Move   文件: BugReportService.java
/**
 * @return
 */
@SuppressWarnings("serial")
private JComponent getInstructionPanel() {
   ConfigManager preferencesManager = getUser().getPreferencesManager();
   final int width = preferencesManager.getIntegerValue(KEY_POPUP_WIDTH, DEFAULT_POPUP_WIDTH);
   JEditorPane textPane = new JEditorPane() {
      @Override
      public Dimension getPreferredSize() {
         Dimension d = super.getPreferredSize();
         d.width = width - 40;
         return d;
      }
   };
   textPane.setFocusable(false);
   textPane.setEditable(false);
   textPane.setContentType("text/html");
   textPane.addHyperlinkListener(new HyperlinkListener() {
      @Override
      public void hyperlinkUpdate(HyperlinkEvent e) {
         if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
            if (Desktop.isDesktopSupported()) {
               try {
                  Desktop.getDesktop().browse(e.getURL().toURI());
               } catch (IOException | URISyntaxException | NullPointerException e1) {
                  LOG.severe(getString(KEY_BAD_LINK, e1.getMessage()));
               }
            }
         }
      }
   });
   JScrollPane jsp = new JScrollPane(textPane, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
         ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
   jsp.getVerticalScrollBar().setUnitIncrement(30);
   String text = getUser().getPathManager().readEntireDocument(getFilePath(), getDefaultFileKey());
   textPane.setText(text);
   textPane.setSelectionStart(0);
   textPane.setSelectionEnd(0);
   textPane.repaint();
   jsp.validate();
   return jsp;
}