⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 downloadpanel.java

📁 基于jxta的局域网P2P文件共享,可以实现局域网中的文件p2p共享,实现文件快速传输及交流
💻 JAVA
字号:
package connex.plugins.filesharing.ui;

import java.awt.*;

import javax.swing.*;
import javax.swing.table.TableCellRenderer;

import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import connex.app.utils.TableUtils.MyTableModel;
import connex.plugins.filesharing.model.DownloadRow;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import connex.plugins.filesharing.FilesharingService;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class DownloadPanel
    extends JLabel {
  BorderLayout borderLayout1 = new BorderLayout();
  JScrollPane jScrollPane1 = new JScrollPane();
  private ImageIcon back = new ImageIcon(
      DownloadPanel.class.getResource("ConneXLogo_alpha5.png"));
  String[] coulumnNames = {
      "Name", "Speed", "Downloaded",
      "Progress", "Time Remaining", "State"};
  private static DownloadPanel dp = null;

  private MyTableModel downTM; //= new MyTableModel(coulumnNames) ;

  JTable jTable1 = new JTable();
  JPanel jPanel1 = new JPanel();
  JCheckBox jCheckBox1 = new JCheckBox();
  BorderLayout borderLayout2 = new BorderLayout();
  JCheckBox jCheckBox2 = new JCheckBox();
  private JPopupMenu popup = new JPopupMenu();
  private JMenuItem item1 = new JMenuItem();
  private int selectedRow;
  JCheckBox jCheckBox3 = new JCheckBox();
  JMenuItem remove = new JMenuItem();
  JMenuItem cancelAll = new JMenuItem();
  JMenuItem removeAll = new JMenuItem();
  private DownloadRow drow;
  JMenuItem open = new JMenuItem();
  public DownloadPanel() {

    try {
      jbInit();
    }
    catch (Exception exception) {
      exception.printStackTrace();
    }
    dp = this;
  }

  private void jbInit() throws Exception {
    this.setBackground(Color.white);
    this.setOpaque(true);
    this.setHorizontalAlignment(SwingConstants.TRAILING);
    this.setHorizontalTextPosition(SwingConstants.LEADING);
    // tm.setColumnNames(coulumnNames) ;
    this.setIcon(back);
    this.setVerticalAlignment(SwingConstants.BOTTOM);
    downTM = new MyTableModel(coulumnNames);
    jTable1.setForeground(Color.red);
    jTable1.setGridColor(SystemColor.inactiveCaption);
    jTable1.setIntercellSpacing(new Dimension(2, 2));
    jTable1.setModel(downTM);
    jTable1.setRowHeight(22);
    jTable1.setShowHorizontalLines(false);
    jTable1.setShowVerticalLines(false);
    jTable1.addMouseListener(new DownloadPanel_jTable1_mouseAdapter(this));
    item1.addActionListener(new DownloadPanel_item1_actionAdapter(this));
    jCheckBox2.addItemListener(new DownloadPanel_jCheckBox2_itemAdapter(this));
    jCheckBox3.setPreferredSize(new Dimension(200, 23));
    jCheckBox3.setText("Clear Canceled");
    jCheckBox3.addItemListener(new DownloadPanel_jCheckBox3_itemAdapter(this));
    jCheckBox2.setPreferredSize(new Dimension(0, 23));
    cancelAll.setText("Cancel all");
    cancelAll.addActionListener(new DownloadPanel_cancelAll_actionAdapter(this));
    removeAll.setText("Remove all");
    removeAll.addActionListener(new DownloadPanel_removeAll_actionAdapter(this));
    remove.addActionListener(new DownloadPanel_remove_actionAdapter(this));
    remove.setText("Remove");
    open.setText(" open file");
    open.addActionListener(new DownloadPanel_open_actionAdapter(this));
    popup.add(item1);
    popup.add(remove);
    popup.add(cancelAll);
    popup.add(removeAll);
    popup.add(open);
    item1.setText("Cancel");
    popup.setInvoker(jTable1);
    this.setLayout(borderLayout1);
    jScrollPane1.setOpaque(false);
    jScrollPane1.getViewport().setOpaque(false);
    jPanel1.setPreferredSize(new Dimension(10, 30));
    jPanel1.setLayout(borderLayout2);
    jCheckBox1.setText("Clear Completed");
    jCheckBox1.addItemListener(new DownloadPanel_jCheckBox1_itemAdapter(this));
    jCheckBox2.setText("Clear Failed");
    this.add(jScrollPane1, java.awt.BorderLayout.CENTER);
    jScrollPane1.getViewport().add(jTable1);
    this.add(jPanel1, java.awt.BorderLayout.SOUTH);
    jPanel1.add(jCheckBox1, java.awt.BorderLayout.WEST);
    jPanel1.add(jCheckBox2, java.awt.BorderLayout.CENTER);
    jPanel1.add(jCheckBox3, java.awt.BorderLayout.EAST);
    jTable1.getColumn("Progress").setCellRenderer(new ProgRenderer());
    jTable1.getColumn("State").setCellRenderer(new IconRenderer());
    ListSelectionModel rowSM = jTable1.getSelectionModel();
    rowSM.addListSelectionListener(new MyDListSelectionListener(this));
  }

  public MyTableModel getModel() {
    return downTM;
  }

  public static DownloadPanel getInstance() {
    if (dp == null) {
      return new DownloadPanel();
    }
    else {
      return dp;
    }
  }

  public boolean isFinishedToClear() {
    return jCheckBox1.isSelected();
  }

  public boolean isFailedToClear() {
    return jCheckBox2.isSelected();
  }

  public boolean isCanceledToClear() {
    return jCheckBox3.isSelected();
  }

  protected void row_Selection(ListSelectionEvent e) {

    //Ignore extra messages.
    if (e.getValueIsAdjusting()) {
      return;
    }

    ListSelectionModel lsm =
        (ListSelectionModel) e.getSource();
    if (!lsm.isSelectionEmpty()) {

      selectedRow = lsm.getMinSelectionIndex();

      //selectedRow is selected

    }

  }

  public void jCheckBox1_itemStateChanged(ItemEvent e) {
    if (jCheckBox1.isSelected()) {

      DownloadRow row = null;
      int count = downTM.getRowCount();

      for (int i = count - 1; i >= 0; i--) {

        row = (DownloadRow) downTM.getRow(i);

        if (row.isDownloaded()) {
          downTM.removeRow(i);

          row.clear();
          row = null;

        }
      }

    }
    //downTM.clear();


  }

  public void jCheckBox2_itemStateChanged(ItemEvent e) {
    if (jCheckBox2.isSelected()) {

      DownloadRow row = null;
      int count = downTM.getRowCount();
      for (int i = count - 1; i >= 0; i--) {
        try {
          row = (DownloadRow) downTM.getRow(i);

          if (row.isFailed()) {
            downTM.removeRow(i);
            row.clear();
            row = null;

          }
        }
        catch (Exception ex) {
        }
      }
      //downTM.clear();

    }

  }

  public void jCheckBox3_itemStateChanged(ItemEvent e) {
    if (jCheckBox3.isSelected()) {

      DownloadRow row = null;
      int count = downTM.getRowCount();
      for (int i = count - 1; i >= 0; i--) {
        try {
          row = (DownloadRow) downTM.getRow(i);

          if (row.isCanceled()) {
            downTM.removeRow(i);
            row.clear();
            row = null;

          }
        }
        catch (Exception ex) {
        }
      }
      //downTM.clear();

    }

  }

  public void jTable1_mouseClicked(MouseEvent e) {

    if (e.getButton() == 3) {
      int i = jTable1.rowAtPoint(e.getPoint());
      jTable1.setRowSelectionInterval(i, i);
      drow = (DownloadRow) downTM.getRow(jTable1.getSelectedRow());
      if (drow.isDownloaded() || drow.isFailed() || drow.isCanceled()) {
        item1.setEnabled(false);
      }
      else {
        item1.setEnabled(true);
      }
      if (downTM.getRowCount() < 1) {
        removeAll.setEnabled(false);
      }
      else {
        removeAll.setEnabled(true);
      }

      popup.show(jTable1, e.getX(), e.getY());

    }

  }

  public void item1_actionPerformed(ActionEvent e) {

    FilesharingService.getInstance().cancelDownload(drow.getID());
  }

  public void remove_actionPerformed(ActionEvent e) {
    FilesharingService.getInstance().cancelDownload(drow.getID());
    drow.remove();
    drow.clear();
    drow = null;

  }

  public void cancelAll_actionPerformed(ActionEvent e) {
    int count = downTM.getRowCount();

    for (int i = count - 1; i >= 0; i--) {

      drow = (DownloadRow) downTM.getRow(i);

      if (!drow.isDownloaded() || !drow.isFailed() || !drow.isCanceled()) {
        FilesharingService.getInstance().cancelDownload(drow.getID());
      }
    }
  }

  public void removeAll_actionPerformed(ActionEvent e) {
    int count = downTM.getRowCount();

    for (int i = count - 1; i >= 0; i--) {

      drow = (DownloadRow) downTM.getRow(i);

      if (!drow.isDownloaded() || !drow.isFailed() || !drow.isCanceled()) {
        FilesharingService.getInstance().cancelDownload(drow.getID());
      }
      drow.remove();
      drow.clear();
      drow = null;
    }
  }

  public void open_actionPerformed(ActionEvent e) {

  }

  private class ProgRenderer
      extends JProgressBar implements
      TableCellRenderer {
    public Component getTableCellRendererComponent(JTable table,
        Object value, boolean isSelected, boolean hasFocus, int row,
        int column) {
      try {
        this.setValue(new Integer(value.toString()).intValue());
      }
      catch (NumberFormatException e) {

      }
      this.setStringPainted(true);
      return this;
    }

  }

  private class IconRenderer
      extends JLabel implements
      TableCellRenderer {
    public Component getTableCellRendererComponent(JTable table,
        Object value, boolean isSelected, boolean hasFocus, int row,
        int column) {
      try {
        if (value instanceof ImageIcon) {
          this.setIcon( (ImageIcon) value);
          this.setText( ( (ImageIcon) value).getDescription());
        }
        this.repaint();
      }
      catch (NumberFormatException e) {

      }

      return this;
    }

  }

}

class DownloadPanel_open_actionAdapter
    implements ActionListener {
  private DownloadPanel adaptee;
  DownloadPanel_open_actionAdapter(DownloadPanel adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.open_actionPerformed(e);
  }
}

class DownloadPanel_cancelAll_actionAdapter
    implements ActionListener {
  private DownloadPanel adaptee;
  DownloadPanel_cancelAll_actionAdapter(DownloadPanel adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.cancelAll_actionPerformed(e);
  }
}

class DownloadPanel_remove_actionAdapter
    implements ActionListener {
  private DownloadPanel adaptee;
  DownloadPanel_remove_actionAdapter(DownloadPanel adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.remove_actionPerformed(e);
  }
}

class DownloadPanel_jCheckBox3_itemAdapter
    implements ItemListener {
  private DownloadPanel adaptee;
  DownloadPanel_jCheckBox3_itemAdapter(DownloadPanel adaptee) {
    this.adaptee = adaptee;
  }

  public void itemStateChanged(ItemEvent e) {
    adaptee.jCheckBox3_itemStateChanged(e);
  }
}

class DownloadPanel_jCheckBox2_itemAdapter
    implements ItemListener {
  private DownloadPanel adaptee;
  DownloadPanel_jCheckBox2_itemAdapter(DownloadPanel adaptee) {
    this.adaptee = adaptee;
  }

  public void itemStateChanged(ItemEvent e) {
    adaptee.jCheckBox2_itemStateChanged(e);
  }
}

class DownloadPanel_item1_actionAdapter
    implements ActionListener {
  private DownloadPanel adaptee;
  DownloadPanel_item1_actionAdapter(DownloadPanel adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.item1_actionPerformed(e);
  }
}

class DownloadPanel_removeAll_actionAdapter
    implements ActionListener {
  private DownloadPanel adaptee;
  DownloadPanel_removeAll_actionAdapter(DownloadPanel adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.removeAll_actionPerformed(e);
  }
}

class DownloadPanel_jTable1_mouseAdapter
    extends MouseAdapter {
  private DownloadPanel adaptee;
  DownloadPanel_jTable1_mouseAdapter(DownloadPanel adaptee) {
    this.adaptee = adaptee;
  }

  public void mouseClicked(MouseEvent e) {
    adaptee.jTable1_mouseClicked(e);
  }
}

class DownloadPanel_jCheckBox1_itemAdapter
    implements ItemListener {
  private DownloadPanel adaptee;
  DownloadPanel_jCheckBox1_itemAdapter(DownloadPanel adaptee) {
    this.adaptee = adaptee;
  }

  public void itemStateChanged(ItemEvent e) {
    adaptee.jCheckBox1_itemStateChanged(e);
  }
}

class MyDListSelectionListener
    implements ListSelectionListener {
  private DownloadPanel adaptee;

  MyDListSelectionListener(DownloadPanel adaptee) {
    this.adaptee = adaptee;
  }

  public void valueChanged(ListSelectionEvent e) {
    adaptee.row_Selection(e);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -