Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.principal;
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.*;
- import java.io.*;
- import java.util.*;
- public class Main extends JFrame
- {
- private static final long serialVersionUID = 2L;
- private PanelSouth PNL_Botones;
- private PanelInfo PNL_Info;
- private Vector<User> users;
- private UpdateInfo info;
- public Main()
- {
- super("TJU User Viewer");
- users = new Vector<User>();
- users = MyData.readUsers();
- info = new UpdateInfo();
- PNL_Botones = new PanelSouth(this);
- PNL_Info = new PanelInfo();
- add(PNL_Info);
- add(PNL_Botones,BorderLayout.SOUTH);
- pack();
- setResizable(false);
- setLocationRelativeTo(null);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- }
- public void addUser(String id)
- {
- User user = new User();
- user.setUserID( id );
- for ( User u : users )
- if ( u.getUserID().equals(id) ) {
- JOptionPane.showMessageDialog(this,"El usuario ya existe");
- return;
- }
- user = info.updateInfo(user);
- users.addElement( user );
- MyData.write( users );
- PNL_Info.addUser( user, 1 );
- PNL_Info.updateTable();
- }
- public void removeUser(String id)
- {
- User user = new User();
- user.setUserID( id );
- for ( User u : users )
- if ( u.getUserID().equals(id) )
- {
- users.remove( u );
- MyData.write( users );
- updateInfo();
- return;
- }
- JOptionPane.showMessageDialog(this,"El usuario no existe");
- }
- public void updateInfo()
- {
- Vector<User> v = users;
- for ( User u : v )
- u = info.updateInfo(u);
- MyData.write( v );
- PNL_Info.updateInfo();
- PNL_Info.updateTable();
- }
- @SuppressWarnings("deprecation")
- public static void main(String [] arsa)
- {
- new Main().show();
- }
- }
- class PanelSouth extends JPanel implements ActionListener
- {
- private static final long serialVersionUID = 2L;
- private Main father;
- private JButton BTN_Add;
- private JButton BTN_Rmv;
- private JButton BTN_Upd;
- public PanelSouth(Main m)
- {
- father = m;
- BTN_Add = new JButton("Add");
- BTN_Rmv = new JButton("Remove");
- BTN_Upd = new JButton("Update");
- BTN_Add.addActionListener(this);
- BTN_Rmv.addActionListener(this);
- BTN_Upd.addActionListener(this);
- add(BTN_Add);
- add(BTN_Rmv);
- add(BTN_Upd);
- }
- public void actionPerformed(ActionEvent e)
- {
- JButton src = (JButton)e.getSource();
- if ( src == BTN_Add )
- {
- String user = JOptionPane.showInputDialog(father, "user id:");
- if ( user==null || user.isEmpty() ) return;
- father.addUser(user);
- } else if ( src == BTN_Rmv ) {
- String user = JOptionPane.showInputDialog(father, "user id:");
- if ( user==null || user.isEmpty() ) return;
- father.removeUser(user);
- } else if ( src == BTN_Upd ) {
- father.updateInfo();
- }
- }
- }
- class PanelInfo extends JPanel
- {
- private static final long serialVersionUID = 2L;
- private JTable table;
- @SuppressWarnings("rawtypes")
- private Vector<Vector> rows;
- @SuppressWarnings("rawtypes")
- public PanelInfo()
- {
- Vector<String> cols = new Vector<String>();
- cols.addElement("User id");
- cols.addElement("User name");
- cols.addElement("Solved");
- cols.addElement("Sumbited");
- cols.addElement("Rank");
- rows = new Vector<Vector>();
- table = new JTable(rows,cols);
- table.setShowHorizontalLines(false);
- updateInfo();
- add( new JScrollPane(table) );
- }
- public void updateTable()
- {
- table.updateUI();
- }
- public void updateInfo()
- {
- System.out.println( "traying to update users on table" );
- rows.clear();
- Vector<User> data = MyData.readUsers();
- if(data != null)
- {
- data = Ordenar(data);
- for ( User u : data )
- addUser(u, 0);
- }
- System.out.println( "users updated on table" );
- //table.updateUI();
- }
- public void addUser(User u, int type)
- {
- if(type == 1)
- {
- rows.clear();
- Vector<User> data = MyData.readUsers();
- if(data != null)
- {
- data = Ordenar(data);
- for ( User s : data )
- addUser(s, 0);
- }
- return;
- }
- System.out.println( "traying to add user on table" );
- Vector<String> row = new Vector<String>();
- row = new Vector<String>();
- row.addElement( u.getUserID() );
- row.addElement( u.getUserName() );
- row.addElement( u.getSolved() + "" );
- row.addElement( u.getSubmit() + "" );
- row.addElement( u.getRank() + "" );
- rows.addElement(row);
- System.out.println( "user added on table" );
- }
- private Vector<User> Ordenar(Vector<User> u)
- {
- boolean hayCambios = true;
- while(hayCambios)
- {
- hayCambios = false;
- for (int j = 0; j < u.size() - 1; j++)
- {
- if (u.get(j).getRank() > u.get(j + 1).getRank())
- {
- User tmp = u.get(j);
- u.set(j, u.get(j+1));
- u.set((j+1), tmp);
- hayCambios = true;
- }
- }
- }
- return u;
- }
- }
- class MyData
- {
- public static final String FILE_NAME = "data.dat";
- private static RandomAccessFile raf;
- public static synchronized void delete()
- {
- try {
- System.out.println( "traying to delete info" );
- raf = new RandomAccessFile(FILE_NAME,"rw");
- raf.setLength(0);
- raf.close();
- System.out.println( "info deleted" );
- } catch(Exception e) {
- System.out.println( "ERROR deleting info" );
- System.out.println( e.getMessage() );
- }
- }
- public static synchronized void write(Vector<User> v) {
- try{
- OutputStream file = new FileOutputStream( FILE_NAME );
- OutputStream buffer = new BufferedOutputStream( file );
- ObjectOutput output = new ObjectOutputStream( buffer );
- try{
- output.writeObject(v);
- }
- finally{
- output.close();
- }
- }
- catch(IOException ex){
- ex.printStackTrace();
- }
- }
- public static synchronized Vector<User> readUsers()
- {
- try{
- InputStream file = new FileInputStream( FILE_NAME );
- InputStream buffer = new BufferedInputStream( file );
- ObjectInput input = new ObjectInputStream ( buffer );
- try{
- @SuppressWarnings("unchecked")
- Vector<User> v = (Vector<User>)input.readObject();
- return v;
- }
- finally
- {
- input.close();
- }
- }
- catch(ClassNotFoundException ex)
- {
- ex.printStackTrace();
- }
- catch(IOException ex)
- {
- System.out.println(ex.getMessage());
- }
- return new Vector<User>();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement