fuliqi
2024-08-29 4163c93761115c7524ef74a557a1f5e01eafb429
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package com.ycl.api.YS.user;
 
import com.sun.jna.Pointer;
import com.ycl.api.YS.util.Common;
import com.ycl.api.YS.lib.NetDEVSDKLib;
import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_CHN_PERMISSION_INFO_S;
import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_MOTION_DETECTION_AREA_GRID_INFO_S;
import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_USER_DETAIL_INFO_S;
 
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import java.awt.*;
import java.util.Vector;
 
 
public class MaintenaceUserInfoWindow extends JDialog{
    
    private static final long serialVersionUID = 1L;
    NETDEV_MOTION_DETECTION_AREA_GRID_INFO_S stGridInfo;
    private JTable UserTable;
    private Pointer lpUserId;
    private int ChannelID;
    JPanel UserInfoPanel = new JPanel();
    Vector User_HeaderNames;
    NetDEVSDKLib netdevsdk = NetDEVSDKLib.NETDEVSDK_INSTANCE;
    
    public MaintenaceUserInfoWindow(Pointer lpUserID,int ChannelID, String userName) {
        this.lpUserId = lpUserID;
        this.ChannelID = ChannelID;
        this.setSize(1400,800);
        setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
        this.setTitle("User information");
        this.setVisible(true);
        
        Toolkit toolkit=Toolkit.getDefaultToolkit();
        Dimension screenSize =toolkit.getScreenSize();
        int x=(screenSize.width-this.getWidth())/2;
        int y=(screenSize.height-this.getHeight())/2;
        this.setLocation(x,y);
        getContentPane().add(UserInfoPanel, BorderLayout.CENTER);
        UserInfoPanel.setLayout(null);
        UserInfoPanel.setVisible(true);
        
        //判断登陆设备类型为IPC/NVR
        UserTable = new JTable();
        JScrollPane scrollPaneMaintenanceIPC = new JScrollPane(UserTable,
        JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
        JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        scrollPaneMaintenanceIPC.setBounds(33, 20, 1327, 503);
        UserInfoPanel.add(scrollPaneMaintenanceIPC, BorderLayout.CENTER);
        User_HeaderNames = new Vector();
        User_HeaderNames.add("Level");
        User_HeaderNames.add("UserName");
        User_HeaderNames.add("PassWord");
        User_HeaderNames.add("BasePermission");
        User_HeaderNames.add("ChannelID");
        User_HeaderNames.add("Permission");
 
        Vector data = this.getData(userName);
        TableModel tableModel = new DefaultTableModel(data,User_HeaderNames);
        UserTable.setModel(tableModel);    
    }
 
    public Vector getData(String userName) {
         Vector data = new Vector();
 
        NETDEV_USER_DETAIL_INFO_S pstUserDetailInfo = new NETDEV_USER_DETAIL_INFO_S();
        for(int i = 0; i < NetDEVSDKLib.NETDEV_CHANNEL_MAX; i++)
        {
            pstUserDetailInfo.astChnPermission[i] = new NETDEV_CHN_PERMISSION_INFO_S();
        }
        Common.stringToByteArray(userName,pstUserDetailInfo.szUserName);
        pstUserDetailInfo.write();
        boolean bRet = netdevsdk.NETDEV_GetUserDetailInfo(lpUserId, pstUserDetailInfo);
        if(bRet != true)
        {
            System.out.printf("NETDEV_GetUserDetailInfo failed:%d\n", netdevsdk.NETDEV_GetLastError());
            return null;
        }
        pstUserDetailInfo.read();
 
        int i=0;
        while(i<pstUserDetailInfo.udwNum || (pstUserDetailInfo.udwNum == 0 && i <= pstUserDetailInfo.udwNum)){
            
            Vector vtData = new Vector();
            vtData.add(pstUserDetailInfo.udwLevel);
            vtData.add(Common.byteArrayToString(pstUserDetailInfo.szUserName));
            vtData.add(Common.byteArrayToString(pstUserDetailInfo.szPassword));
            vtData.add(pstUserDetailInfo.udwBasePermission);
            vtData.add(pstUserDetailInfo.astChnPermission[i].dwChannelID);
            vtData.add(pstUserDetailInfo.astChnPermission[i].dwPermission);
            data.add(vtData);
            i++;
        }
        return data;
    }
}