Esempio n. 1
0
        async Task <IObservable <WorkitemEventArgs> > LaunchWorkItem(Type type, IWorkItem parent, object data, bool isModal, ModalOptions metadata = null)
        {
            IWorkitemBehaviorCollection behaviorCollection = Container.Resolve <IWorkitemBehaviorCollection>();

            if (!await behaviorCollection.Behavior.OnLaunching(this, new Behaviors.WorkitemLaunchDescriptor(type, parent == null, isModal, parent)))
            {
                return(null);
            }

            if (!typeof(IWorkItem).IsAssignableFrom(type))
            {
                throw new ArgumentException("Workitem to be launched must be of type IWorkItem");
            }
            IWorkItem workitem = (IWorkItem)Container.Resolve(type);
            WorkitemLaunchStrategy strategy = WorkitemLaunchStrategy.GetLaunchStrategy(this, workitem, parent, data);

            if (isModal)
            {
                return(await strategy.LaunchModal(metadata).ConfigureAwait(false));
            }
            else
            {
                return(await strategy.Launch().ConfigureAwait(false));
            }
        }
Esempio n. 2
0
 internal IModalWindow InitModalWindow(IModalWindow popup, IWorkItem workItem, ModalOptions metadata)
 {
     if (metadata == null)
     {
         metadata = workItem.Configuration.GetOption <ModalOptions>();
     }
     global::Prism.Regions.RegionManager.SetRegionManager(popup.GetRegionHolder(), global::Prism.Regions.RegionManager.GetRegionManager(Application.Current.MainWindow));
     global::Prism.Regions.RegionManager.UpdateRegions();
     popup.WindowStartupLocation = metadata.WindowStartupLocation;
     if (!metadata.Size.IsEmpty)
     {
         popup.Width  = metadata.Size.Width;
         popup.Height = metadata.Size.Height;
     }
     popup.ResizeMode = metadata.ResizeMode;
     popup.Title      = workItem.WorkItemName;
     popup.Closing   += (o, args) => ModalWindowClosing(workItem, args);
     return(popup);
 }
Esempio n. 3
0
 public Task <IObservable <WorkitemEventArgs> > LaunchModalWorkItem <T>(ModalOptions metadata, object data = null, IWorkItem parent = null) where T : IWorkItem
 {
     return(LaunchWorkItem(typeof(T), parent, data, true, metadata));
 }