Worked on displaying the quickSelect correctly
This commit is contained in:
		@@ -1,9 +1,9 @@
 | 
				
			|||||||
package envoy.client.ui.control;
 | 
					package envoy.client.ui.control;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import javafx.geometry.Pos;
 | 
					import javafx.geometry.*;
 | 
				
			||||||
import javafx.scene.control.*;
 | 
					import javafx.scene.control.*;
 | 
				
			||||||
import javafx.scene.image.ImageView;
 | 
					import javafx.scene.image.ImageView;
 | 
				
			||||||
import javafx.scene.layout.VBox;
 | 
					import javafx.scene.layout.*;
 | 
				
			||||||
import javafx.scene.shape.Rectangle;
 | 
					import javafx.scene.shape.Rectangle;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import envoy.client.ui.controller.GroupCreationTab;
 | 
					import envoy.client.ui.controller.GroupCreationTab;
 | 
				
			||||||
@@ -17,19 +17,19 @@ import envoy.data.User;
 | 
				
			|||||||
public class QuickSelectControl extends VBox {
 | 
					public class QuickSelectControl extends VBox {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public QuickSelectControl(User user, GroupCreationTab tab) {
 | 
						public QuickSelectControl(User user, GroupCreationTab tab) {
 | 
				
			||||||
		Button removeBtn = new Button();
 | 
							setPrefWidth(37);
 | 
				
			||||||
		removeBtn.setPrefSize(10, 10);
 | 
							setMaxWidth(37);
 | 
				
			||||||
		removeBtn.setMaxSize(10, 10);
 | 
							setMinWidth(37);
 | 
				
			||||||
		removeBtn.setMinSize(10, 10);
 | 
							var stackPane = new StackPane();
 | 
				
			||||||
		removeBtn.setAlignment(Pos.TOP_RIGHT);
 | 
							stackPane.setAlignment(Pos.TOP_CENTER);
 | 
				
			||||||
		removeBtn.setOnMouseClicked(evt -> {
 | 
					 | 
				
			||||||
			tab.removeFromQuickSelection(this);
 | 
					 | 
				
			||||||
		});
 | 
					 | 
				
			||||||
		removeBtn.setId("remove-button");
 | 
					 | 
				
			||||||
		getChildren().add(removeBtn);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// Profile picture
 | 
							// Profile picture
 | 
				
			||||||
		ImageView	contactProfilePic	= new ImageView(IconUtil.loadIconThemeSensitive("user_icon", 32));
 | 
							var picHold = new VBox();
 | 
				
			||||||
 | 
							picHold.setPadding(new Insets(2, 0, 0, 0));
 | 
				
			||||||
 | 
							picHold.setPrefHeight(35);
 | 
				
			||||||
 | 
							picHold.setMaxHeight(35);
 | 
				
			||||||
 | 
							picHold.setMinHeight(35);
 | 
				
			||||||
 | 
							var			contactProfilePic	= new ImageView(IconUtil.loadIconThemeSensitive("user_icon", 32));
 | 
				
			||||||
		final var	clip				= new Rectangle();
 | 
							final var	clip				= new Rectangle();
 | 
				
			||||||
		clip.setWidth(32);
 | 
							clip.setWidth(32);
 | 
				
			||||||
		clip.setHeight(32);
 | 
							clip.setHeight(32);
 | 
				
			||||||
@@ -37,14 +37,35 @@ public class QuickSelectControl extends VBox {
 | 
				
			|||||||
		clip.setArcWidth(32);
 | 
							clip.setArcWidth(32);
 | 
				
			||||||
		contactProfilePic.setClip(clip);
 | 
							contactProfilePic.setClip(clip);
 | 
				
			||||||
		setAlignment(Pos.TOP_CENTER);
 | 
							setAlignment(Pos.TOP_CENTER);
 | 
				
			||||||
		getChildren().add(contactProfilePic);
 | 
							picHold.getChildren().add(contactProfilePic);
 | 
				
			||||||
 | 
							stackPane.getChildren().add(picHold);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Label nameLabel = new Label();
 | 
							var hBox = new HBox();
 | 
				
			||||||
 | 
							hBox.setPrefHeight(12);
 | 
				
			||||||
 | 
							hBox.setMaxHeight(12);
 | 
				
			||||||
 | 
							hBox.setMinHeight(12);
 | 
				
			||||||
 | 
							var region = new Region();
 | 
				
			||||||
 | 
							hBox.getChildren().add(region);
 | 
				
			||||||
 | 
							hBox.setHgrow(region, Priority.ALWAYS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							var removeBtn = new Button();
 | 
				
			||||||
 | 
							removeBtn.setPrefSize(12, 12);
 | 
				
			||||||
 | 
							removeBtn.setMaxSize(12, 12);
 | 
				
			||||||
 | 
							removeBtn.setMinSize(12, 12);
 | 
				
			||||||
 | 
							removeBtn.setOnMouseClicked(evt -> tab.removeFromQuickSelection(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.setPrefSize(35, 20);
 | 
				
			||||||
		nameLabel.setMaxSize(35, 20);
 | 
							nameLabel.setMaxSize(35, 20);
 | 
				
			||||||
		nameLabel.setMinSize(35, 20);
 | 
							nameLabel.setMinSize(35, 20);
 | 
				
			||||||
		nameLabel.setText(user.getName());
 | 
							nameLabel.setText(user.getName());
 | 
				
			||||||
		nameLabel.setAlignment(Pos.TOP_CENTER);
 | 
							nameLabel.setAlignment(Pos.TOP_CENTER);
 | 
				
			||||||
 | 
							nameLabel.setPadding(new Insets(0, 5, 0, 0));
 | 
				
			||||||
		getChildren().add(nameLabel);
 | 
							getChildren().add(nameLabel);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		getStyleClass().add("quick-select");
 | 
							getStyleClass().add("quick-select");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -81,6 +81,9 @@ public class GroupCreationTab implements EventListener {
 | 
				
			|||||||
				.filter(not(localDB.getUser()::equals))
 | 
									.filter(not(localDB.getUser()::equals))
 | 
				
			||||||
				.map(User.class::cast)
 | 
									.map(User.class::cast)
 | 
				
			||||||
				.collect(Collectors.toList()));
 | 
									.collect(Collectors.toList()));
 | 
				
			||||||
 | 
							quickSelectList.setPrefHeight(0);
 | 
				
			||||||
 | 
							quickSelectList.setMaxHeight(0);
 | 
				
			||||||
 | 
							quickSelectList.setMinHeight(0);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
@@ -92,6 +95,9 @@ public class GroupCreationTab implements EventListener {
 | 
				
			|||||||
	private void userListClicked() {
 | 
						private void userListClicked() {
 | 
				
			||||||
		createButton.setDisable(userList.getSelectionModel().isEmpty() || groupNameField.getText().isBlank());
 | 
							createButton.setDisable(userList.getSelectionModel().isEmpty() || groupNameField.getText().isBlank());
 | 
				
			||||||
		quickSelectList.getItems().add(new QuickSelectControl(userList.getSelectionModel().getSelectedItem(), this));
 | 
							quickSelectList.getItems().add(new QuickSelectControl(userList.getSelectionModel().getSelectedItem(), this));
 | 
				
			||||||
 | 
							quickSelectList.setPrefHeight(60);
 | 
				
			||||||
 | 
							quickSelectList.setMaxHeight(60);
 | 
				
			||||||
 | 
							quickSelectList.setMinHeight(60);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
@@ -157,7 +163,14 @@ public class GroupCreationTab implements EventListener {
 | 
				
			|||||||
		return localDB.getChats().stream().map(Chat::getRecipient).filter(Group.class::isInstance).map(Contact::getName).anyMatch(newName::equals);
 | 
							return localDB.getChats().stream().map(Chat::getRecipient).filter(Group.class::isInstance).map(Contact::getName).anyMatch(newName::equals);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void removeFromQuickSelection(QuickSelectControl element) { quickSelectList.getItems().remove(element); }
 | 
						public void removeFromQuickSelection(QuickSelectControl element) {
 | 
				
			||||||
 | 
							quickSelectList.getItems().remove(element);
 | 
				
			||||||
 | 
							if (quickSelectList.getItems().size() == 0) {
 | 
				
			||||||
 | 
								quickSelectList.setPrefHeight(0);
 | 
				
			||||||
 | 
								quickSelectList.setMaxHeight(0);
 | 
				
			||||||
 | 
								quickSelectList.setMinHeight(0);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@FXML
 | 
						@FXML
 | 
				
			||||||
	private void backButtonClicked() {
 | 
						private void backButtonClicked() {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,7 +41,7 @@
 | 
				
			|||||||
	-fx-scale-y: 1.05;
 | 
						-fx-scale-y: 1.05;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.label {
 | 
					.label, .quick-select {
 | 
				
			||||||
	-fx-background-color: transparent;
 | 
						-fx-background-color: transparent;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -144,3 +144,15 @@
 | 
				
			|||||||
    visibility: hidden ;
 | 
					    visibility: hidden ;
 | 
				
			||||||
    -fx-padding: -20.0 0.0 0.0 0.0;
 | 
					    -fx-padding: -20.0 0.0 0.0 0.0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#quick-select-list .scroll-bar:horizontal{
 | 
				
			||||||
 | 
						-fx-pref-height: 0;
 | 
				
			||||||
 | 
						-fx-max-height: 0;
 | 
				
			||||||
 | 
						-fx-min-height: 0; 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#quick-select-list .scroll-bar:vertical{
 | 
				
			||||||
 | 
						-fx-pref-width: 0;
 | 
				
			||||||
 | 
						-fx-max-width: 0;
 | 
				
			||||||
 | 
						-fx-min-width: 0; 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
	-fx-background-color: lightgray;
 | 
						-fx-background-color: lightgray;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#message-list, .text-field, .password-field, .tooltip, .pane, .pane .content, .vbox, .titled-pane > .title, .titled-pane > *.content, .context-menu, .menu-item {
 | 
					#message-list, .text-field, .password-field, .tooltip, .pane, .pane .content, .vbox, .titled-pane > .title, .titled-pane > *.content, .context-menu, .menu-item, #quick-select-list {
 | 
				
			||||||
	-fx-background-color: #222222;
 | 
						-fx-background-color: #222222;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -42,7 +42,7 @@
 | 
				
			|||||||
	-fx-background-color: #191919;
 | 
						-fx-background-color: #191919;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#chat-list, #top-bar, #search-panel, #note-background, .quick-select {
 | 
					#chat-list, #top-bar, #search-panel, #note-background {
 | 
				
			||||||
	-fx-background-color: #303030;
 | 
						-fx-background-color: #303030;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -69,7 +69,7 @@
 | 
				
			|||||||
	-fx-background-color: transparent;
 | 
						-fx-background-color: transparent;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.scroll-bar:vertical .increment-arrow, .scroll-bar:vertical .decrement-arrow, #quick-select-list, .list-cell {
 | 
					.scroll-bar:vertical .increment-arrow, .scroll-bar:vertical .decrement-arrow, .list-cell {
 | 
				
			||||||
	-fx-background-color: transparent;
 | 
						-fx-background-color: transparent;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -64,7 +64,7 @@
 | 
				
			|||||||
               <Insets bottom="5.0" top="5" />
 | 
					               <Insets bottom="5.0" top="5" />
 | 
				
			||||||
            </VBox.margin>
 | 
					            </VBox.margin>
 | 
				
			||||||
         </Label>
 | 
					         </Label>
 | 
				
			||||||
         <ListView fx:id="quickSelectList" Id="quick-select-list" orientation="HORIZONTAL" prefHeight="60.0" />
 | 
					         <ListView fx:id="quickSelectList" id="quick-select-list" orientation="HORIZONTAL" prefHeight="60.0" />
 | 
				
			||||||
         <ListView id="chat-list" fx:id="userList" focusTraversable="false" onMouseClicked="#userListClicked" prefWidth="316.0" VBox.vgrow="ALWAYS">
 | 
					         <ListView id="chat-list" fx:id="userList" focusTraversable="false" onMouseClicked="#userListClicked" prefWidth="316.0" VBox.vgrow="ALWAYS">
 | 
				
			||||||
            <contextMenu>
 | 
					            <contextMenu>
 | 
				
			||||||
               <ContextMenu anchorLocation="CONTENT_TOP_LEFT" />
 | 
					               <ContextMenu anchorLocation="CONTENT_TOP_LEFT" />
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user