v0.3 UI updates. It's nightmare..

This commit is contained in:
Dmitry Isaenko 2019-03-19 05:06:18 +03:00
parent 3a238d296c
commit 5e4a93af7c
11 changed files with 160 additions and 34 deletions

View file

@ -10,6 +10,33 @@ public class AppPreferences {
private AppPreferences(){ preferences = Preferences.userRoot().node("NS-USBloader"); }
public void setAll(
String Protocol,
String PreviouslyOpened,
String NetUsb,
String NsIp,
boolean NsIpValidate,
boolean ExpertMode,
boolean AutoIp,
boolean RandPort,
boolean NotServe,
String HostIp,
String HostPort,
String HostExtra
){
setProtocol(Protocol);
setRecent(PreviouslyOpened);
setNetUsb(NetUsb);
setNsIp(NsIp);
setNsIpValidationNeeded(NsIpValidate);
setExpertMode(ExpertMode);
setAutoDetectIp(AutoIp);
setRandPort(RandPort);
setNotServeRequests(NotServe);
setHostIp(HostIp);
setHostPort(HostPort);
setHostExtra(HostExtra);
}
public String getTheme(){
String theme = preferences.get("THEME", "/res/app_dark.css"); // Don't let user to change settings manually
if (!theme.matches("(^/res/app_dark.css$)|(^/res/app_light.css$)"))
@ -56,9 +83,16 @@ public class AppPreferences {
public String getHostIp(){ return preferences.get("HOSTIP", "0.0.0.0");}
public void setHostIp(String ip){preferences.put("HOSTIP", ip);}
public String getHostPort(){ return preferences.get("HOSTPORT", "6042");}
public String getHostPort(){
String value = preferences.get("HOSTPORT", "6042");
if (!value.matches("^[0-9]{1,5}$"))
return "6042";
if ((Integer.parseInt(value) > 65535) || (Integer.parseInt(value) < 1))
return "6042";
return value;
}
public void setHostPort(String port){preferences.put("HOSTPORT", port);}
public String getHostPostfix(){ return preferences.get("HOSTPOSTFIX", "");}
public void setHostPostfix(String postfix){preferences.put("HOSTPOSTFIX", postfix);}
public String getHostExtra(){ return preferences.get("HOSTEXTRA", "");}
public void setHostExtra(String postfix){preferences.put("HOSTEXTRA", postfix);}
}

View file

@ -13,19 +13,16 @@ import javafx.stage.FileChooser;
import nsusbloader.AppPreferences;
import nsusbloader.MediatorControl;
import nsusbloader.NET.NETCommunications;
import nsusbloader.NET.NETPacket;
import nsusbloader.NSLMain;
import nsusbloader.ServiceWindow;
import nsusbloader.USB.UsbCommunications;
import java.io.File;
import java.net.URL;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
import java.util.function.UnaryOperator;
public class NSLMainController implements Initializable {
@ -129,7 +126,12 @@ public class NSLMainController implements Initializable {
nsIpLbl.setVisible(true);
nsIpTextField.setVisible(true);
}
nsIpTextField.setTextFormatter(new TextFormatter<>(change -> {
if (change.getControlNewText().contains(" ") | change.getControlNewText().contains("\t"))
return null;
else
return change;
}));
this.previouslyOpenedPath = null;
Region btnSwitchImage = new Region();
@ -314,13 +316,20 @@ public class NSLMainController implements Initializable {
/**
* Save preferences before exit
* */
public void exit(){
AppPreferences.getInstance().setProtocol(choiceProtocol.getSelectionModel().getSelectedItem());
AppPreferences.getInstance().setRecent(previouslyOpenedPath);
AppPreferences.getInstance().setNetUsb(choiceNetUsb.getSelectionModel().getSelectedItem());
AppPreferences.getInstance().setNsIp(nsIpTextField.getText().trim());
AppPreferences.getInstance().setNsIpValidationNeeded(SettingsTabController.isNsIpValidate());
AppPreferences.getInstance().setExpertMode(SettingsTabController.getExpertModeSelected());
public void exit(){ // TODO: add method to set all in AppPreferences
AppPreferences.getInstance().setAll(
choiceProtocol.getSelectionModel().getSelectedItem(),
previouslyOpenedPath,
choiceNetUsb.getSelectionModel().getSelectedItem(),
nsIpTextField.getText().trim(),
SettingsTabController.isNsIpValidate(),
SettingsTabController.getExpertModeSelected(),
SettingsTabController.getAutoIpSelected(),
SettingsTabController.getRandPortSelected(),
SettingsTabController.getNotServeSelected(),
SettingsTabController.getHostIp(),
SettingsTabController.getHostPort(),
SettingsTabController.getHostExtra()
);
}
}

View file

@ -4,12 +4,15 @@ import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.CheckBox;
import javafx.scene.control.TextField;
import javafx.scene.control.TextFormatter;
import javafx.scene.layout.VBox;
import nsusbloader.AppPreferences;
import nsusbloader.ServiceWindow;
import java.net.URL;
import java.util.ResourceBundle;
import java.util.function.UnaryOperator;
public class SettingsController implements Initializable {
@ -27,7 +30,7 @@ public class SettingsController implements Initializable {
@FXML
private TextField pcPortTextField;
@FXML
private TextField pcPostfixTextField;
private TextField pcExtraTextField;
@FXML
private CheckBox dontServeCb;
@ -43,23 +46,96 @@ public class SettingsController implements Initializable {
expertModeCb.setSelected(AppPreferences.getInstance().getExpertMode());
expertModeCb.setOnAction(e->{
if (expertModeCb.isSelected())
expertSettingsVBox.setDisable(false);
else
expertSettingsVBox.setDisable(true);
expertSettingsVBox.setDisable(!expertModeCb.isSelected());
});
autoDetectIpCb.setSelected(AppPreferences.getInstance().getAutoDetectIp());
pcIpTextField.setDisable(AppPreferences.getInstance().getAutoDetectIp());
autoDetectIpCb.setOnAction(e->{
pcIpTextField.setDisable(autoDetectIpCb.isSelected());
});
randPortCb.setSelected(AppPreferences.getInstance().getRandPort());
pcPortTextField.setDisable(AppPreferences.getInstance().getRandPort());
randPortCb.setOnAction(e->{
pcPortTextField.setDisable(randPortCb.isSelected());
});
if (AppPreferences.getInstance().getNotServeRequests()){
dontServeCb.setSelected(true);
autoDetectIpCb.setSelected(false);
autoDetectIpCb.setDisable(true);
pcIpTextField.setDisable(false);
dontServeCb.setSelected(AppPreferences.getInstance().getNotServeRequests());
randPortCb.setSelected(false);
randPortCb.setDisable(true);
pcPortTextField.setDisable(false);
}
pcExtraTextField.setDisable(!AppPreferences.getInstance().getNotServeRequests());
dontServeCb.setOnAction(e->{
if (dontServeCb.isSelected()){
autoDetectIpCb.setSelected(false);
autoDetectIpCb.setDisable(true);
pcIpTextField.setDisable(false);
randPortCb.setSelected(false);
randPortCb.setDisable(true);
pcPortTextField.setDisable(false);
pcExtraTextField.setDisable(false);
}
else {
autoDetectIpCb.setDisable(false);
autoDetectIpCb.setSelected(true);
pcIpTextField.setDisable(true);
randPortCb.setDisable(false);
randPortCb.setSelected(true);
pcPortTextField.setDisable(true);
pcExtraTextField.setDisable(true);
}
});
pcIpTextField.setText(AppPreferences.getInstance().getHostIp());
pcPortTextField.setText(AppPreferences.getInstance().getHostPort());
pcExtraTextField.setText(AppPreferences.getInstance().getHostExtra());
pcIpTextField.setTextFormatter(new TextFormatter<>(change -> {
if (change.getControlNewText().contains(" ") | change.getControlNewText().contains("\t"))
return null;
else
return change;
}));
pcPortTextField.setTextFormatter(new TextFormatter<Object>(change -> {
if (change.getControlNewText().matches("^[0-9]{0,5}$")) {
if ((Integer.parseInt(change.getControlNewText()) > 65535) || (Integer.parseInt(change.getControlNewText()) == 0)) {
ServiceWindow.getErrorNotification(resourceBundle.getString("windowTitleErrorPort"), resourceBundle.getString("windowBodyErrorPort"));
return null;
}
return change;
}
else
return null;
}));
pcExtraTextField.setTextFormatter(new TextFormatter<>(change -> {
if (change.getControlNewText().contains(" ") | change.getControlNewText().contains("\t"))
return null;
else
return change;
}));
}
public boolean getExpertModeSelected(){
return expertModeCb.isSelected();
}
public boolean getExpertModeSelected(){ return expertModeCb.isSelected(); }
public boolean getAutoIpSelected(){ return autoDetectIpCb.isSelected(); }
public boolean getRandPortSelected(){ return randPortCb.isSelected(); }
public boolean getNotServeSelected(){ return dontServeCb.isSelected(); }
public boolean isNsIpValidate(){ return validateNSHostNameCb.isSelected(); }
}
public String getHostIp(){ return pcIpTextField.getText(); }
public String getHostPort(){ return pcPortTextField.getText(); }
public String getHostExtra(){ return pcExtraTextField.getText(); }
}

View file

@ -10,7 +10,6 @@ public class ServiceWindow {
/**
* Create window with notification
* */
/* // not used
public static void getErrorNotification(String title, String body){
Alert alertBox = new Alert(Alert.AlertType.ERROR);
alertBox.setTitle(title);
@ -20,10 +19,9 @@ public class ServiceWindow {
alertBox.getDialogPane().setMinHeight(Region.USE_PREF_SIZE);
alertBox.setResizable(true); // Java bug workaround for JDR11/OpenJFX. TODO: nothing. really.
alertBox.setResizable(false);
alertBox.getDialogPane().getStylesheets().add("/res/app.css");
alertBox.getDialogPane().getStylesheets().add(AppPreferences.getInstance().getTheme());
alertBox.show();
}
*/
/**
* Create notification window with confirm/deny
* */