Esempio n. 1
0
        /// <summary>
        /// 加载模块。
        /// </summary>
        /// <param name="Guid"></param>
        /// <returns></returns>
        internal static object LoadModule(System.Guid Guid)
        {
            NavigateModule GModule = null;

            if (!SLContext.Instance.Adminstrators)
            {
                foreach (var item in NavigationProxy.Instance.ModuleList)
                {
                    Guid Guid2 = new Guid(item.Guid);
                    if (Guid2 == Guid)
                    {
                        GModule = item;
                        break;
                    }
                }
            }

            if (GModule == null)
            {
                return(null);
            }

            object module = ClassProvider.GetObjectInstance(GModule.Assembly, GModule.Type);

            if (module == null)
            {
                throw new System.Exception("无法加载模块“" + GModule.Name + "”,请通知您的系统管理人员。");
            }

            return(module);
        }
Esempio n. 2
0
        private void TbItem_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            TextBlock tb = sender as TextBlock;

            if (tb.Tag is NavigateGroup)
            {
                NavigateGroup group = tb.Tag as NavigateGroup;

                DataEntityQuery <EAS.Explorer.Entities.Module> query = new DataEntityQuery <Explorer.Entities.Module>();
                var v = query.Where(p => p.Guid == group.WFModule);
                DataPortal <EAS.Explorer.Entities.Module> dp = new DataPortal <Explorer.Entities.Module>();
                dp.BeginExecuteSingleQuery(v).Completed +=
                    (s, e2) =>
                {
                    QueryTask <EAS.Explorer.Entities.Module> task = s as QueryTask <EAS.Explorer.Entities.Module>;
                    if (task.DataEntity != null)
                    {
                        try
                        {
                            System.Type T3    = EAS.Objects.ClassProvider.GetType(task.DataEntity.Assembly, task.DataEntity.Type);
                            object      addIn = System.Activator.CreateInstance(T3);
                            this.LoadModule(addIn);
                        }
                        catch (System.Exception exc)
                        {
                            MessageBox.Show("打开模块出错:" + exc.Message, "错误", MessageBoxButton.OK);
                        }
                    }
                };
            }
            else if (tb.Tag is NavigateModule)
            {
                NavigateModule module = tb.Tag as NavigateModule;

                try
                {
                    System.Type T2    = EAS.Objects.ClassProvider.GetType(module.Assembly, module.Type);
                    object      addIn = System.Activator.CreateInstance(T2);
                    this.LoadModule(addIn);
                }
                catch (System.Exception exc)
                {
                    MessageBox.Show("打开模块出错:" + exc.Message, "错误", MessageBoxButton.OK);
                }
            }
            else if (tb.Tag is Type)
            {
                System.Type T     = tb.Tag as Type;
                object      addIn = System.Activator.CreateInstance(T);
                this.LoadModule(addIn);
            }
        }
Esempio n. 3
0
        private void TbItem_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            TextBlock tb = sender as TextBlock;

            if (tb.Tag is NavigateGroup)
            {
                NavigateGroup group = tb.Tag as NavigateGroup;

                Guid mGuid = Guid.Empty;
                Guid.TryParse(group.WFModule, out mGuid);
                if (mGuid == Guid.Empty)
                {
                    return;
                }

                EAS.Application.Instance.StartModule(mGuid);
            }
            else if (tb.Tag is NavigateModule)
            {
                try
                {
                    NavigateModule module = tb.Tag as NavigateModule;
                    System.Type    T2     = EAS.Objects.ClassProvider.GetType(module.Assembly, module.Type);
                    object         addIn  = System.Activator.CreateInstance(T2);
                    EAS.Application.Instance.StartModule(addIn);
                }
                catch (System.Exception exc)
                {
                    MessageBox.Show("打开模块出错:" + exc.Message, "错误", MessageBoxButton.OK);
                }
            }
            else if (tb.Tag is Type)
            {
                try
                {
                    System.Type T     = tb.Tag as Type;
                    object      addIn = System.Activator.CreateInstance(T);
                    EAS.Application.Instance.StartModule(addIn);
                }
                catch (System.Exception exc)
                {
                    MessageBox.Show("打开模块出错:" + exc.Message, "错误", MessageBoxButton.OK);
                }
            }
        }
Esempio n. 4
0
        private void TbItem_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            TextBlock tb = sender as TextBlock;

            if (tb.Tag is NavigateGroup)
            {
                NavigateGroup group = tb.Tag as NavigateGroup;
                EAS.Application.Instance.StartModule(group.WFModule);
            }
            else if (tb.Tag is NavigateModule)
            {
                NavigateModule module = tb.Tag as NavigateModule;
                System.Type    T2     = EAS.Objects.ClassProvider.GetType(module.Assembly, module.Type);
                object         addIn  = System.Activator.CreateInstance(T2);
                EAS.Application.Instance.StartModule(addIn);
            }
            else if (tb.Tag is Type)
            {
                System.Type T     = tb.Tag as Type;
                object      addIn = System.Activator.CreateInstance(T);
                EAS.Application.Instance.StartModule(addIn);
            }
        }
Esempio n. 5
0
        void InitializeNavigationDebug()
        {
            //=======================================================

            Assembly assembly = EAS.Objects.ClassProvider.GetAssembly(SLContext.Instance.Assembly);

            System.Type[] types = assembly.GetTypes();

            List <NavigateModule> moduleList = new List <NavigateModule>();
            List <NavigateGroup>  groupList  = new List <NavigateGroup>();

            #region 提取模块

            foreach (System.Type type in types)
            {
                AddInAttribute ma = Attribute.GetCustomAttribute(type, typeof(AddInAttribute)) as AddInAttribute;
                if (!Object.Equals(null, ma))
                {
                    NavigateModule dataEntity = new NavigateModule();
                    dataEntity.Guid        = ma.Guid;
                    dataEntity.Name        = ma.Name;
                    dataEntity.Description = ma.Description;
                    dataEntity.Assembly    = MetaHelper.GetAssemblyString(type);
                    dataEntity.Type        = MetaHelper.GetTypeString(type);
                    dataEntity.Version     = MetaHelper.GetVersionString(type);
                    dataEntity.Developer   = MetaHelper.GetDeveloperString(type);
                    moduleList.Add(dataEntity);
                }
            }

            foreach (NavigateModule item in moduleList)
            {
                if (item.GroupName == null)
                {
                    item.GroupName = string.Empty;
                }

                if (item.GroupName.Length == 0)
                {
                    item.GroupName = "调试模块";
                }

                NavigateGroup GX = groupList.Where(p => p.Name == item.GroupName).FirstOrDefault();

                if (GX != null)
                {
                    item.GroupID = GX.ID;
                }
                else
                {
                    GX            = new NavigateGroup();
                    GX.ParentID   = Guid.Empty.ToString().ToUpper();
                    GX.ID         = Guid.NewGuid().ToString().ToUpper();
                    GX.Name       = item.GroupName;
                    GX.Attributes = 0xffff;
                    groupList.Add(GX);
                    item.GroupID = GX.ID;
                }
            }

            #endregion

            (this.m_Menu as INavigation).Initialize(groupList, moduleList);
        }