package com.ycl.api.YS.maintenance;
|
|
import com.sun.jna.Pointer;
|
import com.ycl.api.YS.NetDemo;
|
import com.ycl.api.YS.util.Common;
|
import com.ycl.api.YS.util.DateChooser;
|
import com.ycl.api.YS.util.Util;
|
import com.ycl.api.YS.lib.NetDEVSDKLib;
|
import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_FIND_ALARM_COND_S;
|
import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_FIND_ALARM_INFO_S;
|
|
import javax.swing.*;
|
import javax.swing.border.TitledBorder;
|
import javax.swing.table.DefaultTableModel;
|
import javax.swing.table.TableModel;
|
import java.awt.*;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.text.SimpleDateFormat;
|
import java.util.Vector;
|
|
|
public class MaintenaceAlarmSearchWindow extends JDialog{
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 1L;
|
private JTable AlarmTable;
|
private Pointer lpUserId;
|
private int ChannelID;
|
JPanel MaintanceFindAlarmPanel = new JPanel();
|
|
JLabel startTimeLabel = new JLabel("startTime");
|
JLabel endTimeLabel = new JLabel("endTime");
|
JTextField startTimeField;
|
JTextField endTimeField;
|
|
Vector Alarm_HeaderNames;
|
JButton Alarm_Search = new JButton("search");
|
|
NetDEVSDKLib netdevsdk = NetDEVSDKLib.NETDEVSDK_INSTANCE;
|
|
public MaintenaceAlarmSearchWindow(Pointer lpUserID,int ChannelID) {
|
|
this.lpUserId = lpUserID;
|
this.ChannelID = ChannelID;
|
this.setSize(1400,800);
|
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
|
this.setTitle("Modify Montion DETECTION AREA");
|
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(MaintanceFindAlarmPanel, BorderLayout.CENTER);
|
|
MaintanceFindAlarmPanel.setLayout(null);
|
MaintanceFindAlarmPanel.setVisible(true);
|
startTimeLabel.setBounds(80, 20, 120, 35);
|
MaintanceFindAlarmPanel.add(startTimeLabel);
|
|
endTimeLabel.setBounds(480, 20, 120, 35);
|
MaintanceFindAlarmPanel.add(endTimeLabel);
|
String DateFormat = "yyyy-MM-dd HH:mm:ss";
|
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
JPanel j5 = new JPanel();
|
MaintanceFindAlarmPanel.add(j5);
|
j5.setBounds(143, 20, 196, 30);
|
DateChooser BeginAlarmSearchdateLog = new DateChooser(j5);
|
j5.add(BeginAlarmSearchdateLog);
|
|
JPanel j6 = new JPanel();
|
MaintanceFindAlarmPanel.add(j6);
|
j6.setBounds(539, 25, 196, 30);
|
DateChooser EndAlarmSearchdateLog = new DateChooser(j6);
|
j6.add(EndAlarmSearchdateLog);
|
|
JLabel TimeBorderPanel = new JLabel();
|
TimeBorderPanel.setBorder(new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null));
|
TimeBorderPanel.setBounds(60, 10, 720, 55);
|
MaintanceFindAlarmPanel.add(TimeBorderPanel);
|
|
//判断登陆设备类型为IPC/NVR
|
|
AlarmTable = new JTable();
|
JScrollPane scrollPaneMaintenanceIPC = new JScrollPane(AlarmTable,
|
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
|
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
scrollPaneMaintenanceIPC.setBounds(60, 100, 1300, 503);
|
MaintanceFindAlarmPanel.add(scrollPaneMaintenanceIPC, BorderLayout.CENTER);
|
Alarm_HeaderNames = new Vector();
|
Alarm_HeaderNames.add("AlarmTime");
|
Alarm_HeaderNames.add("AlarmType");
|
|
TableModel tableModel = new DefaultTableModel(Alarm_HeaderNames,0);
|
AlarmTable.setModel(tableModel);
|
|
Alarm_Search.setBounds(800, 20, 80, 35);
|
Alarm_Search.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
if(null == lpUserID){
|
JOptionPane.showMessageDialog(null, "Please Login device first. error code"+NetDemo.netdevsdk.NETDEV_GetLastError());
|
return;
|
}
|
if(ChannelID == 0){
|
JOptionPane.showMessageDialog(null, "Please select an online channel after login.");
|
return;
|
}
|
|
NETDEV_FIND_ALARM_COND_S pstAlarmFindCond = new NETDEV_FIND_ALARM_COND_S();
|
pstAlarmFindCond.dwChannelID = ChannelID;
|
|
|
String BeginTime =BeginAlarmSearchdateLog.jTextFieldDate.getText();
|
String EndTime = EndAlarmSearchdateLog.jTextFieldDate.getText();
|
|
|
|
if(BeginTime == null || "".equals(BeginTime)){
|
JOptionPane.showMessageDialog(null, "Please input startTime.");
|
}
|
if(EndTime == null || "".equals(EndTime)){
|
JOptionPane.showMessageDialog(null, "Please input endTime.");
|
}
|
|
long get1=Common.date2TimeStamp(BeginTime.toString(), DateFormat);
|
|
|
long get2=Common.date2TimeStamp(EndTime.toString(), DateFormat);
|
|
|
|
if(get1>get2) {
|
JOptionPane.showMessageDialog(null, "start time can not more than end time");
|
return;
|
}
|
|
pstAlarmFindCond.tBeginTime = Common.date2TimeStamp(BeginTime.toString(), DateFormat);
|
pstAlarmFindCond.tEndTime = Common.date2TimeStamp(EndTime.toString(), DateFormat);
|
pstAlarmFindCond.write();
|
Pointer logPointer = netdevsdk.NETDEV_FindAlarmInfoList(lpUserID,pstAlarmFindCond);
|
if(logPointer == null){
|
System.out.printf("NETDEV_FindAlarmInfoList failed:%d\n", netdevsdk.NETDEV_GetLastError());
|
if(netdevsdk.NETDEV_GetLastError() == 11){
|
JOptionPane.showMessageDialog(null, "no results were found");
|
}
|
return;
|
}
|
NETDEV_FIND_ALARM_INFO_S pstAlarmInfo = new NETDEV_FIND_ALARM_INFO_S();
|
pstAlarmInfo.write();
|
boolean flag = true;
|
Vector data = new Vector();
|
do {
|
flag = netdevsdk.NETDEV_FindNextAlarmInfo(logPointer,pstAlarmInfo);
|
if(flag == false){
|
System.out.printf("NETDEV_FindNextAlarmInfo failed:%d\n", netdevsdk.NETDEV_GetLastError());
|
break;
|
}
|
pstAlarmInfo.read();
|
Vector vtData = new Vector();
|
vtData.add(Common.timeStamp2Date(String.valueOf(pstAlarmInfo.tAlarmTime), DateFormat));
|
String message=Util.getFindAlarmType(pstAlarmInfo.dwAlarmType);
|
vtData.add(message);
|
data.add(vtData);
|
} while (flag);
|
|
flag = netdevsdk.NETDEV_FindCloseAlarmInfo(logPointer);
|
if(flag == false){
|
System.out.printf("NETDEV_FindCloseAlarmInfo failed:%d\n", netdevsdk.NETDEV_GetLastError());
|
return;
|
}
|
|
DefaultTableModel defaultTableModel = (DefaultTableModel) AlarmTable.getModel();
|
defaultTableModel.setRowCount(0);
|
AlarmTable.setModel(defaultTableModel);
|
|
TableModel tableModel = new DefaultTableModel(data,Alarm_HeaderNames);
|
AlarmTable.setModel(tableModel);
|
|
}
|
});
|
MaintanceFindAlarmPanel.add(Alarm_Search);
|
}
|
|
}
|