Browse Source

compdfkit(win) - 刷新签名状态条

weixiangjie 1 year ago
parent
commit
b2194ec492

+ 6 - 0
Demo/Examples/Compdfkit_Tools/Common/BarControl/CPDFBOTABarControl.xaml.cs

@@ -41,6 +41,8 @@ namespace Compdfkit_Tools.PDFControl
         private ToggleButton searchButton;
         private ToggleButton searchButton;
         private CPDFSearchControl searchControl;
         private CPDFSearchControl searchControl;
         private ToggleButton signatureButton;
         private ToggleButton signatureButton;
+
+        public event EventHandler DeleteSignatureEvent;
         public CPDFBOTABarControl(BOTATools botaTools)
         public CPDFBOTABarControl(BOTATools botaTools)
         {
         {
             InitializeComponent();
             InitializeComponent();
@@ -432,6 +434,10 @@ namespace Compdfkit_Tools.PDFControl
                                 }
                                 }
                                 SetBotaTool(signatureControl);
                                 SetBotaTool(signatureControl);
                                 checkBtn = signatureButton;
                                 checkBtn = signatureButton;
+                                signatureControl.DeleteSignatureEvent += (sender, args) =>
+                                {
+                                    DeleteSignatureEvent?.Invoke(this, null);
+                                };
                             }
                             }
                         }
                         }
                     }
                     }

+ 2 - 2
Demo/Examples/Compdfkit_Tools/Common/BarControl/CPDFDigitalSignatureBarControl.xaml.cs

@@ -22,7 +22,7 @@ namespace Compdfkit_Tools.Common
 
 
         public enum DigitalSignatureAction
         public enum DigitalSignatureAction
         {
         {
-            AddSignatrueField,
+            AddSignatureField,
             Signing,
             Signing,
             VerifySignature
             VerifySignature
         }
         }
@@ -138,7 +138,7 @@ namespace Compdfkit_Tools.Common
 
 
             if ((bool)(sender as ToggleButton).IsChecked)
             if ((bool)(sender as ToggleButton).IsChecked)
             {
             {
-                DigitalSignatureActionChanged?.Invoke(sender, DigitalSignatureAction.AddSignatrueField);
+                DigitalSignatureActionChanged?.Invoke(sender, DigitalSignatureAction.AddSignatureField);
             }
             }
             else
             else
             {
             {

+ 19 - 0
Demo/Examples/Compdfkit_Tools/DigitalSignature/CPDFSignatureListControl/CPDFSignatureListControl.xaml.cs

@@ -1,14 +1,20 @@
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
+using System.ComponentModel;
 using System.Globalization;
 using System.Globalization;
 using System.Linq;
 using System.Linq;
 using System.Windows;
 using System.Windows;
 using System.Windows.Controls;
 using System.Windows.Controls;
 using System.Windows.Data;
 using System.Windows.Data;
+using System.Windows.Forms;
 using System.Windows.Input;
 using System.Windows.Input;
 using Compdfkit_Tools.PDFControl;
 using Compdfkit_Tools.PDFControl;
 using ComPDFKit.DigitalSign;
 using ComPDFKit.DigitalSign;
 using ComPDFKitViewer.PdfViewer;
 using ComPDFKitViewer.PdfViewer;
+using ContextMenu = System.Windows.Controls.ContextMenu;
+using MenuItem = System.Windows.Controls.MenuItem;
+using MessageBox = System.Windows.MessageBox;
+using UserControl = System.Windows.Controls.UserControl;
 
 
 namespace Compdfkit_Tools.DigitalSignature.CPDFSignatureListControl
 namespace Compdfkit_Tools.DigitalSignature.CPDFSignatureListControl
 {
 {
@@ -24,6 +30,8 @@ namespace Compdfkit_Tools.DigitalSignature.CPDFSignatureListControl
         private List<SignatureData> signatureDataList;
         private List<SignatureData> signatureDataList;
         private List<CPDFSignature> signatureList;
         private List<CPDFSignature> signatureList;
         private ContextMenu popContextMenu;
         private ContextMenu popContextMenu;
+
+        public event EventHandler DeleteSignatureEvent;
         public CPDFSignatureListControl()
         public CPDFSignatureListControl()
         {
         {
             InitializeComponent();
             InitializeComponent();
@@ -60,11 +68,22 @@ namespace Compdfkit_Tools.DigitalSignature.CPDFSignatureListControl
         
         
         private void DeleteMenu_Click(object sender, RoutedEventArgs e)
         private void DeleteMenu_Click(object sender, RoutedEventArgs e)
         {
         {
+            // custom button content
+            string messageBoxText = "Are you sure you want to delete this signature?";
+            string caption = "Delete Signature";
+            MessageBoxButton button = MessageBoxButton.OKCancel;
+            MessageBoxImage icon = MessageBoxImage.Warning;
+            MessageBoxResult result = MessageBox.Show(messageBoxText, caption, button, icon, MessageBoxResult.Cancel);
+            if(result != MessageBoxResult.OK)
+            {
+                return;
+            }
             int index = SignatureList.SelectedIndex;
             int index = SignatureList.SelectedIndex;
             if (index >= 0 && index < signatureList.Count)
             if (index >= 0 && index < signatureList.Count)
             {
             {
                 pdfViewer.Document.RemoveSignature(signatureList[index], true);
                 pdfViewer.Document.RemoveSignature(signatureList[index], true);
                 LoadSignatureList();
                 LoadSignatureList();
+                DeleteSignatureEvent?.Invoke(this, null);
             }
             }
         }
         }
         
         

+ 16 - 1
Demo/Examples/Compdfkit_Tools/DigitalSignature/DigitalSignatureControl/DigitalSignatureControl.xaml.cs

@@ -21,6 +21,7 @@ namespace Compdfkit_Tools.PDFControl
         private SignatureStatusBarControl signatureStatusBarControl;
         private SignatureStatusBarControl signatureStatusBarControl;
         private PanelState panelState = PanelState.GetInstance();
         private PanelState panelState = PanelState.GetInstance();
         private CPDFDisplaySettingsControl displaySettingsControl = null;
         private CPDFDisplaySettingsControl displaySettingsControl = null;
+        private CPDFBOTABarControl botaControl;
         private bool _isActive = false;
         private bool _isActive = false;
         public event EventHandler<bool> OnCanSaveChanged;
         public event EventHandler<bool> OnCanSaveChanged;
         private CPDFSignatureWidget currentSignatureWidget;
         private CPDFSignatureWidget currentSignatureWidget;
@@ -110,6 +111,11 @@ namespace Compdfkit_Tools.PDFControl
 
 
         }
         }
 
 
+        private void BotaControlOnDeleteSignatureEvent(object sender, EventArgs e)
+        {
+            RefreshDigitalSignatureList();
+        }
+
         private void PDFView_WidgetClickHandler(object sender, WidgetArgs e)
         private void PDFView_WidgetClickHandler(object sender, WidgetArgs e)
         {
         {
             Window parentWindow = Window.GetWindow((DependencyObject)sender);
             Window parentWindow = Window.GetWindow((DependencyObject)sender);
@@ -137,7 +143,7 @@ namespace Compdfkit_Tools.PDFControl
 
 
         private void DigitalSignatureBarControl_DigitalSignatureActionChanged(object sender, Common.CPDFDigitalSignatureBarControl.DigitalSignatureAction e)
         private void DigitalSignatureBarControl_DigitalSignatureActionChanged(object sender, Common.CPDFDigitalSignatureBarControl.DigitalSignatureAction e)
         {
         {
-            if (e == Common.CPDFDigitalSignatureBarControl.DigitalSignatureAction.AddSignatrueField)
+            if (e == Common.CPDFDigitalSignatureBarControl.DigitalSignatureAction.AddSignatureField)
             {
             {
                 CreateSign();
                 CreateSign();
             }
             }
@@ -149,9 +155,15 @@ namespace Compdfkit_Tools.PDFControl
             {
             {
                 ToggleButton button = sender as ToggleButton;
                 ToggleButton button = sender as ToggleButton;
                 button.IsChecked = false;
                 button.IsChecked = false;
+                RefreshDigitalSignatureList();
             }
             }
         }
         }
 
 
+        private void RefreshDigitalSignatureList()
+        {
+            signatureStatusBarControl.SetStatus(PDFViewControl.PDFView.Document.GetSignatureList());
+        }
+
         private string GetTime()
         private string GetTime()
         {
         {
             DateTime dateTime = DateTime.Now;
             DateTime dateTime = DateTime.Now;
@@ -227,6 +239,9 @@ namespace Compdfkit_Tools.PDFControl
         public void SetBOTAContainer(CPDFBOTABarControl botaControl)
         public void SetBOTAContainer(CPDFBOTABarControl botaControl)
         {
         {
             this.BotaContainer.Child = botaControl;
             this.BotaContainer.Child = botaControl;
+            this.botaControl = botaControl;
+            this.botaControl.DeleteSignatureEvent -= BotaControlOnDeleteSignatureEvent;
+            this.botaControl.DeleteSignatureEvent += BotaControlOnDeleteSignatureEvent;
         }
         }
         
         
         public void SetDisplaySettingsControl(CPDFDisplaySettingsControl displaySettingsControl)
         public void SetDisplaySettingsControl(CPDFDisplaySettingsControl displaySettingsControl)

+ 5 - 0
Demo/Examples/Compdfkit_Tools/DigitalSignature/SignatureStatusBarControl/SignatureStatusBarControl.xaml.cs

@@ -59,21 +59,26 @@ namespace Compdfkit_Tools.PDFControl
             {
             {
                 case SignatureStatus.None:
                 case SignatureStatus.None:
                     MessageString = "";
                     MessageString = "";
+                    Visibility = Visibility.Collapsed;
                     break;
                     break;
                 case SignatureStatus.Valid:
                 case SignatureStatus.Valid:
                     ValidBorder.Visibility = Visibility.Visible;
                     ValidBorder.Visibility = Visibility.Visible;
+                    Visibility = Visibility.Visible;
                     MessageString = validString;
                     MessageString = validString;
                     break;
                     break;
                 case SignatureStatus.Invalid:
                 case SignatureStatus.Invalid:
                     InvalidBorder.Visibility = Visibility.Visible;
                     InvalidBorder.Visibility = Visibility.Visible;
+                    Visibility = Visibility.Visible;
                     MessageString = invalidString;
                     MessageString = invalidString;
                     break;
                     break;
                 case SignatureStatus.Unknown:
                 case SignatureStatus.Unknown:
                     UnknownBorder.Visibility = Visibility.Visible;
                     UnknownBorder.Visibility = Visibility.Visible;
+                    Visibility = Visibility.Visible;
                     MessageString = unknownString;
                     MessageString = unknownString;
                     break;
                     break;
                 case SignatureStatus.MultiSig:
                 case SignatureStatus.MultiSig:
                     UnknownBorder.Visibility = Visibility.Visible;
                     UnknownBorder.Visibility = Visibility.Visible;
+                    Visibility = Visibility.Visible;
                     MessageString = multiSigString;
                     MessageString = multiSigString;
                     break;
                     break;
             }
             }

+ 1 - 1
Demo/Examples/DigitalSignature/MainWindow.xaml.cs

@@ -263,7 +263,7 @@ namespace DigitalSignature
             {
             {
                 return;
                 return;
             }
             }
-
+            
             if (currentMode == "Viewer")
             if (currentMode == "Viewer")
             {
             {
                 regularViewerControl.ClearViewerControl();
                 regularViewerControl.ClearViewerControl();