From 05d81af0accde653bede6663b2502e02481ea9eb Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr>
Date: Fri, 25 Jul 2008 09:27:44 +0000
Subject: [PATCH] Enhancements on requirements + new Version number

---
 src/ui/DefaultText.java               |  2 +-
 src/ui/MainGUI.java                   |  8 +++--
 src/ui/req/TAttributeObserver.java    | 25 +++++++++++++---
 src/ui/req/TAttributeRequirement.java | 31 ++++++++++++++-----
 src/ui/window/JDialogObserver.java    | 43 +++++++++++++++++++--------
 5 files changed, 83 insertions(+), 26 deletions(-)

diff --git a/src/ui/DefaultText.java b/src/ui/DefaultText.java
index 32eb86adaa..99a340a33e 100755
--- a/src/ui/DefaultText.java
+++ b/src/ui/DefaultText.java
@@ -58,7 +58,7 @@ public class DefaultText  {
     }
     
     public static String getVersion() {
-        return "0.91-beta3"; /* Set new release June, 10th, 2008 */
+        return "0.91-beta4"; /* Set new release July, 24th, 2008 */
     }
 	
 	public static String getFullVersion() {
diff --git a/src/ui/MainGUI.java b/src/ui/MainGUI.java
index 3a9a7a2c5c..6b1490928b 100755
--- a/src/ui/MainGUI.java
+++ b/src/ui/MainGUI.java
@@ -2687,8 +2687,12 @@ public	class MainGUI implements ActionListener, WindowListener, KeyListener {
     }
 	
 	public void generateTMLTxt() {
-	   //System.out.println("Generating TML code");
-       gtm.generateTMLTxt(file.getAbsolutePath());
+		String path = ConfigurationTTool.FILEPath;
+		if (file != null) {
+			path = file.getAbsolutePath();
+		}
+	  //System.out.println("Generating TML code: "+file.getAbsolutePath());
+       gtm.generateTMLTxt(path);
 	   //System.out.println("Done");
     }
     
diff --git a/src/ui/req/TAttributeObserver.java b/src/ui/req/TAttributeObserver.java
index e0fb82e172..ed2a26494b 100755
--- a/src/ui/req/TAttributeObserver.java
+++ b/src/ui/req/TAttributeObserver.java
@@ -66,6 +66,7 @@ public class TAttributeObserver extends TGCWithoutInternalComponent {
     
     protected String text;
     protected String []texts;
+	protected String violatedAction = "noAction";
 
     
     public TAttributeObserver(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
@@ -122,7 +123,7 @@ public class TAttributeObserver extends TGCWithoutInternalComponent {
         for(i=0; i<texts.length; i++) {
             s = texts[i];
             if (i == 0) {
-                s = "diagrams=\"" + s;
+                s = "Diagram=\"" + s;
             }
             if (i == (texts.length - 1)) {
                 s = s + "\"";
@@ -130,6 +131,7 @@ public class TAttributeObserver extends TGCWithoutInternalComponent {
             g.drawString(s, x + textX, y + textY + i* h);
             
         }
+		g.drawString("Violated_Action=\"" + violatedAction + "\"", x + textX, y + textY + i* h);
     }
     
     public void makeValue() {
@@ -150,7 +152,7 @@ public class TAttributeObserver extends TGCWithoutInternalComponent {
         //System.out.println("Regular resize" + toString());
         int desiredWidth = minWidth;
         int h = myG.getFontMetrics().getHeight();
-        int desiredHeight =  Math.max(minHeight, h * (texts.length +2) + minHeight);
+        int desiredHeight =  Math.max(minHeight, h * (texts.length +1) + minHeight);
         
         String s ;
         for(int i=0; i<texts.length; i++) {
@@ -162,6 +164,7 @@ public class TAttributeObserver extends TGCWithoutInternalComponent {
                 s = s + "\"";
             }
             desiredWidth = Math.max(desiredWidth,  myG.getFontMetrics().stringWidth(s) + 2 * textX);
+			desiredWidth = Math.max(desiredWidth,  myG.getFontMetrics().stringWidth(violatedAction + "Violated action=\"\"") + 2 * textX);
         }
         
         minDesiredWidth = desiredWidth;
@@ -184,7 +187,7 @@ public class TAttributeObserver extends TGCWithoutInternalComponent {
     }
     
     public boolean editOndoubleClick(JFrame frame) {
-        JDialogObserver jdo = new JDialogObserver(frame, "Setting diagrams of Observer " + ((RequirementObserver)(getTopFather())).getRequirementObserverName(), text);
+        JDialogObserver jdo = new JDialogObserver(frame, "Setting diagrams of Observer " + ((RequirementObserver)(getTopFather())).getRequirementObserverName(), text, violatedAction);
         jdo.setSize(750, 400);
         GraphicLib.centerOnParent(jdo);
         jdo.show();
@@ -194,6 +197,7 @@ public class TAttributeObserver extends TGCWithoutInternalComponent {
         }
         
         text = jdo.getText();
+		violatedAction = jdo.getViolatedAction();
 
         makeValue();
         checkMySize();
@@ -218,6 +222,9 @@ public class TAttributeObserver extends TGCWithoutInternalComponent {
                 sb.append("\" />\n");
             }
         }
+		sb.append("<violated data=\"");
+        sb.append(violatedAction);
+        sb.append("\" />\n");
         sb.append("</extraparam>\n");
         return new String(sb);
     }
@@ -254,7 +261,13 @@ public class TAttributeObserver extends TGCWithoutInternalComponent {
                                     s = "";
                                 }
                                 text += GTURTLEModeling.decodeString(s) + "\n";
-                            } 
+                            } else if (elt.getTagName().equals("violated")) {
+                                //System.out.println("Analyzing line");
+                                violatedAction = elt.getAttribute("data");
+                                if (violatedAction.equals("null")) {
+                                    violatedAction = "";
+                                }
+                            }
                         }
                     }
                 }
@@ -268,5 +281,9 @@ public class TAttributeObserver extends TGCWithoutInternalComponent {
         
         makeValue();
     }
+	
+	public String getViolatedAction() {
+        return violatedAction;
+    }
     
 }
diff --git a/src/ui/req/TAttributeRequirement.java b/src/ui/req/TAttributeRequirement.java
index 8434d63bb4..6406f72511 100755
--- a/src/ui/req/TAttributeRequirement.java
+++ b/src/ui/req/TAttributeRequirement.java
@@ -106,6 +106,14 @@ public class TAttributeRequirement extends TGCWithoutInternalComponent {
     
     public void internalDrawing(Graphics g) {
         int i;
+		TGComponent tgc = getTopFather();
+		boolean formal = ((tgc instanceof Requirement) && (((Requirement)tgc).isFormal()));
+		String text;
+		if (formal) {
+			text = "TRDD";
+		} else {
+			text = "Text";
+		}
         
         if (!tdp.isScaled()) {
             myG = g;
@@ -128,7 +136,7 @@ public class TAttributeRequirement extends TGCWithoutInternalComponent {
         for(i=0; i<texts.length; i++) {
             s = texts[i];
             if (i == 0) {
-                s = "text=\"" + s;
+                s = text + "=\"" + s;
             }
             if (i == (texts.length - 1)) {
                 s = s + "\"";
@@ -141,12 +149,12 @@ public class TAttributeRequirement extends TGCWithoutInternalComponent {
         i++;
         g.drawString("Risk=\"" + criticality + "\"", x + textX, y + textY + i* h);
         i++;
-        TGComponent tgc = getTopFather();
-        if( (tgc instanceof Requirement) && (((Requirement)tgc).isFormal())) {
+        
+        /*if(formal) {
             g.drawString("Violated action=\"" + violatedAction + "\"", x + textX, y + textY + i* h);
         } else {
-            g.drawString("Violated action=\"Not Applicable\"", x + textX, y + textY + i* h);
-        }
+            //g.drawString("Violated action=\"Not Applicable\"", x + textX, y + textY + i* h);
+        }*/
     }
     
     public void makeValue() {
@@ -163,17 +171,26 @@ public class TAttributeRequirement extends TGCWithoutInternalComponent {
         if (myG == null) {
             return;
         }
+		
+		TGComponent tgc = getTopFather();
+		boolean formal = ((tgc instanceof Requirement) && (((Requirement)tgc).isFormal()));
+		String text;
+		if (formal) {
+			text = "TRDD";
+		} else {
+			text = "Text";
+		}
         
         //System.out.println("Regular resize" + toString());
         int desiredWidth = minWidth;
         int h = myG.getFontMetrics().getHeight();
-        int desiredHeight =  Math.max(minHeight, h * (texts.length +2) + minHeight);
+        int desiredHeight =  Math.max(minHeight, h * (texts.length +1) + minHeight);
         
         String s ;
         for(int i=0; i<texts.length; i++) {
              s = texts[i];
               if (i == 0) {
-                s = "text=\"" + s;
+                s = text + "=\"" + s;
             }
             if (i == (texts.length - 1)) {
                 s = s + "\"";
diff --git a/src/ui/window/JDialogObserver.java b/src/ui/window/JDialogObserver.java
index a54027f6d9..9940350543 100755
--- a/src/ui/window/JDialogObserver.java
+++ b/src/ui/window/JDialogObserver.java
@@ -59,12 +59,13 @@ public class JDialogObserver extends javax.swing.JDialog implements ActionListen
     
     private JPanel panel1;
     private Frame frame;
-    private String text;
+    private String diagram;
+	private String violatedAction;
     
     // Panel1
-    protected JTextArea jta;
-    
-    
+    protected JTextField diagramBox;
+    private JTextField violatedActionBox;
+	
     //Panel2
     
     // Main Panel
@@ -72,11 +73,12 @@ public class JDialogObserver extends javax.swing.JDialog implements ActionListen
     private JButton cancelButton;
     
     /** Creates new form  */
-    public JDialogObserver(Frame _frame, String _title, String _text) {
+    public JDialogObserver(Frame _frame, String _title, String _diagram, String _violatedAction) {
         super(_frame, _title, true);
         frame = _frame;
-        text = _text;
-
+        diagram = _diagram;
+		violatedAction = _violatedAction;
+		
         initComponents();
         myInitComponents();
         pack();
@@ -100,14 +102,27 @@ public class JDialogObserver extends javax.swing.JDialog implements ActionListen
         panel1 = new JPanel();
         panel1.setLayout(gridbag1);
 
-        panel1.setBorder(new javax.swing.border.TitledBorder("Setting diagrams of observer "));
+        panel1.setBorder(new javax.swing.border.TitledBorder("Setting information of observer "));
         panel1.setPreferredSize(new Dimension(350, 250));
         
-        c1.gridwidth = GridBagConstraints.REMAINDER; //end row
         c1.gridheight = 1;
         c1.weighty = 1.0;
         c1.weightx = 1.0;
-        jta = new JTextArea();
+		
+		c1.gridwidth = 1;
+		panel1.add(new JLabel("Diagram:"), c1);
+        c1.gridwidth = GridBagConstraints.REMAINDER; //end row
+        diagramBox = new JTextField(diagram, 15);
+        panel1.add(diagramBox, c1);
+		
+		c1.gridwidth = 1;
+        panel1.add(new JLabel("Violated action:"), c1);
+        c1.gridwidth = GridBagConstraints.REMAINDER; //end row
+        violatedActionBox = new JTextField(violatedAction, 15);
+        panel1.add(violatedActionBox, c1);
+		
+		
+        /*jta = new JTextArea();
         jta.setEditable(true);
         jta.setMargin(new Insets(10, 10, 10, 10));
         jta.setTabSize(3);
@@ -115,7 +130,7 @@ public class JDialogObserver extends javax.swing.JDialog implements ActionListen
         jta.setFont(new Font("times", Font.PLAIN, 12));
         jta.setPreferredSize(new Dimension(300, 200));
         JScrollPane jsp = new JScrollPane(jta, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
-        panel1.add(jsp);
+        panel1.add(jsp);*/
         //}
         
 
@@ -175,7 +190,11 @@ public class JDialogObserver extends javax.swing.JDialog implements ActionListen
     }
     
     public String getText() {
-        return jta.getText();
+        return diagramBox.getText();
+    }
+	
+	public String getViolatedAction() {
+        return violatedActionBox.getText();
     }
    
 }
-- 
GitLab