Newer
Older
Jason Dittmer (jcd763)
committed
package ui;
import com.sun.org.apache.xerces.internal.util.SynchronizedSymbolTable;
Jason Dittmer (jcd763)
committed
import javafx.scene.Scene;
Dallin Nickel (djn011)
committed
import javafx.scene.control.Alert;
Jason Dittmer (jcd763)
committed
import javafx.scene.control.Button;
import javafx.scene.control.ButtonType;
Jason Dittmer (jcd763)
committed
import javafx.scene.control.ComboBox;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import Controller.Binding;
import model.Hotkey;
import model.OSInterface;
import model.profiles.commands.*;
import java.util.ArrayList;
Jason Dittmer (jcd763)
committed
/**
* mainScreen is the main UI page for the program. All user functions start here.
*/
public class MainScreen extends Pane {
Stage primaryStage = new Stage();
Scene mainScreenScene = new Scene(this, 800, 800);
int id = 0;
public static ArrayList<Binding> list = new ArrayList<>();
Jason Dittmer (jcd763)
committed
Jason Dittmer (jcd763)
committed
public MainScreen() {
this.setStyle("-fx-background-color: #99aab5;");
primaryStage.setTitle("");
primaryStage.setScene(mainScreenScene);
primaryStage.show();
Jason Dittmer (jcd763)
committed
/*
Button to send user to screen to set a new keybind.
*/
Button bKeybind = new Button("Set a Keybind");
bKeybind.setOnAction(e -> goToKeybind());
bKeybind.setStyle("-fx-background-color: #2c2f33; -fx-text-fill: white; -fx-font-size: 30; -fx-vertical-align: middle; " +
"-fx-pref-width: 260px; -fx-pref-height: 150px; -fx-text-align: center;");
bKeybind.setWrapText(true);
bKeybind.setLayoutX(89);
bKeybind.setLayoutY(200);
Jason Dittmer (jcd763)
committed
/*
Button to send user to screen to set a new macro
*/
Button bMacro = new Button("Bind a Key to Macro");
bMacro.setOnAction(e -> System.out.println("Set Macro"));
bMacro.setStyle("-fx-background-color: #2c2f33; -fx-text-fill: white; -fx-font-size: 30; -fx-vertical-align: middle; " +
"-fx-pref-width: 260px; -fx-pref-height: 150px; -fx-text-align: center;");
bMacro.setWrapText(true);
bMacro.setLayoutX(438);
bMacro.setLayoutY(200);
Jason Dittmer (jcd763)
committed
/*
Button to send user to screen to set a new keybind.
*/
Button bProgram = new Button("Bind a Key to Program");
bProgram.setOnAction(e -> System.out.println("Bind a Key to Program"));
bProgram.setStyle("-fx-background-color: #2c2f33; -fx-text-fill: white; -fx-font-size: 30; -fx-vertical-align: middle; " +
"-fx-pref-width: 260px; -fx-pref-height: 150px; -fx-text-align: center;");
bProgram.setWrapText(true);
bProgram.setLayoutX(89);
bProgram.setLayoutY(450);
Jason Dittmer (jcd763)
committed
/*
Button to send user to screen to change mouse sensitivity
*/
Button bMouseSens = new Button("Change Mouse Sensitivity");
bMouseSens.setOnAction(e -> goToMouseSensitivity());
bMouseSens.setStyle("-fx-background-color: #2c2f33; -fx-text-fill: white; -fx-font-size: 30; -fx-vertical-align: middle; " +
"-fx-pref-width: 260px; -fx-pref-height: 150px; -fx-text-align: center;");
bMouseSens.setWrapText(true);
bMouseSens.setLayoutX(438);
bMouseSens.setLayoutY(450);
Dallin Nickel (djn011)
committed
Jason Dittmer (jcd763)
committed
/*
Button to toggle keybinds on/off
*/
Button bToggle = new Button("Toggle Keybinds On/Off");
bToggle.setOnAction(e -> System.out.println("Toggle On/Off"));
bToggle.setStyle("-fx-background-color: #2c2f33; -fx-text-fill: white; -fx-font-size: 16; -fx-vertical-align: middle; " +
"-fx-pref-width: 200px; -fx-pref-height: 50px; -fx-text-align: center;");
bToggle.setWrapText(true);
bToggle.setLayoutX(520);
bToggle.setLayoutY(670);
Jason Dittmer (jcd763)
committed
/*
Drop down box to select profile
*/
ComboBox<String> profileSelector = new ComboBox<String>();
profileSelector.getItems().add("Profile 1");
profileSelector.getItems().add("Profile 2");
profileSelector.getItems().add("Profile 3");
profileSelector.setValue("Profile 1");
profileSelector.setStyle("-fx-background-color: lightgrey; -fx-text-fill: white; -fx-font-size: 20; -fx-vertical-align: middle; " +
"-fx-pref-width: 200px; -fx-pref-height: 50px; -fx-text-align: center;");
profileSelector.setLayoutX(89);
profileSelector.setLayoutY(45);
profileSelector.setOnAction(e -> System.out.println(profileSelector.getValue()));
Jason Dittmer (jcd763)
committed
/*
Button to add new profile
*/
Button bAddProfile = new Button("Add New Profile");
bAddProfile.setOnAction(e -> goToAddProfile());
bAddProfile.setStyle("-fx-background-color: #2c2f33; -fx-text-fill: white; -fx-font-size: 16; -fx-vertical-align: middle; " +
"-fx-pref-width: 200px; -fx-pref-height: 50px; -fx-text-align: center;");
bAddProfile.setWrapText(true);
bAddProfile.setLayoutX(315);
bAddProfile.setLayoutY(45);
Jason Dittmer (jcd763)
committed
/*
Button to delete the current profile
*/
Button bDelProfile = new Button("Delete Current Profile");
bDelProfile.setOnAction(e -> {
Alert alert = new Alert(Alert.AlertType.CONFIRMATION, "Delete current profile?", ButtonType.YES, ButtonType.NO, ButtonType.CANCEL);
alert.showAndWait();
if (alert.getResult() == ButtonType.YES) {
deleteProfile delP = new deleteProfile();
checkActive active = new checkActive();
delP.DeleteProfile(active.CheckActive().getName());
}
});
Jason Dittmer (jcd763)
committed
bDelProfile.setStyle("-fx-background-color: #2c2f33; -fx-text-fill: white; -fx-font-size: 16; -fx-vertical-align: middle; " +
"-fx-pref-width: 200px; -fx-pref-height: 50px; -fx-text-align: center;");
bDelProfile.setWrapText(true);
bDelProfile.setLayoutX(541);
bDelProfile.setLayoutY(45);
this.getChildren().addAll(bKeybind, bMacro, bProgram, bMouseSens, bToggle, profileSelector, bAddProfile, bDelProfile);
}
Jason Dittmer (jcd763)
committed
/**
* Function called when user wishes to make a new keybind. Opens the KeybindView class in the stage.
*/
private void goToKeybind() {
KeybindView KBV = new KeybindView();
//Button to go back to main view
Button back = new Button("Back");
back.setLayoutX(510);
back.setLayoutY(700);
back.setStyle("-fx-background-color: #2c2f33; -fx-text-fill: white; -fx-font-size: 16; -fx-vertical-align: middle; " +
"-fx-pref-width: 100px; -fx-pref-height: 50px; -fx-text-align: center;");
back.setOnAction(e -> primaryStage.setScene(mainScreenScene));
//Button to save fields and enter keybind to profile
Button save = new Button("Save");
save.setLayoutX(640);
save.setLayoutY(700);
save.setStyle("-fx-background-color: #2c2f33; -fx-text-fill: white; -fx-font-size: 16; -fx-vertical-align: middle; " +
"-fx-pref-width: 100px; -fx-pref-height: 50px; -fx-text-align: center;");
save.setOnAction(e -> {
Hotkey newHotkey = new Hotkey(KBV.getKeyToBind(), id, Modifier.NONE.val());
Hotkey action = new Hotkey(KBV.getKeyAction(), id, Modifier.NONE.val());
Binding binding = new Binding(newHotkey, action);
checkActive active = new checkActive();
addHotkey addH = new addHotkey();
addH.AddHotkey(active.CheckActive().getName(), id, Modifier.NONE, KBV.getKeyAction());
list.add(binding);
id ++;
boolean register = OSInterface.getInstance().registerHotkey(newHotkey);
Jason Dittmer (jcd763)
committed
primaryStage.setScene(mainScreenScene);
});
Scene KBVScene = new Scene(KBV, 800, 800);
primaryStage.setScene(KBVScene);
KBV.getChildren().addAll(back, save);
Dallin Nickel (djn011)
committed
}
/**
* Function called when user wishes to add a new profile. Reads in a profile name and creates a new profile. User can also
* use back button to return without making changes.
*/
private void goToAddProfile() {
AddProfileScreen profileScreen = new AddProfileScreen();
//Button to go back to main view
Button back = new Button("Back");
back.setLayoutX(510);
back.setLayoutY(700);
back.setStyle("-fx-background-color: #2c2f33; -fx-text-fill: white; -fx-font-size: 16; -fx-vertical-align: middle; " +
"-fx-pref-width: 100px; -fx-pref-height: 50px; -fx-text-align: center;");
back.setOnAction(e -> primaryStage.setScene(mainScreenScene));
Jason Dittmer (jcd763)
committed
//Button to save name field and create profile
Button save = new Button("Save");
save.setLayoutX(640);
save.setLayoutY(700);
save.setStyle("-fx-background-color: #2c2f33; -fx-text-fill: white; -fx-font-size: 16; -fx-vertical-align: middle; " +
"-fx-pref-width: 100px; -fx-pref-height: 50px; -fx-text-align: center;");
save.setOnAction(e -> {
new addProfile(profileScreen.getProfileName());
primaryStage.setScene(mainScreenScene);
});
primaryStage.setTitle("Add New Profile");
Scene profScene = new Scene(profileScreen, 800, 800);
primaryStage.setScene(profScene);
profileScreen.getChildren().addAll(back, save);
Jason Dittmer (jcd763)
committed
}
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
/**
* Function called when user wishes to change mouse sensitivity. Reads in a slider value, save button saves changes,
* back button does nothing and goes back to main screen.
*/
private void goToMouseSensitivity() {
MouseSensitivityScreen mouseSensScreen = new MouseSensitivityScreen();
//Button to go back to main view
Button back = new Button("Back");
back.setLayoutX(510);
back.setLayoutY(700);
back.setStyle("-fx-background-color: #2c2f33; -fx-text-fill: white; -fx-font-size: 16; -fx-vertical-align: middle; " +
"-fx-pref-width: 100px; -fx-pref-height: 50px; -fx-text-align: center;");
back.setOnAction(e -> primaryStage.setScene(mainScreenScene));
//Button to save sensitivity and return to main screen
Button save = new Button("Save");
save.setLayoutX(640);
save.setLayoutY(700);
save.setStyle("-fx-background-color: #2c2f33; -fx-text-fill: white; -fx-font-size: 16; -fx-vertical-align: middle; " +
"-fx-pref-width: 100px; -fx-pref-height: 50px; -fx-text-align: center;");
save.setOnAction(e -> {
System.out.println(mouseSensScreen.getSensitivity());
primaryStage.setScene(mainScreenScene);
});
primaryStage.setTitle("Add New Profile");
Scene sensScene = new Scene(mouseSensScreen, 800, 800);
primaryStage.setScene(sensScene);
mouseSensScreen.getChildren().addAll(back, save);
}