Exemplo n.º 1
0
 public override RenderFragment GetInternalComponents(SampleComponent selectedSampleComponent)
 {
     return(new RenderFragment(builder =>
     {
         builder.AddContent(0, HtmlContent);
     }));
 }
Exemplo n.º 2
0
        public override RenderFragment GetRenderFragment(SampleComponent selectedSampleComponent)
        {
            return(new RenderFragment(builder =>
            {
                int x = 0;
                builder.OpenElement(++x, "div");
                builder.AddAttribute(++x, "class", "ui row padding buttons");
                foreach (var item in Actions)
                {
                    builder.OpenElement(++x, "button");
                    builder.AddAttribute(++x, "class", "ui small button");
                    builder.AddAttribute <MouseEventArgs>(++x, "onclick",
                                                          EventCallback.Factory.Create <MouseEventArgs>(this, d => item.OnExecute(this.Component))
                                                          );
                    builder.AddContent(++x, item.Name);
                    builder.CloseElement();
                }
                builder.CloseElement();
                builder.OpenComponent <T>(++x);

                builder.AddAttribute(++x, "class", selectedSampleComponent == this ? "editable selected" : "");

                if (GetInternalComponents(selectedSampleComponent) != null)
                {
                    builder.AddAttribute(++x, "ChildContent", GetInternalComponents(selectedSampleComponent));
                }
                builder.AddComponentReferenceCapture(++x, d => Component = (T)d);
                builder.CloseComponent();
            }));
        }
Exemplo n.º 3
0
 public override RenderFragment GetInternalComponents(SampleComponent selectedSampleComponent)
 {
     return(new RenderFragment(builder =>
     {
         int i = 0;
         foreach (var item in InternalComponents)
         {
             builder.AddContent(i++, item.GetRenderFragment(selectedSampleComponent));
         }
     }));
 }
Exemplo n.º 4
0
        public async void Select(SampleComponent x)
        {
            currentComponent = x;
            if (currentComponent != null)
            {
                var t = currentComponent.ThisComponent.GetType();

                var NestedClasses = t.GetProperties().Where(
                    prop => Attribute.IsDefined(prop, typeof(NestedParamterAttribute))).ToList();

                Prop = t.GetProperties().Where(
                    prop => Attribute.IsDefined(prop, typeof(ParameterAttribute)))
                       .Select(d => new Tuple <string, object, PropertyInfo>("", this.currentComponent.ThisComponent, d)).ToList();



                Methods = t.GetMethods().Where(
                    prop => Attribute.IsDefined(prop, typeof(ComponentActionAttribute)))
                          .Select(d => new Tuple <string, object, MethodInfo>("", this.currentComponent.ThisComponent, d)).ToList();

                foreach (var item in NestedClasses)
                {
                    var nt = item.PropertyType;


                    Prop.AddRange(nt.GetProperties().Where(
                                      prop => Attribute.IsDefined(prop, typeof(ParameterAttribute)))
                                  .Select(d => new Tuple <string, object, PropertyInfo>(item.Name, item.GetValue(this.currentComponent.ThisComponent), d)).ToList());

                    var nestedMethods = nt.GetMethods()
                                        .Where(prop => Attribute.IsDefined(prop, typeof(ComponentActionAttribute)))
                                        .Select(d => new Tuple <string, object, MethodInfo>(item.Name, item.GetValue(this.currentComponent.ThisComponent), d)).ToList();

                    Console.WriteLine($"adding {item.Name}({nt.Name}) nested param with Nested {nestedMethods.Count} methods");
                    Methods.AddRange(nestedMethods);
                }

                this.StateHasChanged();
                await JsRuntime.InvokeVoidAsync("window.demo.initPropSheetElements");
            }
        }
Exemplo n.º 5
0
        public async void Open()
        {
            currentComponent = null;

            await JsRuntime.InvokeVoidAsync("window.demo.togglePropSheet", sideMenu1, sideMenu2, DotNetObjectReference.Create(this));
        }
Exemplo n.º 6
0
 public void Close()
 {
     currentComponent = null;
     isEditing        = false;
     this.StateHasChanged();
 }
Exemplo n.º 7
0
 public SampleComponentActionWithChildren(string variableName, SampleComponent parentComponent, Action <T> onComponentCreate = null) : base(parentComponent, onComponentCreate)
 {
     VariableName = variableName;
 }
Exemplo n.º 8
0
 public abstract RenderFragment GetRenderFragment(SampleComponent selectedSampleComponent);
Exemplo n.º 9
0
 public SampleComponentWithChildren(SampleComponent parentComponent, Action <T> onComponentCreate = null) : base(parentComponent, onComponentCreate)
 {
 }
Exemplo n.º 10
0
 public SampleComponentWithHtmlContent(SampleComponent parentComponent, Action <T> onComponentCreate = null) : base(parentComponent, onComponentCreate)
 {
 }
Exemplo n.º 11
0
 public SampleComponent(SampleComponent parent)
 {
     ParentComponent = parent;
 }