Esempio n. 1
0
        public Control CreateControl()
        {
            var uiPrefsSvc = services.RequireService <IUiPreferencesService>();

            this.codeView           = new CodeView();
            this.codeView.Dock      = DockStyle.Fill;
            this.TextView.Font      = uiPrefsSvc.DisassemblerFont ?? new Font("Lucida Console", 10F);
            this.TextView.BackColor = SystemColors.Window;

            this.TextView.ContextMenu = services.RequireService <IDecompilerShellUiService>().GetContextMenu(MenuIds.CtxCodeView);

            this.TextView.Styles.Add("kw", new EditorStyle
            {
                Foreground = new SolidBrush(Color.Blue),
            });
            this.TextView.Styles.Add("link", new EditorStyle
            {
                Foreground = new SolidBrush(Color.FromArgb(0x00, 0x80, 0x80)),
                Cursor     = Cursors.Hand,
            });
            this.TextView.Styles.Add("cmt", new EditorStyle
            {
                Foreground = new SolidBrush(Color.FromArgb(0x00, 0x80, 0x00)),
            });
            this.TextView.Styles.Add("type", new EditorStyle
            {
                Foreground = new SolidBrush(Color.FromArgb(0x00, 0x60, 0x60)),
            });

            this.TextView.Navigate += textView_Navigate;
            return(this.codeView);
        }
Esempio n. 2
0
        public async Task <ActionResult> Edit(int id)
        {
            CodeRepository codeRepo;
            CodeView       view = new CodeView()
            {
                Code = new Code()
                {
                    Active = true
                }, CodeCategories = new List <CodeCategory>()
            };

            try
            {
                using (DBConnection dbc = new DBConnection(settings.Database.ConnectionString, logger))
                {
                    codeRepo = new CodeRepository(settings, logger, dbc);

                    view.Code = await codeRepo.FindByPKView(new PrimaryKey()
                    {
                        Key = id, IsIdentity = true
                    });

                    view.CodeCategories = CodeCategory.GetList();
                }
            }
            catch (Exception ex)
            {
                throw (Exception)Activator.CreateInstance(ex.GetType(), ex.Message + ex.StackTrace);
            }

            return(View("Edit", view));
        }
Esempio n. 3
0
        public ActionResult Create(string id)
        {
            CodeDetailView codeDetailView = new CodeDetailView();

            codeDetailView.EmployeeView = GetEmployee();

            #region Access Check
            bool hasPermission = GetEmployee().IsGuaranteed("Code_Insert");
            if (!hasPermission)
            {
                ModelState.AddModelError("", "AddcessDenied");
                return(View(codeDetailView));
            }
            #endregion

            GetRequest getCenterRequest = new GetRequest()
            {
                ID = Guid.Parse(id)
            };
            try
            {
                CodeView codeView = new CodeView();

                codeView.CenterName = _centerService.GetCenter(getCenterRequest).CenterView.CenterName;
                codeView.CenterID   = _centerService.GetCenter(getCenterRequest).CenterView.ID;

                codeDetailView.CodeView = codeView;
            }
            catch (Exception ex)
            {
                throw;
            }
            return(View(codeDetailView));
        }
Esempio n. 4
0
        public async Task <ActionResult> Create(CodeView view)
        {
            CodeRepository codeRepo;

            try
            {
                using (DBConnection dbc = new DBConnection(settings.Database.ConnectionString, logger))
                {
                    codeRepo = new CodeRepository(settings, logger, dbc);

                    if (ModelState.IsValid)
                    {
                        await codeRepo.Add(view.Code);

                        return(RedirectToAction("Index", "Code"));
                    }

                    view.CodeCategories = CodeCategory.GetList();
                    return(View("Create", view));
                }
            }
            catch (Exception ex)
            {
                throw (Exception)Activator.CreateInstance(ex.GetType(), ex.Message + ex.StackTrace);
            }
        }
        public DecompiledViewContent(string assemblyFile, string fullTypeName, string entityTag)
        {
            // TODO: create options for decompiling in a specific language
            this.tempFileName = string.Format("{0}{1}{2}.cs", assemblyFile, DecompiledBreakpointBookmark.SEPARATOR, fullTypeName);
            this.codeView     = new CodeView(tempFileName);

            this.assemblyFile = assemblyFile;
            this.fullTypeName = fullTypeName;
            this.jumpToEntityTagWhenDecompilationFinished = entityTag;

            string shortTypeName = fullTypeName.Substring(fullTypeName.LastIndexOf('.') + 1);

            this.TitleName = "[" + shortTypeName + "]";

            this.InfoTip = tempFileName;

            Thread thread = new Thread(DecompilationThread);

            thread.Name = "Decompiler (" + shortTypeName + ")";
            thread.Start();

            BookmarkManager.Removed += BookmarkManager_Removed;
            BookmarkManager.Added   += BookmarkManager_Added;

            // add services
            this.Services.AddService(typeof(ITextEditor), this.codeView.TextEditor);
        }
Esempio n. 6
0
        private void LoadCodeFiles()
        {
            //创建代码
            string        path = Application.StartupPath + "\\CodeTemplate";
            DirectoryInfo dir  = new DirectoryInfo(path);

            FileInfo[] files = dir.GetFiles();
            foreach (FileInfo file in files)
            {
                ToolStripItem item = new ToolStripMenuItem();
                item.Text   = Path.GetFileNameWithoutExtension(file.Name);
                item.Image  = imgs.Images[Path.GetExtension(file.Name).TrimStart('.')];
                item.Tag    = file.FullName;
                item.Click += (obj, args) =>
                {
                    CodeView view     = new CodeView();
                    string   fileName = item.Tag.ToString();
                    string   code     = FileHelper.GetFileContent(fileName);
                    view.Caption = item.Text;
                    view.SetCode(code, PathHelper.GetExtension(fileName));
                    ShowCenter(view, item.Text);
                };
                this.menuCreateCode.DropDownItems.Add(item);
            }
        }
Esempio n. 7
0
 public void Close()
 {
     if (codeView != null)
     {
         ((Control)codeView).Dispose();
     }
     codeView = null;
 }
Esempio n. 8
0
 public ObjCodeView()
 {
     view           = new CodeView();
     view.Navigate += OnNavigateTarget;
     view.NativeInterface.SetMouseDwellTime(200);
     view.DwellStart += DwellStart;
     view.MouseMove  += MouseMoved;
     Controls.Add(view);
 }
        private async void SetCodeText()
        {
            CodeView.Options.IndentationSize = 4;
            CodeView.Text = source.Text;

            // Await code to be rendered before scrolling to line number
            await Task.Yield();

            codeViewModel.FilePath   = source.Path;
            codeViewModel.LineNumber = source.LineNumber;
            CodeView.ScrollTo(codeViewModel.LineNumber, 0);
        }
Esempio n. 10
0
        public static CodeCompletionWindow ShowCompletionWindow(Form parent, CodeView control, string fileName, ICompletionDataProvider completionDataProvider, char firstChar, bool showDeclarationWindow, bool fixedListViewWidth)
        {
            ICompletionData[] completionData = completionDataProvider.GenerateCompletionData(fileName, control.ActiveTextAreaControl.TextArea, firstChar);
            if (completionData == null || completionData.Length == 0)
            {
                return(null);
            }
            CodeCompletionWindow codeCompletionWindow = new CodeCompletionWindow(completionDataProvider, completionData, parent, control, showDeclarationWindow, fixedListViewWidth);

            codeCompletionWindow.CloseWhenCaretAtBeginning = firstChar == '\0';
            codeCompletionWindow.ShowCompletionWindow();
            return(codeCompletionWindow);
        }
Esempio n. 11
0
        static IControl CreateTopBar(
            IPopover popover,
            IProperty <bool> selectionEnabled,
            IProperty <Mode> mode,
            Command addViewport,
            CodeView codeView)
        {
            var isCompact  = mode.Convert(m => m == Mode.Compact, m => m ? Mode.Compact : Mode.Normal);
            var toggleMode = isCompact.Toggle();

            return
                (Layout.Layer(
                     Layout
                     .StackFromLeft(
                         codeView.Create(popover)
                         .HideWhen(isCompact),

                         Control.Empty.WithWidth(16),

                         Layout
                         .StackFromLeft(CreateHeaderControl(
                                            icon: Fuse.Icons.AddViewport(),
                                            tooltipText: "Click to add a new Viewport",
                                            buttonText: "Add Viewport",
                                            command: addViewport,
                                            labelColor: Theme.DefaultText),
                                        Control.Empty.WithWidth(16)
                                        )
                         .HideWhen(isCompact),

                         CreateHeaderControl(
                             icon: MinimizeAndMaximizeIcon.Create(mode),
                             tooltipText: "Switch between normal and compact mode. Click to switch mode.",
                             buttonText: "Compact",
                             labelColor: Theme.DefaultText,
                             command: toggleMode)
                         .HideWhen(isCompact),

                         CreateCompactSelectionControl(mode, selectionEnabled, toggleMode)
                         .ShowWhen(isCompact)
                         .Center(),

                         Control.Empty.WithWidth(4))
                     .DockRight(),
                     CreateFullSelectionControl(selectionEnabled)
                     .HideWhen(isCompact)
                     .CenterHorizontally())
                 .WithHeight(37)
                 .WithPadding(new Thickness <Points>(8, 0, 8, 0))
                 .WithBackground(Theme.PanelBackground));
        }
Esempio n. 12
0
                public bool AddMethod(Type returnType, string methodName, IEnumerable <IParameterDeclaration> parameters)
                {
                    CodeView codeView = this.projectItem.OpenView(true) as CodeView;

                    if (codeView != null)
                    {
                        IDomType domType = this.InitializeDomType();
                        if (domType != null && codeView.CreateMethod(domType, returnType, methodName, parameters))
                        {
                            return(true);
                        }
                    }
                    return(false);
                }
        protected AbstractCompletionWindow(Form parentForm, CodeView control)
        {
            workingScreen = Screen.GetWorkingArea(parentForm);
//			SetStyle(ControlStyles.Selectable, false);
            this.parentForm = parentForm;
            this.control    = control;

            SetLocation();
            StartPosition   = FormStartPosition.Manual;
            FormBorderStyle = FormBorderStyle.None;
            ShowInTaskbar   = false;
            MinimumSize     = new Size(1, 1);
            Size            = new Size(1, 1);
        }
Esempio n. 14
0
        /// <summary>
        /// 输出所有映射文本
        /// </summary>
        /// <param name="codeView"></param>
        /// <returns></returns>
        public resultCode ShowOutTemplateCode(CodeView codeView)
        {
            var        model      = codeView.model;
            resultCode resultCode = new resultCode();

            resultCode.VueCode         += CreateVueCode(model.modelName, model.Description, codeView) + "\r\n";
            resultCode.controllerCode  += CreateControllersCode(model.modelName, model.Description, codeView.Propertys) + "\r\n";
            resultCode.ModelCode       += CreateModelCode(model.modelName, model.Description) + "\r\n";
            resultCode.IRepositoryCode += CreateIRepositoryCode(model.modelName, model.Description) + "\r\n";
            resultCode.IServicesCode   += CreateIServicesCode(model.modelName, model.Description) + "\r\n";
            resultCode.ServicesCode    += CreateServicesCode(model.modelName, model.Description) + "\r\n";
            resultCode.RepositoryCode  += CreateRepositoryCode(model.modelName, model.Description) + "\r\n";

            return(resultCode);
        }
Esempio n. 15
0
        public void OnLoad()
        {
            //Add icon to list
            FiddlerApplication.UI.tabsViews.ImageList.Images.Add(APPLICATION_NAME, new Bitmap(Properties.Resources.MockingBirdIcon));

            _codeView = new CodeView();
            //Add icon
            FiddlerApplication.UI.tabsViews.ImageList.Images.Add(APPLICATION_NAME, new Bitmap(Properties.Resources.MockingBirdIcon));
            var tab = new TabPage(APPLICATION_NAME);

            tab.Controls.Add(_codeView);

            FiddlerApplication.UI.tabsViews.TabPages.Add(tab);
            tab.ImageKey   = APPLICATION_NAME;
            _codeView.Dock = DockStyle.Fill;

            FiddlerApplication.Log.LogString("MockingBird loaded");
        }
Esempio n. 16
0
        public Control CreateControl()
        {
            var uiPrefsSvc = services.RequireService <IUiPreferencesService>();

            this.codeView      = new CodeView();
            this.codeView.Dock = DockStyle.Fill;
            this.codeView.CurrentAddressChanged            += codeView_CurrentAddressChanged;
            this.codeView.ProcedureDeclaration.TextChanged += ProcedureDeclaration_TextChanged;

            this.TextView.Font      = new Font("Lucida Console", 10F);
            this.TextView.BackColor = SystemColors.Window;
            this.TextView.Services  = services;

            this.TextView.ContextMenu = services.RequireService <IDecompilerShellUiService>().GetContextMenu(MenuIds.CtxCodeView);

            this.navInteractor = new NavigationInteractor <Procedure>();
            this.navInteractor.Attach(codeView);
            this.TextView.Navigate += textView_Navigate;
            return(this.codeView);
        }
    /// returns true if the file was opened, false otherwise
    bool OpenFile(string file)
    {
        _textView = null;
        _codeView = null;
        _filePath = file;

        if (string.IsNullOrEmpty(_filePath))
        {
            return(false);
        }

        _textView = TextViewFactory.ViewForFile(_filePath);
        _codeView = new CodeView(MissingEditorAPI.currentInspectorWindow, _textView);

        if (_textView != null)
        {
            _settingsDialog = new SettingsDialog(_textView);
        }
        return(true);
    }
Esempio n. 18
0
        public async Task <ActionResult> Create()
        {
            CodeView view = new CodeView()
            {
                Code = new Code()
                {
                    Active = true
                },
                CodeCategories = new List <CodeCategory>()
            };

            try
            {
                view.CodeCategories = CodeCategory.GetList();
            }
            catch (Exception ex)
            {
                throw (Exception)Activator.CreateInstance(ex.GetType(), ex.Message + ex.StackTrace);
            }

            return(await System.Threading.Tasks.Task.Run(() => View("Create", view)));
        }
Esempio n. 19
0
        public GetCodeResponse GetCode(GetRequest request)
        {
            GetCodeResponse response = new GetCodeResponse();

            try
            {
                Code     code     = new Code();
                CodeView codeView = code.ConvertToCodeView();

                code = _codeRepository.FindBy(request.ID);
                if (code != null)
                {
                    codeView = code.ConvertToCodeView();
                }

                response.CodeView = codeView;
            }
            catch (Exception ex)
            {
            }

            return(response);
        }
Esempio n. 20
0
        /// <summary>
        /// 创建前端页面
        /// </summary>
        /// <param name="modelName"></param>
        /// <param name="Brief"></param>
        /// <param name="codeView"></param>
        /// <returns></returns>
        public string CreateVueCode(string modelName, string Brief, CodeView codeView)
        {
            List <modelProperty> Propertys = codeView.Propertys;
            var            modelPropertys  = GetProperty(modelName);
            TemplateEngine templateEngine  = new TemplateEngine();

            templateEngine.SetFile("Tem", templateConfig.VueTemplateFile);
            templateEngine.SetBlock("Tem", "FieldList1", "list1", "<!--\\s+BEGIN FieldList1\\s+-->([\\s\\S.]*)<!--\\s+END FieldList1\\s+-->");
            templateEngine.m_noMarkers = "comment";
            templateEngine.SetVal("t_name", modelName, false);
            if (!codeView.tableToolOn)
            {
                templateEngine.SetVal("m_Istool", "", false);
            }
            else
            {
                templateEngine.SetVal("m_Istool", "v-if='false'", false);
            }
            if (Propertys.Any())
            {
                StringBuilder queryparameter = new StringBuilder();
                foreach (var item in Propertys)
                {
                    if (item.ColumnType == typeof(string).Name)
                    {
                        queryparameter.Append($"{item.ColumnName}: '',\r\n");
                    }
                    else
                    {
                        queryparameter.Append($"{item.ColumnName}: null,\r\n");
                    }
                    item.propertyInfo = modelPropertys.FirstOrDefault(p => p.ColumnName.ToLower() == item.ColumnName.ToLower()).propertyInfo;
                }
                templateEngine.SetVal("b_queryparameter", queryparameter.ToString(), false);
                templateEngine.SetVal("f_queryformitem", GroupFormItem(Propertys, "QueryForm", false), false);
            }
            else
            {
                templateEngine.SetVal("b_ queryparameter", "", false);
            }
            var DlogForm = GroupFormItem(modelPropertys.Where(p => p.ColumnName != "RootEntity").ToList(), "ruleForm", true);

            templateEngine.SetVal("dlog_formItem", DlogForm, false);
            StringBuilder verification = new StringBuilder();

            foreach (var item in modelPropertys)
            {
                var ColName = item.ColumnName.Substring(0, 1).ToLower() + item.ColumnName.Remove(0, 1);
                verification.Append("{item}: [{ required: true, message: '不能为空', trigger: 'blur' }],".Replace("{item}", ColName));
                if (item.ColumnName.ToLower() == "id")
                {
                    continue;
                }
                if (item.ColumnType == typeof(int).Name)
                {
                    templateEngine.SetVal("f_type", ".number", false);
                }
                else
                {
                    templateEngine.SetVal("f_type", "", false);
                }
                templateEngine.SetVal("f_name", ColName, false);
                templateEngine.SetVal("f_note", item.ColumnDescription, false);
                templateEngine.Parse($"list1", $"FieldList1", true);
            }
            string RowVerification = verification.ToString();

            templateEngine.SetVal("p_verification", RowVerification.Remove(RowVerification.Length - 1, 1), false);
            templateEngine.Parse("out", "Tem", false);
            return(templateEngine.PutOutPageCode("out"));
        }
Esempio n. 21
0
        CodeCompletionWindow(ICompletionDataProvider completionDataProvider, ICompletionData[] completionData, Form parentForm, CodeView control, bool showDeclarationWindow, bool fixedListViewWidth) : base(parentForm, control)
        {
            this.dataProvider          = completionDataProvider;
            this.completionData        = completionData;
            this.document              = control.Document;
            this.showDeclarationWindow = showDeclarationWindow;
            this.fixedListViewWidth    = fixedListViewWidth;

            workingScreen = Screen.GetWorkingArea(Location);
            startOffset   = control.ActiveTextAreaControl.Caret.Offset + 1;
            endOffset     = startOffset;
            if (completionDataProvider.PreSelection != null)
            {
                startOffset -= completionDataProvider.PreSelection.Length + 1;
                endOffset--;
            }

            codeCompletionListView                      = new CodeCompletionListView(completionData);
            codeCompletionListView.ImageList            = completionDataProvider.ImageList;
            codeCompletionListView.Dock                 = DockStyle.Fill;
            codeCompletionListView.SelectedItemChanged += new EventHandler(CodeCompletionListViewSelectedItemChanged);
            codeCompletionListView.DoubleClick         += new EventHandler(CodeCompletionListViewDoubleClick);
            codeCompletionListView.Click               += new EventHandler(CodeCompletionListViewClick);
            Controls.Add(codeCompletionListView);

            if (completionData.Length > MaxListLength)
            {
                vScrollBar.Dock        = DockStyle.Right;
                vScrollBar.Minimum     = 0;
                vScrollBar.Maximum     = completionData.Length - 1;
                vScrollBar.SmallChange = 1;
                vScrollBar.LargeChange = MaxListLength;
                codeCompletionListView.FirstItemChanged += new EventHandler(CodeCompletionListViewFirstItemChanged);
                Controls.Add(vScrollBar);
            }

            this.drawingSize = GetListViewSize();
            SetLocation();

            if (declarationViewWindow == null)
            {
                declarationViewWindow = new DeclarationViewWindow(parentForm);
            }
            SetDeclarationViewLocation();
            declarationViewWindow.ShowDeclarationViewWindow();
            declarationViewWindow.MouseMove += ControlMouseMove;
            control.Focus();
            CodeCompletionListViewSelectedItemChanged(this, EventArgs.Empty);

            if (completionDataProvider.DefaultIndex >= 0)
            {
                codeCompletionListView.SelectIndex(completionDataProvider.DefaultIndex);
            }

            if (completionDataProvider.PreSelection != null)
            {
                CaretOffsetChanged(this, EventArgs.Empty);
            }

            vScrollBar.ValueChanged           += VScrollBarValueChanged;
            document.DocumentAboutToBeChanged += DocumentAboutToBeChanged;
        }
Esempio n. 22
0
        public static PageCodeView GetCodeView(List <Code> codes, int total)
        {
            PageCodeView pageview = new PageCodeView();
            BasicCRUD    dal      = new BasicCRUD();

            try
            {
                List <CodeView> views = new List <CodeView>();
                pageview.Total = total;
                CodeView view = new CodeView();
                foreach (var item in codes)

                {
                    view               = new CodeView();
                    view.ID            = item.id;
                    view.Author        = item.Author;
                    view.Description   = item.Description;
                    view.GitHubUrl     = item.GitHubUrl;
                    view.LastUpateDate = item.LastUpdateDate;
                    view.Link          = item.Link;
                    var takeTimeEntity = dal.GetEntities <CodeOwnership>(c => c.FkId == item.id && c.Type == "code").OrderByDescending(c => c.LogAt).FirstOrDefault();
                    if (takeTimeEntity != null)
                    {
                        var takeTime = takeTimeEntity.LogAt;
                        view.NewCommit = Basic.ConvertCommitToCommitView(dal.GetEntities <Commit>(c => item.GitHubUrl.IndexOf(c.GitHubUrl) >= 0 && c.CreateAt >= takeTime), dal);
                        var newissues = dal.GetEntities <Issue>(c => c.CodeID == item.id && c.CreateAt >= takeTime);
                        view.NewIssue = Basic.ConvertIssueToIssueView(newissues, dal, newissues.Count());
                    }
                    int?ut = 0;
                    foreach (var c in dal.GetEntities <UTLog>(c => c.Type == "code" && c.FkId == item.id))
                    {
                        ut += c.UT;
                    }
                    view.UT        = ut;
                    view.Platforms = Basic.stringToList(item.Platform);
                    view.Products  = Basic.stringToList(item.Products);
                    view.SyncDate  = item.SyncDate;
                    view.Title     = item.Title;
                    var alias = dal.GetEntities <CodeOwnership>(c => c.FkId == item.id && c.Type == "code").ToList().FirstOrDefault();
                    view.Alias = alias != null ? alias.support_alias : null;

                    var process = dal.GetEntities <ProcessLog>(c => c.FkId == item.id && c.Type == "code").OrderByDescending(c => c.LogAT).FirstOrDefault();
                    if (process != null)
                    {
                        view.Process = dal.GetEntities <Process>(c => c.id == process.ProcessID).First().name;
                    }
                    else
                    {
                        view.Process = "Pending";
                    }

                    views.Add(view);
                }
                pageview.Views = views;
            }
            catch (Exception)
            {
                throw;
            }


            return(pageview);
        }
        public async Task <MessageModel> OutTemplateCodeAsync(CodeView codeView)
        {
            try
            {
                var menus = await menuServices.Query(p => p.url.ToLower() == codeView.url || p.title == codeView.title);

                if (!menus.Any())
                {
                    var result = await menuServices.Add(new Menu()
                    {
                        menuid   = codeView.menuId == 0 ? 999 : codeView.menuId,
                        title    = codeView.title,
                        explain  = codeView.description,
                        icon     = codeView.icon,
                        menutype = menuType.Menu,
                        method   = "#",
                        state    = 200,
                        no       = codeView.sort,
                        url      = codeView.url
                    });

                    var menu = (await menuServices.Query(p => p.url.ToLower() == codeView.url.ToLower() && p.title == codeView.title)).FirstOrDefault();
                    if (menu != null)
                    {
                        unitOfWork.BeginTran();
                        var ListMenu = new List <Menu>();
                        for (int i = 0; i < 4; i++)
                        {
                            var menutitle  = string.Empty;
                            var menumethod = string.Empty;
                            if (i == 0)
                            {
                                menumethod = "get";
                                menutitle  = $"{ codeView.title}-查询";
                            }
                            else if (i == 1)
                            {
                                menumethod = "put";
                                menutitle  = $"{ codeView.title}-修改";
                            }
                            else if (i == 2)
                            {
                                menumethod = "post";
                                menutitle  = $"{ codeView.title}-添加";
                            }
                            else if (i == 3)
                            {
                                menumethod = "delete";
                                menutitle  = $"{ codeView.title}-删除";
                            }
                            ListMenu.Add(new Menu()
                            {
                                menuid   = menu.Id,
                                title    = menutitle,
                                explain  = "",
                                icon     = codeView.icon,
                                menutype = menuType.Button,
                                method   = menumethod,
                                state    = 200,
                                no       = codeView.sort,
                                url      = $"/api/{codeView.model.modelName}"
                            });
                        }
                        await menuServices.Add(ListMenu);

                        unitOfWork.CommitTran();
                        await codeContext.OutTemplateCode(codeView);

                        return(new MessageModel());
                    }
                    else
                    {
                        return(new MessageModel(false, "失败"));
                    }
                }
                return(new MessageModel(false, "已存在"));
            }
            catch (Exception ex)
            {
                unitOfWork.RollbackTran();
                return(new MessageModel(false, ex.Message));
            }
        }
 public MessageModel <resultCode> ShowOutTemplateCodeAsync(CodeView codeView)
 {
     return(new MessageModel <resultCode>(codeContext.ShowOutTemplateCode(codeView)));
 }
Esempio n. 25
0
 public InsightWindow(Form parentForm, CodeView control) : base(parentForm, control)
 {
     SetStyle(ControlStyles.UserPaint, true);
     SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
 }
Esempio n. 26
0
        public static Window Create(
            IObservable <string> projectName,
            IControl search,
            IControl outline,
            IControl bookmarks,
            StageController stage,
            IControl notifications,
            IControl inspector,
            IControl attributes,
            LogView logview,
            Menu menu,
            Command closed,
            IProperty <bool> selectionEnabled,
            IObservable <bool> topMost,
            IProperty <Mode> mode,
            Command mainWindowFocused,
            IContext context,
            CodeView codeView)
        {
            IControl topBar = null;

            var newView = stage.NewViewport;

            var content =
                Popover.Host(
                    popover =>
            {
                topBar = CreateTopBar(
                    popover,
                    selectionEnabled: selectionEnabled,
                    mode: mode,
                    addViewport: newView,
                    codeView: codeView);

                return(CreateContent(
                           logview: logview,
                           outline: outline,
                           search: search,
                           notifications: notifications,
                           attributes: attributes,
                           bookmarks: bookmarks,
                           inspector: inspector,
                           stage: new StageView(stage, context, mode),
                           topBar: topBar,
                           mode: mode));
            });

            var mainWindowSize     = UserSettings.Size("MainWindowSize");
            var mainWindowPosition = UserSettings.Position("MainWindowPosition");
            var mainWindowState    = UserSettings.Settings.Property <WindowState>("MainWindowState");

            var compactSize     = UserSettings.Size("CompactWindowSize");
            var compactPosition = UserSettings.Position("CompactWindowPosition");


            var compactContentSize =
                compactSize.With(value:
                                 compactSize.Merge(
                                     stage.DefaultViewportSize.Select(Optional.Some)
                                     .CombineLatest(
                                         topBar.DesiredSize.Height,
                                         (deviceSize, topBarHeight) =>
                                         deviceSize.Select(s =>
                                                           Size.Create(
                                                               s.Width + ResizeBorderSize * 2 /* padding */,
                                                               s.Height + topBarHeight + ResizeBorderSize * 2 + LogViewHeader.HeaderHeight /* padding */)))));


            var windowSize     = mode.Select(x => x == Mode.Normal ? mainWindowSize : compactContentSize).Switch();
            var windowState    = mode.Select(x => x == Mode.Normal ? mainWindowState : Property.Constant(Optional.Some(WindowState.Normal))).Switch();
            var windowPosition = mode.Select(x => x == Mode.Normal ? mainWindowPosition : compactPosition).Switch();


            return(new Window
            {
                Closed = closed,
                Title = projectName
                        .Select(Optional.Some)
                        .StartWith(Optional.None())
                        .Select(
                    maybePath => maybePath.MatchWith(
                        some: name => name + " - Fuse",
                        none: () => "Fuse")),
                Size = Optional.Some(windowSize),
                Position = Optional.Some(windowPosition),
                State = Optional.Some(windowState),
                Menu = menu,
                Content = content,
                TopMost = Optional.Some(topMost),
                Focused = mainWindowFocused,
                Foreground = Theme.DefaultText,
                Background = Theme.PanelBackground,
                Border = Separator.MediumStroke,
                Style = WindowStyle.Fat
            });
        }
 public void SetUp()
 {
     _codeView = new CodeView();
 }
Esempio n. 28
0
        public Window Execute(IDocument document, string[] args)
        {
            var hack    = new ReplaySubject <IObservable <BytecodeGenerated> >(1);
            var project = new LiveProject(document, _shell, hack.Switch().ObserveOn(Application.MainThread));
            var ignore  = RecentProjects.Bump(document, project.Name.ObserveOn(Application.MainThread));

            var preview = _previewService.StartPreview(project);

            hack.OnNext(preview.Bytecode);

                        #pragma warning disable 0219
            var garbage = ExternalSelection.UpdateProjectContext(_daemon, project);
                        #pragma warning restore 0219

            var inspector = Fuse.Inspector.Inspector.Create(project);

            var buildArgs = new BuildArgs(args);

            var usbMode         = new USBMode(new AndroidPortReverser(), Observable.Return(preview.Port), _previewService);
            var previewOnDevice = new PreviewOnDevice(_fuse, project, buildArgs);

            var build  = new Build(project, preview, previewOnDevice, usbMode.EnableUsbModeCommand, buildArgs);
            var export = new Export(project, _fuse, buildArgs);

            var projHost = new ProjectHost(build.BuildArguments, preview, project, self =>
                                           _projectsOpen.OnNext(_projectsOpen.Value.Remove(self)));
            _projectsOpen.OnNext(_projectsOpen.Value.Add(projHost));

            var codeView = new CodeView(preview.AccessCode, NetworkHelper
                                        .GetInterNetworkIps()
                                        .ToArray());

            // Viewport stuff

            var selectionEnabled = Property.Create(false);


            var glVersion = new Subject <OpenGlVersion>();

            var viewport = new ViewportFactory(
                preview,
                selectionEnabled,
                preview.Port,
                project,
                _fuse,
                glVersion);

            var mode           = UserSettings.Enum <Mode>("WindowMode").Or(Mode.Normal);
            var previewDevices = new PreviewDevices(project, _shell);
            var workspace      = new StageController(
                viewport,
                previewDevices,
                selectionEnabled);

            var topMost    = Property.Create(false);
            var windowMenu =
                Menu.Toggle(
                    name: "Compact mode",
                    toggle: mode.Convert(
                        convert: m => m == Mode.Compact,
                        convertBack: b => b ? Mode.Compact : Mode.Normal),
                    hotkey: HotKey.Create(ModifierKeys.Meta, Key.M))
                + Menu.Separator
                + Menu.Toggle(
                    name: "Keep window on top",
                    toggle: topMost,
                    hotkey: HotKey.Create((_fuse.Platform == OS.Windows ? ModifierKeys.Shift : ModifierKeys.Alt) | ModifierKeys.Meta, Key.T))
                + Menu.Separator
                + Menu.Option(
                    value: Themes.OriginalLight,
                    name: "Light theme",
                    property: Theme.CurrentTheme)
                + Menu.Option(
                    value: Themes.OriginalDark,
                    name: "Dark theme",
                    property: Theme.CurrentTheme);

            var messages = preview.Messages.Replay(TimeSpan.FromSeconds(2)).RefCount();

            project.FilePath.SubscribeUsing(projPath =>
                                            PushEventsToDaemon.Start(
                                                messages: messages,
                                                daemon: _daemon,
                                                projectPath: projPath,
                                                projectId: ProjectIdComputer.IdFor(projPath),
                                                target: BuildTarget.DotNetDll));

            var sketchConverter = new SketchWatcher(_fuse.Report, _shell);

            var classExtractor = new ClassExtractor(project);

            var buildStartedOrLicenseChanged = project.FilePath
                                               .CombineLatest(build.Rebuilt.StartWith(Unit.Default));

            var allLogMessages = messages.ToLogMessages()
                                 .Merge(_setupGuide.LogMessages)
                                 .Merge(export.LogMessages)
                                 .Merge(project.LogMessages)
                                 .Merge(previewOnDevice.LogMessages)
                                 .Merge(classExtractor.LogMessages)
                                 .Merge(_hostRequestMessages)
                                 .Merge(_errors.Select(e => e.Message))
                                 .Merge(AutoReload.Log.Select(msg => "[Fusion AutoReload]: " + msg)
                                        .Merge(glVersion.Take(1).ToLogMessages(_fuse.Report)))
                                 .Merge(preview.LogMessages)
                                 .Merge(_previewService.LogMessages)
                                 .Merge(sketchConverter.LogMessages)
                                 .Merge(previewDevices.LogMessages);

            var stopPreview = preview.Start(build.BuildArguments);

            // start with a viewport
            workspace.NewViewport.ExecuteOnce();

            var projectMenu =
                ProjectMenu.CommandItems(project.FilePath.Select(Optional.Some), _shell)
                + Menu.Separator
                + ProjectMenu.FileItems(project, _shell)
                + Menu.Separator
                + Menu.Item("Sketch import", sketchConverter.ShowDialog());

            var help = new Help();

            var debug = new Debug(project);


            var elementContext = new ElementContext(project.Context, project, _daemon);

            var errorView = new ErrorView(messages, project.FilePath, _daemon, preview.ClientRemoved);

            var logView     = new LogView(allLogMessages, messages, errorView);
            var sketchWatch = sketchConverter.Watch(project);
            var window      = MainWindow.Create(
                projectName: project.Name,
                search: Control.Empty,                //search.Control,
                outline: CreateLeftPane(project, elementContext, project.Context, _shell, classExtractor),
                bookmarks: Control.Empty,
                stage: workspace,
                notifications: Layout.StackFromTop(
                    SimulatorNotifications.CreateBusyIndicator(messages),
                    SimulatorNotifications.Create(messages, build.Rebuild, logView.IsExpanded)),
                inspector: inspector,
                attributes: Control.Empty,                //DataContext.Create(workspace.Viewport, selection.Element),
                logview: logView,
                menu: MainMenu.Create(
                    _fuse,
                    _shell,
                    workspace,
                    help,
                    elementContext.CreateMenu(project.Context.CurrentSelection),
                    projectMenu,
                    build,
                    export,
                    _setupGuide,
                    windowMenu,
                    debug),
                closed: Command.Enabled(() =>
            {
                stopPreview.Dispose();
                preview.Dispose();
                projHost.Dispose();
                project.FilePath.Take(1).Subscribe(path =>
                                                   _daemon.Broadcast(new ProjectClosed {
                    ProjectId = ProjectIdComputer.IdFor(path)
                }));
                project.Dispose();
                workspace.Dispose();
                sketchWatch.Dispose();
            }),
                selectionEnabled: selectionEnabled,
                topMost: topMost,
                mode: mode,
                mainWindowFocused: _mainWindowFocused.Update(Unit.Default),
                context: project.Context,
                codeView: codeView);

            return(window);
        }
Esempio n. 29
0
        /// <summary>
        /// 创建模板映射文件
        /// </summary>
        /// <param name="codeView"></param>
        /// <returns></returns>
        public async Task OutTemplateCode(CodeView codeView)
        {
            var           model    = codeView.model;
            DirectoryInfo topDir   = Directory.GetParent(env.ContentRootPath);
            var           BasePath = topDir.FullName;
            //var ModelPath = Path.Combine(templateConfig.ModelsOutputFile, $"{model.Name}.cs");
            //var ModelCode = await CreateModelCode(model.Name, model.Brief);
            //await File.WriteAllTextAsync(ModelPath, ModelCode);

            var VueDirectoryPath = Path.Combine(templateConfig.VueOutputFile, $"{model.modelName}\\");

            if (!Directory.Exists(VueDirectoryPath))
            {
                Directory.CreateDirectory(VueDirectoryPath);
            }
            var VuePath = Path.Combine(templateConfig.VueOutputFile, $@"{model.modelName}\{model.modelName}.vue");
            var VueCode = CreateVueCode(model.modelName, model.Description, codeView);

            if (!File.Exists(VuePath))
            {
                await File.WriteAllTextAsync(VuePath, VueCode);
            }

            var ControllersPath = Path.Combine(BasePath, templateConfig.ControllersOutputFile, $"{model.modelName}Controller.cs");
            var ControllersCode = CreateControllersCode(model.modelName, model.Description, codeView.Propertys);

            if (!File.Exists(ControllersPath))
            {
                await File.WriteAllTextAsync(ControllersPath, ControllersCode);
            }

            var IRepositoryPath = Path.Combine(BasePath, templateConfig.IRepositoryOutputFile, $"I{model.modelName}Repository.cs");
            var IRepositoryCode = CreateIRepositoryCode(model.modelName, model.Description);

            if (!File.Exists(IRepositoryPath))
            {
                await File.WriteAllTextAsync(IRepositoryPath, IRepositoryCode);
            }

            var IServicesPath = Path.Combine(BasePath, templateConfig.IServicesOutputFile, $"I{model.modelName}Services.cs");
            var IServicesCode = CreateIServicesCode(model.modelName, model.Description);

            if (!File.Exists(IServicesPath))
            {
                await File.WriteAllTextAsync(IServicesPath, IServicesCode);
            }

            var ServicesPath = Path.Combine(BasePath, templateConfig.ServicesOutputFile, $"{model.modelName}Services.cs");
            var ServicesCode = CreateServicesCode(model.modelName, model.Description);

            if (!File.Exists(ServicesPath))
            {
                await File.WriteAllTextAsync(ServicesPath, ServicesCode);
            }

            var RepositoryPath = Path.Combine(BasePath, templateConfig.RepositoryOutputFile, $"{model.modelName}Repository.cs");
            var RepositoryCode = CreateRepositoryCode(model.modelName, model.Description);

            if (!File.Exists(RepositoryPath))
            {
                await File.WriteAllTextAsync(RepositoryPath, RepositoryCode);
            }
        }
Esempio n. 30
0
 public static CodeCompletionWindow ShowCompletionWindow(Form parent, CodeView control, string fileName, ICompletionDataProvider completionDataProvider, char firstChar)
 {
     return(ShowCompletionWindow(parent, control, fileName, completionDataProvider, firstChar, true, true));
 }