Guest User

Untitled

a guest
May 11th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.99 KB | None | 0 0
  1. import java.awt.Color;
  2. import java.awt.GridBagConstraints;
  3. import java.awt.GridBagLayout;
  4. import java.awt.GridLayout;
  5. import java.awt.Insets;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. import java.sql.Connection;
  9. import java.sql.DriverManager;
  10. import java.sql.ResultSet;
  11. import java.sql.Statement;
  12.  
  13. import javax.swing.BorderFactory;
  14. import javax.swing.JButton;
  15. import javax.swing.JFrame;
  16. import javax.swing.JLabel;
  17. import javax.swing.JPanel;
  18. import javax.swing.JScrollPane;
  19. import javax.swing.JTabbedPane;
  20. import javax.swing.JTextArea;
  21. import javax.swing.JTextField;
  22. import javax.swing.border.Border;
  23.  
  24.  
  25. public class UIPartage extends JFrame implements ActionListener{
  26. public static final int WIDTH = 1024;
  27. public static final int HEIGHT = 768;
  28. private JTabbedPane tab;
  29. private JTextArea sqlstmtTArea;
  30. private JTextArea sqlres1TArea;
  31. private JTextArea sqlresTArea;
  32. private ResultSet res = null;
  33. private Connection c = null;
  34. private Statement stmt1 = null;
  35. private JTextField distTextField;
  36. private JTextField nomTextField;
  37. private String[] str_req= {"select an.titre, an.text, o.prix, annonceur.nom as annonceur, chercheur.nom as chercheur \r\n" +
  38. "from notifications n\r\n" +
  39. "inner join objets o on o.categorie = n.categorie and o.marque like '%' || n.marque || '%' and o.prix between n.prix_minimum and n.prix_maximum\r\n" +
  40. "inner join annonces an on an.num_objet = o.num_objet \r\n" +
  41. "inner join utilisateurs chercheur on chercheur.num_utilisateur = n.num_utilisateur\r\n" +
  42. "inner join utilisateurs annonceur on annonceur.num_utilisateur = an.num_utilisateur\r\n" +
  43. "where distance(an.coordonees, chercheur.coordonees) <= ",
  44. "select o.nom as objet, emp.nom as emprunteur, e.debut, e.fin\r\n" +
  45. "from emprunts e\r\n" +
  46. "inner join utilisateurs emp on emp.num_utilisateur = e.num_emprunteur\r\n" +
  47. "inner join objets o on o.num_objet = e.num_objet\r\n" +
  48. "inner join annonces an on an.num_objet = o.num_objet\r\n" +
  49. "inner join utilisateurs pre on pre.num_utilisateur = an.num_utilisateur\r\n" +
  50. "where pre.nom = "};
  51. public static void main( String args[] ) {
  52.  
  53.  
  54.  
  55. UIPartage gui = new UIPartage();
  56. gui.setLocationRelativeTo(null);
  57. gui.setVisible(true);
  58.  
  59.  
  60. }
  61.  
  62. public UIPartage() {
  63. super( );
  64. setSize(WIDTH, HEIGHT);
  65. setTitle("Gestion d��un syst��me de partage d��objets");
  66. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  67.  
  68. tab = new JTabbedPane(JTabbedPane.TOP);
  69.  
  70.  
  71.  
  72. GridBagLayout layout = new GridBagLayout();
  73. JPanel jPanelGUI = new JPanel();
  74. jPanelGUI.setLayout(layout);
  75.  
  76. JLabel req01Label = new JLabel("Chercheur voulant ��tre notifi�� �� une distance maximum de (m��tres)");
  77. jPanelGUI.add(req01Label);
  78. distTextField = new JTextField();
  79. jPanelGUI.add(distTextField);
  80. JButton req01Button = new JButton("CONFIRMER");
  81. req01Button.setActionCommand("req01btn");
  82. req01Button.addActionListener(this);
  83. jPanelGUI.add(req01Button);
  84. ///////
  85. JLabel req02Label = new JLabel("Historique d'objets emprunt��s d'un utilisateur (nom)");
  86. jPanelGUI.add(req02Label);
  87. nomTextField = new JTextField();
  88. jPanelGUI.add(nomTextField);
  89. JButton req02Button = new JButton("CONFIRMER");
  90. req02Button.setActionCommand("req02btn");
  91. req02Button.addActionListener(this);
  92. jPanelGUI.add(req02Button);
  93.  
  94.  
  95. JPanel padPanel = new JPanel();
  96. jPanelGUI.add(padPanel);
  97. JButton clearButton = new JButton("EFFACER");
  98. clearButton.setActionCommand("clearbtn");
  99. clearButton.addActionListener(this);
  100. jPanelGUI.add(clearButton);
  101.  
  102.  
  103. sqlres1TArea = new JTextArea(3,30);
  104. sqlres1TArea.setLineWrap(false);
  105.  
  106. JScrollPane scr_sqlres1TArea = new JScrollPane(sqlres1TArea,
  107. JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
  108. JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
  109. jPanelGUI.add(scr_sqlres1TArea);
  110.  
  111.  
  112. GridBagConstraints s= new GridBagConstraints();
  113. s.fill = GridBagConstraints.BOTH;
  114.  
  115. s.gridwidth=1;
  116. s.weightx = 0;
  117. s.weighty=0;
  118. layout.setConstraints(req01Label, s);
  119. s.gridwidth=4;
  120. s.weightx = 1;
  121. s.weighty=0;
  122. layout.setConstraints(distTextField, s);
  123. s.gridwidth=0;
  124. s.weightx = 0;
  125. s.weighty=0;
  126. layout.setConstraints(req01Button, s);
  127. s.gridwidth=0;
  128. s.weightx = 1;
  129. s.weighty=3;
  130. layout.setConstraints(scr_sqlres1TArea, s);
  131. ////////
  132. s.gridwidth=1;
  133. s.weightx = 0;
  134. s.weighty=0;
  135. layout.setConstraints(req02Label, s);
  136.  
  137. s.gridwidth=0;
  138. s.weightx = 0;
  139. s.weighty=0;
  140. layout.setConstraints(req02Button, s);
  141.  
  142. s.gridwidth=4;
  143. s.weightx = 1;
  144. s.weighty=0;
  145. layout.setConstraints(padPanel, s);
  146. s.gridwidth=0;
  147. s.weightx = 0;
  148. s.weighty=0;
  149. layout.setConstraints(clearButton, s);
  150.  
  151. s.gridwidth=4;
  152. s.weightx = 0;
  153. s.weighty=0;
  154. layout.setConstraints(nomTextField, s);
  155.  
  156. tab.addTab("GUI Mode", jPanelGUI);
  157.  
  158.  
  159.  
  160. JPanel jPanelCLI = new JPanel();
  161. Border border = BorderFactory.createLineBorder(Color.BLACK);
  162. jPanelCLI.setLayout(new GridLayout(3, 2 ));
  163. JLabel reqLabel= new JLabel("SQL Statements:");
  164. reqLabel.setSize(200, 30);
  165. reqLabel.setBorder(border);
  166. jPanelCLI.add(reqLabel);
  167.  
  168.  
  169.  
  170. sqlstmtTArea = new JTextArea(3,30);
  171. sqlstmtTArea.setLineWrap(true);
  172. sqlstmtTArea.setBorder(border);
  173.  
  174. JScrollPane scr_sqlstmtTArea = new JScrollPane(sqlstmtTArea,
  175. JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
  176. JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
  177. jPanelCLI.add(scr_sqlstmtTArea);
  178. JLabel resLabel = new JLabel("Results:");
  179. resLabel.setBorder(border);
  180. jPanelCLI.add(resLabel);
  181. sqlresTArea = new JTextArea(3,30);
  182. sqlresTArea.setLineWrap(true);
  183. sqlresTArea.setBorder(border);
  184. JScrollPane scr_sqlresTArea = new JScrollPane(sqlresTArea,
  185. JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
  186. JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
  187. jPanelCLI.add(scr_sqlresTArea);
  188.  
  189. JButton cherchButton = new JButton("EXECUTER");
  190. cherchButton.setActionCommand("Executer");
  191. cherchButton.addActionListener(this);
  192. jPanelCLI.add(cherchButton);
  193.  
  194. JButton annulerButton = new JButton("EFFACER RESULTAT");
  195. annulerButton.setActionCommand("Effacer");
  196. annulerButton.addActionListener(this);
  197. jPanelCLI.add(annulerButton);
  198.  
  199. tab.addTab("CLI Mode", jPanelCLI);
  200.  
  201. add(tab);
  202.  
  203. }
  204.  
  205. @Override
  206. public void actionPerformed(ActionEvent e) {
  207. String actionCommand = e.getActionCommand( );
  208.  
  209. switch(actionCommand){
  210. case "Executer":
  211. if(sqlstmtTArea.getText().length()!=0) {
  212. ResultSet rs = executerSQL(sqlstmtTArea.getText());
  213. try {
  214.  
  215. if(rs!=null) {
  216. int ncol = rs.getMetaData().getColumnCount();
  217. for(int i=1;i<=ncol;i++) {
  218. sqlresTArea.append(rs.getMetaData().getColumnName(i) + "\t");
  219. }
  220. sqlresTArea.append("\n");
  221.  
  222. while ( rs.next() ) {
  223. for(int i=1;i<=ncol;i++) {
  224. sqlresTArea.append(rs.getString(i) + "\t");
  225. }
  226. sqlresTArea.append("\n");
  227. }
  228. rs.close();
  229. }
  230. stmt1.close();
  231. c.close();
  232. }catch ( Exception e1 ) {
  233. System.err.println( e1.getClass().getName()+": "+ e1.getMessage() );
  234. System.exit(0);
  235. }
  236. }
  237. break;
  238. case "Effacer":
  239. sqlresTArea.setText("");
  240. break;
  241. case "clearbtn":
  242. sqlres1TArea.setText("");
  243. break;
  244. case "req01btn":
  245. if(distTextField.getText().length()!=0) {
  246. ResultSet rs = executerSQL(str_req[0]+distTextField.getText()+";");
  247. try {
  248.  
  249. if(rs!=null) {
  250. int ncol = rs.getMetaData().getColumnCount();
  251. for(int i=1;i<=ncol;i++) {
  252. sqlres1TArea.append(rs.getMetaData().getColumnName(i) + "\t");
  253. }
  254. sqlres1TArea.append("\n");
  255.  
  256. while ( rs.next() ) {
  257. for(int i=1;i<=ncol;i++) {
  258. sqlres1TArea.append(rs.getString(i) + "\t");
  259. }
  260. sqlres1TArea.append("\n");
  261. }
  262. rs.close();
  263. }
  264. stmt1.close();
  265. c.close();
  266. }catch ( Exception e1 ) {
  267. System.err.println( e1.getClass().getName()+": "+ e1.getMessage() );
  268. System.exit(0);
  269. }
  270. }
  271. break;
  272. case "req02btn":
  273. if(nomTextField.getText().length()!=0) {
  274. ResultSet rs = executerSQL(str_req[1]+"\'"+nomTextField.getText()+"\';");
  275. try {
  276.  
  277. if(rs!=null) {
  278. int ncol = rs.getMetaData().getColumnCount();
  279. for(int i=1;i<=ncol;i++) {
  280. sqlres1TArea.append(rs.getMetaData().getColumnName(i) + "\t");
  281. }
  282. sqlres1TArea.append("\n");
  283.  
  284. while ( rs.next() ) {
  285. for(int i=1;i<=ncol;i++) {
  286. sqlres1TArea.append(rs.getString(i) + "\t");
  287. }
  288. sqlres1TArea.append("\n");
  289. }
  290. rs.close();
  291. }
  292. stmt1.close();
  293. c.close();
  294. }catch ( Exception e1 ) {
  295. System.err.println( e1.getClass().getName()+": "+ e1.getMessage() );
  296. System.exit(0);
  297. }
  298. }
  299. break;
  300. }
  301. }
  302. public ResultSet executerSQL(String strstmt) {
  303.  
  304. try {
  305. Class.forName("org.postgresql.Driver");
  306. c = DriverManager
  307. .getConnection("jdbc:postgresql://localhost:5433/partagea",
  308. "postgres", "1");
  309. c.setAutoCommit(false);
  310. System.out.println("Opened database successfully");
  311.  
  312. stmt1 = c.createStatement();
  313. stmt1.execute("set search_path to projetbd;");
  314. stmt1.execute(strstmt);
  315.  
  316. res = stmt1.getResultSet();
  317.  
  318. } catch ( Exception e1 ) {
  319. System.err.println( e1.getClass().getName()+": "+ e1.getMessage() );
  320. System.exit(0);
  321. }
  322. return res;
  323. }
  324.  
  325.  
  326.  
  327. }
Add Comment
Please, Sign In to add comment