private static void attachAllInFile(EditorCookie cook, CompileAnnotation annot) { Set<CompileAnnotation> newSet = null; synchronized (hyperlinks) { newSet = new HashSet<CompileAnnotation>(hyperlinks); } Iterator it = newSet.iterator(); while (it.hasNext()) { CompileAnnotation ann = (CompileAnnotation)it.next(); if (ann.getFile().equals(annot.getFile())) { if (ann.getLine() != -1) { Line l = cook.getLineSet().getOriginal(ann.getLine() - 1); if (! l.isDeleted()) { ann.attachAsNeeded(l); } } } } }
@Override public void run() { try { EditorCookie ed = dob.getLookup().lookup(EditorCookie.class); if (ed != null && /* not true e.g. for *_ja.properties */ file == dob.getPrimaryFile()) { if (lineNum == -1) { // OK, just open it. ed.open(); } else { ed.openDocument();//XXX getLineSet doesn't do it for you try { Line l = ed.getLineSet().getOriginal(lineNum - 1); if (!l.isDeleted()) { l.show(ShowOpenType.OPEN, ShowVisibilityType.FOCUS); } } catch (IndexOutOfBoundsException ioobe) { // Probably harmless. Bogus line number. ed.open(); } } } else { java.awt.Toolkit.getDefaultToolkit().beep(); } } catch (Exception ex2) { // XXX see above, should not be necessary to call openDocument // at all } } });
Line l = lc.getLineSet().getOriginal(line); if (!l.isDeleted()) { if (openTab) {
Line current = null; try { current = set.getOriginal (n); if (line.equals (current)) { return n;
Line l = lc.getLineSet().getOriginal(line); if (!l.isDeleted()) { if (openTab) {
set.getOriginal (to); set.getOriginal (middle);
Line current = null; try { current = set.getOriginal (n); if (line.equals (current)) { return n;
set.getOriginal (to); set.getOriginal (middle);
current = set.getOriginal(n);
private static int findMaxLine(Line.Set set) { int from = 0; int to = 32000; // probably larger than any existing document for (;;) { try { set.getOriginal(to); // if the line exists, double the max number, but keep // for reference that it exists from = to; to *= 2; } catch (IndexOutOfBoundsException ex) { break; } } while (from < to) { int middle = (from + to + 1) / 2; try { set.getOriginal(middle); // line exists from = middle; } catch (IndexOutOfBoundsException ex) { // line does not exists, we have to search lower to = middle - 1; } } return from; } }
Line getLine (String url, int lineNumber, Object timeStamp) { //System.err.println("LineTranslations.getLine("+lineNumber+", "+timeStamp+")"); Line.Set ls = getLineSet (url, timeStamp); if (ls == null) { return null; } try { //System.err.println(" Line.Set = "+ls+", date = "+ls.getDate()); //System.err.println(" current("+(lineNumber-1)+") = "+ls.getCurrent (lineNumber - 1)); //System.err.println(" originl("+(lineNumber-1)+") = "+ls.getOriginal (lineNumber - 1)); if (timeStamp == null) { return ls.getCurrent (lineNumber - 1); } else { return ls.getOriginal (lineNumber - 1); } } catch (IndexOutOfBoundsException e) { } catch (IllegalArgumentException e) { } return null; }
Line getLine (String url, int lineNumber, Object timeStamp) { //System.err.println("LineTranslations.getLine("+lineNumber+", "+timeStamp+")"); Line.Set ls = getLineSet (url, timeStamp); if (ls == null) { return null; } try { //System.err.println(" Line.Set = "+ls+", date = "+ls.getDate()); //System.err.println(" current("+(lineNumber-1)+") = "+ls.getCurrent (lineNumber - 1)); //System.err.println(" originl("+(lineNumber-1)+") = "+ls.getOriginal (lineNumber - 1)); if (timeStamp == null) { return ls.getCurrent (lineNumber - 1); } else { return ls.getOriginal (lineNumber - 1); } } catch (IndexOutOfBoundsException e) { } catch (IllegalArgumentException e) { } return null; }
/** Does a search for a given line number in a given Line.Set. */ private static int binarySearch (Line.Set set, int number, int from, int to) { while (from < to) { int middle = (from + to) / 2; Line l = set.getOriginal (middle); int ln = l.getLineNumber (); if (ln == number) { return middle; } if (ln < number) { // try after the middle from = middle + 1; } else { // try before the middle to = middle - 1; } } return from; }
/** Does a search for a given line number in a given Line.Set. */ private static int binarySearch (Line.Set set, int number, int from, int to) { while (from < to) { int middle = (from + to) / 2; Line l = set.getOriginal (middle); int ln = l.getLineNumber (); if (ln == number) { return middle; } if (ln < number) { // try after the middle from = middle + 1; } else { // try before the middle to = middle - 1; } } return from; }
Line getLine (String url, int lineNumber, Object timeStamp) { //System.err.println("LineTranslations.getLine("+lineNumber+", "+timeStamp+")"); Line.Set ls = getLineSet (url, timeStamp); //System.err.println(" Line.Set = "+ls+", date = "+ls.getDate()); //System.err.println(" current("+(lineNumber-1)+") = "+ls.getCurrent (lineNumber - 1)); //System.err.println(" originl("+(lineNumber-1)+") = "+ls.getOriginal (lineNumber - 1)); if (ls == null) return null; try { if (timeStamp == null) return ls.getCurrent (lineNumber - 1); else return ls.getOriginal (lineNumber - 1); } catch (IndexOutOfBoundsException e) { } catch (IllegalArgumentException e) { } return null; }
/** Does a search for a given line number in a given Line.Set. */ private static int binarySearch(Line.Set set, int number, int from, int to) { while (from < to) { int middle = (from + to) / 2; Line l = set.getOriginal(middle); int ln = l.getLineNumber(); if (ln == number) { return middle; } if (ln < number) { // try after the middle from = middle + 1; } else { // try before the middle to = middle - 1; } } return from; }
/** Find line object in the line set corresponding to original line number. * That is, finds the line in the current document which originally had the indicated line number. * If there have been modifications of that line, find one as close as possible. * * @param line number of the line * @return line object * @exception IndexOutOfBoundsException if <code>line</code> is an invalid index for the original set of lines */ public Line getOriginal (int line) throws IndexOutOfBoundsException { if (delegate != null) { return delegate.getOriginal (line); } return getCurrent (line); }
/** Find line object in the line set corresponding to original line number. * That is, finds the line in the current document which originally had the indicated line number. * If there have been modifications of that line, find one as close as possible. * * @param line number of the line * @return line object * @exception IndexOutOfBoundsException if <code>line</code> is an invalid index for the original set of lines */ public Line getOriginal (int line) throws IndexOutOfBoundsException { if (delegate != null) { return delegate.getOriginal (line); } return getCurrent (line); }
/** Find line object in the line set corresponding to original line number. * That is, finds the line in the current document which originally had the indicated line number. * If there have been modifications of that line, find one as close as possible. * * @param line number of the line * @return line object * @exception IndexOutOfBoundsException if <code>line</code> is an invalid index for the original set of lines */ public Line getOriginal(int line) throws IndexOutOfBoundsException { if (delegate != null) { return delegate.getOriginal(line); } return getCurrent(line); }
private void doEDT() { if (lc != null) { // XXX opens +-1 line Line l = lc.getLineSet().getOriginal(lineNumber); l.show(Line.ShowOpenType.OPEN, Line.ShowVisibilityType.FOCUS); } }