void SetChkBtnTitle(yCheckButton btn) { if (!chkLabels.ContainsKey(btn)) { throw new NotImplementedException(String.Format("Переключатель {0} - {1} не найден в словаре", btn.Name, btn.Label)); } btn.Label = String.Format("{0} {1}", btn.Active ? "Показать" : "Скрыть", chkLabels[btn]); }
protected void AddCheckButton() { using (IUnitOfWork uow = UnitOfWorkFactory.CreateWithoutRoot()) { var listOrderType = uow.Session.QueryOver <OrderTypeClass>().List(); foreach (var type in listOrderType) { var title = type.Name; var check = new yCheckButton(title); check.Label = title; check.Tag = type.Id; vbox2.Add(check); ShowAll(); } } }
private yCheckButton PackCell(uint row, uint col) { Contract.Ensures(Contract.Result <yCheckButton>() != null); var check = new yCheckButton(); //Используем Gdk.Point просто чтобы не создавать новой структуры. Нужны поля X и Y; check.Tag = new Gdk.Point((int)col, (int)row); check.Active = GetCellValue(row, col); check.SetAlignment(0.5f, 0.5f); check.Toggled += OnCheckCellToggled; checkButtons[row, col] = check; var box = new HBox(); cells[row, col] = box; box.PackStart(check, true, false, 0); tableAccsessMatrix.Attach(box, col + 1, col + 2, row + 1, row + 2); return(check); }
void AddChkBtnToListForRenaming(yCheckButton btn) { chkLabels.Add(btn, btn.Label); btn.Toggled += OnChkBtnToggled; SetChkBtnTitle(btn); }
private void DrawNewRow(IPermissionNode node) { if (hBoxList?.FirstOrDefault() == null) { hBoxList = new List <HBox>(); } HBox hBox = new HBox(); hBox.Spacing = hboxHeader.Spacing; yButton deleteButton = new yButton(); Image image = new Image(); image.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-delete", IconSize.Menu); deleteButton.Image = image; deleteButton.Clicked += (sender, e) => viewModel.DeleteItemCommand.Execute(((yButton)sender).Parent.Data["permission"] as IPermissionNode); deleteButton.Binding.AddFuncBinding(viewModel, e => !e.ReadOnly, w => w.Sensitive).InitializeFromSource(); deleteButton.WidthRequest = 40; hBox.Add(deleteButton); hBox.SetChildPacking(deleteButton, false, true, 0, PackType.Start); var documentLabel = new yLabel(); documentLabel.Wrap = true; documentLabel.LineWrap = true; documentLabel.LineWrapMode = Pango.WrapMode.WordChar; documentLabel.WidthRequest = ylabelDocument.WidthRequest - deleteButton.WidthRequest; documentLabel.Binding.AddBinding(node.TypeOfEntity, e => e.CustomName, w => w.Text).InitializeFromSource(); hBox.Add(documentLabel); hBox.SetChildPacking(documentLabel, false, true, 0, PackType.Start); var readPermCheckButton = new yCheckButton(); readPermCheckButton.WidthRequest = ylabelPermView.WidthRequest; readPermCheckButton.Binding.AddBinding(node.EntityPermission, e => e.CanRead, w => w.Active).InitializeFromSource(); hBox.Add(readPermCheckButton); hBox.SetChildPacking(readPermCheckButton, false, true, 0, PackType.Start); var createPermCheckButton = new yCheckButton(); createPermCheckButton.WidthRequest = ylabelPermCreate.WidthRequest; createPermCheckButton.Binding.AddBinding(node.EntityPermission, e => e.CanCreate, w => w.Active).InitializeFromSource(); hBox.Add(createPermCheckButton); hBox.SetChildPacking(createPermCheckButton, false, true, 0, PackType.Start); var editPermCheckButton = new yCheckButton(); editPermCheckButton.WidthRequest = ylabelPermEdit.WidthRequest; editPermCheckButton.Binding.AddBinding(node.EntityPermission, e => e.CanUpdate, w => w.Active).InitializeFromSource(); hBox.Add(editPermCheckButton); hBox.SetChildPacking(editPermCheckButton, false, true, 0, PackType.Start); var deletePermCheckButton = new yCheckButton(); deletePermCheckButton.WidthRequest = ylabelPermDelete.WidthRequest; deletePermCheckButton.Binding.AddBinding(node.EntityPermission, e => e.CanDelete, w => w.Active).InitializeFromSource(); hBox.Add(deletePermCheckButton); hBox.SetChildPacking(deletePermCheckButton, false, true, 0, PackType.Start); foreach (var header in hboxExtension.Children.OfType <yLabel>()) { var item = node.EntityPermissionExtended.FirstOrDefault(x => x.PermissionId == (header.Data["permission_id"] as string)); Widget widget; var permission = ViewModel.PermissionExtensionStore.PermissionExtensions.FirstOrDefault(x => x.PermissionId == item.PermissionId); if (permission.IsValidType(TypeOfEntityRepository.GetEntityType(node.TypeOfEntity.Type))) { widget = new NullableCheckButton(); widget.WidthRequest = header.WidthRequest; (widget as NullableCheckButton)?.Binding.AddBinding(item, e => e.IsPermissionAvailable, w => w.Active).InitializeFromSource(); } else { widget = new Label(); widget.WidthRequest = header.WidthRequest; widget.Sensitive = false; widget.Visible = false; } hBox.Add(widget); hBox.SetChildPacking(widget, false, true, 0, PackType.Start); } hBox.Data.Add("permission", node); //Для свзяки виджета и права hBox.ShowAll(); vboxPermissions.Add(hBox); hBoxList.Add(hBox); }