5423 hopefully fix refresh issue and reduce duplicate code

This commit is contained in:
William Schaefer 2019-09-05 11:48:09 -04:00
parent 8aba6c9d9e
commit 04e0fe7ad6

View File

@ -155,12 +155,7 @@ public class ResultsPanel extends javax.swing.JPanel {
populateInstancesList(); populateInstancesList();
currentPage = pageRetrievedEvent.getPageNumber(); currentPage = pageRetrievedEvent.getPageNumber();
updateControls(); updateControls();
imageThumbnailViewer.clearViewer(); resetResultViewer();
videoThumbnailViewer.clearViewer();
tableViewer.resetComponent();
resultsViewerPanel.remove(imageThumbnailViewer);
resultsViewerPanel.remove(tableViewer);
resultsViewerPanel.remove(videoThumbnailViewer);
if (pageRetrievedEvent.getType() == FileSearchData.FileType.IMAGE) { if (pageRetrievedEvent.getType() == FileSearchData.FileType.IMAGE) {
populateImageViewer(pageRetrievedEvent.getSearchResults()); populateImageViewer(pageRetrievedEvent.getSearchResults());
resultsViewerPanel.add(imageThumbnailViewer); resultsViewerPanel.add(imageThumbnailViewer);
@ -176,17 +171,22 @@ public class ResultsPanel extends javax.swing.JPanel {
tableViewer.setNode(new TableFilterNode(new DataResultFilterNode(Node.EMPTY), true)); tableViewer.setNode(new TableFilterNode(new DataResultFilterNode(Node.EMPTY), true));
} }
} }
resultsViewerPanel.revalidate();
resultsViewerPanel.repaint();
} }
); );
} }
/** /**
* Populate the video thumbnail viewer, cancelling any thumbnails which are * Reset the result viewer and any associate workers to a default empty
* currently being created first. * state.
*
* @param files The list of ResultFiles to populate the video viewer with.
*/ */
synchronized void populateVideoViewer(List<ResultFile> files) { private synchronized void resetResultViewer() {
resultsViewerPanel.remove(imageThumbnailViewer);
tableViewer.resetComponent();
resultsViewerPanel.remove(tableViewer);
resultsViewerPanel.remove(videoThumbnailViewer);
//cancel any unfished thumb workers //cancel any unfished thumb workers
for (SwingWorker<Void, Void> thumbWorker : thumbnailWorkers) { for (SwingWorker<Void, Void> thumbWorker : thumbnailWorkers) {
if (!thumbWorker.isDone()) { if (!thumbWorker.isDone()) {
@ -196,6 +196,16 @@ public class ResultsPanel extends javax.swing.JPanel {
//clear old thumbnails //clear old thumbnails
thumbnailWorkers.clear(); thumbnailWorkers.clear();
videoThumbnailViewer.clearViewer(); videoThumbnailViewer.clearViewer();
imageThumbnailViewer.clearViewer();
}
/**
* Populate the video thumbnail viewer, cancelling any thumbnails which are
* currently being created first.
*
* @param files The list of ResultFiles to populate the video viewer with.
*/
synchronized void populateVideoViewer(List<ResultFile> files) {
for (ResultFile file : files) { for (ResultFile file : files) {
VideoThumbnailWorker thumbWorker = new VideoThumbnailWorker(file); VideoThumbnailWorker thumbWorker = new VideoThumbnailWorker(file);
thumbWorker.execute(); thumbWorker.execute();
@ -211,14 +221,6 @@ public class ResultsPanel extends javax.swing.JPanel {
* @param files The list of ResultFiles to populate the image viewer with. * @param files The list of ResultFiles to populate the image viewer with.
*/ */
synchronized void populateImageViewer(List<ResultFile> files) { synchronized void populateImageViewer(List<ResultFile> files) {
for (SwingWorker<Void, Void> thumbWorker : thumbnailWorkers) {
if (!thumbWorker.isDone()) {
thumbWorker.cancel(true);
}
}
//clear old thumbnails
thumbnailWorkers.clear();
imageThumbnailViewer.clearViewer();
for (ResultFile file : files) { for (ResultFile file : files) {
ImageThumbnailWorker thumbWorker = new ImageThumbnailWorker(file); ImageThumbnailWorker thumbWorker = new ImageThumbnailWorker(file);
thumbWorker.execute(); thumbWorker.execute();
@ -574,11 +576,9 @@ public class ResultsPanel extends javax.swing.JPanel {
@Override @Override
protected void done() { protected void done() {
if (!isCancelled()) {
videoThumbnailViewer.repaint(); videoThumbnailViewer.repaint();
} }
} }
}
/** /**
* Swing worker to handle the retrieval of image thumbnails and population * Swing worker to handle the retrieval of image thumbnails and population
@ -610,10 +610,8 @@ public class ResultsPanel extends javax.swing.JPanel {
@Override @Override
protected void done() { protected void done() {
if (!isCancelled()) {
imageThumbnailViewer.repaint(); imageThumbnailViewer.repaint();
} }
}
} }