AccessControl.cs
Description du code
AccessControl.cs est un fichier du projet BiblioBrol.Ce fichier est situé dans /var/www/bin/sniplets/bibliobrol/src/.
Projet BiblioBrol :
Gestion de media en CSharp.
Pour plus d'infos, vous pouvez consulter la brève analyse.
Code source ou contenu du fichier
Code c# (AccessControl.cs) (226 lignes)
using System; using System.Text; using System.Windows.Forms; using be.gaudry.bibliobrol.config; using be.gaudry.bibliobrol.model.dao; using be.gaudry.bibliobrol.model.dao.config; using be.gaudry.bibliobrol.model.enums; using be.gaudry.model.enums; namespace be.gaudry.bibliobrol.view.controls.dao { public partial class AccessControl : UserControl, IDBControl { #region declarations and constructors private OpenFileDialog openDBDialog; private AccessConfig dbConfig; private bool allowSaving; public AccessControl() { allowSaving = false; InitializeComponent(); reset(); allowSaving = true; } #endregion #region private methods #region modify db path /// <summary> /// Uses an <code>OpenFileDialog</code> to select the db file to use. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dbBrowseBtn_Click(object sender, EventArgs e) { //openDBDialog.RestoreDirectory = true; openDBDialog.CheckFileExists = true; openDBDialog.Title = "Sélection de la base de données Access à utiliser..."; StringBuilder filterSB = new StringBuilder("Tous (*.bdb;*.mdb;*.accdb;*.bdb3;*bdb7)|*.bdb;*.mdb;*.accdb;*.bdb3;*bdb7"); filterSB.Append("|Bibliobrol DataBase (*.bdb)|*.bdb"); filterSB.Append("|Bibliobrol DataBase V.3 (*.bdb3)|*.bdb3"); filterSB.Append("|Bibliobrol DataBase V.7 (*.bdb7)|*.bdb7"); filterSB.Append("|Microsoft Office Access (*.mdb)|*.mdb"); openDBDialog.Filter = filterSB.ToString(); openDBDialog.InitialDirectory = dbConfig.getAdaptedDirectory();//Application.StartupPath; if (openDBDialog.ShowDialog(this) == DialogResult.OK) { dbPathLbl.Text = openDBDialog.FileName; toolTip1.SetToolTip(dbPathLbl, openDBDialog.FileName); openDBDialog.Dispose(); if (dbPathLbl.Text.EndsWith(".bdb7") || dbPathLbl.Text.EndsWith(".accdb")) { } else { } save(); } } /// <summary> /// Shows a <code>TextBox</code> to modify the path of the db file. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void editBtn_Click(object sender, EventArgs e) { if (dbPathTB.Visible) { dbPathLbl.Visible = true; dbPathLbl.Text = dbPathTB.Text; this.toolTip1.SetToolTip(this.dbPathLbl, dbPathLbl.Text); dbPathTB.Visible = false; editBtn.Text = "Modifier"; //todo : use global::be.gaudry.Properties.Resources.brolEditBtn; editBtn.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolEditBtn; dbBrowseBtn.Enabled = true; save(); } else { dbPathLbl.Visible = false; dbPathTB.Text = dbPathLbl.Text; dbPathTB.Visible = true; editBtn.Text = "Appliquer"; editBtn.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolSaveBtn; dbBrowseBtn.Enabled = false; } } #endregion #region adapt display on resize private void AccessControl_Resize(object sender, EventArgs e) { showButtonsText( this.Size.Height > this.AutoScrollMinSize.Height && this.Size.Width > this.AutoScrollMinSize.Width ); } private void showButtonsText(bool showText) { if (showText) { editBtn.Text = "Modifier"; editBtn.Width = 80; dbBrowseBtn.Text = "Explorer"; dbBrowseBtn.Width = editBtn.Width; //dbBrowseBtn.Location.Offset(50, 0); //dbBrowseBtn.Location = new System.Drawing.Point(95, 45); } else { editBtn.Text = ""; editBtn.Width = 23; dbBrowseBtn.Text = ""; dbBrowseBtn.Width = editBtn.Width; //dbBrowseBtn.Location.Offset(-50, 0); //dbBrowseBtn.Location = new System.Drawing.Point(40, 45); } } #endregion /// <summary> /// Get an enum from the checked option. /// Used to set the driver to access to the db. /// </summary> /// <returns> /// ACCESS_VERSION Version of the selected Access file. /// </returns> private ACCESS_VERSION getSelectedVersion() { } private void version_CheckedChanged(object sender, EventArgs e) { save(); } #endregion #region IDBControl Members public void save() { if (!allowSaving) return; ACCESS_VERSION selectedVersion = getSelectedVersion(); // Test if values must be saved if (!dbPathTB.Text.Equals(dbConfig.getAdaptedPath()) || (selectedVersion != dbConfig.AccessVersion)) { //File.Exists doesn't throw exceptions if path is not valid, just return false bool validPath = System.IO.File.Exists(dbPathLbl.Text); if (validPath) { Config.savePersistenceType(PERSISTENCE_TYPE.Access); dbConfig.AccessVersion = selectedVersion; dbConfig.DBFileName = System.IO.Path.GetFileName(dbPathLbl.Text); dbConfig.DBPath = System.IO.Path.GetDirectoryName(dbPathLbl.Text); if (dbConfig.DBPath.Equals(Config.DataDirectory)) { dbConfig.DBPath = ""; } dbConfig.save(); DialogResult dr = MessageBox.Show( "Une base de données vient d'être sélectionnée (" + dbConfig.getAdaptedPath() + " [" + EnumHelper.GetDescription(selectedVersion) + "]).\nLes données actuellement utilisées par l'application sont probablement incohérentes avec la nouvelle db " + "et il est fortement recommandé de redémarrer l'application.\nRedémarrer maintenant ?", "Sélection de la base de données", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); if (DialogResult.Yes == dr) { Application.Restart(); } else { DAOFactory.resetDAO(); } } else { MessageBox.Show( String.Format("Impossible de trouver la base de données à l'emplacement {0}", dbPathLbl.Text), "Sélection de la base de données", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } } //else : no modification detected } /// <summary> /// Load data from the settings file, and update the view /// </summary> public void reset() { dbConfig = DAOFactory.Instance.getDBConfig() as AccessConfig; if (dbConfig == null) { } ACCESS_VERSION version = dbConfig.AccessVersion; switch (version) { } dbPathLbl.Text = dbConfig.getAdaptedPath(); } #endregion } }
Structure et Fichiers du projet
Afficher/masquer...Icône | Nom | Taille | Modification |
Pas de sous-répertoires. | |||
Icône | Nom | Taille | Modification |
| _ | Répertoire parent | 0 octets | 1734950550 23/12/2024 11:42:30 |
Utilisation de l'explorateur de code
- Navigation :
- Un clic sur une icône de répertoire ouvre ce répertoire pour en afficher les fichiers.
- Lorsque le répertoire en cours ne contient pas de sous-répertoires il est possible de remonter vers le répertoire parent.
- La structure de répertoires en treetable (tableau en forme d'arborescence) n'est plus possibledans cette version.
- Un clic sur une icône de fichier ouvre ce fichier pour en afficher le code avec la coloration syntaxique adaptée en fonction du langage principal utilisé dans le fichier.
- Affichage :
- Il est possible de trier les répertoires ou les fichiers selon certains critères (nom, taille, date).
- Actions :
- Les actions possible sur les fichiers dépendent de vos droits d'utilisateur sur le site. Veuillez activer le mode utilisateur pour activer les actions.
Version en cache
23/12/2024 11:42:30 Cette version de la page est en cache (à la date du 23/12/2024 11:42:30) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 16/10/2009, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/cs-bibliobrol-source-rf-view/controls/dao/AccessControl.cs.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.