Advertisement
Guest User

Untitled

a guest
May 24th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 44.53 KB | None | 0 0
  1. package universitysystem;
  2.  
  3. import java.awt.Dialog;
  4. import java.awt.Point;
  5. import java.sql.Connection;
  6. import java.sql.DriverManager;
  7. import java.sql.ResultSet;
  8. import java.sql.SQLException;
  9. import java.sql.Statement;
  10. import java.util.logging.Level;
  11. import java.util.logging.Logger;
  12. import javafx.application.Application;
  13. import javafx.collections.FXCollections;
  14. import javafx.collections.ObservableList;
  15. import javafx.event.ActionEvent;
  16. import javafx.event.EventHandler;
  17. import javafx.geometry.Insets;
  18. import javafx.geometry.Pos;
  19. import javafx.scene.Group;
  20. import javafx.scene.Scene;
  21. import javafx.scene.control.Button;
  22. import javafx.scene.layout.StackPane;
  23. import javafx.stage.Stage;
  24. import javafx.scene.control.*;
  25. import javafx.scene.image.Image;
  26. import javafx.scene.image.ImageView;
  27. import javafx.scene.layout.BorderPane;
  28. import javafx.scene.layout.GridPane;
  29. import javafx.scene.layout.HBox;
  30. import javafx.scene.layout.VBox;
  31. import javafx.scene.paint.Color;
  32. import javafx.scene.paint.Paint;
  33. import javafx.scene.shape.Circle;
  34. import javafx.scene.shape.Rectangle;
  35. import javafx.scene.text.Font;
  36. import javafx.scene.text.FontPosture;
  37. import javafx.scene.text.FontWeight;
  38. import javafx.scene.text.Text;
  39. import javafx.stage.Modality;
  40. import javax.swing.JOptionPane;
  41.  
  42.  
  43. public class UniversitySystem extends Application {
  44. Statement statement;
  45.  
  46. @Override
  47. public void start(Stage primaryStage) throws SQLException {
  48. Database db = new Database();
  49. this.statement = db.StartDatabase("university","root","root");
  50.  
  51. LoginPage();
  52. //TestPage();
  53.  
  54.  
  55.  
  56. }
  57.  
  58.  
  59. public static void main(String[] args) {
  60. //Database handling
  61.  
  62.  
  63. launch(args);
  64. }
  65.  
  66. public void LoginPage()
  67. {
  68. final Stage Login = new Stage();
  69. //Elements
  70. Button loginB = new Button("Login");
  71. Label unL = new Label("Username:");
  72. Label pwL = new Label("Password:");
  73. final TextField unT = new TextField();
  74. final PasswordField pwT = new PasswordField();
  75.  
  76.  
  77. //Content Layout
  78. GridPane gp = new GridPane();
  79. loginB.setMinSize(50, 30);
  80. gp.add(unL, 0, 0);
  81. gp.add(unT, 1, 0);
  82. gp.add(pwL, 0, 1);
  83. gp.add(pwT, 1, 1);
  84. gp.add(loginB, 1, 7);
  85. gp.setHgap(5);
  86. gp.setVgap(5);
  87. gp.setAlignment(Pos.CENTER);
  88. //Window Layout
  89. Scene scene = new Scene(gp);
  90. Login.setScene(scene);
  91. Login.setHeight(200);
  92. Login.setWidth(310);
  93. Login.setResizable(false);
  94. Login.setTitle("Login | University System");
  95. Login.show();
  96.  
  97. loginB.setOnAction(new EventHandler<ActionEvent>() {
  98. //check username and password and if found get type of user
  99. @Override
  100. public void handle(ActionEvent t) {
  101. try {
  102. String Type = null;
  103. ResultSet resultset ;
  104.  
  105. resultset = statement.executeQuery("select * from students where Username="+"'"+unT.getText()+"'"+"and Password="+"'"+pwT.getText()+"'");
  106. if(resultset.first())
  107. {
  108. System.out.println(resultset.getString(1)+" "+resultset.getString(2)+" "+resultset.getString(3));
  109. Type ="students";
  110. StudentPage(resultset.getString(1),resultset.getString(2),resultset.getString(3),Type,Login);
  111.  
  112. }
  113.  
  114. resultset=statement.executeQuery("select * from instructors where Username="+"'"+unT.getText()+"'"+"and Password="+"'"+pwT.getText()+"'");
  115. if(resultset.first())
  116. {
  117. System.out.println(resultset.getString(1)+" "+resultset.getString(2)+" "+resultset.getString(3));
  118. Type ="instructors";
  119. InstructorPage(resultset.getString(1),resultset.getString(2),resultset.getString(3),Type,Login);
  120.  
  121. }
  122.  
  123. if(Type==null){
  124. JOptionPane.showMessageDialog(null, "The username or password is incorrect", "Invalid Login", JOptionPane.CANCEL_OPTION);
  125. Login.close();
  126. pwT.clear();
  127. Login.show();
  128. }
  129.  
  130.  
  131.  
  132. } catch (SQLException ex) {
  133. JOptionPane.showMessageDialog(null, "SQL Exception in Login Button", "Invalid Login", JOptionPane.CANCEL_OPTION);
  134. }
  135.  
  136. }
  137. });
  138.  
  139.  
  140.  
  141. }
  142.  
  143. public void StudentPage(final String ID,final String fname,final String lname,final String Type,Stage Prev) throws SQLException
  144. {
  145. Prev.close(); // Login
  146. final Stage Student = new Stage();
  147. Group root = new Group();
  148. Scene scene = new Scene(root, 900, 800, Color.WHITE);
  149. TabPane tp = new TabPane();
  150. BorderPane bp = new BorderPane();
  151. Tab[] tab = new Tab[5];
  152.  
  153. //Create 4 Tabs
  154. for (int i=1;i<5;i++)
  155. {
  156. tab[i] = new Tab();
  157. tab[i].setStyle(Styles.getTabPaneStyle());
  158. tab[i].setGraphic(buildImage("resources/"+Integer.toString(i)+".png"));
  159. tab[i].setClosable(false);
  160. tp.getTabs().add(tab[i]);
  161. }
  162. //==============
  163.  
  164.  
  165. DrawInfoTab1(tab[1], ID, fname, lname, Type, Student);
  166. DrawRegTab2(tab[2], ID, fname, lname, Type, Student);
  167. DrawScheduleTab3(tab[3], ID, fname, lname, Type, Student);
  168. DrawGraduationTab4(tab[4], ID, fname, lname, Type, Student);
  169.  
  170. //==============
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177. bp.prefHeightProperty().bind(scene.heightProperty());
  178. bp.prefWidthProperty().bind(scene.widthProperty());
  179. bp.setCenter(tp);
  180. root.getChildren().add(bp);
  181.  
  182. Student.setScene(scene);
  183. Student.show();
  184.  
  185.  
  186.  
  187. }
  188.  
  189. public void InstructorPage(final String ID,final String fname,final String lname,final String Type,Stage Prev) throws SQLException
  190. {
  191. Prev.close(); // Login
  192. final Stage Instructor = new Stage();
  193. Group root = new Group();
  194. Scene scene = new Scene(root, 900, 800, Color.WHITE);
  195. TabPane tp = new TabPane();
  196. BorderPane bp = new BorderPane();
  197. Tab[] tab = new Tab[5];
  198.  
  199. //Create 4 Tabs
  200. for (int i=1;i<5;i++)
  201. {
  202. tab[i] = new Tab();
  203. tab[i].setStyle(Styles.getTabPaneStyle());
  204. tab[i].setGraphic(buildImage("resources/I"+Integer.toString(i)+".png"));
  205. tab[i].setClosable(false);
  206. tp.getTabs().add(tab[i]);
  207. }
  208. //==============
  209.  
  210.  
  211. IDrawInfoTab1(tab[1], ID, fname, lname, Type, Instructor);
  212. IDrawRegTab2(tab[2], ID, fname, lname, Type, Instructor);
  213. IDrawScheduleTab3(tab[3], ID, fname, lname, Type, Instructor);
  214. IDrawStudentsTab4(tab[4], ID, fname, lname, Type, Instructor);
  215.  
  216. //==============
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223. bp.prefHeightProperty().bind(scene.heightProperty());
  224. bp.prefWidthProperty().bind(scene.widthProperty());
  225. bp.setCenter(tp);
  226. root.getChildren().add(bp);
  227.  
  228. Instructor.setScene(scene);
  229. Instructor.show();
  230.  
  231. }
  232.  
  233. public void DrawInfoTab1(Tab tab,final String ID,final String fname,final String lname,final String Type,final Stage stage) throws SQLException
  234. {
  235. //Info Tab
  236.  
  237. //Info Section
  238. final ResultSet info = statement.executeQuery("select * from students where SID="+"'"+ID+"'");
  239. info.next();
  240. //==============
  241.  
  242. //Image Section
  243. ImageView image = buildImage("resources/default.png");
  244. image.setFitWidth(225);
  245. image.setFitHeight(200);
  246. //==============
  247.  
  248. //Edit Section
  249. HBox hb = new HBox(10);
  250. ObservableList<String> options =
  251. FXCollections.observableArrayList(
  252. "LocalAddress",
  253. "Mobile",
  254. "Email"
  255. );
  256. final ComboBox comboBox = new ComboBox(options);
  257. final TextField tf = new TextField();
  258. Button Edit = new Button("Edit");
  259. Edit.setOnAction(new EventHandler<ActionEvent>() {
  260.  
  261. @Override
  262. public void handle(ActionEvent t) {
  263. try {
  264. // System.out.println(comboBox.getSelectionModel().getSelectedItem().toString());
  265.  
  266. statement.executeUpdate("Update students Set "+comboBox.getSelectionModel().getSelectedItem().toString()+"="+"'"+tf.getText()+"'"+"Where SID="+"'"+ID+"'");
  267. StudentPage(ID, fname, lname, Type, stage);
  268.  
  269. } catch (SQLException ex) {
  270. Logger.getLogger(UniversitySystem.class.getName()).log(Level.SEVERE, null, ex);
  271. }
  272.  
  273.  
  274. }
  275. });
  276. hb.getChildren().addAll(comboBox,tf,Edit);
  277. hb.setAlignment(Pos.CENTER);
  278. hb.setPadding(new Insets(100));
  279. //==============
  280.  
  281. //Content
  282. BorderPane bp1 = new BorderPane();
  283. bp1.setCenter(GetinfoLabel(info));
  284. bp1.setRight(image);
  285. bp1.setBottom(hb);
  286. bp1.setPadding(new Insets(20, 10, 0, 0));
  287. tab.setContent(bp1);
  288. //return tab;
  289. }
  290. public void IDrawInfoTab1(Tab tab,final String ID,final String fname,final String lname,final String Type,final Stage stage)throws SQLException
  291. {
  292. //Info Tab
  293.  
  294. //Info Section
  295. final ResultSet info = statement.executeQuery("select * from instructors where IID="+"'"+ID+"'");
  296. info.next();
  297. //==============
  298.  
  299. //Image Section
  300. ImageView image = buildImage("resources/default.png");
  301. image.setFitWidth(225);
  302. image.setFitHeight(200);
  303. //==============
  304.  
  305. //Edit Section
  306. HBox hb = new HBox(10);
  307. ObservableList<String> options =
  308. FXCollections.observableArrayList(
  309. "LocalAddress",
  310. "Mobile",
  311. "Email"
  312. );
  313. final ComboBox comboBox = new ComboBox(options);
  314. final TextField tf = new TextField();
  315. Button Edit = new Button("Edit");
  316. Edit.setOnAction(new EventHandler<ActionEvent>() {
  317.  
  318. @Override
  319. public void handle(ActionEvent t) {
  320. try {
  321. // System.out.println(comboBox.getSelectionModel().getSelectedItem().toString());
  322.  
  323. statement.executeUpdate("Update instructors Set "+comboBox.getSelectionModel().getSelectedItem().toString()+"="+"'"+tf.getText()+"'"+"Where IID="+"'"+ID+"'");
  324. InstructorPage(ID, fname, lname, Type, stage);
  325.  
  326. } catch (SQLException ex) {
  327. Logger.getLogger(UniversitySystem.class.getName()).log(Level.SEVERE, null, ex);
  328. }
  329.  
  330.  
  331. }
  332. });
  333. hb.getChildren().addAll(comboBox,tf,Edit);
  334. hb.setAlignment(Pos.CENTER);
  335. hb.setPadding(new Insets(100));
  336. //==============
  337.  
  338. //Content
  339. BorderPane bp1 = new BorderPane();
  340. bp1.setCenter(IGetinfoLabel(info));
  341. bp1.setRight(image);
  342. bp1.setBottom(hb);
  343. bp1.setPadding(new Insets(20, 10, 0, 0));
  344. tab.setContent(bp1);
  345. //return tab;
  346. }
  347.  
  348. public void DrawRegTab2(Tab tab,final String ID,final String fname,final String lname,final String Type,final Stage stage) throws SQLException
  349. {
  350. VBox vb = new VBox(10);
  351. VBox vb1 = new VBox();
  352. VBox vb2 = new VBox();
  353. BorderPane bpTop = new BorderPane();
  354. BorderPane bpBot = new BorderPane();
  355. int size;
  356. int i=0;
  357.  
  358.  
  359. ResultSet TakencoursesCount = statement.executeQuery("select count(*) from students_courses Where SID="+"'"+ID+"'"+"and Grade !='U'");
  360. TakencoursesCount.next();
  361.  
  362. size = Integer.parseInt(TakencoursesCount.getString(1));
  363. String[] courses = new String[size];
  364.  
  365. //Registerd Courses
  366. ResultSet coursesCode= statement.executeQuery("select Code,TextBooks from courses where CID in( select CID from students_courses where SID = "+"'"+ID+"'"+"and Grade !='U')");
  367. while(coursesCode.next())
  368. {
  369. courses[i] = coursesCode.getString(1)+" "+coursesCode.getString(2)+"\t\t";
  370. i++;
  371. }
  372. i=0;
  373.  
  374. ResultSet coursesCID = statement.executeQuery("select * from students_courses Where SID="+"'"+ID+"'"+"and Grade !='U'");
  375. while(coursesCID.next())
  376. {
  377.  
  378. courses[i]= courses[i] +coursesCID.getString(3); // get course code and its grade
  379. i++;
  380. }
  381. i=0;
  382.  
  383. ListView<String> list = new ListView<>();
  384. ObservableList<String> items =FXCollections.observableArrayList (courses);
  385. list.setItems(items);
  386. list.setPrefHeight(250);
  387. list.setPrefWidth(300);
  388. vb1.getChildren().add(new Label("Taken Courses"));
  389. vb1.getChildren().add(list);
  390.  
  391. //===========================================
  392.  
  393.  
  394. ResultSet UntakencoursesCount = statement.executeQuery("select count(*) from students_courses Where SID="+"'"+ID+"'"+"and Grade ='U'");
  395. UntakencoursesCount.next();
  396.  
  397. size = Integer.parseInt(UntakencoursesCount.getString(1));
  398. String[] Ucourses = new String[size];
  399.  
  400. //Untaken Courses and remove button
  401. ResultSet UcoursesCode= statement.executeQuery("select Code,TextBooks from courses where CID in( select CID from students_courses where SID = "+"'"+ID+"'"+"and Grade ='U')");
  402. while(UcoursesCode.next())
  403. {
  404. Ucourses[i] = UcoursesCode.getString(1)+" "+UcoursesCode.getString(2)+"\t\t"; // get course Code
  405. i++;
  406. }
  407. i=0;
  408.  
  409. ResultSet UcoursesCID = statement.executeQuery("select * from students_courses Where SID="+"'"+ID+"'"+"and Grade ='U'");
  410. while(UcoursesCID.next())
  411. {
  412.  
  413. Ucourses[i]= Ucourses[i] +UcoursesCID.getString(3); // get course grade
  414. i++;
  415. }
  416.  
  417.  
  418. final ListView<String> Ulist = new ListView<>();
  419. final ObservableList<String> Uitems =FXCollections.observableArrayList (Ucourses);
  420. Ulist.setItems(Uitems);
  421. Ulist.setPrefHeight(250);
  422. Ulist.setPrefWidth(300);
  423.  
  424. Button Remove = new Button("Remove");
  425. Remove.setOnAction(new EventHandler<ActionEvent>() {
  426.  
  427. @Override
  428. public void handle(ActionEvent t) {
  429. String[] m =Ulist.getSelectionModel().getSelectedItem().split(" ");
  430. System.out.println(m[0]);
  431. Uitems.remove(Ulist.getSelectionModel().getSelectedItem());
  432.  
  433.  
  434. try {
  435. statement.execute("Delete from students_courses where SID ="+"'"+ID+"'"+"and CID = ( select CID from courses where Code = "+"'"+m[0]+"'"+")");
  436. statement.executeUpdate("update courses set Capacity = Capacity +1 where Code ="+"'"+m[0]+"'");
  437. System.out.println("Data Removed !!!");
  438. } catch (SQLException ex) {
  439. Logger.getLogger(UniversitySystem.class.getName()).log(Level.SEVERE, null, ex);
  440. }
  441.  
  442. }
  443. });
  444.  
  445. vb2.getChildren().add(new Label("Untaken Courses"));
  446. vb2.getChildren().add(Ulist);
  447. vb2.getChildren().add(Remove);
  448.  
  449.  
  450. //====================================
  451.  
  452. //Add Course
  453. int sum =0;
  454. ResultSet availableCoursesCount = statement.executeQuery("select count(*) from courses where PrerequisiteCourses = 0\n" +
  455. "Union\n" +
  456. "select count(*) from courses where PrerequisiteCourses in (Select CID from students_courses where SID ="+"'"+ID+"'"+")");
  457.  
  458. while(availableCoursesCount.next())
  459. {
  460. sum = sum + Integer.parseInt(availableCoursesCount.getString(1));
  461. }
  462.  
  463. String [] Avcourses = new String[sum];
  464.  
  465. ResultSet availableCourses = statement.executeQuery("select distinct CID,Code,TextBooks,Capacity,Day,Periods from courses where PrerequisiteCourses = 0\n" +
  466. "Union\n" +
  467. "select distinct CID,Code,TextBooks,Capacity,Day,Periods from courses where PrerequisiteCourses in (Select CID from students_courses where SID ="+"'"+ID+"'"+")");
  468. i=0;
  469. while(availableCourses.next())
  470. {
  471. Avcourses[i] = availableCourses.getString(1)+"\t"+availableCourses.getString(2)+"\t"+availableCourses.getString(3)+"\t"+availableCourses.getString(4)+"\n\t"+availableCourses.getString(5)+"\t"+availableCourses.getString(6);
  472. i++;
  473. }
  474.  
  475. final ListView<String> Addlist = new ListView<>();
  476. final ObservableList<String> Additems =FXCollections.observableArrayList (Avcourses);
  477. Addlist.setItems(Additems);
  478. Addlist.setPrefHeight(350);
  479. Addlist.setPrefWidth(800);
  480. HBox cA = new HBox(300);
  481.  
  482. Button addB = new Button("Add");
  483. final Label checkL = new Label("Waiting");
  484. checkL.setPrefSize(400, 100);
  485. cA.getChildren().addAll(checkL,addB);
  486. cA.setAlignment(Pos.TOP_RIGHT);
  487.  
  488. addB.setOnAction(new EventHandler<ActionEvent>() {
  489.  
  490. @Override
  491. public void handle(ActionEvent t) {
  492. String[] Choosed = Addlist.getSelectionModel().getSelectedItem().split("\t");
  493. String CID = Choosed[0];
  494. String Code = Choosed[1];
  495. String Textbooks = Choosed[2];
  496. String Day = Choosed[4];
  497. String Periods = Choosed[5];
  498. //String Time = Day+Periods;
  499. //System.out.println(Time);
  500. System.out.println("Choosed CID number to add :"+CID);
  501. try {
  502. if(Uitems.size()<3){
  503.  
  504.  
  505.  
  506. statement.executeUpdate("insert into students_courses values("+"'"+ID+"'"+","+"'"+CID+"'"+","+"'U')");
  507. statement.executeUpdate("update courses set Capacity = Capacity -1 where CID ="+"'"+CID+"'");
  508.  
  509. Uitems.add(Code+" "+Textbooks+"\t\tU\n");
  510. checkL.setText("The Course regsiterd successfully :)");
  511. checkL.setTextFill(Color.GREEN);
  512. }
  513. else
  514. {
  515. checkL.setText("Maximum Course is 3 !!");
  516. checkL.setTextFill(Color.RED);
  517. }
  518. } catch (SQLException ex) {
  519. //Logger.getLogger(UniversitySystem.class.getName()).log(Level.SEVERE, null, ex);
  520. checkL.setText("The Course maybe taken/registred or Class is full !!");
  521. checkL.setTextFill(Color.RED);
  522.  
  523. }
  524.  
  525. }
  526. });
  527. addB.setPrefSize(100, 60);
  528.  
  529. VBox vb3 = new VBox(10);
  530. vb3.setPadding(new Insets(0, 20, 0, 20));
  531. vb3.setAlignment(Pos.BOTTOM_RIGHT);
  532. vb3.getChildren().addAll(Addlist,cA);
  533.  
  534.  
  535.  
  536. //====================================
  537.  
  538. bpTop.setLeft(vb1);
  539. bpTop.setRight(vb2);
  540. //bpTop.setBottom(vb3); another way of adding register section
  541. bpBot.setBottom(vb3);
  542. bpTop.setPadding(new Insets(30,20,0,20));
  543. vb.getChildren().addAll(bpTop,bpBot);
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550. tab.setContent(vb);
  551. }
  552. public void IDrawRegTab2(Tab tab,final String ID,final String fname,final String lname,final String Type,final Stage stage) throws SQLException
  553. {
  554. HBox hb = new HBox();
  555.  
  556.  
  557. //Left Side Register Course
  558. VBox vb1 = new VBox(25);
  559. VBox vb2 = new VBox(18);
  560. HBox hb1 = new HBox();
  561. Button addCourseB = new Button("Add");
  562. addCourseB.setMaxSize(50, 30);
  563. addCourseB.setMinSize(80, 30);
  564. final Label Status = new Label("Status !!");
  565.  
  566. Label L1 = new Label("CID: ");
  567. final TextField T1 = new TextField();
  568. Label L2 = new Label("Code: ");
  569. final TextField T2 = new TextField();
  570. Label L5 = new Label("Term: ");
  571. final TextField T5 = new TextField();
  572. Label L6 = new Label("Credits: ");
  573. final TextField T6 = new TextField();
  574. Label L7 = new Label("ClassRoom: ");
  575. final TextField T7 = new TextField();
  576. Label L8 = new Label("Day: ");
  577. final TextField T8 = new TextField();
  578. Label L9 = new Label("Periods: ");
  579. final TextField T9 = new TextField();
  580. Label L10 = new Label("PrerequisiteCourses: ");
  581. final TextField T10 = new TextField();
  582. Label L11 = new Label("TextBooks: ");
  583. final TextField T11 = new TextField();
  584. Label L12 = new Label("Note: ");
  585. final TextField T12 = new TextField();
  586. Label L13 = new Label("Capacity: ");
  587. final TextField T13 = new TextField();
  588.  
  589. addCourseB.setOnAction(new EventHandler<ActionEvent>() {
  590.  
  591. @Override
  592. public void handle(ActionEvent t) {
  593. try {
  594.  
  595. String DID = getIDepartment(ID);
  596. String ClassRoom = T7.getText();
  597. String Day = T8.getText();
  598. String Periods = T9.getText();
  599. if(checkCoursesTimeConflict(Day, Periods, ID) == true || checkCoursesTimeConflict(ClassRoom, Day, Periods, ID) == true)
  600. {
  601. Status.setTextFill(Color.RED);
  602. System.out.println("Course Hasn't Aded");
  603. }
  604. else
  605. {
  606. statement.executeUpdate("insert into courses Values("+"'"+T1.getText()+"',"+"'"+T2.getText()+"',"+"'"+ID+"',"+"'"+DID+"',"+"'"+T5.getText()+"',"+"'"+T6.getText()+"',"+"'"+T7.getText()+"',"+"'"+T8.getText()
  607. +"',"+"'"+T9.getText()+"',"+"'"+T10.getText()+"',"+"'"+T11.getText()+"',"+"'"+T12.getText()+"',"+"'"+T13.getText()+"'"+")");
  608. Status.setText("Course Added");
  609. Status.setTextFill(Color.GREEN);
  610. System.out.println("Course added");
  611. }
  612. } catch (SQLException ex) {
  613. Logger.getLogger(UniversitySystem.class.getName()).log(Level.SEVERE, null, ex);
  614. }
  615. }
  616. });
  617.  
  618. vb1.getChildren().addAll(L1,L2,L5,L6,L7,L8,L9,L10,L11,L12,L13);
  619. vb2.getChildren().addAll(T1,T2,T5,T6,T7,T8,T9,T10,T11,T12,T13,addCourseB,Status);
  620. hb1.getChildren().addAll(vb1,vb2);
  621. hb1.setPadding(new Insets(30));
  622.  
  623.  
  624. //
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635. //Right Side Edit Course
  636. VBox vb3 = new VBox();
  637. HBox hb2 = new HBox(50);
  638. TextField editT = new TextField();
  639. Button Edit = new Button();
  640. int size =0;
  641. int i=0;
  642.  
  643. ResultSet r = statement.executeQuery("select count(*) from courses where IID="+"'"+ID+"'");
  644. r.next();
  645. size = Integer.parseInt(r.getString(1));
  646.  
  647. String [] Icourses = new String[size];
  648.  
  649. r = statement.executeQuery("select Code,TextBooks from courses where IID="+"'"+ID+"'");
  650. while(r.next())
  651. {
  652. Icourses[i] = r.getString(1)+"\t"+r.getString(2);
  653. i++;
  654. }
  655.  
  656. final ListView<String> list = new ListView<>();
  657. ObservableList<String> items =FXCollections.observableArrayList (Icourses);
  658. list.setItems(items);
  659. list.setMaxHeight(200);
  660. list.setPrefWidth(200);
  661.  
  662. final ListView<String> list2 = new ListView<>();
  663. ObservableList<String> items2 =FXCollections.observableArrayList ("CID","Code","Term","Credits","ClassRoom","Day","Periods","PrerequisiteCourses","TextBooks","Note","Capacity");
  664. list2.setItems(items2);
  665. list2.setMaxHeight(200);
  666. list2.setPrefWidth(200);
  667.  
  668. hb2.getChildren().addAll(list,list2);
  669. hb2.setPadding(new Insets(20));
  670.  
  671. final TextField newData = new TextField();
  672. newData.setPromptText("Enter your edit");
  673. Button editB = new Button("Submit Edit");
  674. final Label editstatusL = new Label("Status");
  675. editB.setMaxSize(200, 300);
  676.  
  677. editB.setOnAction(new EventHandler<ActionEvent>() {
  678.  
  679. @Override
  680. public void handle(ActionEvent t) {
  681. try {
  682. String[] c = list.getSelectionModel().getSelectedItem().split("\t");
  683. System.out.println(c[0]);
  684.  
  685. statement.executeUpdate("update courses set "+list2.getSelectionModel().getSelectedItem()+"="+"'"+newData.getText()+"'"+"where Code ="+"'"+c[0]+"'"+"");
  686. System.out.println("Done Edited");
  687. editstatusL.setText("Done Edited");
  688. editstatusL.setTextFill(Color.GREEN);
  689.  
  690. } catch (SQLException ex) {
  691. Logger.getLogger(UniversitySystem.class.getName()).log(Level.SEVERE, null, ex);
  692. editstatusL.setText("Error!!");
  693. editstatusL.setTextFill(Color.RED);
  694.  
  695. }
  696. }
  697. });
  698.  
  699. vb3.getChildren().addAll(hb2,newData,editB,editstatusL);
  700.  
  701.  
  702.  
  703. HBox hb3 = new HBox(40);
  704. hb3.getChildren().addAll(hb1,vb3);
  705. hb3.setPadding(new Insets(40, 0, 0, 0));
  706. tab.setContent(hb3);
  707.  
  708.  
  709.  
  710. }
  711.  
  712.  
  713.  
  714. public void DrawScheduleTab3(Tab tab,final String ID,final String fname,final String lname,final String Type,final Stage stage) throws SQLException
  715. {
  716. BorderPane bp = new BorderPane();
  717.  
  718. VBox vb = new VBox(20);
  719.  
  720.  
  721. ResultSet r;
  722.  
  723. r=statement.executeQuery("Select count(*) from courses where CID in(Select CID from students_courses where SID ="+"'"+ID+"'"+" and Grade ='U')");
  724. r.next();
  725. int size = Integer.parseInt(r.getString(1));
  726.  
  727. r=statement.executeQuery("Select Code,IID,ClassRoom,Day,Periods from courses where CID in(Select CID from students_courses where SID ="+"'"+ID+"'"+" and Grade ='U')");
  728.  
  729.  
  730.  
  731. String[] Details = new String[size];
  732. String[] IIDd = new String[size];
  733. int i=0;
  734.  
  735. while (r.next())
  736. {
  737. IIDd[i] = r.getString(2);
  738. Details[i] = r.getString(1)+" "+r.getString(3)+"\t"+r.getString(4)+":"+r.getString(5);
  739. i++;
  740. }
  741. i=0;
  742. while(i<size)
  743. {
  744. Details[i] = getIName(IIDd[i]) +"\n"+ Details[i];
  745. i++;
  746. }
  747. i=0;
  748.  
  749. if(0<size)
  750. {
  751. Label S1 = new Label(Details[0]);
  752. S1.setFont(Font.font("Arial", FontWeight.EXTRA_BOLD, 24));
  753. vb.getChildren().add(S1);
  754. }
  755. if(1<size)
  756. {
  757. Label S2 = new Label(Details[1]);
  758. S2.setFont(Font.font("Arial", FontWeight.EXTRA_BOLD, 24));
  759. vb.getChildren().add(S2);
  760. }
  761.  
  762. if(2<size)
  763. {
  764. Label S3 = new Label(Details[2]);
  765. S3.setFont(Font.font("Arial", FontWeight.EXTRA_BOLD, 24));
  766. vb.getChildren().add(S3);
  767.  
  768. }
  769.  
  770.  
  771.  
  772. vb.setAlignment(Pos.CENTER);
  773.  
  774. bp.setCenter(vb);
  775. bp.setStyle("-fx-border-color: red;\n" +
  776. "-fx-border-insets: 200;\n" +
  777. "-fx-border-width: 5;\n" +
  778. "-fx-border-style: dashed;\n");
  779.  
  780.  
  781.  
  782. tab.setContent(bp);
  783.  
  784.  
  785. }
  786.  
  787. public void IDrawScheduleTab3(Tab tab,final String ID,final String fname,final String lname,final String Type,final Stage stage) throws SQLException
  788. {
  789. ResultSet r = statement.executeQuery("select Code,TextBooks,ClassRoom,Day,Periods from courses where IID="+"'"+ID+"'");
  790. VBox vb = new VBox();
  791.  
  792. final ListView<String> list1 = new ListView<>();
  793. ObservableList<String> items1 =FXCollections.observableArrayList ();
  794.  
  795. while(r.next())
  796. {
  797. items1.add(r.getString(1)+"\t"+r.getString(2)+"\n"+r.getString(3)+"\n"+r.getString(4)+r.getString(5));
  798. }
  799.  
  800. list1.setItems(items1);
  801.  
  802. vb.getChildren().addAll(new Label("Schdeule Timetable:"),list1);
  803. vb.setAlignment(Pos.CENTER);
  804.  
  805.  
  806.  
  807. tab.setContent(vb);
  808.  
  809.  
  810.  
  811. }
  812.  
  813.  
  814. public void DrawGraduationTab4(Tab tab,final String ID,final String fname,final String lname,final String Type,final Stage stage) throws SQLException
  815. {
  816.  
  817. VBox vb = new VBox(40);
  818. HBox hb = new HBox(200);
  819. //Top
  820. HBox hb1 = new HBox();
  821. VBox vb1 = new VBox();
  822. final TextField dp = new TextField();
  823. final TextField in = new TextField();
  824. Button searchB1 = new Button("Search");
  825. //searchB1.setPrefSize(50, 50);
  826. dp.setPromptText("Department ID");
  827. in.setPromptText("Instructor ID");
  828.  
  829. hb1.getChildren().addAll(dp,in);
  830. final ListView<String> list = new ListView<>();
  831.  
  832. //Courses ="";
  833.  
  834.  
  835. searchB1.setOnAction(new EventHandler<ActionEvent>() {
  836.  
  837. @Override
  838. public void handle(ActionEvent t) {
  839. try {
  840. String Courses = new String();
  841. ResultSet r = statement.executeQuery("select TextBooks,Code from courses where DID= "+"'"+dp.getText()+"'"+"and IID="+"'"+in.getText()+"'");
  842. while(r.next())
  843. {
  844. Courses = Courses+ r.getString(2)+" "+r.getString(1)+"\n";
  845. }
  846.  
  847. ObservableList<String> items =FXCollections.observableArrayList (Courses);
  848. list.setItems(items);
  849.  
  850.  
  851. } catch (SQLException ex) {
  852. Logger.getLogger(UniversitySystem.class.getName()).log(Level.SEVERE, null, ex);
  853. }
  854. }
  855. });
  856.  
  857. list.setMaxHeight(250);
  858. vb1.setMaxWidth(200);
  859. vb1.setAlignment(Pos.TOP_CENTER);
  860. vb1.setPadding(new Insets(5));
  861. vb1.setSpacing(5);
  862. vb1.getChildren().addAll(hb1,searchB1,list);
  863. tab.setContent(vb1);
  864.  
  865.  
  866. //
  867.  
  868.  
  869. //Bot
  870. HBox hb2 = new HBox();
  871. VBox vb2 = new VBox();
  872. final TextField day = new TextField();
  873. final TextField period = new TextField();
  874. Button searchB2 = new Button("Search");
  875.  
  876. day.setPromptText("Day");
  877. period.setPromptText("Period");
  878.  
  879. hb2.getChildren().addAll(day,period);
  880. final ListView<String> list2 = new ListView<>();
  881.  
  882. //Courses ="";
  883.  
  884.  
  885. searchB2.setOnAction(new EventHandler<ActionEvent>() {
  886.  
  887. @Override
  888. public void handle(ActionEvent t) {
  889. try {
  890. String Courses = new String();
  891. ResultSet r = statement.executeQuery("select TextBooks,Code from courses where Day= "+"'"+day.getText()+"'"+"and Periods="+"'"+period.getText()+"'");
  892. while(r.next())
  893. {
  894. Courses = Courses+ r.getString(2)+" "+r.getString(1)+"\n";
  895. }
  896.  
  897. ObservableList<String> items =FXCollections.observableArrayList (Courses);
  898. list2.setItems(items);
  899.  
  900.  
  901. } catch (SQLException ex) {
  902. Logger.getLogger(UniversitySystem.class.getName()).log(Level.SEVERE, null, ex);
  903. }
  904. }
  905. });
  906.  
  907. list2.setMaxHeight(250);
  908. vb2.setMaxWidth(200);
  909. vb2.setAlignment(Pos.TOP_CENTER);
  910. vb2.setPadding(new Insets(5));
  911. vb2.setSpacing(5);
  912. vb2.getChildren().addAll(hb2,searchB2,list2);
  913. vb.getChildren().addAll(vb1,vb2);
  914.  
  915. //
  916.  
  917. //Right Side
  918. VBox vb3 = new VBox(20);
  919. final Label l = new Label("[Request State]");
  920.  
  921.  
  922. Button graduateB = new Button("Request for Graduation");
  923. graduateB.setOnAction(new EventHandler<ActionEvent>() {
  924.  
  925. @Override
  926. public void handle(ActionEvent t) {
  927. try {
  928. ResultSet TakencoursesCount = statement.executeQuery("select count(*) from students_courses Where SID="+"'"+ID+"'"+"and Grade !='U'");
  929. TakencoursesCount.next();
  930. if(Integer.parseInt(TakencoursesCount.getString(1))>=10)
  931. {
  932. statement.executeUpdate("insert into graduation values("+"'"+ID+"')");
  933. l.setText("Request Accepted and sent to yor Advisor ");
  934. l.setTextFill(Color.GREEN);
  935. }
  936. else
  937. {
  938. l.setText("Request denied !!");
  939. l.setTextFill(Color.RED);
  940. }
  941. } catch (SQLException ex) {
  942. Logger.getLogger(UniversitySystem.class.getName()).log(Level.SEVERE, null, ex);
  943. l.setText("Request denied !!");
  944. l.setTextFill(Color.RED);
  945. }
  946.  
  947. }
  948. });
  949. //graduateB.setMaxSize(200, 80);
  950. graduateB.setPrefSize(200, 80);
  951.  
  952. vb3.getChildren().addAll(graduateB,l);
  953. vb3.setAlignment(Pos.CENTER);
  954.  
  955. hb.getChildren().addAll(vb,vb3);
  956. //hb.setAlignment(Pos.CENTER_LEFT);
  957.  
  958.  
  959.  
  960. tab.setContent(hb);
  961.  
  962.  
  963.  
  964. }
  965. public void IDrawStudentsTab4(Tab tab,final String ID,final String fname,final String lname,final String Type,final Stage stage) throws SQLException
  966. {
  967. ResultSet r = statement.executeQuery("select SID,FirstName,LastName from students where SID in(Select SID from students_courses where CID in(select CID from courses where IID="+"'"+ID+"'"+") and Grade ='U' )");
  968. VBox vb = new VBox();
  969.  
  970. final ListView<String> list1 = new ListView<>();
  971. ObservableList<String> items1 =FXCollections.observableArrayList ();
  972.  
  973. while(r.next())
  974. {
  975. items1.add(r.getString(1)+"\t\t"+r.getString(2)+" "+r.getString(3)+"\n");
  976. }
  977.  
  978. list1.setItems(items1);
  979. vb.getChildren().addAll(new Label("Students Regsiterd in your courses:"),list1);
  980. vb.setAlignment(Pos.CENTER);
  981.  
  982.  
  983.  
  984. tab.setContent(vb);
  985. }
  986.  
  987. public String getIDepartment(String IID)throws SQLException
  988. {
  989. ResultSet r = statement.executeQuery("Select DID from department where IID=("+"'"+IID+"'"+")");
  990.  
  991. r.next();
  992. System.out.println(r);
  993. return r.getString(1);
  994. }
  995. public String getIName(String IID) throws SQLException
  996. {
  997. ResultSet name = statement.executeQuery("select FirstName,LastName from instructors where IID="+"'"+IID+"'");
  998. name.first();
  999. return "Dr."+name.getString(1)+" "+name.getString(2);
  1000. }
  1001. public boolean checkCoursesTimeConflict(String Day,String Periods,String ID)
  1002. {
  1003. try {
  1004. ResultSet r = statement.executeQuery("select count(*) from courses where IID="+"'"+ID+"'"+"and Day="+"'"+Day+"'"+"and Periods="+"'"+Periods+"'");
  1005. r.next();
  1006. if(Integer.parseInt(r.getString(1))>=1)
  1007. {
  1008. return true;
  1009. }
  1010. else
  1011. return false;
  1012. } catch (SQLException ex) {
  1013. Logger.getLogger(UniversitySystem.class.getName()).log(Level.SEVERE, null, ex);
  1014. return false;
  1015. }
  1016. }
  1017.  
  1018. public boolean checkCoursesTimeConflict(String ClassRoom,String Day,String Periods,String ID)
  1019. {
  1020. try {
  1021. ResultSet r = statement.executeQuery("select count(*) from courses where IID="+"'"+ID+"'"+"and ClassRoom="+"'"+ClassRoom+"'"+"and Day="+"'"+Day+"'"+"and Periods="+"'"+Periods+"'");
  1022. r.next();
  1023. if(Integer.parseInt(r.getString(1))>=1)
  1024. {
  1025. return true;
  1026. }
  1027. else
  1028. return false;
  1029. } catch (SQLException ex) {
  1030. Logger.getLogger(UniversitySystem.class.getName()).log(Level.SEVERE, null, ex);
  1031. return false;
  1032. }
  1033. }
  1034. public void TestPage()
  1035. {
  1036. Stage primaryStage = new Stage();
  1037. primaryStage.setTitle("Tabs");
  1038. Group root = new Group();
  1039. Scene scene = new Scene(root, 400, 250, Color.WHITE);
  1040. TabPane tabPane = new TabPane();
  1041. BorderPane borderPane = new BorderPane();
  1042. for (int i = 0; i < 5; i++) {
  1043. Tab tab = new Tab();
  1044. tab.setGraphic(buildImage("resources/graduation.png"));
  1045. HBox hbox = new HBox();
  1046. hbox.getChildren().add(new Label("Tab" + i));
  1047. hbox.setAlignment(Pos.CENTER);
  1048. tab.setContent(hbox);
  1049. tab.setClosable(false);
  1050. tabPane.getTabs().add(tab);
  1051. }
  1052. borderPane.prefHeightProperty().bind(scene.heightProperty());
  1053. borderPane.prefWidthProperty().bind(scene.widthProperty());
  1054.  
  1055. borderPane.setCenter(tabPane);
  1056. root.getChildren().add(borderPane);
  1057. primaryStage.setScene(scene);
  1058. primaryStage.show();
  1059.  
  1060. }
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. public VBox GetinfoLabel(ResultSet info) throws SQLException
  1067. {
  1068. VBox vb = new VBox();
  1069.  
  1070. Label idL = new Label("ID: ");
  1071. Label fnameL = new Label("First name: ");
  1072. Label lnameL = new Label("Last name: ");
  1073. Label termL = new Label("Term: ");
  1074. Label departmentL = new Label("Department: ");
  1075. Label genderL = new Label("Gender: ");
  1076. Label dateofbirthL= new Label("DateofBirth: ");
  1077. Label enrolledyearL= new Label("EnrolledYear: ");
  1078. Label localaddressL= new Label("LocalAddress: ");
  1079. Label mobileL= new Label("Mobile: ");
  1080. Label EmailL= new Label("Email: ");
  1081. Label usernameL= new Label("Username: ");
  1082. Label noteL= new Label("Note: ");
  1083.  
  1084.  
  1085. info.first();
  1086.  
  1087. Label idLS = new Label(info.getString(1));
  1088. Label fnameLS = new Label(info.getString(2));
  1089. Label lnameLS = new Label(info.getString(3));
  1090. Label termLS = new Label(info.getString(4));
  1091. Label departmentLS = new Label(info.getString(5));
  1092. Label genderLS = new Label(info.getString(6));
  1093. Label dateofbirthLS= new Label(info.getString(7));
  1094. Label enrolledyearLS= new Label(info.getString(8));
  1095. Label localaddressLS= new Label(info.getString(9));
  1096. Label mobileLS= new Label(info.getString(10));
  1097. Label EmailLS= new Label(info.getString(11));
  1098. Label usernameLS= new Label(info.getString(12));
  1099. Label noteLS= new Label(info.getString(14));
  1100.  
  1101. Label All = new Label(idL.getText()+idLS.getText()+"\n\n"+
  1102. fnameL.getText()+fnameLS.getText()+"\n\n"+
  1103. lnameL.getText()+lnameLS.getText()+"\n\n"+
  1104. termL.getText()+termLS.getText()+"\n\n"+
  1105. departmentL.getText()+departmentLS.getText()+"\n\n"+
  1106. genderL.getText()+genderLS.getText()+"\n\n"+
  1107. dateofbirthL.getText()+dateofbirthLS.getText()+"\n\n"+
  1108. enrolledyearL.getText()+enrolledyearLS.getText()+"\n\n"+
  1109. localaddressL.getText()+localaddressLS.getText()+"\n\n"+
  1110. mobileL.getText()+mobileLS.getText()+"\n\n"+
  1111. EmailL.getText()+EmailLS.getText()+"\n\n"+
  1112. usernameL.getText()+usernameLS.getText()+"\n\n"+
  1113. noteL.getText()+noteLS.getText()+"\n\n");
  1114. All.setFont(Font.font("Arial", FontWeight.BOLD, 16));
  1115. vb.setPadding(new Insets(40, 100, 0, 60));
  1116. vb.getChildren().add(All);
  1117. return vb;
  1118. }
  1119. public VBox IGetinfoLabel(ResultSet info) throws SQLException
  1120. {
  1121. VBox vb = new VBox();
  1122.  
  1123. Label idL = new Label("ID: ");
  1124. Label fnameL = new Label("First name: ");
  1125. Label lnameL = new Label("Last name: ");
  1126. Label departmentL = new Label("Department: ");
  1127. Label genderL = new Label("Gender: ");
  1128. Label dateofbirthL= new Label("DateofBirth: ");
  1129. Label localaddressL= new Label("LocalAddress: ");
  1130. Label enrolledyearL= new Label("EnrolledYear: ");
  1131. Label usernameL= new Label("Username: ");
  1132. Label noteL= new Label("Note: ");
  1133. Label EmailL= new Label("Email: ");
  1134. Label mobileL= new Label("Mobile: ");
  1135.  
  1136.  
  1137.  
  1138. info.first();
  1139.  
  1140. Label idLS = new Label(info.getString(1));
  1141. Label fnameLS = new Label(info.getString(2));
  1142. Label lnameLS = new Label(info.getString(3));
  1143. Label departmentLS = new Label(info.getString(4));
  1144. Label genderLS = new Label(info.getString(5));
  1145. Label dateofbirthLS= new Label(info.getString(6));
  1146. Label localaddressLS= new Label(info.getString(7));
  1147. Label enrolledyearLS= new Label(info.getString(8));
  1148. Label usernameLS= new Label(info.getString(9));
  1149. Label noteLS= new Label(info.getString(11));
  1150. Label EmailLS= new Label(info.getString(12));
  1151. Label mobileLS= new Label(info.getString(13));
  1152.  
  1153.  
  1154.  
  1155.  
  1156. Label All = new Label(idL.getText()+idLS.getText()+"\n\n"+
  1157. fnameL.getText()+fnameLS.getText()+"\n\n"+
  1158. lnameL.getText()+lnameLS.getText()+"\n\n"+
  1159. departmentL.getText()+departmentLS.getText()+"\n\n"+
  1160. genderL.getText()+genderLS.getText()+"\n\n"+
  1161. dateofbirthL.getText()+dateofbirthLS.getText()+"\n\n"+
  1162. enrolledyearL.getText()+enrolledyearLS.getText()+"\n\n"+
  1163. localaddressL.getText()+localaddressLS.getText()+"\n\n"+
  1164. mobileL.getText()+mobileLS.getText()+"\n\n"+
  1165. EmailL.getText()+EmailLS.getText()+"\n\n"+
  1166. usernameL.getText()+usernameLS.getText()+"\n\n"+
  1167. noteL.getText()+noteLS.getText()+"\n\n");
  1168. All.setFont(Font.font("Arial", FontWeight.BOLD, 16));
  1169. vb.setPadding(new Insets(40, 100, 0, 60));
  1170. vb.getChildren().add(All);
  1171. return vb;
  1172. }
  1173. private static ImageView buildImage(String imgPath) {
  1174.  
  1175. ImageView imageView = new ImageView(new Image(imgPath));
  1176. //You can set width and height
  1177. imageView.setFitHeight(35);
  1178. imageView.setFitWidth(40);
  1179. return imageView;
  1180. }
  1181. public void ShowMessageBox(String text)
  1182. {
  1183. Label L = new Label(text);
  1184.  
  1185.  
  1186. Stage dialogStage = new Stage();
  1187. dialogStage.initModality(Modality.WINDOW_MODAL);
  1188.  
  1189. VBox vbox = new VBox(5);
  1190. vbox.getChildren().add(L);
  1191. vbox.setAlignment(Pos.CENTER);
  1192. vbox.setPadding(new Insets(30));
  1193.  
  1194. dialogStage.setScene(new Scene(vbox));
  1195. dialogStage.show();
  1196.  
  1197. }
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement