mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38:01 +00:00
Support preloading keywords for improved performance
This commit is contained in:
@@ -9,11 +9,14 @@ import com.google.common.base.Predicates;
|
||||
|
||||
import forge.FThreads;
|
||||
import forge.Forge;
|
||||
import forge.game.keyword.Keyword;
|
||||
import forge.item.InventoryItem;
|
||||
import forge.itemmanager.AdvancedSearch;
|
||||
import forge.itemmanager.ItemManager;
|
||||
import forge.itemmanager.AdvancedSearch.FilterOption;
|
||||
import forge.menu.FTooltip;
|
||||
import forge.screens.FScreen;
|
||||
import forge.screens.LoadingOverlay;
|
||||
import forge.toolbox.FContainer;
|
||||
import forge.toolbox.FDisplayObject;
|
||||
import forge.toolbox.FEvent;
|
||||
@@ -338,6 +341,13 @@ public class AdvancedSearchFilter<T extends InventoryItem> extends ItemFilter<T>
|
||||
else {
|
||||
btnFilter.setText(emptyFilterText);
|
||||
}
|
||||
if (filter.getOption() == FilterOption.CARD_KEYWORDS) {
|
||||
//the first time the user selects keywords, preload keywords for all cards
|
||||
Runnable preloadTask = Keyword.getPreloadTask();
|
||||
if (preloadTask != null) {
|
||||
LoadingOverlay.runBackgroundTask("Loading keywords...", preloadTask);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -38,6 +38,23 @@ public class LoadingOverlay extends FOverlay {
|
||||
});
|
||||
}
|
||||
|
||||
public static void runBackgroundTask(String caption0, final Runnable task) {
|
||||
final LoadingOverlay loader = new LoadingOverlay(caption0);
|
||||
loader.show();
|
||||
FThreads.invokeInBackgroundThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
task.run();
|
||||
FThreads.invokeInEdtLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
loader.hide();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private String caption;
|
||||
|
||||
public LoadingOverlay(String caption0) {
|
||||
|
||||
Reference in New Issue
Block a user