Patch for 
+ Move ifolder from 'available on server' to 'on this computer' on
Download action.
+ During initial state (imm after download) disable 'share with',
'properties' menu  items.
+ Removed un-used functions.

Please Review.

Thanks,
Johnny
Index: LinuxClient/library/iFolderWindow.cs
===================================================================
--- LinuxClient/library/iFolderWindow.cs	(revision 6510)
+++ LinuxClient/library/iFolderWindow.cs	(working copy)
@@ -316,6 +316,7 @@
 			return vbox;
 		}
 		
+
 		/// <summary>
 		/// Creates the menubar for the iFolderWindow
 		/// </summary>
@@ -1381,7 +1382,7 @@
 						menu.Append (item_share);
 						item_share.Activated += new EventHandler(
 								OnShareSynchronizedFolder);
-
+						
 						if (!holder.iFolder.Role.Equals("Master"))
 						{
 							MenuItem item_revert = new MenuItem (
@@ -1407,6 +1408,18 @@
 						menu.Append (item_properties);
 						item_properties.Activated +=
 							new EventHandler(OnShowFolderProperties);
+
+						if (holder.State == iFolderState.Initial && holder.iFolder.State == "Available")
+						{
+						        //iFolder has not synced yet. So these functions needs to be disabled.
+						        item_share.Sensitive = false;
+							item_properties.Sensitive = false;
+						}
+						else 
+						{
+						        item_share.Sensitive = true;
+							item_properties.Sensitive = true;
+						}
 					}
 
 					menu.ShowAll();
@@ -2204,8 +2217,18 @@
 					// Show the Local iFolder Buttons
 					OpenSynchronizedFolderButton.Visible	= true;
 					SynchronizeNowButton.Visible			= true;
-					ShareSynchronizedFolderButton.Visible	= true;
-					ViewFolderPropertiesButton.Visible		= true;
+
+					if (holder.State == iFolderState.Initial && holder.iFolder.State == "Available")
+					{
+					        ShareSynchronizedFolderButton.Visible	= false;
+					        ViewFolderPropertiesButton.Visible	= false;
+					}
+					else 
+					{
+					        ShareSynchronizedFolderButton.Visible	= true;
+					        ViewFolderPropertiesButton.Visible	= true;
+					}
+
 					RemoveiFolderButton.Visible	= true;
 
 					if (holder.iFolder.HasConflicts)
@@ -2218,12 +2241,29 @@
 				
 				RemoveiFolderButton.Sensitive = true;
 			}
+
 		}
 		
 		private void UpdateMenuSensitivity(iFolderHolder holder)
 		{
 			if (holder != null)
 			{
+			        if((holder.iFolder != null) && (holder.State == iFolderState.Initial))
+ 				{
+				        ShareMenuItem.Sensitive = false;
+					OpenMenuItem.Sensitive = false;
+					SyncNowMenuItem.Sensitive = false;
+					ConflictMenuItem.Sensitive = false;
+					RevertMenuItem.Sensitive = false;
+					DeleteMenuItem.Sensitive = false;
+					RemoveMenuItem.Sensitive = false;
+					RemoveMenuItem.Visible = false;
+					PropMenuItem.Sensitive = false;
+					DownloadMenuItem.Sensitive = false;
+					return ;
+ 				}
+
+
 				if(	(holder.iFolder != null) &&
 									(holder.iFolder.HasConflicts) )
 				{
@@ -2236,18 +2276,31 @@
 //					ConflictButton.Sensitive = false;
 				}
 
+
 				if(!holder.iFolder.IsSubscription)
 				{
 					DownloadMenuItem.Sensitive = false;
-					ShareMenuItem.Sensitive = true;
+
+					if (holder.State == iFolderState.Initial && holder.iFolder.State == "Available")
+					{
+					        ShareMenuItem.Sensitive = false;
+						PropMenuItem.Sensitive = false;
+					}
+					else 
+					{
+					        ShareMenuItem.Sensitive = true;
+						PropMenuItem.Sensitive = true;
+					}
+
 					OpenMenuItem.Sensitive = true;
 					SyncNowMenuItem.Sensitive = true;
 					if (holder.iFolder.Role.Equals("Master"))
 						RevertMenuItem.Sensitive = false;
+
 					else
 						RevertMenuItem.Sensitive = true;
+
 					PropMenuItem.Sensitive = true;
-
 					DeleteMenuItem.Sensitive = false;
 					RemoveMenuItem.Sensitive = false;
 				}
@@ -2293,6 +2346,7 @@
 				PropMenuItem.Sensitive = false;
 				DownloadMenuItem.Sensitive = false;
 			}
+
 		}
 		
 		private void RefreshiFolders(bool bReadFromSimias)
Index: LinuxClient/library/iFolderData.cs
===================================================================
--- LinuxClient/library/iFolderData.cs	(revision 6516)
+++ LinuxClient/library/iFolderData.cs	(working copy)
@@ -452,6 +452,7 @@
 		//===================================================================
 		public void DeliFolder(string ifolderID)
 		{
+		    Console.WriteLine ("DeliFolder : reached ");
 			lock (instanceLock)
 			{
 				iFolderDeleteHandler deleteHandler =
@@ -847,19 +848,35 @@
 					return null;
 				}
 
-				if(newifolder.ID != ifolderID)
-				{
+ 				if(newifolder.ID != ifolderID)
+ 				{
 					subToiFolderMap.Remove(ifolderID);
-					if (newifolder.IsSubscription)
-					{
+ 					if (newifolder.IsSubscription)
+ 					{
 						subToiFolderMap[newifolder.ID]
 							= newifolder.CollectionID;
 					}
 				}
 
+
 				ifHolder = GetiFolder(ifolderID);
 				ifHolder.iFolder = newifolder;
 
+				if (ifolderIters.ContainsKey(ifolderID))
+				{
+					// Emit a TreeModel RowChanged Event
+					TreeIter iter = (TreeIter)
+					    ifolderIters[ifolderID];
+					TreePath path = iFolderListStore.GetPath(iter);
+					if (path != null)
+					{
+						iFolderChangedHandler changedHandler =
+							new iFolderChangedHandler(
+							path, iter, iFolderListStore);
+						GLib.Idle.Add(changedHandler.IdleHandler);
+					}
+				}
+
 				// FIXME: Figure out if there's a better way to cause the UI to update besides causing a Refresh
 				Refresh();
 
Index: WebService/iFolderService.cs
===================================================================
--- WebService/iFolderService.cs	(revision 6516)
+++ WebService/iFolderService.cs	(working copy)
@@ -1707,59 +1707,17 @@
 					throw new Exception("AtOrInsideCollectionPath");
 			}
 
-//			Collection c = DiscoveryFramework.CreateProxyCollection (store, DomainID, iFolderID, Path.GetFullPath(LocalPath));
-//			CreateProxy (store, DomainID, iFolderID, Path.GetFullPath (path));
 			DiscoveryFramework.CreateProxy (store, DomainID, iFolderID, Path.GetFullPath (path));
 
 			iFolderWeb ifolder = new iFolderWeb(cinfo);
-//			ifolder.State = "WaitConnect";
-//			iFolderWeb ifolder = new iFolderWeb(c);
+			ifolder.State = "Available";
+			ifolder.Role = "Master";
+			ifolder.UnManagedPath = path;
+			ifolder.IsSubscription = false;
+
 			return ifolder;
 		}
 
-		public void CreateProxy1 (Store store, string DomainID,string iFolderID, string localPath )
-		{
-			ArrayList commitList = new ArrayList();
-
-			CollectionInfo cinfo = DiscoveryFramework.GetCollectionInfo (iFolderID);
-
-			Collection c = new Collection(store, cinfo.Name,
-				cinfo.CollectionID, DomainID);
-
-			c.HostID = cinfo.HostID;
-			
-			commitList.Add(c);
-
-			// Create the member as well
-                        Domain domain = store.GetDomain(DomainID);
-			Member m = domain.GetCurrentMember ();
-
-			Member member = new Member(m.Name, cinfo.MemberNodeID, m.UserID, Simias.Storage.Access.Rights.Admin, null);
-			member.IsOwner = true;
-			member.Proxy = true;
-			commitList.Add(member);
-
-// 			// check for a dir node
-// 			if (((this.DirNodeID != null) && (this.DirNodeID.Length > 0))
-// 				&& (this.DirNodeName != null) && (this.DirNodeName.Length > 0)
-// 				&& (this.CollectionRoot != null) && (this.CollectionRoot.Length > 0))
-// 			{
-
-//			string path = Path.Combine(this.CollectionRoot, this.DirNodeName);
-
- 			DirNode dn = new DirNode(c, localPath, cinfo.DirNodeID);
-// 			DirNode dn = new DirNode(c, localPath);
-// //			DirNode dn = new DirNode(c, localPath, c.ID);
- 			if (!Directory.Exists(localPath)) Directory.CreateDirectory(localPath);
-
-// 			dn.Proxy = true;
- 			commitList.Add(dn);
-//			}
-
-			c.Proxy = true;
-			c.Commit((Node[]) commitList.ToArray(typeof(Node)));
-		}
-
 		/// <summary>
 		/// Accepts an Enterprise Subscription
 		/// </summary>
_______________________________________________
ifolder-dev mailing list
[email protected]
http://forge.novell.com/mailman/listinfo/ifolder-dev

Reply via email to