📄 filesview.java
字号:
}
}else{
ok = true;
}
if ( ok ){
if ( !fileInfo.setLink( target )){
MessageBox mb = new MessageBox(getComposite().getShell(),SWT.ICON_ERROR | SWT.OK );
mb.setText(MessageText.getString("FilesView.rename.failed.title"));
mb.setMessage(MessageText.getString("FilesView.rename.failed.text"));
mb.open();
}
row.invalidate();
}
}
}
}finally{
if ( paused ){
manager.resume();
}
}
}
protected void
changePriority(
int type ,
TableRowCore[] rows )
{
if ( manager == null){
return;
}
boolean paused = false;
try{
for (int i=0;i<rows.length;i++){
DiskManagerFileInfo fileInfo = (DiskManagerFileInfo)rows[i].getDataSource(true);
boolean this_paused;
if ( type == 0){
fileInfo.setPriority(true);
this_paused = setSkipped( fileInfo, false, false );
}else if ( type == 1 ){
fileInfo.setPriority(false);
this_paused = setSkipped( fileInfo, false, false );
}else if ( type == 2 ){
this_paused = setSkipped( fileInfo, true, false );
}else{
this_paused = setSkipped( fileInfo, true, true );
}
paused = paused || this_paused;
}
}finally{
if ( paused ){
manager.resume();
}
}
}
protected boolean
setSkipped(
DiskManagerFileInfo info,
boolean skipped,
boolean delete_action )
{
// if we're not managing the download then don't do anything other than
// change the file's priority
if ( !manager.isPersistent()){
info.setSkipped( skipped );
return( false );
}
File existing_file = info.getFile(true);
int existing_storage_type = info.getStorageType();
// we can't ever have storage = COMPACT and !skipped
int new_storage_type;
if ( existing_file.exists()){
if (!skipped ){
new_storage_type = DiskManagerFileInfo.ST_LINEAR;
}else{
boolean delete_file;
if ( delete_action ){
delete_file =
MessageBoxWindow.open(
"FilesView.messagebox.delete.id",
SWT.OK | SWT.CANCEL,
SWT.OK,
getComposite().getDisplay(),
MessageBoxWindow.ICON_WARNING,
MessageText.getString( "FilesView.rename.confirm.delete.title" ),
MessageText.getString( "FilesView.rename.confirm.delete.text", new String[]{ existing_file.toString()})) == SWT.OK;
}else{
delete_file =
MessageBoxWindow.open(
"FilesView.messagebox.skip.id",
SWT.YES | SWT.NO,
SWT.YES | SWT.NO,
getComposite().getDisplay(),
MessageBoxWindow.ICON_WARNING,
MessageText.getString( "FilesView.rename.confirm.delete.title" ),
MessageText.getString( "FilesView.skip.confirm.delete.text", new String[]{ existing_file.toString()})) == SWT.YES;
}
if ( delete_file ){
new_storage_type = DiskManagerFileInfo.ST_COMPACT;
}else{
new_storage_type = DiskManagerFileInfo.ST_LINEAR;
}
}
}else{
if ( skipped ){
boolean compact_disabled = MessageBoxWindow.getRememberedDecision(
"FilesView.messagebox.skip.id",
SWT.YES | SWT.NO ) == SWT.NO;
if ( compact_disabled ){
new_storage_type = DiskManagerFileInfo.ST_LINEAR;
}else{
new_storage_type = DiskManagerFileInfo.ST_COMPACT;
}
}else{
new_storage_type = DiskManagerFileInfo.ST_LINEAR;
}
}
boolean ok;
boolean paused = false;
if ( existing_storage_type != new_storage_type ){
if ( new_storage_type == DiskManagerFileInfo.ST_COMPACT ){
paused = manager.pause();
}
ok = info.setStorageType( new_storage_type );
}else{
ok = true;
}
if ( ok ){
info.setSkipped( skipped );
}
return( paused );
}
/* (non-Javadoc)
* @see org.gudy.azureus2.ui.swt.IView#refresh()
*/
public synchronized void refresh(boolean bForceSort) {
if (refreshing)
return;
refreshing = true;
if(getComposite() == null || getComposite().isDisposed())
return;
removeInvalidFileItems();
DiskManagerFileInfo files[] = getFileInfo();
if (files != null && getTable().getItemCount() != files.length && files.length > 0) {
Object filesCopy[] = new Object[files.length];
System.arraycopy(files, 0, filesCopy, 0, files.length);
addDataSources(filesCopy);
}
super.refresh(bForceSort);
refreshing = false;
}
private void removeInvalidFileItems() {
final DiskManagerFileInfo files[] = getFileInfo();
runForAllRows(new GroupTableRowRunner() {
public void run(TableRowCore row) {
DiskManagerFileInfo fileInfo = (DiskManagerFileInfo)row.getDataSource(true);
if (fileInfo != null && !containsFileInfo(files, fileInfo)) {
removeDataSource(fileInfo);
}
}
});
}
private boolean containsFileInfo(DiskManagerFileInfo[] files,
DiskManagerFileInfo file) {
//This method works with reference comparision
if(files == null || file == null) {
return false;
}
for(int i = 0 ; i < files.length ; i++) {
if(files[i] == file)
return true;
}
return false;
}
/* SubMenu for column specific tasks.
*/
public void addThisColumnSubMenu(String sColumnName, Menu menuThisColumn) {
if (sColumnName.equals("path")) {
path_item = new MenuItem( menuThisColumn, SWT.CHECK );
menuThisColumn.addListener( SWT.Show, new Listener() {
public void handleEvent(Event e) {
path_item.setSelection( show_full_path );
}
});
Messages.setLanguageText(path_item, "FilesView.fullpath");
path_item.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
show_full_path = path_item.getSelection();
columnInvalidate("path");
refreshTable(false);
COConfigurationManager.setParameter( "FilesView.show.full.path", show_full_path );
}
});
}
}
private DiskManagerFileInfo[]
getFileInfo()
{
if (manager == null)
return null;
return( manager.getDiskManagerFileInfo());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -