예제 #1
0
        public IObjectFacade[] GetChoices(IObjectFacade objectFacade, IDictionary <string, object> parameterNameValues)
        {
            var otherParms = parameterNameValues == null ? null : parameterNameValues.Select(kvp => new { kvp.Key, kvp.Value, parm = Action.Parameters.Single(p => p.Id == kvp.Key) });

            var pnv = otherParms == null ? null : otherParms.ToDictionary(a => a.Key, a => SafeGetValue(a.parm, a.Value));

            return(WrappedSpec.GetChoices(((ObjectFacade)objectFacade).WrappedNakedObject, pnv).Select(no => ObjectFacade.Wrap(no, FrameworkFacade, framework)).Cast <IObjectFacade>().ToArray());
        }
        public bool IsSetToImplicitDefault(IObjectFacade objectFacade)
        {
            // return true if it's scalar and and still set to its implicit default value (eg 0 for an int)
            if (!DefaultTypeIsExplicit(objectFacade) && WrappedSpec.ReturnSpec.IsParseable)
            {
                var dflt         = WrappedSpec.GetDefault(objectFacade.WrappedAdapter());
                var currentValue = GetValue(objectFacade);

                return(dflt?.Object == currentValue?.Object);
            }

            return(false);
        }
예제 #3
0
        public IConsentFacade IsValid(IObjectFacade target, object value)
        {
            var t = ((ObjectFacade)target).WrappedNakedObject;

            IConsent consent;

            try {
                var v = GetValue(this, value);
                consent = WrappedSpec.IsValid(t, v);
            }
            catch (InvalidEntryException) {
                consent = new Veto(Resources.NakedObjects.InvalidEntry);
            }
            catch (Exception e) {
                consent = new Veto(e.Message);
            }

            return(new ConsentFacade(consent));
        }
        public string GetTitle(IObjectFacade objectFacade)
        {
            var enumFacet = WrappedSpec.GetFacet <IEnumFacet>();

            if (enumFacet != null)
            {
                return(enumFacet.GetTitle(((ObjectFacade)objectFacade).WrappedNakedObject));
            }

            var mask = WrappedSpec.GetFacet <IMaskFacet>();

            if (mask == null)
            {
                return(objectFacade.TitleString);
            }
            var titleFacet = ((TypeFacade)objectFacade.Specification).WrappedValue.GetFacet <ITitleFacet>();

            return(titleFacet.GetTitleWithMask(mask.Value, ((ObjectFacade)objectFacade).WrappedNakedObject, framework.NakedObjectManager));
        }
예제 #5
0
 public IObjectFacade GetDefault(IObjectFacade objectFacade)
 {
     return(ObjectFacade.Wrap(WrappedSpec.GetDefault(((ObjectFacade)objectFacade).WrappedNakedObject), FrameworkFacade, framework));
 }
예제 #6
0
 public bool DefaultTypeIsExplicit(IObjectFacade objectFacade)
 {
     return(WrappedSpec.GetDefaultType(((ObjectFacade)objectFacade).WrappedNakedObject) == TypeOfDefaultValue.Explicit);
 }
예제 #7
0
 public IObjectFacade[] GetCompletions(IObjectFacade objectFacade, string autoCompleteParm)
 {
     return(WrappedSpec.GetCompletions(((ObjectFacade)objectFacade).WrappedNakedObject, autoCompleteParm).Select(no => ObjectFacade.Wrap(no, FrameworkFacade, framework)).Cast <IObjectFacade>().ToArray());
 }
예제 #8
0
 public string GetMaskedValue(IObjectFacade objectFacade)
 {
     return(WrappedSpec.GetMaskedValue(objectFacade, framework.NakedObjectManager));
 }
예제 #9
0
 public Tuple <string, ITypeFacade>[] GetChoicesParameters()
 {
     return(WrappedSpec.GetChoicesParameters().Select(WrapChoiceParm).ToArray());
 }
        public IObjectFacade GetValue(IObjectFacade target)
        {
            INakedObjectAdapter result = WrappedSpec.GetNakedObject(((ObjectFacade)target).WrappedNakedObject);

            return(ObjectFacade.Wrap(result, FrameworkFacade, framework));
        }
 public IConsentFacade IsUsable(IObjectFacade objectFacade) => new ConsentFacade(WrappedSpec.IsUsable(((ObjectFacade)objectFacade)?.WrappedNakedObject));
 public bool IsVisible(IObjectFacade objectFacade) => WrappedSpec.IsVisible(((ObjectFacade)objectFacade)?.WrappedNakedObject);
예제 #13
0
 public IConsentFacade IsUsable(IObjectFacade objectFacade)
 {
     return(new ConsentFacade(WrappedSpec.IsUsable(((ObjectFacade)objectFacade).WrappedNakedObject)));
 }
예제 #14
0
 public bool IsVisible(IObjectFacade objectFacade)
 {
     return(WrappedSpec.IsVisible(((ObjectFacade)objectFacade).WrappedNakedObject));
 }
 public bool IsEager(IObjectFacade objectFacade)
 {
     return(((TypeFacade)objectFacade.Specification).WrappedValue.ContainsFacet <IEagerlyFacet>() ||
            WrappedSpec.ContainsFacet <IEagerlyFacet>());
 }
예제 #16
0
 public override int GetHashCode()
 {
     return(WrappedSpec != null ? WrappedSpec.GetHashCode() : 0);
 }
 public string GetMaskedValue(IObjectFacade objectFacade) => WrappedSpec.GetMaskedValue(objectFacade, framework.NakedObjectManager, framework.Session, framework.Persistor);
        public IConsentFacade IsUsable(IObjectFacade target)
        {
            IConsent consent = WrappedSpec.IsUsable(((ObjectFacade)target).WrappedNakedObject);

            return(new ConsentFacade(consent));
        }