No cache version.

Caching disabled. Default setting for this page:enabled (code LNG204)
If the display is too slow, you can disable the user mode to view the cached version.

BrolForm.cs

Description du code

BrolForm.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

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using be.gaudry.bibliobrol.model;
  9. using be.gaudry.bibliobrol.model.dao;
  10. using System.IO;
  11. using be.gaudry.bibliobrol.view.utils;
  12. using be.gaudry.bibliobrol.view.dialogs;
  13. using be.gaudry.observer;
  14. using be.gaudry.view;
  15. using be.gaudry.bibliobrol.view.controls.webInfo;
  16. using be.gaudry.view.utils;
  17.  
  18.  
  19. namespace be.gaudry.bibliobrol.view
  20. {
  21. public partial class BrolForm : MDIChildForm, IMDIChild
  22. {
  23. #region constructor and declarations
  24. /// <summary>
  25. /// if false, no updates are done on the brolInfoControl and BrolEditControl
  26. /// avoid view flickering on multiple brolsDGV_SelectionChanged call
  27. /// </summary>
  28. private bool viewUpdateAllowed = false;
  29. private BrolType brolType;
  30. private DataTable dataTable;
  31. private Brol brol;
  32. private int dGVColSerieNbr, dGVColIdNbr, dGVColTitleNbr;
  33. //private IBrolDao brolDao;
  34. private const String ALL_ACTORS = " -TOUS- ";
  35. private List<DAOUtils.BROL_FIELD> brolFields;
  36. //private List<DAOUtils.MEDIABROL_FIELD> mediabrolFields;
  37. /// <summary>
  38. /// Path of the persons images directory
  39. /// </summary>
  40.  
  41. public BrolForm()
  42. {
  43. dGVColSerieNbr = -1;
  44. InitializeComponent();
  45. this.SuspendLayout();
  46. addToolStrip(mainTS);
  47. initBrolTypeMenu();
  48. //ModelAdapter.Instance.addObserver(this);
  49. brolType = new BrolType(0, "Tous les types");
  50. brol = new Brol();
  51. brol.Id = -1;
  52. //diaSetActorRole = new DiaSetActorRole(brolType,editActorsLB.Items);
  53. //brolInfoCtl.reset();
  54. //cleanEditForm();
  55. this.ResumeLayout(true);
  56. // Activates double buffering
  57. SetStyle(ControlStyles.UserPaint, true);
  58. SetStyle(ControlStyles.AllPaintingInWmPaint, true);
  59. SetStyle(ControlStyles.DoubleBuffer, true);
  60. }
  61.  
  62.  
  63. #endregion
  64.  
  65. #region brolsDGV
  66.  
  67. #region mediabrols
  68. /*private void initMediabrolsDGV()
  69.   {
  70.   mediabrolFields = new List<DAOUtils.MEDIABROL_FIELD>();
  71.   mediabrolFields.Add(DAOUtils.MEDIABROL_FIELD.name);
  72.   mediabrolFields.Add(DAOUtils.MEDIABROL_FIELD.owner);
  73.   mediabrolFields.Add(DAOUtils.MEDIABROL_FIELD.date);
  74.   }
  75.  
  76.   private void fillMediabrolsDGV()
  77.   {
  78.   if (mediabrolFields == null) initMediabrolsDGV();
  79.   //mediabrolsDGV.Rows.Clear();
  80.   mediabrolsDGV.DataSource = DAOFactory.Instance.getMediaBrolDao().loadMediaBrols(brol, mediabrolFields);
  81.   } */
  82. #endregion
  83.  
  84. private void sortDataTable()
  85. {
  86. if (brolSortSerieTsMi.Checked && dGVColSerieNbr > 0)
  87. {
  88. brolsDGV.Sort(brolsDGV.Columns[dGVColSerieNbr], ListSortDirection.Descending);
  89. }
  90. else if (brolSortTitleTsMi.Checked)
  91. {
  92. brolsDGV.Sort(brolsDGV.Columns[dGVColTitleNbr], ListSortDirection.Ascending);
  93. }
  94. else
  95. {
  96. brolsDGV.Sort(brolsDGV.Columns[dGVColIdNbr], ListSortDirection.Descending);
  97. }
  98. }
  99.  
  100. private void fillDataTable(bool sortIds)
  101. {
  102. viewUpdateAllowed = false;
  103. //todo : fill datatable in another thread
  104. dataTable = DAOFactory.Instance.getBrolDao().loadDataTableVos(brolFields, brolType.Id);
  105. brolsDGV.DataSource = dataTable;
  106. //a type of media is selected
  107. /*foreach (Control control in editTP.Controls)
  108.   {
  109.   control.Enabled = true;
  110.   }*/
  111. foreach (ToolStripItem tsi in mainTS.Items)
  112. {
  113. tsi.Enabled = true;
  114. }
  115. //editDelBrolBtn.Enabled = false;
  116. //editDelBrolTSBtn.Enabled = false;
  117.  
  118. viewUpdateAllowed = true;
  119.  
  120. if (sortIds)
  121. {
  122. sortDataTable();
  123. }
  124. }
  125. private void initMediaTable()
  126. {
  127. this.startProgress();
  128. viewUpdateAllowed = false;
  129. brolInfoCtl.Visible = false;
  130. this.SuspendLayout();
  131. //mediaTC.SuspendLayout();
  132. //brolInfoCtl.SuspendLayout();
  133. brolsDGV.Columns.Clear();
  134. brol.BrolType = brolType;
  135. multiWebInfoControl.setBrolType(brolType);
  136. brolFields = new List<DAOUtils.BROL_FIELD>();
  137. brolFields.Add(DAOUtils.BROL_FIELD.id);
  138. brolFields.Add(DAOUtils.BROL_FIELD.title);
  139. if (brolFieldDateTsMi.Checked)
  140. {
  141. brolFields.Add(DAOUtils.BROL_FIELD.date);
  142. }
  143. if (brolFieldSerieTsMi.Checked)
  144. {
  145. brolFields.Add(DAOUtils.BROL_FIELD.serie);
  146. }
  147. fillDataTable(false);
  148. int colCounter = 0;
  149. //brolsDGV.DataSource = dataTable;
  150. if (brolsDGV.ColumnCount > 0)
  151. {
  152. dGVColIdNbr = colCounter;
  153. brolsDGV.Columns[colCounter].Width = 25;
  154. brolsDGV.Columns[colCounter++].HeaderText = "N°";
  155.  
  156. dGVColTitleNbr = colCounter;
  157. brolsDGV.Columns[colCounter].FillWeight = 0.3F;
  158. brolsDGV.Columns[colCounter].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
  159. brolsDGV.Columns[colCounter++].HeaderText = "Titre";
  160.  
  161. if (brolFieldDateTsMi.Checked)
  162. {
  163. brolsDGV.Columns[colCounter].HeaderText = "Date";
  164. brolsDGV.Columns[colCounter++].Width = 75;
  165. }
  166.  
  167. if (brolFieldSerieTsMi.Checked)
  168. {
  169. dGVColSerieNbr = colCounter;
  170. brolsDGV.Columns[colCounter].HeaderText = "Série";
  171. brolsDGV.Columns[colCounter].FillWeight = 0.2F;
  172. brolsDGV.Columns[colCounter].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
  173. brolsDGV.Columns[colCounter++].Width = 75;
  174. }
  175. else
  176. {
  177. dGVColSerieNbr = -1;
  178. }
  179. }
  180. brolsDGV.RowsDefaultCellStyle.BackColor = Color.White;
  181. brolsDGV.AlternatingRowsDefaultCellStyle.BackColor = Color.WhiteSmoke;
  182. sortDataTable();
  183. brolsDGV.Columns[dGVColIdNbr].Visible = brolFieldIdTsMi.Checked;
  184. brolsDGV.Visible = true;
  185. viewUpdateAllowed = true;
  186. loadSelectedBrol();
  187. //brolInfoCtl.ResumeLayout(true);
  188. //mediaTC.ResumeLayout(true);
  189. brolInfoCtl.Visible = brolsDGV.RowCount > 0;
  190. this.ResumeLayout(true);
  191. this.stopProgress();
  192. }
  193. private void brolsDGV_CellClick(object sender, DataGridViewCellEventArgs e)
  194. {
  195. loadSelectedBrol();
  196. }
  197. private void brolsDGV_SelectionChanged(object sender, EventArgs e)
  198. {
  199. loadSelectedBrol();
  200. }
  201.  
  202. private void loadSelectedBrol()
  203. {
  204. if (viewUpdateAllowed)
  205. {
  206. int id = (brolsDGV.RowCount > 0) ? (int)brolsDGV.CurrentRow.Cells["id"].Value : -1;
  207. //brolInfoCtl.Visible = id > 0;
  208. try
  209. {
  210. ModelAdapter.unlockBrol(brol.Id);
  211.  
  212. brol = ModelAdapter.getBrol(id, true);
  213. saveEditedBrolBtn.Text = "Sauver";
  214. editSaveTSBtn.Text = "Sauver";
  215. if (brol.BrolLocked)
  216. {
  217. editSaveTSBtn.Enabled = false;
  218. saveEditedBrolBtn.Enabled = false;
  219. StaticObservable.notify(new Notification(Notification.VERBOSE.error, "Edition d'un ouvrage", "Impossible de modifier cet ouvrage car il est verrouillé par un autre utilisateur", this));
  220. }
  221. editBrolControl.setBrol(brol, brol.BrolType);
  222. /*
  223.   if (brol.Id > 0)
  224.   {
  225.   fillMediabrolsDGV();
  226.   }
  227.   */
  228. brolInfoCtl.setBrol(brol);
  229. multiWebInfoControl.setParam(brol.Title);
  230. }
  231. catch (Exception ex)
  232. {
  233. StaticObservable.notify(new Notification(Notification.VERBOSE.lowError, "Edition d'un ouvrage", "Aucun ouvrage sélectionné", ex, this));
  234. }
  235.  
  236. #region enable modifications only if needed
  237. /*
  238.   try
  239.   {
  240.   switch (mediaTC.SelectedTab.Name)
  241.   {
  242.   case "editTP":
  243.   brol = ModelAdapter.getBrol(id, true);
  244.   saveEditedBrolBtn.Text = "Sauver";
  245.   editSaveTSBtn.Text = "Sauver";
  246.   if (brol.BrolLocked)
  247.   {
  248.   editSaveTSBtn.Enabled = false;
  249.   saveEditedBrolBtn.Enabled = false;
  250.   StaticObservable.notify(new Notification(Notification.VERBOSE.error, "Edition d'un ouvrage", "Impossible de modifier cet ouvrage car il est verrouillé par un autre utilisateur", this));
  251.   }
  252.   editBrolControl.setBrol(brol, brol.BrolType);
  253.   break;
  254.   case "biblioBrolItemTP":
  255.   ModelAdapter.unlockBrol(brol.Id);
  256.   if (brol.Id > 0)
  257.   {
  258.   fillMediabrolsDGV();
  259.   }
  260.   break;
  261.   default:
  262.   brol = ModelAdapter.getBrol(id, false);
  263.   //fillInfoTP();
  264.   brolInfoCtl.fill(brol);
  265.   break;
  266.   }
  267.   multiWebInfoControl.setParam(brol.Title);
  268.   }
  269.   catch (Exception ex)
  270.   {
  271.   StaticObservable.notify(new Notification(Notification.VERBOSE.lowError, "Edition d'un ouvrage", "Aucun ouvrage sélectionné",ex, this));
  272.   }*/
  273. #endregion
  274. }
  275. }
  276.  
  277. #endregion
  278.  
  279. #region brolsDGV sort and display options
  280. /*
  281.   private void refreshOnAddTsMi_Click(object sender, EventArgs e)
  282.   {
  283.   DialogResult r = MessageBox.Show(
  284.   this,
  285.   "Si vous sélectionnez cette option, la table des ouvrages sera mise à jour à chaque ajout d'un ouvrage," +
  286.   " mais il ne sera plus possible de modifier les images associées aux ouvrages." +
  287.   "\n\nDésirez-vous tout de même cocher cette option ?",
  288.   "Rafraîchissement de la table des ouvrages",
  289.   MessageBoxButtons.OKCancel,
  290.   MessageBoxIcon.Question,
  291.   MessageBoxDefaultButton.Button2
  292.   );
  293.   if (r == DialogResult.OK)
  294.   {
  295.   refreshOnAddTsMi.Checked = true;
  296.   editBrolControl.ImageEditable = false;
  297.   }
  298.   else
  299.   {
  300.   refreshOnAddTsMi.Checked = false;
  301.   editBrolControl.ImageEditable = true;
  302.   }
  303.   }
  304.  
  305.   private void refreshOnUpdateTsMi_Click(object sender, EventArgs e)
  306.   {
  307.   DialogResult r = MessageBox.Show(
  308.   this,
  309.   "Si vous sélectionnez cette option, la table des ouvrages sera mise à jour à chaque modification d'un ouvrage,"+
  310.   " mais il ne sera plus possible de modifier les images associées aux ouvrages."+
  311.   "\n\nDésirez-vous tout de même cocher cette option ?",
  312.   "Rafraîchissement de la table des ouvrages",
  313.   MessageBoxButtons.OKCancel,
  314.   MessageBoxIcon.Question,
  315.   MessageBoxDefaultButton.Button2
  316.   );
  317.   if (r == DialogResult.OK)
  318.   {
  319.   refreshOnUpdateTsMi.Checked = true;
  320.   editBrolControl.ImageEditable = false;
  321.   }
  322.   else
  323.   {
  324.   refreshOnUpdateTsMi.Checked = false;
  325.   editBrolControl.ImageEditable = true;
  326.   }
  327.   }*/
  328. private void brolFieldIdTsMi_Click(object sender, EventArgs e)
  329. {
  330. brolsDGV.Columns[dGVColIdNbr].Visible = brolFieldIdTsMi.Checked;
  331. }
  332. private void brolFieldDateTsMi_Click(object sender, EventArgs e)
  333. {
  334. initMediaTable();
  335. }
  336. private void brolFieldSerieTsMi_Click(object sender, EventArgs e)
  337. {
  338. initMediaTable();
  339. brolSortSerieTsMi.Visible = brolFieldSerieTsMi.Checked;
  340. if (!brolFieldSerieTsMi.Checked) brolSortSerieTsMi.Checked = false;
  341. }
  342.  
  343. private void brolSortSerieTsMi_Click(object sender, EventArgs e)
  344. {
  345. brolSortTitleTsMi.Checked = false;
  346. brolIdTsMi.Checked = false;
  347. sortDataTable();
  348. }
  349.  
  350. private void brolSortTitleTsMi_Click(object sender, EventArgs e)
  351. {
  352. brolSortSerieTsMi.Checked = false;
  353. brolIdTsMi.Checked = false;
  354. sortDataTable();
  355. }
  356.  
  357. private void brolIdTsMi_Click(object sender, EventArgs e)
  358. {
  359. brolSortSerieTsMi.Checked = false;
  360. brolSortTitleTsMi.Checked = false;
  361. sortDataTable();
  362. }
  363. #endregion
  364.  
  365. #region menu
  366. private void initBrolTypeMenu()
  367. {
  368. List<BrolType> types = ModelAdapter.getBrolTypes();
  369. types.Add(new BrolType(0,"Tous"));
  370. foreach (BrolType type in types)
  371. {
  372. /*
  373.   * We must initialize a new BrolType object to avoid than all anonym methods
  374.   * share the same local variable type.
  375.   * All instances of our anonym methods are executed by different thread than initBrolTypeMenu iterator method.
  376.   * That makes all delegates have the last brolType object return by the iterator.
  377.   */
  378. BrolType tempType = type;
  379.  
  380. //get image if exists, or default image
  381. System.Drawing.Image img = Img.getTypeImage(type.Name);
  382.  
  383. mainTS.Items.Add(
  384. type.Name.Trim(),
  385. img,
  386. delegate { brolType = tempType; initMediaTable(); }
  387. );
  388. /*
  389.   fetchTSMenuItem.DropDownItems.Add(
  390.   new ToolStripMenuItem(
  391.   type.Name,
  392.   img,
  393.   delegate { brolType = tempType; initMediaTable(); },
  394.   "dyn" + type.Name + "TSMenuItem"
  395.   )
  396.   );
  397.   */
  398. brolsTsMi.DropDownItems.Add(
  399. new ToolStripMenuItem(
  400. "Charger ("+type.Name+")",
  401. img,
  402. delegate { brolType = tempType; initMediaTable(); },
  403. "dyn" + type.Name + "TSMenuItem"
  404. )
  405. );
  406. }
  407. }
  408. #endregion
  409.  
  410. #region display media
  411. /*private void cleanInfoTP()
  412.   {
  413.   infoSynopsisRTB.Text = "";
  414.   infoTitleLbl.Text = "";
  415.   infoActorsLB.Items.Clear();
  416.   infoCategoriesLB.Items.Clear();
  417.   infoCotationLbl.Text = "Cote : ";
  418.   }
  419.   private void fillInfoTP()
  420.   {
  421.   coverPB.ImageLocation = Img.getBrolImgPath(brol);
  422.   coverPB.Size = new System.Drawing.Size(111, 149);
  423.   infoTitleLbl.Text = brol.Title;
  424.   infoSynopsisRTB.Text = brol.Synopsis;
  425.   infoCategoriesLB.Items.Clear();
  426.   infoCategoriesLB.Items.AddRange(brol.Categories.ToArray());
  427.   int i = infoCategoriesLB.Items.Count;
  428.   if (i > 0)
  429.   {
  430.   infoCategoriesLbl.Text = i + " catégorie(s) : ";
  431.   infoCategoriesLB.Visible = true;
  432.   }
  433.   else
  434.   {
  435.   infoCategoriesLbl.Text = "Aucune catégorie trouvée";
  436.   infoCategoriesLB.Visible = false;
  437.   }
  438.   infoActorsLB.Items.Clear();
  439.   infoActorsLB.Items.AddRange(brol.Actors.ToArray());
  440.   i = infoActorsLB.Items.Count;
  441.   if (i > 0)
  442.   {
  443.   infoActorsLbl.Text = i + " personne(s) / rôle(s) : ";
  444.   infoActorsLB.Visible = true;
  445.   }
  446.   else
  447.   {
  448.   infoActorsLbl.Text = "Aucune personne trouvée";
  449.   infoActorsLB.Visible = false;
  450.   }
  451.   infoCotationLbl.Text = "Cote : " + brol.Cotation + "/10";
  452.   }*/
  453. #endregion
  454.  
  455. #region edit media
  456. #region general edit page
  457. /*
  458.   /// <summary>
  459.   /// Used to reset all brol edit from fields
  460.   /// </summary>
  461.   private void cleanEditForm()
  462.   {
  463.   editSynopsisRTB.Text = "";
  464.   editTitleTB.Text = "";
  465.   editCotationCB.SelectedIndex = -1;
  466.   editCategoriesLB.Items.Clear();
  467.   editActorsLB.Items.Clear();
  468.   persImg.Image = global::be.gaudry.bibliobrol.Properties.Resources.brolImg;
  469.   editSpCommentRTB.Text = "";
  470.   }*/
  471. private void EditTP_Leave(object sender, EventArgs e)
  472. {
  473. if (brolsDGV.RowCount > 0)
  474. {
  475. int id = (int)brolsDGV.SelectedRows[0].Cells["id"].Value;
  476. ModelAdapter.unlockBrol(id);
  477. }
  478. }
  479. /*
  480.   /// <summary>
  481.   /// Used to fill all brol values from edit from fields
  482.   /// </summary>
  483.   private void setBrolFromEditForm()
  484.   {
  485.  
  486.   }
  487.   /// <summary>
  488.   /// Used to fill all brol edit from fields from brol values
  489.   /// </summary>
  490.   private void fillEditForm(Brol brol)
  491.   {
  492.  
  493.   }
  494.   */
  495.  
  496.  
  497.  
  498. private void editTitleTB_TextChanged(object sender, EventArgs e)
  499. {
  500. //multiWebInfoControl.setParam(editTitleTB.Text);
  501. }
  502. #endregion
  503.  
  504. #endregion //end edit media
  505.  
  506. #region edit
  507.  
  508. private void editLoadBtn_Click(object sender, EventArgs e)
  509. {
  510. try
  511. {
  512. int id = (int)brolsDGV.SelectedRows[0].Cells["id"].Value;
  513. brol = ModelAdapter.getBrol(id, true);
  514. editBrolControl.setBrol(brol, brol.BrolType);
  515. mediaTC.SelectedTab = editTP;
  516. }
  517. catch (Exception ex)
  518. {
  519. StaticObservable.notify(new Notification(Notification.VERBOSE.lowError, "Impossible de charger l'élément sélectionné", ex, this));
  520. }
  521. }
  522.  
  523. #endregion
  524.  
  525. #region manage image
  526. private void deleteBrolCover()
  527. {
  528. bool deleted = false;
  529. String path = Img.getBrolImgPath(brol);
  530. try
  531. {
  532. File.Delete(path);
  533. deleted = true;
  534. }
  535. catch (Exception e)
  536. {
  537. StaticObservable.notify(new Notification(Notification.VERBOSE.lowError, "Suppression de l'affiche", e, this));
  538. deleted = false;
  539. }
  540. if (deleted) StaticObservable.notify(new Notification(Notification.VERBOSE.opsResult, "Affiche supprimée : " + path, this));
  541. }
  542. private void delImageBtn_Click(object sender, EventArgs e)
  543. {
  544. deleteBrolCover();
  545. }
  546. #endregion
  547.  
  548. #region overrided methods
  549. public override String ToString()
  550. {
  551. return "BrolForm";
  552. }
  553. public override int GetHashCode()
  554. {
  555. //todo : reimplement GetHashCode
  556. return this.ToString().GetHashCode();
  557. }
  558. #endregion
  559.  
  560. #region Form
  561. private void BrolForm_Enter(object sender, EventArgs e)
  562. {
  563. this.Icon = global::be.gaudry.bibliobrol.Properties.Resources.brolIcon;
  564. }
  565. #endregion
  566.  
  567. #region edit brol actions
  568. private void saveEditedBrolBtn_Click(object sender, EventArgs e)
  569. {
  570. bool refresh;
  571. if (brol.Id >= 0)
  572. {
  573. refresh = refreshOnUpdateTsMi.Checked;
  574. }
  575. else
  576. {
  577. refresh = refreshOnAddTsMi.Checked;
  578. }
  579. brol = editBrolControl.saveBrol(!refresh);
  580. if (refresh)
  581. {
  582. fillDataTable(true);
  583. }
  584. }
  585.  
  586. private void onDeleteBrol_Click(object sender, EventArgs e)
  587. {
  588. DialogResult dr = MessageBox.Show(
  589. this,
  590. string.Format(
  591. "Désirez-vous supprimer définitivement l'ouvrage ?\n\r{0}",
  592. brol.Title
  593. ),
  594. "Suppression d'un ouvrage",
  595. MessageBoxButtons.OKCancel,
  596. MessageBoxIcon.Question
  597. );
  598. if ( dr== DialogResult.OK && ModelAdapter.deleteBrol(brol))
  599. {
  600. deleteBrolCover();
  601. if(refreshOnDeleteTsMi.Checked)fillDataTable(true);
  602. }
  603. }
  604.  
  605. private void onAddBrol_Click(object sender, EventArgs e)
  606. {
  607. brol = new Brol();
  608. brol.BrolType = brolType;
  609. editBrolControl.setBrol(brol, brol.BrolType);
  610. mediaTC.SelectedTab = editTP;
  611. }
  612.  
  613. private void onDuplicateBrol_Click(object sender, EventArgs e)
  614. {
  615. StringBuilder str = new StringBuilder("L'ouvrage \"");
  616. str.Append(brol.Title.Trim());
  617. str.Append("\" portant l'identifiant n°");
  618. str.Append(brol.Id);
  619. str.Append(" est dupliqué.\n\nTant qu'il n'est pas sauvé, son identifiant est égal à -1.");
  620. brol.Id = -1;
  621. foreach (Actor actor in brol.Actors) { actor.Status = STATUS.toAdd; }
  622. foreach (BrolCategory category in brol.Categories) { category.Status = STATUS.toAdd; }
  623. //keep only serieItems without argument (like film production, book collection, etc.).
  624. foreach (SerieItem serieItem in brol.SerieItems)
  625. {
  626. if (string.Empty.Equals(serieItem.getRank()))
  627. {
  628. serieItem.getSerie().Status = STATUS.toAdd;
  629. }
  630. }
  631. brol.SerieItems.RemoveAll(removeIfStatusIsNotToAdd);
  632. //brol.SerieItems.Clear();
  633. editBrolControl.setBrol(brol);
  634.  
  635. StaticObservable.notify(new Notification(Notification.VERBOSE.opsResult, str.ToString(), this));
  636. }
  637. private static bool removeIfStatusIsNotToAdd(SerieItem serieItem)
  638. {
  639. return (serieItem.getSerie().Status != STATUS.toAdd);
  640. }
  641.  
  642. #endregion
  643.  
  644. private void addMediabrolTSBtn_Click(object sender, EventArgs e)
  645. {
  646. editBrolControl.promptInsertMediabrol(brol);
  647. }
  648.  
  649.  
  650. #region IObserver Membres
  651. /*
  652.   public void update(Notification notification)
  653.   {
  654.   //if (notification.Level.Equals(Notification.VERBOSE.modified))
  655.   switch (notification.Msg)
  656.   {
  657.   case "insertBrol" :
  658.   if (refreshOnAddTsMi.Checked)
  659.   {
  660.   fillDataTable(true);
  661.   }
  662.   break;
  663.   case "deleteBrol":
  664.   if (refreshOnDeleteTsMi.Checked)
  665.   {
  666.   fillDataTable(true);
  667.   }
  668.   break;
  669.   case "updateBrol":
  670.   if (refreshOnUpdateTsMi.Checked)
  671.   {
  672.   fillDataTable(true);
  673.   }
  674.   break;
  675.   default:
  676.   break;
  677.   }
  678.   }
  679.   */
  680. #endregion
  681.  
  682. #region save and print DGV actions
  683. private void printDGVAction(object sender, EventArgs e)
  684. {
  685. DgvFactory.print(brolsDGV, "Ouvrages de BiblioBrol", this);
  686. }
  687.  
  688. private void saveDGVAction(object sender, EventArgs e)
  689. {
  690. DgvFactory.save(brolsDGV, "Ouvrages de BiblioBrol", this);
  691. }
  692. #endregion
  693.  
  694. #region IMDIChild Members
  695.  
  696. public MenuStrip getMainMenuStrip()
  697. {
  698. return mainMenuStrip;
  699. }
  700.  
  701. #endregion
  702.  
  703. private void showMediabrolsTsMi_Click(object sender, EventArgs e)
  704. {
  705. if (brol != null)
  706. {
  707. MediaBrolsByBrolForm form = new MediaBrolsByBrolForm();
  708. form.setBrol(brol);
  709. form.ShowDialog(this);
  710. }
  711. else
  712. {
  713. MessageBox.Show("Veuillez sélectionner un ouvrage avant de consulter les exemplaires associés");
  714. }
  715. }
  716. }
  717. }

Structure et Fichiers du projet

Afficher/masquer...


Répertoires contenus dans /var/www/bin/sniplets/bibliobrol/src/view/ 
IcôneNomTailleModification
IcôneNomTailleModification
| _ Répertoire parent0 octets1714622257 02/05/2024 05:57:37
| _wizards0 octets1541007184 31/10/2018 18:33:04
| _utils0 octets1541007184 31/10/2018 18:33:04
| _controls0 octets1541007178 31/10/2018 18:32:58
| _dialogs0 octets1541007183 31/10/2018 18:33:03
Fichiers contenus dans /var/www/bin/sniplets/bibliobrol/src/view/ 
IcôneNomTailleModificationAction
IcôneNomTailleModificationAction
Afficher le fichier .resx|.resxMediabrolForm.resx32.55 Ko31/10/2018 18:32:27-refusé-
Afficher le fichier .resx|.resxAWSForm.resx188.27 Ko31/10/2018 18:32:25-refusé-
Afficher le fichier .resx|.resxMainForm.resx6.07 Ko31/10/2018 18:32:27-refusé-
Afficher le fichier .resx|.resxConsoleForm.resx256.48 Ko31/10/2018 18:32:27-refusé-
Afficher le fichier .cs|.csAWSForm.Designer.cs23.45 Ko31/10/2018 18:32:25-refusé-
Afficher le fichier .cs|.csActorForm.cs9.09 Ko31/10/2018 18:32:25-refusé-
Afficher le fichier .cs|.csBiblioBrolAboutBox.Designer.cs11.22 Ko31/10/2018 18:32:25-refusé-
Afficher le fichier .cs|.csAWSForm.cs7.68 Ko31/10/2018 18:32:25-refusé-
Afficher le fichier .cs|.csBorrowsForm.cs1.66 Ko31/10/2018 18:32:25-refusé-
Afficher le fichier .cs|.csCopy of MainForm.Designer.cs16.91 Ko31/10/2018 18:32:27-refusé-
Afficher le fichier .cs|.csConsoleForm.Designer.cs2.71 Ko31/10/2018 18:32:26-refusé-
Afficher le fichier .cs|.csWebServiceForm.cs6.34 Ko31/10/2018 18:32:29-refusé-
Afficher le fichier .resx|.resxOldMainForm.resx58.06 Ko31/10/2018 18:32:28-refusé-
Afficher le fichier .cs|.csCopy of MainForm.cs30.81 Ko31/10/2018 18:32:26-refusé-
Afficher le fichier .resx|.resxActorForm.resx44.98 Ko31/10/2018 18:32:25-refusé-
Afficher le fichier .resx|.resxBorrowsForm.resx73.4 Ko31/10/2018 18:32:26-refusé-
Afficher le fichier .cs|.csMainForm.cs37.45 Ko31/10/2018 18:32:27-refusé-
Afficher le fichier .resx|.resxWebServiceForm.resx9.71 Ko31/10/2018 18:32:29-refusé-
Afficher le fichier .cs|.csMainForm.Designer.cs7.16 Ko31/10/2018 18:32:27-refusé-
Afficher le fichier .cs|.csBorrowsForm.Designer.cs10.51 Ko31/10/2018 18:32:25-refusé-
Afficher le fichier .cs|.csTasksForm.cs389 octets31/10/2018 18:32:28-refusé-
Afficher le fichier .resx|.resxBiblioBrolAboutBox.resx5.68 Ko31/10/2018 18:32:25-refusé-
Afficher le fichier .cs|.csBrolForm.cs25.87 Ko31/10/2018 18:32:26-refusé-
Afficher le fichier .cs|.csWebServiceForm.Designer.cs13.12 Ko31/10/2018 18:32:29-refusé-
Afficher le fichier .cs|.csMediabrolForm.Designer.cs142.05 Ko31/10/2018 18:32:27-refusé-
Afficher le fichier .cs|.csConsoleForm.cs2.79 Ko31/10/2018 18:32:26-refusé-
Afficher le fichier .cs|.csBrolForm.designer.cs41.73 Ko31/10/2018 18:32:26-refusé-
Afficher le fichier .cs|.csMediabrolForm.cs31.94 Ko31/10/2018 18:32:27-refusé-
Afficher le fichier .cs|.csStatsForm.Designer.cs11.59 Ko31/10/2018 18:32:28-refusé-
Afficher le fichier .cs|.csActorForm.Designer.cs28.26 Ko31/10/2018 18:32:25-refusé-
Afficher le fichier .cs|.csOldMainForm.Designer.cs83.98 Ko31/10/2018 18:32:28-refusé-
Afficher le fichier .cs|.csStatsForm.cs5 Ko31/10/2018 18:32:28-refusé-
Afficher le fichier .cs|.csBiblioBrolAboutBox.cs5.51 Ko31/10/2018 18:32:25-refusé-
Afficher le fichier .cs|.csOldMainForm.cs27.08 Ko31/10/2018 18:32:27-refusé-
Afficher le fichier .resx|.resxTasksForm.resx187.31 Ko31/10/2018 18:32:29-refusé-
Afficher le fichier .cs|.csTasksForm.Designer.cs2.26 Ko31/10/2018 18:32:28-refusé-
Afficher le fichier .resx|.resxBrolForm.resx45.52 Ko31/10/2018 18:32:26-refusé-
Afficher le fichier .resx|.resxCopy of MainForm.resx7.53 Ko31/10/2018 18:32:27-refusé-
Afficher le fichier .resx|.resxStatsForm.resx187.5 Ko31/10/2018 18:32:28-refusé-

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.

English translation

You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.

If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.

Thank you in advance.

Document created the 16/10/2009, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/cs-bibliobrol-source-rf-view/BrolForm.cs.html

The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.