mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-12 16:06:15 +00:00
add pop up help to imagegallery sort controls
This commit is contained in:
parent
f8a5795107
commit
bc7b3d3556
@ -12,7 +12,7 @@
|
||||
<?import javafx.scene.image.ImageView?>
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
|
||||
<fx:root minWidth="-1.0" orientation="HORIZONTAL" prefWidth="-1.0" type="javafx.scene.control.ToolBar" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1">
|
||||
<fx:root minWidth="-1.0" orientation="HORIZONTAL" prefWidth="-1.0" type="javafx.scene.control.ToolBar" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1">
|
||||
<items>
|
||||
<HBox alignment="CENTER" spacing="5.0">
|
||||
<children>
|
||||
@ -25,6 +25,11 @@
|
||||
|
||||
</children>
|
||||
</HBox>
|
||||
<ImageView fx:id="sortHelpImageView" fitHeight="16.0" fitWidth="16.0" pickOnBounds="true" preserveRatio="true">
|
||||
<image>
|
||||
<Image url="@../images/question-frame.png" />
|
||||
</image>
|
||||
</ImageView>
|
||||
|
||||
|
||||
|
||||
|
@ -28,12 +28,21 @@ import javafx.beans.Observable;
|
||||
import javafx.beans.property.DoubleProperty;
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.geometry.Insets;
|
||||
import javafx.scene.Cursor;
|
||||
import javafx.scene.Node;
|
||||
import javafx.scene.control.ComboBox;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.control.MenuItem;
|
||||
import javafx.scene.control.Slider;
|
||||
import javafx.scene.control.SplitMenuButton;
|
||||
import javafx.scene.control.ToolBar;
|
||||
import javafx.scene.image.Image;
|
||||
import javafx.scene.image.ImageView;
|
||||
import javafx.scene.layout.BorderPane;
|
||||
import javafx.scene.layout.Pane;
|
||||
import javafx.scene.text.Text;
|
||||
import org.controlsfx.control.PopOver;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.imagegallery.FXMLConstructor;
|
||||
@ -56,6 +65,9 @@ public class Toolbar extends ToolBar {
|
||||
|
||||
private static final int SIZE_SLIDER_DEFAULT = 100;
|
||||
|
||||
@FXML
|
||||
private ImageView sortHelpImageView;
|
||||
|
||||
@FXML
|
||||
private ComboBox<DrawableAttribute<?>> groupByBox;
|
||||
|
||||
@ -104,7 +116,9 @@ public class Toolbar extends ToolBar {
|
||||
"Toolbar.descRadio=Descending",
|
||||
"Toolbar.tagImageViewLabel=Tag Group's Files:",
|
||||
"Toolbar.categoryImageViewLabel=Categorize Group's Files:",
|
||||
"Toolbar.thumbnailSizeLabel=Thumbnail Size (px):"})
|
||||
"Toolbar.thumbnailSizeLabel=Thumbnail Size (px):",
|
||||
"Toolbar.sortHelp=The sort direction (ascending/descending) affects the queue of unseen groups that Image Gallery maintains, but changes to this queue aren't apparent until the \"Next Unseen Group\" button is pressed.",
|
||||
"Toolbar.sortHelpTitle=Group Sorting",})
|
||||
void initialize() {
|
||||
assert catGroupMenuButton != null : "fx:id=\"catSelectedMenubutton\" was not injected: check your FXML file 'Toolbar.fxml'.";
|
||||
assert groupByBox != null : "fx:id=\"groupByBox\" was not injected: check your FXML file 'Toolbar.fxml'.";
|
||||
@ -169,7 +183,43 @@ public class Toolbar extends ToolBar {
|
||||
sortChooser.sortOrderProperty().addListener(queryInvalidationListener);
|
||||
sortChooser.setComparator(GroupSortBy.PRIORITY);
|
||||
getItems().add(1, sortChooser);
|
||||
sortHelpImageView.setCursor(Cursor.HAND);
|
||||
|
||||
sortHelpImageView.setOnMouseClicked(clicked -> {
|
||||
Text text = new Text(Bundle.Toolbar_sortHelp());
|
||||
text.setWrappingWidth(480); //This is a hack to fix the layout.
|
||||
showPopoverHelp(sortHelpImageView,
|
||||
Bundle.Toolbar_sortHelpTitle(),
|
||||
sortHelpImageView.getImage(), text);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Static utility to to show a Popover with the given Node as owner.
|
||||
*
|
||||
* @param owner The owner of the Popover
|
||||
* @param headerText A short String that will be shown in the top-left
|
||||
* corner of the Popover.
|
||||
* @param headerImage An Image that will be shown at the top-right corner of
|
||||
* the Popover.
|
||||
* @param content The main content of the Popover, shown in the
|
||||
* bottom-center
|
||||
*
|
||||
*/
|
||||
private static void showPopoverHelp(final Node owner, final String headerText, final Image headerImage, final Node content) {
|
||||
Pane borderPane = new BorderPane(null, null, new ImageView(headerImage),
|
||||
content,
|
||||
new Label(headerText));
|
||||
borderPane.setPadding(new Insets(10));
|
||||
borderPane.setPrefWidth(500);
|
||||
|
||||
PopOver popOver = new PopOver(borderPane);
|
||||
popOver.setDetachable(false);
|
||||
popOver.setArrowLocation(PopOver.ArrowLocation.TOP_CENTER);
|
||||
|
||||
popOver.show(owner);
|
||||
}
|
||||
|
||||
private void syncGroupControlsEnabledState(GroupViewState newViewState) {
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 924 B |
Loading…
x
Reference in New Issue
Block a user