NotifyOfPropertyChange(() => Checks);\r
}\r
\r
- public SelectiveSynchViewModel(/*PithosMonitor monitor,*/ IEventAggregator events, AccountSettings account, string apiKey)\r
+ public SelectiveSynchViewModel(/*PithosMonitor monitor,*/ IEventAggregator events, AccountSettings account, string apiKey,bool forSelectiveActivation)\r
{\r
Account = account;\r
AccountName = account.AccountName;\r
_events = events;\r
_apiKey = apiKey;\r
//IsEnabled = account.SelectiveSyncEnabled;\r
- TaskEx.Run(LoadRootNode);\r
+ TaskEx.Run(()=>LoadRootNode(forSelectiveActivation));\r
}\r
\r
- private void LoadRootNode()\r
+ private void LoadRootNode(bool forSelectiveActivation)\r
{ \r
//TODO: Check this\r
var client = new CloudFilesClient(AccountName,_apiKey){AuthenticationUrl=Account.ServerUrl,UsePithos=true};\r
RootNodes.Add(othersNode);\r
});\r
\r
- SetInitialSelections(Account);\r
+ SetInitialSelections(Account,forSelectiveActivation);\r
\r
IsBusy = false;\r
}\r
}\r
}\r
\r
- private void SetInitialSelections(AccountSettings account)\r
+ private void SetInitialSelections(AccountSettings account,bool forSelectiveActivation)\r
{\r
var selections = account.SelectiveFolders;\r
\r
//var shouldBeChecked = allNodes.Except(selects).ToList();\r
\r
//WARNING: Using IsChecked marks the item as ADDED\r
- selects.Apply(record=>record.IsExplicitlyChecked=true);\r
+ selects.Apply(record => record.IsExplicitlyChecked = !forSelectiveActivation);\r
+\r
+ //If any of the root nodes has at least one selected child, set it to gray\r
+ var selectedRoots = from DirectoryRecord rootRecord in RootNodes\r
+ from DirectoryRecord record in rootRecord\r
+ where record.IsChecked==true\r
+ select rootRecord;\r
+ selectedRoots.Apply(record => record.IsExplicitlyChecked = !forSelectiveActivation);\r
\r
//shouldBeChecked.Apply(record => record.IsChecked = true);\r
- \r
- \r
+\r
+\r
\r
}\r
\r