Quick Select Support for the GroupCreationTab #77

Merged
mpk merged 9 commits from f/quick-group-select into develop 2020-10-04 21:28:57 +02:00
2 changed files with 17 additions and 13 deletions
Showing only changes of commit 51b189e8f5 - Show all commits

View File

@ -11,17 +11,18 @@ import envoy.client.util.IconUtil;
import envoy.data.User;
/**
* Displays a user as a quickSelectControl which is used in the quickSelectList.
* Displays an {@link User} as a quickSelectControl which is used in the
* quickSelectList.
*
* @author Maximilian Käfer
* @since Envoy Client v0.3-beta
*/
public class QuickSelectControl extends VBox {
User user;
private User user;
/**
* Creates an instance of the {@link QuickSelectControl}.
* 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}).
@ -49,7 +50,6 @@ public class QuickSelectControl extends VBox {
clip.setArcHeight(32);
clip.setArcWidth(32);
contactProfilePic.setClip(clip);
mpk marked this conversation as resolved
Review

This is, as far as I can see, unnecessary.
Have tested it, it is.

This is, as far as I can see, unnecessary. Have tested it, it is.
setAlignment(Pos.TOP_CENTER);
picHold.getChildren().add(contactProfilePic);
stackPane.getChildren().add(picHold);
@ -59,7 +59,7 @@ public class QuickSelectControl extends VBox {
hBox.setMinHeight(12);
var region = new Region();
hBox.getChildren().add(region);
hBox.setHgrow(region, Priority.ALWAYS);
HBox.setHgrow(region, Priority.ALWAYS);
var removeBtn = new Button();
removeBtn.setPrefSize(12, 12);
@ -85,7 +85,7 @@ public class QuickSelectControl extends VBox {
}
/**
* @return the user whose data is used in this instance.
* @return the user whose data is used in this instance
* @since Envoy Client v0.3-beta
*/
public User getUser() { return user; }

View File

@ -7,6 +7,7 @@ import java.util.stream.Collectors;
import javafx.application.Platform;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.HBox;
import envoy.client.data.*;
@ -82,6 +83,7 @@ public class GroupCreationTab implements EventListener {
.map(User.class::cast)
.collect(Collectors.toList()));
resizeQuickSelectSpace(0);
quickSelectList.addEventFilter(MouseEvent.MOUSE_PRESSED, evt -> evt.consume());
}
/**
@ -91,12 +93,14 @@ public class GroupCreationTab implements EventListener {
*/
@FXML
private void userListClicked() {
createButton.setDisable(userList.getSelectionModel().isEmpty() || groupNameField.getText().isBlank());
if (userList.getSelectionModel().getSelectedItem() != null) {
quickSelectList.getItems().add(new QuickSelectControl(userList.getSelectionModel().getSelectedItem(), this));
createButton.setDisable(quickSelectList.getItems().isEmpty() || groupNameField.getText().isBlank());
resizeQuickSelectSpace(60);
userList.getItems().remove(userList.getSelectionModel().getSelectedItem());
userList.getSelectionModel().clearSelection();
}
}
/**
* Checks, whether the {@code createButton} can be enabled because text is
@ -105,7 +109,7 @@ public class GroupCreationTab implements EventListener {
* @since Envoy Client v0.1-beta
*/
@FXML
private void textUpdated() { createButton.setDisable(quickSelectList.getItems().size() == 0 || groupNameField.getText().isBlank()); }
private void textUpdated() { createButton.setDisable(quickSelectList.getItems().isEmpty() || groupNameField.getText().isBlank()); }
/**
* Sends a {@link GroupCreation} to the server and closes this scene.
@ -173,7 +177,7 @@ public class GroupCreationTab implements EventListener {
public void removeFromQuickSelection(QuickSelectControl element) {
quickSelectList.getItems().remove(element);
userList.getItems().add(element.getUser());
if (quickSelectList.getItems().size() == 0) {
if (quickSelectList.getItems().isEmpty()) {
resizeQuickSelectSpace(0);
createButton.setDisable(true);
}