package set;
/** * <p>Title: </p> * * <p>Description: </p> * * <p>Copyright: Copyright (c) 2007</p> * * <p>Company: </p> * * @author not attributable * @version 1.0 */import java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;import javax.swing.event.*;import javax.swing.table.*;import tools.*;
public class Asset_kinds_set_child extends JPanel { private JButton Asset_manager_set_modi = new JButton("修改"); private JButton Asset_manager_set_add = new JButton("增加"); private JButton Asset_manager_set_del = new JButton("删除"); private TableModel tmd; private String user; private HashMap kindMap = new HashMap(); private HashMap childmap = new HashMap(); private HashMap childmaptemp = new HashMap(); private DBConnection dcon = null; private JButton btn_return = new JButton(); private JScrollPane table_pan = new JScrollPane(); private Mytable model; private JTable table; private String tempID = ""; JComboBox cmb; public Asset_kinds_set_child(String _user) { try { this.user = _user; jbInit(); } catch (Exception ex) { ex.printStackTrace(); } }
private void jbInit() throws Exception { this.setSize(new Dimension(500, 350)); this.setLayout(null); String[] kindsType = new String[2]; Asset_manager_set_modi.setBounds(new Rectangle(171, 37, 65, 32)); Asset_manager_set_add.setBounds(new Rectangle(57, 35, 70, 31)); Asset_manager_set_del.setBounds(new Rectangle(264, 36, 64, 32)); btn_return.setBounds(new Rectangle(369, 37, 62, 31)); btn_return.setToolTipText(""); btn_return.setText("返回"); table_pan.setBounds(new Rectangle(6, 84, 491, 265)); this.add(table_pan); this.add(btn_return); this.add(Asset_manager_set_add); this.add(Asset_manager_set_modi); this.add(Asset_manager_set_del); model = new Mytable(0); model.setTitle(getTitle()); model.setContent(getContents()); table = new JTable(model); table.setFont(new Font("宋体", 1, 17)); table.setRowSelectionAllowed(false); table_pan.getViewport().add(table); table.setRowSelectionAllowed(false); if (getKindList() != null) { JComboBox cmb = new JComboBox(getKindList()); TableColumnModel tcm = table.getColumnModel(); tcm.getColumn(2).setCellEditor(new DefaultCellEditor(cmb)); } initchildmaptemp(); tempID = ""; tmd = table.getModel(); //表格行选择的变更 table.addMouseListener(new MouseListener() { public void mouseClicked(MouseEvent e) { if (table.getSelectedColumn() != -1 && table.getSelectedRow() != -1) { tempID = table.getValueAt(table.getSelectedRow(), 0). toString(); } else { tempID = ""; } }
public void mousePressed(MouseEvent e) { }
public void mouseReleased(MouseEvent e) { }
public void mouseEntered(MouseEvent e) { }
public void mouseExited(MouseEvent e) { } }); btn_return.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { closeAsset_kinds_set(); } }); //表格的变动 tmd.addTableModelListener(new TableModelListener() { public void tableChanged(TableModelEvent e) { String table_id = table.getValueAt(table.getSelectedRow(), 0). toString().trim(); String table_name = table.getValueAt(table.getSelectedRow(), 1). toString().trim(); String table_kindname = table.getValueAt(table.getSelectedRow(), 2). toString().trim(); String temp_name = ((Fatherkinds) childmaptemp.get(table_id)). getName().trim(); String temp_kindname = ((Fatherkinds) childmaptemp.get(table_id)). getKindName().trim(); Fatherkinds fks = new Fatherkinds(table_name, table_kindname); if (!temp_name.equals(table_name) || !(table_kindname.equals(temp_kindname))) { if (childmap.containsKey(table_id)) { Set set = childmap.entrySet(); Iterator it = set.iterator(); while (it.hasNext()) { Map.Entry me = (Map.Entry) it.next(); if (me.getKey().toString().trim().equals( table_id)) { me.setValue(fks); break; } } } else { childmap.put(table_id, fks); } modichildtempMap(table_id, fks); } } }); Asset_manager_set_modi.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (childmap.size() != 0) { dcon = new DBConnection(); Set set = childmap.entrySet(); Iterator it = set.iterator(); while (it.hasNext()) { Map.Entry me = (Map.Entry) it.next(); String id = me.getKey().toString().trim(); String name = ((Fatherkinds) me.getValue()).getName(). trim(); String kindid = getID(((Fatherkinds) me.getValue()). getKindName().trim()); String sql = "update ChildKind set childkind_name = '" + name + "',fatherkind_id='" + kindid + "' where childkind_id='" + id + "'"; dcon.update(1, sql); } JOptionPane.showMessageDialog(table_pan, "修改了" + childmap.size() + "条记录"); childmap.clear(); childmaptemp.clear(); initchildmaptemp(); } } }); Asset_manager_set_del.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (tempID.trim().length() == 0) { JOptionPane.showMessageDialog(table_pan, "还没有选择要操作的记录"); } else { dcon = new DBConnection(); String sql = "select * from Asset where childkind_id='" + tempID.trim() + "'"; if (dcon.isNull(sql)) { JOptionPane.showMessageDialog(table_pan, "下级科目有该类型的记录,不能删除"); } else { sql = "delete from ChildKind where childkind_id='" + tempID.trim() + "'"; dcon.update(1, sql); JOptionPane.showMessageDialog(table_pan, "ID是" + tempID + "被删除"); model.setContent(getContents()); table.updateUI(); childmap.clear(); childmaptemp.clear(); initchildmaptemp();
}
} tempID = ""; } }); Asset_manager_set_add.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { add(); } });
}
//add private void add() { dcon = new DBConnection(); String sql = "select * from FatherKind"; if (dcon.isNull(sql)) { childkindsAdd cka = new childkindsAdd(user); Dimension frmsize = getSize(); Point loc = getLocation(); cka.setLocation((frmsize.width - cka.WIDTH) / 2 + loc.x, (frmsize.height - cka.HEIGHT) / 2 + loc.y); cka.setSize(250, 250); cka.setModal(true); cka.setVisible(true); childmap.clear(); childmaptemp.clear(); initchildmaptemp();
model.setContent(getContents()); table.updateUI(); this.updateUI(); } else { JOptionPane.showMessageDialog(this, "上级科目为空"); } }
//初始化一级科目的临时表 private void initchildmaptemp() { dcon = new DBConnection(); String sql = "select childkind.childkind_id as 科目编号 ,childkind.childkind_name as 科目名称,fatherkind.fatherkind_name as 上级科目 from childkind,fatherkind where (childkind.fatherkind_id = fatherkind.fatherkind_id)"; Vector v = dcon.select(sql); for (int i = 0; i < v.size(); i++) { String id = ((Vector) v.get(i)).get(0).toString(); String name = ((Vector) v.get(i)).get(1).toString(); String kindname = ((Vector) v.get(i)).get(2).toString(); Fatherkinds fk = new Fatherkinds(name, kindname); childmaptemp.put(id, fk); } }
//修改临时的一级科目的临时表 private void modichildtempMap(String id, Fatherkinds m) { Set set = childmaptemp.entrySet(); Iterator it = set.iterator(); while (it.hasNext()) { Map.Entry me = (Map.Entry) it.next(); if (me.getKey().toString().equals(id)) { me.setValue(m); break; } } }
//get kindList private String[] getKindList() { dcon = new DBConnection(); String sql = "select fatherkind_id,fatherkind_name from FatherKind"; Vector v = dcon.select(sql); String[] slist = new String[v.size()]; for (int i = 0; i < v.size(); i++) { String id = ((Vector) v.get(i)).get(0).toString().trim(); String name = ((Vector) v.get(i)).get(1).toString().trim(); slist[i] = name; kindMap.put(name, id); } return slist; }
//get id private String getID(String name) { return kindMap.get(name).toString().trim(); }
//获取表格的列表 private String[] getTitle() { dcon = new DBConnection(); String sql = "select childkind.childkind_id as 科目编号 ,childkind.childkind_name as 科目名称,fatherkind.fatherkind_name as 上级科目 from childkind,fatherkind where (childkind.fatherkind_id = fatherkind.fatherkind_id)"; return dcon.getColumnname(sql); }
//获取表格的内容 private Vector getContents() { dcon = new DBConnection(); String sql = "select childkind.childkind_id as 科目编号 ,childkind.childkind_name as 科目名称,fatherkind.fatherkind_name as 上级科目 from childkind,fatherkind where (childkind.fatherkind_id = fatherkind.fatherkind_id)"; return dcon.select(sql); }
//关闭Asset_manager_set private void closeAsset_kinds_set() { this.removeAll(); Asset_OP asp = new Asset_OP(user); this.add(asp); this.updateUI(); }}