コード例 #1
0
        /// <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();
        }
コード例 #2
0
        /// <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
                }
            }
        }
コード例 #3
0
        /// <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();
        }
コード例 #4
0
        /// <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();
        }
コード例 #5
0
        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();
        }
コード例 #6
0
 /// <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();
 }