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

📄 searchresulttable.java

📁 JMule是一个基于Java开发
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				});				close = new JMenuItem("Close");				close.setIcon(ImgRep.getIcon("cancel.png"));				close.addActionListener(new ActionListener() {					public void actionPerformed(ActionEvent event) {						tabbedPanel.remove(search_result_pane);					}				});				column_setup = new JMenuItem("Column setup");				column_setup.setIcon(ImgRep.getIcon("columns_setup.png"));				column_setup.addActionListener(new ActionListener() {					public void actionPerformed(ActionEvent event) {					    System.out.println("Column setup action performed");						}				});				properties = new JMenuItem("Properties");				properties.setIcon(ImgRep.getIcon("info.png"));				properties.addActionListener(new ActionListener() {					public void actionPerformed(ActionEvent event) {						System.out.println("Properties action performed");					}				});			}						public void mousePressed(MouseEvent e) {				showPopup(e);			}						public void mouseReleased(MouseEvent e) {				showPopup(e);			}						private void showPopup(MouseEvent e) {				 if (e.isPopupTrigger()) {					 					 JPopupMenu popup_menu = null;					 					 switch( whichCondition() ) {					 					   case A : popup_menu = new JPopupMenu();						        popup_menu.add(try_again); 						        popup_menu.add(copy_ed2k_links);						        popup_menu.add(close);						        popup_menu.add(column_setup);						        popup_menu.add(properties);						        break;						        					   case B : popup_menu = new JPopupMenu();				                popup_menu.add(try_again); 				                popup_menu.add(copy_ed2k_links);				                popup_menu.add(close);				                popup_menu.add(column_setup);				                break;				                					   case C : popup_menu = new JPopupMenu();				                popup_menu.add(try_again); 				                popup_menu.add(copy_ed2k_links);				                popup_menu.add(close);				                popup_menu.add(column_setup);				                popup_menu.add(properties);				                break; 				                					   case D : popup_menu = new JPopupMenu();		                        popup_menu.add(try_again); 		                        popup_menu.add(copy_ed2k_links);		                        popup_menu.add(close);		                        popup_menu.add(column_setup);		                        break;		               					   case E : popup_menu = new JPopupMenu();					            popup_menu.add(start_download);                                popup_menu.add(try_again);                                 popup_menu.add(copy_ed2k_links);                                popup_menu.add(close);                                popup_menu.add(column_setup);                                break;                                					   case F : popup_menu = new JPopupMenu();			                    popup_menu.add(start_download);                                popup_menu.add(try_again);                                 popup_menu.add(copy_ed2k_links);                                popup_menu.add(close);                                popup_menu.add(column_setup);                                break;                                					   case G : popup_menu = new JPopupMenu();			                    popup_menu.add(start_download);                                popup_menu.add(try_again);                                 popup_menu.add(copy_ed2k_links);                                popup_menu.add(close);                                popup_menu.add(column_setup);                                break;                                					   case H : popup_menu = new JPopupMenu();	                            popup_menu.add(start_download);                                popup_menu.add(try_again);                                 popup_menu.add(copy_ed2k_links);                                popup_menu.add(close);                                popup_menu.add(column_setup);                                popup_menu.add(properties);                                break;                                					   case I : popup_menu = new JPopupMenu();                                popup_menu.add(start_download);                                popup_menu.add(try_again);                                 popup_menu.add(copy_ed2k_links);                                popup_menu.add(close);                                popup_menu.add(column_setup);                                break;                                					   case J : popup_menu = new JPopupMenu();					            popup_menu.add(close);					            popup_menu.add(column_setup);					            break;						   					 }					 popup_menu.show(e.getComponent(), e.getX(), e.getY());				 }			}		}		this.addMouseListener(new PopupListener());	}		private SearchResultItem[] getSelectedFiles() {				return getFilesByIndexes( this.getSelectedRows() );	}		private SearchResultItem[] getFilesByIndexes(int[] indexes) {		SearchResultItem[] result = new SearchResultItem[indexes.length];		int k = 0;		for(int i : indexes) {			int j = 0;			for(SearchResultItem file : search_result_file_list) {				if( j == this.convertRowIndexToModel(i) ) {					result[k++] = file;					break;				}				++j;			}		}		return result;	}		/*	 * =========================================================================================================================================================	 * |                   |  Downloading  | On Shared  |  Downloading & New files  |  Shared & New files  |  Shared & Downloading & New files  |  New Files   |	 * =========================================================================================================================================================	 * |                                                                                                                                                       |	 * | ONE_SELECTED           A               C                   X                         X                         X                             H        |	 * |                                                                                                                                                       |	 * |-------------------------------------------------------------------------------------------------------------------------------------------------------|	 * |                                                                                                                                                       |	 * | MULTIPLE_SELECTED      B               D                   E                         F                         G                             I        |	 * |                                                                                                                                                       |	 * |--------------------------------------------------------------------------------------------------------------------------------------------------------	 *    J - no search results	 *    A,B,C,D,E,F,G,H,I,J - conditions	 *    X - can't be	 *    	 *   Start download Ac1	 *   Try again Ac2	 *   Copy ED2K Links Ac3	 *   Close Ac5	 *   Column setup Ac6	 *   Properties Ac7	 * 	 *     |  Ac1   Ac2   Ac3   Ac5   Ac6   Ac7	 * --------------------------------------------      	 *   A |  -     yes   yes   yes   yes   yes	 *     |	 *   B |  -     yes   yes   yes   yes   -	 *     |	 *   C |  -     yes   yes   yes   yes   yes	 *     |	 *   D |  -     yes   yes   yes   yes   -	 *     |	 *   E |  yes   yes   yes   yes   yes   -	 *     |	 *   F |  yes   yes   yes   yes   yes   -	 *     |	 *   G |  yes   yes   yes   yes   yes   -	 *     |	 *   H |  yes   yes   yes   yes   yes   yes	 *     |	 *   I |  yes   yes   yes   yes   yes   -	 *     |	 *   J |  -     -     -     yes   yes   - 	 * 	 */		private ConditionType whichCondition() {		int[] selected_rows = this.getSelectedRows();		SearchResultItem[] results = getSelectedFiles();				if( ( selected_rows.length == 1 ) && _download_manager.hasDownload(results[0].getFileHash()) ) return ConditionType.A;		if( selected_rows.length > 1 ) {			boolean all_are_downloading = true;			for(SearchResultItem result : results) {				if( !_download_manager.hasDownload(result.getFileHash()) ) {					all_are_downloading = false;					break;				}			}			if(all_are_downloading) return ConditionType.B;		}		if( ( selected_rows.length == 1 ) && _sharing_manager.hasFile(results[0].getFileHash()) ) return ConditionType.C;		if( selected_rows.length > 1 ) {			boolean all_are_shared = true;			for(SearchResultItem result : results) {				if( !_sharing_manager.hasFile(result.getFileHash()) ) {					all_are_shared = false;					break;				}			}			if(all_are_shared) return ConditionType.D;		}		if( selected_rows.length > 1 ) {			boolean some_downloading = false;			boolean some_new = false;			for(SearchResultItem result : results) {				if( _download_manager.hasDownload(result.getFileHash()) ) some_downloading = true;				if( !_sharing_manager.hasFile(result.getFileHash()) &&					!_download_manager.hasDownload(result.getFileHash())) some_new = true;			}			if( some_downloading && some_new ) return ConditionType.E;		}		if( selected_rows.length > 1 ) {			boolean some_shared = false;			boolean some_new = false;			for(SearchResultItem result : results) {				if( _sharing_manager.hasFile(result.getFileHash()) ) some_shared = true;				if( !_sharing_manager.hasFile(result.getFileHash()) &&					!_download_manager.hasDownload(result.getFileHash())) some_new = true;			}			if( some_shared && some_new ) return ConditionType.F;		}		if( selected_rows.length > 1 ) {			boolean some_shared = false;			boolean some_downloading = false;			boolean some_new = false;			for(SearchResultItem result : results) {				if( _sharing_manager.hasFile(result.getFileHash()) ) some_shared = true;				if( _download_manager.hasDownload(result.getFileHash()) ) some_downloading = true;				if( !_sharing_manager.hasFile(result.getFileHash()) &&					!_download_manager.hasDownload(result.getFileHash()) ) some_new = true;			}			if( some_shared && some_downloading && some_new ) return ConditionType.G;		}		if( ( selected_rows.length == 1 ) && ( !_sharing_manager.hasFile(results[0].getFileHash()) &&				                               !_download_manager.hasDownload(results[0].getFileHash())) ) return ConditionType.H;		if( selected_rows.length > 1 ) {			boolean all_are_new = true;			for(SearchResultItem result : results) {				if( _sharing_manager.hasFile(result.getFileHash()) || 				    _download_manager.hasDownload(result.getFileHash())) {					all_are_new = false;					break;				}			}			if( all_are_new ) return ConditionType.I;		}		if( this.getRowCount() == 0 ) return ConditionType.J;				return null;	}		public List<SearchResultItem> getFilesByStatus(FileStatus fileStatus) {		List<SearchResultItem> result = new LinkedList<SearchResultItem>();		SearchResultItem[] selected_results = getSelectedFiles();		for(SearchResultItem search_result_item : selected_results) {		  switch(fileStatus) {		     case  SHARING   :  if(_sharing_manager.hasFile(search_result_item.getFileHash()))		    	                	 result.add(search_result_item); break;		     case DOWNLOADING:  if(_download_manager.hasDownload(search_result_item.getFileHash()))			                    	 result.add(search_result_item); break;		     case NEW :         if(!_download_manager.hasDownload(search_result_item.getFileHash()) &&			                       !_sharing_manager.hasFile(search_result_item.getFileHash()))			                    	 result.add(search_result_item); break;		  }		}		return result;	}		private enum FileStatus {		SHARING,		DOWNLOADING,		NEW	}		private enum ConditionType {		A,B,C,D,E,F,G,H,I,J	}	}

⌨️ 快捷键说明

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