Compare commits
No commits in common. "e74ddc99cad79a398b3d99d9cb82deac9d1e62ae" and "97c3cc32431ff4ad9044b77979a5cd277db427ce" have entirely different histories.
e74ddc99ca
...
97c3cc3243
@ -67,22 +67,9 @@ public class Main extends Application {
|
|||||||
primaryStage.setScene(new Scene(root));
|
primaryStage.setScene(new Scene(root));
|
||||||
primaryStage.show();
|
primaryStage.show();
|
||||||
} else {
|
} else {
|
||||||
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("MainView.fxml"));
|
Parent root = FXMLLoader.load(getClass().getResource("MainView.fxml"));
|
||||||
Parent root = fxmlLoader.load();
|
|
||||||
|
|
||||||
MainController controller = fxmlLoader.getController();
|
|
||||||
|
|
||||||
primaryStage.setOnCloseRequest(e -> {
|
|
||||||
if (!controller.handleCloseRequest()) {
|
|
||||||
e.consume();
|
|
||||||
} else {
|
|
||||||
Platform.exit();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
primaryStage.setTitle("Numbers Station");
|
primaryStage.setTitle("Numbers Station");
|
||||||
primaryStage.setScene(new Scene(root));
|
primaryStage.setScene(new Scene(root));
|
||||||
primaryStage.titleProperty().bindBidirectional(controller.windowTitle);
|
|
||||||
primaryStage.show();
|
primaryStage.show();
|
||||||
logger.info("Application started");
|
logger.info("Application started");
|
||||||
}
|
}
|
||||||
|
@ -12,19 +12,14 @@ import java.nio.file.Paths;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
import javafx.beans.property.SimpleBooleanProperty;
|
|
||||||
import javafx.beans.property.SimpleStringProperty;
|
import javafx.beans.property.SimpleStringProperty;
|
||||||
import javafx.beans.property.StringProperty;
|
import javafx.beans.property.StringProperty;
|
||||||
import javafx.event.ActionEvent;
|
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.fxml.FXMLLoader;
|
import javafx.fxml.FXMLLoader;
|
||||||
import javafx.fxml.Initializable;
|
import javafx.fxml.Initializable;
|
||||||
import javafx.scene.control.Alert;
|
import javafx.scene.control.Alert;
|
||||||
import javafx.scene.control.Alert.AlertType;
|
|
||||||
import javafx.scene.control.ButtonType;
|
|
||||||
import javafx.scene.control.Label;
|
import javafx.scene.control.Label;
|
||||||
import javafx.scene.control.TextArea;
|
import javafx.scene.control.TextArea;
|
||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
@ -46,10 +41,6 @@ public class MainController implements Initializable {
|
|||||||
|
|
||||||
private StringProperty selectedStationName = new SimpleStringProperty();
|
private StringProperty selectedStationName = new SimpleStringProperty();
|
||||||
|
|
||||||
private SimpleBooleanProperty unsavedChanges = new SimpleBooleanProperty();
|
|
||||||
|
|
||||||
public StringProperty windowTitle = new SimpleStringProperty("Numbers Station");
|
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private Label lastRetrievedLabel;
|
private Label lastRetrievedLabel;
|
||||||
|
|
||||||
@ -109,23 +100,12 @@ public class MainController implements Initializable {
|
|||||||
|
|
||||||
selectStationStage = new Stage();
|
selectStationStage = new Stage();
|
||||||
selectStationStage.initModality(Modality.APPLICATION_MODAL);
|
selectStationStage.initModality(Modality.APPLICATION_MODAL);
|
||||||
selectStationStage.setUserData(null);
|
selectStationStage.setUserData("test");
|
||||||
selectStationStage.setTitle("Numbers Station Selection");
|
selectStationStage.setTitle("Numbers Station Selection");
|
||||||
|
selectStationStage.setScene(new Scene(root));
|
||||||
Scene scene = new Scene(root);
|
|
||||||
scene.addEventFilter(KeyEvent.KEY_PRESSED, (e) -> controller.handleKeyPressed(e));
|
|
||||||
selectStationStage.setScene(scene);
|
|
||||||
selectStationStage.show();
|
selectStationStage.show();
|
||||||
selectStationStage.setOnHiding(event -> {
|
selectStationStage.setOnHiding(event -> {
|
||||||
String newStationName = (String)selectStationStage.getUserData();
|
String newStationName = (String)selectStationStage.getUserData();
|
||||||
if (newStationName == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (unsavedChanges.get()) {
|
|
||||||
if (!confirmSaveChanges()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
StationSettings newSelectedStation = settings.getStations().stream()
|
StationSettings newSelectedStation = settings.getStations().stream()
|
||||||
.filter(station -> station.getName().equals(newStationName))
|
.filter(station -> station.getName().equals(newStationName))
|
||||||
.findFirst()
|
.findFirst()
|
||||||
@ -142,17 +122,12 @@ public class MainController implements Initializable {
|
|||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private void handleSetAsNextMessageButtonPress() {
|
private void handleSetAsNextMessageButtonPress() {
|
||||||
saveMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void saveMessage() {
|
|
||||||
try {
|
try {
|
||||||
if (!Files.exists(selectedStation.stationPath())) {
|
if (!Files.exists(selectedStation.stationPath())) {
|
||||||
Files.createDirectories(selectedStation.stationPath());
|
Files.createDirectories(selectedStation.stationPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
Files.write(selectedStation.nextMessagePath(), messageTextArea.getText().getBytes());
|
Files.write(selectedStation.nextMessagePath(), messageTextArea.getText().getBytes());
|
||||||
unsavedChanges.set(false);
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
String message = "Failed to write next message to " + selectedStation.nextMessagePath().toString();
|
String message = "Failed to write next message to " + selectedStation.nextMessagePath().toString();
|
||||||
logger.log(Level.SEVERE, message, e);
|
logger.log(Level.SEVERE, message, e);
|
||||||
@ -235,7 +210,6 @@ public class MainController implements Initializable {
|
|||||||
code == KeyCode.DIGIT7 ||
|
code == KeyCode.DIGIT7 ||
|
||||||
code == KeyCode.DIGIT8 ||
|
code == KeyCode.DIGIT8 ||
|
||||||
code == KeyCode.DIGIT9)) {
|
code == KeyCode.DIGIT9)) {
|
||||||
unsavedChanges.set(true);
|
|
||||||
|
|
||||||
if (cursorPosition < messageTextArea.getLength()) {
|
if (cursorPosition < messageTextArea.getLength()) {
|
||||||
char currentChar = messageTextArea.getText().charAt(cursorPosition);
|
char currentChar = messageTextArea.getText().charAt(cursorPosition);
|
||||||
@ -258,18 +232,6 @@ public class MainController implements Initializable {
|
|||||||
splitPane.setDividerPositions(1.0);
|
splitPane.setDividerPositions(1.0);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
unsavedChanges.addListener((obs2, wasUnsaved, isNowUnsaved) -> {
|
|
||||||
if (isNowUnsaved) {
|
|
||||||
if (!windowTitle.get().startsWith("*")) {
|
|
||||||
windowTitle.set("*" + windowTitle.get());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (windowTitle.get().startsWith("*")) {
|
|
||||||
windowTitle.set(windowTitle.get().substring(1, windowTitle.get().length()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateStationSettings(StationSettings newStationSettings) {
|
private void updateStationSettings(StationSettings newStationSettings) {
|
||||||
@ -334,40 +296,6 @@ public class MainController implements Initializable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unsavedChanges.set(false);
|
|
||||||
messageTextArea.setText(messageText);
|
messageTextArea.setText(messageText);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Whether to continue with the action that prompted the confirmation
|
|
||||||
*/
|
|
||||||
public boolean confirmSaveChanges() {
|
|
||||||
Alert alert = new Alert(Alert.AlertType.CONFIRMATION, "Do you want to save your changes to the message?", ButtonType.YES, ButtonType.NO, ButtonType.CANCEL);
|
|
||||||
alert.setHeaderText(null);
|
|
||||||
Optional<ButtonType> result = alert.showAndWait();
|
|
||||||
|
|
||||||
if (!result.isPresent()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (result.get() == ButtonType.YES) {
|
|
||||||
saveMessage();
|
|
||||||
return true;
|
|
||||||
} else if (result.get() == ButtonType.NO) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return whether close should continue or not
|
|
||||||
*/
|
|
||||||
public boolean handleCloseRequest() {
|
|
||||||
if (unsavedChanges.get()) {
|
|
||||||
return confirmSaveChanges();
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -13,8 +13,6 @@ import javafx.scene.control.ButtonType;
|
|||||||
import javafx.scene.control.ListCell;
|
import javafx.scene.control.ListCell;
|
||||||
import javafx.scene.control.ListView;
|
import javafx.scene.control.ListView;
|
||||||
import javafx.scene.control.TextInputDialog;
|
import javafx.scene.control.TextInputDialog;
|
||||||
import javafx.scene.input.KeyCode;
|
|
||||||
import javafx.scene.input.KeyEvent;
|
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.event.Event;
|
import javafx.event.Event;
|
||||||
import javafx.scene.Node;
|
import javafx.scene.Node;
|
||||||
@ -98,17 +96,6 @@ public class StationSelectionController {
|
|||||||
stage.close();
|
stage.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
|
||||||
public void handleKeyPressed(KeyEvent event) {
|
|
||||||
KeyCode code = event.getCode();
|
|
||||||
if (code == KeyCode.ENTER) {
|
|
||||||
selectHighlightedStation();
|
|
||||||
} else if (code == KeyCode.ESCAPE) {
|
|
||||||
Stage stage = (Stage) stationListView.getScene().getWindow();
|
|
||||||
stage.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private void handleRemoveButtonPress(ActionEvent event) {
|
private void handleRemoveButtonPress(ActionEvent event) {
|
||||||
int selectedIndex = stationListView.getSelectionModel().getSelectedIndex();
|
int selectedIndex = stationListView.getSelectionModel().getSelectedIndex();
|
||||||
@ -128,7 +115,15 @@ public class StationSelectionController {
|
|||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private void handleSelectButtonPress(Event e) {
|
private void handleSelectButtonPress(Event e) {
|
||||||
selectHighlightedStation();
|
Node node = (Node) e.getSource();
|
||||||
|
Stage stage = (Stage) node.getScene().getWindow();
|
||||||
|
StationSettings selectedStation = stationListView.getSelectionModel().getSelectedItem();
|
||||||
|
|
||||||
|
if (selectedStation != null) {
|
||||||
|
stage.setUserData(selectedStation.getName());
|
||||||
|
System.out.println("Selected Station: " + selectedStation.getName());
|
||||||
|
}
|
||||||
|
stage.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onStationListChanged(ListChangeListener.Change<? extends StationSettings> change) {
|
private void onStationListChanged(ListChangeListener.Change<? extends StationSettings> change) {
|
||||||
@ -160,15 +155,4 @@ public class StationSelectionController {
|
|||||||
settings.getStations().addAll(stationList);
|
settings.getStations().addAll(stationList);
|
||||||
settings.save();
|
settings.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void selectHighlightedStation() {
|
|
||||||
Stage stage = (Stage) stationListView.getScene().getWindow();
|
|
||||||
StationSettings selectedStation = stationListView.getSelectionModel().getSelectedItem();
|
|
||||||
|
|
||||||
if (selectedStation != null) {
|
|
||||||
stage.setUserData(selectedStation.getName());
|
|
||||||
System.out.println("Selected Station: " + selectedStation.getName());
|
|
||||||
}
|
|
||||||
stage.close();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -499,25 +499,12 @@ public class StationSettingsController {
|
|||||||
logger.log(Level.SEVERE, "SFTP connection failed", e);
|
logger.log(Level.SEVERE, "SFTP connection failed", e);
|
||||||
}
|
}
|
||||||
} else if (messageMethod.get() == StationSettings.MessageMethod.WORDPRESS) {
|
} else if (messageMethod.get() == StationSettings.MessageMethod.WORDPRESS) {
|
||||||
connectionTestDescription.set("Testing connection");
|
|
||||||
connectionTestStatus.set(ConnectionStatus.NEUTRAL);
|
|
||||||
|
|
||||||
System.setProperty("wordpress.username", username.get());
|
System.setProperty("wordpress.username", username.get());
|
||||||
System.setProperty("wordpress.password", password.get());
|
System.setProperty("wordpress.password", password.get());
|
||||||
System.setProperty("wordpress.url", stationAddress.get());
|
System.setProperty("wordpress.url", stationAddress.get());
|
||||||
Post post = new Post("Title of post", "content to post");
|
Post post = new Post("Title of post", "content to post");
|
||||||
try {
|
WordpressClient client = new WordpressClient();
|
||||||
WordpressClient client = new WordpressClient();
|
String newPostId = client.newPost(post);
|
||||||
var postTypes = client.getPostTypes();
|
|
||||||
|
|
||||||
logger.log(Level.INFO, "Wordpress connection successful");
|
|
||||||
connectionTestDescription.set("Connection succeeded");
|
|
||||||
connectionTestStatus.set(ConnectionStatus.SUCCESS);
|
|
||||||
} catch (Exception e) {
|
|
||||||
connectionTestDescription.set("Worpress connection failed");
|
|
||||||
connectionTestStatus.set(ConnectionStatus.FAILURE);
|
|
||||||
logger.log(Level.SEVERE, "Wordpress connection failed", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@
|
|||||||
<PasswordField fx:id="passwordField" layoutX="444.0" layoutY="95.0" prefHeight="25.0" prefWidth="135.0" AnchorPane.rightAnchor="0.0" />
|
<PasswordField fx:id="passwordField" layoutX="444.0" layoutY="95.0" prefHeight="25.0" prefWidth="135.0" AnchorPane.rightAnchor="0.0" />
|
||||||
<TextField fx:id="externalProgramCommandField" layoutX="-2.0" layoutY="131.0" prefHeight="25.0" prefWidth="580.0" AnchorPane.leftAnchor="-2.0" AnchorPane.rightAnchor="0.0" />
|
<TextField fx:id="externalProgramCommandField" layoutX="-2.0" layoutY="131.0" prefHeight="25.0" prefWidth="580.0" AnchorPane.leftAnchor="-2.0" AnchorPane.rightAnchor="0.0" />
|
||||||
<Button fx:id="testConnectionButton" layoutX="464.0" layoutY="7.0" mnemonicParsing="false" onAction="#handleTestConnectionButtonPress" text="Test connection" />
|
<Button fx:id="testConnectionButton" layoutX="464.0" layoutY="7.0" mnemonicParsing="false" onAction="#handleTestConnectionButtonPress" text="Test connection" />
|
||||||
<Label fx:id="connectionTestStatusLabel" alignment="CENTER_RIGHT" layoutX="136.0" layoutY="11.0" prefHeight="17.0" prefWidth="317.0" textAlignment="RIGHT" AnchorPane.leftAnchor="136.0" AnchorPane.rightAnchor="125.0" />
|
<Label fx:id="connectionTestStatusLabel" layoutX="257.0" layoutY="11.0" prefHeight="17.0" prefWidth="196.0" AnchorPane.leftAnchor="257.0" AnchorPane.rightAnchor="125.0" />
|
||||||
|
|
||||||
</children>
|
</children>
|
||||||
<VBox.margin>
|
<VBox.margin>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user