Add check that the preview URL is not blank in SearchPopoverTreeList

This commit is contained in:
0xb00bface 2023-06-16 21:50:35 +02:00
parent 9cf4bacae1
commit 4d978e2ee6
1 changed files with 14 additions and 20 deletions

View File

@ -31,17 +31,10 @@
*/ */
package ctbrec.ui.controls; package ctbrec.ui.controls;
import java.net.URL;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ctbrec.Config; import ctbrec.Config;
import ctbrec.GlobalThreadPool; import ctbrec.GlobalThreadPool;
import ctbrec.Model; import ctbrec.Model;
import ctbrec.StringUtil;
import ctbrec.recorder.Recorder; import ctbrec.recorder.Recorder;
import ctbrec.ui.action.PlayAction; import ctbrec.ui.action.PlayAction;
import ctbrec.ui.action.SetThumbAsPortraitAction; import ctbrec.ui.action.SetThumbAsPortraitAction;
@ -52,19 +45,20 @@ import javafx.event.EventHandler;
import javafx.geometry.Insets; import javafx.geometry.Insets;
import javafx.scene.Cursor; import javafx.scene.Cursor;
import javafx.scene.Node; import javafx.scene.Node;
import javafx.scene.control.Button; import javafx.scene.control.*;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.Label;
import javafx.scene.control.ListCell;
import javafx.scene.control.ListView;
import javafx.scene.control.MenuItem;
import javafx.scene.control.Skin;
import javafx.scene.image.Image; import javafx.scene.image.Image;
import javafx.scene.image.ImageView; import javafx.scene.image.ImageView;
import javafx.scene.input.ContextMenuEvent; import javafx.scene.input.ContextMenuEvent;
import javafx.scene.input.MouseButton; import javafx.scene.input.MouseButton;
import javafx.scene.input.MouseEvent; import javafx.scene.input.MouseEvent;
import javafx.scene.shape.Rectangle; import javafx.scene.shape.Rectangle;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.net.URL;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
/** /**
* Popover page that displays a list of samples and sample categories for a given SampleCategory. * Popover page that displays a list of samples and sample categories for a given SampleCategory.
@ -85,7 +79,7 @@ public class SearchPopoverTreeList extends PopoverTreeList<Model> implements Pop
@Override @Override
protected void itemClicked(Model model) { protected void itemClicked(Model model) {
if(model == null) { if (model == null) {
return; return;
} }
@ -163,8 +157,8 @@ public class SearchPopoverTreeList extends PopoverTreeList<Model> implements Pop
addEventHandler(ContextMenuEvent.CONTEXT_MENU_REQUESTED, event -> { addEventHandler(ContextMenuEvent.CONTEXT_MENU_REQUESTED, event -> {
popup = new CustomMouseBehaviorContextMenu(); popup = new CustomMouseBehaviorContextMenu();
ModelMenuContributor.newContributor(this, Config.getInstance(), recorder) // ModelMenuContributor.newContributor(this, Config.getInstance(), recorder) //
.withStartStopCallback(m -> setCursor(Cursor.DEFAULT)) // .withStartStopCallback(m -> setCursor(Cursor.DEFAULT)) //
.contributeToMenu(List.of(model), popup); .contributeToMenu(List.of(model), popup);
var useImageAsPortrait = new MenuItem("Use As Portrait"); var useImageAsPortrait = new MenuItem("Use As Portrait");
useImageAsPortrait.setOnAction(e -> new SetThumbAsPortraitAction(this, model, thumb.getImage()).execute()); useImageAsPortrait.setOnAction(e -> new SetThumbAsPortraitAction(this, model, thumb.getImage()).execute());
popup.getItems().add(useImageAsPortrait); popup.getItems().add(useImageAsPortrait);
@ -253,7 +247,7 @@ public class SearchPopoverTreeList extends PopoverTreeList<Model> implements Pop
this.model = model; this.model = model;
URL anonymousPng = getClass().getResource("/anonymous.png"); URL anonymousPng = getClass().getResource("/anonymous.png");
String previewUrl = Optional.ofNullable(model.getPreview()).orElse(anonymousPng.toString()); String previewUrl = Optional.ofNullable(model.getPreview()).orElse(anonymousPng.toString());
if(!Objects.equals(System.getenv("CTBREC_DEV"), "1")) { if (!Objects.equals(System.getenv("CTBREC_DEV"), "1") && StringUtil.isNotBlank(previewUrl)) {
Image img = new Image(previewUrl, true); Image img = new Image(previewUrl, true);
thumb.setImage(img); thumb.setImage(img);
} else { } else {
@ -349,4 +343,4 @@ public class SearchPopoverTreeList extends PopoverTreeList<Model> implements Pop
public void setRecorder(Recorder recorder) { public void setRecorder(Recorder recorder) {
this.recorder = recorder; this.recorder = recorder;
} }
} }