diff --git a/pom.xml b/pom.xml
index 4dc7b69..9ec2759 100644
--- a/pom.xml
+++ b/pom.xml
@@ -94,12 +94,6 @@
jackson-core
2.16.1
-
-
- com.google.guava
- guava
- 30.1-jre
-
log4j
log4j
@@ -110,8 +104,6 @@
tika-core
1.27
-
-
diff --git a/src/main/java/com/zhangmeng/minio/MiniToolsApplication.java b/src/main/java/com/zhangmeng/minio/MiniToolsApplication.java
index 0a9da57..6a3755c 100644
--- a/src/main/java/com/zhangmeng/minio/MiniToolsApplication.java
+++ b/src/main/java/com/zhangmeng/minio/MiniToolsApplication.java
@@ -1,19 +1,12 @@
package com.zhangmeng.minio;
-import com.google.common.eventbus.Subscribe;
-import com.zhangmeng.minio.controller.MinioController;
-import com.zhangmeng.minio.message.Message;
-import com.zhangmeng.minio.utils.ConfigUtils;
-import com.zhangmeng.minio.utils.EventBusUtils;
import com.zhangmeng.minio.utils.MinioUtils;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
-import lombok.extern.log4j.Log4j;
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggerFactory;
+
/**
* @author zhangmeng
@@ -24,41 +17,10 @@ public class MiniToolsApplication extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
-
MinioUtils.objectMap.put(MinioUtils.primaryStage,primaryStage);
-
Parent root = FXMLLoader.load(this.getClass().getResource("/fxml/main.fxml"));
primaryStage.setScene(new Scene(root));
primaryStage.setTitle("javafx minio 工具");
primaryStage.show();
}
-
- @Override
- public void init() throws Exception {
- EventBusUtils.getDefault().register(this);
- }
-
- @Override
- public void stop() throws Exception {
- EventBusUtils.getDefault().unregister(this);
- MinioController minioController = (MinioController) MinioUtils.objectMap.get(MinioUtils.minioController);
- if (minioController != null){
- EventBusUtils.getDefault().unregister(minioController);
- System.out.println("EventBusUtils.getDefault().unregister(minioController)");
- }
- System.out.println("EventBusUtils.getDefault().unregister(MiniToolsApplication) ");
- }
-
- public static void main(String[] args) {
- launch(args);
- }
-
- @Subscribe
- public void handlerMessage(Message message){
- System.out.println(message.getMsg());
- MinioController minioController = (MinioController) MinioUtils.objectMap.get(MinioUtils.minioController);
- minioController.reload();
-
- ConfigUtils.getDefaultConfig();
- }
}
diff --git a/src/main/java/com/zhangmeng/minio/Start.java b/src/main/java/com/zhangmeng/minio/Start.java
new file mode 100644
index 0000000..7f4cee7
--- /dev/null
+++ b/src/main/java/com/zhangmeng/minio/Start.java
@@ -0,0 +1,15 @@
+package com.zhangmeng.minio;
+
+import javafx.application.Application;
+
+/**
+ * @author zhangmeng
+ * @version 1.0
+ * @date 2024-03-10 15:56
+ */
+public class Start {
+ public static void main(String[] args) {
+ Application.launch(MiniToolsApplication.class,args);
+ }
+
+}
diff --git a/src/main/java/com/zhangmeng/minio/controller/BucketChooseController.java b/src/main/java/com/zhangmeng/minio/controller/BucketChooseController.java
index 6fc4a0c..47cb735 100644
--- a/src/main/java/com/zhangmeng/minio/controller/BucketChooseController.java
+++ b/src/main/java/com/zhangmeng/minio/controller/BucketChooseController.java
@@ -1,20 +1,15 @@
package com.zhangmeng.minio.controller;
-import com.zhangmeng.minio.message.Message;
+
import com.zhangmeng.minio.utils.AlertUtils;
-import com.zhangmeng.minio.utils.EventBusUtils;
import com.zhangmeng.minio.utils.MinioUtils;
-import io.minio.MinioClient;
import io.minio.messages.Bucket;
-import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.ComboBox;
import javafx.stage.Stage;
-import lombok.extern.slf4j.Slf4j;
import java.util.List;
@@ -53,7 +48,5 @@ public class BucketChooseController {
MinioUtils.objectMap.put(MinioUtils.current_bucket,selectedItem);
Stage stage = (Stage) MinioUtils.objectMap.get(MinioUtils.bucket_choose_action_stage);
stage.close();
-
- EventBusUtils.getDefault().post(new Message("save_choose ............."));
}
}
diff --git a/src/main/java/com/zhangmeng/minio/controller/BucketFileCell.java b/src/main/java/com/zhangmeng/minio/controller/BucketFileCell.java
deleted file mode 100644
index 0335fac..0000000
--- a/src/main/java/com/zhangmeng/minio/controller/BucketFileCell.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package com.zhangmeng.minio.controller;
-
-import com.zhangmeng.minio.model.BucketFile;
-import com.zhangmeng.minio.utils.AlertUtils;
-import com.zhangmeng.minio.utils.MinioUtils;
-import javafx.collections.ObservableMap;
-import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
-import javafx.fxml.FXMLLoader;
-import javafx.geometry.Pos;
-import javafx.scene.Parent;
-import javafx.scene.Scene;
-import javafx.scene.control.*;
-import javafx.scene.layout.BorderPane;
-import javafx.scene.layout.Region;
-import javafx.scene.text.Text;
-import javafx.stage.Modality;
-import javafx.stage.Stage;
-import javafx.stage.StageStyle;
-import javafx.stage.Window;
-
-import java.io.IOException;
-
-/**
- * @author zhangmeng
- * @version 1.0
- * @date 2024-03-07 16:30
- */
-public class BucketFileCell extends ListCell {
-
- private final Label label;
- private final BorderPane pane;
-
- public BucketFileCell() {
- pane = new BorderPane();
- label = new Label();
- BorderPane.setAlignment(label, Pos.CENTER_LEFT);
- Button button = new Button();
- button.getStyleClass().add("remove-btn");
- button.setGraphic(new Region());
- button.setOnAction(event -> {
-
- try {
- FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/fxml/alert.fxml"));
- Parent root = fxmlLoader.load();
- ObservableMap namespace = fxmlLoader.getNamespace();
- Button yes = (Button) namespace.get("yes");
- Button cancel = (Button) namespace.get("cancel");
-
- Stage stage = AlertUtils.alert("文件删除",root,396,200, (Stage) MinioUtils.objectMap.get(MinioUtils.primaryStage));
-
- yes.setOnAction(new EventHandler() {
- @Override
- public void handle(ActionEvent event) {
- if (getItem() == getListView().getSelectionModel().getSelectedItem()) {
- getListView().getSelectionModel().clearSelection();
- }
- getListView().getItems().remove(getItem());
- stage.close();
- }
- });
-
- cancel.setOnAction(new EventHandler() {
- @Override
- public void handle(ActionEvent event) {
- stage.close();
- }
- });
-
-
-
- } catch (IOException e) {
- e.printStackTrace();
- }
- });
- pane.setCenter(label);
- pane.setRight(button);
- }
-
- @Override
- protected void updateItem(BucketFile item, boolean empty) {
- super.updateItem(item, empty);
- if (item == null || empty) {
- setGraphic(null);
- setText("");
- } else {
- String name = item.getFileName();
- label.setText(name.substring(0, name.length() - 4) );
- setGraphic(pane);
- }
-
- }
-}
diff --git a/src/main/java/com/zhangmeng/minio/controller/MinioController.java b/src/main/java/com/zhangmeng/minio/controller/MinioController.java
index a93ce8c..391edc7 100644
--- a/src/main/java/com/zhangmeng/minio/controller/MinioController.java
+++ b/src/main/java/com/zhangmeng/minio/controller/MinioController.java
@@ -14,6 +14,7 @@ import javafx.collections.ObservableMap;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.control.*;
+import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyCodeCombination;
import javafx.scene.input.KeyCombination;
@@ -35,9 +36,6 @@ import java.util.Properties;
*/
public class MinioController {
- @FXML
- public ListView listView;
-
@FXML
public AnchorPane center;
@@ -84,6 +82,20 @@ public class MinioController {
private final ObservableList backet_item_list = FXCollections.observableArrayList();
+ public TableView tableview;
+
+ @FXML
+ public TableColumn file_name;
+
+ @FXML
+ public TableColumn file_size;
+
+ @FXML
+ public TableColumn file_url;
+
+ @FXML
+ public TableColumn file_bucket;
+
private File upload_file;
public MinioController() {
@@ -92,8 +104,40 @@ public class MinioController {
@FXML
public void initialize() {
- listView.setItems(list);
- listView.setCellFactory(fileListView -> new BucketFileCell());
+ tableview.setItems(list);
+ file_name.setCellValueFactory(new PropertyValueFactory("fileName"));
+ file_size.setCellValueFactory(new PropertyValueFactory("size"));
+ file_url.setCellValueFactory(new PropertyValueFactory("url"));
+ file_bucket.setCellValueFactory(new PropertyValueFactory("bucketName"));
+
+ file_name.prefWidthProperty().bind(tableview.widthProperty().divide(tableview.getColumns().size()));
+ file_size.prefWidthProperty().bind(tableview.widthProperty().divide(tableview.getColumns().size()));
+ file_url.prefWidthProperty().bind(tableview.widthProperty().divide(tableview.getColumns().size()));
+ file_bucket.prefWidthProperty().bind(tableview.widthProperty().divide(tableview.getColumns().size()));
+
+ // 创建上下文菜单
+ final ContextMenu contextMenu = new ContextMenu();
+ MenuItem menuItem = new MenuItem("删除");
+ menuItem.setOnAction(event -> {
+ list.remove(tableview.getSelectionModel().getSelectedItem());
+ });
+ contextMenu.getItems().add(menuItem);
+ // 添加事件监听器来处理上下文菜单的显示
+ tableview.setOnContextMenuRequested(event -> {
+ // 只有当表格有选中项时才显示上下文菜单
+ if (!tableview.getSelectionModel().isEmpty()) {
+ contextMenu.show(tableview, event.getScreenX(), event.getScreenY());
+ }
+ });
+
+ tableview.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
+ @Override
+ public void changed(ObservableValue extends BucketFile> observable, BucketFile oldValue, BucketFile newValue) {
+ if (newValue != null) {
+ System.out.println(newValue.getFileName());
+ }
+ }
+ });
//绑定快捷键
KeyCombination kc1 = KeyCombination.valueOf("ctrl+q");
@@ -309,7 +353,7 @@ public class MinioController {
@FXML
private void bucket_choose_action(){
- Stage primaryStage = (Stage) this.listView.getScene().getWindow();
+ Stage primaryStage = (Stage) this.choose_upload_file.getScene().getWindow();
FXMLLoader fxmlLoader =new FXMLLoader( getClass().getResource("/fxml/bucket_choose.fxml"));
AnchorPane bucket_choose = null;
try {
@@ -323,7 +367,12 @@ public class MinioController {
@FXML
public void reload(){
- String bucketName = MinioUtils.objectMap.get(MinioUtils.current_bucket).toString();
+ Object obj = MinioUtils.objectMap.get(MinioUtils.current_bucket);
+ if (obj == null){
+ AlertUtils.alert_warning("请选择bucket再试");
+ return;
+ }
+ String bucketName = obj.toString();
List bucketFiles = MinioUtils.getFileList(bucketName);
if (bucketFiles.size()>0){
list.clear();
diff --git a/src/main/java/com/zhangmeng/minio/message/Message.java b/src/main/java/com/zhangmeng/minio/message/Message.java
deleted file mode 100644
index ef890c1..0000000
--- a/src/main/java/com/zhangmeng/minio/message/Message.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.zhangmeng.minio.message;
-
-/**
- * @author zhangmeng
- * @version 1.0
- * @date 2024-03-08 10:19
- */
-public class Message {
-
- private String msg ;
-
- public Message(String msg) {
- this.msg = msg;
- }
-
- public String getMsg() {
- return msg;
- }
-
- public void setMsg(String msg) {
- this.msg = msg;
- }
-}
diff --git a/src/main/java/com/zhangmeng/minio/utils/ConfigUtils.java b/src/main/java/com/zhangmeng/minio/utils/ConfigUtils.java
deleted file mode 100644
index 194fca4..0000000
--- a/src/main/java/com/zhangmeng/minio/utils/ConfigUtils.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.zhangmeng.minio.utils;
-
-
-import org.apache.commons.configuration2.Configuration;
-import org.apache.commons.configuration2.ex.ConfigurationException;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-
-/**
- * @author zhangmeng
- * @version 1.0
- * @date 2024-03-08 14:17
- */
-public class ConfigUtils {
-
- public static void getDefaultConfig(){
-
-
- }
-
- public static class MinioConfig {
-
- private String endpoint;
- private String accessKey;
- private String secretKey;
-
- public MinioConfig() {
- }
-
- public MinioConfig(String endpoint, String accessKey, String secretKey) {
- this.endpoint = endpoint;
- this.accessKey = accessKey;
- this.secretKey = secretKey;
- }
-
- public String getEndpoint() {
- return endpoint;
- }
-
- public void setEndpoint(String endpoint) {
- this.endpoint = endpoint;
- }
-
- public String getAccessKey() {
- return accessKey;
- }
-
- public void setAccessKey(String accessKey) {
- this.accessKey = accessKey;
- }
-
- public String getSecretKey() {
- return secretKey;
- }
-
- public void setSecretKey(String secretKey) {
- this.secretKey = secretKey;
- }
- }
-}
diff --git a/src/main/java/com/zhangmeng/minio/utils/MinioUtils.java b/src/main/java/com/zhangmeng/minio/utils/MinioUtils.java
index 38f694d..ebd8c42 100644
--- a/src/main/java/com/zhangmeng/minio/utils/MinioUtils.java
+++ b/src/main/java/com/zhangmeng/minio/utils/MinioUtils.java
@@ -34,9 +34,9 @@ public class MinioUtils {
private static MinioClient minioClient = null;
- private static String endpoint = "http://192.168.1.254:9000";
- private static String accessKey = "minioadmin";
- private static String secretKey = "minioadmin";
+// private static String endpoint = "http://192.168.1.254:9000";
+// private static String accessKey = "minioadmin";
+// private static String secretKey = "minioadmin";
public static Map objectMap = new HashMap<>();
public static String current_bucket = "current_bucket";
@@ -46,7 +46,29 @@ public class MinioUtils {
public static MinioClient getDefault() {
if (minioClient == null) {
- minioClient = MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey).build();
+ Object endpoint = objectMap.get("endpoint");
+ Object accessKey = objectMap.get("accessKey");
+ Object secretKey = objectMap.get("secretKey");
+ if (endpoint == null ){
+ Platform.runLater(()->{
+ AlertUtils.alert_warning("配置文件:endpoint 为空");
+ });
+ return null;
+ }
+ if (accessKey == null ){
+ Platform.runLater(()->{
+ AlertUtils.alert_warning("配置文件:accessKey 为空");
+ });
+ return null;
+ }
+
+ if (secretKey == null ){
+ Platform.runLater(()->{
+ AlertUtils.alert_warning("配置文件:secretKey 为空");
+ });
+ return null;
+ }
+ minioClient = MinioClient.builder().endpoint(endpoint.toString()).credentials(accessKey.toString(), secretKey.toString()).build();
}
return minioClient;
}
@@ -143,6 +165,7 @@ public class MinioUtils {
if (itemList.size() > 0 ){
list = itemList.stream().map(i -> {
BucketFile bucketFile = new BucketFile();
+ bucketFile.setBucketName(bucketName);
bucketFile.setDir(i.isDir());
bucketFile.setFileName(i.objectName());
bucketFile.setSize(i.size());
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
deleted file mode 100644
index f8424a1..0000000
--- a/src/main/java/module-info.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * @author zhangmeng
- * @date 2024-03-07 14:29
- * @version 1.0
- */
-
-open module javafx.tools.minio {
- requires com.google.common;
- requires javafx.controls;
- requires javafx.media;
- requires javafx.fxml;
- requires rxcontrols;
- requires minio;
- requires lombok;
- requires com.fasterxml.jackson.core;
- requires log4j;
- requires org.apache.commons.lang3;
- requires tika.core;
- requires org.apache.commons.configuration2;
-}
\ No newline at end of file
diff --git a/src/main/resources/css/main.css b/src/main/resources/css/main.css
index c677768..e69de29 100644
--- a/src/main/resources/css/main.css
+++ b/src/main/resources/css/main.css
@@ -1,56 +0,0 @@
-.root{
- /*-fx-background-image: url(../img/sunset.jpg);*/
- /*-fx-background-size: 1200;*/
-
- -base-hover-color: #1ECE9A;
-}
-
-.split-pane{
- /*-fx-background-image: url(../img/sunset.jpg);*/
- -fx-background-size: 1200;
- -fx-background-color: white;
-}
-
-.list-view{
- -fx-font-size: 14;
- -fx-focus-color: #0000;
- -fx-faint-focus-color: #0000;
- -fx-background-color: white;
-}
-
-.list-cell {
- -fx-pref-height: 40;
- -fx-background-color: null;
-}
-
-.list-cell:hover,
-.list-cell:selected {
- -fx-background-color: #F8F8F8;
-}
-
-.list-cell:hover .label,
-.list-cell:selected .label {
- -fx-text-fill: -base-hover-color;
-}
-
-.menu-bar{
- -fx-background-color: #beebb6;
- -fx-text-fill: black;
-}
-
-.list-cell .remove-btn {
- -fx-background-color: null;
- -fx-pref-height: 20;
- -fx-pref-width: 38;
- visibility: hidden;
-}
-
-.list-cell .remove-btn Region {
- -fx-background-color: -base-hover-color;
- -fx-shape: "M798.938839 1017.751676h-497.58838a120.584726 120.584726 0 0 1-123.951493-118.62903V274.661607a29.706769 29.706769 0 0 1 31.910021-29.186901 30.89504 30.89504 0 0 1 31.885265 29.186901v624.461039a60.131451 60.131451 0 0 0 62.01288 58.349045h497.58838a61.319722 61.319722 0 0 0 62.01288-58.349045V274.661607a29.706769 29.706769 0 0 1 31.885266-29.186901 30.919795 30.919795 0 0 1 31.910021 29.186901v624.461039a125.189275 125.189275 0 0 1-127.615329 118.62903z m-92.041472-178.933771a30.89504 30.89504 0 0 1-31.885266-29.186901V393.315393a29.855303 29.855303 0 0 1 31.885266-29.261168 30.919795 30.919795 0 0 1 31.910021 29.261168v416.241344a32.182333 32.182333 0 0 1-31.910021 29.36019z m-155.960537 0a30.89504 30.89504 0 0 1-31.885266-29.186901V393.315393a29.706769 29.706769 0 0 1 31.885266-29.261168 30.969307 30.969307 0 0 1 31.910021 29.261168v416.241344a30.919795 30.919795 0 0 1-31.786243 29.36019z m-155.960537 0a30.870284 30.870284 0 0 1-31.910021-29.186901V393.315393a29.706769 29.706769 0 0 1 31.910021-29.261168 30.969307 30.969307 0 0 1 31.910021 29.261168v416.241344a30.919795 30.919795 0 0 1-31.662465 29.36019zM1063.551883 214.431133H38.098975A30.89504 30.89504 0 0 1 6.188954 185.268988a29.706769 29.706769 0 0 1 31.910021-29.261168H332.963412V95.802102A91.37307 91.37307 0 0 1 426.886314 6.31046h247.878231a92.561341 92.561341 0 0 1 93.898145 89.491642v60.205718h294.889193a29.335434 29.335434 0 1 1 0 58.423313zM394.976293 154.225414h311.673517V93.920673a29.706769 29.706769 0 0 0-31.885265-29.162145H426.886314a30.89504 30.89504 0 0 0-31.910021 29.162145zM799.013106 1023.940586h-497.58838a126.253768 126.253768 0 0 1-130.115648-124.842696V274.661607a35.994702 35.994702 0 0 1 38.098931-35.375811 36.861149 36.861149 0 0 1 38.074176 35.375811v624.436283a54.165342 54.165342 0 0 0 55.82397 52.184891h497.58838a55.526902 55.526902 0 0 0 55.82397-52.184891V274.661607a35.994702 35.994702 0 0 1 38.098931-35.375811 36.836393 36.836393 0 0 1 38.074175 35.375811v624.436283a130.586005 130.586005 0 0 1-133.878505 124.842696z m-589.728875-772.375992a23.666393 23.666393 0 0 0-25.721111 22.99799V898.998867a113.875948 113.875948 0 0 0 117.737828 112.464877h497.58838a119.693523 119.693523 0 0 0 121.30264-112.61341V274.661607a24.755641 24.755641 0 0 0-25.696355-22.997991 23.666393 23.666393 0 0 0-25.721111 22.997991v624.436283a67.360099 67.360099 0 0 1-68.201791 64.562711h-497.58838a66.518407 66.518407 0 0 1-68.20179-64.562711V274.661607a24.755641 24.755641 0 0 0-25.49831-22.997991z m497.58838 593.343198a36.861149 36.861149 0 0 1-38.098931-35.37581V393.315393a36.019457 36.019457 0 0 1 38.098931-35.450078 36.885905 36.885905 0 0 1 38.074175 35.450078v416.241344a38.371243 38.371243 0 0 1-38.049419 35.375811z m0-474.689412a23.691148 23.691148 0 0 0-25.721111 23.072257v416.241345a24.755641 24.755641 0 0 0 25.696355 22.99799 25.8944 25.8944 0 0 0 25.745867-23.56737v-415.647209a24.755641 24.755641 0 0 0-25.696355-22.99799z m-155.960537 474.689412a36.861149 36.861149 0 0 1-38.098931-35.37581V393.315393a36.019457 36.019457 0 0 1 38.098931-35.450078 36.885905 36.885905 0 0 1 38.074175 35.450078v416.241344a36.836393 36.836393 0 0 1-37.925641 35.450078z m0-474.689412a23.691148 23.691148 0 0 0-25.721111 23.072257v416.241345a25.869645 25.869645 0 0 0 51.417466 0V393.315393a24.755641 24.755641 0 0 0-25.547821-22.99799z m-155.960537 474.689412a36.861149 36.861149 0 0 1-38.098931-35.37581V393.315393a36.019457 36.019457 0 0 1 38.098931-35.450078 36.91066 36.91066 0 0 1 38.098931 35.450078v416.241344a36.861149 36.861149 0 0 1-37.826619 35.450078z m0-474.689412a23.691148 23.691148 0 0 0-25.721111 23.072257v416.241345a25.8944 25.8944 0 0 0 51.442222 0V393.315393a24.755641 24.755641 0 0 0-25.448799-22.99799zM1063.502372 220.52102H38.049464A36.836393 36.836393 0 0 1-0.024712 185.169965a36.019457 36.019457 0 0 1 38.074176-35.450077H326.774502V95.678324a98.032338 98.032338 0 0 1 100.087056-95.655796h247.853476a99.27012 99.27012 0 0 1 100.111811 95.655796v54.041564H1063.502372a36.885905 36.885905 0 0 1 38.098931 35.450077 37.306751 37.306751 0 0 1-37.826619 35.450078zM38.049464 162.097708a23.666393 23.666393 0 0 0-25.696355 23.072257 24.755641 24.755641 0 0 0 25.696355 22.973235H1063.502372a23.17128 23.17128 0 1 0 0-46.045492H762.449025V95.678324A86.644743 86.644743 0 0 0 674.715034 12.400348H426.861558A85.679273 85.679273 0 0 0 339.152323 95.678324v66.419384z m674.764501-1.782406h-324.051338V93.821651a36.861149 36.861149 0 0 1 38.098931-35.375811h247.853476a36.019457 36.019457 0 0 1 38.098931 35.375811z m-311.673518-12.377821h299.295697V93.821651a23.666393 23.666393 0 0 0-25.72111-22.997991H426.861558a24.755641 24.755641 0 0 0-25.721111 22.997991z";
-}
-
-.list-cell:hover .remove-btn,
-.list-cell:selected .remove-btn {
- visibility: visible;
-}
\ No newline at end of file
diff --git a/src/main/resources/fxml/main.fxml b/src/main/resources/fxml/main.fxml
index 5c17106..0680af8 100644
--- a/src/main/resources/fxml/main.fxml
+++ b/src/main/resources/fxml/main.fxml
@@ -3,11 +3,9 @@
-
-
@@ -15,37 +13,35 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+