private ToDoListVersionDetailSubWindow Init(ToDoListProductDetailView _productDetailView
                                                    , ToDoProduct _todoProduct, ToDoProductVersion _version)
        {
            productView    = _productDetailView;
            todoProduct    = _todoProduct;
            productVersion = _version;

            if (_version != null)
            {
                todoVersion.SetVersion(_version.version);
                versionNameView.Content.Val = _version.name;
            }
            else
            {
                todoVersion.SetVersion(0, 0, 0);
                productName = string.Empty;
            }


            UpdateMajor();
            UpdateMiddle();
            UpdateSmall();

            return(this);
        }
Exemplo n.º 2
0
 public ToDoListFeatureView(ToDoProduct todoProduct)
 {
     product  = todoProduct;
     isHeader = true;
     depth    = 0;
     Init();
 }
    public static ToDoProduct AddProduct(this ToDoListCls cls, string name, string desc)
    {
        var val = new ToDoProduct(name, desc);

        cls.productList.Add(val);
        cls.Save();
        return(val);
    }
Exemplo n.º 4
0
 public void OpenProductEditorWindow(ToDoProduct todoProduct = null)
 {
     //防止同一帧数内 颜色污染
     EnqueueCmd(() =>
     {
         ToDoListEditorProductSubWindow.Open(this, todoProduct);
     });
 }
Exemplo n.º 5
0
        public static ToDoListFeaturesSubWindow Open(ToDoListFeatureView _inputView, ToDoProduct _productParent,
                                                     string name = "ToDo Feature Editor")
        {
            var window = Open <ToDoListFeaturesSubWindow>(name);

            window.Init(_inputView, null, _productParent, true);
            instance = window;
            window.Show();
            return(window);
        }
        public static ToDoListVersionDetailSubWindow Open(ToDoListProductDetailView productDetailView,
                                                          ToDoProduct todoProduct, ToDoProductVersion version = null, string name = null)
        {
            string str    = name ?? (version == null ? "Version Detail Create Window" : "Version Detail Editor Window");
            var    window = Open <ToDoListVersionDetailSubWindow>(str)
                            .Init(productDetailView, todoProduct, version);

            instance = window;
            window.Show();
            return(window);
        }
Exemplo n.º 7
0
        public void RebuildDetailViews(ToDoProduct todoProduct)
        {
            this.todoProduct = todoProduct;

            detailViews.Clear();

            productViews.Hide();

            CreateDetailView(todoProduct, true).AddTo(detailViews);
            detailViews.Show();
        }
Exemplo n.º 8
0
        public void RebuildProductViews()
        {
            productViews.Clear();

            detailViews.Hide();
            todoProduct = null;

            new ButtonView("创建产品", () => OpenProductEditorWindow(null), true).Height(40).AddTo(productViews);

            new SpaceView(10f).AddTo(productViews);

            var data = ToDoDataManager.Data.productList;

            for (int i = data.Count - 1; i >= 0; i--)
            {
                var product = data[i];

                var title = new HorizontalLayout();

                new FlexibleSpaceView().AddTo(title);

                new ImageButtonView(ImageButtonIcon.openIcon, () => EnqueueCmd(() => RebuildDetailViews(product)))
                .Width(40).Height(25).BackgroundColor(Color.black).AddTo(title);

                new ImageButtonView(ImageButtonIcon.editorIcon, () => OpenProductEditorWindow(product))
                .Width(40).Height(25).BackgroundColor(Color.black).AddTo(title);

                new ImageButtonView(ImageButtonIcon.deleteIcon, () => RemoveProduct(product)).Width(25).Height(25)
                .BackgroundColor(Color.red).AddTo(title);

                var foldout = new FoldoutView(false, product.name, title).FontSize(25)
                              .FontBold().AddTo(productViews);

                new SpaceView(10f).AddTo(productViews);

                foldout.AddFoldoutView(CreateDetailView(product, false).AddTo(detailViews));

                foldout.AddFoldoutView(new SpaceView(15f));
            }

            productViews.Show();
        }
Exemplo n.º 9
0
        public ToDoListProductDetailView(ToDoListProductView _productView, ToDoProduct _todoProduct, bool isNewPage
                                         , Action _rebuildProductViews)
            : base("box")
        {
            productView = _productView;
            todoProduct = _todoProduct;

            if (isNewPage)
            {
                new LabelView(_todoProduct.name).FontBold().FontSize(30).TextMiddleCenter().AddTo(this);
                new SpaceView(8).AddTo(this);
                new ButtonView("返回", () => EnqueueCmd(_rebuildProductViews), true).FontSize(20).TextMiddleCenter()
                .AddTo(this);
            }

            new SpaceView(8).AddTo(this);

            new LabelView("描述: " + _todoProduct.description).FontBold().FontSize(25).TextMiddleLeft().MarginLeft(30)
            .AddTo(this);

            //Feature Detail-------------------

            new SpaceView(8).AddTo(this);

            new ToDoListFeatureView(todoProduct).AddTo(this);

            //Version Detail-----------
            new SpaceView(8).AddTo(this);

            versionDetailView = new VerticalLayout("box");
            var createVersionBtn =
                new ButtonView("创建版本", OpenVersionDetailWindow, true)
                .Height(20).Width(100).FontSize(15).TextMiddleCenter();
            var versionFoldout = new FoldoutView(false, "版本:", createVersionBtn)
                                 .FontSize(25).FontBold().MarginLeft(15).AddTo(this);

            versionFoldout.AddFoldoutView(versionDetailView);

            RefreshProductFoldoutDetailView();
        }
Exemplo n.º 10
0
        private void Init(ToDoListFeatureView _inputView, ToDoFeature _featureParent, ToDoProduct _todoProduct,
                          bool _isCreate)
        {
            inputView       = _inputView;
            isCreate        = _isCreate;
            featureOrParent = _featureParent;
            productParent   = _todoProduct;
            EditorGUI.FocusTextInControl(null);

            if (isCreate)
            {
                nameInputView.Content.Val = string.Empty;
                descInputView.Content.Val = string.Empty;
                saveCreateBtn.Text        = "创建";
            }
            else
            {
                nameInputView.Content.Val = featureOrParent.name;
                descInputView.Content.Val = featureOrParent.description;
                saveCreateBtn.Text        = "保存";
            }
        }
        private ToDoListEditorProductSubWindow Init(ToDoListProductView _productView, ToDoProduct todoProduct)
        {
            productView      = _productView;
            this.todoProduct = todoProduct;

            Clear();

            var verticalLayout = new VerticalLayout("box").AddTo(this);

            var productName        = this.todoProduct == null ? string.Empty : this.todoProduct.name;
            var productDescription = this.todoProduct == null ? string.Empty : this.todoProduct.description;

            new LabelView("名称:").TextMiddleCenter().FontBold().FontSize(20).AddTo(verticalLayout);
            new TextAreaView(productName, pName => productName = pName).Height(30)
            .AddTo(verticalLayout);
            new LabelView("描述:").TextMiddleCenter().FontBold().FontSize(20).AddTo(verticalLayout);
            new TextAreaView(productDescription, pDesc => productDescription = pDesc)
            .Height(60).AddTo(verticalLayout);
            new ButtonView("保存", () => { SaveProduct(productName, productDescription); }, true).Height(20)
            .AddTo(verticalLayout);

            return(this);
        }
Exemplo n.º 12
0
        public ToDoListProductFoldoutDetailView(ToDoListProductDetailView _productDetailView
                                                , ToDoProduct _todoProduct, ToDoProductVersion _productVersion) : base("box")
        {
            productDetailView = _productDetailView;
            todoProduct       = _todoProduct;
            productVersion    = _productVersion;

            HorizontalLayout horView = new HorizontalLayout();

            new FlexibleSpaceView().AddTo(horView);

            stateBoxView = new BoxView(String.Empty).Height(20).AddTo(horView);

            new ImageButtonView(ImageButtonIcon.editorIcon,
                                OpenVersionDetailWindow).BackgroundColor(Color.black).Width(30).Height(20).AddTo(horView);

            new ImageButtonView(ImageButtonIcon.deleteIcon,
                                DeleteItem).BackgroundColor(Color.red).Width(30).Height(20).AddTo(horView);

            foldoutView = new FoldoutView(false, productVersion.name + "	"+ productVersion.version, horView)
                          .FontBold().FontSize(15).MarginLeft(30).TextMiddleLeft().AddTo(this);


            var input = new ToDoListInputView(AddFoldoutItem);

            input.Show();

            foldoutView.AddFoldoutView(input);

            RefreshStateWithView();

            foreach (var todoItem in productVersion.todos)
            {
                AddToDoToFoldoutView(todoItem);
            }
        }
Exemplo n.º 13
0
 public void RemoveProduct(ToDoProduct todoProduct)
 {
     ToDoDataManager.Data.RemoveProduct(todoProduct);
     EnqueueCmd(Rebuild);
 }
Exemplo n.º 14
0
 private ToDoListProductDetailView CreateDetailView(ToDoProduct todoProduct, bool isNewPage)
 {
     return(new ToDoListProductDetailView(this, todoProduct, isNewPage, RebuildProductViews));
 }
 public static void RemoveProduct(this ToDoListCls cls, ToDoProduct todoProduct)
 {
     cls.productList.Remove(todoProduct);
     cls.Save();
 }
        public static ToDoListEditorProductSubWindow Open(ToDoListProductView _productView, ToDoProduct todoProduct = null,
                                                          string name = "Product Editor")
        {
            var window = Open <ToDoListEditorProductSubWindow>(name).Init(_productView, todoProduct);

            instance = window;
            window.Show();
            return(window);
        }