예제 #1
0
  /**
   * Spawns server / keepAlive threads
   *
   * @param wksp - workspace directory
   * @param svc_host - hostname for the name server
   * @param svc_port - port number for the name server
   */
  public LeetFTP(String wksp, String svc_host, int svc_port) {

    directory = wksp;
    serverTextField = new JTextField(svc_host, 10);
    portTextField = new JTextField("" + svc_port, 4);
    nameTextField = new JTextField("AIM-NuklearEclipse");

    active = new LeetActive(svc_host, svc_port, SERVER_PORT);
    active.setUserName("quick");
    active.start();
    address = active.getAddress();
    active.running = false;

    link = new LeetClient();

    server = new LeetServ(address, SERVER_PORT, directory);
    server.start();
  }
예제 #2
0
  /** Update the list of connected users */
  private void updateUserList() {
    ArrayList users = active.getHosts();

    ((DefaultListModel) userList.getModel()).clear();
    ((DefaultListModel) userList.getModel()).ensureCapacity(users.size());

    for (int x = 0; x < users.size(); x++) {
      ((DefaultListModel) userList.getModel()).addElement(users.get(x));
    }
    // userList.ensureIndexIsVisible(users.size());

  }
예제 #3
0
 public void mouseClicked(MouseEvent e) {
   if (e.getSource() == userList && e.getClickCount() == 2) {
     int index = userList.locationToIndex(e.getPoint());
     if (index > -1) {
       String userInfo = (String) ((DefaultListModel) userList.getModel()).get(index);
       link.running = false;
       userInfo = userInfo.substring(userInfo.indexOf("@") - 1);
       link =
           new LeetClient(
               userInfo.substring(userInfo.indexOf("@") + 1, userInfo.indexOf(":")),
               Integer.parseInt(userInfo.substring(userInfo.indexOf(":") + 1)),
               address,
               directory);
       link.setPasv(portItem.getState());
       link.command = "LIST";
       link.start();
     }
   }
   if (e.getSource() == fileList && e.getClickCount() == 2) {
     int index = fileList.locationToIndex(e.getPoint());
     if (index > -1) {
       String fileName = (String) ((DefaultListModel) fileList.getModel()).get(index);
       if (fileName.indexOf(" ") > -1) {
         fileName = fileName.substring(0, fileName.indexOf(" "));
       }
       link.command = "RETR " + fileName;
       System.out.println(link.command);
     }
   }
   if (e.getSource() == connectButton) {
     if (connectButton.getText().equals("Disconnect")) {
       active.running = false;
       connectButton.setText("Connect");
     } else {
       active =
           new LeetActive(
               serverTextField.getText(),
               Integer.parseInt(portTextField.getText()),
               SERVER_PORT);
       active.setUserName(nameTextField.getText());
       active.start();
       connectButton.setText("Disconnect");
     }
   }
   if (e.getSource() == searchInit) {
     search = new SearchUsers();
     search.start();
   }
   if (e.getSource() == searchList && e.getClickCount() == 2) {
     int index = searchList.locationToIndex(e.getPoint());
     if (index > -1) {
       String fileInfo = (String) ((DefaultListModel) searchList.getModel()).get(index);
       link.running = false;
       String userInfo = fileInfo.substring(fileInfo.indexOf("@") + 1);
       userInfo = userInfo.substring(userInfo.indexOf("@") - 1);
       fileInfo = fileInfo.substring(0, fileInfo.indexOf("@"));
       link =
           new LeetClient(
               userInfo.substring(userInfo.indexOf("@") + 1, userInfo.indexOf(":")),
               Integer.parseInt(userInfo.substring(userInfo.indexOf(":") + 1)),
               address,
               directory);
       link.setPasv(portItem.getState());
       link.command = "RETR " + fileInfo;
       link.start();
     }
   }
 }