📄 selectorpanel.java.bak
字号:
removeAll.setEnabled(model.getSize() >0) ; } } //工具栏按钮 private void initButtons(JToolBar toolbar){ firstButton = initButton("first.gif"); emptyButtonBorder = new EmptyBorder(firstButton.getBorder().getBorderInsets(firstButton)); normalButtonBorder=UIManager.getBorder("Button.border"); toolbar.add(firstButton); priorButton = initButton("prior.gif"); toolbar.add(priorButton); nextButton = initButton("next.gif"); toolbar.add(nextButton); lastButton = initButton("last.gif"); toolbar.add(lastButton); insertButton = initButton("insert.gif"); toolbar.add(insertButton); deleteButton = initButton("delete.gif"); toolbar.add(deleteButton); //postButton = initButton("post.gif"); //toolbar.add(postButton); //cancelButton = initButton("cancel.gif"); //toolbar.add(cancelButton); //dittoButton = initButton("ditto.gif"); //toolbar.add(dittoButton); saveButton = initButton("save.gif"); toolbar.add(saveButton); refreshButton = initButton("refresh.gif"); toolbar.add(refreshButton); } private JButton initButton(String imageName){ JButton jButton = new JButton(new ImageIcon(getClass().getResource("image/".concat(String.valueOf(String.valueOf(imageName)))))); jButton.addMouseListener(new MouseListener()); jButton.setMargin(new Insets(0, 0, 0, 0)); //add(jButton); return jButton; } public Object[] getSelectedValues(){ return selectedModel.getValues() ; } public Object[] getUnselectedValues(){ return unselectedModel.getValues() ; } //组维护菜单 void showMenu(int x,int y){ PopupMenu popup = new PopupMenu(); groupTree.add(popup) ; MenuItem mi1=new MenuItem("添加用户组"); MenuItem mi2=new MenuItem("删除用户组"); popup.add(mi1); popup.add(mi2); //菜单监听事件 mi1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ addGroup(); } }); mi2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ TreePath path=groupTree.getSelectionPath(); final DefaultMutableTreeNode node=(DefaultMutableTreeNode)path.getLastPathComponent(); delGroup(node.getParent()); } }); TreePath path=groupTree.getSelectionPath(); popup.show(groupTree,x,y); } //增加用户组 void addGroup(){ String name=JOptionPane.showInputDialog( getFrame(this), "请输入用户组名称", "提示", JOptionPane.QUESTION_MESSAGE); if(name!=null&&!name.equals("")){ DefaultMutableTreeNode nodenew=new DefaultMutableTreeNode(name); DefaultMutableTreeNode nodeParent ; DefaultTreeModel model=(DefaultTreeModel)(groupTree.getModel()); TreePath[] paths=groupTree.getSelectionPaths(); for(int i=0;i<paths.length;i++){ nodeParent=(DefaultMutableTreeNode)(paths[i].getLastPathComponent()); nodeParent=(DefaultMutableTreeNode)(nodeParent.getRoot()); model.insertNodeInto(nodenew,nodeParent,i); } pm.insertPowerGroup(name) ; } else{ JOptionPane.showMessageDialog( getFrame(this), "模板组名不能为空!", "警告", JOptionPane.ERROR_MESSAGE); } } //删除用户组 void delGroup(TreeNode parent){ int n =JOptionPane.showConfirmDialog( getFrame(this), "你确实要删除该用户组吗?", "警告", JOptionPane.YES_NO_OPTION); if (n == JOptionPane.YES_OPTION) { DefaultMutableTreeNode node=null; DefaultTreeModel model=(DefaultTreeModel)(groupTree.getModel()); TreePath[] paths=groupTree.getSelectionPaths(); for(int i=0;i<paths.length;i++){ node=(DefaultMutableTreeNode)(paths[i].getLastPathComponent()); model.removeNodeFromParent(node); } pm.delPowerGroup(node.toString()) ; System.out.println("delsql:"+pm.getSQL()) ; } } //jsp_group鼠标事件 void jspgroup_mousePressed(MouseEvent e) { if(((e.getModifiers()&InputEvent.BUTTON3_MASK)!=0)&&(groupTree.getSelectionCount()>0)){ showMenu(e.getX(),e.getY()); } //列出组用户和非组用户 pm=new PowerManager(); if(groupname!=null && !groupname.equals(groupTree.getLastSelectedPathComponent().toString())){ groupname=groupTree.getLastSelectedPathComponent().toString() ; setPowerShow(groupname); pm.getAllPowerUser() ; String groupid=pm.getGroupId(groupname); int[] station=ct.groupUser(pm.vGetUsrGrpId(),groupid); if(selectedModel.getSize()>0) removeAllItems() ; if(station.length >0) addSelectedItems(station); } if(groupTree.getLastSelectedPathComponent()!=null && groupname==null){ groupname=groupTree.getLastSelectedPathComponent().toString() ; String groupid=pm.getGroupId(groupname); int[] station=ct.groupUser(pm.vGetUsrGrpId(),groupid); if(station.length > 0) addSelectedItems(station); } //设置button状态 enableButtons() ; } //设置权限显示 public void setPowerShow(String groupname){ if(groupname!=null){ Object[] arrPower = pm.getGroupPower(groupname) ; int row = modTable.getRowCount() ; for(int j=0;j<row-1;j++){ int index = Integer.parseInt(modTable.getValueAt(j,0).toString()); if(arrPower[index].toString().equals("0")) grouppower="没有权限"; if(arrPower[index].toString().equals("1")) grouppower="读权限"; if(arrPower[index].toString().equals("2")) grouppower="写权限"; if(arrPower[index].toString().equals("3")) grouppower="所有权限"; modTable.setValueAt(grouppower,j,4) ; } } } //修改用户组权限 public void setGroupPower(String groupname){ if(groupname!=null){ Object[] arrPower = pm.getGroupPower(groupname) ; int row = modTable.getRowCount() ; for(int j=0;j<row-1;j++){ int index = Integer.parseInt(modTable.getValueAt(j,0).toString()); String powervalue = modTable.getValueAt(j,4).toString(); if(powervalue.equals("没有权限")) arrPower[index]="0"; if(powervalue.equals("读权限")) arrPower[index]="1"; if(powervalue.equals("写权限")) arrPower[index]="2"; if(powervalue.equals("所有权限")) arrPower[index]="3"; } String power=""; for(int i=0;i<arrPower.length;i++){ power=power+arrPower[i].toString(); } pm.upadteTable("powergroup","grpname",groupname,"grppower",power) ; } } //user鼠标事件 void user_mousePressed(MouseEvent e){ if(((e.getModifiers()&InputEvent.BUTTON3_MASK)!=0)){ showUserMenu(e.getX(),e.getY()); } } //用户维护菜单 void showUserMenu(int x,int y){ PopupMenu popup = new PopupMenu(); unselectedList.add(popup) ; MenuItem mi1=new MenuItem("添加用户"); MenuItem mi2=new MenuItem("删除用户"); popup.add(mi1); popup.add(mi2); if(unselectedList.getSelectedIndex() < 0){ mi2.setEnabled(false) ; } //菜单监听事件 mi1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ addUser(); } }); mi2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ //TreePath path=groupTree.getSelectionPath(); //final DefaultMutableTreeNode node=(DefaultMutableTreeNode)path.getLastPathComponent(); delUser(); } }); //TreePath path=groupTree.getSelectionPath();*/ popup.show(unselectedList,x,y); } //增加用户 void addUser(){ Object name=JOptionPane.showInputDialog( getFrame(this), "请输入用户编号", "提示", JOptionPane.QUESTION_MESSAGE); int rowCount=userTable.getRowCount(); int colNum=userTable.getSelectedColumn(); boolean isIn=true; for(int i=0;i<rowCount;i++){ if(userTable.getValueAt(i,0).equals(name)) isIn=false; } if(name!=null && isIn && !name.equals("")){ int[] selections = unselectedList.getSelectedIndices() ; unselectedModel.map.put(name,name) ; unselectedModel.takeEntriesFrom(unselectedModel,selections,"insert") ; //int rowCount=userTable.getRowCount(); //int colNum=userTable.getSelectedColumn(); tvu.addTableRows() ; tvu.setValueAt(name,rowCount,0) ; tvu.setValueAt("password",rowCount,2) ; userTable.setRowSelectionInterval(rowCount,rowCount); jvp.setViewPosition(new Point(0,userTable.getHeight())); jvp.setView(userTable); pm.insertPowerUser(name.toString()) ; //System.out.println(jTableMode.getHeight()); } else{ JOptionPane.showMessageDialog( getFrame(this), "用户编号不能为空且不能重复!", "警告", JOptionPane.ERROR_MESSAGE); } } //删除用户 void delUser(){ int n =JOptionPane.showConfirmDialog( getFrame(this), "你确实要删除该用户吗?", "警告", JOptionPane.YES_NO_OPTION); if (n == JOptionPane.YES_OPTION) { pm.delPowerUser(userTable.getValueAt(rowSel,0).toString()) ; int[] selections = unselectedList.getSelectedIndices() ; selectedModel.takeEntriesFrom(unselectedModel,selections,"remove"); //userTable.getValueAt(rowSel,0) ; tvu.removeTableRows(rowSel); } } //当前TABLE点击响应事件,取得各参数值 public void userTable_mouseClicked(MouseEvent etm){ int rowTotal=userTable.getRowCount(); curRow=userTable.getSelectedRow(); curCol=userTable.getSelectedColumn(); System.out.println("inputMap:"+userTable.getInputMap()) ; System.out.println("oldvalue:"+oldvalue) ; String keyvalue = userTable.getValueAt(curRow,0).toString(); oldvalue = userTable.getValueAt(curRow,curCol).toString() ; System.out.println("newvalue:"+oldvalue) ; /*TableEditor te = new TableEditor(keyvalue,oldvalue,curCol); TableColumnModel tcm=userTable.getColumnModel(); System.out.println("selectedcolumn:"+curCol); TableColumn tc=tcm.getColumn(curCol); tc.setCellEditor(te); System.out.println("停止:"+te.stopCellEditing()) ;*/ } //格式化错误输出 public String getErrMsg(String err){ int len=err.length(); int m=0; String tmpStr=""; while((len-40)>0){ tmpStr=tmpStr+errMsg.substring(m,m+40)+"\n"; m=m+40; len=len-40; } return tmpStr; } class SelectionListener implements ListSelectionListener{ public void valueChanged(ListSelectionEvent event){ JList list = (JList)(event.getSource()); int[] selections = list.getSelectedIndices(); if(selections.length > 0){ int[] indices = {}; list = (list == selectedList ? unselectedList : selectedList); list.setSelectedIndices(indices) ; } enableButtons(); } } class SelectorListModel extends AbstractListModel{ protected TreeMap map; public SelectorListModel(Object[] values){ map = new TreeMap(); if(values!=null){ for(int i=0;i<values.length ;i++){ System.out.println("Mapvalues:"+values[i]+i) ; map.put(values[i],values[i]) ; } } } public SelectorListModel(Object values){ map = new TreeMap(); if(values!=null){ map.put(values,values) ; } } public Object getElementAt(int index){ Set keys = map.keySet() ; return map.get(keys.toArray()[index]); } public int getSize(){ return map.size() ; } public void takeEntriesFrom(SelectorListModel source,int[] rows,String flag){ Object key; Object[] keys = source.map.keySet().toArray() ; for(int i=0;i<rows.length ;i++){ key=keys[rows[i]]; //System.out.println("key:"+key) ; map.put(key,source.map.remove(key)); //增加用户到用户组 if(flag.equals("add")){ pm.addUserToGroup(key.toString(),groupname) ; } if(flag.equals("del")){ pm.delUserFromGroup(key.toString(),groupname); } } source.fireIntervalRemoved(source,0,keys.length-1) ; if(!flag.equals("remove")){ this.fireIntervalAdded(this,0,this.getSize()-1) ; } } public void takeAllEntriesFrom(SelectorListModel source){ map.putAll(source.map) ; int count = source.getSize() ; source.map.clear() ; source.fireIntervalRemoved(source,0,count-1) ; this.fireIntervalAdded(this,0,getSize()-1) ; } public Object[] getValues(){ return map.values().toArray() ; } } class MouseListener extends MouseAdapter{ public void mouseClicked(MouseEvent e){ //sorter.insertrow(table); } public void mousePressed(MouseEvent e){ } public void mouseReleased(MouseEvent e){ JButton button = (JButton)e.getSource(); if(showRollover) if(button.isEnabled()){ //if(!(ui instanceof MetalToolBarUI)) // button.setBorder(normalButtonBorder); } else{ button.setBorder(emptyButtonBorder); } } public void mouseEntered(MouseEvent e){ JButton button = (JButton)e.getSource(); if(showRollover && button.isEnabled()) button.setBorder(normalButtonBorder); } public void mouseExited(MouseEvent e){ JButton button = (JButton)e.getSource(); if(showRollover) button.setBorder(emptyButtonBorder); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -