Advertisement
s00rk

TJU Main.java

Sep 22nd, 2012
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.34 KB | None | 0 0
  1. package com.principal;
  2.  
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.*;
  6. import java.io.*;
  7. import java.util.*;
  8.  
  9. public class Main extends JFrame
  10. {
  11. private static final long serialVersionUID = 2L;
  12.  
  13. private PanelSouth PNL_Botones;
  14. private PanelInfo PNL_Info;
  15. private Vector<User> users;
  16. private UpdateInfo info;
  17.  
  18. public Main()
  19. {
  20. super("TJU User Viewer");
  21. users = new Vector<User>();
  22. users = MyData.readUsers();
  23. info = new UpdateInfo();
  24. PNL_Botones = new PanelSouth(this);
  25. PNL_Info = new PanelInfo();
  26. add(PNL_Info);
  27. add(PNL_Botones,BorderLayout.SOUTH);
  28. pack();
  29. setResizable(false);
  30. setLocationRelativeTo(null);
  31. setDefaultCloseOperation(EXIT_ON_CLOSE);
  32. }
  33.  
  34. public void addUser(String id)
  35. {
  36. User user = new User();
  37. user.setUserID( id );
  38. for ( User u : users )
  39. if ( u.getUserID().equals(id) ) {
  40. JOptionPane.showMessageDialog(this,"El usuario ya existe");
  41. return;
  42. }
  43. user = info.updateInfo(user);
  44. users.addElement( user );
  45. MyData.write( users );
  46. PNL_Info.addUser( user, 1 );
  47. PNL_Info.updateTable();
  48. }
  49.  
  50. public void removeUser(String id)
  51. {
  52. User user = new User();
  53. user.setUserID( id );
  54. for ( User u : users )
  55. if ( u.getUserID().equals(id) )
  56. {
  57. users.remove( u );
  58. MyData.write( users );
  59. updateInfo();
  60. return;
  61. }
  62. JOptionPane.showMessageDialog(this,"El usuario no existe");
  63. }
  64.  
  65. public void updateInfo()
  66. {
  67. Vector<User> v = users;
  68. for ( User u : v )
  69. u = info.updateInfo(u);
  70.  
  71. MyData.write( v );
  72. PNL_Info.updateInfo();
  73. PNL_Info.updateTable();
  74. }
  75.  
  76. @SuppressWarnings("deprecation")
  77. public static void main(String [] arsa)
  78. {
  79. new Main().show();
  80. }
  81. }
  82.  
  83. class PanelSouth extends JPanel implements ActionListener
  84. {
  85. private static final long serialVersionUID = 2L;
  86.  
  87. private Main father;
  88. private JButton BTN_Add;
  89. private JButton BTN_Rmv;
  90. private JButton BTN_Upd;
  91.  
  92. public PanelSouth(Main m)
  93. {
  94. father = m;
  95.  
  96. BTN_Add = new JButton("Add");
  97. BTN_Rmv = new JButton("Remove");
  98. BTN_Upd = new JButton("Update");
  99. BTN_Add.addActionListener(this);
  100. BTN_Rmv.addActionListener(this);
  101. BTN_Upd.addActionListener(this);
  102. add(BTN_Add);
  103. add(BTN_Rmv);
  104. add(BTN_Upd);
  105. }
  106.  
  107. public void actionPerformed(ActionEvent e)
  108. {
  109. JButton src = (JButton)e.getSource();
  110. if ( src == BTN_Add )
  111. {
  112. String user = JOptionPane.showInputDialog(father, "user id:");
  113. if ( user==null || user.isEmpty() ) return;
  114. father.addUser(user);
  115. } else if ( src == BTN_Rmv ) {
  116. String user = JOptionPane.showInputDialog(father, "user id:");
  117. if ( user==null || user.isEmpty() ) return;
  118. father.removeUser(user);
  119. } else if ( src == BTN_Upd ) {
  120. father.updateInfo();
  121. }
  122. }
  123. }
  124.  
  125.  
  126. class PanelInfo extends JPanel
  127. {
  128. private static final long serialVersionUID = 2L;
  129.  
  130. private JTable table;
  131. @SuppressWarnings("rawtypes")
  132. private Vector<Vector> rows;
  133.  
  134. @SuppressWarnings("rawtypes")
  135. public PanelInfo()
  136. {
  137. Vector<String> cols = new Vector<String>();
  138. cols.addElement("User id");
  139. cols.addElement("User name");
  140. cols.addElement("Solved");
  141. cols.addElement("Sumbited");
  142. cols.addElement("Rank");
  143. rows = new Vector<Vector>();
  144. table = new JTable(rows,cols);
  145. table.setShowHorizontalLines(false);
  146. updateInfo();
  147. add( new JScrollPane(table) );
  148. }
  149.  
  150. public void updateTable()
  151. {
  152. table.updateUI();
  153. }
  154.  
  155. public void updateInfo()
  156. {
  157. System.out.println( "traying to update users on table" );
  158.  
  159. rows.clear();
  160. Vector<User> data = MyData.readUsers();
  161. if(data != null)
  162. {
  163. data = Ordenar(data);
  164. for ( User u : data )
  165. addUser(u, 0);
  166. }
  167. System.out.println( "users updated on table" );
  168. //table.updateUI();
  169. }
  170.  
  171. public void addUser(User u, int type)
  172. {
  173. if(type == 1)
  174. {
  175. rows.clear();
  176. Vector<User> data = MyData.readUsers();
  177. if(data != null)
  178. {
  179. data = Ordenar(data);
  180. for ( User s : data )
  181. addUser(s, 0);
  182. }
  183. return;
  184. }
  185. System.out.println( "traying to add user on table" );
  186. Vector<String> row = new Vector<String>();
  187. row = new Vector<String>();
  188. row.addElement( u.getUserID() );
  189. row.addElement( u.getUserName() );
  190. row.addElement( u.getSolved() + "" );
  191. row.addElement( u.getSubmit() + "" );
  192. row.addElement( u.getRank() + "" );
  193. rows.addElement(row);
  194. System.out.println( "user added on table" );
  195. }
  196.  
  197. private Vector<User> Ordenar(Vector<User> u)
  198. {
  199. boolean hayCambios = true;
  200. while(hayCambios)
  201. {
  202. hayCambios = false;
  203. for (int j = 0; j < u.size() - 1; j++)
  204. {
  205. if (u.get(j).getRank() > u.get(j + 1).getRank())
  206. {
  207. User tmp = u.get(j);
  208. u.set(j, u.get(j+1));
  209. u.set((j+1), tmp);
  210. hayCambios = true;
  211. }
  212. }
  213. }
  214. return u;
  215. }
  216. }
  217.  
  218. class MyData
  219. {
  220. public static final String FILE_NAME = "data.dat";
  221. private static RandomAccessFile raf;
  222.  
  223. public static synchronized void delete()
  224. {
  225. try {
  226. System.out.println( "traying to delete info" );
  227. raf = new RandomAccessFile(FILE_NAME,"rw");
  228. raf.setLength(0);
  229. raf.close();
  230. System.out.println( "info deleted" );
  231. } catch(Exception e) {
  232. System.out.println( "ERROR deleting info" );
  233. System.out.println( e.getMessage() );
  234. }
  235. }
  236.  
  237. public static synchronized void write(Vector<User> v) {
  238. try{
  239. OutputStream file = new FileOutputStream( FILE_NAME );
  240. OutputStream buffer = new BufferedOutputStream( file );
  241. ObjectOutput output = new ObjectOutputStream( buffer );
  242. try{
  243. output.writeObject(v);
  244. }
  245. finally{
  246. output.close();
  247. }
  248. }
  249. catch(IOException ex){
  250. ex.printStackTrace();
  251. }
  252. }
  253.  
  254. public static synchronized Vector<User> readUsers()
  255. {
  256. try{
  257. InputStream file = new FileInputStream( FILE_NAME );
  258. InputStream buffer = new BufferedInputStream( file );
  259. ObjectInput input = new ObjectInputStream ( buffer );
  260. try{
  261. @SuppressWarnings("unchecked")
  262. Vector<User> v = (Vector<User>)input.readObject();
  263. return v;
  264. }
  265. finally
  266. {
  267. input.close();
  268. }
  269. }
  270. catch(ClassNotFoundException ex)
  271. {
  272. ex.printStackTrace();
  273. }
  274. catch(IOException ex)
  275. {
  276. System.out.println(ex.getMessage());
  277. }
  278. return new Vector<User>();
  279. }
  280. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement