Changeset 4050:5ab332dadfbf in orange


Ignore:
Timestamp:
08/07/07 01:13:05 (7 years ago)
Author:
janezd <janez.demsar@…>
Branch:
default
Convert:
d756e8c9d1abee8dd4eb6dea16dff07a79826ff7
Message:
  • Simplified the widget
File:
1 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/Data/OWFile.py

    r4047 r4050  
    2626        #set default settings 
    2727        self.recentFiles=["(none)"] 
    28         self.symbolDC = "?" 
    29         self.symbolDK = "~" 
     28        self.symbolDC = "" 
     29        self.symbolDK = "" 
    3030        self.createNewOn = orange.Variable.MakeStatus.NoRecognizedValues 
    3131        self.domain = None 
     
    4040        button.setMaximumWidth(25) 
    4141 
    42         OWGUI.separator(self.controlArea, 0, 32) 
    43         box = OWGUI.widgetBox(self.controlArea, "Advanced") 
    44  
    45         OWGUI.widgetLabel(box, "Settings for tab-delimited files") 
    46 #        hbox = OWGUI.widgetBox(box, orientation=0) 
    47         hbox = OWGUI.indentedBox(box, addSpace=True) 
    48         OWGUI.lineEdit(hbox, self, "symbolDC", "Don't care symbol:  ", orientation="horizontal", tooltip="Default values: empty fields (space), '?' or 'NA'") 
    49         OWGUI.lineEdit(hbox, self, "symbolDK", "Don't know symbol:  ", orientation="horizontal", tooltip="Default values: '~' or '*'") 
     42#        OWGUI.rubber(self.controlArea) 
     43         
     44        box = OWGUI.widgetBox(self.controlArea, "Advanced", addSpace=True) 
     45 
     46#        OWGUI.widgetLabel(box, "Undefineds in tab-delimited files (besides default ones)") 
     47#        hbox = OWGUI.indentedBox(box, addSpace=True, orientation=False) 
     48#        le = OWGUI.lineEdit(hbox, self, "symbolDC", "Don't care:  ", orientation="horizontal", tooltip="Default values: empty fields (space), '?' or 'NA'") 
     49#        le.setMaximumWidth(48) 
     50#        OWGUI.separator(hbox, 16, 0) 
     51#        le = OWGUI.lineEdit(hbox, self, "symbolDK", "Don't know:  ", orientation="horizontal", tooltip="Default values: '~' or '*'") 
     52#        le.setMaximumWidth(48) 
    5053        OWGUI.comboBox(box, self, "createNewOn",  
    5154                       label = "Create a new attribute when existing attribute(s) ...",  
     
    5558                                "Have mismatching order of values" 
    5659                               ]) 
    57  
    58         OWGUI.rubber(self.controlArea) 
    5960         
    60         self.layout = QVBoxLayout(self.mainArea) 
    61         box = OWGUI.widgetBox(self.mainArea, "Info") 
    62         self.layout.addWidget(box) 
    63         self.info = QTextView(box) 
    64         self.info.setPaper(QBrush(self.backgroundColor())) 
    65         self.info.setFrameShape(0) 
    66         self.info.setFixedSize(400, 400) 
    67         self.info.setText("No data loaded") 
    68          
     61        box = OWGUI.widgetBox(self.controlArea, "Info") 
     62        self.infoa = OWGUI.widgetLabel(box, 'No data loaded.') 
     63        self.infob = OWGUI.widgetLabel(box, '') 
     64        self.warnings = OWGUI.widgetLabel(box, '') 
     65 
     66 
    6967        self.adjustSize() 
    7068 
     
    174172            self.send("Examples", None) 
    175173            self.send("Attribute Definitions", None) 
    176             self.info.setText("No data loaded") 
     174            self.infoa.setText("No data loaded") 
     175            self.infob.setText("") 
     176            self.warnings.setText("") 
    177177            return 
    178178             
     
    189189                self.error(str(errValue)) 
    190190                self.dataDomain = None 
    191                 self.info.setText('No data loaded due to an error') 
     191                self.infoa.setText('No data loaded due to an error') 
     192                self.infob.setText("") 
     193                self.warnings.setText("") 
    192194                return 
    193195                         
    194196        self.dataDomain = data.domain 
    195197 
    196         # update data info 
    197         def describeAttribute(attr): 
    198             vs = "<b>%s</b>: " % attr.name 
    199             if attr.varType == orange.VarTypes.Discrete: 
    200                 if attr.values: 
    201                     vs += ", ".join(attr.values[:5]) 
    202                     if len(attr.values) > 5: 
    203                         vs += " + %d more" % (len(attr.values)-5) 
    204                     else: 
    205                         vs += "." 
    206                 else: 
    207                     vs += "(none)" 
    208             elif attr.varType == orange.VarTypes.Continuous: 
    209                 vs += "continuous (%i dig.)" % attr.numberOfDecimals 
    210             elif attr.varType == orange.VarTypes.String: 
    211                 vs += "text" 
    212             else: 
    213                 vs += "other" 
    214             return vs 
    215              
    216         infos = "" 
     198        self.infoa.setText('%d example(s), ' % len(data) + '%d attribute(s), ' % len(data.domain.attributes) + '%d meta attribute(s).' % len(data.domain.getmetas())) 
    217199        cl = data.domain.classVar 
    218200        if cl: 
    219201            if cl.varType == orange.VarTypes.Continuous: 
    220                 infos += "<b>Regression:</b> Numerical class '%s'." % cl.name 
     202                    self.infob.setText('Regression; Numerical class.') 
    221203            elif cl.varType == orange.VarTypes.Discrete: 
    222                 infos += "<b>Classification:</b> Discrete class '%s' with %d value(s)." % (cl.name, len(cl.values)) 
    223             else: 
    224                 infos += "<b>Class '%s'</b>: neither discrete nor continuous." % cl.name 
     204                    self.infob.setText('Classification; Discrete class with %d value(s).' % len(cl.values)) 
     205            else: 
     206                self.infob.setText("Class neither descrete nor continuous.") 
    225207        else: 
    226             infos += '<b>Data without a dependent variable.</b>' 
     208            self.infob.setText("Data without a dependent variable.") 
    227209         
    228         infos += '<br/><br/><b>Examples:</b> %d example(s)' % len(data) 
    229  
    230210        warnings = "" 
    231211        metas = data.domain.getmetas() 
     
    249229            attrs = [attr.name for attr, stat in zip(data.domain, data.attributeLoadStatus) if stat == status] \ 
    250230                  + [attr.name for id, attr in metas.items() if data.metaAttributeLoadStatus[id] == status] 
    251             print attrs 
    252231            if attrs: 
    253232                warnings += "<li>%s: %s</li>" % (message, ", ".join(attrs)) 
    254              
    255         if warnings: 
    256             infos += "<br/><br/><b>"+"Attribute reuse warnings"+":</b><ul>%s</ul>" % warnings 
    257  
    258         infos += '<br/><br/><b>Attributes:</b><br/>' 
    259         if data.domain.attributes: 
    260             for attr in data.domain.attributes: 
    261                 infos += "&nbsp;&nbsp;&nbsp;&nbsp;%s<br/>" % describeAttribute(attr) 
    262         else: 
    263             infos += "&nbsp;&nbsp;&nbsp;&nbsp;(none)" 
    264                      
    265         if metas: 
    266             infos += '<br/><b>Meta attributes</b><br/>' 
    267             for attr in metas.values(): 
    268                 infos += "&nbsp;&nbsp;&nbsp;&nbsp;%s<br/>" % describeAttribute(attr) 
    269              
    270         self.info.setText(infos) 
     233 
     234        self.warnings.setText(warnings) 
     235        qApp.processEvents() 
     236        self.adjustSize() 
    271237 
    272238        # make new data and send it 
Note: See TracChangeset for help on using the changeset viewer.