/** * Opens an index entry in the booklet. * * @param resetTextField will clear the text in the searchField and reset the search entry's data */ @SuppressWarnings("unchecked") public static void openIndexEntry( GuiBooklet booklet, BookletEntry entry, int page, boolean resetTextField) { booklet.searchField.setVisible(entry instanceof BookletEntryAllSearch); booklet.searchField.setFocused(entry instanceof BookletEntryAllSearch); if (resetTextField) { booklet.searchField.setText(""); if (entry instanceof BookletEntryAllSearch) { entry.chapters = (ArrayList<BookletChapter>) ((BookletEntryAllSearch) entry).allChapters.clone(); } } booklet.currentPage = null; booklet.currentChapter = null; booklet.currentIndexEntry = entry; booklet.indexPageAmount = entry == null ? 1 : entry.chapters.size() / booklet.chapterButtons.length + 1; booklet.pageOpenInIndex = entry == null ? 1 : (booklet.indexPageAmount <= page || page <= 0 ? booklet.indexPageAmount : page); booklet.buttonPreviousScreen.visible = entry != null; booklet.buttonForward.visible = booklet.pageOpenInIndex < booklet.indexPageAmount; booklet.buttonBackward.visible = booklet.pageOpenInIndex > 1; for (int i = 0; i < booklet.chapterButtons.length; i++) { IndexButton button = (IndexButton) booklet.chapterButtons[i]; if (entry == null) { boolean entryExists = InitBooklet.entries.size() > i; button.visible = entryExists; if (entryExists) { button.displayString = InitBooklet.entries.get(i).getNameWithColor(); button.chap = null; } } else { boolean entryExists = entry.chapters.size() > i + (booklet.chapterButtons.length * booklet.pageOpenInIndex - booklet.chapterButtons.length); button.visible = entryExists; if (entryExists) { BookletChapter chap = entry.chapters.get( i + (booklet.chapterButtons.length * booklet.pageOpenInIndex - booklet.chapterButtons.length)); button.displayString = chap.getNameWithColor(); button.chap = chap; } } } }
/** Updates the search bar, should be called when it is getting typed into */ @SuppressWarnings("unchecked") public static void updateSearchBar(GuiBooklet booklet) { if (booklet.currentIndexEntry instanceof BookletEntryAllSearch) { BookletEntryAllSearch currentEntry = (BookletEntryAllSearch) booklet.currentIndexEntry; if (booklet.searchField.getText() != null && !booklet.searchField.getText().isEmpty()) { currentEntry.chapters.clear(); for (BookletChapter chapter : currentEntry.allChapters) { if (chapter .getLocalizedName() .toLowerCase(Locale.ROOT) .contains(booklet.searchField.getText().toLowerCase(Locale.ROOT))) { currentEntry.chapters.add(chapter); } } } else { currentEntry.chapters = (ArrayList<BookletChapter>) currentEntry.allChapters.clone(); } openIndexEntry(booklet, booklet.currentIndexEntry, booklet.pageOpenInIndex, false); } }