in plc4j/tools/ui/frontend/project/src/components/NavigationTree.tsx [91:144]
function updateMenu(selectedItem: TreeItemData) {
// Discover
menu[0].disabled = !selectedItem.supportsDiscovery && selectedItem.type != "ROOT"
menu[0].command = () => {
restClient.discover(selectedItem.id)
}
// Add
menu[1].disabled = selectedItem.type != "DRIVER"
menu[1].command = () => {
dialogDevice.id = 0;
dialogDevice.name = "";
dialogDevice.transportCode = "";
dialogDevice.transportUrl = "";
dialogDevice.protocolCode = selectedItem.id;
dialogDevice.options = {};
dialogDevice.attributes = {};
setShowDeviceDialog(true);
}
// Edit
menu[2].disabled = selectedItem.type != "DEVICE"
menu[2].command = () => {
if(selectedItem.device) {
dialogDevice.id = selectedItem.device.id;
dialogDevice.name = selectedItem.device.name;
dialogDevice.transportCode = selectedItem.device.transportCode;
dialogDevice.transportUrl = selectedItem.device.transportUrl;
dialogDevice.protocolCode = selectedItem.device.protocolCode;
dialogDevice.options = selectedItem.device.options;
dialogDevice.attributes = selectedItem.device.attributes;
setShowDeviceDialog(true);
}
}
// Delete
menu[3].disabled = selectedItem.type != "DEVICE"
menu[3].command = () => {
if(selectedItem.device) {
dialogDevice.id = selectedItem.device.id;
dialogDevice.name = selectedItem.device.name;
dialogDevice.transportCode = selectedItem.device.transportCode;
dialogDevice.transportUrl = selectedItem.device.transportUrl;
dialogDevice.protocolCode = selectedItem.device.protocolCode;
dialogDevice.options = selectedItem.device.options;
dialogDevice.attributes = selectedItem.device.attributes;
confirmDelete()
}
}
// Connect
menu[4].disabled = selectedItem.type != "DEVICE"
menu[4].command = () => {
// TODO: Open a new tab with the connection ...
}
}