MCPcopy Create free account
hub / github.com/ArtifexSoftware/mupdf / runSearch

Method runSearch

platform/java/example/ViewerCore.java:513–565  ·  view source on GitHub ↗
(final Location startPage, final Location finalPage, final int direction, final String needle, final OnException onException)

Source from the content-addressed store, hash-verified

511 }
512
513 public void runSearch(final Location startPage, final Location finalPage, final int direction, final String needle, final OnException onException) {
514 worker.add(new Worker.Task() {
515 Location searchPage = startPage;
516 Location hitPage = null;
517 Quad[][] hits = new Quad[0][];
518 boolean done = false;
519 boolean cancelled = false;
520 public void work() {
521 long executionUntil = System.currentTimeMillis() + 100;
522 do {
523 if (cancelSearch) {
524 cancelled = true;
525 continue;
526 }
527
528 Page page = doc.loadPage(searchPage);
529 hits = page.search(needle);
530 if (hits != null && hits.length > 0) {
531 hitPage = searchPage;
532 done = true;
533 continue;
534 }
535 page.destroy();
536
537 if (searchPage.equals(finalPage)) {
538 done = true;
539 }
540 else if (direction >= 0)
541 searchPage = doc.nextPage(searchPage);
542 else
543 searchPage = doc.previousPage(searchPage);
544 } while (!cancelled && !done && System.currentTimeMillis() < executionUntil);
545 }
546 public void run() {
547 if (cancelled) {
548 ViewerCore.this.searchNeedle = null;
549 ViewerCore.this.searchHitPage = null;
550 callback.onSearchCancelled();
551 } else if (done) {
552 ViewerCore.this.searchHitPage = hitPage;
553 callback.onSearchStop(needle, hitPage);
554 } else {
555 callback.onSearchPage(searchPage, needle);
556 worker.add(this);
557 }
558 }
559 public void exception(Throwable t) {
560 callback.onSearchStop(needle, null);
561 if (onException != null)
562 onException.run(t);
563 }
564 });
565 }
566
567 public void save(final String path, final String options, final DocumentWriter.OCRListener ocrListener, final OnException onException) {
568 worker.add(new Worker.Task() {

Callers 1

runMethod · 0.95

Calls 1

addMethod · 0.45

Tested by

no test coverage detected