public static UiViewButtonState Create(IAcDomain acDomain, UiViewButtonBase viewButton) { if (viewButton == null) { throw new ArgumentNullException("viewButton"); } return(new UiViewButtonState(viewButton.Id) { _acDomain = acDomain, _viewId = viewButton.UiViewId, _createOn = viewButton.CreateOn }.InternalModify(viewButton)); }
internal UiViewButtonState InternalModify(UiViewButtonBase viewButton) { if (viewButton == null) { throw new ArgumentNullException("viewButton"); } UiViewState view; if (!_acDomain.UiViewSet.TryGetUiView(viewButton.UiViewId, out view)) { throw new AnycmdException("意外的界面视图" + viewButton.UiViewId); } ButtonState button; if (!_acDomain.ButtonSet.TryGetButton(viewButton.ButtonId, out button)) { throw new AnycmdException("意外的按钮" + viewButton.ButtonId); } var functionId = viewButton.FunctionId; if (functionId == Guid.Empty) { functionId = null; } if (functionId.HasValue) { FunctionState function; if (!_acDomain.FunctionSet.TryGetFunction(functionId.Value, out function)) { throw new ValidationException("意外的功能标识" + functionId); } } _functionId = functionId; _buttonId = viewButton.ButtonId; _isEnabled = viewButton.IsEnabled; return(this); }