Beispiel #1
0
 //Methods
 //-Child API implementation
 override protected void implementation_addElementToElement(
     HierarchicalUIElementObject inElement,
     HierarchicalUIElementObject inSubelementToAdd)
 {
     if (_elementShownInGrid == inElement)
     {
         refreshShowingElement();
     }
 }
    //-Internal API
    internal void addElementToElement(
        HierarchicalUIElementObject inElement,
        HierarchicalUIElementObject inSubelement)
    {
        XUtils.check(inElement && inSubelement);

        inSubelement._hierarchicalUIobject = this;
        inElement._elements.add(inSubelement);

        implementation_addElementToElement(inElement, inSubelement);
    }
    internal void removeElementFromElement(
        HierarchicalUIElementObject inElement,
        HierarchicalUIElementObject inSubelement)
    {
        XUtils.check(inElement && inSubelement);
        XUtils.check(inElement._elements.contains(inSubelement));

        implementation_removeElementFromElement(inElement, inSubelement);

        inElement._elements.removeElement(inSubelement);
        inSubelement._hierarchicalUIobject = null;
    }
Beispiel #4
0
    override protected void implementation_removeElementFromElement(
        HierarchicalUIElementObject inElement,
        HierarchicalUIElementObject inSubelementToRemove)
    {
        Optional <int> theWayIndexOfRemovingElement = _wayUI.getIndexOfElement(inSubelementToRemove);

        if (theWayIndexOfRemovingElement.isSet())
        {
            goInto(_wayUI.getElementByIndex(theWayIndexOfRemovingElement.getValue() - 1));
        }
        else if (inElement == _elementShownInGrid)
        {
            refreshShowingElement();
        }
    }
Beispiel #5
0
    private HierarchicalGridWayUIElement createWayElementForElement(
        HierarchicalUIElementObject inElement)
    {
        HierarchicalGridWayUIElement theWayElement = inElement.createWayElement();

        if (!theWayElement)
        {
            GameObject theWayElementGameObject = Instantiate(_defaultWayElementPrefab);
            theWayElement = XUtils.verify(
                theWayElementGameObject.GetComponent <HierarchicalGridWayUIElement>()
                );
        }
        theWayElement._hierarchicalGridUIObject = this;
        theWayElement._element = inElement;

        return(theWayElement);
    }
Beispiel #6
0
    override protected void implementation_goInto(
        HierarchicalUIElementObject inElement)
    {
        XUtils.check(inElement);
        if (inElement == _elementShownInGrid)
        {
            return;
        }

        Optional <int> theWayIndexOfElementToGoInto = _wayUI.getIndexOfElement(inElement);

        if (theWayIndexOfElementToGoInto.isSet())
        {
            _wayUI.removeWayElementsUpToEnd(theWayIndexOfElementToGoInto.getValue() + 1);
        }
        else
        {
            _wayUI.addWayElement(createWayElementForElement(inElement));
        }

        showElementInGrid(inElement);
    }
Beispiel #7
0
 internal Optional <int> getIndexOfElement(HierarchicalUIElementObject inElement)
 {
     return(_wayElements.findIndex((HierarchicalGridWayUIElement inWayElement) => {
         return inElement == inWayElement._element;
     }));
 }
 //Methods
 //-API
 public void addRootElement(HierarchicalUIElementObject inElement)
 {
     _rootElement.addElement(inElement);
 }
 abstract protected void implementation_goInto(
     HierarchicalUIElementObject inElement
     );
 abstract protected void implementation_removeElementFromElement(
     HierarchicalUIElementObject inElement,
     HierarchicalUIElementObject inSubelement
     );
 //-Child API to implement
 abstract protected void implementation_addElementToElement(
     HierarchicalUIElementObject inElement,
     HierarchicalUIElementObject inSubelement
     );
 internal void goInto(HierarchicalUIElementObject inElement)
 {
     XUtils.check(inElement);
     implementation_goInto(inElement);
 }
 public void removeRootElement(HierarchicalUIElementObject inElement)
 {
     _rootElement.removeElement(inElement);
 }
Beispiel #14
0
 //Methods
 //-API
 public void addElement(HierarchicalUIElementObject inElement)
 {
     XUtils.check(null != inElement && null != _hierarchicalUIobject);
     _hierarchicalUIobject.addElementToElement(this, inElement);
 }
Beispiel #15
0
 public void removeElement(HierarchicalUIElementObject inElement)
 {
     XUtils.check(null != inElement && null != _hierarchicalUIobject);
     _hierarchicalUIobject.removeElementFromElement(this, inElement);
 }
Beispiel #16
0
 //-Utils
 private void showElementInGrid(HierarchicalUIElementObject inElement)
 {
     _elementShownInGrid = XUtils.verify(inElement);
     refreshShowingElement();
 }