⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filesynchronaldialog.java

📁 Java SWT代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
							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 + -