ソースを参照

compdfkit(win) - 调整Dialog弹出的逻辑结构

weixiangjie 1 年間 前
コミット
00a9685619

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

@@ -17,6 +17,7 @@ using System.Windows.Media.Imaging;
 using System.Windows.Navigation;
 using System.Windows.Shapes;
 using Compdfkit_Tools.DigitalSignature.CPDFSignatureListControl;
+using ComPDFKit.DigitalSign;
 
 namespace Compdfkit_Tools.PDFControl
 {
@@ -43,6 +44,8 @@ namespace Compdfkit_Tools.PDFControl
         private ToggleButton signatureButton;
 
         public event EventHandler DeleteSignatureEvent;
+        public event EventHandler<CPDFSignature> ViewCertificateEvent; 
+        public event EventHandler<CPDFSignature> ViewSignatureEvent;
         public CPDFBOTABarControl(BOTATools botaTools)
         {
             InitializeComponent();
@@ -438,6 +441,14 @@ namespace Compdfkit_Tools.PDFControl
                                 {
                                     DeleteSignatureEvent?.Invoke(this, null);
                                 };
+                                signatureControl.ViewCertificateEvent += (sender, args) =>
+                                {
+                                    ViewCertificateEvent?.Invoke(this, args);
+                                };
+                                signatureControl.ViewSignatureEvent += (sender, args) =>
+                                {
+                                    ViewSignatureEvent?.Invoke(this, args);
+                                };
                             }
                         }
                     }

+ 5 - 7
Demo/Examples/Compdfkit_Tools/DigitalSignature/CPDFSignatureListControl/CPDFSignatureListControl.xaml.cs

@@ -29,7 +29,9 @@ namespace Compdfkit_Tools.DigitalSignature.CPDFSignatureListControl
         private List<SignatureData> signatureDataList;
         private List<CPDFSignature> signatureList;
         private ContextMenu popContextMenu;
-
+        
+        public event EventHandler<CPDFSignature> ViewCertificateEvent;
+        public event EventHandler<CPDFSignature> ViewSignatureEvent;
         public event EventHandler DeleteSignatureEvent;
         public CPDFSignatureListControl()
         {
@@ -57,9 +59,7 @@ namespace Compdfkit_Tools.DigitalSignature.CPDFSignatureListControl
             int index = SignatureList.SelectedIndex;
             if (index >= 0 && index < signatureList.Count)
             {
-                VerifyDigitalSignatureControl.VerifyDigitalSignatureControl dialog = new VerifyDigitalSignatureControl.VerifyDigitalSignatureControl();
-                dialog.Show();
-                dialog.InitWithSignature(signatureList[index]);
+                ViewSignatureEvent?.Invoke(this, signatureList[index]);
             }
         }
         
@@ -90,9 +90,7 @@ namespace Compdfkit_Tools.DigitalSignature.CPDFSignatureListControl
             int index = SignatureList.SelectedIndex;
             if (index >= 0 && index < signatureList.Count)
             {
-                ViewCertificateDialog dialog = new ViewCertificateDialog();
-                dialog.Show();
-                dialog.InitCertificateList(signatureList[index]);
+                ViewCertificateEvent?.Invoke(this, signatureList[index]);
             }
         }
 

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

@@ -24,7 +24,6 @@ namespace Compdfkit_Tools.PDFControl
         private SignatureStatusBarControl signatureStatusBarControl;
         private PanelState panelState = PanelState.GetInstance();
         private CPDFDisplaySettingsControl displaySettingsControl = null;
-        private CPDFBOTABarControl botaControl;
         private bool _isActive = false;
         public event EventHandler<bool> OnCanSaveChanged;
         private CPDFSignatureWidget currentSignatureWidget;
@@ -123,26 +122,21 @@ namespace Compdfkit_Tools.PDFControl
         }
          
 
-        private void BotaControlOnDeleteSignatureEvent(object sender, EventArgs e)
+        public void BotaControlOnDeleteSignatureEvent(object sender, EventArgs e)
         {
-            RefreshDigitalSignatureList();
+            UpdateSignatureStatusBarControl();
         }
 
         private void PDFView_WidgetClickHandler(object sender, WidgetArgs e)
         {
-            Window parentWindow = Window.GetWindow((DependencyObject)sender);
             var signatureWidget = (e as WidgetSignArgs).Sign;
             if (signatureWidget.IsSigned())
             {
-                VerifyDigitalSignatureControl verifyDigitalSignatureControl = new VerifyDigitalSignatureControl
-                {
-                    Owner = parentWindow
-                };
-                verifyDigitalSignatureControl.InitWithSignature(signatureWidget.GetSignature());
-                verifyDigitalSignatureControl.ShowDialog();
+                ViewSignatureEvent(sender, signatureWidget.GetSignature());
             }
             else
             {
+                Window parentWindow = Window.GetWindow((DependencyObject)sender);
                 AddCertificationDialog addCertificationControl = new AddCertificationDialog
                 {
                     Owner = parentWindow
@@ -186,11 +180,11 @@ namespace Compdfkit_Tools.PDFControl
             {
                 ToggleButton button = sender as ToggleButton;
                 button.IsChecked = false;
-                RefreshDigitalSignatureList();
+                UpdateSignatureStatusBarControl();
             }
         }
 
-        private void RefreshDigitalSignatureList()
+        private void UpdateSignatureStatusBarControl()
         {
             signatureStatusBarControl.SetStatus(SignatureHelper.GetEffectiveSignatureList(PDFViewControl.PDFView.Document.GetSignatureList()));
         }
@@ -267,10 +261,14 @@ namespace Compdfkit_Tools.PDFControl
 
         public void SetBOTAContainer(CPDFBOTABarControl botaControl)
         {
-            this.BotaContainer.Child = botaControl;
-            this.botaControl = botaControl;
-            this.botaControl.DeleteSignatureEvent -= BotaControlOnDeleteSignatureEvent;
-            this.botaControl.DeleteSignatureEvent += BotaControlOnDeleteSignatureEvent;
+            BotaContainer.Child = botaControl;
+        }
+
+        public void ViewCertificateEvent(object sender, CPDFSignature e)
+        {
+            ViewCertificateDialog dialog = new ViewCertificateDialog();
+            dialog.Show();
+            dialog.InitCertificateList(e);
         }
 
         public void SetDisplaySettingsControl(CPDFDisplaySettingsControl displaySettingsControl)
@@ -335,5 +333,18 @@ namespace Compdfkit_Tools.PDFControl
                 PDFViewControl.PDFView.UndoManager?.Redo();
             }
         }
+
+        public void ViewSignatureEvent(object sender, CPDFSignature e)
+        {
+            Window parentWindow = Window.GetWindow((DependencyObject)sender);
+            VerifyDigitalSignatureControl dialog = new VerifyDigitalSignatureControl()
+            {
+                Owner = parentWindow
+            };
+            dialog.ViewCertificateEvent -= ViewCertificateEvent;
+            dialog.ViewCertificateEvent += ViewCertificateEvent;
+            dialog.InitWithSignature(e);
+            dialog.ShowDialog();
+        }
     }
 }

+ 3 - 3
Demo/Examples/Compdfkit_Tools/DigitalSignature/VerifyDigitalSignatureControl/VerifyDigitalSignatureControl.xaml.cs

@@ -1,3 +1,4 @@
+using System;
 using System.Windows;
 using Compdfkit_Tools.PDFControl;
 using ComPDFKit.DigitalSign;
@@ -7,6 +8,7 @@ namespace Compdfkit_Tools.DigitalSignature.VerifyDigitalSignatureControl
     public partial class VerifyDigitalSignatureControl : Window
     {
         private CPDFSignature signature;
+        public event EventHandler<CPDFSignature> ViewCertificateEvent;
         
         public VerifyDigitalSignatureControl()
         {
@@ -22,9 +24,7 @@ namespace Compdfkit_Tools.DigitalSignature.VerifyDigitalSignatureControl
 
         private void ViewCertificates_OnClick(object sender, RoutedEventArgs e)
         {
-            ViewCertificateDialog dialog = new ViewCertificateDialog();
-            dialog.Show();
-            dialog.InitCertificateList(signature);
+            ViewCertificateEvent?.Invoke(this, signature);
         }
     }
 }

+ 0 - 28
Demo/Examples/Compdfkit_Tools/DigitalSignature/ViewCertificationControl/CertificateInfoControl.xaml.cs

@@ -16,34 +16,6 @@ using System.Windows.Shapes;
 using ComPDFKit.DigitalSign;
 
 namespace Compdfkit_Tools.PDFControl {
-    public class SummaryInfo
-    {
-        public string Award;
-        public string Grantor;
-        public string ValidityPeriod;
-        public string AnticipatedUse;
-    }
-    
-    public class DetailInfo
-    {
-        public string Version;
-        public string SignatureAlgorithm;
-        public string Thematic;
-        public string ProductKey;
-        public string ValidityPeriod;
-        public string CertificatePolicy;
-        public string CrlDistributionPoint;
-        public string X509Data;
-        public string AuthorityInfoAccess;
-        public string AuthorityKeyIdentifier;
-        public string SubjectKeyIdentifier;
-        public string BasicConstraints;
-        public string KeyUsage;
-        public string PublicKey;
-        public string SHA1Digest;
-        public string MD5Digest;
-    }
-    
     public partial class CertificateInfoControl : UserControl
     {
         public CertificateInfoControl()

+ 7 - 0
Demo/Examples/DigitalSignature/MainWindow.xaml.cs

@@ -203,6 +203,13 @@ namespace DigitalSignature
             ModeComboBox.SelectedIndex = 0;
             botaBarControl.InitWithPDFViewer(pdfViewer.PDFView);
             botaBarControl.SelectBotaTool(BOTATools.Thumbnail);
+            botaBarControl.DeleteSignatureEvent -= digitalSignatureControl.BotaControlOnDeleteSignatureEvent;
+            botaBarControl.DeleteSignatureEvent += digitalSignatureControl.BotaControlOnDeleteSignatureEvent;
+            botaBarControl.ViewCertificateEvent -= digitalSignatureControl.ViewCertificateEvent;
+            botaBarControl.ViewCertificateEvent += digitalSignatureControl.ViewCertificateEvent;
+            botaBarControl.ViewSignatureEvent -= digitalSignatureControl.ViewSignatureEvent;    
+            botaBarControl.ViewSignatureEvent += digitalSignatureControl.ViewSignatureEvent;
+            
             displaySettingsControl.InitWithPDFViewer(pdfViewer.PDFView);
             LoadCustomControl();
             pdfViewer.PDFView.ChangeFitMode(FitMode.FitWidth);