/// <summary>
        /// Transform collection of inlines
        /// </summary>
        public List<Inline> Decorate(IConferenceMessage msg, List<Inline> inlines)
        {
            const string pattern = @"((https?|ftp|dchub|magnet|mailto|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)";

            for (int i = 0; i < inlines.Count; i++)
            {
                // splite one Inline element (text (Run)) into several inlines (Runs and Hyperlinks)
                var inline = inlines[i] as Run;
                if (inline == null)
                    continue;

                var matches = Regex.Matches(inline.Text, pattern).OfType<Match>().Select(item => item.Value).ToArray();
                if (matches.Length < 1)
                    continue;

                inlines.RemoveAt(i);

                var parts = inline.Text.SplitAndIncludeDelimiters(matches).ToArray();
                for (int j = i; j < parts.Length + i; j++)
                {
                    var part = parts[j];
                    if (matches.Contains(part))
                        inlines.Insert(j, DecorateAsHyperlink(part));
                    else
                        inlines.Insert(j, CommonMessageDecorator.Decorate(msg, part));
                }
            }
            return inlines;
        }
        public MultimediaReportOptions()
        {
            InitializeComponent();

            var user = PluginManager.Instance.User;

            var service = new SupportService(user);

            _extensions = service.GetMultimediaExtensions();
            var types = service.GetMultimediaTypes();
            _extensions.Insert(0, "(All)");

            _multimediaTypes = new List<string>();
            _multimediaTypes.Add("(All)");
            foreach (MultimediaType type in types) {
                if (!string.IsNullOrWhiteSpace(type.Name)) {
                    _multimediaTypes.Add(type.Name);
                }
            }

            cmbExtension.ItemsSource = _extensions;
            cmbExtension.SelectedIndex = 0;
            cmbType.ItemsSource = _multimediaTypes;
            cmbType.SelectedIndex = 0;
        }
        public UserSettings(FacebookUserSetting setting)
        {
            _setting = setting;
            //get user
            InitializeComponent();

            var fb = new FacebookClient(setting.AccessToken);

            var picSettings = new List<FacebookPictureSetting>();

            dynamic friends = fb.Get("/me/friends");

            foreach (var friend in friends.data)
            {
                picSettings.Add(new FacebookPictureSetting(new FacebookUser(friend.name, friend.id), false));
            }

            picSettings.Sort((x, y) => string.Compare(x.User.Name, y.User.Name));
            picSettings.Insert(0, new FacebookPictureSetting(new FacebookUser(setting.User.Name, setting.User.Id), false));

            var selectedPics = picSettings.Where(x => setting.PictureSettings.Any(y => y.User.Id == x.User.Id));

            foreach (var sp in selectedPics)
            {
                sp.Selected = true;
            }

            lsUsers.ItemsSource = picSettings;
        }
Beispiel #4
0
        public BookmarkEditor(Comisor.MainWindow mainWindow, string strName, string strPath, string strCurrentPath = "")
        {
            InitializeComponent();

            this.main = mainWindow;
            this.Title = Comisor.Resource.Bookmark_Editor;
            lbName.Content = Comisor.Resource.Bookmark_Name + ":";
            lbPath.Content = Comisor.Resource.Bookmark_FilePath + ":";

            List<string> nameOption = new List<string>();
            nameOption.AddRange(strPath.Split(new char[] { '\\' }, StringSplitOptions.RemoveEmptyEntries));
            nameOption.Reverse();
            nameOption.Insert(0, strName);
            ys.DataProcessor.RemoveSame(ref nameOption);
            cbName.ItemsSource = nameOption;
            cbName.SelectedIndex = 0;

            List<string> pathOption = new List<string>();
            pathOption.Add(strPath);
            if (strCurrentPath != "") pathOption.Add(strCurrentPath);
            ys.DataProcessor.RemoveSame(ref pathOption);
            cbPath.Focus();
            cbPath.ItemsSource = pathOption;
            cbPath.SelectedIndex = 0;

            ckbShortcut.Content = Comisor.Resource.Bookmark_CreatShortcut;

            btnOK.Content = mainWindow.resource.imgOK;
            btnCancel.Content = mainWindow.resource.imgCancel;

            this.PreviewKeyDown += new KeyEventHandler(InputBox_PreviewKeyDown);
        }
Beispiel #5
0
        internal void GotoSummaryItem(int changeNum)
        {
            SummaryNode rootNode = DataContext as SummaryNode;
            if (rootNode != null)
            {
                Stack<SummaryNode> changeLocation = rootNode.FindPathToChangeNumber(changeNum);

                if (changeLocation != null)
                {
                    SummaryNode snChange = changeLocation.Peek();
                    Debug.Assert(snChange.SummaryItem.FirstChangeNumber == changeNum || snChange.SummaryItem.LastChangeNumber == changeNum);
                    List<object> locationList = new List<object>();
                    foreach (SummaryNode sn in changeLocation)
                    {
                        locationList.Insert(0,sn);
                    }
                    locationList.RemoveAt(0);

                    TreeViewItem tvi = theTreeView.ContainerFromItem(locationList);
                    snChange.Selected = true;
                    Debug.Assert(tvi != null);
                    if (tvi != null)
                    {
						SelectAndShow(tvi);
                    }
                }
            }
        }
        public EditarEmpleadoView()
        {
            InitializeComponent();
            grid = new List<Empleado>();
            grid = DataObjects.RRHH.EmpleadoSQL.BuscarEmpleado("", "",RRHH.MantenerEmpleadoView.INDICEMP, "", "", "");

            TxtCodEmp.Text = grid[0].CodEmpleado;
            TxtDni.Text = grid[0].Dni;
            TxtNomb.Text = grid[0].Nombre;
            TxtApePat.Text = grid[0].ApePaterno;
            TxtApeMat.Text = grid[0].ApeMaterno;
            TxtFechNac.Text = grid[0].FechNacimiento.ToString();
            if (grid[0].Sexo == "M") RdbMasc.IsChecked = true; else RdbFem.IsChecked = true;
            TxtDir.Text = grid[0].Direccion;
            TxtRef.Text = grid[0].Referecia;
            TxtTelef.Text = grid[0].Telefono;
            TxtCel.Text = grid[0].Celular;
            TxtEmail.Text = grid[0].EmailEmpleado;

            CmbPuesto.Text = grid[0].Puesto;

            CmbArea.Text = grid[0].Area;
            TxtEmailEmpresa.Text = grid[0].EmailEmpresa;
            TxtSalario.Text = grid[0].Sueldo + "";
            TxtBanco.Text = grid[0].Banco;
            TxtCuentaBancaria.Text = grid[0].CuentaBancaria;

            List<string> tiendas = new List<string>();
            tiendas = DataObjects.RRHH.EmpleadoSQL.Tiendas();
            string almCentral = "ALMACEN CENTRAL";
            tiendas.Insert(0, almCentral);
            CmbTienda.ItemsSource = tiendas;
            CmbTienda.Text = grid[0].Tienda;
        }
Beispiel #7
0
 /// <summary>
 /// Gets a modified version of the user's spell priorities, for internal
 /// purposes.
 /// </summary>
 /// <param name="spellPriority"></param>
 /// <returns></returns>
 public List<string> GetPrioritiesForCalcs(WarlockTalents talents, bool execute)
 {
     List<string> forCalcs = new List<string>(SpellPriority);
     if (talents.Backdraft > 0 && !SpellPriority.Contains("Incinerate (Under Backdraft)"))
     {
         forCalcs.Insert(forCalcs.Count, "Incinerate (Under Backdraft)");
     }
     if (!execute
         && Filler.Equals("Shadow Bolt")
         && !forCalcs.Contains("Shadow Bolt (Instant)")
         && ShadowBolt_Instant.IsCastable(talents, forCalcs))
     {
         forCalcs.Insert(forCalcs.Count, "Shadow Bolt (Instant)");
     }
     return forCalcs;
 }
        internal void SetComponentLinks(IEnumerable<AbstractEndpoint.IAbstractComponentLink> componentLinks)
        {
            var links = new List<ComponentsOrderingViewModel>();

            var setOrder = new Action(() =>
                {
                    var worker = new BackgroundWorker();
                    worker.DoWork += (e, s) =>
                    {
                        foreach (var cl in links.AsEnumerable().Reverse())
                        {
                            cl.Link.Order = links.IndexOf(cl) + 1;
                        }
                    };
                    worker.RunWorkerAsync();
                });
            foreach (var cl in componentLinks.OrderBy(x => x.Order))
            {
                var vm = new ComponentsOrderingViewModel { Link = cl };
                links.Add(vm);
                vm.UpCommand = new RelayCommand(
                    () =>
                    {
                        var prevIndex = links.IndexOf(vm);
                        links.Remove(vm);
                        links.Insert(prevIndex - 1, vm);
                        this.ComponentList.ItemsSource = null;
                        this.ComponentList.ItemsSource = links;
                        this.ComponentList.SelectedItem = vm;
                        setOrder();
                    }, () => links.IndexOf(vm) > 0);
                vm.DownCommand = new RelayCommand(
                    () =>
                    {
                        var prevIndex = links.IndexOf(vm);
                        links.Remove(vm);
                        links.Insert(prevIndex + 1, vm);
                        this.ComponentList.ItemsSource = null;
                        this.ComponentList.ItemsSource = links;
                        this.ComponentList.SelectedItem = vm;
                        setOrder();
                    }, () => links.IndexOf(vm) < links.Count - 1);
            }
            this.ComponentList.ItemsSource = links;
        }
Beispiel #9
0
 public static List<CustomizeYear> GetListCutomizeYear()
 {
     List<CustomizeYear> result = new List<CustomizeYear>();
     for (int i = 2007; i < DateTime.Now.Year; i++)
     {
         result.Insert(0, new CustomizeYear { ID = i, Name = i.ToString() + " - " + (i + 1).ToString() });
     }
     return result;
 }
        /// <summary>
        /// Transform collection of inlines
        /// </summary>
        public List<Inline> Decorate(IConferenceMessage msg, List<Inline> inlines)
        {
            string style = "timestampStyle";
            var timestampInline = new Run(msg.Timestamp.ToString("[hh:mm:ss] "));
            timestampInline.SetResourceReference(FrameworkContentElement.StyleProperty, style);

            inlines.Insert(0, timestampInline);
            return inlines;
        }
        private void AddToSearchHistory(ref List<string> history, string newSearch)
        {
            if (history.Contains(newSearch))
                history.Remove(newSearch);

            if (history.Count == 100)
                history.RemoveAt(99);

            history.Insert(0, newSearch);
        }
Beispiel #12
0
 //Dane String i Int (Odpowiadajace wartościom CHART w XAML
 //     IndependentValueBinding="{Binding Path=Key}"
 //     DependentValueBinding="{Binding Path=Value}">
 private void ZaladujDane1()
 {
     ((PieSeries)mcChart.Series[0]).ItemsSource = dict;
     List<KeyValuePair<string, string>> kvpList = new List<KeyValuePair<string, string>>();
     int j = 0;
     foreach (var i in dict)
     {
         kvpList.Insert(j, new KeyValuePair<string, string>(i.Key.ToString(),i.Value.ToString()));
         j++;
     }
 }
 public MaterialByUserWindow(Action<List<LabelSetItem>> successAction = null)
 {
     InitializeComponent();
     this.SuccessAction = successAction;
     var service = new SupportService(User);
     var list = service.GetUsers();
     var model = new List<string>(list.Select((user) => {
         return user.Username;
     }));
     model.Insert(0, "<All Users>");
     cmbUser.ItemsSource = model;
     Loaded += new RoutedEventHandler(MaterialByUserWindow_Loaded);
 }
 public RegistrarEmpleadoView()
 {
     InitializeComponent();
     TxtFechNac.Text = DateTime.Today.Day.ToString() + "/" + DateTime.Today.Month.ToString() + "/" + DateTime.Today.Year.ToString();
     grid = new List<Empleado>();
     grid = DataObjects.RRHH.EmpleadoSQL.BuscarEmpleado("", "", "", "", "", "");
     TxtCodEmp.Text = TxtCodEmp.Text = "EMP-" + grid.Count;
     List<string> tiendas = new List<string>();
     tiendas = DataObjects.RRHH.EmpleadoSQL.Tiendas();
     string almCentral = "ALMACEN CENTRAL";
     tiendas.Insert(0,almCentral);
     CmbTienda.ItemsSource = tiendas;
 }
        public MantenerEmpleadoView()
        {
            InitializeComponent();

            grid = new List<Empleado>();

            grid = DataObjects.RRHH.EmpleadoSQL.BuscarEmpleado("","","","","","");
            List<string> tiendas = new List<string>();
            tiendas = DataObjects.RRHH.EmpleadoSQL.Tiendas();
            string almCentral = "ALMACEN CENTRAL";
            tiendas.Insert(0, almCentral);
            CmbTienda.ItemsSource = tiendas;
            Lista.ItemsSource = grid;
            Lista.Items.Refresh();
        }
Beispiel #16
0
        /// <summary>
        /// Transform collection of inlines
        /// </summary>
        public List<Inline> Decorate(IConferenceMessage msg, List<Inline> inlines)
        {
            string style = "nickStyle";
            string nick = msg.Author;
            if (string.IsNullOrEmpty(msg.Author))
            {
                style = "systemNickStyle";
                nick = "System";
            }

            Run nickInline = new Run(string.Format("{0}: ", nick));
            nickInline.SetResourceReference(FrameworkContentElement.StyleProperty, style);

            inlines.Insert(0, nickInline);
            return inlines;
        }
 public override List<Inline> Decorate(object msg, List<Inline> inlines)
 {
     var item = msg as MessageViewModel;
     if (item != null)
     {
         Run date = new Run
         {
             Text = item.Timestamp.ToString("[HH:mm] "),
             Foreground = TextDecorationStyles.ChatTimestampForeground,
             FontFamily = new FontFamily("Verdana"),
             FontSize = 14
         };
         inlines.Insert(0, date);
     }
     return inlines;
 }
Beispiel #18
0
        public static MemberInfo[] GetProperties( LambdaExpression propertyExpression )
        {
            var properties = new List<MemberInfo>();

              var expression = propertyExpression.Body;
              while ( expression is MemberExpression )
              {
            var memberExpression = (MemberExpression)expression;

            properties.Insert( 0, memberExpression.Member );

            expression = memberExpression.Expression;
              }

              if ( !(expression is ParameterExpression) )
            throw new ArgumentException( "Property expression must be of the form 'x => x.Property1.Property2'" );

              return properties.ToArray();
        }
        List<Model.TB_Dict> testmodeDictList; //测试模式字典列表

        #endregion Fields

        #region Constructors

        public AddOrUpdateLevel2()
        {
            InitializeComponent();
            standardInfoBLL = new BLL.TB_StandardInfo();
            standardParamsBLL = new BLL.TB_StandardParams();
            athInfoBLL = new BLL.TB_AthleteInfo();

            Model.TB_Dict allDict = new Model.TB_Dict()
            {
                Dict_Key = "-1",
                Dict_Value = "不限"
            };
            jointDictList = dictBLL.GetModelListByGroupID(2);
            jointDictList.Insert(0, allDict);
            jointsideDictList = dictBLL.GetModelListByGroupID(3);
            jointsideDictList.Insert(0, allDict);
            testmodeDictList = dictBLL.GetModelListByGroupID(1);
            testmodeDictList.Insert(0, allDict);
        }
Beispiel #20
0
 /// <summary>
 /// Constructor of the class
 /// </summary>
 public OfficeViewModel()
 {
     //Initialize office type list
     OfficeTypeList = new List<DictionaryEnum>();
     //Initialize regional office list
     RegionalOfficeList = new ObservableCollection<Business.Office>(StaticReferences.GetRegionalOffices());
     OfficeTypeConverter converter = new OfficeTypeConverter();
     //Add office types
     Enum.GetValues(typeof(OfficeTypeEnum)).Cast<OfficeTypeEnum>().OrderBy(x => x.ToString()).ToList().ForEach(data =>
     {
         OfficeTypeList.Add(new DictionaryEnum
         {
             DictionaryEnumId = (int)data,
             DictionaryEnumName = converter.Convert(data,null,null,null).ToString()
         });
     });
     OfficeTypeList.Insert(0, new DictionaryEnum { DictionaryEnumId = -1, DictionaryEnumName = " " });
     RegionalOfficeList.Insert(0, new Office { OfficeId = -1, OfficeName = " " });
 }
        void C1TreeView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (e.AddedItems.Count == 0) return;
            var treeViewItem = e.AddedItems[0] as C1TreeViewItem;
            if (treeViewItem == null) return;
            var bookmark = treeViewItem.Header as Bookmark;
            if (bookmark == null) return;
            List<string> titles = new List<string>();
            while (bookmark != null)
            {
                titles.Insert(0, bookmark.Title);
                if (treeViewItem.Parent == null)
                    break;
                treeViewItem = treeViewItem.Parent as C1TreeViewItem;
                if (treeViewItem == null) break; ;
                bookmark = treeViewItem.Header as Bookmark;
                if (bookmark == null) break;
            }

            pdfviewer.GoToBookmark(titles.ToArray());
        }
        public FindMultimediaDialog(User user)
        {
            InitializeComponent();
            User = user;
            var service = new SupportService(user);

            _extensions = service.GetMultimediaExtensions();
            var types = service.GetMultimediaTypes();
            _extensions.Insert(0, "(All)");

            _multimediaTypes = new List<string>();
            _multimediaTypes.Add("(All)");
            foreach (MultimediaType type in types) {
                if (!string.IsNullOrWhiteSpace(type.Name)) {
                    _multimediaTypes.Add(type.Name);
                }
            }

            cmbExtension.ItemsSource = _extensions;
            cmbExtension.SelectedIndex = 0;
            cmbType.ItemsSource = _multimediaTypes;
            cmbType.SelectedIndex = 0;

            _tempFileManager = new KeyedObjectTempFileManager<int?>((mmId) => {
                if (mmId.HasValue) {
                    byte[] bytes = service.GetMultimediaBytes(mmId.Value);
                    return new MemoryStream(bytes);
                }
                return null;
            });

            txtCriteria.KeyUp +=new KeyEventHandler(txtCriteria_KeyUp);

            this.Loaded += new RoutedEventHandler(FindMultimediaDialog_Loaded);

            SelectedMultimedia = new List<MultimediaLinkViewModel>();
        }
Beispiel #23
0
        public static List<MultiScaleSubImage> RandomizedListOfImages(this MultiScaleImage msi)
        {
            List<MultiScaleSubImage> imageList = new List<MultiScaleSubImage>();
            Random ranNum = new Random();

            DZContext context = msi.EnsureContext();
            // Store List of Images
            context.ImagesToShow.ForEach(subImage => imageList.Add(subImage));

            // Randomize Image List
            int numImages = imageList.Count;
            for (int i = 0; i < numImages; i++)
            {
                MultiScaleSubImage tempImage = imageList[i];
                imageList.RemoveAt(i);

                int ranNumSelect = ranNum.Next(imageList.Count);

                imageList.Insert(ranNumSelect, tempImage);
            }
            return imageList;
        }
        public static List<Skeleton> GetStartCorrectedFrames(List<Skeleton> test, List<Skeleton> action)
        {
            test = KinectFrameUtils.AlignFrames(test, action.Count);
            double dist = GetTotalDistTraveled(action);

            int frameStart = -1;
            int rawStart = -1;

            for (int i = 0; i < action.Count; i++)
            {
                if (KinectFrameUtils.GetTotalDistTraveled(action.GetRange(0, i)) > (dist / 5) && frameStart < 0)
                {
                    frameStart = i;
                }

                if (KinectFrameUtils.GetTotalDistTraveled(test.GetRange(0, i)) > (dist / 5) && rawStart < 0)
                {
                    rawStart = i;
                }
            }

            int diff = frameStart - rawStart;
            if (diff > 0)
            {
                for (int i = 0; i < diff; i++)
                {
                    test = AlignFrames(test, test.Count - 1);
                    test.Insert(0, test[0]);
                }
            }
            else
            {
                for (int i = 0; i < -diff; i++)
                {
                    test.RemoveAt(0);
                    test.Add(test[test.Count - 1]);
                }
            }
            return test;
        }
Beispiel #25
0
        /// <summary>
        ///  Fires a specific event to the page level multi upload script.
        /// </summary>
        /// <param name="name">Event name to fire.</param>
        /// <param name="paramlist">Numerous parameters to send.</param>
        public void FireEvent(string name, params object[] paramlist)
        {
            List<object> args = new List<object>(paramlist);

            args.Insert(0, name);
            args.Insert(0, this.id);

            this.PluploadScriptObject.Invoke("trigger", args.ToArray());
        }
Beispiel #26
0
        //Merge line 2 into line 1
        private void _AddLineToRanges(List<FixedSOMLineRanges> ranges, double line, double start, double end)
        {
            if (start > end)
            {
                double temp = start;
                start = end;
                end = temp;
            }

            FixedSOMLineRanges range;
            double maxSeparation = .5 * FixedSOMLineRanges.MinLineSeparation;

            for (int i=0; i < ranges.Count; i++)
            {
                if (line < ranges[i].Line - maxSeparation)
                {
                    range = new FixedSOMLineRanges();
                    range.Line = line;
                    range.AddRange(start, end);
                    ranges.Insert(i, range);
                    return;
                }
                else if (line < ranges[i].Line + maxSeparation)
                {
                    ranges[i].AddRange(start, end);
                    return;
                }
            }

            // add to end
            range = new FixedSOMLineRanges();
            range.Line = line;
            range.AddRange(start, end);
            ranges.Add(range);
            return;

        }
Beispiel #27
0
        private void SaveGrab(object sender, ExecutedRoutedEventArgs e)
        {
            if (!Validate())
                return;
            //Settings.Default.UrlList = CsvGrabber.Core.Utils.SerializeUrls(UrlsToGrab);
            List<string> expressions = new List<string>();
            foreach (var exp in cboExpressions.Items) {
                string expression = Convert.ToString(exp);
                if (!string.IsNullOrWhiteSpace(expression) && !expressions.Contains(expression)) {
                    expressions.Insert(0, expression);
                }
            }
            if (!expressions.Contains(cboExpressions.Text) && !string.IsNullOrWhiteSpace(cboExpressions.Text)) {
                expressions.Insert(0,cboExpressions.Text);
                cboExpressions.Items.Insert(0, cboExpressions.Text);
            }
            Settings.Default.GrabExpressions = CsvGrabber.Core.Utils.SerializeList(expressions);

            Settings.Default.Save();
            GrabEventArgs args = new GrabEventArgs(new GrabbableUrl(txtUrl.Text));
            RegexOptions options = 0;
            if (chkCultureInvariant.IsChecked == true) {
                options |= RegexOptions.CultureInvariant;
            }
            if (chkCaseInsensitive.IsChecked == true) {
                options |= RegexOptions.IgnoreCase;
            }
            if (chkDotNewLine.IsChecked == true) {
                options |= RegexOptions.Singleline;
            }
            if (chkMultiline.IsChecked == true) {
                options |= RegexOptions.Multiline;
            }
            if (chkFreeSpacing.IsChecked == true) {
                options |= RegexOptions.IgnorePatternWhitespace;
            }
            args.GrabExpression = new Regex(cboExpressions.Text, options);

            CurrentGrab.GrabParams = args;
            DialogResult = true;
            Close();
        }
Beispiel #28
0
        /// <summary>
        /// Save high scores
        /// </summary>
        /// <param name="playerWins"></param>
        /// <returns></returns>
        private List<string> saveHighScores(bool playerWins)
        {
            String filename = @"../../scores.txt";
            string[] user = { playerName, "0", "0" };
            string[] playerNames;
            int index;
            int wins = 0;
            int losses = 0;

            //Create file if it doesn't exists
            if (!File.Exists(filename))
            {
                FileStream stream = File.Create(filename);
                stream.Close();
            }

            //Get list of players
            List<string> players = new List<string>(File.ReadAllLines(filename));

            playerNames = new string[players.Count];

            for (index = 0; index < players.Count; index++)
            {
                playerNames[index] = players[index].Split(' ')[0];
            }
            //See if player exists already
            index = binarySearch(playerNames, playerName);

            if (index > -1)
            {
                user = players[index].Split();
                players.RemoveAt(index);
            }
            else
            {
                index = -(index + 1);
            }
            if (playerWins == true)
            {
                wins = int.Parse(user[1]) + 1;
            }
            else
            {
                losses = int.Parse(user[2]) + 1;
            }
            players.Insert(index, playerName + " " + wins + " " + losses);

            File.WriteAllLines(filename, players);
            return players;
        }
        /// <summary> 
        /// Inserts an adorner after the last adorner with ZOrder less or equal of the input one
        /// </summary> 
        /// <param name="adorners">adorners list</param> 
        /// <param name="adorner">the new adorner</param>
        /// <remarks>In most cases the AnnotationAdorners are already orderd so we expect that the new one 
        /// will be added at the end of the list. That is why we start scaning from the end.</remarks>
        private void AddAdorner(List<AnnotationAdorner> adorners, AnnotationAdorner adorner)
        {
            Debug.Assert((adorners != null) && (adorner != null), "null adorners list or adorner"); 

            int index = 0; 
            if (adorners.Count > 0) 
            {
                for (index = adorners.Count; index > 0; index--) 
                {
                    if (adorners[index-1].AnnotationComponent.ZOrder <= adorner.AnnotationComponent.ZOrder)
                        break;
                } 
            }
 
            adorners.Insert(index, adorner); 
        }
		void GetPath(List<IPopupItem> list, IPopupItem p)
		{
			list.Clear();
			while (p != null)
			{
				list.Insert(0, p);
				p = p.ParentItem;
			}
		}