]> granicus.if.org Git - clang/commitdiff
Add "SelectionParameter" class to represent drop-down boxes.
authorTed Kremenek <kremenek@apple.com>
Tue, 30 Sep 2008 16:37:50 +0000 (16:37 +0000)
committerTed Kremenek <kremenek@apple.com>
Tue, 30 Sep 2008 16:37:50 +0000 (16:37 +0000)
Added "Classification" field to Radar filing.
Modified FileRadar.scpt to take the classification as an argument.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56854 91177308-0d34-0410-b5e6-96231b3b80d8

tools/scan-view/Reporter.py
tools/scan-view/Resources/FileRadar.scpt

index ba7b733be285a39b4a7488095089dcab8c5de2f9..2f05fdfd837157a5d7dea617cd28289a12f2908b 100644 (file)
@@ -37,24 +37,34 @@ from email.mime.text import MIMEText
 class ReporterParameter:
   def __init__(self, n):
     self.name = n
-    
   def getName(self):
     return self.name
-
+  def getValue(self,r,bugtype,getConfigOption):
+     return getConfigOption(r.getName(),self.getName())
   def saveConfigValue(self):
     return True
 
 class TextParameter (ReporterParameter):
-  def getValue(self,r,bugtype,getConfigOption):
-     return getConfigOption(r.getName(),self.getName())
-
   def getHTML(self,r,bugtype,getConfigOption):
     return """\
 <tr>
-  <td class="form_clabel">%s:</td>
-  <td class="form_value"><input type="text" name="%s_%s" value="%s"></td>
+<td class="form_clabel">%s:</td>
+<td class="form_value"><input type="text" name="%s_%s" value="%s"></td>
 </tr>"""%(self.getName(),r.getName(),self.getName(),self.getValue(r,bugtype,getConfigOption))
 
+class SelectionParameter (ReporterParameter):
+  def __init__(self, n, values):
+    ReporterParameter.__init__(self,n)
+    self.values = values
+    
+  def getHTML(self,r,bugtype,getConfigOption):
+    return """\
+<tr>
+<td class="form_clabel">%s:</td><td class="form_value"><select name="%s_%s">
+%s
+</select></td>"""%(self.getName(),r.getName(),self.getName(),'\n'.join(["""\
+<option value="%s">%s</option>"""%(o[0],o[1]) for o in self.values]))
+
 #===------------------------------------------------------------------------===#
 # Reporters
 #===------------------------------------------------------------------------===#
@@ -156,11 +166,16 @@ class RadarReporter:
         return 'Radar'
 
     def getParameters(self):
-        return map(lambda x:TextParameter(x),['Component', 'Component Version'])
+        return [ TextParameter('Component'), TextParameter('Component Version'),
+                 SelectionParameter('Classification',
+                  [ ['1', 'Security'], ['2', 'Crash/Hang/Data Loss'],
+                    ['3', 'Performance'], ['4', 'UI/Usability'],
+                    ['6', 'Serious Bug'], ['7', 'Other'] ]) ]
 
     def fileReport(self, report, parameters):
         component = parameters.get('Component', '')
         componentVersion = parameters.get('Component Version', '')
+        classification = parameters.get('Classification', '')
         personID = ""
         diagnosis = ""
         config = ""
@@ -171,13 +186,12 @@ class RadarReporter:
             componentVersion = 'X'
 
         script = os.path.join(os.path.dirname(__file__),'Resources/FileRadar.scpt')
-        args = ['osascript', script, component, componentVersion, personID, report.title,
+        args = ['osascript', script, component, componentVersion, classification, personID, report.title,
                 report.description, diagnosis, config] + map(os.path.abspath, report.files)
 #        print >>sys.stderr, args
-       try:
-                   p = subprocess.Popen(args, 
-                                 stdout=subprocess.PIPE, stderr=subprocess.PIPE)
-               except:
+        try:
+          p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+        except:
             raise ReportFailure("Unable to file radar (AppleScript failure).")
         data, err = p.communicate()
         res = p.wait()
index 884b1da34888fd1f7e940d48d6089d87ca361785..7009ab9b761f5e7853e91c8a49c746021f7c834a 100644 (file)
Binary files a/tools/scan-view/Resources/FileRadar.scpt and b/tools/scan-view/Resources/FileRadar.scpt differ