| @@ -36,7 +36,7 @@ public class Client { | ||||
| 	private ObjectFactory	objectFactory	= new ObjectFactory(); | ||||
| 	private DatatypeFactory	datatypeFactory; | ||||
| 	private Config			config; | ||||
| 	private User user; | ||||
| 	private User			user; | ||||
|  | ||||
| 	public Client(Config config, String username) { | ||||
| 		this.config = config; | ||||
| @@ -54,9 +54,9 @@ public class Client { | ||||
| 	 * Because sending a request is a blocking operation, it is executed | ||||
| 	 * asynchronously. | ||||
| 	 *  | ||||
| 	 * @param sender      Name of the sender | ||||
| 	 * @param recipient   Name of the recipient | ||||
| 	 * @param textContent Content (text) of the message | ||||
| 	 * @param sender      name of the sender | ||||
| 	 * @param recipient   name of the recipient | ||||
| 	 * @param textContent content (text) of the message | ||||
| 	 */ | ||||
| 	public void sendMessage(Message message) { | ||||
| 		new Thread(() -> { | ||||
| @@ -92,7 +92,7 @@ public class Client { | ||||
| 	 * @param senderID    The ID of the sender | ||||
| 	 * @param recipientID The ID of the recipient | ||||
| 	 * @param textContent The content (text) of the message | ||||
| 	 * @return Prepared {@link Message} object | ||||
| 	 * @return prepared {@link Message} object | ||||
| 	 */ | ||||
| 	public Message createMessage(long senderID, long recipientID, String textContent) { | ||||
| 		Message.MetaData metaData = objectFactory.createMessageMetaData(); | ||||
| @@ -129,18 +129,18 @@ public class Client { | ||||
| 		client.close(); | ||||
| 		return users; | ||||
| 	} | ||||
| 	 | ||||
|  | ||||
| 	/** | ||||
| 	 * Returns the user by name. | ||||
| 	 * Returns a {@link User} with a specific name by name. | ||||
| 	 *  | ||||
| 	 * @param name - the name of the user | ||||
| 	 * @return an user object | ||||
| 	 * @param name - the name of the {@link User} | ||||
| 	 * @return a {@link User} with the specified name | ||||
| 	 * @since Envoy 0.1 | ||||
| 	 */ | ||||
| 	private User getUser(String name) { | ||||
| 		javax.ws.rs.client.Client	client		= ClientBuilder.newClient(); | ||||
| 		WebTarget					target		= client | ||||
| 			.target(String.format("%s:%d/envoy-server/rest/user/sender?name=" + name, config.getServer(), config.getPort())); | ||||
| 		WebTarget					target		= client.target(String | ||||
| 			.format("%s:%d/envoy-server/rest/user/sender?name=" + name, config.getServer(), config.getPort())); | ||||
| 		Response					response	= target.request("application/xml").get(); | ||||
| 		Users						users		= response.readEntity(Users.class); | ||||
| 		System.out.println("Response code: " + response.getStatus()); | ||||
| @@ -148,14 +148,10 @@ public class Client { | ||||
| 		client.close(); | ||||
| 		return users.getUser().get(0); | ||||
| 	} | ||||
| 	 | ||||
|  | ||||
| 	/** | ||||
| 	 * Returns the user ID. | ||||
| 	 * @return userID | ||||
| 	 * @return the user id of this client | ||||
| 	 * @since Envoy 0.1 | ||||
| 	 */ | ||||
| 	public long getSenderID() { | ||||
| 		return user.getID(); | ||||
| 		 | ||||
| 	} | ||||
| 	public long getSenderID() { return user.getID(); } | ||||
| } | ||||
| @@ -2,13 +2,10 @@ package envoy.client.ui; | ||||
|  | ||||
| import java.awt.Color; | ||||
| import java.awt.ComponentOrientation; | ||||
| import java.awt.EventQueue; | ||||
| import java.awt.Font; | ||||
| import java.awt.GridBagConstraints; | ||||
| import java.awt.GridBagLayout; | ||||
| import java.awt.Insets; | ||||
| import java.io.IOException; | ||||
| import java.util.Properties; | ||||
|  | ||||
| import javax.swing.DefaultListModel; | ||||
| import javax.swing.JButton; | ||||
| @@ -23,7 +20,6 @@ import javax.swing.SwingUtilities; | ||||
| import javax.swing.border.EmptyBorder; | ||||
|  | ||||
| import envoy.client.Client; | ||||
| import envoy.client.Config; | ||||
| import envoy.schema.Message; | ||||
| import envoy.schema.User; | ||||
| import envoy.schema.Users; | ||||
| @@ -51,7 +47,7 @@ public class ChatWindow extends JFrame { | ||||
|  | ||||
| 	public ChatWindow(Client client) { | ||||
| 		this.client = client; | ||||
| 		 | ||||
|  | ||||
| 		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | ||||
| 		setBounds(100, 100, 600, 800); | ||||
| 		setTitle("Envoy"); | ||||
| @@ -138,7 +134,8 @@ public class ChatWindow extends JFrame { | ||||
|  | ||||
| 			// TODO: Acquire proper sender id | ||||
| 			if (!messageEnterTextfield.getText().isEmpty() && recipientID != 0) try { | ||||
| 				final Message message = client.createMessage(client.getSenderID(), recipientID, messageEnterTextfield.getText()); | ||||
| 				final Message message = client | ||||
| 					.createMessage(client.getSenderID(), recipientID, messageEnterTextfield.getText()); | ||||
| 				client.sendMessage(message); | ||||
| 				appendMessageToChat(message); | ||||
| 				messageEnterTextfield.setText(""); | ||||
| @@ -214,5 +211,4 @@ public class ChatWindow extends JFrame { | ||||
| 				+ message.getMetaData().getSender() + "</b> </small>" + "<br>" + "<p style=\"color:white\">" | ||||
| 				+ getFirstTextContent(message) + "</span></html>"); | ||||
| 	} | ||||
|  | ||||
| } | ||||
| @@ -5,15 +5,12 @@ import java.io.IOException; | ||||
| import java.util.Properties; | ||||
|  | ||||
| import javax.swing.JOptionPane; | ||||
| import javax.ws.rs.client.Entity; | ||||
| import javax.ws.rs.client.WebTarget; | ||||
| import javax.ws.rs.core.Response; | ||||
|  | ||||
| import envoy.client.Client; | ||||
| import envoy.client.Config; | ||||
|  | ||||
| /** | ||||
|  * Starts Envoy and sets a user. | ||||
|  * Starts the Envoy client and prompts the user to enter their name. | ||||
|  *  | ||||
|  * Project: <strong>envoy-client</strong><br> | ||||
|  * File: <strong>Startup.java</strong><br> | ||||
| @@ -24,9 +21,7 @@ import envoy.client.Config; | ||||
|  * @since Envoy 0.1 | ||||
|  */ | ||||
| public class Startup { | ||||
| 	 | ||||
| 	private static String userName; | ||||
| 	 | ||||
|  | ||||
| 	public static void main(String[] args) { | ||||
| 		Config config = new Config(); | ||||
| 		if (args.length > 0) { | ||||
| @@ -42,15 +37,18 @@ public class Startup { | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		if(!config.isInitialized()) { | ||||
| 		if (!config.isInitialized()) { | ||||
| 			System.err.println("Server or port are not defined. Exiting..."); | ||||
| 			System.exit(1); | ||||
| 		} | ||||
|  | ||||
| 		userName = JOptionPane.showInputDialog("Please enter your username"); | ||||
| 		 | ||||
| 		String userName = JOptionPane.showInputDialog("Please enter your username"); | ||||
| 		if (userName == null || userName.isEmpty()) { | ||||
| 			System.err.println("User name is not set or empty. Exiting..."); | ||||
| 			System.exit(1); | ||||
| 		} | ||||
| 		Client client = new Client(config, userName); | ||||
| 		 | ||||
|  | ||||
| 		EventQueue.invokeLater(() -> { | ||||
| 			try { | ||||
| 				ChatWindow frame = new ChatWindow(client); | ||||
| @@ -60,4 +58,4 @@ public class Startup { | ||||
| 			} | ||||
| 		}); | ||||
| 	} | ||||
| } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user