Can now select a data storage.

This commit is contained in:
Fey 2026-01-25 22:57:06 +01:00
parent 7094ae45d2
commit c83d69a200
4 changed files with 558 additions and 462 deletions

View File

@ -12,6 +12,7 @@ namespace Voile.Storage.Sqlite
{ {
[VoilePlugin] [VoilePlugin]
[VoilePluginId(3)] [VoilePluginId(3)]
[DisplayName("SQLite")]
public class SqliteDataStorageFactory : IVoileDataStorageFactory public class SqliteDataStorageFactory : IVoileDataStorageFactory
{ {
public IVoileDataStorage CreateDataStorage() public IVoileDataStorage CreateDataStorage()

View File

@ -20,294 +20,330 @@
base.Dispose(disposing); base.Dispose(disposing);
} }
#region Windows Form Designer generated code #region Windows Form Designer generated code
/// <summary> /// <summary>
/// Required method for Designer support - do not modify /// Required method for Designer support - do not modify
/// the contents of this method with the code editor. /// the contents of this method with the code editor.
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FirstRunWizard)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FirstRunWizard));
pictureBox1 = new PictureBox(); pictureBox1 = new PictureBox();
tabControl1 = new TabControl(); tabControl1 = new TabControl();
tabPageWelcome = new TabPage(); tabPageWelcome = new TabPage();
label2 = new Label(); label2 = new Label();
label1 = new Label(); label1 = new Label();
radioButtonAmExpert = new RadioButton(); radioButtonAmExpert = new RadioButton();
radioButtonAmBegginer = new RadioButton(); radioButtonAmBegginer = new RadioButton();
tabPageLicense = new TabPage(); tabPageLicense = new TabPage();
pictureBox2 = new PictureBox(); pictureBox2 = new PictureBox();
label4 = new Label(); label4 = new Label();
radioButtonNoLicense = new RadioButton(); radioButtonNoLicense = new RadioButton();
buttonLoadLicenseFile = new Button(); buttonLoadLicenseFile = new Button();
buttonValidateLicense = new Button(); buttonValidateLicense = new Button();
textBox1 = new TextBox(); textBox1 = new TextBox();
radioButtonHasLicense = new RadioButton(); radioButtonHasLicense = new RadioButton();
label3 = new Label(); label3 = new Label();
buttonNext = new Button(); tabPagePickDataStorage = new TabPage();
buttonBack = new Button(); labelDataStorageHint = new Label();
openFileDialogCertificate = new OpenFileDialog(); label5 = new Label();
tabPage1 = new TabPage(); buttonNext = new Button();
label5 = new Label(); buttonBack = new Button();
((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit(); openFileDialogCertificate = new OpenFileDialog();
tabControl1.SuspendLayout(); tabPageConfigureDataStorage = new TabPage();
tabPageWelcome.SuspendLayout(); label6 = new Label();
tabPageLicense.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit();
((System.ComponentModel.ISupportInitialize)pictureBox2).BeginInit(); tabControl1.SuspendLayout();
tabPage1.SuspendLayout(); tabPageWelcome.SuspendLayout();
SuspendLayout(); tabPageLicense.SuspendLayout();
// ((System.ComponentModel.ISupportInitialize)pictureBox2).BeginInit();
// pictureBox1 tabPagePickDataStorage.SuspendLayout();
// tabPageConfigureDataStorage.SuspendLayout();
pictureBox1.Image = Properties.Resources.technlgy; SuspendLayout();
pictureBox1.Location = new Point(12, 12); //
pictureBox1.Name = "pictureBox1"; // pictureBox1
pictureBox1.Size = new Size(120, 90); //
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom; pictureBox1.Image = Properties.Resources.technlgy;
pictureBox1.TabIndex = 0; pictureBox1.Location = new Point(12, 12);
pictureBox1.TabStop = false; pictureBox1.Name = "pictureBox1";
// pictureBox1.Size = new Size(120, 90);
// tabControl1 pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
// pictureBox1.TabIndex = 0;
tabControl1.Controls.Add(tabPageWelcome); pictureBox1.TabStop = false;
tabControl1.Controls.Add(tabPageLicense); //
tabControl1.Controls.Add(tabPage1); // tabControl1
tabControl1.Location = new Point(138, 12); //
tabControl1.Name = "tabControl1"; tabControl1.Controls.Add(tabPageWelcome);
tabControl1.SelectedIndex = 0; tabControl1.Controls.Add(tabPageLicense);
tabControl1.Size = new Size(356, 412); tabControl1.Controls.Add(tabPagePickDataStorage);
tabControl1.TabIndex = 1; tabControl1.Controls.Add(tabPageConfigureDataStorage);
// tabControl1.Location = new Point(138, 12);
// tabPageWelcome tabControl1.Name = "tabControl1";
// tabControl1.SelectedIndex = 0;
tabPageWelcome.Controls.Add(label2); tabControl1.Size = new Size(356, 412);
tabPageWelcome.Controls.Add(label1); tabControl1.TabIndex = 1;
tabPageWelcome.Controls.Add(radioButtonAmExpert); //
tabPageWelcome.Controls.Add(radioButtonAmBegginer); // tabPageWelcome
tabPageWelcome.Location = new Point(4, 24); //
tabPageWelcome.Name = "tabPageWelcome"; tabPageWelcome.Controls.Add(label2);
tabPageWelcome.Padding = new Padding(3); tabPageWelcome.Controls.Add(label1);
tabPageWelcome.Size = new Size(348, 384); tabPageWelcome.Controls.Add(radioButtonAmExpert);
tabPageWelcome.TabIndex = 0; tabPageWelcome.Controls.Add(radioButtonAmBegginer);
tabPageWelcome.Text = "Welcome!"; tabPageWelcome.Location = new Point(4, 24);
tabPageWelcome.UseVisualStyleBackColor = true; tabPageWelcome.Name = "tabPageWelcome";
// tabPageWelcome.Padding = new Padding(3);
// label2 tabPageWelcome.Size = new Size(348, 384);
// tabPageWelcome.TabIndex = 0;
label2.AutoSize = true; tabPageWelcome.Text = "Welcome!";
label2.Location = new Point(6, 3); tabPageWelcome.UseVisualStyleBackColor = true;
label2.Name = "label2"; //
label2.Size = new Size(328, 240); // label2
label2.TabIndex = 3; //
label2.Text = resources.GetString("label2.Text"); label2.AutoSize = true;
// label2.Location = new Point(6, 3);
// label1 label2.Name = "label2";
// label2.Size = new Size(329, 240);
label1.AutoSize = true; label2.TabIndex = 3;
label1.Location = new Point(6, 308); label2.Text = resources.GetString("label2.Text");
label1.Name = "label1"; //
label1.Size = new Size(202, 15); // label1
label1.TabIndex = 2; //
label1.Text = "(You can change these options later!)"; label1.AutoSize = true;
// label1.Location = new Point(6, 308);
// radioButtonAmExpert label1.Name = "label1";
// label1.Size = new Size(202, 15);
radioButtonAmExpert.AutoSize = true; label1.TabIndex = 2;
radioButtonAmExpert.Location = new Point(6, 271); label1.Text = "(You can change these options later!)";
radioButtonAmExpert.Name = "radioButtonAmExpert"; //
radioButtonAmExpert.Size = new Size(299, 34); // radioButtonAmExpert
radioButtonAmExpert.TabIndex = 1; //
radioButtonAmExpert.Text = "Im an expert. Let me choose my own database and \r\nstorage options."; radioButtonAmExpert.AutoSize = true;
radioButtonAmExpert.UseVisualStyleBackColor = true; radioButtonAmExpert.Location = new Point(6, 271);
radioButtonAmExpert.CheckedChanged += radioButtonAmExpert_CheckedChanged; radioButtonAmExpert.Name = "radioButtonAmExpert";
// radioButtonAmExpert.Size = new Size(298, 34);
// radioButtonAmBegginer radioButtonAmExpert.TabIndex = 1;
// radioButtonAmExpert.Text = "Im an expert. Let me choose my own database and \r\nstorage options.";
radioButtonAmBegginer.AutoSize = true; radioButtonAmExpert.UseVisualStyleBackColor = true;
radioButtonAmBegginer.Location = new Point(6, 246); radioButtonAmExpert.CheckedChanged += radioButtonAmExpert_CheckedChanged;
radioButtonAmBegginer.Name = "radioButtonAmBegginer"; //
radioButtonAmBegginer.Size = new Size(298, 19); // radioButtonAmBegginer
radioButtonAmBegginer.TabIndex = 0; //
radioButtonAmBegginer.Text = "Im a beginner. Set things up for me automatically. "; radioButtonAmBegginer.AutoSize = true;
radioButtonAmBegginer.UseVisualStyleBackColor = true; radioButtonAmBegginer.Location = new Point(6, 246);
radioButtonAmBegginer.CheckedChanged += radioButtonAmBegginer_CheckedChanged; radioButtonAmBegginer.Name = "radioButtonAmBegginer";
// radioButtonAmBegginer.Size = new Size(298, 19);
// tabPageLicense radioButtonAmBegginer.TabIndex = 0;
// radioButtonAmBegginer.Text = "Im a beginner. Set things up for me automatically. ";
tabPageLicense.Controls.Add(pictureBox2); radioButtonAmBegginer.UseVisualStyleBackColor = true;
tabPageLicense.Controls.Add(label4); radioButtonAmBegginer.CheckedChanged += radioButtonAmBegginer_CheckedChanged;
tabPageLicense.Controls.Add(radioButtonNoLicense); //
tabPageLicense.Controls.Add(buttonLoadLicenseFile); // tabPageLicense
tabPageLicense.Controls.Add(buttonValidateLicense); //
tabPageLicense.Controls.Add(textBox1); tabPageLicense.Controls.Add(pictureBox2);
tabPageLicense.Controls.Add(radioButtonHasLicense); tabPageLicense.Controls.Add(label4);
tabPageLicense.Controls.Add(label3); tabPageLicense.Controls.Add(radioButtonNoLicense);
tabPageLicense.Location = new Point(4, 24); tabPageLicense.Controls.Add(buttonLoadLicenseFile);
tabPageLicense.Name = "tabPageLicense"; tabPageLicense.Controls.Add(buttonValidateLicense);
tabPageLicense.Padding = new Padding(3); tabPageLicense.Controls.Add(textBox1);
tabPageLicense.Size = new Size(348, 384); tabPageLicense.Controls.Add(radioButtonHasLicense);
tabPageLicense.TabIndex = 1; tabPageLicense.Controls.Add(label3);
tabPageLicense.Text = "License"; tabPageLicense.Location = new Point(4, 24);
tabPageLicense.UseVisualStyleBackColor = true; tabPageLicense.Name = "tabPageLicense";
// tabPageLicense.Padding = new Padding(3);
// pictureBox2 tabPageLicense.Size = new Size(348, 384);
// tabPageLicense.TabIndex = 1;
pictureBox2.Image = Properties.Resources.SETUPAPI_18_1_32x32x4; tabPageLicense.Text = "License";
pictureBox2.Location = new Point(127, 262); tabPageLicense.UseVisualStyleBackColor = true;
pictureBox2.Name = "pictureBox2"; //
pictureBox2.Size = new Size(32, 32); // pictureBox2
pictureBox2.TabIndex = 7; //
pictureBox2.TabStop = false; pictureBox2.Image = Properties.Resources.SETUPAPI_18_1_32x32x4;
pictureBox2.Click += pictureBox2_Click; pictureBox2.Location = new Point(127, 262);
// pictureBox2.Name = "pictureBox2";
// label4 pictureBox2.Size = new Size(32, 32);
// pictureBox2.TabIndex = 7;
label4.AutoSize = true; pictureBox2.TabStop = false;
label4.Location = new Point(22, 344); pictureBox2.Click += pictureBox2_Click;
label4.Name = "label4"; //
label4.Size = new Size(299, 30); // label4
label4.TabIndex = 6; //
label4.Text = "(You can also change between Licensed and Shareware \r\nmode later!)"; label4.AutoSize = true;
// label4.Location = new Point(22, 344);
// radioButtonNoLicense label4.Name = "label4";
// label4.Size = new Size(299, 30);
radioButtonNoLicense.AutoSize = true; label4.TabIndex = 6;
radioButtonNoLicense.Location = new Point(6, 307); label4.Text = "(You can also change between Licensed and Shareware \r\nmode later!)";
radioButtonNoLicense.Name = "radioButtonNoLicense"; //
radioButtonNoLicense.Size = new Size(309, 34); // radioButtonNoLicense
radioButtonNoLicense.TabIndex = 5; //
radioButtonNoLicense.Text = "No license yet — Id like to use the shareware version, \r\nor request a license later."; radioButtonNoLicense.AutoSize = true;
radioButtonNoLicense.UseVisualStyleBackColor = true; radioButtonNoLicense.Location = new Point(6, 307);
radioButtonNoLicense.CheckedChanged += radioButtonNoLicense_CheckedChanged; radioButtonNoLicense.Name = "radioButtonNoLicense";
// radioButtonNoLicense.Size = new Size(309, 34);
// buttonLoadLicenseFile radioButtonNoLicense.TabIndex = 5;
// radioButtonNoLicense.Text = "No license yet — Id like to use the shareware version, \r\nor request a license later.";
buttonLoadLicenseFile.Enabled = false; radioButtonNoLicense.UseVisualStyleBackColor = true;
buttonLoadLicenseFile.Location = new Point(246, 262); radioButtonNoLicense.CheckedChanged += radioButtonNoLicense_CheckedChanged;
buttonLoadLicenseFile.Name = "buttonLoadLicenseFile"; //
buttonLoadLicenseFile.Size = new Size(75, 39); // buttonLoadLicenseFile
buttonLoadLicenseFile.TabIndex = 4; //
buttonLoadLicenseFile.Text = "Load License File"; buttonLoadLicenseFile.Enabled = false;
buttonLoadLicenseFile.UseVisualStyleBackColor = true; buttonLoadLicenseFile.Location = new Point(246, 262);
buttonLoadLicenseFile.Click += buttonLoadLicenseFile_Click; buttonLoadLicenseFile.Name = "buttonLoadLicenseFile";
// buttonLoadLicenseFile.Size = new Size(75, 39);
// buttonValidateLicense buttonLoadLicenseFile.TabIndex = 4;
// buttonLoadLicenseFile.Text = "Load License File";
buttonValidateLicense.Enabled = false; buttonLoadLicenseFile.UseVisualStyleBackColor = true;
buttonValidateLicense.Location = new Point(165, 262); buttonLoadLicenseFile.Click += buttonLoadLicenseFile_Click;
buttonValidateLicense.Name = "buttonValidateLicense"; //
buttonValidateLicense.Size = new Size(75, 39); // buttonValidateLicense
buttonValidateLicense.TabIndex = 3; //
buttonValidateLicense.Text = "Validate License"; buttonValidateLicense.Enabled = false;
buttonValidateLicense.UseVisualStyleBackColor = true; buttonValidateLicense.Location = new Point(165, 262);
buttonValidateLicense.Click += buttonValidateLicense_Click; buttonValidateLicense.Name = "buttonValidateLicense";
// buttonValidateLicense.Size = new Size(75, 39);
// textBox1 buttonValidateLicense.TabIndex = 3;
// buttonValidateLicense.Text = "Validate License";
textBox1.Enabled = false; buttonValidateLicense.UseVisualStyleBackColor = true;
textBox1.Location = new Point(17, 233); buttonValidateLicense.Click += buttonValidateLicense_Click;
textBox1.Name = "textBox1"; //
textBox1.Size = new Size(304, 23); // textBox1
textBox1.TabIndex = 2; //
// textBox1.Enabled = false;
// radioButtonHasLicense textBox1.Location = new Point(17, 233);
// textBox1.Name = "textBox1";
radioButtonHasLicense.AutoSize = true; textBox1.Size = new Size(304, 23);
radioButtonHasLicense.Location = new Point(3, 208); textBox1.TabIndex = 2;
radioButtonHasLicense.Name = "radioButtonHasLicense"; //
radioButtonHasLicense.Size = new Size(189, 19); // radioButtonHasLicense
radioButtonHasLicense.TabIndex = 1; //
radioButtonHasLicense.Text = "Yes, I have a license file to load."; radioButtonHasLicense.AutoSize = true;
radioButtonHasLicense.UseVisualStyleBackColor = true; radioButtonHasLicense.Location = new Point(3, 208);
radioButtonHasLicense.CheckedChanged += radioButton3_CheckedChanged; radioButtonHasLicense.Name = "radioButtonHasLicense";
// radioButtonHasLicense.Size = new Size(189, 19);
// label3 radioButtonHasLicense.TabIndex = 1;
// radioButtonHasLicense.Text = "Yes, I have a license file to load.";
label3.AutoSize = true; radioButtonHasLicense.UseVisualStyleBackColor = true;
label3.Location = new Point(6, 3); radioButtonHasLicense.CheckedChanged += radioButton3_CheckedChanged;
label3.Name = "label3"; //
label3.Size = new Size(337, 120); // label3
label3.TabIndex = 0; //
label3.Text = resources.GetString("label3.Text"); label3.AutoSize = true;
// label3.Location = new Point(6, 3);
// buttonNext label3.Name = "label3";
// label3.Size = new Size(337, 120);
buttonNext.Enabled = false; label3.TabIndex = 0;
buttonNext.Location = new Point(419, 430); label3.Text = resources.GetString("label3.Text");
buttonNext.Name = "buttonNext"; //
buttonNext.Size = new Size(75, 23); // tabPagePickDataStorage
buttonNext.TabIndex = 2; //
buttonNext.Text = "Next >"; tabPagePickDataStorage.Controls.Add(labelDataStorageHint);
buttonNext.UseVisualStyleBackColor = true; tabPagePickDataStorage.Controls.Add(label5);
buttonNext.Click += buttonNext_Click; tabPagePickDataStorage.Location = new Point(4, 24);
// tabPagePickDataStorage.Name = "tabPagePickDataStorage";
// buttonBack tabPagePickDataStorage.Size = new Size(348, 384);
// tabPagePickDataStorage.TabIndex = 2;
buttonBack.Enabled = false; tabPagePickDataStorage.Text = "Pick Data Storage";
buttonBack.Location = new Point(338, 430); tabPagePickDataStorage.UseVisualStyleBackColor = true;
buttonBack.Name = "buttonBack"; //
buttonBack.Size = new Size(75, 23); // labelDataStorageHint
buttonBack.TabIndex = 3; //
buttonBack.Text = "< Back"; labelDataStorageHint.AutoSize = true;
buttonBack.UseVisualStyleBackColor = true; labelDataStorageHint.Location = new Point(3, 165);
// labelDataStorageHint.Name = "labelDataStorageHint";
// openFileDialogCertificate labelDataStorageHint.Size = new Size(124, 15);
// labelDataStorageHint.TabIndex = 1;
openFileDialogCertificate.DefaultExt = "cer"; labelDataStorageHint.Text = "DATA_STORAGE_HINT";
openFileDialogCertificate.FileName = "openFileDialog1"; //
openFileDialogCertificate.Filter = "X.509 Certificate (*.cer)|*.cer"; // label5
openFileDialogCertificate.Title = "Open Voile License File"; //
// label5.AutoSize = true;
// tabPage1 label5.Location = new Point(3, 0);
// label5.Name = "label5";
tabPage1.Controls.Add(label5); label5.Size = new Size(347, 165);
tabPage1.Location = new Point(4, 24); label5.TabIndex = 0;
tabPage1.Name = "tabPage1"; label5.Text = resources.GetString("label5.Text");
tabPage1.Size = new Size(348, 384); //
tabPage1.TabIndex = 2; // buttonNext
tabPage1.Text = "Pick Data Storage"; //
tabPage1.UseVisualStyleBackColor = true; buttonNext.Enabled = false;
// buttonNext.Location = new Point(419, 430);
// label5 buttonNext.Name = "buttonNext";
// buttonNext.Size = new Size(75, 23);
label5.AutoSize = true; buttonNext.TabIndex = 2;
label5.Location = new Point(3, 0); buttonNext.Text = "Next >";
label5.Name = "label5"; buttonNext.UseVisualStyleBackColor = true;
label5.Size = new Size(347, 165); buttonNext.Click += buttonNext_Click;
label5.TabIndex = 0; //
label5.Text = resources.GetString("label5.Text"); // buttonBack
// //
// FirstRunWizard buttonBack.Enabled = false;
// buttonBack.Location = new Point(338, 430);
AutoScaleDimensions = new SizeF(7F, 15F); buttonBack.Name = "buttonBack";
AutoScaleMode = AutoScaleMode.Font; buttonBack.Size = new Size(75, 23);
ClientSize = new Size(502, 465); buttonBack.TabIndex = 3;
Controls.Add(buttonBack); buttonBack.Text = "< Back";
Controls.Add(buttonNext); buttonBack.UseVisualStyleBackColor = true;
Controls.Add(tabControl1); //
Controls.Add(pictureBox1); // openFileDialogCertificate
FormBorderStyle = FormBorderStyle.FixedSingle; //
MaximizeBox = false; openFileDialogCertificate.DefaultExt = "cer";
MinimizeBox = false; openFileDialogCertificate.FileName = "openFileDialog1";
Name = "FirstRunWizard"; openFileDialogCertificate.Filter = "X.509 Certificate (*.cer)|*.cer";
ShowIcon = false; openFileDialogCertificate.Title = "Open Voile License File";
Text = "Voile - First Run Wizard"; //
((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit(); // tabPageConfigureDataStorage
tabControl1.ResumeLayout(false); //
tabPageWelcome.ResumeLayout(false); tabPageConfigureDataStorage.Controls.Add(label6);
tabPageWelcome.PerformLayout(); tabPageConfigureDataStorage.Location = new Point(4, 24);
tabPageLicense.ResumeLayout(false); tabPageConfigureDataStorage.Name = "tabPageConfigureDataStorage";
tabPageLicense.PerformLayout(); tabPageConfigureDataStorage.Size = new Size(348, 384);
((System.ComponentModel.ISupportInitialize)pictureBox2).EndInit(); tabPageConfigureDataStorage.TabIndex = 3;
tabPage1.ResumeLayout(false); tabPageConfigureDataStorage.Text = "Configure Date Storage";
tabPage1.PerformLayout(); tabPageConfigureDataStorage.UseVisualStyleBackColor = true;
ResumeLayout(false); //
} // label6
//
label6.AutoSize = true;
label6.Location = new Point(3, 0);
label6.Name = "label6";
label6.Size = new Size(38, 15);
label6.TabIndex = 0;
label6.Text = "label6";
//
// FirstRunWizard
//
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(502, 465);
Controls.Add(buttonBack);
Controls.Add(buttonNext);
Controls.Add(tabControl1);
Controls.Add(pictureBox1);
FormBorderStyle = FormBorderStyle.FixedSingle;
MaximizeBox = false;
MinimizeBox = false;
Name = "FirstRunWizard";
ShowIcon = false;
Text = "Voile - First Run Wizard";
((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
tabControl1.ResumeLayout(false);
tabPageWelcome.ResumeLayout(false);
tabPageWelcome.PerformLayout();
tabPageLicense.ResumeLayout(false);
tabPageLicense.PerformLayout();
((System.ComponentModel.ISupportInitialize)pictureBox2).EndInit();
tabPagePickDataStorage.ResumeLayout(false);
tabPagePickDataStorage.PerformLayout();
tabPageConfigureDataStorage.ResumeLayout(false);
tabPageConfigureDataStorage.PerformLayout();
ResumeLayout(false);
}
#endregion #endregion
private PictureBox pictureBox1; private PictureBox pictureBox1;
private TabControl tabControl1; private TabControl tabControl1;
private TabPage tabPageWelcome; private TabPage tabPageWelcome;
private TabPage tabPageLicense; private TabPage tabPageLicense;
@ -326,7 +362,10 @@
private Label label4; private Label label4;
private PictureBox pictureBox2; private PictureBox pictureBox2;
private OpenFileDialog openFileDialogCertificate; private OpenFileDialog openFileDialogCertificate;
private TabPage tabPage1; private TabPage tabPagePickDataStorage;
private Label label5; private Label label5;
} private Label labelDataStorageHint;
private TabPage tabPageConfigureDataStorage;
private Label label6;
}
} }

View File

@ -33,8 +33,10 @@ namespace Voile
private int licenseState; private int licenseState;
private X509Certificate licenseCertificate; private X509Certificate licenseCertificate;
private bool sharewareMode; private bool sharewareMode;
private VoilePluginInfo selectedDataStorage;
private bool dataStorageRadioButtonsGenerated;
public void DisplayTabPage(int target, bool isGoingBack = false) public void DisplayTabPage(int target, bool isGoingBack = false)
{ {
@ -113,8 +115,12 @@ namespace Voile
buttonNext.Enabled = (sharewareMode) | (licenseState == 6); buttonNext.Enabled = (sharewareMode) | (licenseState == 6);
break; break;
case 2: case 2:
labelDataStorageHint.Text = " ";
if (!dataStorageRadioButtonsGenerated) if (!dataStorageRadioButtonsGenerated)
GenerateDataStorageRadioButtons(); GenerateDataStorageRadioButtons();
//TODO: Hier zusätzlich Lizenzvalidierung einfügen.
buttonNext.Enabled = selectedDataStorage != null;
break; break;
default: default:
MessageBox.Show("Could not find handler for the current tab page."); MessageBox.Show("Could not find handler for the current tab page.");
@ -122,11 +128,61 @@ namespace Voile
} }
} }
private bool dataStorageRadioButtonsGenerated;
private RadioButton[] dataStorageRadioButtons;
private void GenerateDataStorageRadioButtons() private void GenerateDataStorageRadioButtons()
{ {
VoilePluginManager pluginManager = VoilePluginManager.GetInstance(); VoilePluginManager pluginManager = VoilePluginManager.GetInstance();
IReadOnlyList<VoilePluginInfo> dataStoragePlugins = pluginManager.GetDataStorages(); IReadOnlyList<VoilePluginInfo> dataStoragePlugins = pluginManager.GetDataStorages();
//TODO: Finish generating the radio buttons for the data storage. dataStorageRadioButtons = new RadioButton[dataStoragePlugins.Count];
int top = labelDataStorageHint.Top;
top += labelDataStorageHint.Height;
int left = labelDataStorageHint.Left;
for (int i = 0; i < dataStorageRadioButtons.Length; i++)
{
RadioButton childRadioButton = new RadioButton();
childRadioButton.Parent = tabPagePickDataStorage;
if (dataStoragePlugins[i].Incomplete)
childRadioButton.Enabled = false;
string radioButtonLabel = dataStoragePlugins[i].DisplayName;
if (dataStoragePlugins[i].NeededEntitlement.HasValue)
radioButtonLabel += " (needs license)";
childRadioButton.AutoSize = true;
childRadioButton.Text = radioButtonLabel;
if (selectedDataStorage != null)
childRadioButton.Checked = (selectedDataStorage.Id == dataStoragePlugins[i].Id);
childRadioButton.Top = top;
childRadioButton.Left = left;
childRadioButton.Tag = dataStoragePlugins[i];
top += childRadioButton.Height;
dataStorageRadioButtons[i] = childRadioButton;
dataStorageRadioButtons[i].CheckedChanged += OnDataStrorageSelected;
}
dataStorageRadioButtonsGenerated = true;
}
private void OnDataStrorageSelected(object? sender, EventArgs e)
{
RadioButton senderUnboxed = sender as RadioButton;
if (senderUnboxed == null)
throw new Voile.Common.VoileException("Could not unbox sender.");
VoilePluginInfo pluginInfo = senderUnboxed.Tag as VoilePluginInfo;
if (pluginInfo == null)
throw new Common.VoileException("Could not unbox plugin info");
selectedDataStorage = pluginInfo;
RefreshView();
} }
private void radioButton3_CheckedChanged(object sender, EventArgs e) private void radioButton3_CheckedChanged(object sender, EventArgs e)

View File

@ -117,19 +117,6 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<data name="label5.Text" xml:space="preserve">
<value>Great — lets choose where Voile should store its
structured data.
Blindscan results, DVB table contents, and historical
scan information will all be kept in the storage option you select
below. Since youre using Expert Mode, you have full control
over the database backend. (In Beginner Mode, Voile would
simply use SQLite automatically.)
Feel free to pick the option that best fits your workflow or
existing infrastructure.</value>
</data>
<data name="label2.Text" xml:space="preserve"> <data name="label2.Text" xml:space="preserve">
<value>Welcome to Voile! <value>Welcome to Voile!
@ -157,6 +144,19 @@ Voile in a professional setting — or if youd simply like
to support the ongoing development — you can activate to support the ongoing development — you can activate
a license. Some advanced features also become available a license. Some advanced features also become available
once a license is installed.</value> once a license is installed.</value>
</data>
<data name="label5.Text" xml:space="preserve">
<value>Great — lets choose where Voile should store its
structured data.
Blindscan results, DVB table contents, and historical
scan information will all be kept in the storage option you select
below. Since youre using Expert Mode, you have full control
over the database backend. (In Beginner Mode, Voile would
simply use SQLite automatically.)
Feel free to pick the option that best fits your workflow or
existing infrastructure.</value>
</data> </data>
<metadata name="openFileDialogCertificate.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="openFileDialogCertificate.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>17, 17</value>