public void Initialize() { MappingRegistry = new MappingRegistry(); Mapper = new Mapper(MappingRegistry); Serializer = new Serializer(); TLSerializerRegistration.Register(Serializer); MappingRegistry.RegisterDefaultInstance<Serializer>(Serializer); History = new TLHistory(Serializer); MappingRegistry.RegisterDefaultInstance<ICommandHistory>(History); }
public override DataObject Serialize(object data, bool persistType = false) { var node = new JObject(); var dataType = data.GetType(); var typeMapping = MappingRegistry.GetMappingFor(dataType); Serialize(typeMapping.InternalMappings, data, node); if (persistType) { var typeElement = new JProperty(TypeField, dataType.GetPersistableName()); node.Add(typeElement); } var temporaryObject = ConvertJTokenToObject(node); using (var writer = new StringWriter()) { _yamlSerializer.Serialize(writer, temporaryObject); var output = writer.ToString(); return(new DataObject(output)); } }
public Solution(Uri location, MappingRegistry registry) : base(Path.GetFileName(location.LocalPath), location, true) { FRegistry = registry; Mapper = new ModelMapper(this, registry); // Do not allow rename on add. Rename triggers save/delete in case of PersistentIDContainer. Projects = new EditableIDList <IProject>("Projects", false); Add(Projects); ProjectContentRegistry = new ProjectContentRegistry(); var tempPath = Shell.TempPath.ConcatPath("ProjectContentRegistry"); if (!Directory.Exists(tempPath)) { Directory.CreateDirectory(tempPath); } ProjectContentRegistry.ActivatePersistence(tempPath); Projects.Added += Projects_Added; Projects.Removed += Projects_Removed; OnRootingChanged(RootingAction.Rooted); }
protected override void InitializeMappingRegistry(MappingRegistry registry) { registry.RegisterDefaultInstance <ILabelEditor>(this); }
public ProjectExplorerPlugin( [Config("Hide unused projects", IsSingle = true, DefaultValue = 1.0)] IDiffSpread <bool> showUnloadedProjectsIn, [Config("Build configuration", IsSingle = true)] IDiffSpread <BuildConfiguration> buildConfigIn, ISolution solution, ILogger logger, IHDEHost hdeHost) { try { FRootNode = hdeHost.RootNode; Solution = solution; FLogger = logger; FHideUnusedProjectsIn = showUnloadedProjectsIn; FHideUnusedProjectsIn.Changed += new SpreadChangedEventHander <bool>(FHideUnusedProjectsIn_Changed); FBuildConfigIn = buildConfigIn; FBuildConfigIn.Changed += FBuildConfigIn_Changed; FMappingRegistry = new MappingRegistry(); FMappingRegistry.RegisterDefaultMapping <INamed, DefaultNameProvider>(); FMappingRegistry.RegisterDefaultMapping <IParent, DefaultParentProvider>(); // Do not allow drag'n drop except for references. // FMappingRegistry.RegisterDefaultMapping<IDraggable, DefaultDragDropProvider>(); FMappingRegistry.RegisterDefaultMapping <IMenuEntry, DefaultContextMenuProvider>(); FMappingRegistry.RegisterDefaultMapping <AddMenuEntry, DefaultAddMenuEntry>(); FMappingRegistry.RegisterDefaultInstance(FLogger); FMappingRegistry.RegisterDefaultInstance(FRootNode); if (showUnloadedProjectsIn[0]) { FMappingRegistry.RegisterMapping <ISolution, SolutionViewProvider>(); } else { FMappingRegistry.RegisterMapping <ISolution, LoadedProjectsSolutionViewProvider>(); } FMappingRegistry.RegisterMapping <IEditableIDList <IReference>, DefaultDragDropProvider>(); FMappingRegistry.RegisterMapping <IProject, ProjectViewProvider>(); // Do not enumerate IDocument FMappingRegistry.RegisterInstance <IDocument, IEnumerable>(Empty.Enumerable); FMappingRegistry.RegisterMapping <MsBuildProject, MsBuildProjectViewProvider>(); FMappingRegistry.RegisterMapping <FXProject, FXProjectViewProvider>(); FMappingRegistry.RegisterMapping <FXProject, IMenuEntry, FXProjectMenuProvider>(); FMappingRegistry.RegisterMapping <IProject, IDescripted, DescriptedProjectViewProvider>(); // Allow drag drop only in MsBuildProject FMappingRegistry.RegisterMapping <MsBuildProject, IDroppable, DefaultDragDropProvider>(); FMappingRegistry.RegisterMapping <IReference, ReferenceViewProvider>(); FMappingRegistry.RegisterMapping <PersistentIDContainer, PersistentNameProvider>(); FMappingRegistry.RegisterMapping <IReference, IDescripted, ReferenceViewProvider>(); InitializeComponent(); FBuildConfigComboBox.Items.AddRange((object[])Enum.GetNames(typeof(BuildConfiguration))); FBuildConfigComboBox.SelectedIndex = 0; FHideUnusedProjectsCheckBox.CheckedChanged += FHideUnusedProjectsCheckBox_CheckedChanged; FTreeViewer.DoubleClick += FTreeViewer_DoubleClick; FTreeViewer.Registry = FMappingRegistry; FTreeViewer.Input = Solution; // Workaround because config pins do not send changed on reload :/ FHideUnusedProjectsIn.Sync(); FBuildConfigIn.Sync(); } catch (Exception e) { logger.Log(e); throw e; } }
protected override void InitializeMappingRegistry(MappingRegistry registry) { registry.RegisterDefaultInstance <ICamera>(this); }
public HDEHost() { // Set vvvv.exe path ExePath = Path.GetFullPath(Path.Combine(Path.GetDirectoryName((typeof(HDEHost).Assembly.Location)), @"..\..")); //add repository paths from commandline //from commandline var repoArg = "/package-repositories"; var packageRepositories = AssemblyLoader.ParseCommandLine(repoArg); //from args.txt var argsFile = Path.Combine(ExePath, "args.txt"); if (File.Exists(argsFile)) { var args = File.ReadAllText(argsFile).Trim('\r', '\n', ' ').Split(' '); var sourcesIndex = Array.IndexOf(args, repoArg); if (sourcesIndex >= 0 && args.Length > sourcesIndex + 1) { var sourcesString = args[sourcesIndex + 1].Trim('"'); var repoPaths = sourcesString.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < repoPaths.Length; i++) { repoPaths[i] = repoPaths[i].Trim('"', '\\'); } packageRepositories = packageRepositories.Union(repoPaths).ToArray(); } } //make relative paths absolute for (int i = 0; i < packageRepositories.Length; i++) { if (Path.IsPathRooted(packageRepositories[i])) { packageRepositories[i] = Path.Combine(ExePath, packageRepositories[i]); } } AssemblyLoader.AddPackageRepositories(packageRepositories); //the built-in one if (Directory.Exists(PacksPath)) { AssemblyLoader.AddPackageRepository(PacksPath); } //the one where the user is supposed to install packages if (Directory.Exists(UserPacksPatch)) { AssemblyLoader.AddPackageRepository(UserPacksPatch); } // Set name to vvvv thread for easier debugging. Thread.CurrentThread.Name = "vvvv"; // Create a windows forms sync context (FileSystemWatcher runs asynchronously). SynchronizationContext.SetSynchronizationContext(new MySynchronizationContext()); // Register at least one ICommandHistory for top level element ISolution var mappingRegistry = new MappingRegistry(); mappingRegistry.RegisterMapping <ISolution, ICommandHistory, CommandHistory>(MapInstantiation.PerInstanceAndItsChilds); var location = Shell.CallerPath.ConcatPath(@"..\..\lib\nodes\plugins").ConcatPath("Solution.sln"); Solution = new Solution(location, mappingRegistry); EnumManager.SetHDEHost(this); Logger = new DefaultLogger(); IORegistry = new IORegistry(); // Will tell Windows Forms that a message loop is indeed running Application.RegisterMessageLoop(IsSendingMessages); }
public CodeEditorPlugin(IHDEHost host, INode node, ISolution solution, ILogger logger) { FHDEHost = host; FNode = node; FSolution = solution; FLogger = logger; FErrorList = new ViewableCollection <object>(); if (CompletionIcons.Images.Count == 0) { var resources = new ComponentResourceManager(typeof(CodeEditorPlugin)); CompletionIcons.TransparentColor = System.Drawing.Color.Transparent; CompletionIcons.Images.Add((System.Drawing.Bitmap)resources.GetObject("Icons.16x16.Class")); CompletionIcons.Images.Add((System.Drawing.Bitmap)resources.GetObject("Icons.16x16.Method")); CompletionIcons.Images.Add((System.Drawing.Bitmap)resources.GetObject("Icons.16x16.Property")); CompletionIcons.Images.Add((System.Drawing.Bitmap)resources.GetObject("Icons.16x16.Field")); CompletionIcons.Images.Add((System.Drawing.Bitmap)resources.GetObject("Icons.16x16.Enum")); CompletionIcons.Images.Add((System.Drawing.Bitmap)resources.GetObject("Icons.16x16.NameSpace")); CompletionIcons.Images.Add((System.Drawing.Bitmap)resources.GetObject("Icons.16x16.Event")); var path = Path.GetFullPath(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"..\..\thirdparty")); var provider = new SD.FileSyntaxModeProvider(path); SD.HighlightingManager.Manager.AddSyntaxModeFileProvider(provider); } SuspendLayout(); FCodeEditorForm = new Form(); FCodeEditorForm.Location = new Point(0, 0); FCodeEditorForm.TopLevel = false; FCodeEditorForm.TopMost = false; FCodeEditorForm.Dock = DockStyle.Fill; FCodeEditorForm.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); FCodeEditorForm.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; FCodeEditorForm.BackColor = System.Drawing.Color.Silver; FCodeEditorForm.ClientSize = new System.Drawing.Size(881, 476); FCodeEditorForm.ControlBox = false; FCodeEditorForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; FCodeEditorForm.MaximizeBox = false; FCodeEditorForm.MinimizeBox = false; FCodeEditorForm.ShowIcon = false; FCodeEditorForm.ShowInTaskbar = false; FCodeEditorForm.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; FCodeEditorForm.TopMost = true; FCodeEditorForm.Show(); FEditor = new CodeEditor(FCodeEditorForm, FLogger); FEditor.Dock = DockStyle.Fill; FCodeEditorForm.Controls.Add(FEditor); FErrorTableViewer = new TableViewer(); FErrorTableViewer.Dock = DockStyle.Bottom; FErrorTableViewer.TabIndex = 0; FErrorTableViewer.DoubleClick += FErrorTableViewerDoubleClick; FErrorTableViewer.AutoSize = true; FErrorTableViewer.AutoSizeMode = AutoSizeMode.GrowAndShrink; FErrorTableViewer.MaximumSize = new Size(0, 100); Controls.Add(FCodeEditorForm); Controls.Add(FErrorTableViewer); ResumeLayout(false); PerformLayout(); var registry = new MappingRegistry(); registry.RegisterDefaultMapping <IEnumerable <Column>, ErrorCollectionColumnProvider>(); registry.RegisterMapping <CompilerError, IEnumerable <ICell>, ErrorCellProvider>(); registry.RegisterMapping <RuntimeError, IEnumerable <ICell>, RuntimeErrorCellProvider>(); FErrorTableViewer.Registry = registry; FErrorTableViewer.Input = FErrorList; FEditor.LinkClicked += FEditor_LinkClicked; }
public HDEHost() { // Set vvvv.exe path ExePath = Path.GetFullPath(Path.Combine(Path.GetDirectoryName((typeof(HDEHost).Assembly.Location)), @"..\..")); //add repository paths from commandline //from commandline var repoArg = "/package-repositories"; var packageRepositories = AssemblyProbing.ParseCommandLine(repoArg); //from args.txt var argsFile = Path.Combine(ExePath, "args.txt"); if (File.Exists(argsFile)) { var args = File.ReadAllText(argsFile); var repoPaths = args.Split(new string[] { "\r", "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries) .Where(l => l.StartsWith(repoArg)) .SelectMany(r => r.Substring(repoArg.Length + 1).Trim('"').Split(';')); packageRepositories = packageRepositories.Union(repoPaths).ToArray(); } AssemblyProbing.AddPackageRepositories(packageRepositories); //the built-in one AssemblyProbing.AddPackageRepository(PacksPath); //the one where the user is supposed to install packages AssemblyProbing.AddPackageRepository(UserPacksPatch); // Set name to vvvv thread for easier debugging. Thread.CurrentThread.Name = "vvvv"; // Create a windows forms sync context (FileSystemWatcher runs asynchronously). var context = SynchronizationContext.Current; if (context == null) { // We need to create a user control to get a sync context. var control = new UserControl(); context = SynchronizationContext.Current; control.Dispose(); Debug.Assert(context != null, "SynchronizationContext not set."); } // Register at least one ICommandHistory for top level element ISolution var mappingRegistry = new MappingRegistry(); mappingRegistry.RegisterMapping <ISolution, ICommandHistory, CommandHistory>(MapInstantiation.PerInstanceAndItsChilds); var location = Shell.CallerPath.ConcatPath(@"..\..\lib\nodes\plugins").ConcatPath("Solution.sln"); Solution = new Solution(location, mappingRegistry); EnumManager.SetHDEHost(this); Logger = new DefaultLogger(); IORegistry = new IORegistry(); // Will tell Windows Forms that a message loop is indeed running Application.RegisterMessageLoop(IsSendingMessages); }
//set mapper public void CreateMapper(MappingRegistry registry) { Mapper = new ModelMapper(this, registry); }
public static void Register() { MappingRegistry.RegisterMap <sourcemodels.BasketItemCreateModel, targetmodels.BasketItemChangeModel>(); MappingRegistry.RegisterMap <sourcemodels.BasketItemChangeModel, targetmodels.BasketItemChangeModel>(); }
/// <summary> /// Hook to register mappings in the registry. /// </summary> protected virtual void InitializeMappingRegistry(MappingRegistry registry) { }