private void DeviceUsageToggle(Alignment alignment, CheckButton check, DeviceType deviceType)
        {
            if (initializing)
            {
                return;
            }

            alignment.Sensitive = check.Active;

            if (!check.Active)
            {
                return;
            }

            Table tbl = (Table)alignment.Child;

            if (tbl.Children.Length != 0)
            {
                return;
            }

            using (EditNewDevice choose = new EditNewDevice(deviceType)) {
                if (choose.Run() != ResponseType.Ok)
                {
                    alignment.Sensitive = false;
                    check.Active        = false;
                    return;
                }

                choose.GetDevice().CommitChanges();
            }

            RefreshDevcesTable(alignment, deviceType, check);
        }
        protected override void btnEdit_Clicked(object o, EventArgs args)
        {
            int selectedRow = grid.FocusedRow;

            if (selectedRow < 0)
            {
                return;
            }

            Device selectedItem = entities [selectedRow];

            selectedId = selectedItem.Id;
            Device newItem;

            using (EditNewDevice dialog = new EditNewDevice(selectedItem)) {
                if (dialog.Run() != ResponseType.Ok)
                {
                    return;
                }

                newItem = dialog.GetDevice().CommitChanges();
            }

            ReinitializeHardware(selectedItem, newItem);
            OnEntitiesChanged((int)newItem.DriverInfo.DevicePrimaryType);
        }
        private void btnAdd_Clicked(object sender, EventArgs e)
        {
            Button     btn        = (Button)sender;
            DeviceType deviceType = (DeviceType)btn.Data ["DeviceType"];
            Alignment  alignment  = (Alignment)btn.Data ["Alignment"];

            using (EditNewDevice choose = new EditNewDevice(deviceType)) {
                if (choose.Run() != ResponseType.Ok)
                {
                    return;
                }

                choose.GetDevice().CommitChanges();
            }

            RefreshDevcesTable(alignment, deviceType);
        }
        protected override void btnNew_Clicked(object o, EventArgs args)
        {
            selectedId = null;
            Device newItem;

            using (EditNewDevice dialog = new EditNewDevice(null)) {
                if (dialog.Run() != ResponseType.Ok)
                {
                    return;
                }

                newItem    = dialog.GetDevice().CommitChanges();
                selectedId = newItem.Id;
            }

            ReinitializeHardware(null, newItem);
            OnEntitiesChanged((int)newItem.DriverInfo.DevicePrimaryType);
        }