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){}
}
}