Adjusted to event system refactoring
This commit is contained in:
		@@ -1,41 +0,0 @@
 | 
			
		||||
package envoy.client.event;
 | 
			
		||||
 | 
			
		||||
import envoy.data.User;
 | 
			
		||||
import envoy.event.ContactOperationEvent.Operation;
 | 
			
		||||
import envoy.event.Event;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Project: <strong>envoy-client</strong><br>
 | 
			
		||||
 * File: <strong>AddContactEvent.java</strong><br>
 | 
			
		||||
 * Created: <strong>09.02.2020</strong><br>
 | 
			
		||||
 *
 | 
			
		||||
 * @author Maximilian Käfer
 | 
			
		||||
 * @since Envoy v0.3-alpha
 | 
			
		||||
 */
 | 
			
		||||
public class AddContactEvent implements Event<User> {
 | 
			
		||||
 | 
			
		||||
	private User		contact;
 | 
			
		||||
	private Operation	operation;
 | 
			
		||||
 | 
			
		||||
	private static final long serialVersionUID = 7855669140917046709L;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Initializes a {@link AddContactEvent}.
 | 
			
		||||
	 *
 | 
			
		||||
	 * @param contact   the user to be added to the contacts
 | 
			
		||||
	 * @param operation the operation, which should be executed
 | 
			
		||||
	 * @since Envoy v0.3-alpha
 | 
			
		||||
	 */
 | 
			
		||||
	public AddContactEvent(User contact, Operation operation) {
 | 
			
		||||
		this.contact	= contact;
 | 
			
		||||
		this.operation	= operation;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public User get() { return contact; }
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * @return the operation, which should be executed
 | 
			
		||||
	 */
 | 
			
		||||
	public Operation getOperation() { return operation; }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
package envoy.client.event;
 | 
			
		||||
 | 
			
		||||
import envoy.data.Message;
 | 
			
		||||
import envoy.event.Event;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Project: <strong>envoy-client</strong><br>
 | 
			
		||||
@@ -10,7 +11,7 @@ import envoy.data.Message;
 | 
			
		||||
 * @author Kai S. K. Engelbart
 | 
			
		||||
 * @since Envoy v0.2-alpha
 | 
			
		||||
 */
 | 
			
		||||
public class MessageCreationEvent extends MessageEvent {
 | 
			
		||||
public class MessageCreationEvent extends Event<Message> {
 | 
			
		||||
 | 
			
		||||
	private static final long serialVersionUID = -6451021678064566774L;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,34 +0,0 @@
 | 
			
		||||
package envoy.client.event;
 | 
			
		||||
 | 
			
		||||
import envoy.data.Message;
 | 
			
		||||
import envoy.event.Event;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Project: <strong>envoy-client</strong><br>
 | 
			
		||||
 * File: <strong>MessageCreationEvent.java</strong><br>
 | 
			
		||||
 * Created: <strong>4 Dec 2019</strong><br>
 | 
			
		||||
 *
 | 
			
		||||
 * @author Kai S. K. Engelbart
 | 
			
		||||
 * @since Envoy v0.2-alpha
 | 
			
		||||
 */
 | 
			
		||||
public class MessageEvent implements Event<Message> {
 | 
			
		||||
 | 
			
		||||
	private static final long serialVersionUID = 7658989461923112804L;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * the {@link Message} attached to this {@link MessageEvent}.
 | 
			
		||||
	 */
 | 
			
		||||
	protected final Message message;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Initializes a {@link MessageEvent} conveying information about a
 | 
			
		||||
	 * {@link Message} object.
 | 
			
		||||
	 *
 | 
			
		||||
	 * @param message the {@link Message} object to attach to this event
 | 
			
		||||
	 * @since Envoy v0.2-alpha
 | 
			
		||||
	 */
 | 
			
		||||
	public MessageEvent(Message message) { this.message = message; }
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public Message get() { return message; }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
package envoy.client.event;
 | 
			
		||||
 | 
			
		||||
import envoy.data.Message;
 | 
			
		||||
import envoy.event.Event;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Project: <strong>envoy-client</strong><br>
 | 
			
		||||
@@ -10,7 +11,7 @@ import envoy.data.Message;
 | 
			
		||||
 * @author Kai S. K. Engelbart
 | 
			
		||||
 * @since Envoy v0.2-alpha
 | 
			
		||||
 */
 | 
			
		||||
public class MessageModificationEvent extends MessageEvent {
 | 
			
		||||
public class MessageModificationEvent extends Event<Message> {
 | 
			
		||||
 | 
			
		||||
	private static final long serialVersionUID = 4650039506439563116L;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,32 +0,0 @@
 | 
			
		||||
package envoy.client.event;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import envoy.data.User;
 | 
			
		||||
import envoy.event.Event;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Project: <strong>envoy-client</strong><br>
 | 
			
		||||
 * File: <strong>SearchResultEvent.java</strong><br>
 | 
			
		||||
 * Created: <strong>08.02.2020</strong><br>
 | 
			
		||||
 * 
 | 
			
		||||
 * @author Maximilian Käfer
 | 
			
		||||
 * @since Envoy v0.3-alpha
 | 
			
		||||
 */
 | 
			
		||||
public class SearchResultEvent implements Event<List<User>> {
 | 
			
		||||
 | 
			
		||||
	private final List<User> resultList;
 | 
			
		||||
 | 
			
		||||
	private static final long serialVersionUID = 2540321329192201277L;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Initializes a {@link SearchResultEvent}
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param resultList the List containing the contacts sent from the server
 | 
			
		||||
	 * @since Envoy v0.3-alpha
 | 
			
		||||
	 */
 | 
			
		||||
	public SearchResultEvent(List<User> resultList) { this.resultList = resultList; }
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public List<User> get() { return resultList; }
 | 
			
		||||
}
 | 
			
		||||
@@ -11,10 +11,9 @@ import envoy.event.Event;
 | 
			
		||||
 * @author Kai S. K. Engelbart
 | 
			
		||||
 * @since Envoy v0.2-alpha
 | 
			
		||||
 */
 | 
			
		||||
public class ThemeChangeEvent implements Event<Theme> {
 | 
			
		||||
public class ThemeChangeEvent extends Event<Theme> {
 | 
			
		||||
 | 
			
		||||
	private static final long	serialVersionUID	= 6756772448803774547L;
 | 
			
		||||
	private final Theme			theme;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Initializes a {@link ThemeChangeEvent} conveying information about the change
 | 
			
		||||
@@ -23,8 +22,5 @@ public class ThemeChangeEvent implements Event<Theme> {
 | 
			
		||||
	 * @param theme the new currently used {@link Theme} object
 | 
			
		||||
	 * @since Envoy v0.2-alpha
 | 
			
		||||
	 */
 | 
			
		||||
	public ThemeChangeEvent(Theme theme) { this.theme = theme; }
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public Theme get() { return theme; }
 | 
			
		||||
	public ThemeChangeEvent(Theme theme) { super(theme); }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,6 @@ import javax.naming.TimeLimitExceededException;
 | 
			
		||||
import envoy.client.data.Cache;
 | 
			
		||||
import envoy.client.data.Config;
 | 
			
		||||
import envoy.client.data.LocalDb;
 | 
			
		||||
import envoy.client.event.SearchResultEvent;
 | 
			
		||||
import envoy.client.util.EnvoyLog;
 | 
			
		||||
import envoy.data.*;
 | 
			
		||||
import envoy.event.*;
 | 
			
		||||
@@ -115,7 +114,7 @@ public class Client implements Closeable {
 | 
			
		||||
		receiver.registerProcessor(IdGenerator.class, localDb::setIdGenerator);
 | 
			
		||||
 | 
			
		||||
		// Process contact searches
 | 
			
		||||
		receiver.registerProcessor(Contacts.class, contacts -> EventBus.getInstance().dispatch(new SearchResultEvent(contacts.getContacts())));
 | 
			
		||||
		receiver.registerProcessor(ContactSearchResult.class, EventBus.getInstance()::dispatch);
 | 
			
		||||
 | 
			
		||||
		// Request a generator if none is present or the existing one is consumed
 | 
			
		||||
		if (!localDb.hasIdGenerator() || !localDb.getIdGenerator().hasNext()) requestIdGenerator();
 | 
			
		||||
 
 | 
			
		||||
@@ -35,7 +35,6 @@ public class Receiver implements Runnable {
 | 
			
		||||
	 */
 | 
			
		||||
	public Receiver(InputStream in) { this.in = in; }
 | 
			
		||||
 | 
			
		||||
	@SuppressWarnings("unchecked")
 | 
			
		||||
	@Override
 | 
			
		||||
	public void run() {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,7 @@ import java.awt.*;
 | 
			
		||||
import java.awt.event.KeyAdapter;
 | 
			
		||||
import java.awt.event.KeyEvent;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.logging.Level;
 | 
			
		||||
import java.util.logging.Logger;
 | 
			
		||||
 | 
			
		||||
@@ -15,7 +16,8 @@ import javax.swing.event.DocumentListener;
 | 
			
		||||
import envoy.client.Settings;
 | 
			
		||||
import envoy.client.data.Chat;
 | 
			
		||||
import envoy.client.data.LocalDb;
 | 
			
		||||
import envoy.client.event.*;
 | 
			
		||||
import envoy.client.event.MessageCreationEvent;
 | 
			
		||||
import envoy.client.event.ThemeChangeEvent;
 | 
			
		||||
import envoy.client.net.Client;
 | 
			
		||||
import envoy.client.net.WriteProxy;
 | 
			
		||||
import envoy.client.ui.list.ComponentList;
 | 
			
		||||
@@ -27,7 +29,6 @@ import envoy.data.Message.MessageStatus;
 | 
			
		||||
import envoy.data.MessageBuilder;
 | 
			
		||||
import envoy.data.User;
 | 
			
		||||
import envoy.event.*;
 | 
			
		||||
import envoy.event.ContactOperationEvent.Operation;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Project: <strong>envoy-client</strong><br>
 | 
			
		||||
@@ -189,7 +190,6 @@ public class ChatWindow extends JFrame {
 | 
			
		||||
		userList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
 | 
			
		||||
		userList.addListSelectionListener((listSelectionEvent) -> {
 | 
			
		||||
			if (client != null && localDb != null && !listSelectionEvent.getValueIsAdjusting()) {
 | 
			
		||||
				@SuppressWarnings("unchecked")
 | 
			
		||||
				final JList<User>	selectedUserList	= (JList<User>) listSelectionEvent.getSource();
 | 
			
		||||
				final User			user				= selectedUserList.getSelectedValue();
 | 
			
		||||
 | 
			
		||||
@@ -400,24 +400,25 @@ public class ChatWindow extends JFrame {
 | 
			
		||||
			repaint();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		EventBus.getInstance().register(SearchResultEvent.class, (evt) -> {
 | 
			
		||||
		EventBus.getInstance().register(ContactSearchResult.class, (evt) -> {
 | 
			
		||||
			contactsModel.clear();
 | 
			
		||||
			final java.util.List<User> contacts = ((SearchResultEvent) evt).get();
 | 
			
		||||
			final java.util.List<User> contacts = (List<User>) evt.get();
 | 
			
		||||
			logger.info("Received contact search result " + contacts);
 | 
			
		||||
			contacts.forEach(contactsModel::add);
 | 
			
		||||
			revalidate();
 | 
			
		||||
			repaint();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		EventBus.getInstance().register(AddContactEvent.class, (evt) -> {
 | 
			
		||||
			User		contact		= ((AddContactEvent) evt).get();
 | 
			
		||||
			Operation	operation	= ((AddContactEvent) evt).getOperation();
 | 
			
		||||
		EventBus.getInstance().register(ContactOperationEvent.class, (evt) -> {
 | 
			
		||||
 | 
			
		||||
			try {
 | 
			
		||||
				client.sendEvent(new ContactOperationEvent(contact, operation));
 | 
			
		||||
				client.sendEvent(evt);
 | 
			
		||||
			} catch (IOException e) {
 | 
			
		||||
				e.printStackTrace();
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			User contact = (User) evt.get();
 | 
			
		||||
 | 
			
		||||
			// Clearing the search field and the searchResultList
 | 
			
		||||
			searchField.setText("");
 | 
			
		||||
			contactsModel.clear();
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,6 @@ import java.awt.Font;
 | 
			
		||||
import javax.swing.*;
 | 
			
		||||
 | 
			
		||||
import envoy.client.Settings;
 | 
			
		||||
import envoy.client.event.AddContactEvent;
 | 
			
		||||
import envoy.client.ui.list.ComponentList;
 | 
			
		||||
import envoy.client.ui.list.ComponentListCellRenderer;
 | 
			
		||||
import envoy.data.User;
 | 
			
		||||
@@ -62,7 +61,7 @@ public class ContactsSearchRenderer implements ComponentListCellRenderer<User> {
 | 
			
		||||
		add.setBackground(list.getBackground());
 | 
			
		||||
		add.setForeground(list.getForeground());
 | 
			
		||||
 | 
			
		||||
		add.addActionListener((evt) -> { EventBus.getInstance().dispatch(new AddContactEvent(value, ContactOperationEvent.Operation.ADD)); });
 | 
			
		||||
		add.addActionListener((evt) -> { EventBus.getInstance().dispatch(new ContactOperationEvent(value, ContactOperationEvent.Operation.ADD)); });
 | 
			
		||||
 | 
			
		||||
		panel.add(add);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user