001package csheets.ext.share.ui; 002 003import java.util.*; 004 005import javax.swing.JOptionPane; 006 007import csheets.core.Cell; 008import csheets.ext.share.controller.ReceiveController; 009import csheets.ext.share.core.Validate; 010 011/** 012 * Create a user interface for the receive action 013 * 014 * @author Andre 015 * 016 */ 017public class ReceiveUI implements Observer { 018 019 /** 020 * Create a user interface for the receive action 021 * 022 * @param cellStart 023 * the cell where we start the written process 024 */ 025 public void createUI(Cell cellStart) { 026 boolean portIsNotCorrect = true; 027 boolean portAsNumber; 028 int port = 0; 029 String IP = ""; 030 031 boolean IPIsNotCorrect = true; 032 while (IPIsNotCorrect) { 033 IP = JOptionPane 034 .showInputDialog("Please input an IP.\nIPv4 or localhost"); 035 if (IP != null) { 036 IPIsNotCorrect = !Validate.checkIFIPIsCorrect(IP); 037 } else { 038 break; 039 } 040 } 041 042 while (portIsNotCorrect) { 043 String portTemp = JOptionPane 044 .showInputDialog("Please input a port (49152 to 65535)"); 045 if (portTemp != null) { 046 portAsNumber = Validate.checkIfANumber(portTemp); 047 if (portAsNumber) { 048 port = Integer.parseInt(portTemp); 049 portIsNotCorrect = !Validate.checkPort(port); 050 } 051 } else { 052 break; 053 } 054 } 055 056 if (!IPIsNotCorrect && !portIsNotCorrect) { 057 String password = JOptionPane.showInputDialog("Enter password"); 058 ReceiveController rc = new ReceiveController(); 059 rc.startClient(IP, port, cellStart, 060 Validate.encrypt(password.getBytes()), this); 061 } 062 } 063 064 @Override 065 public void update(Observable o, Object arg) { 066 JOptionPane.showMessageDialog(null, "Connection Error"); 067 } 068}