diff --git a/src/main/java/ui/window/JDialogCPUNode.java b/src/main/java/ui/window/JDialogCPUNode.java index 2a38d61796febbd0c1b3c754c5b9d8675c7c30cc..e58ab408c13d9c42815d4c4a58cfa93a403fd3f3 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 acb05193016bf7578ddabc20cc9f237bd12176c0..867455561d2b07cb99d8244be2bc237b20a09a16 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);