📄 sharedtab.java
字号:
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 + -