Implemented change requests by @delvh and @kske

This commit is contained in:
Maximilian P. Käfer 2020-10-04 17:11:45 +02:00
parent 51b189e8f5
commit 994cbbcd72
2 changed files with 10 additions and 11 deletions

View File

@ -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);

View File

@ -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());