@@ -1,18 +1,19 @@
 | 
			
		||||
package envoy.client.ui.control;
 | 
			
		||||
 | 
			
		||||
import java.util.function.Consumer;
 | 
			
		||||
 | 
			
		||||
import javafx.geometry.*;
 | 
			
		||||
import javafx.scene.control.*;
 | 
			
		||||
import javafx.scene.image.ImageView;
 | 
			
		||||
import javafx.scene.layout.*;
 | 
			
		||||
import javafx.scene.shape.Rectangle;
 | 
			
		||||
 | 
			
		||||
import envoy.client.ui.controller.GroupCreationTab;
 | 
			
		||||
import envoy.client.util.IconUtil;
 | 
			
		||||
import envoy.data.User;
 | 
			
		||||
import envoy.data.*;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Displays an {@link User} as a quickSelectControl which is used in the
 | 
			
		||||
 * quickSelectList.
 | 
			
		||||
 * Displays an {@link User} as a quick select control which is used in the
 | 
			
		||||
 * quick select list.
 | 
			
		||||
 * 
 | 
			
		||||
 * @author Maximilian Käfer
 | 
			
		||||
 * @since Envoy Client v0.3-beta
 | 
			
		||||
@@ -24,11 +25,11 @@ public class QuickSelectControl extends VBox {
 | 
			
		||||
	/**
 | 
			
		||||
	 * Creates an instance of the {@code QuickSelectControl}.
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param user the user whose data is used to create this instance.
 | 
			
		||||
	 * @param tab  the parent tab ({@link GroupCreationTab}).
 | 
			
		||||
	 * @param user the contact whose data is used to create this instance.
 | 
			
		||||
	 * @param action the action to perform when a contact is removed with this control as a parameter
 | 
			
		||||
	 * @since Envoy Client v0.3-beta
 | 
			
		||||
	 */
 | 
			
		||||
	public QuickSelectControl(User user, GroupCreationTab tab) {
 | 
			
		||||
	public QuickSelectControl(User user, Consumer<QuickSelectControl> action) {
 | 
			
		||||
		this.user = user;
 | 
			
		||||
		setPadding(new Insets(1, 0, 0, 0));
 | 
			
		||||
		setPrefWidth(37);
 | 
			
		||||
@@ -65,13 +66,12 @@ public class QuickSelectControl extends VBox {
 | 
			
		||||
		removeBtn.setPrefSize(12, 12);
 | 
			
		||||
		removeBtn.setMaxSize(12, 12);
 | 
			
		||||
		removeBtn.setMinSize(12, 12);
 | 
			
		||||
		removeBtn.setOnMouseClicked(evt -> tab.removeFromQuickSelection(this));
 | 
			
		||||
		removeBtn.setOnMouseClicked(evt -> action.accept(this));
 | 
			
		||||
		removeBtn.setId("remove-button");
 | 
			
		||||
		hBox.getChildren().add(removeBtn);
 | 
			
		||||
		stackPane.getChildren().add(hBox);
 | 
			
		||||
		getChildren().add(stackPane);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		var nameLabel = new Label();
 | 
			
		||||
		nameLabel.setPrefSize(35, 20);
 | 
			
		||||
		nameLabel.setMaxSize(35, 20);
 | 
			
		||||
 
 | 
			
		||||
@@ -71,7 +71,6 @@ public class GroupCreationTab implements EventListener {
 | 
			
		||||
	@FXML
 | 
			
		||||
	private void initialize() {
 | 
			
		||||
		userList.setCellFactory(new ListCellFactory<>(ContactControl::new));
 | 
			
		||||
		userList.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
 | 
			
		||||
		createButton.setDisable(true);
 | 
			
		||||
		eventBus.registerListener(this);
 | 
			
		||||
		userList.getItems()
 | 
			
		||||
@@ -94,7 +93,7 @@ public class GroupCreationTab implements EventListener {
 | 
			
		||||
	@FXML
 | 
			
		||||
	private void userListClicked() {
 | 
			
		||||
		if (userList.getSelectionModel().getSelectedItem() != null) {
 | 
			
		||||
			quickSelectList.getItems().add(new QuickSelectControl(userList.getSelectionModel().getSelectedItem(), this));
 | 
			
		||||
			quickSelectList.getItems().add(new QuickSelectControl(userList.getSelectionModel().getSelectedItem(), this::removeFromQuickSelection));
 | 
			
		||||
			createButton.setDisable(quickSelectList.getItems().isEmpty() || groupNameField.getText().isBlank());
 | 
			
		||||
			resizeQuickSelectSpace(60);
 | 
			
		||||
			userList.getItems().remove(userList.getSelectionModel().getSelectedItem());
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user