package org.arong.egdownloader.ui.window.form; import java.awt.Color; import java.awt.Window; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JTextField; import javax.swing.SwingUtilities; import org.arong.egdownloader.db.impl.PictureDom4jDbTemplate; import org.arong.egdownloader.db.impl.SettingDom4jDbTemplate; import org.arong.egdownloader.db.impl.TaskDom4jDbTemplate; import org.arong.egdownloader.ui.ComponentConst; import org.arong.egdownloader.ui.ComponentUtil; import org.arong.egdownloader.ui.IconManager; import org.arong.egdownloader.ui.listener.MouseAction; import org.arong.egdownloader.ui.listener.OperaBtnMouseListener; import org.arong.egdownloader.ui.swing.AJButton; import org.arong.egdownloader.ui.swing.AJLabel; import org.arong.egdownloader.ui.swing.AJTextField; import org.arong.egdownloader.ui.window.EgDownloaderWindow; import org.arong.egdownloader.ui.window.GroupWindow; import org.arong.egdownloader.ui.window.InitWindow; import org.arong.egdownloader.ui.work.interfaces.IListenerTask; import org.arong.util.FileUtil; /** * 新建任务窗口 * @author dipoo * @since 2015-01-08 */ public class AddGroupDialog extends JDialog { private static final long serialVersionUID = -1381002320125000355L; public AddGroupDialog(final GroupWindow window, final EgDownloaderWindow mainWindow){ this.setTitle("新建任务组"); this.setIconImage(IconManager.getIcon("add").getImage()); this.setSize(300, 120); this.setResizable(false); this.setLayout(null); this.setLocationRelativeTo(window); JLabel groupNameLabel = new AJLabel("名称:", Color.BLUE, 15, 20, 40, 30); final JTextField groupNameField = new AJTextField("", "", 50, 20, 160, 30); JButton addBtn = new AJButton("新建", IconManager.getIcon("add"), new OperaBtnMouseListener(this, MouseAction.CLICK, new IListenerTask() { public void doWork(Window dialog, MouseEvent event) { AddGroupDialog addGroupDialog = (AddGroupDialog) dialog; String groupName = groupNameField.getText().trim(); //验证名称 if("".equals(groupName)){ JOptionPane.showMessageDialog(null, "名称不能为空"); }else if(! FileUtil.dirValidate(groupName)){ JOptionPane.showMessageDialog(null, "名称不能包含? | * . < > : / \\等特殊字符"); }else{ FileUtil.ifNotExistsThenCreate(ComponentConst.ROOT_DATA_PATH); File dataFile = new File(ComponentConst.ROOT_DATA_PATH); for(File file : dataFile.listFiles()){ if(file.getName().equals(groupName)){ JOptionPane.showMessageDialog(null, "该任务组已存在"); return; } } if (mainWindow != null) { //保存前一个任务组的数据 mainWindow.saveTaskGroupData(); } //if(window) //更新数据路径 ComponentConst.groupName = groupName; ComponentConst.changeDataPath(groupName); ComponentConst.changeDataXmlPath(); if(mainWindow != null){ FileUtil.ifNotExistsThenCreate(ComponentConst.getXmlDirPath()); /** * 更新dom */ SettingDom4jDbTemplate.updateDom(); TaskDom4jDbTemplate.updateDom(); PictureDom4jDbTemplate.updateDom(); mainWindow.dispose(); } if(window != null){ window.dispose(); } addGroupDialog.dispose(); SwingUtilities.invokeLater(new Runnable() { public void run() { new InitWindow(); } }); } } }), 220, 20, 60, 30); addBtn.setUI(AJButton.blueBtnUi); ComponentUtil.addComponents(getContentPane(), groupNameLabel, groupNameField, addBtn); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { //关闭后显示主界面 AddGroupDialog w = (AddGroupDialog)e.getSource(); w.dispose(); } //窗体由激活状态变成非激活状态 public void windowDeactivated(WindowEvent e) { //关闭后显示主界面 AddGroupDialog w = (AddGroupDialog)e.getSource(); w.dispose(); } }); setDefaultCloseOperation(DISPOSE_ON_CLOSE); setVisible(true); } }