Add check that the preview URL is not blank in SearchPopoverTreeList
This commit is contained in:
parent
9cf4bacae1
commit
4d978e2ee6
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue