示例#1
0
    public void SelectModel (GadgetTest gadget)
    {
      if (gadget.NotNull ()) {
        ControlModel.GadgetName = gadget.GadgetName;
        ControlModel.Description = gadget.Description;
        ControlModel.ExternalLink = gadget.ExternalLink;

        if (gadget.ValidateId) {
          if (ControlModel.Contains (gadget.Id).IsFalse ()) {
            ComponentControlModels.Clear ();

            ControlModel.CopyFrom (gadget);

            if (ControlModel.HasContentTest) {
              var contents = new Collection<GadgetTest> ();
              ControlModel.RequestContent (contents);

              foreach (var gadgetTest in contents) {
                var controlModel = TComponentControlModel.CreateDefault;
                controlModel.ControlModel.CopyFrom (gadgetTest.Clone ());

                ComponentControlModels.Add (controlModel);
              }
            }
          }
        }
      }
    }
示例#2
0
    public void Cleanup ()
    {
      ControlModel.CopyFrom (GadgetTest.CreateDefault);

      ComponentControlModels.Clear ();

      MaterialImage = null;
    }
示例#3
0
    public void CopyFrom (TComponentControlModel alias)
    {
      if (alias.NotNull ()) {
        Cleanup ();

        ControlModel.CopyFrom (alias.ControlModel);

        foreach (var item in alias.ComponentControlModels) {
          ComponentControlModels.Add (item);
        }
      }
    }
示例#4
0
    public void AddComponent (TActionComponent component)
    {
      if (component.NotNull ()) {
        switch (component.Category) {
          case TCategory.Test: {
              ControlModel.AddContent (component.Models.GadgetTestModel);

              var contents = new Collection<GadgetTest> ();
              ControlModel.RequestContent (contents);

              ComponentControlModels.Clear ();

              foreach (var gadgetTest in contents) {
                var componentControlModel = TComponentControlModel.CreateDefault;
                componentControlModel.ControlModel.CopyFrom (gadgetTest);

                if (componentControlModel.ControlModel.HasContentTest) {
                  var internalContents = new Collection<GadgetTest> ();
                  componentControlModel.ControlModel.RequestContent (internalContents);

                  foreach (var gadgetTestInternal in internalContents) {
                    var internalComponentControlModel = TComponentControlModel.CreateDefault;
                    internalComponentControlModel.ControlModel.CopyFrom (gadgetTestInternal);
                    internalComponentControlModel.SelectImage (component.Models.GadgetMaterialModel.GetImage ());

                    componentControlModel.ComponentControlModels.Add (internalComponentControlModel);
                  }
                }

                if (componentControlModel.ControlModel.HasContentTarget) {
                  componentControlModel.SelectImage (component.Models.GadgetMaterialModel.GetImage ());
                }

                ComponentControlModels.Add (componentControlModel);
              }
            }
            break;

          case TCategory.Target: {
              ControlModel.AddContent (component.Models.GadgetTargetModel);  

              SelectImage (component.Models.GadgetMaterialModel.GetImage ());
            }
            break;
        }
      }
    }
示例#5
0
    public void RemoveComponent (TActionComponent component)
    {
      if (component.NotNull ()) {
        switch (component.Category) {
          case TCategory.Test: {
              ControlModel.RemoveContent (component.Models.GadgetTestModel);

              if (HasComponentControlModels) {
                foreach (var controlModelItem in ComponentControlModels) {
                  if (component.Models.GadgetTestModel.Contains (controlModelItem.ControlModelId)) {
                    ComponentControlModels.Remove (controlModelItem);
                    break;
                  }
                }
              }
            }
            break;

          case TCategory.Target:
            ControlModel.RemoveContent (component.Models.GadgetTargetModel);
            break;
        }
      }
    }