示例#1
0
        public Placement CalculatePlacementForPanelCell(TLEPanelCell element)
        {
            float cellWidth = 0;

            if (TimeCellWidth == null)
            {
                cellWidth = PANEL_CELL_WIDTH;//CalculateDynamicCellWidth(element);
            }
            else
            {
                var diffticks = EndTime.Ticks - StartTime.Ticks;
                var numberOfPossibleCellsOnWidth = (((float)diffticks) / TimeCellWidth.Ticks);
                cellWidth = Placement.Width / numberOfPossibleCellsOnWidth;
            }

            var timestampWithGroup = GetStackedElementsForTimeSpan(element.ReferenceElement.GetStartTime());
            //TODO Leaving here this needs to change
            var orderInderForGroupKey = StackedElements.Keys.ToList().IndexOf(timestampWithGroup.Key);
            var indexInGroup          = timestampWithGroup.Value.IndexOf(element);

            if (indexInGroup == -1)
            {
                throw new Exception("Nesu: -1 for " + nameof(indexInGroup));
            }

            Placement placement = new Placement();

            placement.X        = orderInderForGroupKey * cellWidth;
            placement.Height   = Placement.Height / timestampWithGroup.Value.Count;
            placement.Y        = Placement.Y + Placement.Height - (placement.Height * indexInGroup);
            placement.Width    = cellWidth;
            placement.Rotation = 0;

            return(placement);
        }
示例#2
0
        //public bool Selected { get; set; }

        public static TLEPanelCell Parse(ITLEPanelCellElement element)
        {
            TLEPanelCell cell = new TLEPanelCell();

            cell.GraphicName      = GraphicProxy.GenerateGraphicName();
            cell.ReferenceElement = element;
            cell.Placement        = new Placement();
            return(cell);
        }
示例#3
0
        public static List <TLEPanelCell> Parse(List <AnimationRouteFrame> elements)
        {
            List <TLEPanelCell> timedElements = new List <TLEPanelCell>();

            foreach (var element in elements)
            {
                TLEPanelCell cell = Parse(element);
                timedElements.Add(cell);
            }
            return(timedElements);
        }
示例#4
0
        public ITLEPanelCellElement GetCellElementBasedOnGraphicName(string graphicName)
        {
            if (string.IsNullOrEmpty(graphicName))
            {
                return(null);
            }

            TLEPanelCell cell = PanelCells.Where(w => w.GraphicName == graphicName).FirstOrDefault();

            if (cell != null)
            {
                return(cell.ReferenceElement);
            }
            return(null);
        }
示例#5
0
 public void SelectPanelCell(TLEPanelCell panelCell)
 {
     SelectedPanelCell = panelCell;
 }
示例#6
0
        public void SelectPanelCell(string elementName)
        {
            TLEPanelCell cell = GetCell(elementName);

            SelectedPanelCell = cell;
        }
示例#7
0
        //public void MovePanelCellTime(string graphicName, float precentage)
        //{
        //    var timespan = new TimeSpan((long)((EndTime.Ticks - StartTime.Ticks) * precentage));

        //    MovePanelCellTime(graphicName, StartTime + timespan);
        //}

        public void RemovePanelCell(TLEPanelCell panelCell)
        {
            PanelCells.Remove(panelCell);
        }
示例#8
0
 public void MovePanelCellTime(TLEPanelCell panelCell, TimeSpan destenationTime)
 {
     panelCell.ReferenceElement.SetStartTime(destenationTime);
 }