Esempio n. 1
0
        /// <summary>
        /// Retrieves an enumerable collection of changesets matching the specified items
        /// </summary>
        /// <param name="serverUri">server Uri</param>
        /// <param name="itemPath">Item path</param>
        /// <returns>An enumerable collection of changesets</returns>
        private static IEnumerable FetchHistory(string serverUri, string itemPath)
        {
            IEnumerable enumerable1 = null;

            if (String.IsNullOrWhiteSpace(serverUri))
            {
                throw new TfsHistorySearchException("'serverUri' is null or empty.");
            }
            if (String.IsNullOrWhiteSpace(itemPath))
            {
                throw new TfsHistorySearchException("'itemPath' is null or empty.");
            }

            TfsTeamProjectCollection tc = new TfsTeamProjectCollection(new Uri(serverUri));

            VersionControlServer vcs = tc.GetService(typeof(VersionControlServer)) as VersionControlServer;

            ExtendedItem[] itemArray1 = vcs.GetExtendedItems(itemPath, DeletedState.NonDeleted, ItemType.Any);

            if ((itemArray1 == null) || (itemArray1.Length == 0))
            {
                throw new TfsHistorySearchException("Specified item not found.");
            }

            ExtendedItem item1 = itemArray1[0];

            enumerable1 = vcs.QueryHistory(itemPath, VersionSpec.Latest, item1.DeletionId, (item1.ItemType == ItemType.Folder) ? RecursionType.Full : RecursionType.None, "", new ChangesetVersionSpec(1), VersionSpec.Latest, 0x7fffffff, true, false);

            return(enumerable1);
        }
Esempio n. 2
0
        void MouseUp(object sender, MouseEventArgs e)
        {
            result = designPanel.HitTest(e.GetPosition(designPanel), true, true, HitTestType.Default);
            if (((result.ModelHit == ExtendedItem && result.VisualHit is TextBlock) ||
                 (result.VisualHit != null && result.VisualHit.TryFindParent <InPlaceEditor>() == editor)) &&
                numClicks > 0)
            {
                if (!isGettingDragged)
                {
                    PlaceEditor(ExtendedItem.View, e);
                    foreach (var extension in ExtendedItem.Extensions)
                    {
                        if (!(extension is InPlaceEditorExtension) && !(extension is SelectedElementRectangleExtension))
                        {
                            ExtendedItem.RemoveExtension(extension);
                        }
                    }
                    editor.Visibility = Visibility.Visible;
                }
            }
            else
            {
                // Clicked outside the Text - > hide the editor and make the actualt text visible again
                editor.Visibility = Visibility.Hidden;
                if (textBlock != null)
                {
                    textBlock.Visibility = Visibility.Visible;
                }
                this.ExtendedItem.ReapplyAllExtensions();
            }

            isMouseDown      = false;
            isGettingDragged = false;
        }
Esempio n. 3
0
    static void Main(string[] args)
    {
        BasicCollection extendedCollection = new BasicCollection();

        extendedCollection.Add(new ExtendedItem {
            A = 1, B = 2
        });
        extendedCollection.Add(new BasicItem {
            A = 3
        });
        extendedCollection.Add(new ExtendedItem {
            A = 4, B = 5
        });

        foreach (BasicItem item in extendedCollection)
        {
            switch (item.GetType().Name)
            {
            case "BasicItem":
                Console.Out.WriteLine(string.Format("Found BasicItem: A={0}", item.A));
                break;

            case "ExtendedItem":
                ExtendedItem extendedItem = item as ExtendedItem;
                Console.Out.WriteLine(string.Format("Found ExtendedItem: A={0} B={1}", extendedItem.A, extendedItem.B));
                break;
            }
        }
    }
        private void AddItemBtn_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (Int32.Parse(Amount.Text) > 0)
                {
                    DBUpdateInvoice db_update = new DBUpdateInvoice();
                    DBGetItems      db_items  = new DBGetItems();

                    ExtendedItem chosen_item         = null;
                    List <Entity.ExtendedItem> items = db_items.GetItems();

                    foreach (ExtendedItem i in items)
                    {
                        if (i.name.Equals(AvaiableItems.SelectedItem))
                        {
                            chosen_item        = i;
                            chosen_item.amount = Int32.Parse(Amount.Text);
                        }
                    }

                    if (chosen_item != null)
                    {
                        chosen_item.UpdateValues();
                        invoice.items.Add(chosen_item);
                    }
                    db_update.UpdateItemList(invoice, chosen_item);
                    SetComboboxItem();
                    Amount.Text = "" + 0;
                }
            }catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }
Esempio n. 5
0
 private void OpenTeamcraft(ExtendedItem extendedItem)
 {
     if (teamcraftLocalFailed || Config.TeamcraftLinkHotkeyForceBrowser)
     {
         Common.OpenBrowser($"https://ffxivteamcraft.com/db/en/item/{extendedItem.RowId}");
         return;
     }
     Task.Run(() => {
         try {
             var wr     = WebRequest.CreateHttp($"http://localhost:14500/db/en/item/{extendedItem.RowId}");
             wr.Timeout = 500;
             wr.Method  = "GET";
             wr.GetResponse().Close();
         } catch {
             try {
                 if (System.IO.Directory.Exists(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "ffxiv-teamcraft")))
                 {
                     Common.OpenBrowser($"teamcraft:///db/en/item/{extendedItem.RowId}");
                 }
                 else
                 {
                     teamcraftLocalFailed = true;
                     Common.OpenBrowser($"https://ffxivteamcraft.com/db/en/item/{extendedItem.RowId}");
                 }
             } catch {
                 teamcraftLocalFailed = true;
                 Common.OpenBrowser($"https://ffxivteamcraft.com/db/en/item/{extendedItem.RowId}");
             }
         }
     });
 }
Esempio n. 6
0
        public VersionedAsset ToVersionedAsset(ExtendedItem eachItem)
        {
            VersionedAsset asset = new VersionedAsset(GetAssetPath(eachItem, Workspace));

            asset.SetChangeListID(eachItem.VersionLocal.ToString());
            asset.SetRevision(eachItem.VersionLocal.ToString());

            if (asset.ExistsOnDisk)
            {
                asset.AddState(State.kLocal);
            }
            else
            {
                asset.AddState(State.kMissing);
            }

            if (eachItem.IsInWorkspace)
            {
                if (eachItem.IsLatest)
                {
                    asset.AddState(State.kSynced);
                }
                else
                {
                    asset.AddState(State.kOutOfSync);
                }
            }

            if (Workspace.Location == Microsoft.TeamFoundation.VersionControl.Common.WorkspaceLocation.Local)
            {
                ApplyStatusFromExtendedItem(asset, eachItem);
            }

            return(asset);
        }
Esempio n. 7
0
        void ApplyStatusFromExtendedItem(VersionedAsset asset, ExtendedItem eachItem)
        {
            if (asset == null)
            {
                return;
            }

            var isLocal = true;

            if (eachItem.ChangeType.HasFlag(ChangeType.Lock))
            {
                asset.AddState(isLocal ? State.kLockedLocal : State.kLockedRemote);
            }

            if (eachItem.ChangeType.HasFlag(ChangeType.Add))
            {
                asset.AddState(isLocal ? State.kAddedLocal : State.kAddedRemote);
            }
            else if (eachItem.ChangeType.HasFlag(ChangeType.Delete))
            {
                asset.AddState(isLocal ? State.kDeletedLocal : State.kDeletedRemote);

                if (isLocal)
                {
                    asset.RemoveState(State.kMissing);
                    asset.AddState(State.kSynced);
                }
            }
            else if (eachItem.ChangeType.HasFlag(ChangeType.Edit) || eachItem.ChangeType.HasFlag(ChangeType.Rename) || eachItem.ChangeType.HasFlag(ChangeType.Branch) || eachItem.ChangeType.HasFlag(ChangeType.Merge) || eachItem.ChangeType.HasFlag(ChangeType.Rollback) || eachItem.ChangeType.HasFlag(ChangeType.Undelete) || eachItem.ChangeType.HasFlag(ChangeType.Encoding))
            {
                asset.AddState(isLocal ? State.kCheckedOutLocal : State.kCheckedOutRemote);
            }
        }
Esempio n. 8
0
 public TreeNodeLocalItem(ExtendedItem localItem, string text) : base(text, 0, 0)
 {
     this.LocalItem     = localItem != null ? localItem.LocalItem : "";
     this.ItemID        = localItem != null ? localItem.ItemId : 0;
     this.IsMultiSelect = false;
     this.ExItem        = localItem;
 }
Esempio n. 9
0
 private void CreateItemBtn_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         if (!Nametxt.Text.Equals("") &&
             !ItemTypetxt.Text.Equals("") &&
             !VATtxt.Text.Equals("") &&
             !Pricetxt.Text.Equals(""))
         {
             Entity.ExtendedItem item = new ExtendedItem(Nametxt.Text, ItemTypetxt.Text, Int32.Parse(VATtxt.Text), Int32.Parse(Pricetxt.Text), -1);
             DBAddItem           db   = new DBAddItem();
             db.AddItem(item);
             owner.ChangePanelInvoiceList();
         }
         else
         {
             MessageBox.Show("Wypełnij wszystkie pola", "Błąd");
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("Błędne wypełnienie pól", "Błąd");
         Debug.WriteLine(ex.Message);
     }
 }
 public void AddToCache(ExtendedItem item)
 {
     if (item == null)
         return;
     if (cachedItems.Contains(item))
         cachedItems.Remove(item);
     cachedItems.Add(item);
 }
Esempio n. 11
0
 public TreeNodeLocalItem(string fname, string text)
     : base(text, 0, 0)
 {
     this.LocalItem     = fname;
     this.ItemID        = 0;
     this.IsMultiSelect = false;
     this.ExItem        = null;
 }
        private string DownloadItemToTemp(ExtendedItem extendedItem)
        {
            var dowloadService = this.projectCollection.GetService <VersionControlDownloadService>();
            var item           = _currentWorkspace.GetItem(extendedItem.ServerPath, ItemType.File, true);
            var filePath       = dowloadService.DownloadToTempWithName(item.ArtifactUri, item.ServerPath.ItemName);

            return(filePath);
        }
Esempio n. 13
0
 public TreeNodeServerItem(ExtendedItem serverItem, string text, int imageIndex, int expandedImageIndex) : base(text, 0, 0)
 {
     this.ServerItem          = serverItem != null ? serverItem.TargetServerItem : "$/";
     this.CollapsedImageIndex = imageIndex;
     this.ExpandedImageIndex  = expandedImageIndex;
     this.ItemID        = serverItem != null ? serverItem.ItemId : 0;
     this.IsMultiSelect = false;
     this.ExItem        = serverItem;
 }
Esempio n. 14
0
 protected override void OnInitialized()
 {
     base.OnInitialized();
     if (ExtendedItem.ContentProperty == null ||
         Metadata.IsPlacementDisabled(ExtendedItem.ComponentType))
     {
         return;
     }
     ExtendedItem.AddBehavior(typeof(IPlacementBehavior), this);
 }
        protected override void OnInitialized()
        {
            base.OnInitialized();
            if (ExtendedItem.Component is Panel || ExtendedItem.Component is Control || ExtendedItem.Component is Border || ExtendedItem.Component is Viewbox)
            {
                return;
            }

            ExtendedItem.AddBehavior(typeof(IPlacementBehavior), this);
        }
Esempio n. 16
0
 private int HandleConjuredItemQuality(ExtendedItem item)
 {
     if (item.SellIn <= _itemDoubleQualityDegradeThreshold)
     {
         return(DecreaseQuality(item, 4));
     }
     else
     {
         return(DecreaseQuality(item, 2));
     }
 }
Esempio n. 17
0
 private int HandleAgingItemQuality(ExtendedItem agedBrie)
 {
     if (agedBrie.SellIn <= _itemDoubleQualityDegradeThreshold)
     {
         return(IncreaseQuality(agedBrie, 2));
     }
     else
     {
         return(IncreaseQuality(agedBrie, 1));
     }
 }
 public void AddToCache(ExtendedItem item)
 {
     if (item == null)
     {
         return;
     }
     if (cachedItems.Contains(item))
     {
         cachedItems.Remove(item);
     }
     cachedItems.Add(item);
 }
Esempio n. 19
0
        private int IncreaseQuality(ExtendedItem item, ushort amount)
        {
            if (item.Quality + amount < _maxQuality)
            {
                item.Quality += amount;
            }
            else
            {
                item.Quality = _maxQuality;
            }

            return(item.Quality);
        }
Esempio n. 20
0
        private int DecreaseQuality(ExtendedItem item, ushort amount)
        {
            if (item.Quality - amount > _minQuality)
            {
                item.Quality -= amount;
            }
            else
            {
                item.Quality = _minQuality;
            }

            return(item.Quality);
        }
        internal void UpdateItemList(ExtendedInvoice invoice, ExtendedItem item)
        {
            int itemId = GetItemId(item);
            int freeID = GetFreeItemInInvoiceId();

            SQLtoLINQ.Item_in_invoice iii = new SQLtoLINQ.Item_in_invoice();
            iii.Id         = freeID;
            iii.Invoice_Id = invoice.Id;
            iii.Item_Id    = itemId;
            iii.Amount     = item.amount;
            dbContext.Item_in_invoice.InsertOnSubmit(iii);
            dbContext.SubmitChanges();
        }
        public void RefreshExtendedItem(Workspace ws)
        {
            var items = ws.GetExtendedItems(new[] { new ItemSpec(LocalPath, RecursionType.None) }, DeletedState.Any, ItemType.Any);

            foreach (var item in items)
            {
                foreach (var each in item)
                {
                    extendedItem          = each;
                    ExtendedItemTimestamp = DateTime.Now;
                    return;
                }
            }
        }
Esempio n. 23
0
        private VersionStatus GetLocalVersionStatus(ExtendedItem item)
        {
            if (item == null)
            {
                return(VersionStatus.Unversioned);
            }
            var workspace = this.GetWorkspaceByServerPath(item.ServerPath);

            if (workspace == null)
            {
                return(VersionStatus.Unversioned);
            }
            var status = VersionStatus.Versioned;

            if (item.IsLocked)                  //Locked
            {
                if (item.HasOtherPendingChange) //Locked by someone else
                {
                    status |= VersionStatus.Locked;
                }
                else
                {
                    status |= VersionStatus.LockOwned; //Locked by me
                }
            }

            var changes = workspace.PendingChanges.Where(ch => string.Equals(ch.ServerItem, item.ServerPath, StringComparison.OrdinalIgnoreCase)).ToList();

            if (changes.Any(change => change.IsAdd || change.Version == 0))
            {
                status |= VersionStatus.ScheduledAdd;
                return(status);
            }
            if (changes.Any(change => change.IsDelete))
            {
                status |= VersionStatus.ScheduledDelete;
                return(status);
            }
            if (changes.Any(change => change.IsRename))
            {
                status = status | VersionStatus.ScheduledAdd;
                return(status);
            }
            if (changes.Any(change => change.IsEdit || change.IsEncoding))
            {
                status = status | VersionStatus.Modified;
                return(status);
            }
            return(status);
        }
        private MenuItem CreateOpenFolderMenuItem(ExtendedItem item)
        {
            MenuItem openFolder = new MenuItem(GettextCatalog.GetString("Open mapped folder"));

            openFolder.Activated += (sender, e) =>
            {
                var path = item.LocalItem;
                if (string.IsNullOrEmpty(path))
                {
                    path = _currentWorkspace.GetLocalPathForServerPath(item.ServerPath);
                }
                DesktopService.OpenFolder(path);
            };
            return(openFolder);
        }
Esempio n. 25
0
        private IEnumerable <VersionInfo> GetItemVersionInfo(ExtendedItem item, bool getRemoteStatus)
        {
            var localStatus    = GetLocalVersionStatus(item);
            var localRevision  = GetLocalRevision(item);
            var remoteStatus   = getRemoteStatus ? GetServerVersionStatus(item) : VersionStatus.Versioned;
            var remoteRevision = getRemoteStatus ? GetServerRevision(item) : (TFSRevision)null;
            var path           = item.LocalItem;

            if (string.IsNullOrEmpty(path) && item.ChangeType.HasFlag(ChangeType.Delete)) //Pending for delete.
            {
                var workspace = this.GetWorkspaceByServerPath(item.ServerPath);
                path = workspace.GetLocalPathForServerPath(item.ServerPath);
            }
            yield return(new VersionInfo(path, item.ServerPath, item.ItemType == ItemType.Folder,
                                         localStatus, localRevision, remoteStatus, remoteRevision));
        }
Esempio n. 26
0
        public void Sulfuras_UpdateItemQuality()
        {
            //Arrange
            var item = new ExtendedItem()
            {
                Name    = "Sulfuras, Hand of Ragnaros",
                Quality = 48,
                Type    = TypeEnumExtension.GetTypeFromItemName("Sulfuras, Hand of Ragnaros"),
                RunDate = DateTime.Now.AddDays(-1)
            };

            //Act
            item.UpdateItemQuality();

            //Assert
            Assert.AreEqual(item.Quality, 48);
        }
Esempio n. 27
0
        public void AnyOtherItem_UpdateItemQuality()
        {
            //Arrange
            var item = new ExtendedItem()
            {
                Name    = "",
                Quality = 42,
                SellIn  = 7,
                RunDate = DateTime.Now.AddDays(-1)
            };

            //Act
            item.UpdateItemQuality();

            //Assert
            Assert.AreEqual(item.Quality, 41);
            Assert.AreEqual(item.SellIn, 6);
        }
Esempio n. 28
0
        public void RunDate_UpdateItemQuality()
        {
            //Arrange
            var item = new ExtendedItem()
            {
                Name    = "",
                Quality = 42,
                SellIn  = 7,
                RunDate = DateTime.Now
            };

            //Act
            item.UpdateItemQuality();

            //Assert
            Assert.AreEqual(item.Quality, 42);
            Assert.AreEqual(item.SellIn, 7);
        }
Esempio n. 29
0
        // Displays change and path information from the ExtendedItem.
        static void DisplayExtendedItem(ExtendedItem item, Workspace workspace)
        {
            Console.Write("  ");

            // Indicate whether someone else has a pending change on this file or folder.  The
            // ExtendedItem doesn't contain the list of users with pending changes on this file.
            // For that information, we'd need to call QueryPendingSets() in addition to
            // GetExtendedItems() and join the two together via the item ID.
            if (item.HasOtherPendingChange)
            {
                Console.Write("^ ");
            }

            // Show the lock information if someone has locked the file or folder.
            if (item.LockStatus != LockLevel.None)
            {
                Console.Write("[{0},{1}] ",
                              PendingChange.GetLocalizedStringForLockLevel(item.LockStatus),
                              item.LockOwner);
            }

            // If there is a change pending on the item in the current workspace, display it.
            if (item.ChangeType != ChangeType.None)
            {
                Console.Write("({0}) ", PendingChange.GetLocalizedStringForChangeType(item.ChangeType));
            }

            // Display the local path.
            if (!item.IsInWorkspace)
            {
                // Get the mapping so that we can determine its local path or that it is cloaked.
                WorkingFolder wf = workspace.TryGetWorkingFolderForServerItem(item.TargetServerItem);

                // Let's skip cloaked items, since the user doesn't want them.
                if (!wf.IsCloaked)
                {
                    Console.WriteLine(wf.LocalItem);
                }
            }
            else
            {
                Console.WriteLine(item.LocalItem);
            }
        }
Esempio n. 30
0
 private int HandleConcertItemQuality(ExtendedItem backstagePass)
 {
     if (backstagePass.SellIn <= _backstagePassZeroQualityThreshold)
     {
         return(0);
     }
     else if (backstagePass.SellIn <= _backstagePassTripleQualityThreshold)
     {
         return(IncreaseQuality(backstagePass, 3));
     }
     else if (backstagePass.SellIn <= _backstagePassDoubleQualityThreshold)
     {
         return(IncreaseQuality(backstagePass, 2));
     }
     else
     {
         return(IncreaseQuality(backstagePass, 1));
     }
 }
Esempio n. 31
0
        public void ConjuredManaCake_UpdateItemQuality()
        {
            //Arrange
            var item = new ExtendedItem()
            {
                Name    = "Conjured Mana Cake",
                Quality = 42,
                SellIn  = 7,
                Type    = TypeEnumExtension.GetTypeFromItemName("Conjured Mana Cake"),
                RunDate = DateTime.Now.AddDays(-1)
            };

            //Act
            item.UpdateItemQuality();

            //Assert
            Assert.AreEqual(item.Quality, 40);
            Assert.AreEqual(item.SellIn, 6);
        }
        private VersionStatus GetLocalVersionStatus(ExtendedItem item)
        {
            if (item == null)
                return VersionStatus.Unversioned;
            var workspace = this.GetWorkspaceByServerPath(item.ServerPath);
            if (workspace == null)
                return VersionStatus.Unversioned;
            var status = VersionStatus.Versioned;

            if (item.IsLocked) //Locked
            {
                if (item.HasOtherPendingChange)//Locked by someone else
                    status |= VersionStatus.Locked;
                else
                    status |= VersionStatus.LockOwned; //Locked by me
            }

            var changes = workspace.PendingChanges.Where(ch => string.Equals(ch.ServerItem, item.ServerPath, StringComparison.OrdinalIgnoreCase)).ToList();

            if (changes.Any(change => change.IsAdd || change.Version == 0))
            {
                status |= VersionStatus.ScheduledAdd;
                return status;
            }
            if (changes.Any(change => change.IsDelete))
            {
                status |= VersionStatus.ScheduledDelete;
                return status;
            }
            if (changes.Any(change => change.IsRename))
            {
                status = status | VersionStatus.ScheduledAdd;
                return status;
            }
            if (changes.Any(change => change.IsEdit || change.IsEncoding))
            {
                status = status | VersionStatus.Modified;
                return status;
            }
            return status;
        }
 private IEnumerable<VersionInfo> GetItemVersionInfo(ExtendedItem item, bool getRemoteStatus)
 {
     var localStatus = GetLocalVersionStatus(item);
     var localRevision = GetLocalRevision(item);
     var remoteStatus = getRemoteStatus ? GetServerVersionStatus(item) : VersionStatus.Versioned;
     var remoteRevision = getRemoteStatus ? GetServerRevision(item) : (TFSRevision)null;
     var path = item.LocalItem;
     if (string.IsNullOrEmpty(path) && item.ChangeType.HasFlag(ChangeType.Delete)) //Pending for delete.
     {
         var workspace = this.GetWorkspaceByServerPath(item.ServerPath);
         path = workspace.GetLocalPathForServerPath(item.ServerPath);
     }
     yield return new VersionInfo(path, item.ServerPath, item.ItemType == ItemType.Folder, 
         localStatus, localRevision, remoteStatus, remoteRevision);
 }
 private Revision GetServerRevision(ExtendedItem item)
 {
     return new TFSRevision(this, item.VersionLatest, item.SourceServerItem);
 }
 private Revision GetLocalRevision(ExtendedItem item)
 {
     return new TFSRevision(this, item.VersionLocal, item.SourceServerItem);
 }
        private VersionStatus GetServerVersionStatus(ExtendedItem item)
        {
            if (item == null)
                return VersionStatus.Unversioned;
            var status = VersionStatus.Versioned;
            if (item.IsLocked)
                status = status | VersionStatus.Locked;
            if (item.DeletionId > 0)
                return status | VersionStatus.Missing;
            if (item.VersionLatest > item.VersionLocal)
                return status | VersionStatus.Modified;

            return status;
        }
 private string DownloadItemToTemp(ExtendedItem extendedItem)
 {
     var dowloadService = this.projectCollection.GetService<VersionControlDownloadService>();
     var item = _currentWorkspace.GetItem(extendedItem.ServerPath, ItemType.File, true);
     var filePath = dowloadService.DownloadToTempWithName(item.ArtifactUri, item.ServerPath.ItemName);
     return filePath;
 }
Esempio n. 38
0
		private void readExtendedData(ref BinaryReader source, ref SPCExTags footer)
		{
			footer.FooterTag = Utils.GetStringFromCharArray(Utils.ReadTrueChars(source,4));
			if (XTENDED_TAG == footer.FooterTag)
			{
				footer.FooterSize = source.ReadUInt32();
				
				ExtendedItem anItem;

				long i=source.BaseStream.Position;
				while(source.BaseStream.Position-i < footer.FooterSize)
				{
					anItem = new ExtendedItem();
					anItem.ID = source.ReadByte();
					anItem.Type = source.ReadByte();
					anItem.Length = source.ReadUInt16();

					switch(anItem.Type)
					{
						case XID6_TVAL :
							// nothing; value is stored into the Length field
							break;
						case XID6_TSTR :
							anItem.Data = Utils.GetStringFromCharArray(Utils.ReadTrueChars(source,anItem.Length));
							while(0 == source.ReadByte()); // Ending zeroes
							source.BaseStream.Seek(-1,SeekOrigin.Current);
							break;
						case XID6_TINT :
							anItem.Data = source.ReadInt32();
							break;
					}
					footer.Items.Add( anItem.ID, anItem );
				}
			}
		}
 private MenuItem CreateOpenFolderMenuItem(ExtendedItem item)
 {
     MenuItem openFolder = new MenuItem(GettextCatalog.GetString("Open mapped folder"));
     openFolder.Activated += (sender, e) =>
     {
         var path = item.LocalItem;
         if (string.IsNullOrEmpty(path))
             path = _currentWorkspace.GetLocalPathForServerPath(item.ServerPath);
         DesktopService.OpenFolder(path);
     };
     return openFolder;
 }
        private MenuItem CreateAddFileMenuItem(ExtendedItem item)
        {
            MenuItem addItem = new MenuItem(GettextCatalog.GetString("Add new item"));
            addItem.Activated += (sender, e) =>
            {
                var path = item.LocalItem;
                if (string.IsNullOrEmpty(path))
                    path = _currentWorkspace.GetLocalPathForServerPath(item.ServerPath);

                using (Xwt.OpenFileDialog openFileDialog = new Xwt.OpenFileDialog("Browse For File"))
                {
                    openFileDialog.CurrentFolder = path;
                    openFileDialog.Multiselect = true;
                    if (openFileDialog.Run())
                    {
                        List<FilePath> files = new List<FilePath>();
                        foreach (var fileName in openFileDialog.FileNames) 
                        {
                            //Check if file is in other folder
                            if (!string.Equals(Path.GetDirectoryName(fileName), path))
                            {
                                var newPath = Path.Combine(path, Path.GetFileName(fileName));
                                File.Copy(fileName, newPath);
                                files.Add(newPath);
                            }
                            else
                                files.Add(fileName);
                        }
                        _currentWorkspace.PendAdd(files, false);
                        CheckInDialog.Open(new List<ExtendedItem> { item }, _currentWorkspace);
                    }
                }
            };
            return addItem;
        }