public RepositoryMenuItem(Repository repo, StatusIconController controller) : base(repo.Name) {
this.SetProperty("always-show-image", new GLib.Value(true));
this.repository = repo;
this.controller = controller;
this.Image = new Image(UIHelpers.GetIcon("dataspacesync-folder", 16));
this.repository.PropertyChanged += (object sender, System.ComponentModel.PropertyChangedEventArgs e) => {
if (e.PropertyName == CmisSync.Lib.Utils.NameOf((Repository r) => r.Status)) {
this.Status = this.repository.Status;
}
if (e.PropertyName == CmisSync.Lib.Utils.NameOf((Repository r) => r.LastFinishedSync)) {
this.changesFoundAt = this.repository.LastFinishedSync;
this.UpdateStatusText();
}
if (e.PropertyName == CmisSync.Lib.Utils.NameOf((Repository r) => r.NumberOfChanges)) {
this.changesFound = this.repository.NumberOfChanges;
this.UpdateStatusText();
}
};
this.openLocalFolderItem = new CmisSyncMenuItem(
CmisSync.Properties_Resources.OpenLocalFolder) {
Image = new Image(UIHelpers.GetIcon("dataspacesync-folder", 16))
};
this.openLocalFolderItem.Activated += this.OpenFolderDelegate();
this.editItem = new CmisSyncMenuItem(CmisSync.Properties_Resources.Settings);
this.editItem.Activated += this.EditFolderDelegate();
this.suspendItem = new CmisSyncMenuItem(Properties_Resources.PauseSync);
this.Status = this.repository.Status;
this.suspendItem.Activated += this.SuspendSyncFolderDelegate();
this.statusItem = new MenuItem(Properties_Resources.StatusSearchingForChanges) {
Sensitive = false
};
this.removeFolderFromSyncItem = new CmisSyncMenuItem(
CmisSync.Properties_Resources.RemoveFolderFromSync) {
Image = new Image(UIHelpers.GetIcon("dataspacesync-deleted", 12))
};
this.removeFolderFromSyncItem.Activated += this.RemoveFolderFromSyncDelegate();
this.separator1 = new SeparatorMenuItem();
this.separator2 = new SeparatorMenuItem();
var subMenu = new Menu();
subMenu.Add(this.statusItem);
subMenu.Add(this.separator1);
subMenu.Add(this.openLocalFolderItem);
subMenu.Add(this.suspendItem);
subMenu.Add(this.editItem);
subMenu.Add(this.separator2);
subMenu.Add(this.removeFolderFromSyncItem);
this.Submenu = subMenu;
}