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();
|
||||
|
||||
try {
|
||||
lockImage = ImageIO.read(new File("img/lock.png"));
|
||||
unlockImage = ImageIO.read(new File("img/unlock.png"));
|
||||
lockImage = ImageIO.read(getClass().getResourceAsStream("/img/lock.png"));
|
||||
unlockImage = ImageIO.read(getClass().getResourceAsStream("/img/unlock.png"));
|
||||
} catch (IOException ex) {
|
||||
LogFile.printErr("File not found: " + ex);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package jnet.client.gui;
|
||||
|
||||
import jnet.client.gui.dialog.ObjectDialog;
|
||||
import jnet.client.Client;
|
||||
import jnet.client.ExtAppManager;
|
||||
import jnet.client.gui.dialog.DialogLocalPing;
|
||||
|
|
@ -11,10 +10,10 @@ import java.awt.event.ActionListener;
|
|||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
import java.awt.event.MouseMotionListener;
|
||||
import java.util.Iterator;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JPopupMenu;
|
||||
import jnet.client.gui.dialog.object.ObjectDialog;
|
||||
import jnet.lib.Message;
|
||||
import jnet.lib.object.Map;
|
||||
import jnet.lib.object.MapObject;
|
||||
|
|
@ -161,7 +160,8 @@ public class MapViewAction implements MouseMotionListener, MouseListener {
|
|||
for (Map map : Client.maps) {
|
||||
for (MapObject object : map.getObjects()) {
|
||||
if (object.getId() == id) {
|
||||
new ObjectDialog(map.getId(), object, false);
|
||||
//new ObjectDialog(map.getId(), object, false);
|
||||
new ObjectDialog(object);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -200,7 +200,8 @@ public class MapViewAction implements MouseMotionListener, MouseListener {
|
|||
MapObject mo = new MapObject();
|
||||
mo.setX(me.getX());
|
||||
mo.setY(me.getY());
|
||||
new ObjectDialog(map.getId(), mo, true);
|
||||
mo.setMap(map.getId());
|
||||
new ObjectDialog(mo, true);
|
||||
}
|
||||
});
|
||||
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