Ignore:
Timestamp:
04/18/12 14:04:19 (2 years ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Added standard commit box/button

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeWidgets/Prototypes/OWPCA.py

    r10806 r10807  
    9292class OWPCA(OWWidget): 
    9393    settingsList = ["standardize", "max_components", "variance_covered", 
    94                     "use_generalized_eigenvectors"] 
     94                    "use_generalized_eigenvectors", "auto_commit"] 
    9595    def __init__(self, parent=None, signalManager=None, title="PCA"): 
    9696        OWWidget.__init__(self, parent, signalManager, title) 
     
    104104        self.variance_covered = 100.0 
    105105        self.use_generalized_eigenvectors = False 
     106        self.auto_commit = False 
    106107 
    107108        self.loadSettings() 
    108109 
    109110        self.data = None 
     111        self.changed_flag = False 
    110112 
    111113        ##### 
     
    142144 
    143145        OWGUI.rubber(self.controlArea) 
     146 
     147        box = OWGUI.widgetBox(self.controlArea, "Commit") 
     148        cb = OWGUI.checkBox(box, self, "auto_commit", "Commit on any change") 
     149        b = OWGUI.button(box, self, "Commit", 
     150                         callback=self.update_components) 
     151        OWGUI.setStopper(self, b, cb, "changed_flag", self.update_components) 
    144152 
    145153        self.scree_plot = ScreePlot(self) 
     
    234242        self.update_cutoff_curve() 
    235243        if self.currently_selected != self.number_of_selected_components(): 
    236             self.update_components() 
     244            self.update_components_if() 
    237245 
    238246    def construct_pca_all_comp(self): 
     
    269277        self.update_scree_plot() 
    270278        self.update_cutoff_curve() 
    271         self.update_components() 
    272  
     279        self.update_components_if() 
     280 
     281    def update_components_if(self): 
     282        if self.auto_commit: 
     283            self.update_components() 
     284        else: 
     285            self.changed_flag = True 
     286         
    273287    def update_components(self): 
    274288        """Update the output components. 
    275289        """ 
     290        if self.data is None: 
     291            return  
     292 
    276293        scale = self.projector_full.scale 
    277294        center = self.projector_full.center 
     
    301318        self.send("Eigen Vectors", eigenvectors) 
    302319 
     320        self.changed_flag = False 
     321 
    303322    def eigenvectors_as_table(self, U): 
    304323        features = [Orange.feature.Continuous("C%i" % i) \ 
     
    331350#            self.max_components = int(np.floor(value)) + 1 
    332351#            self.variance_covered = self.variances_cumsum[self.max_components - 1] * 100 
    333             self.update_components() 
     352            self.update_components_if() 
    334353 
    335354    def update_cutoff_curve(self): 
Note: See TracChangeset for help on using the changeset viewer.