Skip to content

Commit

Permalink
EXXETA#130: commit so I can go home.
Browse files Browse the repository at this point in the history
  • Loading branch information
Thomas committed Aug 20, 2024
1 parent 8b3cfac commit 1b7f991
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,7 @@
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.Node;
import javafx.scene.control.Button;
import javafx.scene.control.ListCell;
import javafx.scene.control.ListView;
import javafx.scene.control.MenuButton;
import javafx.scene.control.SplitPane;
import javafx.scene.control.TextField;
import javafx.scene.control.ToggleButton;
import javafx.scene.control.*;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.MouseButton;
Expand All @@ -24,11 +18,7 @@
import org.controlsfx.control.textfield.TextFields;
import org.correomqtt.core.CoreManager;
import org.correomqtt.core.connection.ConnectionStateChangedEvent;
import org.correomqtt.core.model.ControllerType;
import org.correomqtt.core.model.LabelType;
import org.correomqtt.core.model.MessageListViewConfig;
import org.correomqtt.core.model.MessageType;
import org.correomqtt.core.model.PublishStatus;
import org.correomqtt.core.model.*;
import org.correomqtt.di.Assisted;
import org.correomqtt.di.DefaultBean;
import org.correomqtt.di.Inject;
Expand Down Expand Up @@ -87,6 +77,10 @@ public class MessageListViewController extends BaseConnectionController implemen
Button showDetailsButton;
@FXML
private VBox messagesVBox;
@FXML
protected ToggleButton automaticScrollButton;
@FXML
private ScrollPane scrollPane;
private ObservableList<MessagePropertiesDTO> messages;
private FilteredList<MessagePropertiesDTO> filteredMessages;
private DetailViewController detailViewController;
Expand Down Expand Up @@ -155,6 +149,8 @@ private void initialize() {

splitPane.widthProperty().addListener((observable, oldValue, newValue) -> Platform.runLater(() -> calculateDetailView(newValue)));

automaticScrollButton.setSelected(true);

messageSearchTextField.textProperty().addListener((observable, oldValue, newValue) -> searchInMessages(newValue));
}

Expand All @@ -163,6 +159,7 @@ private ListCell<MessagePropertiesDTO> createCell(ListView<MessagePropertiesDTO>
MessageListContextMenu contextMenu = messageListContextMenuFactory.create(this);
cell.setContextMenu(contextMenu);
cell.itemProperty().addListener((observable, oldValue, newValue) -> contextMenu.setObject(newValue));
cell.setOnMousePressed(event -> onCellPressed(cell));
cell.setOnMouseClicked(event -> onCellClicked(event, cell.getItem()));
cell.selectedProperty().addListener((observable, oldValue, newValue) -> {
if (Boolean.TRUE.equals(newValue)) {
Expand All @@ -173,9 +170,20 @@ private ListCell<MessagePropertiesDTO> createCell(ListView<MessagePropertiesDTO>
}
}
});
cell.setOnScrollStarted(event -> onScrollStarted(cell));
return cell;
}

private void onScrollStarted(MessageViewCell cell) {
listView.getFocusModel().focus(-1);
cell.selectedProperty();
}

private void onCellPressed(MessageViewCell cell) {
listView.getFocusModel().focus(cell.getIndex());
listView.scrollTo(listView.getFocusModel().getFocusedIndex());
}

public void calculateDetailView(Number newValue) {
if (newValue.intValue() <= 670) {
closeDetailView();
Expand Down Expand Up @@ -205,11 +213,13 @@ private void searchInMessages(String newValue) {

private void onCellClicked(MouseEvent event, MessagePropertiesDTO messageDTO) {
if (messageDTO != null && event.getButton().equals(MouseButton.PRIMARY) && event.getClickCount() == 2) {
LOGGER.info("Message selected in list: {}: {}", (messageDTO != null) ? messageDTO.getTopic() : null, getConnectionId());

detailViewControllerFactory.create(messageDTO, getConnectionId(), this, false).showAsDialog();
}

if (LOGGER.isDebugEnabled()) {
LOGGER.debug("Message selected in list: {}: {}", (messageDTO != null) ? messageDTO.getTopic() : null, getConnectionId());
LOGGER.info("Message selected in list: {}: {}", (messageDTO != null) ? messageDTO.getTopic() : null, getConnectionId());
}
}

Expand Down Expand Up @@ -349,6 +359,9 @@ void onNewMessage(MessagePropertiesDTO messageDTO) {
if (messageDTO.getMessageType().equals(MessageType.INCOMING)) {
addMessage(messageDTO);
}
if (listView.getFocusModel().getFocusedIndex() != -1) {
listView.scrollTo(listView.getFocusModel().getFocusedIndex());
}
}

private void addMessage(MessagePropertiesDTO messageDTO) {
Expand Down Expand Up @@ -423,6 +436,26 @@ private void showDetailsOfMessage() {
detailViewControllerFactory.create(getSelectedMessage(), getConnectionId(), this, false).showAsDialog();
}

@FXML
private void toggleAutomaticScrolling() {
if (automaticScrollButton.isSelected()) {
enableScrolling();
} else {
disableScrolling();
}
}

private void enableScrolling() {
automaticScrollButton.setSelected(true);
listView.getFocusModel().focus(-1);
listView.scrollTo(0);
}

@FXML
private void disableScrolling() {
automaticScrollButton.setSelected(false);
}

public void cleanUp() {
if (this.detailViewController != null) {
detailViewController.cleanUp();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
</HBox.margin>
</IconButton>
<IconButton fx:id="showDetailsButton" minHeight="25.0" minWidth="30.0" mnemonicParsing="false"
onAction="#showDetailsOfMessage" icon="mdi-open-in-new">
onAction="#showDetailsOfMessage" icon="mdi-open-in-new">
<tooltip>
<Tooltip text="%messageListViewShowDetailsTooltip"/>
</tooltip>
Expand All @@ -43,7 +43,7 @@


<IconButton fx:id="clearMessagesButton" minHeight="25.0" minWidth="30.0" mnemonicParsing="false"
onAction="#clearList" icon="mdi-trash-can">
onAction="#clearList" icon="mdi-trash-can">
<tooltip>
<Tooltip text="%messageListViewClearMessagesButton"/>
</tooltip>
Expand All @@ -58,12 +58,13 @@
</tooltip>
<items>
<IconCheckMenuItem fx:id="changeDisplayRetained" mnemonicParsing="false"
onAction="#changeRetainDisplay" styleClass="menuItem" text="%retainedMenuItem"/>
onAction="#changeRetainDisplay" styleClass="menuItem"
text="%retainedMenuItem"/>
<IconCheckMenuItem fx:id="changeDisplayQos" mnemonicParsing="false" onAction="#changeQosDisplay"
styleClass="menuItem" text="%qosMenuItem"/>
styleClass="menuItem" text="%qosMenuItem"/>
<IconCheckMenuItem fx:id="changeDisplayTimestamp" mnemonicParsing="false"
onAction="#changeTimestampDisplay" styleClass="menuItem"
text="%timestampMenuItem"/>
onAction="#changeTimestampDisplay" styleClass="menuItem"
text="%timestampMenuItem"/>
</items>
<HBox.margin>
<Insets left="5.0"/>
Expand All @@ -78,8 +79,17 @@
<Insets left="5.0"/>
</HBox.margin>
</IconToggleButton>
<IconToggleButton fx:id="automaticScrollButton" minHeight="25.0" minWidth="30.0" mnemonicParsing="false"
onAction="#toggleAutomaticScrolling" icon="mdi-mouse-scroll-wheel">
<tooltip>
<Tooltip text="%automaticScrollingTooltip"/>
</tooltip>
<HBox.margin>
<Insets left="5.0"/>
</HBox.margin>
</IconToggleButton>
</HBox>
<ListView fx:id="listView" styleClass="noBorder" VBox.vgrow="ALWAYS">
<ListView fx:id="listView" styleClass="noBorder" VBox.vgrow="ALWAYS" onMousePressed="#disableScrolling" onScroll="#disableScrolling">
</ListView>
</VBox>
</SplitPane>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -390,3 +390,4 @@ scriptingUnsavedCheckDescription=Es gibt ungespeicherte Änderungen. Möchten Si
scriptingViewResetButtonTooltip=Änderungen verwerfen
scriptingViewClearExecutionsButtonTooltip=Ausführungslogs löschen
scriptingHelpLink=Learn how scripting works here.
automaticScrollingTooltip=Automatisches Scrolling aktivieren
3 changes: 2 additions & 1 deletion gui/src/main/resources/org/correomqtt/i18n_en_US.properties
Original file line number Diff line number Diff line change
Expand Up @@ -388,4 +388,5 @@ scriptingUnsavedCheckTitle=Unsaved changes
scriptingUnsavedCheckDescription=There are unsaved changes. Do you really want to discard them?
scriptingViewResetButtonTooltip=Revert changes
scriptingViewClearExecutionsButtonTooltip=Remove Execution Logs
scriptingHelpLink=Learn how scripting works here.
scriptingHelpLink=Learn how scripting works here.
automaticScrollingTooltip=Toggle automatic scrolling

0 comments on commit 1b7f991

Please sign in to comment.