private void updateSearchControls() { // setup search controls if (currentSource != null && currentSource.isSearchable()) { panel.updateCurrentMatchDisplay(currentSource.currentItem()); panel.updateTotaMatcheslDisplay(currentSource.getNumberHits()); if (currentSource.hasNextItem() || currentSource.hasNextPage()) { panel.enableNextMatchControl(true); } else { panel.enableNextMatchControl(false); } if (currentSource.hasPreviousItem() || currentSource.hasPreviousPage()) { panel.enablePrevMatchControl(true); } else { panel.enablePrevMatchControl(false); } } else { panel.enableNextMatchControl(false); panel.enablePrevMatchControl(false); panel.updateCurrentMatchDisplay(0); panel.updateTotaMatcheslDisplay(0); } }
@Override public Component getComponent() { if (panel == null) { panel = new ExtractedContentPanel(); panel.addPrevMatchControlListener(new PrevFindActionListener()); panel.addNextMatchControlListener(new NextFindActionListener()); panel.addPrevPageControlListener(new PrevPageActionListener()); panel.addNextPageControlListener(new NextPageActionListener()); panel.addSourceComboControlListener(new SourceChangeActionListener()); } return panel; }
private void updatePageControls() { if (currentSource == null) return; final int currentPage = currentSource.getCurrentPage(); final int totalPages = currentSource.getNumberPages(); panel.updateTotalPageslDisplay(totalPages); panel.updateCurrentPageDisplay(currentPage); if (totalPages == 1) { panel.enableNextPageControl(false); panel.enablePrevPageControl(false); } else { if (currentSource.hasNextPage()) { panel.enableNextPageControl(true); } else { panel.enableNextPageControl(false); } if (currentSource.hasPreviousPage()) { panel.enablePrevPageControl(true); } else { panel.enablePrevPageControl(false); } } }
private void previousPage() { if (currentSource.hasPreviousPage()) { currentSource.previousPage(); // set new text panel.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); panel.refreshCurrentMarkup(); panel.setCursor(null); // update display panel.updateCurrentPageDisplay(currentSource.getCurrentPage()); // scroll to current selection ExtractedContentViewer.this.scrollToCurrentHit(); // update controls if needed if (!currentSource.hasPreviousPage()) { panel.enablePrevPageControl(false); } if (currentSource.hasNextPage()) { panel.enableNextPageControl(true); } updateSearchControls(); } }
private void scrollToCurrentHit() { final MarkupSource source = panel.getSelectedSource(); if (source == null || !source.isSearchable()) { return; } // using invokeLater to wait for ComboBox selection to complete EventQueue.invokeLater( new Runnable() { @Override public void run() { panel.scrollToAnchor(source.getAnchorPrefix() + Integer.toString(source.currentItem())); } }); }
/** * Set the MarkupSources for the panel to display (safe to call even if the panel hasn't been * created yet) * * @param sources */ private void setPanel(List<MarkupSource> sources) { if (panel != null) { panel.setSources(sources); } }
@Override public void resetComponent() { setPanel(new ArrayList<MarkupSource>()); panel.resetDisplay(); }