📄 sharedtab.java
字号:
setRowText(object, SWTConstants.SHARED_LIST_FILE_SIZE_COLUMN_ID, FileFormatter.formatFileSize(file_size)); String mime_type = FileFormatter.formatMimeType(object.getMimeType()); setRowText(object,SWTConstants.SHARED_LIST_FILE_TYPE_COLUMN_ID,mime_type); double percent_completed = 100d; if (object instanceof PartialFile) { PartialFile partial_file = (PartialFile)object; percent_completed = partial_file.getPercentCompleted(); } if (status == HASHED) { setRowText(object,SWTConstants.SHARED_LIST_COMPLETED_COLUMN_ID,FileFormatter.formatProgress(percent_completed)); } if (status == HASHED) { setRowText(object,SWTConstants.SHARED_LIST_FILE_ID_COLUMN_ID, object.getFileHash().getAsString()); } else if (status == HASHING) setRowText(object,SWTConstants.SHARED_LIST_FILE_ID_COLUMN_ID, _._("mainwindow.sharedtab.label.hashing")); else setRowText(object,SWTConstants.SHARED_LIST_FILE_ID_COLUMN_ID, _._("mainwindow.sharedtab.label.waiting_to_hash")); } }; int width; width = SWTPreferences.getInstance().getColumnWidth(SWTConstants.SHARED_LIST_FILE_NAME_COLUMN_ID); shared_files_table.addColumn(SWT.LEFT, SWTConstants.SHARED_LIST_FILE_NAME_COLUMN_ID, _._("mainwindow.sharedtab.column.filename"), "", width); width = SWTPreferences.getInstance().getColumnWidth(SWTConstants.SHARED_LIST_FILE_SIZE_COLUMN_ID); shared_files_table.addColumn(SWT.RIGHT, SWTConstants.SHARED_LIST_FILE_SIZE_COLUMN_ID, _._("mainwindow.sharedtab.column.filesize"), "", width); width = SWTPreferences.getInstance().getColumnWidth(SWTConstants.SHARED_LIST_FILE_TYPE_COLUMN_ID); shared_files_table.addColumn(SWT.LEFT, SWTConstants.SHARED_LIST_FILE_TYPE_COLUMN_ID, _._("mainwindow.sharedtab.column.filetype"), "",width); width = SWTPreferences.getInstance().getColumnWidth(SWTConstants.SHARED_LIST_FILE_ID_COLUMN_ID); shared_files_table.addColumn(SWT.LEFT, SWTConstants.SHARED_LIST_FILE_ID_COLUMN_ID, _._("mainwindow.sharedtab.column.fileid"), "", width); width = SWTPreferences.getInstance().getColumnWidth(SWTConstants.SHARED_LIST_COMPLETED_COLUMN_ID); shared_files_table.addColumn(SWT.RIGHT, SWTConstants.SHARED_LIST_COMPLETED_COLUMN_ID, _._("mainwindow.sharedtab.column.completed"), "", width); shared_files_table.updateColumnSettings(); no_items_menu = new Menu(shared_files_table); MenuItem column_setup_menu_item = new MenuItem(no_items_menu,SWT.PUSH); column_setup_menu_item.setText(_._("mainwindow.sharedtab.popupmenu.column_setup")); column_setup_menu_item.setImage(SWTImageRepository.getImage("columns_setup.png")); column_setup_menu_item.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { shared_files_table.showColumnEditorWindow(); }}); select_menu = new Menu(shared_files_table); open_selected_menu_item = new MenuItem(select_menu,SWT.PUSH); open_selected_menu_item.setText(_._("mainwindow.sharedtab.popupmenu.open")); open_selected_menu_item.setImage(SWTImageRepository.getImage("open_file.png")); open_selected_menu_item.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { openSelected(); }}); copy_ed2k_link_menu_item = new MenuItem(select_menu,SWT.PUSH); copy_ed2k_link_menu_item.setText(_._("mainwindow.sharedtab.popupmenu.copy_ed2k_link")); copy_ed2k_link_menu_item.setImage(SWTImageRepository.getImage("ed2k_link.png")); copy_ed2k_link_menu_item.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { copyED2KLink(); }}); remove_from_disk_menu_item = new MenuItem(select_menu,SWT.PUSH); remove_from_disk_menu_item.setText(_._("mainwindow.sharedtab.popupmenu.remove_from_disk")); remove_from_disk_menu_item.setImage(SWTImageRepository.getImage("cancel.png")); remove_from_disk_menu_item.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { removeFromDisk(); }}); MenuItem selected_column_setup_menu_item = new MenuItem(select_menu,SWT.PUSH); selected_column_setup_menu_item.setText(_._("mainwindow.sharedtab.popupmenu.column_setup")); selected_column_setup_menu_item.setImage(SWTImageRepository.getImage("columns_setup.png")); selected_column_setup_menu_item.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { shared_files_table.showColumnEditorWindow(); }}); new MenuItem(select_menu,SWT.SEPARATOR); properties_menu_item = new MenuItem(select_menu,SWT.PUSH); properties_menu_item.setText(_._("mainwindow.sharedtab.popupmenu.properties")); properties_menu_item.setImage(SWTImageRepository.getImage("info.png")); properties_menu_item.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { SharedFile shared_file = shared_files_table.getSelectedObject(); SharedFilePropertiesWindow window = new SharedFilePropertiesWindow(shared_file); window.getCoreComponents(); window.initUIComponents(); }}); config_manager.addConfigurationListener(new ConfigurationAdapter() { public void sharedDirectoriesChanged(java.util.List<File> sharedDirs) { updateDirList(sharedDirs); } }); updateDirList(null); refreshable = new Refreshable() { public void refresh() { String text = _._("mainwindow.sharedtab.group.shared_files"); SharedFile hashing_file = sharing_manager.getCurrentHashingFile(); if (hashing_file != null) { text +=" Hashing ["; DecimalFormat formatter = new DecimalFormat("0.00"); String file_name = hashing_file.getSharingName(); if (file_name.length()>20) file_name = file_name.substring(0, 20) + "..."; text +=file_name+" : " + formatter.format(sharing_manager.getCurrentHashingFilePercent())+"%"; text +="]"; } shared_files_group.setText(text); for(SharedFile shared_file : shared_files_table.getObjects()) { if (shared_files_table.getRow(shared_file).isVisible()) shared_files_table.updateRow(shared_file); } } }; } private void openSelected() { java.util.List<SharedFile> selected_files = shared_files_table.getSelectedObjects(); for(SharedFile file : selected_files) { if (!file.isCompleted()) continue; String extension = FileFormatter.getFileExtension(file.getSharingName()); Program program = Program.findProgram(extension); if (program == null) continue; program.execute(file.getAbsolutePath()); } } private boolean selectedRunnableFiles() { java.util.List<SharedFile> sharedFiles = shared_files_table.getSelectedObjects(); for(SharedFile file : sharedFiles) { if (!file.isCompleted()) continue; String extension = FileFormatter.getFileExtension(file.getSharingName()); Program program = Program.findProgram(extension); if (program != null) return true; } return false; } private void removeSelectedDir() { if (!Utils.showConfirmMessage(getShell(), _._("mainwindow.sharedtab.confirm_remove_shared_dir_title"), _._("mainwindow.sharedtab.confirm_remove_shared_dir"))) return ; if (shared_dir_list.getSelectionIndex() == -1) return ; shared_dir_list.remove(shared_dir_list.getSelectionIndex()); writeSharedDirs(); shared_files_table.clear(); remove_button.setEnabled(false); } private void clearDirList() { if (!Utils.showConfirmMessage(getShell(), _._("mainwindow.sharedtab.confirm_clear_dir_list_title"), _._("mainwindow.sharedtab.confirm_clear_dir_list"))) return ; while(shared_dir_list.getItemCount()-1>no_remove_id_end) { shared_dir_list.remove(no_remove_id_end+1); } writeSharedDirs(); shared_files_table.clear(); remove_button.setEnabled(false); } private void writeSharedDirs() { java.util.List<File> shared_list = new java.util.ArrayList<File>(); for(int i = 0; i<shared_dir_list.getItemCount();i++) { if (i<=no_remove_id_end) continue; shared_list.add(new File(shared_dir_list.getItem(i))); } _core.getConfigurationManager().setSharedFolders(shared_list); } private void copyED2KLink() { java.util.List<SharedFile> list = shared_files_table.getSelectedObjects(); String text=""; for(SharedFile file : list) { text += file.getED2KLink().getAsString() + System.getProperty("line.separator"); } Utils.setClipBoardText(text); } private void removeFromDisk() { if (!Utils.showConfirmMessage(getShell(), _._("mainwindow.sharedtab.confirm_remove_from_disk_title"), _._("mainwindow.sharedtab.confirm_remove_from_disk"))) return ; SharingManager sharing_manager = _core.getSharingManager(); for(SharedFile shared_file : shared_files_table.getSelectedObjects()) { FileUtils.deleteQuietly(shared_file.getFile()); sharing_manager.removeSharedFile(shared_file.getFileHash()); shared_files_table.removeRow(shared_file); } } private void updateDirList(final java.util.List<File> directoryList) { SWTThread.getDisplay().asyncExec(new JMRunnable() { public void JMRun() { shared_dir_list.removeAll();// java.util.List<File> directoryList2 = null; shared_dir_list.add(_._("mainwindow.sharedtab.shared_dirs.incoming")); shared_dir_list.add(_._("mainwindow.sharedtab.shared_dirs.partial")); shared_dir_list.add(_._("mainwindow.sharedtab.shared_dirs.all")); clear_button.setEnabled(false); if (directoryList == null) return ; //directoryList2 = _core.getConfigurationManager().getSharedFolders();// else // return ; for(File file : directoryList) { shared_dir_list.add(file.getAbsolutePath()); } clear_button.setEnabled(true); } }); } private JMThread file_list_updater; private void updateFileList(final String dir) { if (file_list_updater!=null) if (file_list_updater.isAlive()) { file_list_updater.JMStop(); } file_list_updater = new JMThread() { private boolean stop = false; public void JMStop() { stop = true; interrupt(); } public void run() { File shared_dir = null; SWTThread.getDisplay().syncExec(new JMRunnable() { public void JMRun() { shared_files_table.clear(); }}); if (dir.equals(_._("mainwindow.sharedtab.shared_dirs.incoming"))) shared_dir = new File(ConfigurationManager.INCOMING_DIR); else if (dir.equals(_._("mainwindow.sharedtab.shared_dirs.partial"))) { SharingManager manager = _core.getSharingManager(); final java.util.List<PartialFile> partial_file_list = manager.getPartialFiles(); for(final SharedFile partial_file : partial_file_list ) { if (stop) return ; SWTThread.getDisplay().syncExec(new JMRunnable() { public void JMRun() { shared_files_table.addRow(partial_file); }}); } return ; } if (!dir.equals(_._("mainwindow.sharedtab.shared_dirs.all"))) { // files from selected dir if (shared_dir == null) shared_dir = new File(dir); Iterator<File> i = FileUtils.iterateFiles(shared_dir, null, true); while(i.hasNext()) { if (stop) return ; File shared_file = i.next(); if (shared_file.isDirectory()) continue; final SharedFile file = sharing_manager.getSharedFile(shared_file); if (file!=null) SWTThread.getDisplay().syncExec(new JMRunnable() { public void JMRun() { shared_files_table.addRow(file); } }); java.util.List<CompletedFile> unhashed_file_list = sharing_manager.getUnhashedFiles(); if (unhashed_file_list == null) continue ; for(final SharedFile unhashed_file : unhashed_file_list) { if (unhashed_file.getFile().equals(shared_file)) SWTThread.getDisplay().syncExec(new JMRunnable() { public void JMRun() { shared_files_table.addRow(unhashed_file); }}); } } } else { // all files SWTThread.getDisplay().syncExec(new JMRunnable() { public void JMRun() { java.util.List<CompletedFile> unhashed_file_list = sharing_manager.getUnhashedFiles(); if (unhashed_file_list == null) return ; for(SharedFile file : unhashed_file_list) { shared_files_table.addRow(file); } }}); SharingManager manager = _core.getSharingManager(); final JMIterable<SharedFile> shared_files = manager.getSharedFiles(); for(final SharedFile file : shared_files) { if (stop) return ; SWTThread.getDisplay().syncExec(new JMRunnable() { public void JMRun() { shared_files_table.addRow(file); }}); } } } }; file_list_updater.setName("File list updater"); file_list_updater.start(); } public JMULE_TABS getTabType() { return JMULE_TABS.SHARED; } public void lostFocus() { GUIUpdater.getInstance().removeRefreshable(refreshable); _core.getConfigurationManager().removeConfigurationListener(config_listener); } public void obtainFocus() { GUIUpdater.getInstance().addRefreshable(refreshable); _core.getConfigurationManager().addConfigurationListener(config_listener); } public void disposeTab() { GUIUpdater.getInstance().removeRefreshable(refreshable); _core.getConfigurationManager().removeConfigurationListener(config_listener); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -