Added Startup class and login by username.
This commit is contained in:
		| @@ -17,6 +17,7 @@ import envoy.schema.Message; | ||||
| import envoy.schema.Message.MetaData.MessageState; | ||||
| import envoy.schema.Messages; | ||||
| import envoy.schema.ObjectFactory; | ||||
| import envoy.schema.User; | ||||
| import envoy.schema.Users; | ||||
|  | ||||
| /** | ||||
| @@ -26,6 +27,7 @@ import envoy.schema.Users; | ||||
|  *  | ||||
|  * @author Kai S. K. Engelbart | ||||
|  * @author Maximilian Käfer | ||||
|  * @author Leon Hofmeister | ||||
|  * @since Envoy 0.1 | ||||
|  */ | ||||
|  | ||||
| @@ -34,14 +36,17 @@ public class Client { | ||||
| 	private ObjectFactory	objectFactory	= new ObjectFactory(); | ||||
| 	private DatatypeFactory	datatypeFactory; | ||||
| 	private Config			config; | ||||
| 	private User user; | ||||
|  | ||||
| 	public Client(Config config) { | ||||
| 	public Client(Config config, String username) { | ||||
| 		this.config = config; | ||||
| 		try { | ||||
| 			datatypeFactory = DatatypeFactory.newInstance(); | ||||
| 		} catch (DatatypeConfigurationException e) { | ||||
| 			e.printStackTrace(); | ||||
| 		} | ||||
| 		user = getUser(username); | ||||
| 		System.out.printf("Mein Name ist %s und ich habe die ID %d%n", user.getName(), user.getID()); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| @@ -124,4 +129,23 @@ public class Client { | ||||
| 		client.close(); | ||||
| 		return users; | ||||
| 	} | ||||
| 	 | ||||
| 	/** | ||||
| 	 * Returns the user by name. | ||||
| 	 *  | ||||
| 	 * @param name - the name of the user | ||||
| 	 * @return an user object | ||||
| 	 * @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())); | ||||
| 		Response					response	= target.request("application/xml").get(); | ||||
| 		Users						users		= response.readEntity(Users.class); | ||||
| 		System.out.println("Response code: " + response.getStatus()); | ||||
| 		response.close(); | ||||
| 		client.close(); | ||||
| 		return users.getUser().get(0); | ||||
| 	} | ||||
| } | ||||
| @@ -35,6 +35,7 @@ import envoy.schema.Users; | ||||
|  *  | ||||
|  * @author Kai S. K. Engelbart | ||||
|  * @author Maximilian Käfer | ||||
|  * @author Leon Hofmeister | ||||
|  * @since Envoy 0.1 | ||||
|  */ | ||||
| public class ChatWindow extends JFrame { | ||||
| @@ -44,11 +45,13 @@ public class ChatWindow extends JFrame { | ||||
| 	private long	recipientID	= 0; | ||||
| 	private JPanel	contentPane	= new JPanel(); | ||||
|  | ||||
| 	private static Client client; | ||||
| 	private Client client; | ||||
|  | ||||
| 	private DefaultListModel<String> messageListModel = new DefaultListModel<>(); | ||||
|  | ||||
| 	public ChatWindow() { | ||||
| 	public ChatWindow(Client client) { | ||||
| 		this.client = client; | ||||
| 		 | ||||
| 		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | ||||
| 		setBounds(100, 100, 600, 800); | ||||
| 		setTitle("Envoy"); | ||||
| @@ -212,35 +215,4 @@ public class ChatWindow extends JFrame { | ||||
| 				+ getFirstTextContent(message) + "</span></html>"); | ||||
| 	} | ||||
|  | ||||
| 	public static void main(String[] args) { | ||||
| 		Config config = new Config(); | ||||
| 		if (args.length > 0) { | ||||
| 			config.load(args); | ||||
| 		} else { | ||||
| 			ClassLoader loader = Thread.currentThread().getContextClassLoader(); | ||||
| 			try { | ||||
| 				Properties configProperties = new Properties(); | ||||
| 				configProperties.load(loader.getResourceAsStream("server.properties")); | ||||
| 				config.load(configProperties); | ||||
| 			} catch (IOException e) { | ||||
| 				e.printStackTrace(); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		if(!config.isInitialized()) { | ||||
| 			System.err.println("Server or port are not defined. Exiting..."); | ||||
| 			System.exit(1); | ||||
| 		} | ||||
| 		 | ||||
| 		client = new Client(config); | ||||
|  | ||||
| 		EventQueue.invokeLater(() -> { | ||||
| 			try { | ||||
| 				ChatWindow frame = new ChatWindow(); | ||||
| 				frame.setVisible(true); | ||||
| 			} catch (Exception e) { | ||||
| 				e.printStackTrace(); | ||||
| 			} | ||||
| 		}); | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										63
									
								
								src/main/java/envoy/client/ui/Startup.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								src/main/java/envoy/client/ui/Startup.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,63 @@ | ||||
| package envoy.client.ui; | ||||
|  | ||||
| import java.awt.EventQueue; | ||||
| 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. | ||||
|  *  | ||||
|  * Project: <strong>envoy-client</strong><br> | ||||
|  * File: <strong>Startup.java</strong><br> | ||||
|  * Created: <strong>12 Oct 2019</strong><br> | ||||
|  *  | ||||
|  * @author Leon Hofmeister | ||||
|  * @author Maximilian Käfer | ||||
|  * @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) { | ||||
| 			config.load(args); | ||||
| 		} else { | ||||
| 			ClassLoader loader = Thread.currentThread().getContextClassLoader(); | ||||
| 			try { | ||||
| 				Properties configProperties = new Properties(); | ||||
| 				configProperties.load(loader.getResourceAsStream("server.properties")); | ||||
| 				config.load(configProperties); | ||||
| 			} catch (IOException e) { | ||||
| 				e.printStackTrace(); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		if(!config.isInitialized()) { | ||||
| 			System.err.println("Server or port are not defined. Exiting..."); | ||||
| 			System.exit(1); | ||||
| 		} | ||||
|  | ||||
| 		userName = JOptionPane.showInputDialog("Please enter your username"); | ||||
| 		 | ||||
| 		Client client = new Client(config, userName); | ||||
| 		 | ||||
| 		EventQueue.invokeLater(() -> { | ||||
| 			try { | ||||
| 				ChatWindow frame = new ChatWindow(client); | ||||
| 				frame.setVisible(true); | ||||
| 			} catch (Exception e) { | ||||
| 				e.printStackTrace(); | ||||
| 			} | ||||
| 		}); | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 delvh
					delvh