public void LoadValueFromFile() { string assemblyFileName = ViewModelFactory.GetSourceFileNameFromUser("Assembly files|*.dll;*.exe", "All files|*.*"); var assembly = System.Reflection.Assembly.ReflectionOnlyLoadFrom(assemblyFileName); var assemblyDescriptor = DataContext.GetQuery <Assembly>().SingleOrDefault(a => a.Name == assembly.FullName); if (assemblyDescriptor == null) { assemblyDescriptor = DataContext.Create <Assembly>(); assemblyDescriptor.Name = assembly.FullName; } this.Value = DataObjectViewModel.Fetch(ViewModelFactory, DataContext, ViewModelFactory.GetWorkspace(DataContext), assemblyDescriptor); }
private DataObjectViewModelProxy GetProxy(IDataObject obj) { DataObjectViewModelProxy result; if (!_proxyCache.TryGetValue(obj, out result)) { result = new DataObjectViewModelProxy() { Object = DataObjectViewModel.Fetch(ViewModelFactory, DataContext, ViewModelFactory.GetWorkspace(DataContext), obj) }; _proxyCache[obj] = result; } return(result); }
/// <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); }
private void CreateItem(ObjectClass dtType) { var isSimpleObject = dtType.IsSimpleObject; var newCtx = isSimpleObject ? DataContext : ctxFactory(); var newObj = newCtx.Create(DataContext.GetInterfaceType(dtType.GetDataType())); OnObjectCreated(newObj); if (!isSimpleObject) { var newWorkspace = ViewModelFactory.CreateViewModel <ObjectEditorWorkspace.Factory>().Invoke(newCtx, null); newWorkspace.ShowForeignModel(DataObjectViewModel.Fetch(ViewModelFactory, newCtx, newWorkspace, newObj), RequestedEditorKind); ViewModelFactory.ShowModel(newWorkspace, RequestedWorkspaceKind, true); } else if (Listener != null) { Listener.Refresh(); } }
public DataObjectViewModel GetDataObject(IZetboxContext ctx) { if (ctx == null) { throw new ArgumentNullException("ctx"); } IDataObject obj; if (ID <= Helper.INVALIDID) { obj = ctx.Create(ZetboxContextManagerModule.IftFactory(Type.GetSystemType())); ID = obj.ID; } else { obj = (IDataObject)ctx.Find(ZetboxContextManagerModule.IftFactory(Type.GetSystemType()), ID); } return(DataObjectViewModel.Fetch(ZetboxContextManagerModule.ViewModelFactory, ctx, null, obj)); }
public void Edit() { ViewModelFactory.ShowModel(DataObjectViewModel.Fetch(ViewModelFactory, DataContext, ViewModelFactory.GetWorkspace(DataContext), Action), true); }
public JavaScriptObjectMoniker(IZetboxContext ctx, IDataObject obj) { DataObjectViewModel m = DataObjectViewModel.Fetch(ZetboxContextManagerModule.ViewModelFactory, ctx, null, obj); Init(m); }
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); }