Package org.jmule.ui.swing.mainwindow

Source Code of org.jmule.ui.swing.mainwindow.NewED2KLinksPanel$OpPanel

/*
*  JMule - Java file sharing client
*  Copyright (C) 2007-2008 JMule team ( jmule@jmule.org / http://jmule.org )
*
*  Any parts of this program derived from other projects, or contributed
*  by third-party developers are copyrighted by their respective authors.
*
*  This program is free software; you can redistribute it and/or
*  modify it under the terms of the GNU General Public License
*  as published by the Free Software Foundation; either version 2
*  of the License, or (at your option) any later version.
*
*  This program is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*  GNU General Public License for more details.
*
*  You should have received a copy of the GNU General Public License
*  along with this program; if not, write to the Free Software
*  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*
*/
package org.jmule.ui.swing.mainwindow;

import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedList;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

import org.jmule.core.edonkey.ED2KFileLink;
import org.jmule.core.edonkey.ED2KLink;
import org.jmule.core.edonkey.ED2KServerLink;
import org.jmule.ui.IDialog;

/**
*
* Created on Sep 17, 2008
* @author javajox
* @version $Revision: 1.2 $
* Last changed by $Author: javajox $ on $Date: 2009/09/22 19:08:43 $
*/
public class NewED2KLinksPanel extends JDialog implements IDialog {

  private ED2KLinkType ed2k_link_type;
  private List<ED2KLink> ed2k_links;
  private JTable table;
  private JScrollPane scroll_pane;
  private JPanel central_panel;
  private final Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
 
  public class OpPanel extends JPanel {
    private JButton pasteED2KLinksButton;
    private JButton cancelButton;
    private JButton okButton;
    private JButton clearButton;

    public OpPanel() {
      super();
      init();
    }
   
    private void init() {
      GridBagLayout thisLayout = new GridBagLayout();
      this.setPreferredSize(new java.awt.Dimension(438, 45));
      thisLayout.rowWeights = new double[] {0.0};
      thisLayout.rowHeights = new int[] {41};
      thisLayout.columnWeights = new double[] {0.0, 0.0, 0.0, 0.0, 0.1};
      thisLayout.columnWidths = new int[] {0, 87, 106, 133, 20};
      this.setLayout(thisLayout);
      {
        clearButton = new JButton();
        this.add(clearButton, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 5, 0, 5), 0, 0));
        clearButton.setName("clear_button");
      }
      {
        okButton = new JButton();
        this.add(okButton, new GridBagConstraints(3, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 5, 0, 5), 0, 0));
        okButton.setName("ok_button");
      }
      {
        cancelButton = new JButton();
        this.add(cancelButton, new GridBagConstraints(4, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 5, 0, 5), 0, 0));
        cancelButton.setName("cancel_button");
      }
    }
   
    public JButton getPasteED2KLinksButton() {
      return pasteED2KLinksButton;
    }

    public JButton getCancelButton() {
      return cancelButton;
    }

    public JButton getOkButton() {
      return okButton;
    }

    public JButton getClearButton() {
      return clearButton;
    }
  }
 
  public enum ED2KLinkType {
    FILE,
    SERVER
  }
 
  public NewED2KLinksPanel(JFrame parent, ED2KLinkType linkType) {
    super(parent);
    this.ed2k_link_type = linkType;
    init();
  }
 
  private void init() {
    BorderLayout border_layout = new BorderLayout();
    JButton paste_ed2k_links_button = new JButton("Paste ed2k link(s)");
    // for the central panel
    GridBagLayout grid_bag_layout = new GridBagLayout();
    grid_bag_layout.rowWeights = new double[] {0.1, 0.1, 0.1};
    grid_bag_layout.rowHeights = new int[] {7, 7, 7};
    grid_bag_layout.columnWeights = new double[] {0.1};
    grid_bag_layout.columnWidths = new int[] {7};
    central_panel = new JPanel();
    central_panel.setLayout(grid_bag_layout);
    central_panel.add(paste_ed2k_links_button, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 20, 0, 20), 0, 0));
    this.setLayout(border_layout);
    OpPanel op_panel = new OpPanel();
    this.add(op_panel, BorderLayout.SOUTH);
    this.add(central_panel,BorderLayout.CENTER);
    op_panel.getPasteED2KLinksButton().addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent event) {
          try {  
            Object clipboard_contents = clipboard.getData(DataFlavor.stringFlavor);
          switch(ed2k_link_type) {
              case SERVER : List<ED2KServerLink> server_links = ED2KServerLink.extractLinks(clipboard_contents.toString());
                            ed2k_links = new LinkedList<ED2KLink>();
                            for(ED2KServerLink server_link : server_links) {
                              ed2k_links.add(server_link);
                            }
                          //ed2k_links = ED2KServerLink.extractLinks(clipboard_contents.toString());
                            break;
              case FILE : List<ED2KFileLink> file_links = ED2KFileLink.extractLinks(clipboard_contents.toString());
                          ed2k_links = new LinkedList<ED2KLink>();
                          for(ED2KFileLink file_link : file_links) {
                            ed2k_links.add(file_link);
                          }
                          break;
          }
         
          }catch(Throwable t) {
           t.printStackTrace();
          }
      }
    });
    this.setSize(300, 300);
  }
 
  public ED2KLinkType getED2KLinkType() {
   
    return ed2k_link_type;
  }
 
  public DialogAction getDialogAction() {
    // TODO Auto-generated method stub
    return null;
  }
 
  public static void main(String args[]) {
   
    JFrame frame = new JFrame("Super- mega- test system");
    NewED2KLinksPanel links_panel = new NewED2KLinksPanel(frame, NewED2KLinksPanel.ED2KLinkType.FILE);
    frame.setSize(300, 400);
    frame.setVisible(true);
    links_panel.setVisible(true);
   
  }

}
TOP

Related Classes of org.jmule.ui.swing.mainwindow.NewED2KLinksPanel$OpPanel

TOP
Copyright © 2018 www.massapi.com. 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.