From 4c8113071b9025086827b7739dffa84cc09f1dea Mon Sep 17 00:00:00 2001
From: Minh Hiep Pham <minh.pham@telecom-paristech.fr>
Date: Thu, 7 Mar 2019 19:32:31 +0100
Subject: [PATCH] added operation question mark in CPU node + fixed help text
 in JDialogPragma

---
 src/main/java/ui/window/JDialogCPUNode.java | 13 ++++++++++++-
 src/main/java/ui/window/JDialogPragma.java  | 11 +++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/src/main/java/ui/window/JDialogCPUNode.java b/src/main/java/ui/window/JDialogCPUNode.java
index 2a38d61796..e58ab408c1 100644
--- a/src/main/java/ui/window/JDialogCPUNode.java
+++ b/src/main/java/ui/window/JDialogCPUNode.java
@@ -211,6 +211,9 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         JTextArea jft16 = new JTextArea("CPU Extension Construct");
         instructionHelpList.add(jft16);
 
+        JTextArea jft17 = new JTextArea("Operation");
+        instructionHelpList.add(jft17);
+
         for(int i = 0; i < instructionHelpList.size(); i++) {
             Icon myIcon = IconManager.imgic32;
             JButton but = new JButton(myIcon);
@@ -512,10 +515,18 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         // operation
         c4.gridwidth = 1;
         panel4.add(new JLabel("Operation:"), c4);
-        c4.gridwidth = GridBagConstraints.REMAINDER; //end row
+        //c4.gridwidth = GridBagConstraints.REMAINDER; //end row
         operation = new JTextField(""+node.getOperation(), 15);
         panel4.add(operation, c4);
 
+        //issue 183
+        c4.weighty = 0.5;
+        c4.weightx = 0.5;
+        c4.gridwidth = GridBagConstraints.REMAINDER;
+        panel4.add(buttons.get(16),c4);
+        c4.weighty = 1.0;
+        c4.weightx = 1.0;
+
         // extension constructs
         c4.gridwidth = 1;
         panel4.add(new JLabel("CPU Extension Construct:"), c4);
diff --git a/src/main/java/ui/window/JDialogPragma.java b/src/main/java/ui/window/JDialogPragma.java
index acb0519301..867455561d 100644
--- a/src/main/java/ui/window/JDialogPragma.java
+++ b/src/main/java/ui/window/JDialogPragma.java
@@ -38,6 +38,7 @@
 
 package ui.window;
 
+import myutil.TraceManager;
 import ui.util.IconManager;
 
 import javax.swing.*;
@@ -308,6 +309,7 @@ public class JDialogPragma extends JDialogBase implements ActionListener {
         //setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);	
         helpPopup = new JPopupMenu();
         JTextArea jft = new JTextArea("Pragma Guidelines: \n #Authenticity: Compare if two Attributes are equal at given states \n #Confidentiality: Query whether the attacker knows the value of this attribute. \n #PublicConstant: Declare string as public constant \n #PrivateConstant: Declare string as private constant \n #InitialSessionKnowledge: Knowledge at the start of each session\n #InitialSystemKnowledge: Knowledge at the start of the system \n #PrivatePublicKeys: Set two attribute of a block as Private and Public Key respectively \n #Public: Declare variable public \n #SecrecyAssumption: Assume attribute confidential, but query to verify \n #Secret: See #Confidentiality");
+        jft.setEditable(false);
         helpPopup.add(jft);
         textarea = new JTextArea();
 
@@ -387,6 +389,15 @@ public class JDialogPragma extends JDialogBase implements ActionListener {
                 help();
             }
         });
+
+        helpPopup.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "closeJTextArea");
+        helpPopup.getActionMap().put("closeJTextArea", new AbstractAction() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                helpPopup.setVisible(false);
+            }
+        });
+
         JPanel jp = new JPanel();
         jp.add(cancel);
         jp.add(close);
-- 
GitLab