/** * 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(); }
/** 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()); }
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(); } } }