www.pudn.com > htmlsaver.rar > OpenProject.java


import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.util.*; 
 
public class OpenProject implements ActionListener 
{ 
  protected Project prj; 
  protected Vector files; 
   
  protected JFrame frame; 
   
  protected DefaultListModel model; 
  protected JList list; 
   
  protected JButton save; 
  protected JButton down; 
   
  public OpenProject(Project prj) 
  { 
    this.prj = prj; 
    files = new Vector(); 
     
    if (prj.names.size() == 0) 
    { 
      JOptionPane.showMessageDialog(frame, "还没有命名链接!现在开始!"); 
      getNames(); 
    } 
     
    getFileName(); 
     
    initFrame(); 
  } 
   
  protected void initFrame() 
  { 
    frame = new JFrame("Project: " + prj.prjName); 
    frame.getContentPane().setLayout(new BorderLayout()); 
     
    frame.getContentPane().add(new JLabel("要下载的文件:"),  
      BorderLayout.NORTH); 
     
    model = new DefaultListModel(); 
    for (int i = 0; i < files.size(); i++) 
      model.addElement(files.elementAt(i)); 
    list = new JList(model); 
    frame.getContentPane().add(new JScrollPane(list), BorderLayout.CENTER); 
     
    JPanel p = new JPanel(new GridLayout()); 
     
    save = new JButton("Save Project"); 
    save.addActionListener(this); 
    down = new JButton("Download"); 
    down.addActionListener(this); 
     
    p.add(save); 
    p.add(down); 
     
    frame.getContentPane().add(p, BorderLayout.SOUTH); 
     
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
    frame.setSize(300, 300); 
    frame.show(); 
  } 
   
  protected void getNames() 
  { 
    Vector name = new Vector(); 
    Hashtable names = prj.names; 
    Vector links = prj.links; 
    for (int i = 0; i < links.size(); i++) 
    { 
      /* 
      Link link = (Link)links.elementAt(i); 
      if (names.containsKey(link.url)) 
      { 
        URLName name = (URLName)names.get(link.url); 
        name.add(name.name); 
      } 
      else 
      */ 
        name.add(new String("")); 
    } 
     
    NameURL naming = new NameURL(prj.links, name, prj, frame); 
     
    names.clear(); 
    for (int i = 0; i < name.size(); i++) 
    { 
      String fileName = (String)name.elementAt(i); 
      if (fileName.equals("")) 
        continue; 
       
      Link link = (Link)links.elementAt(i); 
      /* 
      if (names.containsKey(link.url)) 
      */ 
      names.put(link.url, new URLName(link.url, fileName)); 
    } 
  } 
   
  protected void getFileName() 
  { 
    files.clear(); 
     
    Object[] names = prj.names.values().toArray(); 
    NEW_NAME: 
    for (int i = 0; i < names.length; i++) 
    { 
      URLName name = (URLName)names[i]; 
      for (int j = 0; j < files.size(); j++) 
      { 
        String fileName = (String)files.elementAt(j); 
        if (fileName.equals(name.name)) 
          continue NEW_NAME; 
      } 
       
      files.add(name.name); 
    } 
  } 
   
  public void actionPerformed(ActionEvent e) 
  { 
    if (e.getSource() == save) 
    { 
      if (!prj.saveToFile()) 
      { 
        JOptionPane.showMessageDialog(frame, "保存失败!"); 
      } 
      return; 
    } 
    else if (e.getSource() == down) 
    { 
      new DownloadProject(prj, frame); 
    } 
  } 
   
  public static void main(String[] args) 
  { 
    try { 
      new OpenProject(new Project("f:\\other\\BTB.prj")); 
    } 
    catch (Exception e){} 
  } 
}