Ejemplo n.º 1
0
        void tempControl_DeleteTemplate(object sender, TemplateEventArgs e)
        {
            var       p  = _panels.Peek() as StackPanel;
            PanelInfo pi = p.Tag as PanelInfo;

            _tempMgr.Delete(e.Name, pi.DataType);
        }
Ejemplo n.º 2
0
        void titleControl_BackClick(object sender, EventArgs e)
        {
            var       p  = _panels.Pop() as StackPanel;
            PanelInfo pi = p.Tag as PanelInfo;


            object instance = null;

            try {
                instance = CreateTypeInstance(p);
            } catch (FailedDeserializingCommandException ex) {
                if (!ShowDiscardCommandChangesDialog(ex))
                {
                    _panels.Push(p);
                    return;
                }
                else
                {
                    instance = pi.InitialObject;
                }
            }


            var currPanel = _panels.Peek() as StackPanel;

            SetAttributeValue(currPanel, pi.AttributeName, instance);

            ScrollBackToPreviousControl(pi);
        }
Ejemplo n.º 3
0
    public void LevelStart()
    {
        if ((levelController.Current.world == 0) && (levelController.Current.level == 0))
        {
            PanelStory.SetActive(true);
            PanelInfo.SetActive(false);
        }
        else
        {
            PanelStory.SetActive(false);
            PanelInfo.SetActive(true);
        }

        text.text                   = "";
        statusText.text             = "";
        code.text                   = "";
        instructionCount            = 0;
        instructionHeaderText2.text = "World " + (levelController.Current.world + 1) + ", Level " + (levelController.Current.level + 1);

        instructionBodyText2.text = System.Text.RegularExpressions.Regex.Unescape(levelController.Current.instructions);
        //	instructionTextOld.text = instructionText.text;
        panelAllCode.SetActive(false);
        allCode.Clear();
        updateScoreText();
    }
Ejemplo n.º 4
0
        private void OpenDependPanel(int uiID, PanelInfo masterInfo, Action <AbstractPanel> listener, int sortIndexOffset, params object[] args)
        {
            if (masterInfo == null)
            {
                Log.e("DependPanel Can not open with null Parent.");
                return;
            }

            PanelInfo panelInfo = LoadPanelInfo(uiID);

            if (panelInfo == null)
            {
                return;
            }

            panelInfo.AddMaster(masterInfo.panelID, sortIndexOffset, args);

            if (panelInfo.isReady)
            {
                //ReSortPanel();
                SetPanelSortingOrderDirty();
                panelInfo.AddOpenCallback(listener);
            }
            else
            {
                panelInfo.AddOpenCallback(listener);
                panelInfo.LoadPanelResAsync();
            }
        }
Ejemplo n.º 5
0
        //处理面板隐藏逻辑
        private void ProcessPanelGameObjectActiveState()
        {
            int mask = (int)m_TopPanelHideMask;

            for (int i = m_ActivePanelInfoList.Count - 1; i >= 0; --i)
            {
                PanelInfo panelInfo = m_ActivePanelInfoList[i];

                if (panelInfo.sortIndex < 0)
                {
                    panelInfo.SetActive(false, false);
                    continue;
                }

                if (((mask ^ (int)PanelHideMask.Hide) & (int)PanelHideMask.Hide) == 0)
                {
                    panelInfo.SetActive(false, false);
                }
                else
                {
                    if (((mask ^ (int)PanelHideMask.UnInteractive) & (int)PanelHideMask.UnInteractive) == 0)
                    {
                        panelInfo.SetActive(true, false);
                    }
                    else
                    {
                        panelInfo.SetActive(true, true);
                    }
                }

                mask |= panelInfo.hideMask;
            }
        }
Ejemplo n.º 6
0
        public void ClosePanel(AbstractPanel panel)
        {
            if (panel == null)
            {
                return;
            }

            PanelInfo panelInfo = FindPanelInfoByPanelID(panel.panelID);

            //该面板的管理失效,直接移除
            if (panelInfo == null)
            {
                panelInfo = GetPanelFromCache(panel.uiID, false);

                if (panelInfo == null)
                {
                    Log.e("Not Find PanelInfo For Panel:" + panel.name);
                    panel.OnPanelClose(true);
                    GameObject.Destroy(panel.gameObject);
                }
                return;
            }

            ClosePanelInfo(panelInfo);
            //ReSortPanel();
            SetPanelSortingOrderDirty();
        }
Ejemplo n.º 7
0
        public void CloseDependPanel <T>(int master, T uiID) where T : IConvertible
        {
            int        eID            = uiID.ToInt32(null);
            List <int> needClosePanel = new List <int>();

            for (int i = m_ActivePanelInfoList.Count - 1; i >= 0; --i)
            {
                if (m_ActivePanelInfoList[i].uiID == eID)
                {
                    m_ActivePanelInfoList[i].RemoveMaster(master);
                    if (m_ActivePanelInfoList[i].nextMaster <= 0)
                    {
                        needClosePanel.Add(m_ActivePanelInfoList[i].panelID);
                    }
                }
            }

            if (needClosePanel.Count > 0)
            {
                for (int i = needClosePanel.Count - 1; i >= 0; --i)
                {
                    PanelInfo info = FindPanelInfoByPanelID(needClosePanel[i]);
                    if (info != null)
                    {
                        ClosePanelInfo(info);
                    }
                }
            }

            SetPanelSortingOrderDirty();
            //ReSortPanel();
        }
Ejemplo n.º 8
0
    protected virtual void ChangeToNormalPanel()
    {
        // make sure the panel's center is visible
        panel.centerRenderer.enabled = true;

        // make sure it doesn't still have that hole
        Material baseMaterial;
        string   materialPath = "Materials/";

        if (panel.owner == Combatant.player)
        {
            materialPath += "Blue";
        }
        else
        {
            materialPath += "Red";
        }

        baseMaterial   = Resources.Load <Material>(materialPath);
        panel.material = baseMaterial;

        // get and apply the normal panel data
        PanelInfo normalPanel = panelDatabase.GetPanel("Normal Panel");

        panel.ChangeTo(normalPanel);
    }
Ejemplo n.º 9
0
        public void OpenPanel <T>(T uiID, PanelType panelType, Action <AbstractPanel> listener, params object[] args)
            where T : IConvertible
        {
            PanelInfo panelInfo = LoadPanelInfo(uiID.ToInt32(null));

            if (panelInfo == null)
            {
                return;
            }

            panelInfo.sortIndex = m_UIRoot.RequireNextPanelSortingOrder(panelType);
            panelInfo.AddMaster(panelInfo.panelID, 0, args);

            if (panelInfo.isReady)
            {
                SetPanelSortingOrderDirty();
                //ReSortPanel();
                panelInfo.AddOpenCallback(listener);
            }
            else
            {
                panelInfo.AddOpenCallback(listener);
                panelInfo.LoadPanelResAsync();
            }
        }
Ejemplo n.º 10
0
 /// <summary>Populate panel-by-panel properties that are shared by all panel types.</summary>
 /// <param name="panelInfo">Data to populate from.</param>
 private void PopulateCommonProperties(PanelInfo panelInfo)
 {
     if (panelInfo.Properties.ContainsKey(Property.Backdrop))
     {
         SetBackdrop(panelInfo.Properties[Property.Backdrop]);
     }
 }
Ejemplo n.º 11
0
        public void TestApplyChangesToBusinessObject_DoesNothingAsChangesAreAlreadyAppliedForWin()
        {
            //---------------Set up test pack-------------------
            Sample.CreateClassDefWithTwoPropsOneInteger();
            Sample sampleBO = new Sample();
            const string startText = "startText";
            const string endText = "endText";
            sampleBO.SampleText = startText;
            sampleBO.SampleInt = 1;

            IPanelInfo panelInfo = new PanelInfo();
            PanelInfo.FieldInfo sampleTextFieldInfo = CreateFieldInfo("SampleText");
            PanelInfo.FieldInfo sampleIntFieldInfo = CreateFieldInfo("SampleInt");
            panelInfo.FieldInfos.Add(sampleTextFieldInfo);
            panelInfo.FieldInfos.Add(sampleIntFieldInfo);
            panelInfo.BusinessObject = sampleBO;

            sampleTextFieldInfo.InputControl.Text = endText;
            //---------------Assert Precondition----------------
            Assert.AreEqual(endText, sampleBO.SampleText);
            //---------------Execute Test ----------------------
            panelInfo.ApplyChangesToBusinessObject();
            //---------------Test Result -----------------------
            Assert.AreEqual(endText, sampleBO.SampleText);
            Assert.AreEqual(1, sampleBO.SampleInt);
        }
Ejemplo n.º 12
0
    public override void Execute()
    {
        // check if there is anything above this panel
        Ray above = new Ray(panel.transform.position, panel.transform.up);

        RaycastHit[] hits = Physics.RaycastAll(above, 5);

        LivingEntityController livingThing = null;
        bool foundLivingThing = false;

        for (int i = 0; i < hits.Length; i++)
        {
            livingThing = hits[i].transform.GetComponent <LivingEntityController>();

            if (livingThing != null)
            {
                wasSteppedOn     = true;
                foundLivingThing = true;
                break;
            }
        }

        if (wasSteppedOn && !foundLivingThing)
        {
            // apparently something stepped off of this panel, so it's time to break it
            PanelInfo brokenPanel = PanelDatabase.instance.GetPanel("Broken Panel");
            panel.ChangeTo(brokenPanel);
        }
    }
Ejemplo n.º 13
0
 //resumes the game from the paused state
 public void closePanelInfo()
 {
     Time.timeScale = 1;
     PanelInfo.SetActive(false);
     SoundManager.instance.PlayBGMusic(worldMusic);
     SoundManager.instance.PlayBGChatter(chatter);
 }
Ejemplo n.º 14
0
        public void TestApplyChangesToBusinessObject()
        {
            //---------------Set up test pack-------------------
            Sample.CreateClassDefWithTwoPropsOneInteger();
            Sample       sampleBO  = new Sample();
            const string startText = "startText";
            const string endText   = "endText";

            sampleBO.SampleText = startText;
            sampleBO.SampleInt  = 1;

            IPanelInfo panelInfo = new PanelInfo();

            PanelInfo.FieldInfo sampleTextFieldInfo = CreateFieldInfo("SampleText");
            PanelInfo.FieldInfo sampleIntFieldInfo  = CreateFieldInfo("SampleInt");
            panelInfo.FieldInfos.Add(sampleTextFieldInfo);
            panelInfo.FieldInfos.Add(sampleIntFieldInfo);
            panelInfo.BusinessObject = sampleBO;

            sampleTextFieldInfo.InputControl.Text = endText;
            //---------------Assert Precondition----------------
            Assert.AreEqual(startText, sampleBO.SampleText);
            //---------------Execute Test ----------------------
            panelInfo.ApplyChangesToBusinessObject();
            //---------------Test Result -----------------------
            Assert.AreEqual(endText, sampleBO.SampleText);
            Assert.AreEqual(1, sampleBO.SampleInt);
        }
Ejemplo n.º 15
0
    protected void SetPanelAnchorParent(PanelBase panel, PanelInfo info)
    {
        switch (info.mAnchor)
        {
        case (PanelAnchor.Top):
        {
            panel.gameObject.transform.parent = mAnchorTop;
            break;
        }

        case (PanelAnchor.TopLeft):
        {
            panel.gameObject.transform.parent = mAnchorTopLeft;
            break;
        }

        case (PanelAnchor.TopRight):
        {
            panel.gameObject.transform.parent = mAnchorTopRight;
            break;
        }

        case (PanelAnchor.Center):
        {
            panel.gameObject.transform.parent = mAnchorCenter;
            break;
        }

        case (PanelAnchor.Left):
        {
            panel.gameObject.transform.parent = mAnchorLeft;
            break;
        }

        case (PanelAnchor.Right):
        {
            panel.gameObject.transform.parent = mAnchorRight;
            break;
        }

        case (PanelAnchor.Bottom):
        {
            panel.gameObject.transform.parent = mAnchorBottom;
            break;
        }

        case (PanelAnchor.BottomLeft):
        {
            panel.gameObject.transform.parent = mAnchorBottomLeft;
            break;
        }

        case (PanelAnchor.BottomRight):
        {
            panel.gameObject.transform.parent = mAnchorBottomRight;
            break;
        }
        }
    }
Ejemplo n.º 16
0
        /// <summary>
        /// Builds a single storyboard from the next set of lines in the file.
        /// </summary>
        /// <param name="lines">The remaining lines of data.</param>
        /// <returns>A StoryboardData object.</returns>
        private StoryboardData ProcessStoryboard(Queue <NumberedLine> lines, string name)
        {
            var panels     = new List <PanelInfo>();
            var properties = new Dictionary <string, string>();
            var panelProps = new Dictionary <string, string>();

            var moreLinesInBoard = true;

            while (lines.Count > 0 && moreLinesInBoard)
            {
                var next = lines.Peek().Text.TrimStart();
                // No more lines in the storyboard
                if (next.StartsWith(Symbol.LabelLine))
                {
                    moreLinesInBoard = false;
                }
                // Parse a storyboard property
                else if (next.StartsWith(Symbol.BoardProperty))
                {
                    ParseProperty(lines.Dequeue(), properties);
                }
                // Parse a panel property
                else if (next.StartsWith(Symbol.PanelProperty))
                {
                    ParseProperty(lines.Dequeue(), panelProps);
                }
                else if (!string.IsNullOrWhiteSpace(next))
                {
                    PanelInfo panelInfo = null;
                    // Parse a narrative panel
                    if (next.StartsWith(Symbol.NarrativeLine))
                    {
                        panelInfo = ParseNarrativePanel(lines, panelProps);
                    }
                    // Parse a decision panel
                    else if (next.StartsWith(Symbol.PromptLine))
                    {
                        panelInfo = ParseDecisionPanel(lines, panelProps);
                    }
                    // Parse an auto-branch
                    else if (next.StartsWith(Symbol.ConditionOpen) || next.TrimStart().StartsWith(Symbol.BranchLine))
                    {
                        panelInfo = ParseBranchPanel(lines, panelProps);
                    }
                    // If a panel was successfully parsed, add it to the list and start a new property set.
                    if (panelInfo != null)
                    {
                        panels.Add(panelInfo);
                        panelProps = new Dictionary <string, string>();
                    }
                }
                else
                {
                    _ = lines.Dequeue();
                }
            }

            return(new StoryboardData(name, panels, properties));
        }
Ejemplo n.º 17
0
 void setPanelActive(PanelInfo panelInfo)
 {
     for (int i = 0; i < panelInfos.Length; i++)
     {
         bool active = panelInfos[i].Equals(panelInfo);
         panelInfos[i].panel.SetActive(active);
     }
 }
Ejemplo n.º 18
0
    public override void initThink(PanelInfo panel_info)
    {
        setSkillInfo();

        m_HandIndex = -1;

        m_SkillOrder = m_SkillWorksInfo.getElementOrder(panel_info, MEMBER_ORDER);
    }
Ejemplo n.º 19
0
 public bool Equal(PanelInfo data)
 {
     if (data._viewId == _viewId && data._viewType == _viewType)
     {
         return(true);
     }
     return(false);
 }
Ejemplo n.º 20
0
        /// <summary>
        /// Create a layer instance as defined by DataRow.
        /// </summary>
        /// <param name="dr">DataRow defining the layer</param>
        /// <param name="imageList">List of images used in the level</param>
        public Layer(DataRow dr, ArrayList imageList)
        {
            Debug.Assert(imageList.Count > 0,
                         "Layer.Layer: Image list must be loaded before Layer");

            Debug.Assert(dr != null,
                         "Layer.Layer: DataRow invalid");

            // Initialize the panel data
            for (int i = 0; i < panels.Length; i++)
            {
                panels[i] = new PanelInfo();
                Debug.Assert(panels[i] != null,
                             "Layer.Layer: Failed to initialize PanelInfo");
            }

            // Read in the general information
            screenX = int.Parse((string)dr["X"],
                                CultureInfo.InvariantCulture);
            screenYValue = int.Parse((string)dr["Y"],
                                     CultureInfo.InvariantCulture);
            scrollPerFrame = float.Parse((string)dr["ScrollRate"],
                                         CultureInfo.InvariantCulture);
            resetScrollPerFrame = scrollPerFrame;

            // Read in the image sequence.  Each element in the list is
            // an index into imageList representing an image in the background
            ReadSequence((string)dr["ScrollIndices"]);

            // Set the width and height of the layer
            imageWidth  = 0;
            imageHeight = 0;

            // Cycle through the sequence to determine some layer
            // parameters and set the images' source keys
            foreach (byte b in sequence)
            {
                IBitmap bmp = (IBitmap)imageList[sequence[b]];
                Debug.Assert(bmp != null,
                             string.Format(CultureInfo.InvariantCulture,
                                           "Layer.Layer: Bitmap {0} is invalid", b));

                if (bmp.Width > imageWidth)
                {
                    imageWidth = bmp.Width;
                }

                if (bmp.Height > imageHeight)
                {
                    imageHeight = bmp.Height;
                }
            }



            // Verify that the sequence is valid
            VerifySequence(imageList);
        }
Ejemplo n.º 21
0
        public void TestPanelInfos()
        {
            //---------------Execute Test ----------------------
            IPanelInfo panelInfo = new PanelInfo();

            //---------------Test Result -----------------------
            Assert.IsNotNull(panelInfo.PanelInfos);
            Assert.AreEqual(0, panelInfo.PanelInfos.Count);
        }
Ejemplo n.º 22
0
 public void ChangeData(PanelInfo _Pi)
 {
     PartName.text    = _Pi.PartName;
     PartInfo.text    = _Pi.PartDescription;
     PartImage.sprite = _Pi.PartImage;
     part             = _Pi.PartType;
     Anim.SetBool("Show", true);
     state = true;
 }
Ejemplo n.º 23
0
    //Pauses the game and timescale

    /*public void showPanelInfo()
     *  {
     *      Time.timeScale = 0.0001F;
     *      PanelInfo.SetActive(true);
     *  }*/

    //resumes the game from the paused state
    public void closePanelInfo()
    {
        Time.timeScale = 1;
        PanelInfo.SetActive(false);
        // Debug.Log(string.Format("done"));
        SoundManager.instance.PlayBGMusic(worldMusic);
        SoundManager.instance.PlayBGChatter(chatter);
        showTutorialPanels();
    }
Ejemplo n.º 24
0
        public AbstractPanel FindPanel <T>(T uiID) where T : IConvertible
        {
            PanelInfo info = GetPanelFromActive(uiID.ToInt32(null));

            if (info == null)
            {
                return(null);
            }
            return(info.abstractPanel);
        }
Ejemplo n.º 25
0
        private StackPanel CreateDataPanel(Type type, string attribute, object value)
        {
            StackPanel mainPanel = new StackPanel();

            mainPanel.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            mainPanel.Margin     = new Thickness(0, 0, 0, 0);
            mainPanel.Background = Brushes.Transparent;
            mainPanel.Width      = CONTROL_WIDTH; // 480;

            var panelInfo = new PanelInfo()
            {
                DataType = type, AttributeName = attribute, ChildControl = mainPanel
            };

            mainPanel.Tag = panelInfo;

            CreateTitlePart(mainPanel, type, attribute, value);

            double h = 0;

            foreach (UserControl c in mainPanel.Children.OfType <UserControl>())
            {
                h += c.Height;
            }

            ScrollViewer scroller = new ScrollViewer();

            scroller.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
            scroller.CanContentScroll            = false;
            scroller.Width  = CONTROL_WIDTH; // 500
            scroller.Margin = new Thickness(0, 0, 0, 0);
            scroller.Height = this.ActualHeight - h;
            scroller.Style  = FindResource("FavsScrollViewer") as Style;

            // Stack Panel for Input Controls
            StackPanel p = new StackPanel();

            p.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            //p.Margin = new Thickness(0,0,0,0);
            p.Background = Brushes.Transparent;
            p.Tag        = panelInfo;
            p.Width      = CONTROL_WIDTH - 30; // remove space for the scrollbar;

            scroller.Content = p;

            mainPanel.Children.Add(scroller);

            _panels.Push(p);

            theStack.Children.Add(mainPanel);

            this.Width = theStack.Children.Count * 1000;

            return(p);
        }
Ejemplo n.º 26
0
        void tempControl_CreateTemplate(object sender, TemplateEventArgs e)
        {
            var       p  = _panels.Peek() as StackPanel;
            PanelInfo pi = p.Tag as PanelInfo;

            object instance = CreateTypeInstance(p);

            _tempMgr.Store(e.Name, pi.DataType, instance, e.IsDefault);

            e.Value = instance;
        }
Ejemplo n.º 27
0
        public void SetPanelStateDirtyByPanelId(int panelId)
        {
            PanelInfo info = FindPanelInfoByPanelID(panelId);

            if (info == null)
            {
                return;
            }

            info.SetStateDirty();
        }
Ejemplo n.º 28
0
    /// <summary>
    /// Register a panel and save as PanelInfo
    /// </summary>
    public void RegisterPanel(string name, string resPath, int depth, PanelAnchor anchor)
    {
        if (mPanelInfoMap.ContainsKey(name))
        {
            Debug.Log("panel name={0} already registered");
            return;
        }
        PanelInfo info = new PanelInfo(name, resPath, depth, anchor);

        mPanelInfoMap.Add(name, info);
    }
Ejemplo n.º 29
0
        private PanelInfo GetPageControlsPanelInfo(SPContentTypeCollection contentTypes, CultureInfo culture)
        {
            SPContentType type = contentTypes[ContentTypeId.PageTemplate];
            PanelInfo     info = new PanelInfo();

            info                     = new PanelInfo();
            info.displayName         = type.Name;// ""; //Resources.GetStringEx("ToolboxPanelNamePageControls", culture);
            info.controlListId       = type.Id.ToString();
            info.panelTypeIdentifier = pageControlspanelTypeIdentifier;
            return(info);
        }
Ejemplo n.º 30
0
        public AbstractPage FindPanelPage <T>(int panelID, T uiID) where T : IConvertible
        {
            PanelInfo info = FindPanelInfoByPanelID(panelID);

            if (info == null)
            {
                return(null);
            }

            return(info.GetPage(uiID.ToInt32(null)));
        }
 /// <summary>
 /// For things like changing a normal panel to a broken one, etc.
 /// </summary>
 /// <param name="newPanel"></param>
 public void ChangeTo(PanelInfo newPanel)
 {
     if (this.panelInfo.Equals(newPanel))
     {
         Debug.LogWarning(name + ": this panel is already a " + newPanel.name);
     }
     else
     {
         panelInfo = newPanel;
         ApplyPanelData();
     }
 }
Ejemplo n.º 32
0
 public void TestPanel()
 {
     //---------------Set up test pack-------------------
     IPanelInfo panelInfo = new PanelInfo();
     IPanel panel = CreatePanel();
     //---------------Assert Precondition----------------
     Assert.IsNull(panelInfo.Panel);
     //---------------Execute Test ----------------------
     panelInfo.Panel = panel;
     //---------------Test Result -----------------------
     Assert.AreSame(panel, panelInfo.Panel);
 }
Ejemplo n.º 33
0
        public void TestFieldInfos_WrongPropertyNameGivesUsefulError()
        {
            //---------------Set up test pack-------------------
            IPanelInfo panelInfo = new PanelInfo();

            //---------------Execute Test ----------------------
            try
            {
                PanelInfo.FieldInfo fieldInfo = panelInfo.FieldInfos["invalidPropName"];
                Assert.Fail("Expected to throw an InvalidPropertyNameException");
            }
                //---------------Test Result -----------------------
            catch (InvalidPropertyNameException ex)
            {
                StringAssert.Contains("A label for the property invalidPropName was not found", ex.Message);
            }
        }
Ejemplo n.º 34
0
 public void TestPanelInfos()
 {
     //---------------Execute Test ----------------------
     IPanelInfo panelInfo = new PanelInfo();
     //---------------Test Result -----------------------
     Assert.IsNotNull(panelInfo.PanelInfos);
     Assert.AreEqual(0, panelInfo.PanelInfos.Count);
 }
Ejemplo n.º 35
0
        ///<summary>
        /// Builds a Panel for a single Tab as defined in the <see cref="UIForm"/>.
        ///   There will be one <see cref="IPanelInfo"/> for the defined uiForm.<br/>
        /// If there are multiple tabs defined for the <paramref name="uiForm"/> then
        ///  an actual <see cref="ITabPage"/> is created for each <see cref="UIFormTab"/> 
        ///  and the <see cref="IPanel"/> created by <see cref="BuildPanelForTab"/> will 
        ///  be placed on this TabPage.<br></br>
        /// Else the <see cref="IPanel"/> is placed on the form directly.
        ///</summary>
        /// <param name="uiForm">The UIForm object that indicates which controls
        /// to create and how the controls are laid out</param>
        ///<param name="groupControlCreator">The <see cref="GroupControlCreator"/></param>
        /// <returns>Returns an IPanelInfo object that contains access to the
        /// BusinessObject instance, the created panel, and all the controls,
        /// mappers, labels and error providers that were created.
        /// </returns>
        public IPanelInfo BuildPanelForForm(IUIForm uiForm, GroupControlCreator groupControlCreator)
        {
            if (uiForm == null) throw new ArgumentNullException("uiForm");
            if (groupControlCreator == null) throw new ArgumentNullException("groupControlCreator");
            var panelInfo = new PanelInfo();
            // generic interface
            foreach (UIFormTab formTab in uiForm)
            {
                var tabPagePanelInfo = BuildPanelForTab(formTab);
                panelInfo.PanelInfos.Add(tabPagePanelInfo);
                foreach (PanelInfo.FieldInfo fieldInfo in tabPagePanelInfo.FieldInfos)
                {
                    panelInfo.FieldInfos.Add(fieldInfo);
                }
                if (tabPagePanelInfo.MinimumPanelHeight > panelInfo.MinimumPanelHeight)
                {
                    panelInfo.MinimumPanelHeight = tabPagePanelInfo.MinimumPanelHeight;
                }
            }

            IPanel mainPanel;
            if (panelInfo.PanelInfos.Count == 0)
            {
                mainPanel = ControlFactory.CreatePanel();
            }
            else if (panelInfo.PanelInfos.Count == 1)
            {
                mainPanel = panelInfo.PanelInfos[0].Panel;
                int lesserHeight = panelInfo.MinimumPanelHeight;
                if (uiForm.Height < lesserHeight) lesserHeight = uiForm.Height;
                mainPanel.MinimumSize = new Size(uiForm.Width, lesserHeight);
            }
            else
            {
                var groupControl = groupControlCreator();
                foreach (var childPanelInfo in panelInfo.PanelInfos)
                {
                    var uiFormTab = childPanelInfo.UIFormTab;
                    var childPanel = childPanelInfo.Panel;
                    groupControl.AddControl(childPanel, uiFormTab.Name, childPanel.Height, childPanel.Width);
                }

                var panel = ControlFactory.CreatePanel();
                groupControl.Dock = DockStyle.Fill;
                panel.MinimumSize = groupControl.Size;
                panel.Controls.Add(groupControl);
                mainPanel = panel;
            }
            panelInfo.Panel = mainPanel;
            mainPanel.Name = _controlNamingStrategy.GetUIFormControlName(uiForm);
            mainPanel.Size = new Size(uiForm.Width, uiForm.Height);
            panelInfo.UIForm = uiForm;
            return panelInfo;
        }
Ejemplo n.º 36
0
        /// <summary>
        /// Constructs a panel for editing the data of a single instance
        /// of a BusinessObject, using the control layout as specified in
        /// a <see cref="UIFormTab"/> object. 
        /// </summary>
        /// <param name="formTab">The tab object that indicates which controls
        /// to create and how the controls are laid out</param>
        /// <returns>Returns an IPanelInfo object that contains access to the
        /// BusinessObject instance, the created panel, and all the controls,
        /// mappers, labels and error providers that were created.
        /// </returns>
        public IPanelInfo BuildPanelForTab(UIFormTab formTab)
        {
            if (formTab == null) throw new ArgumentNullException("formTab");
            var panel = ControlFactory.CreatePanel();
            var panelInfo = new PanelInfo();
            var layoutManager =  SetupLayoutManager(formTab, panel);
            panelInfo.LayoutManager = layoutManager;
            panelInfo.Panel = panel;
            AddFieldsToLayoutManager(formTab, panelInfo);
            SetupInputControlColumnWidth(panelInfo, formTab);

            panel.Width = layoutManager.GetFixedWidthIncludingGaps();
            panel.Height = layoutManager.GetFixedHeightIncludingGaps();
            Size minSize = new Size(panel.Width, panel.Height);
            panel.MinimumSize = minSize;

            panelInfo.UIFormTab = formTab;
            panelInfo.MinimumPanelHeight = panel.Height;
            panelInfo.UIForm = formTab.UIForm;
            return panelInfo;
        }
Ejemplo n.º 37
0
 bool IsFixed(PanelInfo pi)
 {
     return !pi.Resize && (pi == panel1 ? panel2 : panel1).Resize;
 }
        private void ScrollBackToPreviousControl(PanelInfo pi)
        {
            DoubleAnimation anim = new DoubleAnimation();
              anim.From = ( _panels.Count ) * -CONTROL_WIDTH;
              anim.To = anim.From + CONTROL_WIDTH;
              anim.Duration = new Duration(new TimeSpan(0, 0, 0, 0, SCROLLTO_CONTROL_SPEED));
              anim.RepeatBehavior = new RepeatBehavior(1);
              anim.Completed += (s2, e2) => { theStack.Children.Remove(pi.ChildControl); };
              anim.AccelerationRatio = 0.5;
              anim.DecelerationRatio = 0.5;
              TranslateTransform trans = new TranslateTransform();

              theStack.RenderTransform = trans;
              trans.BeginAnimation(TranslateTransform.XProperty, anim);
        }
        private StackPanel CreateDataPanel(Type type, string attribute, object value)
        {
            StackPanel mainPanel = new StackPanel();
              mainPanel.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
              mainPanel.Margin = new Thickness(0, 0, 0, 0);
              mainPanel.Background = Brushes.Transparent;
              mainPanel.Width = CONTROL_WIDTH; // 480;

              var panelInfo = new PanelInfo() { DataType = type, AttributeName = attribute, ChildControl = mainPanel };
              mainPanel.Tag = panelInfo;

              CreateTitlePart(mainPanel, type, attribute, value);

              double h = 0;
              foreach( UserControl c in mainPanel.Children.OfType<UserControl>() )
            h += c.Height;

              ScrollViewer scroller = new ScrollViewer();
              scroller.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
              scroller.CanContentScroll = false;
              scroller.Width = CONTROL_WIDTH; // 500
              scroller.Margin = new Thickness(0, 0, 0, 0);
              scroller.Height = this.ActualHeight - h;
              scroller.Style = FindResource("FavsScrollViewer") as Style;

              // Stack Panel for Input Controls
              StackPanel p = new StackPanel();
              p.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
              //p.Margin = new Thickness(0,0,0,0);
              p.Background = Brushes.Transparent;
              p.Tag = panelInfo;
              p.Width = CONTROL_WIDTH - 30; // remove space for the scrollbar;

              scroller.Content = p;

              mainPanel.Children.Add(scroller);

              _panels.Push(p);

              theStack.Children.Add(mainPanel);

              this.Width = theStack.Children.Count * 1000;

              return p;
        }
Ejemplo n.º 40
0
        public void TestFieldInfos()
        {
            //---------------Set up test pack-------------------

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            IPanelInfo panelInfo = new PanelInfo();
            //---------------Test Result -----------------------
            Assert.IsNotNull(panelInfo.FieldInfos);
            Assert.AreEqual(0, panelInfo.FieldInfos.Count);
        }
Ejemplo n.º 41
0
//	public void Show() {
//		animator.SetBool("isShowing", true);
//	}
//
//	public void Hide() {
//		animator.SetBool("isShowing", false);
//	}

	public void SetPanelInfo(PanelInfo panelInfo) {
		SetTitle(panelInfo.title);
		SetDescription(panelInfo.description);
		SetHeaderColor(panelInfo.headerColor);
	}
Ejemplo n.º 42
0
        public void TestSetBusinessObjectUpdatesControlMappers()
        {
            //---------------Set up test pack-------------------
            Sample.CreateClassDefWithTwoPropsOneInteger();
            IPanelInfo panelInfo = new PanelInfo();
            panelInfo.FieldInfos.Add(CreateFieldInfo("SampleText"));
            panelInfo.FieldInfos.Add(CreateFieldInfo("SampleInt"));
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            Sample sampleBO = new Sample();
            panelInfo.BusinessObject = sampleBO;
            //---------------Test Result -----------------------
            Assert.AreSame(sampleBO, panelInfo.BusinessObject);
            Assert.AreSame(sampleBO, panelInfo.FieldInfos[0].ControlMapper.BusinessObject);
            Assert.AreSame(sampleBO, panelInfo.FieldInfos[1].ControlMapper.BusinessObject);
        }