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

📄 sharedtab.java

📁 JMule是一个基于Java开发
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		file_system_view = FileSystemView.getFileSystemView();         file_chooser = new JFileChooser( file_system_view );        file_chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);        file_chooser.setMultiSelectionEnabled(true);                file_chooser.addActionListener(new ActionListener() {        	public void actionPerformed(ActionEvent event) {        		if(event.getActionCommand() == JFileChooser.APPROVE_SELECTION) {        			chosen_folders = new ChosenFolders();        	                	        List<File> shared_folders = _config_manager.getSharedFolders();        	                	        if(shared_folders != null) {      	        	        	for(File folder : shared_folders) {        	        	    chosen_folders.add(folder);	        	        	}        	        }        			current_chosen_folders = file_chooser.getSelectedFiles();        			LinkedList<File> newFolders = new LinkedList<File>();        			final List<File> already_existed_folders =         				org.jmule.core.utils.FileUtils.extractNewFolders(current_chosen_folders,         						                                         chosen_folders.getFoldersList(),         						                                         newFolders);        			for(File file : newFolders)        				chosen_folders.add(file);        			if(already_existed_folders.size() != 0) {        			   ExistedFoldersDialog existed_folders_dialog = new ExistedFoldersDialog(parent, true, new AbstractListModel() {        				   public int getSize() {         					        					   return already_existed_folders.size();        				   }        				   public Object getElementAt(int i) {        					        					   return already_existed_folders.get( i );        				   }        			   });        			   existed_folders_dialog.setVisible(true);        			}        			//List<File> shared_folders2 = _config_manager.getSharedFolders();        			//if(shared_folders2 == null) shared_folders2 = new LinkedList<File>();                    List<File> folders_for_config_mg = new LinkedList<File>();        			for(File file : chosen_folders)         				folders_for_config_mg.add(file);        			        			_config_manager.setSharedFolders(folders_for_config_mg);        		}        	}        });        final SharedTab shared_tab = this;        top_panel.getAddButton().addActionListener(new ActionListener() {        	public void actionPerformed(ActionEvent event) {        		file_chooser.showDialog(shared_tab,"Choose");	        	}        });        top_panel.getRemoveButton().addActionListener(new ActionListener() {        	public void actionPerformed(ActionEvent event) {        		Object object = shared_folders_list.getSelectedValue();        		if(object instanceof File) {        			List<File> shared_folders = _config_manager.getSharedFolders();                    shared_folders.remove(object);                    _config_manager.setSharedFolders(shared_folders);        		}        	}        });        top_panel.getClearButton().addActionListener(new ActionListener() {        	public void actionPerformed(ActionEvent event) {        		 _config_manager.setSharedFolders(null);        	}        });        top_panel.getRescanButton().addActionListener(new ActionListener() {        	public void actionPerformed(ActionEvent event) {        		_sharing_manager.loadCompletedFiles();        	}        });       // SwingGUIUpdater.getInstance().addRefreshable(new Refreshable() {        //	public void refresh() {        //		shared_folders_list.repaint();        //	}        //});        _updater.addRefreshable(new Refreshable() {        	 public void refresh() {        		String str;        		SharedFile shared_file = _sharing_manager.getCurrentHashingFile();        		double percent_complete = 0;        	    if(shared_file != null) {        		    percent_complete = _sharing_manager.getCurrentHashingFilePercent();        		    str = " [Hashing : " + shared_file.getSharingName() + " (" + NumberFormatter.formatProgress(percent_complete) + ")]";        		    shared_files_border.setTitle(nr_of_files + str);            		//shared_files_border.setTitle(current_title + str);        		    //setSharedFilesBorderTitle(current_title  + str);        		} else {        	       shared_files_border.setTitle(nr_of_files);        		}        		shared_files_scroll_pane.repaint();        	 }        });	}		private String nr_of_files = "";		private void init() {				split_pane = new JSplitPane();		shared_folders_scroll_pane = new JScrollPane();		shared_files_scroll_pane = new JScrollPane();		shared_folders_list = new JList();		shared_folders_list_model = new SharedFoldersListModel();		top_panel = new TopPanel();						shared_folders_list.setModel(shared_folders_list_model);		shared_folders_list.setCellRenderer(new SharedFoldersListCellRenderer());				shared_folders_border = javax.swing.BorderFactory.createTitledBorder("");		shared_files_border = javax.swing.BorderFactory.createTitledBorder(""); 								shared_folders_scroll_pane.setBorder(shared_folders_border);		shared_files_scroll_pane.setBorder(shared_files_border);				shared_folders_scroll_pane.setViewportView(shared_folders_list);				split_pane.setOrientation(JSplitPane.VERTICAL_SPLIT);		split_pane.setTopComponent(shared_folders_scroll_pane);		split_pane.setBottomComponent(shared_files_scroll_pane);				this.setLayout(new BorderLayout());		this.add(top_panel, BorderLayout.NORTH);		this.add(split_pane, BorderLayout.CENTER);				class FileScanner extends JMThread {						private boolean stop = false;			private Object object;						public void JMStop() {				stop = true;				interrupt();			}					public FileScanner() {			}						public void setSharedFolder(Object object) {				this.object = object;			}						public void run() {				//if( shared_files_scroll_pane. )				final List<SharedFile> shared_files = new CopyOnWriteArrayList<SharedFile>();				SwingUtilities.invokeLater(new Runnable() {					public void run() {					   //if(shared_files_scroll_pane.getViewport().getComponentCount() !=0 ) {						//	shared_files_scroll_pane.remove(1);					  // }					   shared_files_table = new SharedFilesTable(shared_files);					   shared_files_scroll_pane.setViewportView(shared_files_table);					}				});				Iterator<File> i = null;				boolean is_iterator = false;				if(object instanceof FilesCategory) {					FilesCategory files_category = (FilesCategory)object;					switch(files_category) {					    case ALL_FILES          : for(SharedFile shared_file : _sharing_manager.getSharedFiles())					    	                           shared_files.add(shared_file);					                              break;					    case INCOMPLETE_FILES   : for(PartialFile partial_file : _sharing_manager.getPartialFiles())					    	                            shared_files.add(partial_file);					    	                      break;  					    case INCOMING_FILES     : i = FileUtils.iterateFiles(new File(ConfigurationManager.INCOMING_DIR), null, true);					                              is_iterator = true;					}				} else if( object instanceof File ) {					i = FileUtils.iterateFiles((File)object, null, true);					is_iterator = true;				}								if(is_iterator) {				  while(i.hasNext()) {					  if(stop) return;					  File file = i.next();					  if(file.isDirectory()) continue;					  SharedFile shared_file = _sharing_manager.getSharedFile(file);					  if(shared_file != null) shared_files.add(shared_file);				  }				}				nr_of_files = "Shared files(" + shared_files.size() + ")";		    }		}				//final FileScanner file_scanner = new FileScanner();				shared_folders_list.addMouseListener(new MouseAdapter() {			 public void mouseClicked(MouseEvent e) {				  if(scanner != null && scanner.isAlive()) {					  scanner.JMStop();					  scanner = null;				  }					  Object object = shared_folders_list.getSelectedValue();				  //File file = (File)shared_folders_list.getSelectedValue();                  FileScanner file_scanner = new FileScanner();				  file_scanner.setSharedFolder(object);				  file_scanner.start();				  scanner = file_scanner;				 // SharedFilesTable shared_files_table = new SharedFilesTable()			 }		});	}		JMThread scanner;	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -