function updateMenu()

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 ...
        }
    }