Advertisement
Guest User

Untitled

a guest
May 22nd, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.04 KB | None | 0 0
  1. package universitysystem;
  2.  
  3. import java.awt.Dialog;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9. import java.util.logging.Level;
  10. import java.util.logging.Logger;
  11. import javafx.application.Application;
  12. import javafx.collections.FXCollections;
  13. import javafx.collections.ObservableList;
  14. import javafx.event.ActionEvent;
  15. import javafx.event.EventHandler;
  16. import javafx.geometry.Insets;
  17. import javafx.geometry.Pos;
  18. import javafx.scene.Group;
  19. import javafx.scene.Scene;
  20. import javafx.scene.control.Button;
  21. import javafx.scene.layout.StackPane;
  22. import javafx.stage.Stage;
  23. import javafx.scene.control.*;
  24. import javafx.scene.image.Image;
  25. import javafx.scene.image.ImageView;
  26. import javafx.scene.layout.BorderPane;
  27. import javafx.scene.layout.GridPane;
  28. import javafx.scene.layout.HBox;
  29. import javafx.scene.layout.VBox;
  30. import javafx.scene.paint.Color;
  31. import javafx.scene.paint.Paint;
  32. import javafx.scene.shape.Circle;
  33. import javafx.scene.shape.Rectangle;
  34. import javafx.scene.text.Font;
  35. import javafx.scene.text.FontPosture;
  36. import javafx.scene.text.FontWeight;
  37. import javafx.scene.text.Text;
  38. import javafx.stage.Modality;
  39. import javax.swing.JOptionPane;
  40.  
  41.  
  42. public class UniversitySystem extends Application {
  43. Statement statement;
  44.  
  45. @Override
  46. public void start(Stage primaryStage) throws SQLException {
  47. Database db = new Database();
  48. this.statement = db.StartDatabase("university","root","root");
  49.  
  50. LoginPage();
  51. //TestPage();
  52.  
  53.  
  54.  
  55. }
  56.  
  57.  
  58. public static void main(String[] args) {
  59. //Database handling
  60.  
  61.  
  62. launch(args);
  63. }
  64.  
  65. public void LoginPage()
  66. {
  67. final Stage Login = new Stage();
  68. //Elements
  69. Button loginB = new Button("Login");
  70. Label unL = new Label("Username:");
  71. Label pwL = new Label("Password:");
  72. final TextField unT = new TextField();
  73. final PasswordField pwT = new PasswordField();
  74.  
  75.  
  76. //Content Layout
  77. GridPane gp = new GridPane();
  78. loginB.setMinSize(50, 30);
  79. gp.add(unL, 0, 0);
  80. gp.add(unT, 1, 0);
  81. gp.add(pwL, 0, 1);
  82. gp.add(pwT, 1, 1);
  83. gp.add(loginB, 1, 7);
  84. gp.setHgap(5);
  85. gp.setVgap(5);
  86. gp.setAlignment(Pos.CENTER);
  87. //Window Layout
  88. Scene scene = new Scene(gp);
  89. Login.setScene(scene);
  90. Login.setHeight(200);
  91. Login.setWidth(310);
  92. Login.setResizable(false);
  93. Login.setTitle("Login | University System");
  94. Login.show();
  95.  
  96. loginB.setOnAction(new EventHandler<ActionEvent>() {
  97. //check username and password and if found get type of user
  98. @Override
  99. public void handle(ActionEvent t) {
  100. try {
  101. String Type = null;
  102. ResultSet resultset ;
  103.  
  104. resultset = statement.executeQuery("select * from students where Username="+"'"+unT.getText()+"'"+"and Password="+"'"+pwT.getText()+"'");
  105. if(resultset.first())
  106. {
  107. System.out.println(resultset.getString(1)+" "+resultset.getString(2)+" "+resultset.getString(3));
  108. Type ="student";
  109. StudentPage(resultset.getString(1),resultset.getString(2),resultset.getString(3),Type,Login);
  110.  
  111. }
  112.  
  113. resultset=statement.executeQuery("select * from instructors where Username="+"'"+unT.getText()+"'"+"and Password="+"'"+pwT.getText()+"'");
  114. if(resultset.first())
  115. {
  116. System.out.println(resultset.getString(1)+" "+resultset.getString(2)+" "+resultset.getString(3));
  117. Type ="instructor";
  118. //InstructorPage(resultset.getString(1),resultset.getString(2),resultset.getString(3),Type,Login);
  119.  
  120. }
  121.  
  122. if(Type==null){
  123. JOptionPane.showMessageDialog(null, "The username or password is incorrect", "Invalid Login", JOptionPane.CANCEL_OPTION);
  124. Login.close();
  125. pwT.clear();
  126. Login.show();
  127. }
  128.  
  129.  
  130.  
  131. } catch (SQLException ex) {
  132. JOptionPane.showMessageDialog(null, "SQL Exception in Login Button", "Invalid Login", JOptionPane.CANCEL_OPTION);
  133. }
  134.  
  135. }
  136. });
  137.  
  138.  
  139.  
  140. }
  141.  
  142. public void StudentPage(final String ID,final String fname,final String lname,final String Type,Stage Prev) throws SQLException
  143. {
  144. Prev.close(); // Login
  145. final Stage Student = new Stage();
  146. Group root = new Group();
  147. Scene scene = new Scene(root, 900, 800, Color.WHITE);
  148. TabPane tp = new TabPane();
  149. BorderPane bp = new BorderPane();
  150. Tab[] tab = new Tab[5];
  151.  
  152. //Create 4 Tabs
  153. for (int i=1;i<5;i++)
  154. {
  155. tab[i] = new Tab();
  156. tab[i].setStyle(Styles.getTabPaneStyle());
  157. tab[i].setGraphic(buildImage("resources/"+Integer.toString(i)+".png"));
  158. tab[i].setClosable(false);
  159. tp.getTabs().add(tab[i]);
  160. }
  161. //==============
  162.  
  163.  
  164. DrawInfoTab1(tab[1], ID, fname, lname, Type, Student);
  165. DrawRegTab2(tab[2], ID, fname, lname, Type, Student);
  166.  
  167. //==============
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174. bp.prefHeightProperty().bind(scene.heightProperty());
  175. bp.prefWidthProperty().bind(scene.widthProperty());
  176. bp.setCenter(tp);
  177. root.getChildren().add(bp);
  178.  
  179. Student.setScene(scene);
  180. Student.show();
  181.  
  182.  
  183.  
  184. }
  185.  
  186. public void DrawInfoTab1(Tab tab,final String ID,final String fname,final String lname,final String Type,final Stage stage) throws SQLException
  187. {
  188. //Info Tab
  189.  
  190. //Info Section
  191. final ResultSet info = statement.executeQuery("select * from students where SID="+"'"+ID+"'");
  192. info.next();
  193. //==============
  194.  
  195. //Image Section
  196. ImageView image = buildImage("resources/default.png");
  197. image.setFitWidth(225);
  198. image.setFitHeight(200);
  199. //==============
  200.  
  201. //Edit Section
  202. HBox hb = new HBox(10);
  203. ObservableList<String> options =
  204. FXCollections.observableArrayList(
  205. "LocalAddress",
  206. "Mobile",
  207. "Email"
  208. );
  209. final ComboBox comboBox = new ComboBox(options);
  210. final TextField tf = new TextField();
  211. Button Edit = new Button("Edit");
  212. Edit.setOnAction(new EventHandler<ActionEvent>() {
  213.  
  214. @Override
  215. public void handle(ActionEvent t) {
  216. try {
  217. // System.out.println(comboBox.getSelectionModel().getSelectedItem().toString());
  218.  
  219. statement.executeUpdate("Update students Set "+comboBox.getSelectionModel().getSelectedItem().toString()+"="+"'"+tf.getText()+"'"+"Where SID="+"'"+ID+"'");
  220. StudentPage(ID, fname, lname, Type, stage);
  221.  
  222. } catch (SQLException ex) {
  223. Logger.getLogger(UniversitySystem.class.getName()).log(Level.SEVERE, null, ex);
  224. }
  225.  
  226.  
  227. }
  228. });
  229. hb.getChildren().addAll(comboBox,tf,Edit);
  230. hb.setAlignment(Pos.CENTER);
  231. hb.setPadding(new Insets(100));
  232. //==============
  233.  
  234. //Content
  235. BorderPane bp1 = new BorderPane();
  236. bp1.setCenter(GetinfoLabel(info));
  237. bp1.setRight(image);
  238. bp1.setBottom(hb);
  239. bp1.setPadding(new Insets(20, 10, 0, 0));
  240. tab.setContent(bp1);
  241. //return tab;
  242. }
  243.  
  244. public void DrawRegTab2(Tab tab,final String ID,final String fname,final String lname,final String Type,final Stage stage) throws SQLException
  245. {
  246. VBox vb = new VBox(400);
  247. VBox vb1 = new VBox();
  248. VBox vb2 = new VBox();
  249. BorderPane bpTop = new BorderPane();
  250. BorderPane bpBot = new BorderPane();
  251. int size;
  252. int i=0;
  253.  
  254.  
  255. ResultSet TakencoursesCount = statement.executeQuery("select count(*) from students_courses Where SID="+"'"+ID+"'"+"and Grade !='U'");
  256. TakencoursesCount.next();
  257.  
  258. size = Integer.parseInt(TakencoursesCount.getString(1));
  259. String[] courses = new String[size];
  260.  
  261. //Registerd Courses
  262. ResultSet coursesCode= statement.executeQuery("select Code,TextBooks from courses where CID in( select CID from students_courses where SID = "+"'"+ID+"'"+"and Grade !='U')");
  263. while(coursesCode.next())
  264. {
  265. courses[i] = coursesCode.getString(1)+" "+coursesCode.getString(2)+"\t\t";
  266. i++;
  267. }
  268. i=0;
  269.  
  270. ResultSet coursesCID = statement.executeQuery("select * from students_courses Where SID="+"'"+ID+"'"+"and Grade !='U'");
  271. while(coursesCID.next())
  272. {
  273.  
  274. courses[i]= courses[i] +coursesCID.getString(3); // get course code and its grade
  275. i++;
  276. }
  277. i=0;
  278.  
  279. ListView<String> list = new ListView<>();
  280. ObservableList<String> items =FXCollections.observableArrayList (courses);
  281. list.setItems(items);
  282. list.setPrefHeight(250);
  283. list.setPrefWidth(300);
  284. vb1.getChildren().add(new Label("Taken Courses"));
  285. vb1.getChildren().add(list);
  286.  
  287. //===========================================
  288.  
  289.  
  290. ResultSet UntakencoursesCount = statement.executeQuery("select count(*) from students_courses Where SID="+"'"+ID+"'"+"and Grade ='U'");
  291. UntakencoursesCount.next();
  292.  
  293. size = Integer.parseInt(UntakencoursesCount.getString(1));
  294. String[] Ucourses = new String[size];
  295.  
  296. //Unregisterd Courses and remove button
  297. ResultSet UcoursesCode= statement.executeQuery("select Code,TextBooks from courses where CID in( select CID from students_courses where SID = "+"'"+ID+"'"+"and Grade ='U')");
  298. while(UcoursesCode.next())
  299. {
  300. Ucourses[i] = UcoursesCode.getString(1)+" "+UcoursesCode.getString(2)+"\t\t";
  301. i++;
  302. }
  303. i=0;
  304.  
  305. ResultSet UcoursesCID = statement.executeQuery("select * from students_courses Where SID="+"'"+ID+"'"+"and Grade ='U'");
  306. while(UcoursesCID.next())
  307. {
  308.  
  309. Ucourses[i]= Ucourses[i] +UcoursesCID.getString(3); // get course code and its grade
  310. i++;
  311. }
  312.  
  313.  
  314. final ListView<String> Ulist = new ListView<>();
  315. final ObservableList<String> Uitems =FXCollections.observableArrayList (Ucourses);
  316. Ulist.setItems(Uitems);
  317. Ulist.setPrefHeight(250);
  318. Ulist.setPrefWidth(300);
  319.  
  320. Button Remove = new Button("Remove");
  321. Remove.setOnAction(new EventHandler<ActionEvent>() {
  322.  
  323. @Override
  324. public void handle(ActionEvent t) {
  325. String[] m =Ulist.getSelectionModel().getSelectedItem().split(" ");
  326. System.out.println(m[0]);
  327. Uitems.remove(Ulist.getSelectionModel().getSelectedItem());
  328.  
  329.  
  330. try {
  331. statement.execute("Delete from students_courses where SID ="+"'"+ID+"'"+"and CID = ( select CID from courses where Code = "+"'"+m[0]+"'"+")");
  332. System.out.println("Data Removed !!!");
  333. } catch (SQLException ex) {
  334. Logger.getLogger(UniversitySystem.class.getName()).log(Level.SEVERE, null, ex);
  335. }
  336.  
  337. }
  338. });
  339.  
  340. vb2.getChildren().add(new Label("Untaken Courses"));
  341. vb2.getChildren().add(Ulist);
  342. vb2.getChildren().add(Remove);
  343.  
  344.  
  345. //====================================
  346.  
  347. //Add Course
  348. String[] AvailableCourses = new String[3];
  349.  
  350.  
  351. //====================================
  352.  
  353. bpTop.setLeft(vb1);
  354. bpTop.setRight(vb2);
  355. bpTop.setBottom();
  356. bpTop.setPadding(new Insets(30,20,0,20));
  357. vb.getChildren().add(bpTop);
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364. tab.setContent(vb);
  365. }
  366.  
  367. public void TestPage()
  368. {
  369. Stage primaryStage = new Stage();
  370. primaryStage.setTitle("Tabs");
  371. Group root = new Group();
  372. Scene scene = new Scene(root, 400, 250, Color.WHITE);
  373. TabPane tabPane = new TabPane();
  374. BorderPane borderPane = new BorderPane();
  375. for (int i = 0; i < 5; i++) {
  376. Tab tab = new Tab();
  377. tab.setGraphic(buildImage("resources/graduation.png"));
  378. HBox hbox = new HBox();
  379. hbox.getChildren().add(new Label("Tab" + i));
  380. hbox.setAlignment(Pos.CENTER);
  381. tab.setContent(hbox);
  382. tab.setClosable(false);
  383. tabPane.getTabs().add(tab);
  384. }
  385. borderPane.prefHeightProperty().bind(scene.heightProperty());
  386. borderPane.prefWidthProperty().bind(scene.widthProperty());
  387.  
  388. borderPane.setCenter(tabPane);
  389. root.getChildren().add(borderPane);
  390. primaryStage.setScene(scene);
  391. primaryStage.show();
  392.  
  393. }
  394.  
  395.  
  396.  
  397.  
  398.  
  399. public VBox GetinfoLabel(ResultSet info) throws SQLException
  400. {
  401. VBox vb = new VBox();
  402.  
  403. Label idL = new Label("ID: ");
  404. Label fnameL = new Label("First name: ");
  405. Label lnameL = new Label("Last name: ");
  406. Label termL = new Label("Term: ");
  407. Label departmentL = new Label("Department: ");
  408. Label genderL = new Label("Gender: ");
  409. Label dateofbirthL= new Label("DateofBirth: ");
  410. Label enrolledyearL= new Label("EnrolledYear: ");
  411. Label localaddressL= new Label("LocalAddress: ");
  412. Label mobileL= new Label("Mobile: ");
  413. Label EmailL= new Label("Email: ");
  414. Label usernameL= new Label("Username: ");
  415. Label noteL= new Label("Note: ");
  416.  
  417.  
  418. info.first();
  419.  
  420. Label idLS = new Label(info.getString(1));
  421. Label fnameLS = new Label(info.getString(2));
  422. Label lnameLS = new Label(info.getString(3));
  423. Label termLS = new Label(info.getString(4));
  424. Label departmentLS = new Label(info.getString(5));
  425. Label genderLS = new Label(info.getString(6));
  426. Label dateofbirthLS= new Label(info.getString(7));
  427. Label enrolledyearLS= new Label(info.getString(8));
  428. Label localaddressLS= new Label(info.getString(9));
  429. Label mobileLS= new Label(info.getString(10));
  430. Label EmailLS= new Label(info.getString(11));
  431. Label usernameLS= new Label(info.getString(12));
  432. Label noteLS= new Label(info.getString(14));
  433.  
  434. Label All = new Label(idL.getText()+idLS.getText()+"\n\n"+
  435. fnameL.getText()+fnameLS.getText()+"\n\n"+
  436. lnameL.getText()+lnameLS.getText()+"\n\n"+
  437. termL.getText()+termLS.getText()+"\n\n"+
  438. departmentL.getText()+departmentLS.getText()+"\n\n"+
  439. genderL.getText()+genderLS.getText()+"\n\n"+
  440. dateofbirthL.getText()+dateofbirthLS.getText()+"\n\n"+
  441. enrolledyearL.getText()+enrolledyearLS.getText()+"\n\n"+
  442. localaddressL.getText()+localaddressLS.getText()+"\n\n"+
  443. mobileL.getText()+mobileLS.getText()+"\n\n"+
  444. EmailL.getText()+EmailLS.getText()+"\n\n"+
  445. usernameL.getText()+usernameLS.getText()+"\n\n"+
  446. noteL.getText()+noteLS.getText()+"\n\n");
  447. All.setFont(Font.font("Arial", FontWeight.BOLD, 16));
  448. vb.setPadding(new Insets(40, 100, 0, 60));
  449. vb.getChildren().add(All);
  450. return vb;
  451. }
  452. private static ImageView buildImage(String imgPath) {
  453.  
  454. ImageView imageView = new ImageView(new Image(imgPath));
  455. //You can set width and height
  456. imageView.setFitHeight(35);
  457. imageView.setFitWidth(40);
  458. return imageView;
  459. }
  460. public void ShowMessageBox(String text)
  461. {
  462. Label L = new Label(text);
  463.  
  464.  
  465. Stage dialogStage = new Stage();
  466. dialogStage.initModality(Modality.WINDOW_MODAL);
  467.  
  468. VBox vbox = new VBox(5);
  469. vbox.getChildren().add(L);
  470. vbox.setAlignment(Pos.CENTER);
  471. vbox.setPadding(new Insets(30));
  472.  
  473. dialogStage.setScene(new Scene(vbox));
  474. dialogStage.show();
  475.  
  476. }
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement