Package org.gudy.azureus2.core3.download

Examples of org.gudy.azureus2.core3.download.DownloadManager


    return mb.waitUntilClosed();
  }
 
  public void showDownloadBar(Download download, final boolean display) {
    if (!(download instanceof DownloadImpl)) {return;}
    final DownloadManager dm = ((DownloadImpl)download).getDownload();
    if (dm == null) {return;} // Not expecting this, but just in case...
    Utils.execSWTThread(new AERunnable() {
      public void runSupport() {
        if (display) {
          DownloadBar.open(dm, getDisplay().getActiveShell());
View Full Code Here


    if (pluginDataSource != null) {
      return pluginDataSource;
    }

    if (coreDataSource instanceof DownloadManager) {
      DownloadManager dm = (DownloadManager) coreDataSource;
      if (dm != null) {
        try {
          pluginDataSource = DownloadManagerImpl.getDownloadStatic(dm);
        } catch (DownloadException e) { /* Ignore */
        }
 
View Full Code Here

     * We store our image and imageBufer in DownloadManager using
     * setData & getData.
     */

    // Named infoObj so code can be copied easily to the other PiecesItem
    DownloadManager infoObj = (DownloadManager) cell.getDataSource();
    long lCompleted = (infoObj == null) ? 0 : infoObj.getStats().getCompleted();

    boolean bForce = infoObj != null && infoObj.getUserData("PiecesImage") == null;

    if (!cell.setSortValue(lCompleted) && cell.isValid() && !bForce) {
      return;
    }

    if (infoObj == null)
      return;

    //Compute bounds ...
    int newWidth = cell.getWidth();
    if (newWidth <= 0)
      return;
    int newHeight = cell.getHeight();

    int x0 = borderVerticalSize;
    int x1 = newWidth - 1 - borderVerticalSize;
    int y0 = completionHeight + borderHorizontalSize + borderSplit;
    int y1 = newHeight - 1 - borderHorizontalSize;
    int drawWidth = x1 - x0 + 1;
    if (drawWidth < 10 || y1 < 3)
      return;
    boolean bImageBufferValid = true;
    int[] imageBuffer = (int[]) infoObj.getUserData("PiecesImageBuffer");
    if (imageBuffer == null || imageBuffer.length != drawWidth) {
      imageBuffer = new int[drawWidth];
      bImageBufferValid = false;
    }

    Image image = (Image) infoObj.getUserData("PiecesImage");
    GC gcImage;
    boolean bImageChanged;
    Rectangle imageBounds;
    if (image == null || image.isDisposed()) {
      bImageChanged = true;
    } else {
      imageBounds = image.getBounds();
      bImageChanged = imageBounds.width != newWidth
          || imageBounds.height != newHeight;
    }
    if (bImageChanged) {
      if (image != null && !image.isDisposed()) {
        image.dispose();
      }
      image = new Image(SWTThread.getInstance().getDisplay(), newWidth,
          newHeight);
      imageBounds = image.getBounds();
      bImageBufferValid = false;

      // draw border
      gcImage = new GC(image);
      gcImage.setForeground(Colors.grey);
      if (borderHorizontalSize > 0) {
        if (borderVerticalSize > 0) {
          gcImage.drawRectangle(0, 0, newWidth - 1, newHeight - 1);
        } else {
          gcImage.drawLine(0, 0, newWidth - 1, 0);
          gcImage.drawLine(0, newHeight - 1, newWidth - 1, newHeight - 1);
        }
      } else if (borderVerticalSize > 0) {
        gcImage.drawLine(0, 0, 0, newHeight - 1);
        gcImage.drawLine(newWidth - 1, 0, newWidth - 1, newHeight - 1);
      }

      if (borderSplit > 0) {
        gcImage.setForeground(Colors.white);
        gcImage.drawLine(x0, completionHeight + borderHorizontalSize, x1,
            completionHeight + borderHorizontalSize);
      }
    } else {
      gcImage = new GC(image);
    }

    DiskManager disk_manager = infoObj.getDiskManager();

    DiskManagerPiece[] pieces = disk_manager == null ? null
        : disk_manager.getPieces();

    int nbPieces = infoObj.getNbPieces();

    try {

      int nbComplete = 0;
      int a0;
      int a1 = 0;
      for (int i = 0; i < drawWidth; i++) {
        if (i == 0) {
          // always start out with one piece
          a0 = 0;
          a1 = nbPieces / drawWidth;
          if (a1 == 0)
            a1 = 1;
        } else {
          // the last iteration, a1 will be nbPieces
          a0 = a1;
          a1 = ((i + 1) * nbPieces) / (drawWidth);
        }

        int index;

        if (a1 <= a0) {
          index = imageBuffer[i - 1];
        } else {
          int nbAvailable = 0;
          for (int j = a0; j < a1; j++)
            if (pieces != null && pieces[j].isDone())
              nbAvailable++;
          nbComplete += nbAvailable;
          index = (nbAvailable * Colors.BLUES_DARKEST) / (a1 - a0);
          //System.out.println("i="+i+";nbAvailable="+nbAvailable+";nbComplete="+nbComplete+";nbPieces="+nbPieces+";a0="+a0+";a1="+a1);
        }

        if (!bImageBufferValid || imageBuffer[i] != index) {
          imageBuffer[i] = index;
          bImageChanged = true;
          gcImage.setForeground(index == INDEX_COLOR_NONEAVAIL ? Colors.red
              : Colors.blues[index]);
          gcImage.drawLine(i + x0, y0, i + x0, y1);
        }
      }

      // pieces can sometimes be 0 due to timing or bad torrent (well, there's a bug with a /0 error
      // so it can happen somehow :)

      int limit = nbPieces == 0 ? 0 : ((drawWidth * nbComplete) / nbPieces);

      if (limit < drawWidth) {
        gcImage.setBackground(Colors.blues[Colors.BLUES_LIGHTEST]);
        gcImage.fillRectangle(limit + x0, borderHorizontalSize, x1 - limit,
            completionHeight);
      }

      gcImage.setBackground(Colors.colorProgressBar);
      gcImage.fillRectangle(x0, borderHorizontalSize, limit, completionHeight);
    } catch (Exception e) {
      System.out.println("Error Drawing PiecesItem");
      Debug.printStackTrace(e);
    }
    gcImage.dispose();

    Image oldImage = null;
    Graphic graphic = cell.getGraphic();
    if (graphic instanceof UISWTGraphic) {
      oldImage = ((UISWTGraphic) graphic).getImage();
    }
    if (bImageChanged || image != oldImage || !cell.isValid()) {
      if (cell instanceof TableCellSWT) {
        ((TableCellSWT) cell).setGraphic(image);
      } else {
        cell.setGraphic(new UISWTGraphicImpl(image));
      }
      if (bImageChanged) {
        cell.invalidate();
      }
      infoObj.setUserData("PiecesImage", image);
      infoObj.setUserData("PiecesImageBuffer", imageBuffer);
    }
  }
View Full Code Here

    });
    info.setProficiency(TableColumnInfo.PROFICIENCY_ADVANCED);
  }

  public void refresh(TableCell cell) {
    DownloadManager dm = (DownloadManager) cell.getDataSource();
    long value = dm==null?-1:dm.getStats().getAvailWentBadTime();

    if ( value == 0 ){
     
        // zero means no recorded last bad availability time (bad=transition from >=1 -> < 1)
     
      PEPeerManager pm = dm.getPeerManager();
     
      if ( pm  == null || pm.getMinAvailability() < 1.0 ){
       
        long stopped = dm.getDownloadState().getLongAttribute( DownloadManagerState.AT_TIME_STOPPED );
       
        if ( stopped > 0 ){
         
          value = stopped;
         
View Full Code Here

        bounds.y + yOfs, bounds.width - 4,13), true,
        false, SWT.CENTER);
  }

  private int getPercentDone(TableCell cell) {
    DownloadManager dm = (DownloadManager) cell.getDataSource();
    if (dm == null) {
      return 0;
    }
    return dm.getStats().getDownloadCompleted(true);
  }
View Full Code Here

      cell.invalidate();
    }
  }

  public void cellHover(TableCell cell) {
    DownloadManager dm = (DownloadManager) cell.getDataSource();
    cell.setToolTip(TrackerCellUtils.getTooltipText(cell, dm, true));
  }
View Full Code Here

    setRefreshInterval(INTERVAL_LIVE);
    setMinWidthAuto(true);
  }

  public void refresh(TableCell cell) {
    DownloadManager dm = (DownloadManager)cell.getDataSource();
    long value = (dm == null) ? 0 : dm.getStats().getSecondsOnlySeeding();

    if (!cell.setSortValue(value) && cell.isValid())
      return;

    cell.setText(TimeFormatter.format(value));
View Full Code Here

    info.setProficiency(TableColumnInfo.PROFICIENCY_ADVANCED);
  }

  public void refresh(TableCell cell) {
    String ps = "";
    DownloadManager dm = (DownloadManager)cell.getDataSource();
    if (dm != null) {
      String[] nets = dm.getDownloadState().getPeerSources();
 
      for (int i=0;i<nets.length;i++){
       
        ps += (i==0?"":",") + nets[i];
      }
View Full Code Here

    });
    info.setProficiency(TableColumnInfo.PROFICIENCY_INTERMEDIATE);
  }

  public void refresh(TableCell cell) {
    DownloadManager dm = (DownloadManager)cell.getDataSource();
    String name = "";
   
    if( dm != null && dm.getTorrent() != null ) {
      String host = dm.getTorrent().getAnnounceURL().getHost();
      String[] parts = host.split( "\\." );
       
      int used = 0;
      for( int i = parts.length-1; i >= 0; i-- ) {
        if( used > 4 ) break; //don't use more than 4 segments
View Full Code Here

      TrackerCellUtils.updateColor(cell, dm, false);
    }
  }

  public void cellHover(TableCell cell) {
    DownloadManager dm = (DownloadManager) cell.getDataSource();
    cell.setToolTip(TrackerCellUtils.getTooltipText(cell, dm, false));
  }
View Full Code Here

TOP

Related Classes of org.gudy.azureus2.core3.download.DownloadManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.