package org.fanhongtao.tools.chmbuilder;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class ChmBuilderFrame extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 1L;
private JTextField textChmFile;
private JTextField textHtmlDir;
private JTextField textDefaultHtml;
private JButton createButton;
public ChmBuilderFrame()
{
setTitle("CHM Builder");
// setSize(500, 400);
JPanel panel = new JPanel();
// panel.setLayout(new BorderLayout());
// panel = new JPanel();
// 创建输入选项的控件
panel.setLayout(new GridLayout(0, 2));
add(panel, BorderLayout.CENTER);
JLabel label = new JLabel();
label.setText("CHM file");
panel.add(label);
textChmFile = new JTextField();
panel.add(textChmFile);
label = new JLabel();
label.setText("HTML directory");
panel.add(label);
textHtmlDir = new JTextField();
panel.add(textHtmlDir);
label = new JLabel();
label.setText("HTML index");
panel.add(label);
textDefaultHtml = new JTextField();
panel.add(textDefaultHtml);
// 设置缺省值
textChmFile.setText("Apache.Lang.chm");
textHtmlDir.setText("d:\\java\\Apache\\Commons\\apidocs");
textDefaultHtml.setText("index.html");
JPanel btnPanel = new JPanel();
add(btnPanel, BorderLayout.SOUTH);
createButton = new JButton();
createButton.setText("Create");
createButton.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
buildChm();
}
});
btnPanel.add(createButton);
pack();
}
private void buildChm()
{
String chmFile = textChmFile.getText();
String htmlDir = textHtmlDir.getText();
String defaultHtml = textDefaultHtml.getText();
try
{
ChmBuilder builder = new ChmBuilder(chmFile, htmlDir, defaultHtml, null);
builder.run();
JOptionPane.showMessageDialog(this, "Build success.\nCHM file: " + builder.getChmFileName(), "Info",
JOptionPane.INFORMATION_MESSAGE);
}
catch (IOException e)
{
JOptionPane.showMessageDialog(this, "Build failed.", "Error", JOptionPane.ERROR_MESSAGE);
}
}
/**
* @param args
*/
public static void main(String[] args)
{
ChmBuilderFrame frame = new ChmBuilderFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}