buttons added to java's homework5 and makefile now works as well
This commit is contained in:
parent
1fac09b579
commit
eb82ea7ee2
@ -6,8 +6,49 @@ Description: Builds a basic school data tracker
|
|||||||
Course information is also available
|
Course information is also available
|
||||||
Input is read from file
|
Input is read from file
|
||||||
*/
|
*/
|
||||||
public class App {
|
import javafx.application.Application;
|
||||||
|
import javafx.scene.Scene;
|
||||||
|
import javafx.scene.control.Label;
|
||||||
|
import javafx.scene.control.Button;
|
||||||
|
import javafx.scene.layout.StackPane;
|
||||||
|
import javafx.stage.Stage;
|
||||||
|
import javafx.scene.layout.GridPane;
|
||||||
|
|
||||||
|
public class App extends Application {
|
||||||
|
static public School school_;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void start(Stage stage) {
|
||||||
|
// make the initial menu with three buttons
|
||||||
|
stage.setTitle("School App");
|
||||||
|
// main menu buttons
|
||||||
|
Button instButton = new Button("Instructors");
|
||||||
|
Button studButton = new Button("Students");
|
||||||
|
Button courButton = new Button("Courses");
|
||||||
|
|
||||||
|
// creating the initial scene to draw thigns onto
|
||||||
|
GridPane grid = new GridPane();
|
||||||
|
grid.add(instButton, 1, 0, 1, 1);
|
||||||
|
grid.add(studButton, 1, 1, 1, 1);
|
||||||
|
grid.add(courButton, 1, 2, 1, 1);
|
||||||
|
|
||||||
|
Scene scene = new Scene(grid, 1280, 720);
|
||||||
|
stage.setScene(scene);
|
||||||
|
|
||||||
|
// render the scene
|
||||||
|
stage.show();
|
||||||
|
}
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
// First we'll create a school
|
||||||
|
School.createSchool("CSUMB");
|
||||||
|
school_ = School.getSchool();
|
||||||
|
// Next we'll populate it with some data
|
||||||
|
school_.readData("data1.txt");
|
||||||
|
school_.readData("data2.txt");
|
||||||
|
// Next we'll create the UI
|
||||||
|
launch();
|
||||||
|
}
|
||||||
|
public static void legacy_main(String[] args) {
|
||||||
String dataFile1 = "data1.txt";
|
String dataFile1 = "data1.txt";
|
||||||
String dataFile2 = "data2.txt";
|
String dataFile2 = "data2.txt";
|
||||||
|
|
||||||
@ -17,7 +58,9 @@ public class App {
|
|||||||
|
|
||||||
// first we'll read in some data
|
// first we'll read in some data
|
||||||
System.out.println("===== Read Data 1 =====");
|
System.out.println("===== Read Data 1 =====");
|
||||||
School SCD = new School("CSUMB");
|
School.createSchool("CSUMB");
|
||||||
|
|
||||||
|
School SCD = School.getSchool();
|
||||||
// get all basic info about the SCD
|
// get all basic info about the SCD
|
||||||
SCD.readData(dataFile1);
|
SCD.readData(dataFile1);
|
||||||
|
|
||||||
|
@ -3,21 +3,46 @@ import java.util.HashMap;
|
|||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import javafx.collections.FXCollections;
|
||||||
|
import javafx.collections.ObservableList;
|
||||||
|
|
||||||
// NOTE: there will probably only be one instance of a school object ever
|
/* NOTE::editor: micro complains about all javafx things just ignore */
|
||||||
public class School {
|
public class School {
|
||||||
private ArrayList<Instructor> instructorList;
|
private ObservableList<Instructor> instructorList;
|
||||||
private ArrayList<Course> courseList;
|
private ObservableList<Course> courseList;
|
||||||
private ArrayList<Student> studentList;
|
private ObservableList<Student> studentList;
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
public School(/*String file,*/ String schoolName) {
|
private static School inst = null;
|
||||||
this.instructorList = new ArrayList<Instructor>();
|
|
||||||
this.courseList = new ArrayList<Course>();
|
private School(/*String file,*/ String schoolName) {
|
||||||
this.studentList = new ArrayList<Student>();
|
instructorList = FXCollections.observableArrayList();
|
||||||
|
courseList = FXCollections.observableArrayList();
|
||||||
|
studentList = FXCollections.observableArrayList();
|
||||||
|
|
||||||
this.name = schoolName;
|
this.name = schoolName;
|
||||||
//readData(file);
|
}
|
||||||
|
|
||||||
|
// These two methods secure the singleton pattern for ur
|
||||||
|
public static School getSchool() {
|
||||||
|
return inst;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void createSchool(String schoolName) {
|
||||||
|
if(inst == null) {
|
||||||
|
inst = new School(schoolName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void editCourse(Course c) {
|
||||||
|
/* Helper func to notify an actual change for the ui */
|
||||||
|
int k = courseList.indexOf(c);
|
||||||
|
courseList.set(k,c);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void editStudent(Student s) {
|
||||||
|
int k = studentList.indexOf(s);
|
||||||
|
studentList.set(k,s);
|
||||||
}
|
}
|
||||||
public void readData(String filename) {
|
public void readData(String filename) {
|
||||||
try {
|
try {
|
||||||
@ -237,6 +262,7 @@ public class School {
|
|||||||
}
|
}
|
||||||
|
|
||||||
tmp.graduate();
|
tmp.graduate();
|
||||||
|
editStudent(tmp);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -252,22 +278,26 @@ public class School {
|
|||||||
}
|
}
|
||||||
// if the student is there but not enrolled in that course then just create a new student with new data
|
// if the student is there but not enrolled in that course then just create a new student with new data
|
||||||
tmp.enroll(courseID, floatGrade, letterGrade);
|
tmp.enroll(courseID, floatGrade, letterGrade);
|
||||||
|
editStudent(tmp);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
public void drop(int studentID, int courseID) {
|
public void drop(int studentID, int courseID) {
|
||||||
for(Student s : studentList) {
|
for(Student s : studentList) {
|
||||||
if(s.id == studentID) {
|
if(s.id == studentID) {
|
||||||
s.grades.remove(courseID);
|
s.grades.remove(courseID);
|
||||||
|
editStudent(s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void assign(int instructorID, int courseID) {
|
public void assign(int instructorID, int courseID) {
|
||||||
Course c = getCourse(courseID);
|
Course c = getCourse(courseID);
|
||||||
c.instructorID = instructorID;
|
c.instructorID = instructorID;
|
||||||
|
editCourse(c);
|
||||||
}
|
}
|
||||||
public void unassign(int instructorID, int courseID) {
|
public void unassign(int instructorID, int courseID) {
|
||||||
Course c = getCourse(courseID);
|
Course c = getCourse(courseID);
|
||||||
c.instructorID = 0;
|
c.instructorID = 0;
|
||||||
|
editCourse(c);
|
||||||
}
|
}
|
||||||
// basic printout of school infor
|
// basic printout of school infor
|
||||||
public void schoolInfo() {
|
public void schoolInfo() {
|
||||||
|
@ -1,8 +1,18 @@
|
|||||||
all:
|
cc=~/Downloads/jdk-11.0.2/bin/javac
|
||||||
javac App.java Course.java Instructor.java School.java Student.java
|
fxlib=--module-path /home/shockrah/Downloads/javafx-sdk-11.0.2/lib
|
||||||
|
ctrl=--add-modules javafx.controls
|
||||||
|
env=~/Downloads/jdk-11.0.2/bin/java
|
||||||
|
|
||||||
run: all
|
jfiles=App.java Course.java Instructor.java School.java Student.java
|
||||||
@java App
|
cfiles=App
|
||||||
|
|
||||||
|
all: $(jfiles)
|
||||||
|
$(cc) $(fxlib) $(jfiles) $(ctrl)
|
||||||
|
|
||||||
|
run: $(cfile)
|
||||||
|
$(env) $(fxlib) $(ctrl) $(cfiles)
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *class
|
rm -f *class
|
||||||
|
@ -9,8 +9,8 @@ cfiles=HelloFX
|
|||||||
all: $(jfiles)
|
all: $(jfiles)
|
||||||
$(cc) $(fxlib) $(jfiles) $(ctrl)
|
$(cc) $(fxlib) $(jfiles) $(ctrl)
|
||||||
|
|
||||||
run:
|
run: $(cfile)
|
||||||
$(env) $(fxlib) $(ctrl) $(cfile) $(cfiles)
|
$(env) $(fxlib) $(ctrl) $(cfiles)
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
|
|
||||||
|
2
338/tmp/tmp
Normal file
2
338/tmp/tmp
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
~/Downloads/jdk-11.0.2/bin/java --module-path /home/shockrah/Downloads/javafx-sdk-11.0.2/lib --add-modules javafx.controls
|
||||||
|
makefile:13: recipe for target 'run' failed
|
Loading…
Reference in New Issue
Block a user