/// <summary> /// Export data from represented <see cref="Instance" /> by using given drawer. /// <remarks>Note that only instances which are forced to display are displayed in root of editors workspace.</remarks>. /// </summary> /// <param name="drawer">The drawer.</param> protected override void draw(InstanceDrawer drawer) { drawer.SetProperty("Path", Path.Value); drawer.SetProperty("FullPath", FullPath.Value); drawer.SetProperty("Error", Error.Value); drawer.SetProperty("AssemblyName", AssemblyName.Value); var slot = drawer.AddSlot(); if (Components.Value != null) { foreach (var component in Components.Value) { var componentDrawing = drawer.GetInstanceDrawing(component); slot.Add(componentDrawing.Reference); } } drawer.ForceShow(); }
/// <summary> /// Sets the composition information. /// </summary> /// <param name="drawer">The drawer.</param> private void setCompositionInfo(InstanceDrawer drawer) { var compositionResult = CompositionResult.Get(); CompositionContext context = null; var error = Error.Value == null ? "" : Error.Value; if (compositionResult != null) { if (compositionResult.Error != null) { error = compositionResult.Error + Environment.NewLine + error; } context = compositionResult.Context; } if (error != "") { drawer.SetProperty("Error", error); } if (context != null) { foreach (var component in context.InputInstances) { var drawing = drawer.GetInstanceDrawing(component); drawing.SetProperty("Composed", "True"); } foreach (var point in compositionResult.Points) { var joinPoint = getConnector(point, drawer); } foreach (var join in compositionResult.Joins) { if (compositionResult.Failed && !join.IsErrorJoin) { //on error we want to display only error joins continue; } var fromPoint = getConnector(join.Export, drawer); var toPoint = getConnector(join.Import, drawer); var joinDefinition = drawer.DrawJoin(fromPoint, toPoint); //TODO set properties of joinDefinition } } }
/// <summary> /// Draws the specified services. /// </summary> /// <param name="services">The services.</param> protected override void draw(InstanceDrawer services) { var importedValues = Import.Get(); var i = 0; foreach (var value in importedValues) { services.SetProperty("Import[" + i + "]", value); ++i; } services.ForceShow(); }
/// <summary> /// Export data from represented <see cref="Instance" /> by using given drawer. /// <remarks>Note that only instances which are forced to display are displayed in root of <see cref="MEFEditor.Drawing.DiagramCanvas" /></remarks> /// </summary> /// <param name="drawer">The drawer.</param> protected override void draw(InstanceDrawer drawer) { var importedValues = Import.Get(); if (importedValues != null) { var i = 0; foreach (var value in importedValues) { drawer.SetProperty("Import[" + i + "]", value); ++i; } } drawer.ForceShow(); }
protected override void draw(InstanceDrawer drawer) { //přidáme definici slotu, ve kterém se budou //zobrazovat uložené instance var instanceSlot = drawer.AddSlot(); //vytvořený slot naplníme instancemi foreach (var instance in Instances.Value) { //pro každou instanci musíme získat reprezentaci //jejího zobrazení var instanceDrawing = drawer.GetInstanceDrawing(instance); //do slotu patří pouze reference na vytvořené zobrazení instanceSlot.Add(instanceDrawing.Reference); } //předáme informace které vypíšeme uživateli drawer.PublishField("message", Message); drawer.SetProperty("time", Watch.Value.ElapsedMilliseconds + "ms"); //vynutíme zobrazení této instance //ve schématu kompozice drawer.ForceShow(); }
/// <summary> /// Draws the specified services. /// </summary> /// <param name="services">The services.</param> protected override void draw(InstanceDrawer services) { services.PublishField("Import", Import); services.SetProperty("ImportValue", Import.Value.Value.Wrapped.ToString()); services.ForceShow(); }