mirror of
https://gitee.com/willfree/minoaClientWindows_gradle.git
synced 2026-06-03 08:16:56 +08:00
调试优化云文件模块,增加了删除文件夹按钮
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
文件名:/wechat.jpg 文件操作:下载 文件耗时:252ms
|
||||
文件名:C:\Users\wefree\Pictures\test_2M.html 文件操作:上传 文件耗时:1661ms
|
||||
文件名:C:\Users\wefree\Pictures\7000字节文件.txt 文件操作:上传 文件耗时:191ms
|
||||
文件名:C:\Users\wefree\Pictures\test.jpg 文件操作:上传 文件耗时:468ms
|
||||
Binary file not shown.
@@ -3,8 +3,7 @@ package cn.minoa.view.mine;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.*;
|
||||
/*
|
||||
* 数据格式说明:
|
||||
* f 普通文件
|
||||
@@ -12,13 +11,12 @@ import java.util.LinkedList;
|
||||
* d 文件夹目录
|
||||
* .前端一个listview表项是一个pane,其id是"路径+纯文件名+@文件类型"
|
||||
*/
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import cn.minoa.model.SingleFile;
|
||||
import cn.minoa.util.FileUtil;
|
||||
import cn.minoa.util.StringByteLengthUtil;
|
||||
import cn.minoa.view.login.LoginOverviewController;
|
||||
import javafx.scene.control.*;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
@@ -27,9 +25,6 @@ import cn.minoa.MainApp;
|
||||
import cn.minoa.dataRequestInterface.OrderInfo;
|
||||
import cn.minoa.dataRequestInterface.ResponseData;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.Alert;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.ListView;
|
||||
import javafx.scene.control.Alert.AlertType;
|
||||
import javafx.scene.layout.Pane;
|
||||
import javafx.scene.text.Text;
|
||||
@@ -56,6 +51,8 @@ public class MyCloudFileController {
|
||||
private Button deleteSelectedButton;
|
||||
@FXML
|
||||
private Button downloadTheFileButton;
|
||||
@FXML
|
||||
private Button deleteFolderButton;
|
||||
|
||||
// 构造函数
|
||||
public MyCloudFileController() {
|
||||
@@ -81,6 +78,8 @@ public class MyCloudFileController {
|
||||
*/
|
||||
public void setMainApp(MainApp mainApp) {
|
||||
this.mainApp = mainApp;
|
||||
// 设置删除文件夹按钮属性
|
||||
deleteFolderButton.setDisable(true);
|
||||
// 发送命令请求主目录下的文件夹列表,赋值给filePathnameList
|
||||
lsFolder(currentPath);
|
||||
// 更新显示到前端
|
||||
@@ -95,6 +94,12 @@ public class MyCloudFileController {
|
||||
*/
|
||||
public void setMainApp(MainApp mainApp, String iniCurrentPath) {
|
||||
this.mainApp = mainApp;
|
||||
// 设置删除文件夹按钮属性
|
||||
if(iniCurrentPath.equals("/")){
|
||||
deleteFolderButton.setDisable(true);
|
||||
}else{
|
||||
deleteFolderButton.setDisable(false);
|
||||
}
|
||||
// 发送命令请求主目录下的文件夹列表,赋值给filePathnameList
|
||||
this.currentPath = iniCurrentPath;
|
||||
lsFolder(currentPath);
|
||||
@@ -180,7 +185,11 @@ public class MyCloudFileController {
|
||||
// 版2【无进度条】:
|
||||
// Integer r=mainApp.uploadFileToServerPath(file, currentPath + "/");
|
||||
// 版3【有进度条】:
|
||||
mainApp.uploadFileToServerPathWithProgressBar(file, currentPath + "/");
|
||||
if(currentPath.equals("/")){
|
||||
mainApp.uploadFileToServerPathWithProgressBar(file, currentPath);
|
||||
}else{
|
||||
mainApp.uploadFileToServerPathWithProgressBar(file, currentPath + "/");
|
||||
}
|
||||
// 判断是否手动取消了上传,是的话就不进行下面的判断
|
||||
if(mainApp.isCancelFileTransferFlag){
|
||||
return;
|
||||
@@ -398,7 +407,71 @@ public class MyCloudFileController {
|
||||
alert.showAndWait();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 删除当前路径所代表的文件夹
|
||||
@FXML
|
||||
private void deleteSelectedFolderItem() {
|
||||
if(currentPath.equals("/")){
|
||||
// 弹窗参考:https://code.makery.ch/blog/javafx-dialogs-official/
|
||||
Alert alert = new Alert(AlertType.ERROR);
|
||||
alert.setTitle("根目录不可删除");
|
||||
alert.setHeaderText("根目录不可删除");
|
||||
alert.setContentText("根目录不可删除");
|
||||
alert.showAndWait();
|
||||
return ;
|
||||
}
|
||||
// // 提醒用户是否确认删除
|
||||
// Dialog choiceDialog=new ChoiceDialog();
|
||||
// choiceDialog.setTitle("确认弹窗");
|
||||
// choiceDialog.setHeaderText("文件夹删除确认弹窗");
|
||||
// choiceDialog.setContentText("您确认删除文件夹\""+currentPath
|
||||
// +"\"吗?");
|
||||
// choiceDialog.showAndWait();
|
||||
System.out.println("开始发送删除请求到服务器...");
|
||||
// 获取当前文件夹路径
|
||||
String pathfilename = currentPath;
|
||||
// 请求数据
|
||||
OrderInfo orderInfo = new OrderInfo();
|
||||
ResponseData responseData = new ResponseData();
|
||||
Long seqLong = mainApp.getNewDataReqId();
|
||||
orderInfo.setSeq(seqLong);
|
||||
orderInfo.setJsonString(getFileActionJson("rm", pathfilename));
|
||||
System.out.println("getFileActionJson: " + getFileActionJson("rm", pathfilename));
|
||||
mainApp.minoaDataAPI.executeOrder("/fileAction", orderInfo);
|
||||
responseData = mainApp.minoaDataAPI.dataCacheQueue.getResponseDataBySeq(seqLong);
|
||||
JSONObject jsonObject = responseData.praseRequestData();
|
||||
responseData.printSelf();
|
||||
// 解析数据
|
||||
Integer codeInteger = null;
|
||||
try {
|
||||
codeInteger = jsonObject.getInt("code");
|
||||
} catch (JSONException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (codeInteger == 200) {
|
||||
// 弹窗参考:https://code.makery.ch/blog/javafx-dialogs-official/
|
||||
Alert alert = new Alert(AlertType.INFORMATION);
|
||||
alert.setTitle("删除成功");
|
||||
alert.setHeaderText("删除文件夹成功");
|
||||
alert.setContentText("已从云端删除您当前所在路径的文件夹。");
|
||||
alert.showAndWait();
|
||||
// 根据当前路径,重新加载整个界面,来刷新listview
|
||||
try {
|
||||
mainApp.reloadCloudFileOverview(getUpperLevelPath(currentPath));
|
||||
} catch (IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
// 弹窗参考:https://code.makery.ch/blog/javafx-dialogs-official/
|
||||
Alert alert = new Alert(AlertType.WARNING);
|
||||
alert.setTitle("删除失败");
|
||||
alert.setHeaderText("删除文件失败");
|
||||
alert.setContentText("由于未知原因,您选中的文件不能被删除");
|
||||
alert.showAndWait();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -583,7 +656,7 @@ public class MyCloudFileController {
|
||||
if (foldername.charAt(foldername.length() - 1) != '/'){
|
||||
foldername=foldername+"/";
|
||||
}
|
||||
if(type.equals("f")){
|
||||
// if(type.equals("f")){
|
||||
// filePathnameList
|
||||
String fileId=foldername + filename + "@" + type;
|
||||
filePathnameList.add(fileId);
|
||||
@@ -595,7 +668,7 @@ public class MyCloudFileController {
|
||||
singleFile.setSize(size);
|
||||
singleFile.setTime(time);
|
||||
detailedFileListMap.put(fileId,singleFile);
|
||||
}
|
||||
// }
|
||||
}
|
||||
return true;
|
||||
} catch (JSONException e) {
|
||||
@@ -846,9 +919,9 @@ public class MyCloudFileController {
|
||||
headYInteger = 10;
|
||||
textXInteger = 70;
|
||||
textYInteger = 28;
|
||||
fileszTextXInteger=textXInteger+150;
|
||||
fileszTextXInteger=textXInteger+110;
|
||||
fileszTextYInteger=textYInteger;
|
||||
filetimeTextXInteger=textXInteger+280;
|
||||
filetimeTextXInteger=textXInteger+220;
|
||||
filetimeTextYInteger=textYInteger;
|
||||
|
||||
pane = new Pane();
|
||||
@@ -890,7 +963,11 @@ public class MyCloudFileController {
|
||||
setHeadPortrait(head, getFileTypeFromPaneId(name));
|
||||
// 文件大小
|
||||
Long size=detailedFileListMap.get(name).getSize();
|
||||
filesizeText.setText(FileUtil.sizeToShowSize(size));
|
||||
String sizeString=FileUtil.sizeToShowSize(size);
|
||||
if(sizeString.equals("0 B")){
|
||||
sizeString="- ";
|
||||
}
|
||||
filesizeText.setText(sizeString);
|
||||
// 文件创建时间
|
||||
Long time=detailedFileListMap.get(name).getTime();
|
||||
filetimeText.setText(FileUtil.timeToDateString(time));
|
||||
|
||||
@@ -33,7 +33,7 @@ public class NewFolderDialogController {
|
||||
*/
|
||||
@FXML
|
||||
private void handleExit() {
|
||||
String newFolderNameString="新建文件夹";
|
||||
String newFolderNameString="";
|
||||
if(!newFolderName.getText().trim().equals("")) {
|
||||
newFolderNameString=newFolderName.getText().trim();
|
||||
}
|
||||
|
||||
@@ -30,5 +30,6 @@
|
||||
<Button fx:id="downloadTheFileButton" layoutX="261.0" layoutY="50.0" mnemonicParsing="false" onAction="#downloadSelectedItem" prefWidth="80.0" text="下载" AnchorPane.leftAnchor="250.0" AnchorPane.topAnchor="65.0" />
|
||||
<Button fx:id="deleteSelectedButton" layoutX="443.0" layoutY="601.0" mnemonicParsing="false" onAction="#deleteSelectedItem" prefWidth="80.0" text="删除该文件" AnchorPane.rightAnchor="50.0" />
|
||||
<Button layoutX="431.0" layoutY="65.0" mnemonicParsing="false" onAction="#reloadOnCurrentPath" text="刷新当前列表" AnchorPane.rightAnchor="50.0" AnchorPane.topAnchor="65.0" />
|
||||
<Button fx:id="deleteFolderButton" layoutX="330.0" layoutY="601.0" mnemonicParsing="false" onAction="#deleteSelectedFolderItem" text="删除该文件夹" AnchorPane.bottomAnchor="14.0" AnchorPane.rightAnchor="163.0" />
|
||||
</children>
|
||||
</AnchorPane>
|
||||
|
||||
Reference in New Issue
Block a user