📄 mysharesview.java
字号:
}
});
}
private void addCategory() {
CategoryAdderWindow adderWindow = new CategoryAdderWindow(getComposite().getDisplay());
Category newCategory = adderWindow.getNewCategory();
if (newCategory != null)
assignSelectedToCategory(newCategory);
}
private void assignSelectedToCategory(final Category category) {
runForSelectedRows(new GroupTableRowRunner() {
public void run(TableRowCore row) {
String value;
if ( category == null ){
value = null;
}else if ( category == CategoryManager.getCategory(Category.TYPE_UNCATEGORIZED)){
value = null;
}else{
value = category.getName();
}
((ShareResource)row.getDataSource(true)).setAttribute( category_attribute, value );
}
});
}
public void delete() {
super.delete();
try {
azureus_core.getPluginManager().getDefaultPluginInterface().getShareManager().removeListener(this);
}catch( ShareException e ){
Debug.printStackTrace( e );
}
}
private boolean start,stop,remove;
private void
computePossibleActions()
{
start = stop = remove = false;
List items = getSelectedItems();
if (items.size() > 0) {
PluginInterface pi = azureus_core.getPluginManager().getDefaultPluginInterface();
org.gudy.azureus2.plugins.download.DownloadManager dm = pi.getDownloadManager();
remove = true;
for (int i=0; i < items.size(); i++){
ShareItem item = (ShareItem)items.get(i);
try{
Torrent t = item.getTorrent();
Download download = dm.getDownload( t );
if ( download == null ){
continue;
}
int dl_state = download.getState();
if ( dl_state == Download.ST_ERROR ){
}else if ( dl_state != Download.ST_STOPPED ){
stop = true;
}else{
start = true;
}
}catch( Throwable e ){
Debug.printStackTrace(e);
}
}
}
}
public boolean isEnabled(String itemKey) {
if(itemKey.equals("start"))
return start;
if(itemKey.equals("stop"))
return stop;
if(itemKey.equals("remove"))
return remove;
return false;
}
public void itemActivated(String itemKey) {
if(itemKey.equals("remove")){
removeSelectedShares();
return;
}else if ( itemKey.equals( "stop" )){
stopSelectedShares();
}else if ( itemKey.equals( "start" )){
startSelectedShares();
}
}
private List
getSelectedItems()
{
Object[] shares = getSelectedDataSources();
List items = new ArrayList();
if ( shares.length > 0 ){
for (int i=0; i < shares.length; i++){
ShareResource share = (ShareResource)shares[i];
int type = share.getType();
if ( type == ShareResource.ST_DIR ){
ShareResourceDir sr = (ShareResourceDir)share;
items.add( sr.getItem());
}else if ( type == ShareResource.ST_FILE ){
ShareResourceFile sr = (ShareResourceFile)share;
items.add( sr.getItem());
}else{
ShareResourceDirContents cont = (ShareResourceDirContents)share;
List entries = new ArrayList();
getEntries( entries, cont );
for (int j=0;j<entries.size();j++){
share = (ShareResource)entries.get(j);
type = share.getType();
if ( type == ShareResource.ST_DIR ){
ShareResourceDir sr = (ShareResourceDir)share;
items.add( sr.getItem());
}else if ( type == ShareResource.ST_FILE ){
ShareResourceFile sr = (ShareResourceFile)share;
items.add( sr.getItem());
}
}
}
}
}
return( items );
}
private void
getEntries(
List entries,
ShareResourceDirContents cont )
{
ShareResource[] kids = cont.getChildren();
for ( int i=0;i<kids.length;i++){
ShareResource share = kids[i];
int type = share.getType();
if ( type == ShareResource.ST_DIR_CONTENTS ){
getEntries( entries, (ShareResourceDirContents)share );
}else{
entries.add( share );
}
}
}
private void
startStopSelectedShares(
boolean do_stop )
{
List items = getSelectedItems();
PluginInterface pi = azureus_core.getPluginManager().getDefaultPluginInterface();
org.gudy.azureus2.plugins.download.DownloadManager dm = pi.getDownloadManager();
Tracker tracker = pi.getTracker();
for (int i=0;i<items.size();i++){
ShareItem item = (ShareItem)items.get(i);
try{
Torrent t = item.getTorrent();
TrackerTorrent tracker_torrent = tracker.getTorrent( t );
Download download = dm.getDownload( t );
if ( tracker_torrent == null || download == null ){
continue;
}
int dl_state = download.getState();
if ( dl_state == Download.ST_ERROR ){
}else if ( dl_state != Download.ST_STOPPED ){
if ( do_stop ){
try{
download.stop();
}catch( Throwable e ){
}
try{
tracker_torrent.stop();
}catch( Throwable e ){
}
}
}else{
if ( !do_stop ){
try{
download.restart();
}catch( Throwable e ){
}
try{
tracker_torrent.start();
}catch( Throwable e ){
}
}
}
}catch( Throwable e ){
Debug.printStackTrace(e);
}
}
}
private void
startSelectedShares()
{
startStopSelectedShares( false );
}
private void
stopSelectedShares()
{
startStopSelectedShares( true );
}
private void
removeSelectedShares()
{
stopSelectedShares();
Object[] shares = getSelectedDataSources();
for (int i = 0; i < shares.length; i++) {
try{
((ShareResource)shares[i]).delete();
}catch( Throwable e ){
Alerts.showErrorMessageBoxUsingResourceString( "globalmanager.download.remove.veto", e );
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -