using listeners instead of a main thread for main logic
This commit is contained in:
parent
3177714fc5
commit
3634a61ee5
11 changed files with 229 additions and 47 deletions
|
|
@ -0,0 +1,95 @@
|
|||
package com.coder.client.gui.selectProject;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.HashSet;
|
||||
import java.util.ResourceBundle;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.ListView;
|
||||
import javafx.scene.input.KeyCode;
|
||||
import javafx.scene.input.KeyEvent;
|
||||
|
||||
import com.coder.client.gui.GuiWindow;
|
||||
|
||||
public class SelectProjectDialog extends GuiWindow {
|
||||
public static final Logger logger = LogUtil.getLogger();
|
||||
private HashSet<SelectProjectDialogListener> listeners;
|
||||
|
||||
@FXML private ListView projectListView;
|
||||
@FXML private Button newProjectButton;
|
||||
@FXML private Button cancelButton;
|
||||
@FXML private Button openProjectButton;
|
||||
|
||||
public SelectProjectDialog() throws IOException {
|
||||
super(SelectProjectDialog.class.getResource("SelectProjectDialog.fxml"));
|
||||
listeners = new HashSet<SelectProjectDialogListener>();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void willShow() {
|
||||
for(SelectProjectDialogListener listener : this.listeners){
|
||||
listener.willShow();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize(URL fxmlFileLocation, ResourceBundle resources) {
|
||||
|
||||
}
|
||||
|
||||
@FXML
|
||||
protected void keyPressed(KeyEvent event) {
|
||||
if(event.getCode() == KeyCode.ENTER){
|
||||
logger.fine("User pressed the ENTER key");
|
||||
openProjectButton.fire();
|
||||
}else if(event.getCode() == KeyCode.ESCAPE){
|
||||
logger.fine("User pressed the ESCAPE key");
|
||||
cancelButton.fire();
|
||||
}else if(event.getCode() == KeyCode.N && event.isControlDown()){ //CTRL+N
|
||||
logger.fine("User pressed CTRL+N");
|
||||
newProjectButton.fire();
|
||||
}
|
||||
}
|
||||
|
||||
@FXML
|
||||
protected void newProject(ActionEvent event){
|
||||
for(SelectProjectDialogListener listener : this.listeners){
|
||||
listener.newProject();
|
||||
}
|
||||
}
|
||||
|
||||
@FXML
|
||||
protected void cancel(ActionEvent event){
|
||||
for(SelectProjectDialogListener listener : this.listeners){
|
||||
listener.cancel();
|
||||
}
|
||||
}
|
||||
|
||||
@FXML
|
||||
protected void openProject(ActionEvent event){
|
||||
for(SelectProjectDialogListener listener : this.listeners){
|
||||
//TODO: get selected project in the list view
|
||||
String selectedProjectName = "project name";
|
||||
listener.openProject(selectedProjectName);
|
||||
}
|
||||
}
|
||||
|
||||
public void addSelectProjectDialogListener(SelectProjectDialogListener listener){
|
||||
this.listeners.add(listener);
|
||||
}
|
||||
|
||||
public void clearProjectList(){
|
||||
//TODO
|
||||
}
|
||||
|
||||
public void addProjectToList(String name, String type){
|
||||
//TODO
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue