Author: fmantek
Date: Thu Oct 18 06:39:20 2007
New Revision: 308

Removed:
   trunk/clients/cs/samples/PhotoBrowser/AlbumMeta.cs
Modified:
   trunk/clients/cs/samples/PhotoBrowser/Browser.cs
   trunk/clients/cs/src/VS2003/Photobrowser/PhotoBrowser.csproj
   trunk/clients/cs/src/core/gauthrequest.cs
   trunk/clients/cs/src/extensions/extcollections.cs
   trunk/clients/cs/src/extensions/mediarss.cs
   trunk/clients/cs/src/extensions/reminder.cs
   trunk/clients/cs/src/gphotos/albumentry.cs
   trunk/clients/cs/src/gphotos/photoentry.cs
   trunk/clients/cs/src/gphotos/picasaquery.cs

Log:
some comment fixes. Changes for the Picasa Demo program

Modified: trunk/clients/cs/samples/PhotoBrowser/Browser.cs
==============================================================================
--- trunk/clients/cs/samples/PhotoBrowser/Browser.cs    (original)
+++ trunk/clients/cs/samples/PhotoBrowser/Browser.cs    Thu Oct 18 
06:39:20 2007
@@ -24,8 +24,12 @@
         private System.Windows.Forms.ImageList imageList1;
         private System.Windows.Forms.Label label2;
         private System.Windows.Forms.PropertyGrid AlbumInspector;
-        private System.Windows.Forms.Button button1;
+        private System.Windows.Forms.Button AddAlbum;
+        private System.Windows.Forms.Button SaveAlbum;
+        private System.Windows.Forms.Button DeleteAlbum;
         private PicasaService picasaService = new 
PicasaService("PhotoBrowser");
+        private System.Windows.Forms.Button SaveAlbumData;
+        private PicasaFeed picasaFeed = null;


                public PhotoBrowser()
@@ -69,7 +73,10 @@
             this.imageList1 = new 
System.Windows.Forms.ImageList(this.components);
             this.label2 = new System.Windows.Forms.Label();
             this.AlbumInspector = new System.Windows.Forms.PropertyGrid();
-            this.button1 = new System.Windows.Forms.Button();
+            this.SaveAlbumData = new System.Windows.Forms.Button();
+            this.AddAlbum = new System.Windows.Forms.Button();
+            this.SaveAlbum = new System.Windows.Forms.Button();
+            this.DeleteAlbum = new System.Windows.Forms.Button();
             this.SuspendLayout();
             //
             // AlbumList
@@ -84,6 +91,7 @@
             this.AlbumList.Sorting = System.Windows.Forms.SortOrder.Ascending;
             this.AlbumList.TabIndex = 0;
             this.AlbumList.View = System.Windows.Forms.View.List;
+            this.AlbumList.DoubleClick += new 
System.EventHandler(this.OnBrowseAlbum);
             this.AlbumList.SelectedIndexChanged += new 
System.EventHandler(this.AlbumList_SelectedIndexChanged);
             //
             // AlbumPicture
@@ -129,20 +137,49 @@
             this.AlbumInspector.ViewBackColor = 
System.Drawing.SystemColors.Window;
             this.AlbumInspector.ViewForeColor = 
System.Drawing.SystemColors.WindowText;
             //
-            // button1
+            // SaveAlbumData
             //
-            this.button1.Location = new System.Drawing.Point(16, 480);
-            this.button1.Name = "button1";
-            this.button1.Size = new System.Drawing.Size(120, 40);
-            this.button1.TabIndex = 5;
-            this.button1.Text = "&Save Album Data";
-            this.button1.Click += new System.EventHandler(this.button1_Click);
+            this.SaveAlbumData.Location = new System.Drawing.Point(16, 480);
+            this.SaveAlbumData.Name = "SaveAlbumData";
+            this.SaveAlbumData.Size = new System.Drawing.Size(88, 40);
+            this.SaveAlbumData.TabIndex = 5;
+            this.SaveAlbumData.Text = "&Save Album Data";
+            this.SaveAlbumData.Click += new 
System.EventHandler(this.SaveAlbumData_Click);
+            //
+            // AddAlbum
+            //
+            this.AddAlbum.Location = new System.Drawing.Point(130, 480);
+            this.AddAlbum.Name = "AddAlbum";
+            this.AddAlbum.Size = new System.Drawing.Size(88, 40);
+            this.AddAlbum.TabIndex = 6;
+            this.AddAlbum.Text = "&Add a new Album";
+            this.AddAlbum.Click += new 
System.EventHandler(this.AddAlbum_Click);
+            //
+            // SaveAlbum
+            //
+            this.SaveAlbum.Location = new System.Drawing.Point(240, 480);
+            this.SaveAlbum.Name = "SaveAlbum";
+            this.SaveAlbum.Size = new System.Drawing.Size(88, 40);
+            this.SaveAlbum.TabIndex = 7;
+            this.SaveAlbum.Text = "&Backup Album";
+            //
+            // DeleteAlbum
+            //
+            this.DeleteAlbum.Location = new System.Drawing.Point(400, 480);
+            this.DeleteAlbum.Name = "DeleteAlbum";
+            this.DeleteAlbum.Size = new System.Drawing.Size(88, 40);
+            this.DeleteAlbum.TabIndex = 8;
+            this.DeleteAlbum.Text = "&Delete Album";
+            this.DeleteAlbum.Click += new 
System.EventHandler(this.DeleteAlbum_Click);
             //
             // PhotoBrowser
             //
             this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);
-            this.ClientSize = new System.Drawing.Size(512, 552);
-            this.Controls.Add(this.button1);
+            this.ClientSize = new System.Drawing.Size(504, 544);
+            this.Controls.Add(this.DeleteAlbum);
+            this.Controls.Add(this.SaveAlbum);
+            this.Controls.Add(this.AddAlbum);
+            this.Controls.Add(this.SaveAlbumData);
             this.Controls.Add(this.AlbumInspector);
             this.Controls.Add(this.label2);
             this.Controls.Add(this.label1);
@@ -190,11 +227,11 @@

             query.Uri = new Uri(PicasaQuery.CreatePicasaUri(this.user));

-            PicasaFeed feed = this.picasaService.Query(query);
+            this.picasaFeed = this.picasaService.Query(query);

-            if (feed != null && feed.Entries.Count > 0)
+            if (this.picasaFeed != null && 
this.picasaFeed.Entries.Count > 0)
             {
-                foreach (PicasaEntry entry in feed.Entries)
+                foreach (PicasaEntry entry in this.picasaFeed.Entries)
                 {
                      ListViewItem item = new 
ListViewItem(entry.Title.Text +
                                      " (" + 
entry.getPhotoExtensionValue(GPhotoNameTable.NumPhotos) + " )");
@@ -210,14 +247,77 @@
             foreach (ListViewItem item in this.AlbumList.SelectedItems)
             {
                 PicasaEntry entry = item.Tag as PicasaEntry;
+                setSelection(entry);
+            }
+        }
+
+        private void OnBrowseAlbum(object sender, System.EventArgs e)
+        {
+            foreach (ListViewItem item in this.AlbumList.SelectedItems)
+            {
+                PicasaEntry entry = item.Tag as PicasaEntry;
+                string photoUri = entry.FeedUri;
+                if (photoUri != null)
+                {
+                    PhotoQuery query = new PhotoQuery(photoUri);
+                    this.Cursor = Cursors.WaitCursor;
+                    PicasaFeed photoFeed = this.picasaService.Query(query);
+                    this.Cursor = Cursors.Default;
+                    PictureBrowser b = new 
PictureBrowser(this.picasaService, photoFeed, entry.Title.Text);
+                    b.Show();
+                }
+            }
+        }
+
+        private void AddAlbum_Click(object sender, System.EventArgs e)
+        {
+            NewAlbumDialog dialog = new 
NewAlbumDialog(this.picasaService, this.picasaFeed);
+            dialog.ShowDialog();
+            PicasaEntry entry = dialog.CreatedEntry;
+            if (entry != null)
+            {
+                ListViewItem item = new ListViewItem(entry.Title.Text +
+                    " (" + 
entry.getPhotoExtensionValue(GPhotoNameTable.NumPhotos) + " )");
+                item.Tag = entry;
+                this.AlbumList.Items.Add(item);
+            }
+        }
+
+        private void DeleteAlbum_Click(object sender, System.EventArgs e)
+        {
+
+            if (MessageBox.Show("Are you really sure? This is not undoable.",
+                "Delete this Album", MessageBoxButtons.YesNo)  == 
DialogResult.Yes)
+            {
+                foreach (ListViewItem item in this.AlbumList.SelectedItems)
+                {
+                    PicasaEntry entry = item.Tag as PicasaEntry;
+                    entry.Delete();
+                    this.AlbumList.Items.Remove(item);
+                    setSelection(null);
+                }
+            }
+        }
+
+        private void setSelection(PicasaEntry entry)
+        {
+            if (entry != null)
+            {
+                this.Cursor = Cursors.WaitCursor;
                 MediaThumbnail thumb = entry.Media.Thumbnails[0];
                  Stream stream  = this.picasaService.Query(new 
Uri(thumb.Attributes["url"] as string));
                 this.AlbumPicture.Image = new Bitmap(stream);
-                this.AlbumInspector.SelectedObject = new AlbumMeta(entry);
+                this.AlbumInspector.SelectedObject = new AlbumAccessor(entry);
+                this.Cursor = Cursors.Default;
+            }
+            else
+            {
+                this.AlbumPicture.Image = null;
+                this.AlbumInspector.SelectedObject = null;
             }
         }

-        private void button1_Click(object sender, System.EventArgs e)
+        private void SaveAlbumData_Click(object sender, 
System.EventArgs e)
         {
             foreach (ListViewItem item in this.AlbumList.SelectedItems)
             {

Modified: trunk/clients/cs/src/VS2003/Photobrowser/PhotoBrowser.csproj
==============================================================================
--- trunk/clients/cs/src/VS2003/Photobrowser/PhotoBrowser.csproj        
(original)
+++ trunk/clients/cs/src/VS2003/Photobrowser/PhotoBrowser.csproj        Thu 
Oct 18 06:39:20 2007
@@ -109,14 +109,9 @@
         <Files>
             <Include>
                 <File
-                    RelPath = "AlbumMeta.cs"
-                    Link = "..\..\..\samples\PhotoBrowser\AlbumMeta.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
                     RelPath = "AssemblyInfo.cs"
                     Link = "..\..\..\samples\PhotoBrowser\AssemblyInfo.cs"
+                    SubType = "Code"
                     BuildAction = "Compile"
                 />
                 <File
@@ -136,6 +131,26 @@
                     Link = "..\..\..\samples\PhotoBrowser\GoogleClientLogin.cs"
                     SubType = "Form"
                     BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "NewAlbumDialog.cs"
+                    SubType = "Form"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "NewAlbumDialog.resx"
+                    DependentUpon = "NewAlbumDialog.cs"
+                    BuildAction = "EmbeddedResource"
+                />
+                <File
+                    RelPath = "PhotoBrowser.cs"
+                    SubType = "Form"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "PhotoBrowser.resx"
+                    DependentUpon = "PhotoBrowser.cs"
+                    BuildAction = "EmbeddedResource"
                 />
             </Include>
         </Files>

Modified: trunk/clients/cs/src/core/gauthrequest.cs
==============================================================================
--- trunk/clients/cs/src/core/gauthrequest.cs   (original)
+++ trunk/clients/cs/src/core/gauthrequest.cs   Thu Oct 18 06:39:20 2007
@@ -553,7 +553,7 @@
         /// values from the login URI handler.
         /// </summary>
          /// <param name="tokens">The tokencollection of the parsed 
return form</param>
-        /// </// <param name="response">the  webresponse</param>
+        /// <param name="response">the  webresponse</param>
         /// <returns>AuthenticationException</returns>
          private LoggedException getAuthException(TokenCollection 
tokens,  HttpWebResponse response)
         {

Modified: trunk/clients/cs/src/extensions/extcollections.cs
==============================================================================
--- trunk/clients/cs/src/extensions/extcollections.cs   (original)
+++ trunk/clients/cs/src/extensions/extcollections.cs   Thu Oct 18 
06:39:20 2007
@@ -54,7 +54,7 @@
          /// will copy objects to an internal array for caching. Note 
that when the external
          /// ExtensionList is modified, this will have no effect on 
this copy
         /// </summary>
-        /// <param name="atomElement">the base element holding the 
extension list</param>
+        /// <param name="containerElement">the base element holding 
the extension list</param>
         /// <param name="localName">the local name of the extension</param>
         /// <param name="ns">the namespace</param>
          public ExtensionCollection(IExtensionContainer 
containerElement, string localName, string ns) : base()
@@ -339,73 +339,5 @@
     }
     
/////////////////////////////////////////////////////////////////////////////

-    //////////////////////////////////////////////////////////////////////
-    /// <summary>Typed collection for Thumbnails Extensions.</summary>
-    //////////////////////////////////////////////////////////////////////
-    public class ThumbnailCollection : ExtensionCollection
-    {
-        private ThumbnailCollection() : base()
-        {
-        }
-
-        /// <summary>constructor</summary>
-        public ThumbnailCollection(IExtensionContainer atomElement)
-            : base(atomElement, MediaRssNameTable.MediaRssThumbnail, 
MediaRssNameTable.NSMediaRss)
-        {
-        }
-
-        /// <summary>standard typed accessor method </summary>
-        public MediaThumbnail this[int index]
-        {
-            get
-            {
-                return ((MediaThumbnail)List[index]);
-            }
-            set
-            {
-                setItem(index,value);
-            }
-        }
-
-        /// <summary>standard typed add method </summary>
-        public int Add(MediaThumbnail value)
-        {
-            return base.Add(value);
-        }
-
-        /// <summary>standard typed indexOf method </summary>
-        public int IndexOf(MediaThumbnail value)
-        {
-            return (List.IndexOf(value));
-        }
-
-        /// <summary>standard typed insert method </summary>
-        public void Insert(int index, MediaThumbnail value)
-        {
-            base.Insert(index, value);
-        }
-
-        /// <summary>standard typed remove method </summary>
-        public void Remove(MediaThumbnail value)
-        {
-            base.Remove(value);
-        }
-
-        /// <summary>standard typed Contains method </summary>
-        public bool Contains(MediaThumbnail value)
-        {
-            // If value is not of type AtomEntry, this will return false.
-            return (List.Contains(value));
-        }
-
-        /// <summary>standard typed OnValidate Override </summary>
-        protected override void OnValidate(Object value)
-        {
-            if (value as MediaThumbnail == null)
-                throw new ArgumentException("value must be of type 
Google.GData.Extensions.MediaRss.MediaThumbnail.", "value");
-        }
-    }
-    
/////////////////////////////////////////////////////////////////////////////
-
-
+
 }

Modified: trunk/clients/cs/src/extensions/mediarss.cs
==============================================================================
--- trunk/clients/cs/src/extensions/mediarss.cs (original)
+++ trunk/clients/cs/src/extensions/mediarss.cs Thu Oct 18 06:39:20 2007
@@ -352,4 +352,74 @@
         }
     }

+    //////////////////////////////////////////////////////////////////////
+    /// <summary>Typed collection for Thumbnails Extensions.</summary>
+    //////////////////////////////////////////////////////////////////////
+    public class ThumbnailCollection : ExtensionCollection
+    {
+        private ThumbnailCollection() : base()
+        {
+        }
+
+        /// <summary>constructor</summary>
+        public ThumbnailCollection(IExtensionContainer atomElement)
+            : base(atomElement, MediaRssNameTable.MediaRssThumbnail, 
MediaRssNameTable.NSMediaRss)
+        {
+        }
+
+        /// <summary>standard typed accessor method </summary>
+        public MediaThumbnail this[int index]
+        {
+            get
+            {
+                return ((MediaThumbnail)List[index]);
+            }
+            set
+            {
+                setItem(index,value);
+            }
+        }
+
+        /// <summary>standard typed add method </summary>
+        public int Add(MediaThumbnail value)
+        {
+            return base.Add(value);
+        }
+
+        /// <summary>standard typed indexOf method </summary>
+        public int IndexOf(MediaThumbnail value)
+        {
+            return (List.IndexOf(value));
+        }
+
+        /// <summary>standard typed insert method </summary>
+        public void Insert(int index, MediaThumbnail value)
+        {
+            base.Insert(index, value);
+        }
+
+        /// <summary>standard typed remove method </summary>
+        public void Remove(MediaThumbnail value)
+        {
+            base.Remove(value);
+        }
+
+        /// <summary>standard typed Contains method </summary>
+        public bool Contains(MediaThumbnail value)
+        {
+            // If value is not of type AtomEntry, this will return false.
+            return (List.Contains(value));
+        }
+
+        /// <summary>standard typed OnValidate Override </summary>
+        protected override void OnValidate(Object value)
+        {
+            if (value as MediaThumbnail == null)
+                throw new ArgumentException("value must be of type 
Google.GData.Extensions.MediaRss.MediaThumbnail.", "value");
+        }
+    }
+    
/////////////////////////////////////////////////////////////////////////////
+
+
+
 }

Modified: trunk/clients/cs/src/extensions/reminder.cs
==============================================================================
--- trunk/clients/cs/src/extensions/reminder.cs (original)
+++ trunk/clients/cs/src/extensions/reminder.cs Thu Oct 18 06:39:20 2007
@@ -65,11 +65,8 @@
     ///         <term>InvalidEntryException</term>
     ///     </item>
     ///     <item>
-    ///         <term>1 gd:rem min=0</term>

-    ///         <term>*Use user's default settings</term>

-    ///         <term>No reminder</term>

-    ///         <term>InvalidEntryException</term>

-    ///     </item>
+    ///         <term>1 gd:rem min=0</term>
+    ///         <term>*Use user's default settings</term>
    ///         <term>No reminder</term>
    ///         <term>InvalidEntryException</term>
    ///     </item>
     ///     <item>
     ///         <term>1 gd:rem min=-1</term>
     ///         <term>*No reminder</term>

Modified: trunk/clients/cs/src/gphotos/albumentry.cs
==============================================================================
--- trunk/clients/cs/src/gphotos/albumentry.cs  (original)
+++ trunk/clients/cs/src/gphotos/albumentry.cs  Thu Oct 18 06:39:20 2007
@@ -19,8 +19,14 @@
 using System.Collections;
 using Google.GData.Client;
 using Google.GData.Extensions;
+#if WindowsCE || PocketPC
+#else
+using System.ComponentModel;
+#endif

-namespace Google.GData.Photos {
+
+namespace Google.GData.Photos
+{

     //////////////////////////////////////////////////////////////////////
     /// <summary>
@@ -65,6 +71,11 @@
          /// The album's access level. In this document, access level 
is also
         /// referred to as "visibility." Valid values are public or private.
         /// </summary>
+#if WindowsCE || PocketPC
+#else
+        [Category("Meta Album Data"),
+        Description("Specifies the access for the album.")]
+#endif
         public string Access
         {
             get
@@ -76,10 +87,108 @@
                 this.entry.setPhotoExtension(GPhotoNameTable.Access, value);
             }
         }
+
+
+        /// <summary>
+        /// The nickname of the author
+        /// </summary>
+#if WindowsCE || PocketPC
+#else
+        [Category("Base Album Data"),
+        Description("Specifies the author's nickname")]
+#endif
+        public string AlbumAuthorNickname
+        {
+            get
+            {
+                return 
this.entry.getPhotoExtensionValue(GPhotoNameTable.Nickname);
+            }
+            set
+            {
+                this.entry.setPhotoExtension(GPhotoNameTable.Nickname, value);
+            }
+        }
+
+        /// <summary>
+        /// The  author's name
+        /// </summary>
+#if WindowsCE || PocketPC
+#else
+        [Category("Base Album Data"),
+        Description("Specifies the author's name")]
+#endif
+        public string AlbumAuthor
+        {
+            get
+            {
+                AtomPersonCollection authors = this.entry.Authors;
+                if (authors != null && authors.Count >0)
+                {
+                    AtomPerson person = authors[0];
+                    return person.Name;
+                }
+                return "No Author given";
+
+            }
+            set
+            {
+                AtomPersonCollection authors = this.entry.Authors;
+                if (authors != null && authors.Count >0)
+                {
+                    AtomPerson person = authors[0];
+                    person.Name = value;
+                }
+            }
+        }
+
+#if WindowsCE || PocketPC
+#else
+        [Category("Base Album Data"),
+        Description("Specifies the name of the album.")]
+#endif
+        /// <summary>
+        /// The title of the album
+        /// </summary>
+        public string AlbumTitle
+        {
+            get
+            {
+                return this.entry.Title.Text;
+            }
+            set
+            {
+                this.entry.Title.Text = value;
+            }
+        }
+
+#if WindowsCE || PocketPC
+#else
+        [Category("Base Album Data"),
+        Description("Specifies the summary of the album.")]
+#endif
+        /// <summary>
+        /// The  summary of the album
+        /// </summary>
+        public string AlbumSummary
+        {
+            get
+            {
+                return this.entry.Summary.Text;
+            }
+            set
+            {
+                this.entry.Summary.Text = value;
+            }
+        }

         /// <summary>
         /// The number of bytes of storage that this album uses.
         /// </summary>
+#if WindowsCE || PocketPC
+#else
+        [Category("Meta Album Data"),
+        Description("Specifies the bytes used for the album.")]
+#endif
         public uint BytesUsed
         {
             get
@@ -95,6 +204,11 @@
         /// <summary>
         /// The user-specified location associated with the album
         /// </summary>
+#if WindowsCE || PocketPC
+#else
+        [Category("Base Album Data"),
+        Description("Specifies the location for the album.")]
+#endif
         public string Location
         {
             get
@@ -110,15 +224,21 @@
         /// <summary>
         /// The number of photos in the album.
         /// </summary>
+        ///
+#if WindowsCE || PocketPC
+#else
+        [Category("Meta Album Data"),
+        Description("Specifies the number of photos in the album.")]
+#endif
         public uint NumPhotos
         {
             get
              {
-                return 
Convert.ToUInt32(this.entry.getPhotoExtensionValue(GPhotoNameTable.BytesUsed));
+                return 
Convert.ToUInt32(this.entry.getPhotoExtensionValue(GPhotoNameTable.NumPhotos));
             }
             set
             {
-                
this.entry.setPhotoExtension(GPhotoNameTable.BytesUsed, 
Convert.ToString(value));
+                
this.entry.setPhotoExtension(GPhotoNameTable.NumPhotos, 
Convert.ToString(value));
             }
         }

@@ -128,6 +248,12 @@
         /// album (gphoto:maxPhotosPerAlbum) minus the number of photos
         /// currently in the album (gphoto:numphotos).
         /// </summary>
+
+#if WindowsCE || PocketPC
+#else
+        [Category("Meta Album Data"),
+        Description("Specifies the number of remaining photo uploads 
for the album.")]
+#endif
         public uint NumPhotosRemaining
         {
             get
@@ -145,6 +271,12 @@
          /// derived from the title. This is the name that should be 
used in all
         /// URLs involving the album.
         /// </summary>
+
+#if WindowsCE || PocketPC
+#else
+        [Category("Base Album Data"),
+        Description("Specifies the name for the album.")]
+#endif
         public string Name
         {
             get
@@ -160,6 +292,11 @@
         /// <summary>
         /// the number of comments on an album
         /// </summary>
+#if WindowsCE || PocketPC
+#else
+        [Category("Commenting"),
+        Description("Specifies the number of comments for the album.")]
+#endif
         public uint CommentCount
         {
             get
@@ -175,6 +312,12 @@
         /// <summary>
         /// is commenting enabled on an album
         /// </summary>
+
+#if WindowsCE || PocketPC
+#else
+        [Category("Commenting"),
+        Description("Comments enabled?")]
+#endif
         public bool CommentingEnabled
         {
             get
@@ -190,6 +333,12 @@
         /// <summary>
         /// the id of the album
         /// </summary>
+
+#if WindowsCE || PocketPC
+#else
+        [Category("Base Album Data"),
+        Description("Specifies the id for the album.")]
+#endif
         public string Id
         {
             get

Modified: trunk/clients/cs/src/gphotos/photoentry.cs
==============================================================================
--- trunk/clients/cs/src/gphotos/photoentry.cs  (original)
+++ trunk/clients/cs/src/gphotos/photoentry.cs  Thu Oct 18 06:39:20 2007
@@ -23,9 +23,13 @@
 using Google.GData.Extensions.MediaRss;
 using Google.GData.Extensions.Exif;
 using Google.GData.Extensions.Location;
+#if WindowsCE || PocketPC
+#else
+using System.ComponentModel;
+#endif

-
-namespace Google.GData.Photos {
+namespace Google.GData.Photos
+{


     //////////////////////////////////////////////////////////////////////
@@ -71,6 +75,53 @@
             }
         }

+
+
+#if WindowsCE || PocketPC
+#else
+        [Category("Base Photo Data"),
+        Description("Specifies the name of the photo.")]
+#endif
+        /// <summary>
+        /// The title of the photo
+        /// </summary>
+        public string PhotoTitle
+        {
+            get
+            {
+                return this.entry.Title.Text;
+            }
+            set
+            {
+                this.entry.Title.Text = value;
+            }
+        }
+#if WindowsCE || PocketPC
+#else
+        [Category("Base Photo Data"),
+        Description("Specifies the summary of the Photo.")]
+#endif
+        /// <summary>
+        /// The  summary of the Photo
+        /// </summary>
+        public string PhotoSummary
+        {
+            get
+            {
+                return this.entry.Summary.Text;
+            }
+            set
+            {
+                this.entry.Summary.Text = value;
+            }
+        }
+
+
+#if WindowsCE || PocketPC
+#else
+        [Category("Meta Photo Data"),
+        Description("The checksum on the photo.")]
+#endif
         /// <summary>
         /// The checksum on the photo. This optional field can be used by
          /// uploaders to associate a checksum with a photo to ease 
duplicate detection
@@ -87,6 +138,11 @@
             }
         }

+#if WindowsCE || PocketPC
+#else
+        [Category("Meta Photo Data"),
+        Description("The client application that created the photo.")]
+#endif
         /// <summary>
         /// The client application that created the photo. (Optional element.)
         /// </summary>
@@ -102,6 +158,11 @@
             }
         }

+#if WindowsCE || PocketPC
+#else
+        [Category("Basic Photo Data"),
+        Description("The height of the photo in pixels.")]
+#endif
         /// <summary>
         /// The height of the photo in pixels
         /// </summary>
@@ -117,6 +178,11 @@
             }
         }

+#if WindowsCE || PocketPC
+#else
+        [Category("Basic Photo Data"),
+        Description("The width of the photo in pixels.")]
+#endif
         /// <summary>
         /// The width of the photo in pixels
         /// </summary>
@@ -133,6 +199,11 @@
         }


+#if WindowsCE || PocketPC
+#else
+        [Category("Basic Photo Data"),
+        Description("The ordinal position of the photo in the parent album.")]
+#endif
         /// <summary>
         /// The ordinal position of the photo in the parent album
         /// </summary>
@@ -148,8 +219,14 @@
             }
         }

+#if WindowsCE || PocketPC
+#else
+        [Category("Basic Photo Data"),
+        Description("The rotation of the photo in degrees.")]
+#endif
         /// <summary>
-        /// The ordinal position of the photo in the parent album
+        /// The rotation of the photo in degrees, used to change the 
rotation of the photo. Will only be shown if
+        /// the rotation has not already been applied to the requested images.
         /// </summary>
         public int Rotation
         {
@@ -163,6 +240,11 @@
             }
         }

+#if WindowsCE || PocketPC
+#else
+        [Category("Basic Photo Data"),
+        Description("The size of the photo in bytes.")]
+#endif
         /// <summary>
         /// The size of the photo in bytes
         /// </summary>
@@ -178,16 +260,22 @@
             }
         }

+
+#if WindowsCE || PocketPC
+#else
+        [Category("Meta Photo Data"),
+        Description("The photo's timestamp")]
+#endif
         /// <summary>
          /// The photo's timestamp, represented as the number of 
milliseconds since
          /// January 1st, 1970. Contains the date of the photo either 
set externally
         /// or retrieved from the Exif data.
         /// </summary>
-        public long Timestamp
+        public ulong Timestamp
         {
             get
             {
-                return 
Convert.ToInt32(this.entry.getPhotoExtensionValue(GPhotoNameTable.Timestamp));
+                return 
Convert.ToUInt64(this.entry.getPhotoExtensionValue(GPhotoNameTable.Timestamp));
             }
             set
             {
@@ -195,6 +283,12 @@
             }
         }

+
+#if WindowsCE || PocketPC
+#else
+        [Category("Meta Photo Data"),
+        Description("The version number of the photo.")]
+#endif
         /// <summary>
          /// The version number of the photo. Version numbers are based 
on modification time,
          /// so they don't increment linearly. Note that if you try to 
update a photo using a
@@ -213,6 +307,11 @@
             }
         }

+#if WindowsCE || PocketPC
+#else
+        [Category("Meta Photo Data"),
+        Description("The albums ID.")]
+#endif
         /// <summary>
         /// The albums ID
         /// </summary>
@@ -228,6 +327,11 @@
             }
         }

+#if WindowsCE || PocketPC
+#else
+        [Category("Commenting"),
+        Description("the number of comments on a photo.")]
+#endif
         /// <summary>
         /// the number of comments on a photo
         /// </summary>
@@ -243,6 +347,11 @@
             }
         }

+#if WindowsCE || PocketPC
+#else
+        [Category("Commenting"),
+        Description("is commenting enabled on a photo.")]
+#endif
         /// <summary>
         /// is commenting enabled on a photo
         /// </summary>
@@ -258,6 +367,12 @@
             }
         }

+
+#if WindowsCE || PocketPC
+#else
+        [Category("Meta Photo Data"),
+        Description("the id of the photo.")]
+#endif
         /// <summary>
         /// the id of the photo
         /// </summary>

Modified: trunk/clients/cs/src/gphotos/picasaquery.cs
==============================================================================
--- trunk/clients/cs/src/gphotos/picasaquery.cs (original)
+++ trunk/clients/cs/src/gphotos/picasaquery.cs Thu Oct 18 06:39:20 2007
@@ -151,7 +151,17 @@
             return PicasaQuery.picasaBaseUri + userID;
         }

-
+        /// <summary>
+        /// convienience method to create an URI based on a userID
+        /// and an album name for a picasafeed
+        /// </summary>
+        /// <param name="userID"></param>
+        /// <param name="albumName"></param>
+        /// <returns>string</returns>
+        public static string CreatePicasaUri(string userID, string albumName)
+        {
+            return PicasaQuery.picasaBaseUri + userID 
+"/album/"+albumName  ;
+        }

         //////////////////////////////////////////////////////////////////////
         /// <summary>indicates the kinds to retrieve</summary>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Data API" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-help-dataapi?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to