mirror of
https://github.com/PAMGuard/PAMGuard.git
synced 2024-11-22 07:02:29 +00:00
Updates to detection group display
This commit is contained in:
parent
f42f092f4a
commit
fb9bc63719
@ -16,7 +16,11 @@ import detectionPlotFX.layout.DetectionPlotDisplay;
|
||||
import javafx.geometry.Insets;
|
||||
import javafx.geometry.Pos;
|
||||
import javafx.geometry.Side;
|
||||
import javafx.scene.Node;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.control.Tab;
|
||||
import javafx.scene.control.TabPane;
|
||||
import javafx.scene.control.TabPane.TabClosingPolicy;
|
||||
import javafx.scene.layout.BorderPane;
|
||||
import javafx.scene.layout.Pane;
|
||||
import javafx.scene.layout.Region;
|
||||
@ -26,6 +30,7 @@ import pamViewFX.fxGlyphs.PamGlyphDude;
|
||||
import pamViewFX.fxNodes.PamBorderPane;
|
||||
import pamViewFX.fxNodes.PamButton;
|
||||
import pamViewFX.fxNodes.PamHBox;
|
||||
import pamViewFX.fxNodes.PamStackPane;
|
||||
import pamViewFX.fxNodes.hidingPane.HidingPane;
|
||||
import pamViewFX.fxNodes.internalNode.PamInternalPane;
|
||||
import pamViewFX.fxStyles.PamStylesManagerFX;
|
||||
@ -42,6 +47,10 @@ import userDisplayFX.UserDisplayNodeParams;
|
||||
*/
|
||||
public class DetectionGroupDisplay extends PamBorderPane {
|
||||
|
||||
public static final int DISPLAY_COMPACT = 0;
|
||||
|
||||
public static final int DISPLAY_EXTENDED = 1;
|
||||
|
||||
/**
|
||||
* Index of the current normal unit with the detection summary.
|
||||
*/
|
||||
@ -60,7 +69,7 @@ public class DetectionGroupDisplay extends PamBorderPane {
|
||||
/**
|
||||
* Label for the top holder.
|
||||
*/
|
||||
private Label label;
|
||||
private Label dataLabel;
|
||||
|
||||
/**
|
||||
* Holds the arrow pane and hiding pane.
|
||||
@ -86,7 +95,7 @@ public class DetectionGroupDisplay extends PamBorderPane {
|
||||
/**
|
||||
* Holds the detection display and controls for viewing standard detections.
|
||||
*/
|
||||
public PamBorderPane detectionDisplayHolder;
|
||||
public Pane detectionDisplayHolder;
|
||||
|
||||
/**
|
||||
* The group detection listeners.
|
||||
@ -104,21 +113,32 @@ public class DetectionGroupDisplay extends PamBorderPane {
|
||||
private HidingPane hidingPane;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Constructor for the detection group display.
|
||||
*/
|
||||
public DetectionGroupDisplay() {
|
||||
//create hash map to map DDDataInfos to datablocks for quick access.
|
||||
dDataInfoHashMap = new HashMap<PamDataBlock, DDDataInfo>();
|
||||
createDetectionDisplay();
|
||||
createDetectionDisplay(DISPLAY_EXTENDED);
|
||||
this.setCenter(detectionDisplayHolder);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Constructor for the detection group display.
|
||||
* @param layoutType - the layout of the display - e.g. DetectionGroupDisplay.DISPLAY_COMPACT
|
||||
*/
|
||||
public DetectionGroupDisplay(int layoutType) {
|
||||
//create hash map to map DDDataInfos to datablocks for quick access.
|
||||
dDataInfoHashMap = new HashMap<PamDataBlock, DDDataInfo>();
|
||||
createDetectionDisplay(DISPLAY_COMPACT);
|
||||
this.setCenter(detectionDisplayHolder);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the detection display.
|
||||
* @return the detection display
|
||||
*/
|
||||
private Pane createDetectionDisplay(){
|
||||
private Pane createDetectionDisplay(int layoutType){
|
||||
|
||||
detectionDisplay= new DetectionPlotDisplay();
|
||||
|
||||
@ -146,10 +166,25 @@ public class DetectionGroupDisplay extends PamBorderPane {
|
||||
arrowPane.getChildren().addAll(arrowLeft, arrowRight);
|
||||
BorderPane.setAlignment(arrowPane, Pos.CENTER_RIGHT);
|
||||
|
||||
|
||||
|
||||
|
||||
//a label to show information of the data unit
|
||||
dataLabel = new Label();
|
||||
|
||||
if (layoutType==DISPLAY_EXTENDED) {
|
||||
//the display has controls above the axis and a hiding pane that increases the width of the display.
|
||||
|
||||
//the holder for the detection display.
|
||||
PamBorderPane detectionDisplayHolder= new PamBorderPane();
|
||||
|
||||
//create the hiding pane to show advanced settings.
|
||||
hidingPane = new HidingPane(Side.RIGHT, detectionDisplay.getSettingsHolder(), detectionDisplayHolder, layoutType==DISPLAY_COMPACT, 0);
|
||||
|
||||
topHolder=new PamBorderPane();
|
||||
topHolder.setRight(arrowPane);
|
||||
|
||||
topHolder.setCenter(label = new Label());
|
||||
topHolder.setCenter(dataLabel);
|
||||
topHolder.setLeft(detectionDisplay.getDataTypePane());
|
||||
|
||||
//whenever the detection plot selection box e.g. from waveform to wigner then check there is a settings pane. If not
|
||||
@ -158,17 +193,9 @@ public class DetectionGroupDisplay extends PamBorderPane {
|
||||
enableControls();
|
||||
});
|
||||
|
||||
detectionDisplayHolder= new PamBorderPane();
|
||||
detectionDisplayHolder.setTop(topHolder);
|
||||
detectionDisplayHolder.setCenter(detectionDisplay);
|
||||
|
||||
|
||||
//create the hiding pane to show advanced settings.
|
||||
hidingPane = new HidingPane(Side.RIGHT, detectionDisplay.getSettingsHolder(), detectionDisplayHolder, false, 0);
|
||||
|
||||
detectionDisplay.getSettingsHolder().getStylesheets().addAll(PamStylesManagerFX.getPamStylesManagerFX().getCurStyle().getSlidingDialogCSS());
|
||||
detectionDisplay.getSettingsHolder().setStyle("-fx-background-color: -fx-darkbackground");
|
||||
hidingPane.getStylesheets().addAll(PamStylesManagerFX.getPamStylesManagerFX().getCurStyle().getSlidingDialogCSS());
|
||||
this.detectionDisplayHolder = detectionDisplayHolder;
|
||||
|
||||
arrowPane.getChildren().add(hidingPane.getShowButton());
|
||||
|
||||
@ -182,6 +209,39 @@ public class DetectionGroupDisplay extends PamBorderPane {
|
||||
//hidingPane.removeHideButton();
|
||||
hidingPane.styleHideButton(hidingPane.getHideButton(), Side.LEFT);
|
||||
|
||||
}
|
||||
else {
|
||||
//the display is compact with all controls within an internal hiding pane.
|
||||
|
||||
detectionDisplayHolder = new PamStackPane();
|
||||
|
||||
TabPane settingsPane = new TabPane();
|
||||
settingsPane.setTabClosingPolicy(TabClosingPolicy.UNAVAILABLE);
|
||||
// settingsPane.getStylesheets().addAll(PamStylesManagerFX.getPamStylesManagerFX().getCurStyle().getSlidingDialogCSS());
|
||||
|
||||
settingsPane.getTabs().add(new Tab("Data",detectionDisplay.getDataTypePane()));
|
||||
settingsPane.getTabs().add(new Tab("Settings",detectionDisplay.getSettingsHolder()));
|
||||
|
||||
hidingPane = new HidingPane(Side.RIGHT, settingsPane, detectionDisplayHolder, layoutType==DISPLAY_COMPACT, 0);
|
||||
|
||||
//now everything to pane.
|
||||
detectionDisplayHolder.getChildren().add(detectionDisplay);
|
||||
StackPane.setAlignment(detectionDisplay, Pos.CENTER);
|
||||
|
||||
settingsPane.setPadding(new Insets(35,0,0,0));
|
||||
|
||||
Node icon = PamGlyphDude.createPamIcon("mdi2c-cog", PamGuiManagerFX.iconSize);
|
||||
detectionDisplay.getPlotPane().setHidePane(new PamBorderPane(settingsPane), icon, Side.RIGHT);
|
||||
hidingPane.getShowButton().setPrefHeight(30);
|
||||
|
||||
}
|
||||
|
||||
//set styles
|
||||
// detectionDisplay.getSettingsHolder().getStylesheets().addAll(PamStylesManagerFX.getPamStylesManagerFX().getCurStyle().getSlidingDialogCSS());
|
||||
// detectionDisplay.getSettingsHolder().setStyle("-fx-background-color: -fx-darkbackground");
|
||||
hidingPane.getStylesheets().addAll(PamStylesManagerFX.getPamStylesManagerFX().getCurStyle().getSlidingDialogCSS());
|
||||
|
||||
//set default size
|
||||
detectionDisplayHolder.setPrefSize(500, 400);
|
||||
detectionDisplayHolder.setPadding(new Insets(0,10,0,0));
|
||||
|
||||
@ -243,15 +303,15 @@ public class DetectionGroupDisplay extends PamBorderPane {
|
||||
*/
|
||||
private void setLabelText(){
|
||||
if (detectionGroup.size()>1){
|
||||
label.setText(detectionGroup.get(currentUnitIndex).getParentDataBlock().getDataName() + " UID: " + detectionGroup.get(currentUnitIndex).getUID() +
|
||||
dataLabel.setText(detectionGroup.get(currentUnitIndex).getParentDataBlock().getDataName() + " UID: " + detectionGroup.get(currentUnitIndex).getUID() +
|
||||
": " + (currentUnitIndex+1) + " of " + detectionGroup.size());
|
||||
}
|
||||
else if (detectionGroup.size()==1){
|
||||
label.setText(detectionGroup.get(currentUnitIndex).getParentDataBlock().getDataName() + " UID: " + detectionGroup.get(currentUnitIndex).getUID());
|
||||
dataLabel.setText(detectionGroup.get(currentUnitIndex).getParentDataBlock().getDataName() + " UID: " + detectionGroup.get(currentUnitIndex).getUID());
|
||||
}
|
||||
else {
|
||||
//selected area with data units.
|
||||
label.setText("No data units in area");
|
||||
dataLabel.setText("No data units in area");
|
||||
}
|
||||
|
||||
//add sub detection count if there are sub detections.
|
||||
@ -259,7 +319,7 @@ public class DetectionGroupDisplay extends PamBorderPane {
|
||||
SuperDetection superDet = (SuperDetection) detectionGroup.get(currentUnitIndex);
|
||||
int subCount = superDet.getSubDetectionsCount();
|
||||
if (subCount>0) {
|
||||
label.setText(label.getText()+ " : " + superDet.getSubDetectionsCount() + " sub detection" + (subCount>1 ? "s":""));
|
||||
dataLabel.setText(dataLabel.getText()+ " : " + superDet.getSubDetectionsCount() + " sub detection" + (subCount>1 ? "s":""));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -298,7 +358,7 @@ public class DetectionGroupDisplay extends PamBorderPane {
|
||||
public void clearDisplay() {
|
||||
setDataUnit(null);
|
||||
detectionDisplay.clearPane();
|
||||
this.label.setText("");
|
||||
this.dataLabel.setText("");
|
||||
}
|
||||
|
||||
|
||||
|
@ -31,6 +31,7 @@ public class DetectionGroupDisplayFX extends DetectionGroupDisplay implements U
|
||||
private DetectionDisplayControl2 displayControl;
|
||||
|
||||
public DetectionGroupDisplayFX(DetectionDisplayControl2 displayControl){
|
||||
super(DetectionGroupDisplay.DISPLAY_COMPACT);
|
||||
this.displayControl = displayControl;
|
||||
//register the settings.
|
||||
PamSettingManager.getInstance().registerSettings(this);
|
||||
|
Loading…
Reference in New Issue
Block a user