コード例 #1
0
        public string ExtractFormattedValue(DataObjectViewModel obj)
        {
            if (obj == null)
            {
                return(string.Empty);
            }

            string val = null;

            switch (this.Type)
            {
            case ColumnDisplayModel.ColumnType.Property:
                var propVal = obj.GetPropertyValue <object>(this.Name);
                val = propVal != null?propVal.ToString() : string.Empty;

                break;

            case ColumnDisplayModel.ColumnType.PropertyModel:
                DataObjectViewModel      objVmdl    = obj;
                IFormattedValueViewModel resultVMdl = null;
                foreach (var current in this.Name.Split('.'))
                {
                    if (objVmdl == null)
                    {
                        break;
                    }

                    resultVMdl = objVmdl.PropertyModelsByName[current];
                    if (resultVMdl is ObjectReferenceViewModel)
                    {
                        objVmdl = ((ObjectReferenceViewModel)resultVMdl).Value;
                    }
                }
                val = resultVMdl != null ? resultVMdl.FormattedValue : string.Empty;
                break;
            }
            return(val);
        }
コード例 #2
0
        public void RaisePostBackEvent(string eventArgument)
        {
            switch (hdAction)
            {
            case actionShowObject:
            {
                DataObjectViewModel obj = hdArgument.FromJSON(ZetboxContextManagerModule.ZetboxContext);
                ZetboxContextManagerModule.ViewModelFactory.ShowModel(obj, true);
                //if (HttpContext.Current.CurrentHandler is IWorkspaceView)
                //{
                //    IWorkspaceView page = (IWorkspaceView)HttpContext.Current.CurrentHandler;
                //    page.ShowObject(obj);
                //}
                //else
                //{
                //    throw new InvalidOperationException("ShowObject can only be executed on a IWorkspaceView Page");
                //}
                break;
            }

            default:
                throw new ArgumentException("Action " + hdAction + " is unknown");
            }
        }
コード例 #3
0
 /// <summary>
 /// Show a foreign model by finding and creating the equivalent model on the local DataContext.
 /// </summary>
 /// <param name="dataObject"></param>
 /// <returns></returns>
 public DataObjectViewModel ShowForeignModel(DataObjectViewModel dataObject)
 {
     return(ShowForeignModel(dataObject, null));
 }
コード例 #4
0
        /// <summary>
        /// Show a foreign model by finding and creating the equivalent model on the local DataContext.
        /// </summary>
        /// <param name="dataObject"></param>
        /// <returns></returns>
        public void ShowForeignModel(DataObjectViewModel dataObject)
        {
            if (dataObject == null || dataObject.Object == null)
                return;

            var other = dataObject.Object;
            var here = DataContext.Find(DataContext.GetInterfaceType(other), other.ID);
            SelectedItem = DataObjectViewModel.Fetch(ViewModelFactory, DataContext, this, here);
        }
コード例 #5
0
 public void SelectStartingObjectClass()
 {
     var lstMdl = ViewModelFactory.CreateViewModel<DataObjectSelectionTaskViewModel.Factory>().Invoke(
             DataContext,
             this,
             typeof(ObjectClass).GetObjectClass(FrozenContext),
             () => DataContext.GetQuery<ObjectClass>(),
             (chosen) =>
             {
                 if (chosen != null)
                 {
                     StartingObjectClass = chosen.First();
                     ContinueAddRelation();
                 }
             },
             null);
     lstMdl.ListViewModel.ShowCommands = false;
     ViewModelFactory.ShowDialog(lstMdl);
 }
コード例 #6
0
        /// <summary>
        /// Show a foreign model by finding and creating the equivalent model on the local DataContext.
        /// </summary>
        /// <param name="dataObject"></param>
        /// <param name="requestedKind"></param>
        /// <returns></returns>
        public DataObjectViewModel ShowForeignModel(DataObjectViewModel dataObject, Zetbox.App.GUI.ControlKind requestedKind)
        {
            if (dataObject == null || dataObject.Object == null)
                return null;

            var other = dataObject.Object;
            var here = DataContext.Find(DataContext.GetInterfaceType(other), other.ID);
            var vm = DataObjectViewModel.Fetch(ViewModelFactory, DataContext, this, here);
            SelectedItem = vm;
            vm.RequestedKind = requestedKind;
            AddItem(vm);
            return vm;
        }
コード例 #7
0
 /// <summary>
 /// Show a foreign model by finding and creating the equivalent model on the local DataContext.
 /// </summary>
 /// <param name="dataObject"></param>
 /// <returns></returns>
 public DataObjectViewModel ShowForeignModel(DataObjectViewModel dataObject)
 {
     return ShowForeignModel(dataObject, null);
 }
コード例 #8
0
 public void Edit()
 {
     ViewModelFactory.ShowModel(DataObjectViewModel.Fetch(ViewModelFactory, DataContext, ViewModelFactory.GetWorkspace(DataContext), Action), true);
 }
コード例 #9
0
        public override void RemoveItem(DataObjectViewModel item)
        {
            if (item == null) { throw new ArgumentNullException("item"); }

            EnsureValueCache();
            var idx = ValueModel.Value.IndexOf(item.Object);
            if (idx != -1)
            {
                for (int i = ValueModel.Value.Count - 1; i >= idx; i--)
                {
                    ValueModel.Value.RemoveAt(i);
                }
            }
        }
コード例 #10
0
ファイル: CommonCommands.cs プロジェクト: daszat/zetbox
 protected void OnLocalModelCreated(DataObjectViewModel vm)
 {
     LocalModelCreatedHandler temp = LocalModelCreated;
     if (temp != null)
     {
         temp(vm);
     }
 }
コード例 #11
0
 private void Init(DataObjectViewModel m)
 {
     ID   = m.ID;
     Type = m.GetInterfaceType().ToSerializableType();
     Text = m.Name;
 }
コード例 #12
0
        public JavaScriptObjectMoniker(IZetboxContext ctx, IDataObject obj)
        {
            DataObjectViewModel m = DataObjectViewModel.Fetch(ZetboxContextManagerModule.ViewModelFactory, ctx, null, obj);

            Init(m);
        }
コード例 #13
0
 public JavaScriptObjectMoniker(DataObjectViewModel m)
 {
     Init(m);
 }
コード例 #14
0
        public static void AddPartyRole(Zetbox.Basic.Parties.Party obj, MethodReturnEventArgs <PartyRole> e)
        {
            var ctx        = obj.Context;
            var candidates = new List <RoleSelectionViewModel>();

            // Common first
            if (!obj.PartyRole.Any(r => r is Customer))
            {
                candidates.Add(_vmf.CreateViewModel <RoleSelectionViewModel.Factory>().Invoke(ctx, null, typeof(Customer).GetObjectClass(_frozenCtx)));
            }

            ObjectClass clsPartyRole;

            if (obj is Person)
            {
                clsPartyRole = (ObjectClass)typeof(PersonRole).GetObjectClass(_frozenCtx);

                if (!obj.PartyRole.Any(r => r is Employee))
                {
                    candidates.Add(_vmf.CreateViewModel <RoleSelectionViewModel.Factory>().Invoke(ctx, null, typeof(Employee).GetObjectClass(_frozenCtx)));
                }
            }
            else if (obj is Organization)
            {
                clsPartyRole = (ObjectClass)typeof(OrganizationRole).GetObjectClass(_frozenCtx);

                if (!obj.PartyRole.Any(r => r is Supplier))
                {
                    candidates.Add(_vmf.CreateViewModel <RoleSelectionViewModel.Factory>().Invoke(ctx, null, typeof(Supplier).GetObjectClass(_frozenCtx)));
                }
                if (!obj.PartyRole.Any(r => r is InternalOrganization))
                {
                    candidates.Add(_vmf.CreateViewModel <RoleSelectionViewModel.Factory>().Invoke(ctx, null, typeof(InternalOrganization).GetObjectClass(_frozenCtx)));
                }
            }
            else
            {
                throw new InvalidOperationException("Party is of an unknown type");
            }

            List <ObjectClass> subClasses = new List <ObjectClass>();

            clsPartyRole.CollectChildClasses(subClasses, includeAbstract: false);
            // all other
            foreach (var roleCls in subClasses.Except(candidates.Select(c => c.TargetPropClass))
                     .Except(obj.PartyRole.Select(c => c.GetObjectClass(_frozenCtx)))
                     .OrderBy(r => r.Name)
                     .ToList())
            {
                candidates.Add(_vmf.CreateViewModel <RoleSelectionViewModel.Factory>().Invoke(ctx, null, roleCls));
            }

            var selectClass = _vmf
                              .CreateViewModel <SimpleSelectionTaskViewModel.Factory>()
                              .Invoke(
                ctx,
                null,
                candidates,
                (chosenClass) =>
            {
                if (chosenClass != null && chosenClass.Count() == 1)
                {
                    var propCls = ((RoleSelectionViewModel)chosenClass.Single()).TargetPropClass;
                    var ifType  = propCls.GetDescribedInterfaceType();
                    var newRole = (PartyRole)ctx.Create(ifType);
                    obj.PartyRole.Add(newRole);
                    var partyVmdl = (PartyViewModel)DataObjectViewModel.Fetch(_vmf, ctx, null, obj);
                    partyVmdl.UpdateRoleTabs(newRole);
                    e.Result = newRole;         // show result, UpdateTabs cannot show the new tab yet
                }
            },
                null);

            selectClass.RequestedKind = NamedObjects.Gui.ControlKinds.Zetbox_App_GUI_DataObjectSelectionTaskSimpleKind.Find(_frozenCtx);
            _vmf.ShowDialog(selectClass);
        }
コード例 #15
0
 private void OnLocalModelCreated(DataObjectViewModel vm)
 {
     AddLocalInstance(vm);
     this.SelectedItem = vm;
 }