void doCaretUpdate(int dot, int mark) { if (dot == mark) { mainFrame.cutItem.setEnabled(false); mainFrame.copyItem.setEnabled(false); mainFrame.deleteItem.setEnabled(false); } else { mainFrame.cutItem.setEnabled(true); mainFrame.copyItem.setEnabled(true); mainFrame.deleteItem.setEnabled(true); } int length = sourceArea.getText().length(); if (length == 0 || abs(mark - dot) == length) { mainFrame.selectAllItem.setEnabled(false); } else { mainFrame.selectAllItem.setEnabled(true); } try { if (length == 0) { mainFrame.selectLineItem.setEnabled(false); } else { int lineNum = sourceArea.getLineOfOffset(dot); int startLine = sourceArea.getLineStartOffset(lineNum); int endLine = sourceArea.getLineEndOffset(lineNum); if (endLine - startLine <= 1) { mainFrame.selectLineItem.setEnabled(false); } else { mainFrame.selectLineItem.setEnabled(true); } } } catch (BadLocationException ex) { ex.printStackTrace(); } try { int line = sourceArea.getLineOfOffset(dot); lineText.setText(Integer.toString(line + 1)); int column = dot - sourceArea.getLineStartOffset(line); columnText.setText(Integer.toString(column + 1)); } catch (BadLocationException ex) { ex.printStackTrace(); } }
private void highlightError(int index) { String message = (String) messages.elementAt(index); int i = message.indexOf(":"); if ((i != -1) && (i < 10)) { try { int lineNumber = Integer.parseInt(message.substring(0, i).trim()) - 1; if (lineNumber < sourceArea.getLineCount()) { int start = sourceArea.getLineStartOffset(lineNumber); int end = sourceArea.getLineEndOffset(lineNumber); sourceArea.requestFocus(); sourceArea.setSelectionStart(start); sourceArea.setSelectionEnd(end - 1); } } catch (Exception ex) { ex.printStackTrace(); } } }