JAVA Program
JAVA Program
Architecture
Connect the View Class and Model Class
Implement CRUD
THEORY:
Developing a controller class in Java using the MVC (Model-View-Controller) architecture:
Connecting the View and Model:
Handle user input from the view
Invoke appropriate methods in the model based on user input
Update the view with processed data from the model
Implementing CRUD Operations:
Create: Accept user input, create model object, persist data
Read: Retrieve data from the model (single entity or collection)
Update: Retrieve existing data, update model object with user input, persist changes
Delete: Handle user requests for deleting data, remove data from the model
Other Considerations:
Input validation
Error handling
Separation of concerns (no business logic or data manipulation)
Dependency injection for loose coupling and testability
The controller acts as an intermediary, facilitating the communication between the view and
model components, while implementing the necessary CRUD operations and following best
practices for maintainable code.
INPUT:
//Model.Teachers
//Person.java
package Model.Teachers;
public class Person {
String fname;
String lname;
String email;
String address;
String mobile;
public Person()
{
System.out.println("Creating a Person");
}
public Person(String fname, String lname, String email, String address, String mobile)
{
this.setFname(fname);
this.setLname(lname);
this.setEmail(email);
this.setAddress(address);
this.setMobile(mobile);
}
public void setFname(String fname) {
this.fname = fname;
}
public void setLname(String lname) {
this.lname = lname;
}
public void setEmail(String email) {
this.email = email;
}
public void setAddress(String address) {
this.address = address;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getFname() {
return fname;
}
public String getLname() {
return lname;
}
public String getEmail() {
return email;
}
public String getAddress() {
return address;
}
public String getMobile() {
return mobile;
}
public void display()
{
System.out.println("Teacher First Name: "+getFname());
System.out.println("Teacher Last Name: "+getLname());
System.out.println("Teacher Email: "+getEmail());
System.out.println("Teacher Address: "+getAddress());
System.out.println("Teacher Mobile No: "+getMobile());
}
}
//Teacher.java
package Model.Teachers;
public class Teacher extends Person{
private static int teacher_count = 0;
int teacher_id;
double teacher_rating;
public static int getTeacher_count()
{
return teacher_count;
}
public Teacher()
{
teacher_count++;
this.setTeacher_id(teacher_count);
}
public Teacher(double teacher_rating, String teacher_fname, String teacher_lname, String
teacher_email, String teacher_address, String teacher_mobile)
{
super(teacher_fname, teacher_lname, teacher_email,
teacher_address,teacher_mobile);
teacher_count++;
this.setTeacher_id(teacher_count);
this.setTeacher_rating(teacher_rating);
}
public Teacher(int teacher_id, double teacher_rating, String teacher_fname, String
teacher_lname, String teacher_email, String teacher_address, String teacher_mobile)
{
super(teacher_fname, teacher_lname, teacher_email,
teacher_address,teacher_mobile);
teacher_count++;
this.setTeacher_id(teacher_id);
this.setTeacher_rating(teacher_rating);
}
public void setTeacher_id(int teacher_id) {
this.teacher_id = teacher_id;
}
public void setTeacher_rating(double teacher_rating) {
this.teacher_rating = teacher_rating;
}
public int getTeacher_id() {
return teacher_id;
}
public double getTeacher_rating() {
return teacher_rating;
}
public void display()
{
System.out.println("Teacher Id: "+getTeacher_id());
System.out.println("Teacher rating: "+getTeacher_rating());
super.display();
}
}
//manageTeacher.java
package Model.Teachers;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import Model.Displayable;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.ArrayList;
public class manageTeacher extends FileHandlingTeacher implements Displayable {
ArrayList<Teacher> teachers = new ArrayList<Teacher>();
ObjectMapper objectMapper = new ObjectMapper();
private int linesBeingDisplayed;
private int firstLineIndex;
int lastLineIndex;
int highlightedLine;
public manageTeacher(){
readTeacherJsonFile("untitled/src/Model/Teachers/Teachers.json");
}
public ArrayList<Teacher> readTeacherJsonFile(String file_path)
{
teachers.removeAll(teachers);
try {
JsonNode rootNode = objectMapper.readTree(new File(file_path));
// Iterate through JSON array
if (rootNode.isArray()) {
for (JsonNode node : rootNode) {
int teacher_id = node.get("teacher_id").asInt();
String fname = node.get("fname").asText();
String lname = node.get("lname").asText();
String email = node.get("email").asText();
String address = node.get("address").asText();
String mobile = node.get("mobile").asText();
double teacher_rating = node.get("teacher_rating").asDouble();
Teacher stud = new Teacher(teacher_id, teacher_rating, fname, lname, email,
address, mobile);
teachers.add(stud);
}
}
} catch (IOException e) {
e.printStackTrace();
}
return teachers;
}
public void writeTeacherJsonFile(String file_path, ArrayList<Teacher> teachers) throws
IOException {
//objectMapper.writeValue(Paths.get("src/Model/Teachers/teachers.json").toFile(),
teachers);
objectMapper.writeValue(Paths.get(file_path).toFile(), teachers);
}
public void setTeachersTable(ArrayList<Teacher> teachers) {
this.teachers = teachers;
}
public ArrayList<String> getHeaders() {
ArrayList<String> headers = new ArrayList<String>();
headers.add("Id");
headers.add("First Name");
headers.add("Last Email");
headers.add("Email");
headers.add("Address");
headers.add("Mobile");
headers.add("Teacher rating");
return headers;
}
@Override
public ArrayList<String> getLine(int line) {
ArrayList<String> teacher_details = new ArrayList<String>();
teacher_details.add(String.valueOf(teachers.get(line).getTeacher_id()));
teacher_details.add(teachers.get(line).getFname());
teacher_details.add(teachers.get(line).getLname());
teacher_details.add(teachers.get(line).getEmail());
teacher_details.add(teachers.get(line).getAddress());
teacher_details.add(teachers.get(line).getMobile());
teacher_details.add(String.valueOf(teachers.get(line).getTeacher_rating()));
return teacher_details;
}
@Override
public ArrayList<ArrayList<String>> getLines(int firstLine, int lastLine) {
ArrayList<ArrayList<String>> teachers_subset = new ArrayList<ArrayList<String>>();
for (int i = firstLine; i <= lastLine; i++) {
teachers_subset.add(getLine(i));
}
return teachers_subset;
}
@Override
public int getFirstLineToDisplay() {
return firstLineIndex;
}
@Override
public int getLineToHighlight() {
return highlightedLine;
}
@Override
public int getLastLineToDisplay() {
setLastLineToDisplay(getFirstLineToDisplay() + getLinesBeingDisplayed() - 1);
return lastLineIndex;
}
@Override
public int getLinesBeingDisplayed() {
return linesBeingDisplayed;
}
@Override
public void setFirstLineToDisplay(int firstLine) {
this.firstLineIndex = firstLine;
}
@Override
public void setLineToHighlight(int highlightedLine) {
this.highlightedLine = highlightedLine;
}
@Override
public void setLastLineToDisplay(int lastLine) {
this.lastLineIndex = lastLine;
}
@Override
public void setLinesBeingDisplayed(int numberOfLines) {
this.linesBeingDisplayed = numberOfLines;
}
public ArrayList<Teacher> getTable() {
readTeacherJsonFile("untitled/src/Model/Teachers/Teachers.json");
return teachers;
}
public void addNewTeacher(double teacher_rating, String teacher_fname, String
teacher_lname, String teacher_email, String teacher_address, String teacher_mobile)
throws IOException {
readTeacherJsonFile("untitled/src/Model/Teachers/Teachers.json");
Teacher temp_stud = new Teacher(teacher_rating, teacher_fname, teacher_lname,
teacher_email, teacher_address, teacher_mobile);
teachers.add(temp_stud);
writeTeacherJsonFile("untitled/src/Model/Teachers/Teachers.json",teachers);
}
}
//FileHandlingTeacher.java
package Model.Teachers;
import Model.Subjects.Subject;
import Model.Teachers.Teacher;
import java.io.IOException;
import java.util.ArrayList;
public abstract class FileHandlingTeacher {
protected abstract ArrayList<Teacher> readTeacherJsonFile(String file_path);
protected abstract void writeTeacherJsonFile(String file_path, ArrayList<Teacher>
teachers) throws IOException;
}
//Teachers.json
{"teacher_id":10,"fname":"Brnaby","lname":"Brettelle","email":"[email protected]","add
ress":"16886 Loomis Way","mobile":"468-512-2109","teacher_rating":6.5},
{"teacher_id":11,"fname":"Andrea","lname":"Forsard","email":"[email protected]","ad
dress":"228 Randy Point","mobile":"651-805-8292","teacher_rating":8.1},
{"teacher_id":12,"fname":"Neile","lname":"Huggins","email":"[email protected]","add
ress":"97335 Sycamore Plaza","mobile":"531-597-4497","teacher_rating":7.4},
{"teacher_id":13,"fname":"Osbourn","lname":"Lum","email":"[email protected]","address":
"35572 Mockingbird Plaza","mobile":"135-616-4550","teacher_rating":9.0},
{"teacher_id":14,"fname":"Allison","lname":"Parkhouse","email":"[email protected]","
address":"761 John Wall Point","mobile":"775-325-4223","teacher_rating":9.0},
{"teacher_id":15,"fname":"Marys","lname":"Topper","email":"[email protected]
","address":"4 Becker Crossing","mobile":"939-397-1736","teacher_rating":9.7},
{"teacher_id":16,"fname":"Dyanne","lname":"Rubenovic","email":"drubenovicf@deviantart.
com","address":"629 Golf Junction","mobile":"786-970-1435","teacher_rating":6.3},
{"teacher_id":17,"fname":"Gus","lname":"Joyner","email":"[email protected]","address":"
46 Roth Trail","mobile":"215-171-2599","teacher_rating":9.5},
{"teacher_id":18,"fname":"Lynette","lname":"Dudbridge","email":"[email protected]",
"address":"53114 Jay Road","mobile":"272-354-8242","teacher_rating":8.0},
{"teacher_id":19,"fname":"Noach","lname":"Chittie","email":"[email protected]","address
":"59 Old Gate Avenue","mobile":"881-127-2885","teacher_rating":7.6},
{"teacher_id":20,"fname":"Orazio","lname":"Stoak","email":"[email protected]","address"
:"836 Pine View Trail","mobile":"276-818-0910","teacher_rating":9.5}]
//Model.Subjects Package
//Subject.java
package Model.Subjects;
import java.util.ArrayList;
public class Subject {
private static int subject_count = 0;
int subject_id;
String subject_name;
String subject_duration;
int subject_credits;
public static int getSubject_count()
{
return subject_count;
}
public Subject()
{
subject_count++;
this.setSubject_id(subject_count);
}
public Subject(String subject_name, String subject_duration, int subject_credits)
{
subject_count++;
this.setSubject_id(subject_count);
this.setSubject_name(subject_name);
this.setSubject_duration(subject_duration);
this.setSubject_credits(subject_credits);
}
public Subject(int subject_id, String subject_name, String subject_duration, int
subject_credits)
{
subject_count++;
this.setSubject_id(subject_id);
this.setSubject_name(subject_name);
this.setSubject_duration(subject_duration);
this.setSubject_credits(subject_credits);
}
public void setSubject_id(int subject_id) {
this.subject_id = subject_id;
}
public void setSubject_name(String subject_name) {
this.subject_name = subject_name;
}
public void setSubject_duration(String subject_duration) {
this.subject_duration = subject_duration;
}
public void setSubject_credits(int subject_credits) {
this.subject_credits = subject_credits;
}
public int getSubject_id() {
return subject_id;
}
public String getSubject_name() {
return subject_name;
}
public String getSubject_duration() {
return subject_duration;
}
public int getSubject_credits() {
return subject_credits;
}
public void display()
{
System.out.println("Subject Id: "+getSubject_id());
System.out.println("Subject Name: "+getSubject_name());
System.out.println("Subject Duration: "+getSubject_duration());
System.out.println("Subject Credits: "+getSubject_credits());
}
}
//manageSubject.java
package Model.Subjects;
import Model.Displayable;
import Model.Teachers.FileHandlingTeacher;
import Model.Teachers.Teacher;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.ArrayList;
public class manageSubject extends FileHandlingSubject implements Displayable {
ArrayList<Subject> subjects = new ArrayList<Subject>();
ObjectMapper objectMapper = new ObjectMapper();
private int linesBeingDisplayed;
private int firstLineIndex;
int lastLineIndex;
int highlightedLine;
public manageSubject(){
readSubjectJsonFile("untitled/src/Model/Subjects/Subjects.json");
}
@Override
public ArrayList<Subject> readSubjectJsonFile(String file_path) {
subjects.removeAll(subjects);
try {
JsonNode rootNode = objectMapper.readTree(new File(file_path));
// Iterate through JSON array
if (rootNode.isArray()) {
for (JsonNode node : rootNode) {
int subject_id = node.get("subject_id").asInt();
String subject_name = node.get("subject_name").asText();
String subject_duration = node.get("subject_duration").asText();
int subject_credits = node.get("subject_credits").asInt();
Subject c_temp = new Subject(subject_id, subject_name, subject_duration,
subject_credits);
subjects.add(c_temp);
}
}
} catch (IOException e) {
e.printStackTrace();
}
return subjects;
}
@Override
public void writeSubjectJsonFile(String file_path, ArrayList<Subject> subjects) throws
IOException {
objectMapper.writeValue(Paths.get(file_path).toFile(), subjects);
}
public ArrayList<String> getHeaders() {
ArrayList<String> headers = new ArrayList<String>();
headers.add("Subject Id");
headers.add("Subject Name");
headers.add("Subject Duration");
headers.add("Subject Credits");
return headers;
}
@Override
public ArrayList<String> getLine(int line) {
ArrayList<String> subject_details = new ArrayList<String>();
subject_details.add(String.valueOf(subjects.get(line).getSubject_id()));
subject_details.add(subjects.get(line).getSubject_name());
subject_details.add(subjects.get(line).getSubject_duration());
subject_details.add(String.valueOf(subjects.get(line).getSubject_credits()));
return subject_details;
}
@Override
public ArrayList<ArrayList<String>> getLines(int firstLine, int lastLine) {
ArrayList<ArrayList<String>> subject_subset = new ArrayList<ArrayList<String>>();
for (int i = firstLine; i <= lastLine; i++) {
subject_subset.add(getLine(i));
}
return subject_subset;
}
@Override
public int getFirstLineToDisplay() {
return 0;
}
@Override
public int getLineToHighlight() {
return 0;
}
@Override
public int getLastLineToDisplay() {
setLastLineToDisplay(this.firstLineIndex + this.linesBeingDisplayed - 1);
return this.lastLineIndex;
}
@Override
public int getLinesBeingDisplayed() {
return linesBeingDisplayed;
}
@Override
public void setFirstLineToDisplay(int firstLine) {
this.firstLineIndex = firstLine;
}
@Override
public void setLineToHighlight(int highlightedLine) {
}
@Override
public void setLastLineToDisplay(int lastLine) {
this.lastLineIndex = lastLine;
}
@Override
public void setLinesBeingDisplayed(int numberOfLines) {
this.linesBeingDisplayed = numberOfLines;
}
public ArrayList<Subject> getTable() {
readSubjectJsonFile("untitled/src/Model/Subjects/Subjects.json");
return subjects;
}
}
//FileHandlingSubject.java
package Model.Subjects;
import Model.Teachers.Teacher;
import java.io.IOException;
import java.util.ArrayList;
public abstract class FileHandlingSubject {
protected abstract ArrayList<Subject> readSubjectJsonFile(String file_path);
protected abstract void writeSubjectJsonFile(String file_path, ArrayList<Subject> subjects)
throws IOException;
}
//Subjects.json
[{"subject_id":1,"subject_name":"Yombu","subject_duration":"45 Hrs","subject_credits":4},
{"subject_id":2,"subject_name":"Voonyx","subject_duration":"45 Hrs","subject_credits":4},
{"subject_id":3,"subject_name":"Browsecat","subject_duration":"50
Hrs","subject_credits":4},
{"subject_id":4,"subject_name":"Photofeed","subject_duration":"20
Hrs","subject_credits":1},
{"subject_id":5,"subject_name":"Photobug","subject_duration":"30
Hrs","subject_credits":4},
{"subject_id":6,"subject_name":"Twitterworks","subject_duration":"50
Hrs","subject_credits":2},
{"subject_id":7,"subject_name":"Dynava","subject_duration":"50 Hrs","subject_credits":4},
{"subject_id":8,"subject_name":"Skivee","subject_duration":"45 Hrs","subject_credits":4},
{"subject_id":9,"subject_name":"Dazzlesphere","subject_duration":"20
Hrs","subject_credits":3},
{"subject_id":10,"subject_name":"Feednation","subject_duration":"20
Hrs","subject_credits":3},
{"subject_id":11,"subject_name":"Buzzster","subject_duration":"50
Hrs","subject_credits":3},
{"subject_id":12,"subject_name":"Dablist","subject_duration":"45
Hrs","subject_credits":2},
{"subject_id":13,"subject_name":"Zoozzy","subject_duration":"45
Hrs","subject_credits":3},
{"subject_id":14,"subject_name":"Edgeclub","subject_duration":"45
Hrs","subject_credits":4},
{"subject_id":15,"subject_name":"Centizu","subject_duration":"20
Hrs","subject_credits":4},
{"subject_id":16,"subject_name":"Babbleset","subject_duration":"45
Hrs","subject_credits":1},
{"subject_id":17,"subject_name":"Npath","subject_duration":"45 Hrs","subject_credits":4},
{"subject_id":18,"subject_name":"Pixonyx","subject_duration":"45
Hrs","subject_credits":3},
{"subject_id":19,"subject_name":"JumpXS","subject_duration":"40
Hrs","subject_credits":2},
{"subject_id":20,"subject_name":"Eayo","subject_duration":"30 Hrs","subject_credits":3}]
//Model.Enrolls
//Enrolls.java
//manageEnrolls.java
package Model.Enrolls;
import Model.Subjects.*;
import Model.Subjects.manageSubject;
import Model.Displayable;
import Model.Teachers.*;
import Model.Teachers.manageTeacher;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class manageEnrolls extends FileHandlingEnrolls implements Displayable {
ArrayList<Teacher> teachers = new ArrayList<Teacher>();
ArrayList<Subject> subjects = new ArrayList<Subject>();
ArrayList<Enrolls> enrollment_data = new ArrayList<Enrolls>();
ObjectMapper objectMapper = new ObjectMapper();
private int linesBeingDisplayed;
private int firstLineIndex;
int lastLineIndex;
int highlightedLine;
public manageEnrolls(){
manageTeacher mt1 = new manageTeacher();
teachers = mt1.getTable();
manageSubject ms1 = new manageSubject();
subjects = ms1.getTable();
readEnrollsJsonFile("untitled/src/Model/Enrolls/Enrolls.json");
}
@Override
public ArrayList<Enrolls> readEnrollsJsonFile(String file_path) {
try {
JsonNode rootNode= objectMapper.readTree(new File(file_path));
// Iterate through JSON array
if (rootNode.isArray()) {
for (JsonNode node : rootNode) {
int t_temp = node.get("t_temp").asInt();
int s_temp = node.get("s_temp").asInt();
String enroll_date = node.get("enroll_date").asText();
int subject_salary = node.get("subject_salary").asInt();
Teacher t_temp_obj = null;
Subject s_temp_obj = null;
for(int i = 0; i < teachers.size(); i++)
{
if(s_temp == teachers.get(i).getTeacher_id())
{
t_temp_obj = teachers.get(i);
}
}
for(int i = 0; i < subjects.size(); i++)
{
if(s_temp == subjects.get(i).getSubject_id())
{
s_temp_obj = subjects.get(i);
}
}
Enrolls e_temp = new
Enrolls(t_temp_obj,s_temp_obj,enroll_date,subject_salary);
enrollment_data.add(e_temp);
}
}
} catch (IOException e) {
e.printStackTrace();
}
return enrollment_data;
}
@Override
public void writeEnrollsJsonFile(String file_path, ArrayList<Enrolls> enroll_al) throws
IOException {
//ArrayList<ArrayList<String>> enroll_to_be_written = new
ArrayList<ArrayList<String>>();
ArrayList<Map<String,Object>> enroll_to_be_written = new ArrayList<>();
for(int i = 0; i < enroll_al.size(); i++)
{
HashMap<String, Object> data = new HashMap<>();
data.put("t_temp",enroll_al.get(i).getT_temp().getTeacher_id());
data.put("s_temp",enroll_al.get(i).getS_temp().getSubject_id());
data.put("enroll_date",enroll_al.get(i).getEnroll_date());
data.put("subject_salary",enroll_al.get(i).getSubject_salary());
enroll_to_be_written.add(data);
}
objectMapper.writeValue(Paths.get(file_path).toFile(), enroll_to_be_written);
}
public ArrayList<String> getHeaders() {
ArrayList<String> headers = new ArrayList<String>();
headers.add("Subject Id");
headers.add("Subject Name");
headers.add("Subject Duration");
headers.add("Subject Credits");
return headers;
}
@Override
public ArrayList<String> getLine(int line) {
ArrayList<String> subject_details = new ArrayList<String>();
subject_details.add(String.valueOf(subjects.get(line).getSubject_id()));
subject_details.add(subjects.get(line).getSubject_name());
subject_details.add(subjects.get(line).getSubject_duration());
subject_details.add(String.valueOf(subjects.get(line).getSubject_credits()));
return subject_details;
}
@Override
public ArrayList<ArrayList<String>> getLines(int firstLine, int lastLine) {
ArrayList<ArrayList<String>> subject_subset = new ArrayList<ArrayList<String>>();
for (int i = firstLine; i <= lastLine; i++) {
subject_subset.add(getLine(i));
}
return subject_subset;
}
@Override
public int getFirstLineToDisplay() {
return 0;
}
@Override
public int getLineToHighlight() {
return 0;
}
@Override
public int getLastLineToDisplay() {
return 0;
}
@Override
public int getLinesBeingDisplayed() {
return 0;
}
@Override
public void setFirstLineToDisplay(int firstLine) {
}
@Override
public void setLineToHighlight(int highlightedLine) {
}
@Override
public void setLastLineToDisplay(int lastLine) {
}
@Override
public void setLinesBeingDisplayed(int numberOfLines) {
}
public ArrayList<Enrolls> getTable() {
return enrollment_data;
}
}
//FileHandlingEnrolls.java
package Model.Enrolls;
import Model.Subjects.Subject;
import java.io.IOException;
import java.util.ArrayList;
public abstract class FileHandlingEnrolls {
protected abstract ArrayList<Enrolls> readEnrollsJsonFile(String file_path);
protected abstract void writeEnrollsJsonFile(String file_path, ArrayList<Enrolls> enrolls)
throws IOException;
}
//Enrolls.json
[{"s_temp":10,"subject_salary":1087,"enroll_date":"13/10/2023","t_temp":17},
{"s_temp":1,"subject_salary":1298,"enroll_date":"18/10/2023","t_temp":852},
{"s_temp":7,"subject_salary":1348,"enroll_date":"10/06/2023","t_temp":887},
{"s_temp":10,"subject_salary":1083,"enroll_date":"10/03/2023","t_temp":576},
{"s_temp":15,"subject_salary":1258,"enroll_date":"16/07/2023","t_temp":552},
{"s_temp":20,"subject_salary":1401,"enroll_date":"02/05/2023","t_temp":769},
{"s_temp":9,"subject_salary":1331,"enroll_date":"25/10/2023","t_temp":257},
{"s_temp":12,"subject_salary":1191,"enroll_date":"06/10/2023","t_temp":595},
{"s_temp":4,"subject_salary":1188,"enroll_date":"21/01/2023","t_temp":915},
{"s_temp":10,"subject_salary":1314,"enroll_date":"12/07/2023","t_temp":676},
{"s_temp":11,"subject_salary":1340,"enroll_date":"29/09/2023","t_temp":668},
{"s_temp":7,"subject_salary":1119,"enroll_date":"08/09/2023","t_temp":224},
{"s_temp":10,"subject_salary":1312,"enroll_date":"19/09/2023","t_temp":147},
{"s_temp":14,"subject_salary":1229,"enroll_date":"10/03/2023","t_temp":385},
{"s_temp":1,"subject_salary":1284,"enroll_date":"04/11/2023","t_temp":292},
{"s_temp":16,"subject_salary":1158,"enroll_date":"13/02/2024","t_temp":2},
{"s_temp":17,"subject_salary":1223,"enroll_date":"16/07/2023","t_temp":853},
{"s_temp":17,"subject_salary":1411,"enroll_date":"10/09/2023","t_temp":705}]
//Model.Utils
//myfile.txt
Files in Java are seriously good!!
//textFileHandling.java
package Model.Utils;
// Import the File class
import java.io.File;
// Import the IOException class to handle errors
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class textFileHandling {
public static void main(String[] args) {
try {
File Obj = new File("untitled/src/Model/Utils/myfile.txt");
if (Obj.createNewFile()) {
System.out.println("File created: "
+ Obj.getName());
}
else {
System.out.println("File already exists.");
}
}
catch (IOException e) {
System.out.println("An error has occurred.");
e.printStackTrace();
}
try {
FileWriter Writer
= new FileWriter("untitled/src/Model/Utils/myfile.txt");
Writer.write(
"Files in Java are seriously good!!");
Writer.close();
System.out.println("Successfully written.");
}
catch (IOException e) {
System.out.println("An error has occurred.");
e.printStackTrace();
}
try {
File Obj = new File("untitled/src/Model/Utils/myfile.txt");
Scanner Reader = new Scanner(Obj);
while (Reader.hasNextLine()) {
String data = Reader.nextLine();
System.out.println(data);
}
Reader.close();
}
catch (FileNotFoundException e) {
System.out.println("An error has occurred.");
e.printStackTrace();
}
}
}
//Displayable.java
package Model;
import java.util.ArrayList;
public interface Displayable
{
ArrayList<String> getLine(int line);
ArrayList<ArrayList<String>> getLines(int firstLine, int lastLine);
public int getFirstLineToDisplay();
public int getLineToHighlight();
public int getLastLineToDisplay();
public int getLinesBeingDisplayed();
public void setFirstLineToDisplay(int firstLine);
public void setLineToHighlight(int highlightedLine);
public void setLastLineToDisplay(int lastLine);
public void setLinesBeingDisplayed(int numberOfLines);
}
//Model.java
package Model;
import Model.Teachers.manageTeacher;
import Model.Subjects.manageSubject;
import Model.Enrolls.manageEnrolls;
public class Model {
manageTeacher mt;
manageSubject ms;
manageEnrolls me;
public Model() {
mt = new manageTeacher();
ms = new manageSubject();
me = new manageEnrolls();
}
public manageTeacher getMt() {
return mt;
}
public manageSubject getMs() {
return ms;
}
public manageEnrolls getMe() {
return me;
}
public void setMt(manageTeacher mt) {
this.mt = mt;
}
public void setMs(manageSubject ms) {
this.ms = ms;
}
public void setMe(manageEnrolls me) {
this.me = me;
}
}
//View Package
//AddPanelTeacher.java
package View;
import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
public class AddPanelTeacher extends JPanel {
JTextField txt_fname;
JTextField txt_lname;
JTextField txt_email;
JTextField txt_address;
JTextField txt_mobile;
JTextField txt_teacher_rating;
JButton addTeacherBtn;
public AddPanelTeacher()
{
txt_fname = new JTextField();
txt_lname = new JTextField();
txt_email = new JTextField();
txt_address = new JTextField();
txt_mobile = new JTextField();
txt_teacher_rating = new JTextField();
addTeacherBtn = new JButton("Add Teacher");
txt_fname.setText("fname");
txt_lname.setText("lname");
txt_email.setText("email");
txt_address.setText("address");
txt_mobile.setText("mobile");
txt_teacher_rating.setText("teacher_rating");
add(txt_fname);
add(txt_lname);
add(txt_email);
add(txt_address);
add(txt_mobile);
add(txt_teacher_rating);
add(addTeacherBtn);
}
public JTextField getTxt_fname() {
return txt_fname;
}
public JTextField getTxt_lname() {
return txt_lname;
}
public JTextField getTxt_email() {
return txt_email;
}
public JTextField getTxt_mobile() {
return txt_mobile;
}
public JTextField getTxt_address() {
return txt_address;
}
public JTextField getTxt_teacher_rating() {
return txt_teacher_rating;
}
public JButton getAddTeacherBtn() {
return addTeacherBtn;
}
}
//CenterPanelTeacher.java
package View;
import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
public class CenterPanelTeacher extends JPanel {
ArrayList<JButton> buttons = new ArrayList<>();
public CenterPanelTeacher()
{
super();
}
public void createButtons(int count)
{
for (int i = 1; i <= count; i++)
{
JButton b = new JButton();
b.setBackground(Color.cyan);
b.setSize(500,50);
buttons.add(b);
this.add(b);
validate();
repaint();
}
}
public void setButtonText(int button_no, String button_text) {
buttons.get(button_no).setText(button_text);
}
public ArrayList<JButton> getAllButtons()
{
return buttons;
}
}
//FirstFrame.java
package View;
import javax.swing.*;
import java.awt.*;
public class FirstFrame extends JFrame {
JButton manageTeacherBtn;
JButton manageSubjectBtn;
JButton manageEnrollmentBtn;
JPanel firstPanel;
FirstFrame()
{
super("Main DashBoard");
manageTeacherBtn = new JButton("Manage Teacher");
manageSubjectBtn = new JButton("Manage Subject");
manageEnrollmentBtn = new JButton("Manage Enrollment");
firstPanel = new JPanel();
firstPanel.setLayout(new GridLayout(3,1,20,20));
firstPanel.add(manageTeacherBtn);
firstPanel.add(manageSubjectBtn);
firstPanel.add(manageEnrollmentBtn);
add(firstPanel);
pack();
setSize(500, 600);
setVisible(true);
}
public void setFirstPanel(JPanel firstPanel) {
this.firstPanel = firstPanel;
}
public void setManageTeacherBtn(JButton manageTeacherBtn) {
this.manageTeacherBtn = manageTeacherBtn;
}
public void setManageSubjectBtn(JButton manageSubjectBtn) {
this.manageSubjectBtn = manageSubjectBtn;
}
public void setManageEnrollmentBtn(JButton manageEnrollmentBtn) {
this.manageEnrollmentBtn = manageEnrollmentBtn;
}
public JPanel getFirstPanel() {
return firstPanel;
}
public JButton getManageTeacherBtn() {
return manageTeacherBtn;
}
public JButton getManageSubjectBtn() {
return manageSubjectBtn;
}
public JButton getManageEnrollmentBtn() {
return manageEnrollmentBtn;
}
}
//InitialPanelTeacher.java
package View;
import javax.swing.*;
public class InitialPanelTeacher extends JPanel {
private CenterPanelTeacher cp;
private AddPanelTeacher aps;
public InitialPanelTeacher() {
super();
cp = new CenterPanelTeacher();
add(cp);
aps = new AddPanelTeacher();
add(aps);
}
public CenterPanelTeacher getCp() {
return cp;
}
public void setCp(CenterPanelTeacher cp) {
this.cp = cp;
}
public void setAps(AddPanelTeacher aps) {
this.aps = aps;
}
public AddPanelTeacher getAps() {
return aps;
}
}
//ManageTeacherFrame.java
package View;
import javax.swing.*;
public class ManageTeacherFrame extends JFrame {
InitialPanelTeacher ip;
public ManageTeacherFrame()
{
super("Manage Teacher DashBoard");
ip = new InitialPanelTeacher();
add(ip);
pack();
setSize(500, 600);
}
public void setIp(InitialPanelTeacher ip) {
this.ip = ip;
}
public InitialPanelTeacher getIp() {
return ip;
}
}
//View.java
package View;
import View.Subject.ManageSubjectFrame;
import java.awt.*;
import java.util.ArrayList;
public class View {
FirstFrame ff;
ManageTeacherFrame mtf;
ManageSubjectFrame msf;
public View() {
ff = new FirstFrame();
mtf = new ManageTeacherFrame();
msf = new ManageSubjectFrame();
}
mtf.getIp().getCp().getAllButtons().get(button_no).setText(button_txt);
}
}
}
//Main.java
import Model.Subjects.Subject;
import Model.Subjects.manageSubject;
import Model.Enrolls.*;
import Model.Model;
import Model.Teachers.Teacher;
import Model.Teachers.manageTeacher;
import View.View;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;