javax.swing.text.JTextComponent#isEditable ( )源码实例Demo

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

源代码1 项目: gcs   文件: CutCommand.java
@Override
public void adjust() {
    boolean   enable = false;
    Component comp   = getFocusOwner();
    if (comp instanceof JTextComponent && comp.isEnabled()) {
        JTextComponent textComp = (JTextComponent) comp;
        if (textComp.isEditable()) {
            enable = textComp.getSelectionStart() != textComp.getSelectionEnd();
        }
    } else {
        Cutable cutable = getTarget(Cutable.class);
        if (cutable != null) {
            enable = cutable.canCutSelection();
        }
    }
    setEnabled(enable);
}
 
源代码2 项目: gcs   文件: PasteCommand.java
@Override
public void adjust() {
    boolean   enable = false;
    Component comp   = getFocusOwner();
    if (comp instanceof JTextComponent && comp.isEnabled()) {
        JTextComponent textComp = (JTextComponent) comp;
        if (textComp.isEditable()) {
            try {
                enable = comp.getToolkit().getSystemClipboard().isDataFlavorAvailable(DataFlavor.stringFlavor);
            } catch (Exception exception) {
                Log.warn(exception);
            }
        }
    } else {
        Pastable pastable = getTarget(Pastable.class);
        if (pastable != null) {
            enable = pastable.canPasteSelection();
        }
    }
    setEnabled(enable);
}
 
源代码3 项目: netbeans   文件: CamelCaseOperations.java
static void replaceText(JTextComponent textComponent, final int offset, final int length, final String text) {
    if (!textComponent.isEditable()) {
        return;
    }
    final Document document = textComponent.getDocument();
    Runnable r = new Runnable() {
        public @Override void run() {
            try {
                if (length > 0) {
                    document.remove(offset, length);
                }
                document.insertString(offset, text, null);
            } catch (BadLocationException ble) {
                ErrorManager.getDefault().notify(ble);
            }
        }
    };
    if (document instanceof BaseDocument) {
        ((BaseDocument)document).runAtomic(r);
    } else {
        r.run();
    }
}
 
源代码4 项目: netbeans   文件: ActionFactory.java
public void actionPerformed(ActionEvent evt, final JTextComponent target) {
    if (target != null) {
        if (!target.isEditable() || !target.isEnabled()) {
            target.getToolkit().beep();
            return;
        }

        final BaseDocument doc = (BaseDocument)target.getDocument();
        doc.runAtomicAsUser (new Runnable () {
            public void run () {
                DocumentUtilities.setTypingModification(doc, true);
                try {
                    target.replaceSelection(null);
                } finally {
                    DocumentUtilities.setTypingModification(doc, false);
                }
            }
        });
    }
}
 
源代码5 项目: rapidminer-studio   文件: TextActions.java
@Override
public void actionPerformed(ActionEvent e) {
	JTextComponent target = getTextComponent(e);
	boolean beep = true;
	if ((target != null) && (target.isEditable())) {
		try {
			Document doc = target.getDocument();
			int ss = 0;
			int se = doc.getLength();

			if (ss != se) {
				doc.remove(ss, se - ss);
				beep = false;
			}
		} catch (BadLocationException bl) {
		}
	}
	if (beep) {
		UIManager.getLookAndFeel().provideErrorFeedback(target);
	}
}
 
源代码6 项目: netbeans   文件: ActionFactory.java
public void actionPerformed (final ActionEvent evt, final JTextComponent target) {
    if (target != null) {
        if (!target.isEditable() || !target.isEnabled()) {
            target.getToolkit().beep();
            return;
        }

        final Caret caret = target.getCaret();
        final BaseDocument doc = (BaseDocument)target.getDocument();
        doc.runAtomicAsUser (new Runnable () {
            public void run () {
                DocumentUtilities.setTypingModification(doc, true);
                try {
                    int dotPos = caret.getDot();
                    int bolPos = Utilities.getRowStart(doc, dotPos);
                    if (dotPos == bolPos) { // at begining of the line
                        if (dotPos > 0) {
                            doc.remove(dotPos - 1, 1); // remove previous new-line
                        }
                    } else { // not at the line begining
                        char[] chars = doc.getChars(bolPos, dotPos - bolPos);
                        if (Analyzer.isWhitespace(chars, 0, chars.length)) {
                            doc.remove(bolPos, dotPos - bolPos); // remove whitespace
                        } else {
                            int firstNW = Utilities.getRowFirstNonWhite(doc, bolPos);
                            if (firstNW >= 0 && firstNW < dotPos) {
                                doc.remove(firstNW, dotPos - firstNW);
                            }
                        }
                    }
                } catch (BadLocationException e) {
                    target.getToolkit().beep();
                } finally {
                    DocumentUtilities.setTypingModification(doc, false);
                }
            }
        });
    }
}
 
源代码7 项目: FlatLaf   文件: FlatEditorPaneUI.java
@Override
protected void paintBackground( Graphics g ) {
	JTextComponent c = getComponent();

	// for compatibility with IntelliJ themes
	if( isIntelliJTheme && (!c.isEnabled() || !c.isEditable()) && (c.getBackground() instanceof UIResource) ) {
		FlatUIUtils.paintParentBackground( g, c );
		return;
	}

	super.paintBackground( g );
}
 
源代码8 项目: xtunnel   文件: TextComponentPopupMenu.java
public void show(Component invoker, int x, int y) {
	JTextComponent tc = (JTextComponent) invoker;
	String sel = tc.getSelectedText();

	boolean selected = sel != null && !sel.equals("");
	boolean enableAndEditable = tc.isEnabled() && tc.isEditable();

	cutItem.setEnabled(selected && enableAndEditable);
	copyItem.setEnabled(selected && tc.isEnabled());
	deleteItem.setEnabled(selected && enableAndEditable);
	pasteItem.setEnabled(enableAndEditable);
	selectAllItem.setEnabled(tc.isEnabled());

	super.show(invoker, x, y);
}
 
源代码9 项目: jdk8u60   文件: AquaTextFieldBorder.java
protected static State getStateFor(final JTextComponent jc) {
    if (!AquaFocusHandler.isActive(jc)) {
        return State.INACTIVE;
    }

    if (!jc.isEnabled()) {
        return State.DISABLED;
    }

    if (!jc.isEditable()) {
        return State.DISABLED;
    }

    return State.ACTIVE;
}
 
源代码10 项目: openjdk-jdk9   文件: AquaTextFieldBorder.java
protected static State getStateFor(final JTextComponent jc) {
    if (!AquaFocusHandler.isActive(jc)) {
        return State.INACTIVE;
    }

    if (!jc.isEnabled()) {
        return State.DISABLED;
    }

    if (!jc.isEditable()) {
        return State.DISABLED;
    }

    return State.ACTIVE;
}
 
源代码11 项目: netbeans   文件: XMLKit.java
public void actionPerformed(ActionEvent evt, JTextComponent target) {
    if (target == null) return;
    if (!target.isEditable() || !target.isEnabled()) {
        problem(null);
        return;
    }
    Caret caret = target.getCaret();
    BaseDocument doc = (BaseDocument)target.getDocument();
    try {
        doc.dump(System.out);    
        if (target == null)  throw new BadLocationException(null,0);  // folish compiler
    } catch (BadLocationException e) {
        problem(null);
    }
}
 
源代码12 项目: netbeans   文件: ActionFactory.java
public void actionPerformed(final ActionEvent evt, final JTextComponent target) {
    if (target != null) {
        if (!target.isEditable() || !target.isEnabled()) {
            target.getToolkit().beep();
            return;
        }

        final Caret caret = target.getCaret();
        final BaseDocument doc = (BaseDocument)target.getDocument();
        doc.runAtomicAsUser (new Runnable () {
            public void run () {
                DocumentUtilities.setTypingModification(doc, true);
                try {
                    int dotPos = caret.getDot();
                    int bolPos = Utilities.getRowStart(doc, dotPos);
                    int wsPos = Utilities.getPreviousWord(target, dotPos);
                    wsPos = (dotPos == bolPos) ? wsPos : Math.max(bolPos, wsPos);
                    doc.remove(wsPos, dotPos - wsPos);
                } catch (BadLocationException e) {
                    target.getToolkit().beep();
                } finally {
                    DocumentUtilities.setTypingModification(doc, false);
                }
            }
        });
    }
}
 
源代码13 项目: openjdk-jdk8u-backup   文件: AquaTextFieldBorder.java
protected static State getStateFor(final JTextComponent jc) {
    if (!AquaFocusHandler.isActive(jc)) {
        return State.INACTIVE;
    }

    if (!jc.isEnabled()) {
        return State.DISABLED;
    }

    if (!jc.isEditable()) {
        return State.DISABLED;
    }

    return State.ACTIVE;
}
 
源代码14 项目: netbeans   文件: InsertTabAction.java
@Override
public void actionPerformed(final ActionEvent evt, final JTextComponent target) {
    BaseKit.InsertTabAction insertTabAction = new BaseKit.InsertTabAction();
    insertTabAction.actionPerformed(evt, target);
    if (target != null) {
        if (!target.isEditable() || !target.isEnabled()) {
            target.getToolkit().beep();
            return;
        }
        final Caret caret = target.getCaret();
        final BaseDocument doc = (BaseDocument) target.getDocument();
        doc.runAtomic(new TabReplacer(doc, caret.getDot()));
    }
}
 
源代码15 项目: finalspeed-91yun   文件: TextComponentPopupMenu.java
public void show(Component invoker, int x, int y) {
	JTextComponent tc = (JTextComponent) invoker;
	String sel = tc.getSelectedText();

	boolean selected = sel != null && !sel.equals("");
	boolean enableAndEditable = tc.isEnabled() && tc.isEditable();

	cutItem.setEnabled(selected && enableAndEditable);
	copyItem.setEnabled(selected && tc.isEnabled());
	deleteItem.setEnabled(selected && enableAndEditable);
	pasteItem.setEnabled(enableAndEditable);
	selectAllItem.setEnabled(tc.isEnabled());

	super.show(invoker, x, y);
}
 
源代码16 项目: netbeans   文件: CamelCaseOperations.java
static void replaceChar(JTextComponent textComponent, int offset, char c) {
    if (!textComponent.isEditable()) {
        return;
    }
    replaceText(textComponent, offset, 1, String.valueOf(c));
}
 
源代码17 项目: netbeans   文件: ActionFactory.java
public void actionPerformed (final ActionEvent evt, final JTextComponent target) {
    // shift-enter while editing aka startNewLineAction
    if (!target.isEditable() || !target.isEnabled()) {
        target.getToolkit().beep();
        return;
    }
    
    final BaseDocument doc = (BaseDocument)target.getDocument();
    
    doc.runAtomicAsUser (new Runnable () {
        public void run () {
        DocumentUtilities.setTypingModification(doc, true);
        try {
            ActionMap actionMap = target.getActionMap();
            Action cutAction;
            if (actionMap != null && (cutAction = actionMap.get(DefaultEditorKit.cutAction)) != null) {
                Caret caret = target.getCaret();
                int caretOffset = caret.getDot();
                boolean toLineEnd = BaseKit.cutToLineEndAction.equals(getValue(Action.NAME));
                int boundOffset = toLineEnd
                        ? Utilities.getRowEnd(target, caretOffset)
                        : Utilities.getRowStart(target, caretOffset);

                // Check whether there is only whitespace from caret position
                // till end of line
                if (toLineEnd) {
                    String text = target.getText(caretOffset, boundOffset - caretOffset);
                    if (boundOffset < doc.getLength() && text != null && text.matches("^[\\s]*$")) { // NOI18N
                        boundOffset += 1; // Include line separator
                    }
                }

                caret.moveDot(boundOffset);

                // Call the cut action to cut out the selection
                cutAction.actionPerformed(evt);
            }
        } catch (BadLocationException ex) {
            ex.printStackTrace();
        } finally{
            DocumentUtilities.setTypingModification(doc, false);
        }
        }
    });
}
 
源代码18 项目: netbeans   文件: ActionFactory.java
@Override
public void actionPerformed (final ActionEvent evt, final JTextComponent target) {
    if (target != null) {
        if (!target.isEditable() || !target.isEnabled()) {
            target.getToolkit().beep();
            return;
        }
        final BaseDocument doc = (BaseDocument) target.getDocument();
        if (doc instanceof GuardedDocument && ((GuardedDocument) doc).isPosGuarded(target.getCaretPosition())) {
            target.getToolkit().beep();
            return;
        }
        doc.runAtomicAsUser (new Runnable () {
            @Override
            public void run () {
                DocumentUtilities.setTypingModification(doc, true);
                try {
                    Element rootElement = doc.getDefaultRootElement();

                    Caret caret = target.getCaret();
                    boolean selection = false;
                    boolean backwardSelection = false;
                    int start = target.getCaretPosition();
                    int end = start;

                    // check if there is a selection
                    if (Utilities.isSelectionShowing(caret)) {
                        int selStart = caret.getDot();
                        int selEnd = caret.getMark();
                        start = Math.min(selStart, selEnd);
                        end =   Math.max(selStart, selEnd) - 1;
                        selection = true;
                        backwardSelection = (selStart >= selEnd);
                    }

                    int zeroBaseStartLineNumber = rootElement.getElementIndex(start);
                    int zeroBaseEndLineNumber = rootElement.getElementIndex(end);

                    if (zeroBaseStartLineNumber == -1) {
                        // could not get line number
                        target.getToolkit().beep();
                    } else if (zeroBaseStartLineNumber == 0) {
                        // already first line
                    } else {
                        try {
                            // get line text
                            Element startLineElement = rootElement.getElement(zeroBaseStartLineNumber);
                            int startLineStartOffset = startLineElement.getStartOffset();

                            Element endLineElement = rootElement.getElement(zeroBaseEndLineNumber);
                            int endLineEndOffset = endLineElement.getEndOffset();

                            String linesText = doc.getText(startLineStartOffset, (endLineEndOffset - startLineStartOffset));

                            Element previousLineElement = rootElement.getElement(zeroBaseStartLineNumber - 1);
                            int previousLineStartOffset = previousLineElement.getStartOffset();

                            int column = start - startLineStartOffset;

                            // insert the text before the previous line
                            doc.insertString(previousLineStartOffset, linesText, null);
                            
                            // remove the line
                            if (endLineEndOffset + linesText.length() > doc.getLength()) {
                                removeLineByLine(doc, startLineStartOffset + linesText.length() - 1, endLineEndOffset - startLineStartOffset);
                            } else {
                                removeLineByLine(doc, startLineStartOffset + linesText.length(), endLineEndOffset - startLineStartOffset);
                            }
                            
                            if (selection) {
                                // select moved lines
                                if (backwardSelection) {
                                    caret.setDot(previousLineStartOffset + column);
                                    caret.moveDot(previousLineStartOffset + (endLineEndOffset - startLineStartOffset) - (endLineEndOffset - end - 1));
                                } else {
                                    caret.setDot(previousLineStartOffset + (endLineEndOffset - startLineStartOffset) - (endLineEndOffset - end - 1));
                                    caret.moveDot(previousLineStartOffset + column);
                                }
                            } else {
                                // set caret position
                                target.setCaretPosition(previousLineStartOffset + column);
                            }
                        } catch (BadLocationException ex) {
                            target.getToolkit().beep();
                        }
                    }
                } finally {
                    DocumentUtilities.setTypingModification(doc, false);
                }
            }
        });
    }
}
 
源代码19 项目: netbeans   文件: XMLKit.java
public void actionPerformed(ActionEvent evt, JTextComponent target) {
    if (target == null) return;
    if (!target.isEditable() || !target.isEnabled()) {
        problem(null);
        return;
    }
    Caret caret = target.getCaret();
    BaseDocument doc = (BaseDocument)target.getDocument();
    try {
        if (caret.isSelectionVisible()) {
            int startPos = Utilities.getRowStart(doc, target.getSelectionStart());
            int endPos = target.getSelectionEnd();
            doc.atomicLock();
            try {

                if (endPos > 0 && Utilities.getRowStart(doc, endPos) == endPos) {
                    endPos--;
                }

                int pos = startPos;
                int lineCnt = Utilities.getRowCount(doc, startPos, endPos);                            

                for (;lineCnt > 0; lineCnt--) {
                    doc.insertString(pos, commentStartString, null); 
                    doc.insertString(Utilities.getRowEnd(doc,pos), commentEndString, null);
                    pos = Utilities.getRowStart(doc, pos, +1);
                }

            } finally {
                doc.atomicUnlock();
            }
        } else { // selection not visible
            doc.insertString(Utilities.getRowStart(doc, target.getSelectionStart()),
                commentStartString, null);
            doc.insertString(Utilities.getRowEnd(doc, target.getSelectionStart()),
                commentEndString, null);
        }
    } catch (BadLocationException e) {
        problem(null);
    }
}
 
源代码20 项目: netbeans   文件: ActionFactory.java
public void actionPerformed (final ActionEvent evt, final JTextComponent target) {
    if (target != null) {
        if (!target.isEditable() || !target.isEnabled()) {
            target.getToolkit().beep();
            return;
        }
        final BaseDocument doc = (BaseDocument) target.getDocument();
        doc.runAtomicAsUser (new Runnable () {
            public void run () {
                DocumentUtilities.setTypingModification(doc, true);
                try {
                    Element rootElement = doc.getDefaultRootElement();

                    Caret caret = target.getCaret();
                    boolean selection = false;
                    boolean backwardSelection = false;
                    int start = target.getCaretPosition();
                    int end = start;

                    // check if there is a selection
                    if (Utilities.isSelectionShowing(caret)) {
                        int selStart = caret.getDot();
                        int selEnd = caret.getMark();
                        start = Math.min(selStart, selEnd);
                        end =   Math.max(selStart, selEnd) - 1;
                        selection = true;
                        backwardSelection = (selStart >= selEnd);
                    }

                    int zeroBaseStartLineNumber = rootElement.getElementIndex(start);
                    int zeroBaseEndLineNumber = rootElement.getElementIndex(end);

                    if (zeroBaseStartLineNumber == -1) {
                        // could not get line number
                        target.getToolkit().beep();
                        return;
                    } else {
                        try {
                            // get line text
                            Element startLineElement = rootElement.getElement(zeroBaseStartLineNumber);
                            int startLineStartOffset = startLineElement.getStartOffset();

                            Element endLineElement = rootElement.getElement(zeroBaseEndLineNumber);
                            int endLineEndOffset = endLineElement.getEndOffset();

                            String linesText = doc.getText(startLineStartOffset, (endLineEndOffset - startLineStartOffset));

                            int column = start - startLineStartOffset;

                            try {
                                NavigationHistory.getEdits().markWaypoint(target, startLineStartOffset, false, true);
                            } catch (BadLocationException e) {
                                LOG.log(Level.WARNING, "Can't add position to the history of edits.", e); //NOI18N
                            }
                            // insert it
                            doc.insertString(startLineStartOffset, linesText, null);

                            if (selection) {
                                // select moved lines
                                if (backwardSelection) {
                                    caret.setDot(startLineStartOffset + column);
                                    caret.moveDot(startLineStartOffset + (endLineEndOffset - startLineStartOffset) - (endLineEndOffset - end - 1));
                                } else {
                                    caret.setDot(startLineStartOffset + (endLineEndOffset - startLineStartOffset) - (endLineEndOffset - end - 1));
                                    caret.moveDot(startLineStartOffset + column);
                                }
                            } else {
                                // set caret position
                                target.setCaretPosition(startLineStartOffset + column);
                            }
                        } catch (BadLocationException ex) {
                            target.getToolkit().beep();
                        }
                    }
                } finally {
                    DocumentUtilities.setTypingModification(doc, false);
                }
            }
        });
    }
}