📄 filesynchronaldialog.java
字号:
InitProperties.TYPE_MOBILE2PC_ACTIVE=tableItem.getText(2);
}
}
}else{
tableItem.setChecked(false);
}
}
}
}
private void initPropertiesFile(){
tableProrertiesFile.removeAll();
File file=new File(ReadFileUtil.getPath());
File files[]=file.listFiles();
for (int i = 0; i < files.length; i++) {
File fileIn=files[i];
if(fileIn.getName().indexOf(".properties")>=0){
TableItem tableItem=new TableItem(tableProrertiesFile,SWT.NONE);
tableItem.setText(new String[] { i + 1 + "",
fileIn.getName().replaceAll(".properties", ""),
fileIn.getName(), fileIn.getPath() });
if(InitProperties.TYPE_MOBILE2PC.equals(tableItem.getText(2))
|| InitProperties.TYPE_PC2MOBILE.equals(tableItem.getText(2))){
tableItem.setChecked(true);
}
}
}
tableProrertiesFile.setSelection(0);
}
protected void doBtnDelProrertiesFile() {
TableItem tableItems[]=tableProrertiesFile.getSelection();
for (int i = 0; i < tableItems.length; i++) {
TableItem tableItem=tableItems[i];
if(InitProperties.TYPE_MOBILE2PC.equals(tableItem.getText(2))
|| InitProperties.TYPE_PC2MOBILE.equals(tableItem.getText(2))){
continue;
}
File file=new File(tableItem.getText(3));
file.delete();
}
initPropertiesFile();
}
protected void doBtnAddProrertiesFile() {
try {
if(textName.getText()==null || textName.getText().equals("")){
Dialog.openInformationDialog("请输入文件名!");
}else{
ReadFileUtil.createFile(ReadFileUtil.getPath() + textName.getText()
+ InitProperties.KEY_MOBILE2PC + ".properties");
ReadFileUtil.createFile(ReadFileUtil.getPath() + textName.getText()
+ InitProperties.KEY_PC2MOBILE + ".properties");
}
} catch (Exception e) {
e.printStackTrace();
Dialog.openErrorDialog(e.getMessage());
}
initPropertiesFile();
}
protected void doBtnDel() {
Properties properties=(Properties) actionTree.getData();
TreeItem treeItem[]=actionTree.getSelection();
for (int i = 0; i < treeItem.length; i++) {
TreeItem treeItemIn=treeItem[i];
properties.remove(treeItemIn.getText(1));
treeItemIn.dispose();
}
if(treePc.equals(actionTree)){
InitProperties.saveProperties(properties,InitProperties.TYPE_PC2MOBILE_ACTIVE);
}else if(treeMobile.equals(actionTree)){
InitProperties.saveProperties(properties,InitProperties.TYPE_MOBILE2PC_ACTIVE);
}
}
protected void doBtnSetDirectory() {
if(treePc.equals(actionTree)){
FileManageUtil.saveDirectory(InitProperties.TYPE_PC2MOBILE_ACTIVE);
initData();
}else if(treeMobile.equals(actionTree)){
FileManageUtil.saveDirectory(InitProperties.TYPE_MOBILE2PC_ACTIVE);
initData();
}
}
protected void doBtnSetFile() {
if(treePc.equals(actionTree)){
FileManageUtil.saveFileName(InitProperties.TYPE_PC2MOBILE_ACTIVE);
initData();
}else if(treeMobile.equals(actionTree)){
FileManageUtil.saveFileName(InitProperties.TYPE_MOBILE2PC_ACTIVE);
initData();
}
}
protected void doBtnSetCorresponding() {
if(treePc.equals(actionTree)){
FileManageUtil.saveCorrespondingDirectory(InitProperties.TYPE_PC2MOBILE_ACTIVE);
}else if(treeMobile.equals(actionTree)){
FileManageUtil.saveCorrespondingDirectory(InitProperties.TYPE_MOBILE2PC_ACTIVE);
}
initData();
}
protected void doBtnSynchronal(boolean isCopyHidden) {
try {
//Cursor cursor=new Cursor(Display.getCurrent(),SWT.CURSOR_WAIT);
//Display.getCurrent().getActiveShell().setCursor(cursor);
doBtnComp();
for (Iterator iter = mapFileNameAndPathPc.entrySet().iterator(); iter.hasNext();) {
Entry<String, String> entry = (Entry<String, String>) iter.next();
if(entry.getKey().indexOf(FileManageUtil.STR_CorrespondingDirectory)>=0){
continue;
}
File filePc=new File(entry.getValue());
if(mapFileNameAndPathMobile.containsKey(entry.getKey())){
File fileMobile=new File(mapFileNameAndPathMobile.get(entry.getKey()));
fileMobile.mkdirs();
if(fileMobile.isDirectory()){
continue;
}
if(filePc.lastModified()>fileMobile.lastModified()){
ReadFileUtil.copyFile(filePc, fileMobile,isCopyHidden);
}
}else{
Properties properties=(Properties) treePc.getData();
List listCk=InitProperties.getCorrespodingKey(properties);
//TODO 如果有多个对应路径,需要考虑获取哪个对应路径
for (Iterator iterator = listCk.iterator(); iterator.hasNext();) {
String strFileKey = (String) iterator.next();
String strFile=(String) properties.get(strFileKey);
String strFileName=ReadFileUtil.getPathAndFile(listRootFile, entry.getValue());
File fileMobile = new File(strFile
+ (strFileName.equals("") ? "\\"
+ entry.getKey() : "\\" + strFileName));
// 判断如果是PC的根目录,Mobile不需要创建这个目录
//TODO 如果根目录是文件,也需要同步
if(listRootFile.contains(filePc.getPath()) && filePc.isDirectory()){
continue;
}
if(filePc.isDirectory()){
fileMobile.mkdirs();
continue;
}
ReadFileUtil.copyFile(filePc, fileMobile,isCopyHidden);
}
}
}
//Display.getCurrent().getActiveShell().setCursor(null);
} catch (Exception e) {
e.printStackTrace();
Dialog.openErrorDialog(e.getMessage());
}
}
protected void doBtnComp() {
mapFileNameAndPathPc.clear();
mapFileNameAndPathMobile.clear();
initData();
Properties properties=(Properties) treePc.getData();
List listCk=InitProperties.getCorrespodingKey(properties);
for (Iterator iter = listCk.iterator(); iter.hasNext();) {
String strKeyCk = (String) iter.next();
String strCorresponding=(String) properties.get(strKeyCk);
//File file=new File(strCorresponding);
TreeItem treeItem=new TreeItem(treeMobile,SWT.NONE);
treeItem.setText(new String[]{treeMobile.getItemCount()+"",strCorresponding,strCorresponding,""});
initChildTreeItem(treeItem, strCorresponding,false);
addFile2InitMap(strKeyCk, strCorresponding,false);
}
for (int i = 0; i < treePc.getItems().length; i++) {
TreeItem treeItem= treePc.getItems()[i];
if(treeItem.getData()!=null
&& treeItem.getData().toString().indexOf(FileManageUtil.STR_CorrespondingDirectory)>=0){
continue;
}
String strFile=(String) properties.get(treeItem.getData());
initChildTreeItem(treeItem, strFile,true);
}
//TODO 手机同步到计算机
Properties properties2=(Properties) treeMobile.getData();
}
private void addFile2InitMap(String strFileName, String strPath,boolean isPc) {
if("Thumbs.db".equals(strFileName)){ //系统文件,不拷贝
return;
}
if(isPc){
mapFileNameAndPathPc.put(strFileName, strPath);
}else{
mapFileNameAndPathMobile.put(strFileName, strPath);
}
}
private void initChildTreeItem(TreeItem treeItem, String strFile,boolean isPc) {
File file =new File(strFile);
if(file.isDirectory()){
treeItem.setText(3, ReadFileUtil.getStatus(file));
addFile2InitMap(file.getName(),file.getPath(),isPc);
File files[]=ReadFileUtil.readFile(file.getPath());
for (int j = 0; j < files.length; j++) {
File fileIn=files[j];
TreeItem treeItem2=new TreeItem(treeItem,SWT.NONE);
treeItem2.setText(new String[] { j + 1 + "",
fileIn.getName(), fileIn.getPath(),
ReadFileUtil.getStatus(fileIn) });
addFile2InitMap(fileIn.getName(), fileIn.getPath(),isPc);
if(fileIn.isDirectory()){
initChildTreeItem(treeItem2, fileIn.getPath(),isPc);
}
}
}else{
addFile2InitMap(file.getName(), file.getPath(),isPc);
}
}
private Tree getTree(Group compositePc) {
Tree treePc=new Tree(compositePc,SWT.SINGLE|SWT.MULTI|SWT.FULL_SELECTION);
treePc.setHeaderVisible(true);
TreeColumn tlCoumn=new TreeColumn(treePc,SWT.NONE);
tlCoumn.setText("序号");
tlCoumn.setWidth(50);
tlCoumn=new TreeColumn(treePc,SWT.NONE);
tlCoumn.setText("文件名称");
tlCoumn.setWidth(100);
tlCoumn=new TreeColumn(treePc,SWT.NONE);
tlCoumn.setText("所在路径");
tlCoumn.setWidth(300);
tlCoumn=new TreeColumn(treePc,SWT.NONE);
tlCoumn.setText("状态");
tlCoumn.setWidth(50);
return treePc;
}
private void initData(){
listRootFile.clear();
Properties properties=InitProperties.getProperties(InitProperties.TYPE_PC2MOBILE_ACTIVE);
treePc.removeAll();
treePc.setData(properties);
createTreeItem(properties,treePc);
Properties properties2=InitProperties.getProperties(InitProperties.TYPE_MOBILE2PC_ACTIVE);
treeMobile.removeAll();
treeMobile.setData(properties2);
createTreeItem(properties2,treeMobile);
}
private void createTreeItem(Properties properties,Tree tree) {
int intIndex=1;
List listCk=InitProperties.getCorrespodingKey(properties);
for (Iterator iter = listCk.iterator(); iter.hasNext();) {
String strKey = (String) iter.next();
String strValue=(String) properties.get(strKey);
if(strValue!=null){
TreeItem treeItem=new TreeItem(tree,SWT.NONE);
treeItem.setText(0, intIndex+"");
treeItem.setText(1, strKey);
treeItem.setText(2, strValue);
treeItem.setText(3, "");
treeItem.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_BLUE));
treeItem.setData(strKey);
intIndex=intIndex+1;
}
}
for (Iterator iter = properties.entrySet().iterator(); iter.hasNext();intIndex++) {
Entry<String, String> element = (Entry<String, String>) iter.next();
if(element.getKey()!=null
&& element.getKey().indexOf(FileManageUtil.STR_CorrespondingDirectory)>=0){
continue;
}
TreeItem treeItem=new TreeItem(tree,SWT.NONE);
treeItem.setText(0, intIndex+"");
treeItem.setText(1, element.getKey());
treeItem.setText(2, element.getValue());
treeItem.setText(3, "");
treeItem.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_BLUE));
treeItem.setData(element.getKey());
listRootFile.add(element.getValue());
}
}
private void doTabFolderSeleced() {
if(tabFolder.getSelectionIndex()==1){
initData();
doBtnComp();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -