Worked on displaying the quickSelect correctly
This commit is contained in:
parent
8543e94040
commit
434d577c15
@ -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