added ability to load/unload a repo

This commit is contained in:
David Sparer
2017-02-14 10:36:40 -07:00
parent ec0338bb30
commit cca2052b15
5 changed files with 52 additions and 9 deletions

View File

@@ -12,6 +12,7 @@ namespace mRemoteNG.Credential
IList<ICredentialRecord> CredentialRecords { get; }
void LoadCredentials();
void SaveCredentials();
void UnloadCredentials();
event EventHandler RepositoryConfigUpdated;
event EventHandler<CollectionUpdatedEventArgs<ICredentialRecord>> CredentialsUpdated;
}

View File

@@ -71,6 +71,12 @@ namespace mRemoteNG.Credential.Repositories
return new ICredentialRecord[0];
}
public void UnloadCredentials()
{
Config.Loaded = false;
CredentialRecords.Clear();
}
public void SaveCredentials()
{
if (!Config.Loaded) return;

View File

@@ -41,16 +41,16 @@
//
this.objectListView1.AllColumns.Add(this.olvColumnTitle);
this.objectListView1.AllColumns.Add(this.olvColumnProvider);
this.objectListView1.AllColumns.Add(this.olvColumnSource);
this.objectListView1.AllColumns.Add(this.olvColumnId);
this.objectListView1.AllColumns.Add(this.olvColumnIsLoaded);
this.objectListView1.AllColumns.Add(this.olvColumnId);
this.objectListView1.AllColumns.Add(this.olvColumnSource);
this.objectListView1.CellEditUseWholeCell = false;
this.objectListView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.olvColumnTitle,
this.olvColumnProvider,
this.olvColumnSource,
this.olvColumnIsLoaded,
this.olvColumnId,
this.olvColumnIsLoaded});
this.olvColumnSource});
this.objectListView1.CopySelectionOnControlC = false;
this.objectListView1.CopySelectionOnControlCUsesDragSource = false;
this.objectListView1.Cursor = System.Windows.Forms.Cursors.Default;
@@ -84,6 +84,7 @@
// olvColumnSource
//
this.olvColumnSource.AspectName = "";
this.olvColumnSource.DisplayIndex = 2;
this.olvColumnSource.Groupable = false;
this.olvColumnSource.Text = "Source";
//
@@ -93,6 +94,7 @@
//
// olvColumnIsLoaded
//
this.olvColumnIsLoaded.DisplayIndex = 4;
this.olvColumnIsLoaded.IsEditable = false;
this.olvColumnIsLoaded.Text = "Loaded";
//

View File

@@ -33,6 +33,7 @@
this.buttonRemove = new System.Windows.Forms.Button();
this.buttonEdit = new System.Windows.Forms.Button();
this.credentialRepositoryListView = new mRemoteNG.UI.Controls.CredentialRepositoryListView();
this.buttonToggleLoad = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// buttonAdd
@@ -40,7 +41,7 @@
this.buttonAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonAdd.Image = global::mRemoteNG.Resources.key_add;
this.buttonAdd.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.buttonAdd.Location = new System.Drawing.Point(105, 269);
this.buttonAdd.Location = new System.Drawing.Point(105, 237);
this.buttonAdd.Name = "buttonAdd";
this.buttonAdd.Size = new System.Drawing.Size(99, 32);
this.buttonAdd.TabIndex = 5;
@@ -54,7 +55,7 @@
this.buttonRemove.Enabled = false;
this.buttonRemove.Image = global::mRemoteNG.Resources.key_delete;
this.buttonRemove.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.buttonRemove.Location = new System.Drawing.Point(315, 269);
this.buttonRemove.Location = new System.Drawing.Point(315, 237);
this.buttonRemove.Name = "buttonRemove";
this.buttonRemove.Size = new System.Drawing.Size(99, 32);
this.buttonRemove.TabIndex = 6;
@@ -67,7 +68,7 @@
this.buttonEdit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonEdit.Enabled = false;
this.buttonEdit.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.buttonEdit.Location = new System.Drawing.Point(210, 269);
this.buttonEdit.Location = new System.Drawing.Point(210, 237);
this.buttonEdit.Name = "buttonEdit";
this.buttonEdit.Size = new System.Drawing.Size(99, 32);
this.buttonEdit.TabIndex = 8;
@@ -84,19 +85,34 @@
this.credentialRepositoryListView.DoubleClickHandler = null;
this.credentialRepositoryListView.Location = new System.Drawing.Point(0, 0);
this.credentialRepositoryListView.Name = "credentialRepositoryListView";
this.credentialRepositoryListView.Size = new System.Drawing.Size(417, 263);
this.credentialRepositoryListView.RepositoryFilter = null;
this.credentialRepositoryListView.Size = new System.Drawing.Size(417, 231);
this.credentialRepositoryListView.TabIndex = 9;
//
// buttonToggleLoad
//
this.buttonToggleLoad.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonToggleLoad.Enabled = false;
this.buttonToggleLoad.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.buttonToggleLoad.Location = new System.Drawing.Point(3, 237);
this.buttonToggleLoad.Name = "buttonToggleLoad";
this.buttonToggleLoad.Size = new System.Drawing.Size(99, 32);
this.buttonToggleLoad.TabIndex = 10;
this.buttonToggleLoad.Text = "Load";
this.buttonToggleLoad.UseVisualStyleBackColor = true;
this.buttonToggleLoad.Click += new System.EventHandler(this.buttonToggleLoad_Click);
//
// CredentialRepositoriesPage
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.buttonToggleLoad);
this.Controls.Add(this.credentialRepositoryListView);
this.Controls.Add(this.buttonEdit);
this.Controls.Add(this.buttonAdd);
this.Controls.Add(this.buttonRemove);
this.Name = "CredentialRepositoriesPage";
this.Size = new System.Drawing.Size(417, 304);
this.Size = new System.Drawing.Size(417, 272);
this.ResumeLayout(false);
}
@@ -107,5 +123,6 @@
private System.Windows.Forms.Button buttonRemove;
private System.Windows.Forms.Button buttonEdit;
private Controls.CredentialRepositoryListView credentialRepositoryListView;
private System.Windows.Forms.Button buttonToggleLoad;
}
}

View File

@@ -34,6 +34,8 @@ namespace mRemoteNG.UI.Forms.CredentialManagerPages
var selectedRepository = credentialRepositoryListView.SelectedRepository;
buttonRemove.Enabled = selectedRepository != null;
buttonEdit.Enabled = selectedRepository != null;
buttonToggleLoad.Enabled = selectedRepository != null;
UpdateLoadToggleButton(selectedRepository);
}
private void buttonAdd_Click(object sender, EventArgs e)
@@ -81,5 +83,20 @@ namespace mRemoteNG.UI.Forms.CredentialManagerPages
if (_providerCatalog.Contains(selectedRepository.Config.Id))
_providerCatalog.RemoveProvider(selectedRepository);
}
private void UpdateLoadToggleButton(ICredentialRepository selectedRepository)
{
if (selectedRepository == null) return;
buttonToggleLoad.Text = selectedRepository.Config.Loaded ? "Unload" : "Load";
}
private void buttonToggleLoad_Click(object sender, EventArgs e)
{
var selectedRepository = credentialRepositoryListView.SelectedRepository;
if (selectedRepository.Config.Loaded)
selectedRepository.UnloadCredentials();
else
selectedRepository.LoadCredentials();
}
}
}