predelani object dialog do jframe
parent
a3681616bd
commit
c28c2dfe19
|
|
@ -0,0 +1,14 @@
|
||||||
|
autoconnect = true
|
||||||
|
debug = true
|
||||||
|
port = 1225
|
||||||
|
server = 10.5.5.49
|
||||||
|
user = michal
|
||||||
|
volume = 75
|
||||||
|
start_minimalized = false
|
||||||
|
password = Michal2407
|
||||||
|
sound = true
|
||||||
|
debuger = true
|
||||||
|
sound_one_online=sound/schema1/one_online.wav
|
||||||
|
sound_next_offline=sound/schema1/next_offline.wav
|
||||||
|
sound_all_online = sound/schema1/all_online.wav
|
||||||
|
sound_first_offline=sound/schema1/first_offline.wav
|
||||||
|
|
@ -35,8 +35,8 @@ public class MapView extends JPanel {
|
||||||
paintObjects.clear();
|
paintObjects.clear();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
lockImage = ImageIO.read(new File("img/lock.png"));
|
lockImage = ImageIO.read(getClass().getResourceAsStream("/img/lock.png"));
|
||||||
unlockImage = ImageIO.read(new File("img/unlock.png"));
|
unlockImage = ImageIO.read(getClass().getResourceAsStream("/img/unlock.png"));
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
LogFile.printErr("File not found: " + ex);
|
LogFile.printErr("File not found: " + ex);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package jnet.client.gui;
|
package jnet.client.gui;
|
||||||
|
|
||||||
import jnet.client.gui.dialog.ObjectDialog;
|
|
||||||
import jnet.client.Client;
|
import jnet.client.Client;
|
||||||
import jnet.client.ExtAppManager;
|
import jnet.client.ExtAppManager;
|
||||||
import jnet.client.gui.dialog.DialogLocalPing;
|
import jnet.client.gui.dialog.DialogLocalPing;
|
||||||
|
|
@ -11,10 +10,10 @@ import java.awt.event.ActionListener;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import java.awt.event.MouseListener;
|
import java.awt.event.MouseListener;
|
||||||
import java.awt.event.MouseMotionListener;
|
import java.awt.event.MouseMotionListener;
|
||||||
import java.util.Iterator;
|
|
||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
import javax.swing.JMenuItem;
|
import javax.swing.JMenuItem;
|
||||||
import javax.swing.JPopupMenu;
|
import javax.swing.JPopupMenu;
|
||||||
|
import jnet.client.gui.dialog.object.ObjectDialog;
|
||||||
import jnet.lib.Message;
|
import jnet.lib.Message;
|
||||||
import jnet.lib.object.Map;
|
import jnet.lib.object.Map;
|
||||||
import jnet.lib.object.MapObject;
|
import jnet.lib.object.MapObject;
|
||||||
|
|
@ -161,7 +160,8 @@ public class MapViewAction implements MouseMotionListener, MouseListener {
|
||||||
for (Map map : Client.maps) {
|
for (Map map : Client.maps) {
|
||||||
for (MapObject object : map.getObjects()) {
|
for (MapObject object : map.getObjects()) {
|
||||||
if (object.getId() == id) {
|
if (object.getId() == id) {
|
||||||
new ObjectDialog(map.getId(), object, false);
|
//new ObjectDialog(map.getId(), object, false);
|
||||||
|
new ObjectDialog(object);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -200,7 +200,8 @@ public class MapViewAction implements MouseMotionListener, MouseListener {
|
||||||
MapObject mo = new MapObject();
|
MapObject mo = new MapObject();
|
||||||
mo.setX(me.getX());
|
mo.setX(me.getX());
|
||||||
mo.setY(me.getY());
|
mo.setY(me.getY());
|
||||||
new ObjectDialog(map.getId(), mo, true);
|
mo.setMap(map.getId());
|
||||||
|
new ObjectDialog(mo, true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
itemAdd.setEnabled(!map.isLock());
|
itemAdd.setEnabled(!map.isLock());
|
||||||
|
|
|
||||||
|
|
@ -1,607 +0,0 @@
|
||||||
package jnet.client.gui.dialog;
|
|
||||||
|
|
||||||
import jnet.client.Client;
|
|
||||||
import jnet.client.network.NettyClient;
|
|
||||||
import java.awt.BorderLayout;
|
|
||||||
import java.awt.Color;
|
|
||||||
import java.awt.Dimension;
|
|
||||||
import java.awt.event.ActionEvent;
|
|
||||||
import java.awt.event.ActionListener;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
import javax.swing.BorderFactory;
|
|
||||||
import javax.swing.DefaultComboBoxModel;
|
|
||||||
import javax.swing.JButton;
|
|
||||||
import javax.swing.JCheckBox;
|
|
||||||
import javax.swing.JComboBox;
|
|
||||||
import javax.swing.JDialog;
|
|
||||||
import javax.swing.JLabel;
|
|
||||||
import javax.swing.JPanel;
|
|
||||||
import javax.swing.JPasswordField;
|
|
||||||
import javax.swing.JScrollPane;
|
|
||||||
import javax.swing.JTabbedPane;
|
|
||||||
import javax.swing.JTable;
|
|
||||||
import javax.swing.JTextArea;
|
|
||||||
import javax.swing.JTextField;
|
|
||||||
import javax.swing.table.DefaultTableModel;
|
|
||||||
import jnet.lib.EventComparator;
|
|
||||||
import jnet.lib.LogFile;
|
|
||||||
import jnet.lib.Message;
|
|
||||||
import jnet.lib.Status;
|
|
||||||
import jnet.lib.object.Event;
|
|
||||||
import jnet.lib.object.MapObject;
|
|
||||||
import jnet.lib.object.ObjectType;
|
|
||||||
import jnet.lib.object.SnmpProfile;
|
|
||||||
|
|
||||||
public class ObjectDialog extends JDialog {
|
|
||||||
|
|
||||||
private MapObject obj;
|
|
||||||
private int mapId;
|
|
||||||
private Boolean newObject;
|
|
||||||
|
|
||||||
private JTextField nazevText = new JTextField();
|
|
||||||
private JLabel nazevWarning = new JLabel("Název musi mit min. 3 znaky");
|
|
||||||
private JTextField ipText = new JTextField();
|
|
||||||
private JLabel ipWarning = new JLabel("Neplatná IP adresa");
|
|
||||||
private JComboBox<String> typeComboBox = new JComboBox<String>();
|
|
||||||
private JTextField userText = new JTextField();
|
|
||||||
private JPasswordField hesloText = new JPasswordField();
|
|
||||||
private DefaultComboBoxModel<String> snmpmodel = new DefaultComboBoxModel<String>();
|
|
||||||
private JCheckBox disableCheBox = new JCheckBox();
|
|
||||||
private JTextField locationText = new JTextField();
|
|
||||||
private JTextArea descriptionText = new JTextArea();
|
|
||||||
|
|
||||||
private JCheckBox winboxBox = new JCheckBox("Winbox");
|
|
||||||
private JTextField portWinbox = new JTextField("8291");
|
|
||||||
private JCheckBox sshBox = new JCheckBox("SSH");
|
|
||||||
private JTextField portSsh = new JTextField("22");
|
|
||||||
private JCheckBox wwwBox = new JCheckBox("Web");
|
|
||||||
private JTextField portWww = new JTextField("80");
|
|
||||||
private JComboBox<String> wwwVerzeComboBox = new JComboBox<String>();
|
|
||||||
private JCheckBox telnetBox = new JCheckBox("Telnet");
|
|
||||||
private JTextField portTelnet = new JTextField("23");
|
|
||||||
private JCheckBox smstBox = new JCheckBox("Summit SMS");
|
|
||||||
private JTextField portSms = new JTextField("5020");
|
|
||||||
private JComboBox<String> smsVerzeComboBox = new JComboBox<String>();
|
|
||||||
private JComboBox<String> snmpProfileComboBox = new JComboBox<String>();
|
|
||||||
|
|
||||||
public ObjectDialog(int mapId, MapObject obj, boolean newObject) {
|
|
||||||
|
|
||||||
this.obj = obj;
|
|
||||||
this.mapId = mapId;
|
|
||||||
this.newObject = newObject;
|
|
||||||
|
|
||||||
if (newObject) {
|
|
||||||
setTitle("Nový objekt");
|
|
||||||
} else {
|
|
||||||
setTitle("Vlastnosti objektu");
|
|
||||||
}
|
|
||||||
|
|
||||||
setSize(600, 520);
|
|
||||||
setLocationRelativeTo(null);
|
|
||||||
setVisible(true);
|
|
||||||
setAlwaysOnTop(false);
|
|
||||||
setResizable(false);
|
|
||||||
|
|
||||||
setLayout(new BorderLayout());
|
|
||||||
|
|
||||||
JTabbedPane tabbedPane = new JTabbedPane();
|
|
||||||
|
|
||||||
JScrollPane tabNastaveni = new JScrollPane(tabNastaveni(),
|
|
||||||
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
|
|
||||||
|
|
||||||
tabbedPane.addTab("Informace", tabInfo());
|
|
||||||
tabbedPane.addTab("Nastaveni", tabNastaveni);
|
|
||||||
tabbedPane.addTab("Služby", tabSluzby());
|
|
||||||
tabbedPane.addTab("Události", tabUdalosti());
|
|
||||||
//tabbedPane.addTab("Sondy", tabSondy());
|
|
||||||
|
|
||||||
// pokud se jedna o novy objekt
|
|
||||||
if (newObject) {
|
|
||||||
tabbedPane.setSelectedIndex(1); // prepne na kartu nastaveni
|
|
||||||
tabbedPane.setEnabledAt(0, false); // vypne kartu informace
|
|
||||||
tabbedPane.setEnabledAt(3, false); // vypne kartu udalosti
|
|
||||||
}
|
|
||||||
|
|
||||||
add(tabbedPane, BorderLayout.CENTER);
|
|
||||||
|
|
||||||
JPanel pane = new JPanel();
|
|
||||||
JButton save = new JButton("Ulozit");
|
|
||||||
save.addActionListener(new ActionListener() {
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
// kontrola chyb
|
|
||||||
if (nazevText.getText().length() < 3) {
|
|
||||||
nazevWarning.setVisible(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
nazevWarning.setVisible(false);
|
|
||||||
if (!validateIp(ipText.getText())) {
|
|
||||||
ipWarning.setVisible(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
ipWarning.setVisible(false);
|
|
||||||
// ulozeni do objektu
|
|
||||||
obj.setMap(mapId);
|
|
||||||
obj.setName(nazevText.getText());
|
|
||||||
obj.setIp(ipText.getText());
|
|
||||||
obj.setUser(userText.getText());
|
|
||||||
obj.setPassword(new String(hesloText.getPassword()));
|
|
||||||
for (int i = 0; i < Client.objectType.size(); i++) {
|
|
||||||
if (typeComboBox.getSelectedIndex() == i) {
|
|
||||||
obj.setObjectType(Client.objectType.get(i).getId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
obj.setSnmpProfile(Client.snmpProfile.get(snmpProfileComboBox.getSelectedIndex()).getId());
|
|
||||||
obj.setActive(disableCheBox.isSelected());
|
|
||||||
obj.setDescription(descriptionText.getText());
|
|
||||||
obj.setLocation(locationText.getText());
|
|
||||||
|
|
||||||
obj.setWinbox(winboxBox.isSelected());
|
|
||||||
obj.setWinboxPort(portWinbox.getText());
|
|
||||||
obj.setSsh(sshBox.isSelected());
|
|
||||||
obj.setSshPort(portSsh.getText());
|
|
||||||
obj.setWeb(wwwBox.isSelected());
|
|
||||||
obj.setWebPort(portWww.getText());
|
|
||||||
obj.setWebVerze(wwwVerzeComboBox.getSelectedIndex());
|
|
||||||
obj.setTelnet(telnetBox.isSelected());
|
|
||||||
obj.setTelnetPort(portTelnet.getText());
|
|
||||||
obj.setSms(smstBox.isSelected());
|
|
||||||
obj.setSmsPort(portSms.getText());
|
|
||||||
obj.setSmsVerze(smsVerzeComboBox.getSelectedIndex());
|
|
||||||
if (!obj.isActive() || newObject) {
|
|
||||||
obj.setStatus(Status.NA);
|
|
||||||
}
|
|
||||||
// ArrayList<SnmpProbe> probe = new ArrayList<>();
|
|
||||||
// if (!newObject) {
|
|
||||||
// probe.addAll(obj.getSnmpProbe());
|
|
||||||
// }
|
|
||||||
// obj.setSnmpProbe(probe);
|
|
||||||
|
|
||||||
if (newObject) {
|
|
||||||
NettyClient.send(Message.ADD_OBJECT, obj);
|
|
||||||
} else {
|
|
||||||
NettyClient.send(Message.UPDATE_OBJECT, obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
// zavreni dialogu
|
|
||||||
dispose();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
pane.add(save);
|
|
||||||
|
|
||||||
JButton cancel = new JButton("Zrusit");
|
|
||||||
cancel.addActionListener(new ActionListener() {
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
dispose();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
pane.add(cancel);
|
|
||||||
|
|
||||||
add(pane, BorderLayout.PAGE_END);
|
|
||||||
|
|
||||||
// nacteni snmp profilu
|
|
||||||
for (SnmpProfile sp : Client.snmpProfile) {
|
|
||||||
snmpmodel.addElement(sp.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
// doplneni poli dialogu podle vybraneho objektu
|
|
||||||
if (!newObject) {
|
|
||||||
nazevText.setText(obj.getName());
|
|
||||||
ipText.setText(obj.getIp());
|
|
||||||
userText.setText(obj.getUser());
|
|
||||||
hesloText.setText(obj.getPassword());
|
|
||||||
for (int i = 0; i < Client.objectType.size() - 1; i++) {
|
|
||||||
if (obj.getObjectType() == Client.objectType.get(i).getId()) {
|
|
||||||
typeComboBox.setSelectedIndex(i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < Client.snmpProfile.size(); i++) {
|
|
||||||
if (Client.snmpProfile.get(i).getId() == obj.getSnmpProfile()) {
|
|
||||||
snmpProfileComboBox.setSelectedIndex(i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
disableCheBox.setSelected(obj.isActive());
|
|
||||||
descriptionText.setText(obj.getDescription());
|
|
||||||
locationText.setText(obj.getLocation());
|
|
||||||
winboxBox.setSelected(obj.isWinbox());
|
|
||||||
portWinbox.setText(obj.getWinboxPort());
|
|
||||||
sshBox.setSelected(obj.isSsh());
|
|
||||||
portSsh.setText(obj.getSshPort());
|
|
||||||
wwwBox.setSelected(obj.isWeb());
|
|
||||||
portWww.setText(obj.getWebPort());
|
|
||||||
wwwVerzeComboBox.setSelectedIndex(obj.getWebVerze());
|
|
||||||
telnetBox.setSelected(obj.isTelnet());
|
|
||||||
portTelnet.setText(obj.getTelnetPort());
|
|
||||||
smstBox.setSelected(obj.isSms());
|
|
||||||
portSms.setText(obj.getSmsPort());
|
|
||||||
smsVerzeComboBox.setSelectedIndex(obj.getSmsVerze());
|
|
||||||
} else {
|
|
||||||
disableCheBox.setSelected(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
show();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private JPanel tabInfo() {
|
|
||||||
JPanel p = new JPanel(null);
|
|
||||||
/*
|
|
||||||
Map<String, String> label = new HashMap<String, String>();
|
|
||||||
label.put("Popis", "1.3.6.1.2.1.1.1.0");
|
|
||||||
label.put("Uptime", "1.3.6.1.2.1.1.3.0");
|
|
||||||
label.put("Contact", "1.3.6.1.2.1.1.4.0");
|
|
||||||
label.put("Name", "1.3.6.1.2.1.1.5.0");
|
|
||||||
|
|
||||||
if(!newObject){ /// TODO u objektu u kterych neni snmp protokol povolen vraci system err null
|
|
||||||
Thread ti = new Thread() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
super.run();
|
|
||||||
// nacteni snmp profilu
|
|
||||||
String port = "161";
|
|
||||||
String community = "public";
|
|
||||||
int version = SNMPManager.version1;
|
|
||||||
for (SnmpProfile sp : Client.serverSettings.getSnmp()) {
|
|
||||||
if (obj.getSnmpProfile() == sp.getId()) {
|
|
||||||
port = sp.getPort();
|
|
||||||
community = sp.getCommunity();
|
|
||||||
version = sp.getVersion();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
SNMPManager mngr = new SNMPManager(obj.getIp(), port, community, version);
|
|
||||||
try {
|
|
||||||
mngr.start();
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
}
|
|
||||||
int y = 30;
|
|
||||||
for (Entry<String, String> entry : label.entrySet()) {
|
|
||||||
try {
|
|
||||||
JLabel label = new JLabel(entry.getKey());
|
|
||||||
label.setBounds(20, y, 90, 25);
|
|
||||||
JLabel value = new JLabel(mngr.getAsString(new OID(entry.getValue())));
|
|
||||||
value.setBounds(100, y, 200, 25);
|
|
||||||
p.add(label);
|
|
||||||
p.add(value);
|
|
||||||
y += 30;
|
|
||||||
p.revalidate();
|
|
||||||
p.repaint();
|
|
||||||
} catch (Exception e) {
|
|
||||||
LogFile.printErr("Object dialog - SNMP error: " + e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
ti.start();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
private JPanel tabNastaveni() {
|
|
||||||
JPanel p = new JPanel();
|
|
||||||
|
|
||||||
p.setLayout(null);
|
|
||||||
|
|
||||||
JLabel nazevLabel = new JLabel("Název");
|
|
||||||
nazevLabel.setBounds(20, 30, 80, 25);
|
|
||||||
p.add(nazevLabel);
|
|
||||||
|
|
||||||
nazevText.setBounds(110, 30, 160, 25);
|
|
||||||
p.add(nazevText);
|
|
||||||
nazevWarning.setForeground(Color.red);
|
|
||||||
nazevWarning.setBounds(110, 55, 160, 25);
|
|
||||||
nazevWarning.setVisible(false);
|
|
||||||
p.add(nazevWarning);
|
|
||||||
|
|
||||||
JLabel ipLabel = new JLabel("IP adresa");
|
|
||||||
ipLabel.setBounds(300, 30, 80, 25);
|
|
||||||
p.add(ipLabel);
|
|
||||||
|
|
||||||
ipText.setBounds(390, 30, 160, 25);
|
|
||||||
p.add(ipText);
|
|
||||||
ipWarning.setForeground(Color.red);
|
|
||||||
ipWarning.setBounds(390, 55, 160, 25);
|
|
||||||
ipWarning.setVisible(false);
|
|
||||||
p.add(ipWarning);
|
|
||||||
|
|
||||||
JLabel typLabel = new JLabel("Typ");
|
|
||||||
typLabel.setBounds(20, 130, 80, 25);
|
|
||||||
p.add(typLabel);
|
|
||||||
|
|
||||||
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<String>();
|
|
||||||
for (ObjectType obj : Client.objectType) {
|
|
||||||
model.addElement(obj.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
typeComboBox.setModel(model);
|
|
||||||
typeComboBox.setBounds(110, 130, 160, 25);
|
|
||||||
p.add(typeComboBox);
|
|
||||||
|
|
||||||
JLabel userLabel = new JLabel("Uživatel");
|
|
||||||
userLabel.setBounds(20, 80, 80, 25);
|
|
||||||
p.add(userLabel);
|
|
||||||
|
|
||||||
userText.setBounds(110, 80, 160, 25);
|
|
||||||
p.add(userText);
|
|
||||||
|
|
||||||
JLabel hesloLabel = new JLabel("Heslo");
|
|
||||||
hesloLabel.setBounds(300, 80, 80, 25);
|
|
||||||
p.add(hesloLabel);
|
|
||||||
|
|
||||||
hesloText.setBounds(390, 80, 160, 25);
|
|
||||||
p.add(hesloText);
|
|
||||||
|
|
||||||
JLabel snmpLabel = new JLabel("SNMP profil");
|
|
||||||
snmpLabel.setBounds(300, 130, 80, 25);
|
|
||||||
p.add(snmpLabel);
|
|
||||||
|
|
||||||
snmpProfileComboBox.setModel(snmpmodel);
|
|
||||||
snmpProfileComboBox.setBounds(390, 130, 160, 25);
|
|
||||||
p.add(snmpProfileComboBox);
|
|
||||||
|
|
||||||
JLabel disableLabel = new JLabel("Aktivní");
|
|
||||||
disableLabel.setBounds(20, 180, 80, 25);
|
|
||||||
p.add(disableLabel);
|
|
||||||
|
|
||||||
disableCheBox.setBounds(110, 180, 160, 25);
|
|
||||||
p.add(disableCheBox);
|
|
||||||
|
|
||||||
JButton snmpTest = new JButton("Test SNMP");
|
|
||||||
snmpTest.setBounds(390, 180, 160, 25);
|
|
||||||
snmpTest.addActionListener(new ActionListener() {
|
|
||||||
@Override
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
/* TODO idealne at test provede server (ten bude osesilat informace o snmp pozadavky!!!!
|
|
||||||
|
|
||||||
Thread testSnmp = new Thread() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
|
|
||||||
try {
|
|
||||||
// nacteni snmp profilu
|
|
||||||
String port = "161";
|
|
||||||
String community = "public";
|
|
||||||
int version = SNMPManager.version1;
|
|
||||||
for (int i = 0; i < Client.serverSettings.getSnmp().size(); i++) {
|
|
||||||
if (snmpProfileComboBox.getSelectedIndex() == i) {
|
|
||||||
port = Client.serverSettings.getSnmp().get(i).getPort();
|
|
||||||
community = Client.serverSettings.getSnmp().get(i).getCommunity();
|
|
||||||
version = Client.serverSettings.getSnmp().get(i).getVersion();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
SNMPManager mngr = new SNMPManager(ipText.getText(), port, community, version);
|
|
||||||
mngr.start();
|
|
||||||
String desc = mngr.getSysDescr();
|
|
||||||
JOptionPane.showMessageDialog(ObjectDialog.this, "Odpoved: " + desc, "SNMP test", JOptionPane.INFORMATION_MESSAGE);
|
|
||||||
} catch (Exception ex) {
|
|
||||||
JOptionPane.showMessageDialog(ObjectDialog.this, "SNMP se nepodařilo načíst", "SNMP test", JOptionPane.ERROR_MESSAGE);
|
|
||||||
System.err.println("SNMP test error: " + ex.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
testSnmp.start();
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
});
|
|
||||||
p.add(snmpTest);
|
|
||||||
|
|
||||||
JLabel locLabel = new JLabel("Umístění");
|
|
||||||
locLabel.setBounds(20, 230, 80, 25);
|
|
||||||
p.add(locLabel);
|
|
||||||
|
|
||||||
locationText.setBounds(110, 230, 440, 25);
|
|
||||||
p.add(locationText);
|
|
||||||
|
|
||||||
JLabel descLabel = new JLabel("Poznámka");
|
|
||||||
descLabel.setBounds(20, 280, 80, 25);
|
|
||||||
p.add(descLabel);
|
|
||||||
|
|
||||||
descriptionText.setBounds(110, 280, 440, 100);
|
|
||||||
descriptionText.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.BLACK), BorderFactory.createEmptyBorder(10, 10, 10, 10)));
|
|
||||||
p.add(descriptionText);
|
|
||||||
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
private JPanel tabSluzby() {
|
|
||||||
JPanel p = new JPanel();
|
|
||||||
|
|
||||||
p.setLayout(null);
|
|
||||||
|
|
||||||
winboxBox.setBounds(20, 30, 80, 25);
|
|
||||||
p.add(winboxBox);
|
|
||||||
|
|
||||||
JLabel winbox_port = new JLabel("port:");
|
|
||||||
winbox_port.setBounds(130, 30, 60, 25);
|
|
||||||
p.add(winbox_port);
|
|
||||||
|
|
||||||
portWinbox.setBounds(180, 30, 60, 25);
|
|
||||||
p.add(portWinbox);
|
|
||||||
|
|
||||||
sshBox.setBounds(20, 60, 80, 25);
|
|
||||||
p.add(sshBox);
|
|
||||||
|
|
||||||
JLabel ssh_port = new JLabel("port:");
|
|
||||||
ssh_port.setBounds(130, 60, 60, 25);
|
|
||||||
p.add(ssh_port);
|
|
||||||
|
|
||||||
portSsh.setBounds(180, 60, 60, 25);
|
|
||||||
p.add(portSsh);
|
|
||||||
|
|
||||||
wwwBox.setBounds(20, 90, 80, 25);
|
|
||||||
p.add(wwwBox);
|
|
||||||
|
|
||||||
JLabel www_port = new JLabel("port:");
|
|
||||||
www_port.setBounds(130, 90, 60, 25);
|
|
||||||
p.add(www_port);
|
|
||||||
|
|
||||||
portWww.setBounds(180, 90, 60, 25);
|
|
||||||
p.add(portWww);
|
|
||||||
|
|
||||||
JLabel www_verze = new JLabel("verze:");
|
|
||||||
www_verze.setBounds(260, 90, 60, 25);
|
|
||||||
p.add(www_verze);
|
|
||||||
|
|
||||||
wwwVerzeComboBox.setModel(new DefaultComboBoxModel(new String[]{"HTTP", "HTTPS"}));
|
|
||||||
wwwVerzeComboBox.setBounds(320, 90, 80, 25);
|
|
||||||
p.add(wwwVerzeComboBox);
|
|
||||||
|
|
||||||
telnetBox.setBounds(20, 120, 80, 25);
|
|
||||||
p.add(telnetBox);
|
|
||||||
|
|
||||||
JLabel telnet_port = new JLabel("port:");
|
|
||||||
telnet_port.setBounds(130, 120, 60, 25);
|
|
||||||
p.add(telnet_port);
|
|
||||||
|
|
||||||
portTelnet.setBounds(180, 120, 60, 25);
|
|
||||||
p.add(portTelnet);
|
|
||||||
|
|
||||||
smstBox.setBounds(20, 150, 80, 25);
|
|
||||||
p.add(smstBox);
|
|
||||||
|
|
||||||
JLabel sms_port = new JLabel("port:");
|
|
||||||
sms_port.setBounds(130, 150, 60, 25);
|
|
||||||
p.add(sms_port);
|
|
||||||
|
|
||||||
portSms.setBounds(180, 150, 60, 25);
|
|
||||||
p.add(portSms);
|
|
||||||
|
|
||||||
JLabel sms_verze = new JLabel("verze:");
|
|
||||||
sms_verze.setBounds(260, 150, 60, 25);
|
|
||||||
p.add(sms_verze);
|
|
||||||
|
|
||||||
smsVerzeComboBox.setModel(new DefaultComboBoxModel(new String[]{"SDV", "BT"}));
|
|
||||||
smsVerzeComboBox.setBounds(320, 150, 80, 25);
|
|
||||||
p.add(smsVerzeComboBox);
|
|
||||||
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
private JPanel tabUdalosti() {
|
|
||||||
|
|
||||||
String column[] = {"Začátek", "Konec", "Stav"};
|
|
||||||
DefaultTableModel tableModel = new DefaultTableModel(column, 0) {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isCellEditable(int row, int column) {
|
|
||||||
//all cells false
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
try {
|
|
||||||
// TODO pri vytvareni noveho objektu to vyhodi chybu
|
|
||||||
Collections.sort(Client.events, new EventComparator());
|
|
||||||
Collections.reverse(Client.events);
|
|
||||||
if (!newObject) {
|
|
||||||
for (Event e : Client.events) {
|
|
||||||
if (e.getObject() == obj.getId()) {
|
|
||||||
Object[] d = {
|
|
||||||
getDate(e.getStart()),
|
|
||||||
getDate(e.getEnd()),
|
|
||||||
e.getDescription()};
|
|
||||||
tableModel.addRow(d);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
LogFile.printErr("Object log error: " + e.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
JTable table = new JTable(tableModel);
|
|
||||||
table.setPreferredScrollableViewportSize(new Dimension(500, 350)); // Šířka 500, výška 300
|
|
||||||
|
|
||||||
JButton btn = new JButton("Smazat události");
|
|
||||||
btn.addActionListener(new ActionListener() {
|
|
||||||
@Override
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
tableModel.setRowCount(0);
|
|
||||||
NettyClient.send(Message.DELETE_LOG, obj.getId());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
JPanel panel = new JPanel();
|
|
||||||
panel.add(new JScrollPane(table));
|
|
||||||
panel.add(btn);
|
|
||||||
|
|
||||||
return panel;
|
|
||||||
}
|
|
||||||
|
|
||||||
private JPanel tabSondy() {
|
|
||||||
JPanel panel = new JPanel();
|
|
||||||
|
|
||||||
panel.setLayout(new BorderLayout());
|
|
||||||
|
|
||||||
String column[] = {"Popis", "OID", "Aktivni", "Zobrazit"};
|
|
||||||
DefaultTableModel tableModel = new DefaultTableModel(column, 0);
|
|
||||||
if (!newObject) {
|
|
||||||
// try {
|
|
||||||
// for (SnmpProbe p : obj.getSnmpProbe()) {
|
|
||||||
// Object[] d = {p.getName(), p.getOid(), "", ""};
|
|
||||||
// tableModel.addRow(d);
|
|
||||||
// }
|
|
||||||
// } catch (Exception e) {
|
|
||||||
// LogFile.printErr("Probe list " + e.getMessage());
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
JScrollPane table = new JScrollPane();
|
|
||||||
table.add(new JTable(tableModel));
|
|
||||||
panel.add(new JTable(tableModel), BorderLayout.CENTER);
|
|
||||||
|
|
||||||
JPanel jp = new JPanel();
|
|
||||||
jp.add(new JLabel("Přidat: "));
|
|
||||||
panel.add(jp, BorderLayout.PAGE_END);
|
|
||||||
|
|
||||||
return panel;
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean validateIp(String ip) {
|
|
||||||
Pattern pattern = Pattern.compile("^(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])$");
|
|
||||||
Matcher matcher = pattern.matcher(ip);
|
|
||||||
return matcher.matches();
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean validatePort(String port) {
|
|
||||||
try {
|
|
||||||
int pNum = Integer.parseInt(port);
|
|
||||||
if ((pNum > 0) && (pNum < 65536)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
} catch (NumberFormatException e) {
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String getDate(long date) {
|
|
||||||
if (date != 0) {
|
|
||||||
SimpleDateFormat ft = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
|
|
||||||
return ft.format(new Date(date));
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
private String getStatus(int status) {
|
|
||||||
switch (status) {
|
|
||||||
case Status.OK: // online
|
|
||||||
return "online";
|
|
||||||
case Status.WARNING: // warning
|
|
||||||
return "varování";
|
|
||||||
case Status.OFFLINE: // offline
|
|
||||||
return "offline";
|
|
||||||
default: // other
|
|
||||||
return "n/a";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,182 @@
|
||||||
|
package jnet.client.gui.dialog.object;
|
||||||
|
|
||||||
|
import java.awt.BorderLayout;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
import javax.swing.JButton;
|
||||||
|
import javax.swing.JFrame;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
import javax.swing.JTabbedPane;
|
||||||
|
import jnet.client.Client;
|
||||||
|
import jnet.client.network.NettyClient;
|
||||||
|
import jnet.lib.Message;
|
||||||
|
import jnet.lib.Status;
|
||||||
|
import jnet.lib.object.MapObject;
|
||||||
|
|
||||||
|
|
||||||
|
public class ObjectDialog extends JFrame {
|
||||||
|
|
||||||
|
private MapObject obj;
|
||||||
|
private int mapId;
|
||||||
|
private Boolean newObject;
|
||||||
|
|
||||||
|
public ObjectDialog(MapObject obj) {
|
||||||
|
this.obj = obj;
|
||||||
|
this.mapId = obj.getMap();
|
||||||
|
this.newObject = false;
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ObjectDialog(MapObject obj, boolean newObject) {
|
||||||
|
this.obj = new MapObject();
|
||||||
|
this.mapId = obj.getMap();
|
||||||
|
this.newObject = newObject;
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init() {
|
||||||
|
if (newObject) {
|
||||||
|
setTitle("Nový objekt");
|
||||||
|
} else {
|
||||||
|
setTitle(obj.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
setSize(600, 520);
|
||||||
|
setLocationRelativeTo(null);
|
||||||
|
setVisible(true);
|
||||||
|
setAlwaysOnTop(false);
|
||||||
|
setResizable(false);
|
||||||
|
|
||||||
|
setLayout(new BorderLayout());
|
||||||
|
|
||||||
|
JTabbedPane tabbedPane = new JTabbedPane();
|
||||||
|
|
||||||
|
// JScrollPane tabNastaveni = new JScrollPane(tabNastaveni(),
|
||||||
|
// JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
|
||||||
|
|
||||||
|
TabInfo tabInfo = new TabInfo();
|
||||||
|
TabSettings tabSettings = new TabSettings(obj, newObject);
|
||||||
|
TabServices tabServices = new TabServices(obj, newObject);
|
||||||
|
TabEvents tabEvents = new TabEvents(obj);
|
||||||
|
|
||||||
|
tabbedPane.addTab("Informace", tabInfo);
|
||||||
|
tabbedPane.addTab("Nastaveni", tabSettings);
|
||||||
|
tabbedPane.addTab("Služby", tabServices);
|
||||||
|
tabbedPane.addTab("Události", tabEvents);
|
||||||
|
//tabbedPane.addTab("Sondy", tabSondy());
|
||||||
|
|
||||||
|
// pokud se jedna o novy objekt
|
||||||
|
if (newObject) {
|
||||||
|
tabbedPane.setSelectedIndex(1); // prepne na kartu nastaveni
|
||||||
|
tabbedPane.setEnabledAt(0, false); // vypne kartu informace
|
||||||
|
tabbedPane.setEnabledAt(3, false); // vypne kartu udalosti
|
||||||
|
}
|
||||||
|
|
||||||
|
add(tabbedPane, BorderLayout.CENTER);
|
||||||
|
|
||||||
|
JPanel pane = new JPanel();
|
||||||
|
JButton save = new JButton("Ulozit");
|
||||||
|
save.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
// kontrola chyb
|
||||||
|
String nazev = tabSettings.getName();
|
||||||
|
if (nazev == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String ip = tabSettings.getIp();
|
||||||
|
if (ip == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// ulozeni do objektu
|
||||||
|
obj.setMap(mapId);
|
||||||
|
obj.setName(nazev);
|
||||||
|
obj.setIp(ip);
|
||||||
|
obj.setUser(tabSettings.getUser());
|
||||||
|
obj.setPassword(new String(tabSettings.getPassword()));
|
||||||
|
obj.setObjectType(Client.objectType.get(tabSettings.getObjType()).getId());
|
||||||
|
obj.setSnmpProfile(Client.snmpProfile.get(tabSettings.getSnmpProfile()).getId());
|
||||||
|
obj.setActive(tabSettings.isActive());
|
||||||
|
obj.setDescription(tabSettings.getDesc());
|
||||||
|
obj.setLocation(tabSettings.getLoc());
|
||||||
|
// TODO validaci portu
|
||||||
|
obj.setWinbox(tabServices.isWinbox());
|
||||||
|
obj.setWinboxPort(tabServices.getWinboxPort());
|
||||||
|
obj.setSsh(tabServices.isSsh());
|
||||||
|
obj.setSshPort(tabServices.getSshPort());
|
||||||
|
obj.setWeb(tabServices.isWeb());
|
||||||
|
obj.setWebPort(tabServices.getWebPort());
|
||||||
|
obj.setWebVerze(tabServices.getWebVersion());
|
||||||
|
obj.setTelnet(tabServices.isTelnet());
|
||||||
|
obj.setTelnetPort(tabServices.getTelnetPort());
|
||||||
|
obj.setSms(tabServices.isSms());
|
||||||
|
obj.setSmsPort(tabServices.getSmsPort());
|
||||||
|
obj.setSmsVerze(tabServices.getSmsVersion());
|
||||||
|
|
||||||
|
if (!obj.isActive() || newObject) {
|
||||||
|
obj.setStatus(Status.NA);
|
||||||
|
}
|
||||||
|
// ArrayList<SnmpProbe> probe = new ArrayList<>();
|
||||||
|
// if (!newObject) {
|
||||||
|
// probe.addAll(obj.getSnmpProbe());
|
||||||
|
// }
|
||||||
|
// obj.setSnmpProbe(probe);
|
||||||
|
|
||||||
|
if (newObject) {
|
||||||
|
NettyClient.send(Message.ADD_OBJECT, obj);
|
||||||
|
} else {
|
||||||
|
NettyClient.send(Message.UPDATE_OBJECT, obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
// zavreni dialogu
|
||||||
|
dispose();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
pane.add(save);
|
||||||
|
|
||||||
|
JButton cancel = new JButton("Zrusit");
|
||||||
|
cancel.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
dispose();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
pane.add(cancel);
|
||||||
|
|
||||||
|
add(pane, BorderLayout.PAGE_END);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private boolean validatePort(String port) {
|
||||||
|
try {
|
||||||
|
int pNum = Integer.parseInt(port);
|
||||||
|
if ((pNum > 0) && (pNum < 65536)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private String getStatus(int status) {
|
||||||
|
switch (status) {
|
||||||
|
case Status.OK: // online
|
||||||
|
return "online";
|
||||||
|
case Status.WARNING: // warning
|
||||||
|
return "varování";
|
||||||
|
case Status.OFFLINE: // offline
|
||||||
|
return "offline";
|
||||||
|
default: // other
|
||||||
|
return "n/a";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,82 @@
|
||||||
|
package jnet.client.gui.dialog.object;
|
||||||
|
|
||||||
|
import java.awt.Dimension;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Date;
|
||||||
|
import javax.swing.JButton;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
import javax.swing.JScrollPane;
|
||||||
|
import javax.swing.JTable;
|
||||||
|
import javax.swing.table.DefaultTableModel;
|
||||||
|
import jnet.client.Client;
|
||||||
|
import jnet.client.network.NettyClient;
|
||||||
|
import jnet.lib.EventComparator;
|
||||||
|
import jnet.lib.LogFile;
|
||||||
|
import jnet.lib.Message;
|
||||||
|
import jnet.lib.object.Event;
|
||||||
|
import jnet.lib.object.MapObject;
|
||||||
|
|
||||||
|
public class TabEvents extends JPanel {
|
||||||
|
|
||||||
|
private MapObject obj;
|
||||||
|
|
||||||
|
public TabEvents(MapObject obj) {
|
||||||
|
this.obj = obj;
|
||||||
|
|
||||||
|
String column[] = {"Začátek", "Konec", "Stav"};
|
||||||
|
DefaultTableModel tableModel = new DefaultTableModel(column, 0) {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCellEditable(int row, int column) {
|
||||||
|
//all cells false
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
// TODO pri vytvareni noveho objektu to vyhodi chybu
|
||||||
|
Collections.sort(Client.events, new EventComparator());
|
||||||
|
Collections.reverse(Client.events);
|
||||||
|
for (Event e : Client.events) {
|
||||||
|
if (e.getObject() == obj.getId()) {
|
||||||
|
Object[] d = {
|
||||||
|
getDate(e.getStart()),
|
||||||
|
getDate(e.getEnd()),
|
||||||
|
e.getDescription()};
|
||||||
|
tableModel.addRow(d);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
LogFile.printErr("Object log error: " + e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
JTable table = new JTable(tableModel);
|
||||||
|
table.setPreferredScrollableViewportSize(new Dimension(500, 350)); // Šířka 500, výška 300
|
||||||
|
|
||||||
|
JButton btn = new JButton("Smazat události");
|
||||||
|
btn.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
tableModel.setRowCount(0);
|
||||||
|
NettyClient.send(Message.DELETE_LOG, obj.getId());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
this.add(new JScrollPane(table));
|
||||||
|
this.add(btn);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getDate(long date) {
|
||||||
|
if (date != 0) {
|
||||||
|
SimpleDateFormat ft = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
|
||||||
|
return ft.format(new Date(date));
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
package jnet.client.gui.dialog.object;
|
||||||
|
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
|
||||||
|
|
||||||
|
public class TabInfo extends JPanel{
|
||||||
|
|
||||||
|
public TabInfo() {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,165 @@
|
||||||
|
package jnet.client.gui.dialog.object;
|
||||||
|
|
||||||
|
import javax.swing.DefaultComboBoxModel;
|
||||||
|
import javax.swing.JCheckBox;
|
||||||
|
import javax.swing.JComboBox;
|
||||||
|
import javax.swing.JLabel;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
import javax.swing.JTextField;
|
||||||
|
import jnet.lib.object.MapObject;
|
||||||
|
|
||||||
|
class TabServices extends JPanel {
|
||||||
|
|
||||||
|
private MapObject obj;
|
||||||
|
private boolean newObject;
|
||||||
|
|
||||||
|
private JCheckBox winboxBox = new JCheckBox("Winbox");
|
||||||
|
private JTextField portWinbox = new JTextField("8291");
|
||||||
|
private JCheckBox sshBox = new JCheckBox("SSH");
|
||||||
|
private JTextField portSsh = new JTextField("22");
|
||||||
|
private JCheckBox wwwBox = new JCheckBox("Web");
|
||||||
|
private JTextField portWww = new JTextField("80");
|
||||||
|
private JComboBox<String> wwwVerzeComboBox = new JComboBox<String>();
|
||||||
|
private JCheckBox telnetBox = new JCheckBox("Telnet");
|
||||||
|
private JTextField portTelnet = new JTextField("21");
|
||||||
|
private JCheckBox smstBox = new JCheckBox("Summit SMS");
|
||||||
|
private JTextField portSms = new JTextField("5020");
|
||||||
|
private JComboBox<String> smsVerzeComboBox = new JComboBox<String>();
|
||||||
|
|
||||||
|
public TabServices(MapObject obj, boolean newObject) {
|
||||||
|
this.obj = obj;
|
||||||
|
this.newObject = newObject;
|
||||||
|
|
||||||
|
this.setLayout(null);
|
||||||
|
|
||||||
|
winboxBox.setBounds(20, 30, 80, 25);
|
||||||
|
this.add(winboxBox);
|
||||||
|
|
||||||
|
JLabel winbox_port = new JLabel("port:");
|
||||||
|
winbox_port.setBounds(130, 30, 60, 25);
|
||||||
|
this.add(winbox_port);
|
||||||
|
|
||||||
|
portWinbox.setBounds(180, 30, 60, 25);
|
||||||
|
this.add(portWinbox);
|
||||||
|
|
||||||
|
sshBox.setBounds(20, 60, 80, 25);
|
||||||
|
this.add(sshBox);
|
||||||
|
|
||||||
|
JLabel ssh_port = new JLabel("port:");
|
||||||
|
ssh_port.setBounds(130, 60, 60, 25);
|
||||||
|
this.add(ssh_port);
|
||||||
|
|
||||||
|
portSsh.setBounds(180, 60, 60, 25);
|
||||||
|
this.add(portSsh);
|
||||||
|
|
||||||
|
wwwBox.setBounds(20, 90, 80, 25);
|
||||||
|
this.add(wwwBox);
|
||||||
|
|
||||||
|
JLabel www_port = new JLabel("port:");
|
||||||
|
www_port.setBounds(130, 90, 60, 25);
|
||||||
|
this.add(www_port);
|
||||||
|
|
||||||
|
portWww.setBounds(180, 90, 60, 25);
|
||||||
|
this.add(portWww);
|
||||||
|
|
||||||
|
JLabel www_verze = new JLabel("verze:");
|
||||||
|
www_verze.setBounds(260, 90, 60, 25);
|
||||||
|
this.add(www_verze);
|
||||||
|
|
||||||
|
wwwVerzeComboBox.setModel(new DefaultComboBoxModel(new String[]{"HTTP", "HTTPS"}));
|
||||||
|
wwwVerzeComboBox.setBounds(320, 90, 80, 25);
|
||||||
|
this.add(wwwVerzeComboBox);
|
||||||
|
|
||||||
|
telnetBox.setBounds(20, 120, 80, 25);
|
||||||
|
this.add(telnetBox);
|
||||||
|
|
||||||
|
JLabel telnet_port = new JLabel("port:");
|
||||||
|
telnet_port.setBounds(130, 120, 60, 25);
|
||||||
|
this.add(telnet_port);
|
||||||
|
|
||||||
|
portTelnet.setBounds(180, 120, 60, 25);
|
||||||
|
this.add(portTelnet);
|
||||||
|
|
||||||
|
smstBox.setBounds(20, 150, 80, 25);
|
||||||
|
this.add(smstBox);
|
||||||
|
|
||||||
|
JLabel sms_port = new JLabel("port:");
|
||||||
|
sms_port.setBounds(130, 150, 60, 25);
|
||||||
|
this.add(sms_port);
|
||||||
|
|
||||||
|
portSms.setBounds(180, 150, 60, 25);
|
||||||
|
this.add(portSms);
|
||||||
|
|
||||||
|
JLabel sms_verze = new JLabel("verze:");
|
||||||
|
sms_verze.setBounds(260, 150, 60, 25);
|
||||||
|
this.add(sms_verze);
|
||||||
|
|
||||||
|
smsVerzeComboBox.setModel(new DefaultComboBoxModel(new String[]{"SDV", "BT"}));
|
||||||
|
smsVerzeComboBox.setBounds(320, 150, 80, 25);
|
||||||
|
this.add(smsVerzeComboBox);
|
||||||
|
|
||||||
|
// predvyplneni poli
|
||||||
|
if (!newObject) {
|
||||||
|
winboxBox.setSelected(obj.isWinbox());
|
||||||
|
portWinbox.setText(obj.getWinboxPort());
|
||||||
|
sshBox.setSelected(obj.isSsh());
|
||||||
|
portSsh.setText(obj.getSshPort());
|
||||||
|
wwwBox.setSelected(obj.isWeb());
|
||||||
|
portWww.setText(obj.getWebPort());
|
||||||
|
wwwVerzeComboBox.setSelectedIndex(obj.getWebVerze());
|
||||||
|
telnetBox.setSelected(obj.isTelnet());
|
||||||
|
portTelnet.setText(obj.getTelnetPort());
|
||||||
|
smstBox.setSelected(obj.isSms());
|
||||||
|
portSms.setText(obj.getSmsPort());
|
||||||
|
smsVerzeComboBox.setSelectedIndex(obj.getSmsVerze());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isWinbox() {
|
||||||
|
return winboxBox.isSelected();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWinboxPort() {
|
||||||
|
return portWinbox.getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSsh() {
|
||||||
|
return sshBox.isSelected();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSshPort() {
|
||||||
|
return portSsh.getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isWeb() {
|
||||||
|
return wwwBox.isSelected();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWebPort() {
|
||||||
|
return portWww.getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getWebVersion() {
|
||||||
|
return wwwVerzeComboBox.getSelectedIndex();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isTelnet() {
|
||||||
|
return telnetBox.isSelected();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTelnetPort() {
|
||||||
|
return portTelnet.getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSms() {
|
||||||
|
return smstBox.isSelected();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSmsPort() {
|
||||||
|
return portSms.getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSmsVersion() {
|
||||||
|
return smsVerzeComboBox.getSelectedIndex();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,218 @@
|
||||||
|
package jnet.client.gui.dialog.object;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
import javax.swing.BorderFactory;
|
||||||
|
import javax.swing.DefaultComboBoxModel;
|
||||||
|
import javax.swing.JButton;
|
||||||
|
import javax.swing.JCheckBox;
|
||||||
|
import javax.swing.JComboBox;
|
||||||
|
import javax.swing.JLabel;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
import javax.swing.JPasswordField;
|
||||||
|
import javax.swing.JTextArea;
|
||||||
|
import javax.swing.JTextField;
|
||||||
|
import jnet.client.Client;
|
||||||
|
import jnet.lib.object.MapObject;
|
||||||
|
import jnet.lib.object.ObjectType;
|
||||||
|
import jnet.lib.object.SnmpProfile;
|
||||||
|
|
||||||
|
public class TabSettings extends JPanel {
|
||||||
|
|
||||||
|
private MapObject obj;
|
||||||
|
private boolean newObject;
|
||||||
|
|
||||||
|
private JTextField nazevText = new JTextField();
|
||||||
|
private JLabel nazevWarning = new JLabel("Název musi mit min. 3 znaky");
|
||||||
|
private JTextField ipText = new JTextField();
|
||||||
|
private JLabel ipWarning = new JLabel("Neplatná IP adresa");
|
||||||
|
private JComboBox<String> typeComboBox = new JComboBox<String>();
|
||||||
|
private JTextField userText = new JTextField();
|
||||||
|
private JPasswordField hesloText = new JPasswordField();
|
||||||
|
private DefaultComboBoxModel<String> snmpmodel = new DefaultComboBoxModel<String>();
|
||||||
|
private JCheckBox disableCheBox = new JCheckBox();
|
||||||
|
private JTextField locationText = new JTextField();
|
||||||
|
private JTextArea descriptionText = new JTextArea();
|
||||||
|
private JComboBox<String> snmpProfileComboBox = new JComboBox<String>();
|
||||||
|
|
||||||
|
public TabSettings(MapObject obj, boolean newObject) {
|
||||||
|
this.obj = obj;
|
||||||
|
this.newObject = newObject;
|
||||||
|
|
||||||
|
this.setLayout(null);
|
||||||
|
|
||||||
|
JLabel nazevLabel = new JLabel("Název");
|
||||||
|
nazevLabel.setBounds(20, 30, 80, 25);
|
||||||
|
this.add(nazevLabel);
|
||||||
|
|
||||||
|
nazevText.setBounds(110, 30, 160, 25);
|
||||||
|
this.add(nazevText);
|
||||||
|
|
||||||
|
nazevWarning.setForeground(Color.red);
|
||||||
|
nazevWarning.setBounds(110, 55, 160, 25);
|
||||||
|
nazevWarning.setVisible(false);
|
||||||
|
this.add(nazevWarning);
|
||||||
|
|
||||||
|
JLabel ipLabel = new JLabel("IP adresa");
|
||||||
|
ipLabel.setBounds(300, 30, 80, 25);
|
||||||
|
this.add(ipLabel);
|
||||||
|
|
||||||
|
ipText.setBounds(390, 30, 160, 25);
|
||||||
|
this.add(ipText);
|
||||||
|
ipWarning.setForeground(Color.red);
|
||||||
|
ipWarning.setBounds(390, 55, 160, 25);
|
||||||
|
ipWarning.setVisible(false);
|
||||||
|
this.add(ipWarning);
|
||||||
|
|
||||||
|
JLabel typLabel = new JLabel("Typ");
|
||||||
|
typLabel.setBounds(20, 130, 80, 25);
|
||||||
|
this.add(typLabel);
|
||||||
|
|
||||||
|
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<String>();
|
||||||
|
for (ObjectType ot : Client.objectType) {
|
||||||
|
model.addElement(ot.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
typeComboBox.setModel(model);
|
||||||
|
typeComboBox.setBounds(110, 130, 160, 25);
|
||||||
|
this.add(typeComboBox);
|
||||||
|
|
||||||
|
JLabel userLabel = new JLabel("Uživatel");
|
||||||
|
userLabel.setBounds(20, 80, 80, 25);
|
||||||
|
this.add(userLabel);
|
||||||
|
|
||||||
|
userText.setBounds(110, 80, 160, 25);
|
||||||
|
this.add(userText);
|
||||||
|
|
||||||
|
JLabel hesloLabel = new JLabel("Heslo");
|
||||||
|
hesloLabel.setBounds(300, 80, 80, 25);
|
||||||
|
this.add(hesloLabel);
|
||||||
|
|
||||||
|
hesloText.setBounds(390, 80, 160, 25);
|
||||||
|
this.add(hesloText);
|
||||||
|
|
||||||
|
JLabel snmpLabel = new JLabel("SNMP profil");
|
||||||
|
snmpLabel.setBounds(300, 130, 80, 25);
|
||||||
|
this.add(snmpLabel);
|
||||||
|
|
||||||
|
// nacteni snmp profilu
|
||||||
|
for (SnmpProfile sp : Client.snmpProfile) {
|
||||||
|
snmpmodel.addElement(sp.getName());
|
||||||
|
}
|
||||||
|
snmpProfileComboBox.setModel(snmpmodel);
|
||||||
|
snmpProfileComboBox.setBounds(390, 130, 160, 25);
|
||||||
|
this.add(snmpProfileComboBox);
|
||||||
|
|
||||||
|
JLabel disableLabel = new JLabel("Aktivní");
|
||||||
|
disableLabel.setBounds(20, 180, 80, 25);
|
||||||
|
this.add(disableLabel);
|
||||||
|
|
||||||
|
disableCheBox.setBounds(110, 180, 160, 25);
|
||||||
|
this.add(disableCheBox);
|
||||||
|
|
||||||
|
JButton snmpTest = new JButton("Test SNMP");
|
||||||
|
snmpTest.setBounds(390, 180, 160, 25);
|
||||||
|
snmpTest.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
/* TODO idealne at test provede server (ten bude osesilat informace o snmp pozadavky!!!!
|
||||||
|
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.add(snmpTest);
|
||||||
|
|
||||||
|
JLabel locLabel = new JLabel("Umístění");
|
||||||
|
locLabel.setBounds(20, 230, 80, 25);
|
||||||
|
this.add(locLabel);
|
||||||
|
|
||||||
|
locationText.setBounds(110, 230, 440, 25);
|
||||||
|
this.add(locationText);
|
||||||
|
|
||||||
|
JLabel descLabel = new JLabel("Poznámka");
|
||||||
|
descLabel.setBounds(20, 280, 80, 25);
|
||||||
|
this.add(descLabel);
|
||||||
|
|
||||||
|
descriptionText.setBounds(110, 280, 440, 100);
|
||||||
|
descriptionText.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.BLACK), BorderFactory.createEmptyBorder(10, 10, 10, 10)));
|
||||||
|
this.add(descriptionText);
|
||||||
|
|
||||||
|
// predvyplneni poli
|
||||||
|
if (!newObject) {
|
||||||
|
nazevText.setText(obj.getName());
|
||||||
|
ipText.setText(obj.getIp());
|
||||||
|
userText.setText(obj.getUser());
|
||||||
|
hesloText.setText(obj.getPassword());
|
||||||
|
for (int i = 0; i < Client.objectType.size() - 1; i++) {
|
||||||
|
if (obj.getObjectType() == Client.objectType.get(i).getId()) {
|
||||||
|
typeComboBox.setSelectedIndex(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < Client.snmpProfile.size(); i++) {
|
||||||
|
if (Client.snmpProfile.get(i).getId() == obj.getSnmpProfile()) {
|
||||||
|
snmpProfileComboBox.setSelectedIndex(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
disableCheBox.setSelected(obj.isActive());
|
||||||
|
descriptionText.setText(obj.getDescription());
|
||||||
|
locationText.setText(obj.getLocation());
|
||||||
|
} else {
|
||||||
|
disableCheBox.setSelected(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean validateIp(String ip) {
|
||||||
|
Pattern pattern = Pattern.compile("^(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])$");
|
||||||
|
Matcher matcher = pattern.matcher(ip);
|
||||||
|
return matcher.matches();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
if (nazevText.getText().length() < 3) {
|
||||||
|
nazevWarning.setVisible(true);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return nazevText.getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIp() {
|
||||||
|
if (!validateIp(ipText.getText())) {
|
||||||
|
ipWarning.setVisible(true);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return ipText.getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUser() {
|
||||||
|
return userText.getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
public char[] getPassword(){
|
||||||
|
return hesloText.getPassword();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getObjType(){
|
||||||
|
return typeComboBox.getSelectedIndex();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSnmpProfile(){
|
||||||
|
return snmpProfileComboBox.getSelectedIndex();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDesc(){
|
||||||
|
return descriptionText.getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLoc() {
|
||||||
|
return locationText.getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isActive(){
|
||||||
|
return disableCheBox.isSelected();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue