class ToggleColumnsEnabledActionImpl
    implements AbstractToolAction, ToggleColumnsEnabledAction {

    static final String ENABLE_ALL_COLUMNS = "Enable All Columns";
    static final String DISABLE_ALL_COLUMNS = "Disable All Columns";

    @Override
    public void installMenuItems(ProjectTreeComponent projectTree) {<FILL_FUNCTION_BODY>}
}

        projectTree.installContextMenu(TableProperty.class, (treeCell, node) -> {
            final MenuItem enableColumns  = new MenuItem(ENABLE_ALL_COLUMNS);
            final MenuItem disableColumns = new MenuItem(DISABLE_ALL_COLUMNS);

            enableColumns.setOnAction(ev ->
                DocumentUtil.traverseOver(node)
                    .filter(ColumnProperty.class::isInstance)
                    .forEach(doc -> ((ColumnProperty) doc).enabledProperty().setValue(true))
            );

            disableColumns.setOnAction(ev ->
                DocumentUtil.traverseOver(node)
                    .filter(ColumnProperty.class::isInstance)
                    .forEach(doc -> ((ColumnProperty) doc).enabledProperty().setValue(false))
            );

            return Stream.of(enableColumns, disableColumns);
        });
    
<no_super_class>