Changeset 278cc25 in sasview for guiframe/local_perspectives/plotting
- Timestamp:
- May 27, 2008 2:32:45 PM (17 years ago)
- Branches:
- master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- 4a5de6f
- Parents:
- 14b8154
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
guiframe/local_perspectives/plotting/plotting.py
r383189f9 r278cc25 52 52 ## Unique ID (from gui_manager) 53 53 self.uid = None 54 55 ## Action IDs for internal call-backs 56 self.action_ids = {} 54 57 55 58 ## Graph … … 83 86 # Check axis labels 84 87 #TODO: Should re-factor this 85 if event.plot._xunit != self.graph.prop["xunit"]:86 87 88 if event.plot._yunit != self.graph.prop["yunit"]:89 88 #if event.plot._xunit != self.graph.prop["xunit"]: 89 self.graph.xaxis(event.plot._xaxis, event.plot._xunit) 90 91 #if event.plot._yunit != self.graph.prop["yunit"]: 92 self.graph.yaxis(event.plot._yaxis, event.plot._yunit) 90 93 91 94 self.graph.render(self) … … 100 103 slicerpop = PanelMenu() 101 104 slicerpop.set_plots(self.plots) 105 106 # Option to save the data displayed 107 id = wx.NewId() 108 for plot in self.graph.plottables: 109 name = plot.name 110 slicerpop.Append(id, "&Save %s points" % name) 111 self.action_ids[str(id)] = plot 112 wx.EVT_MENU(self, id, self._onSave) 102 113 103 114 # Various plot options … … 127 138 pos = self.ScreenToClient(pos) 128 139 self.PopupMenu(slicerpop, pos) 140 141 def _onSave(self, evt): 142 """ 143 Save a data set to a text file 144 @param evt: Menu event 145 """ 146 import os 147 id = str(evt.GetId()) 148 if id in self.action_ids: 149 150 path = None 151 dlg = wx.FileDialog(self, "Choose a file", os.getcwd(), "", "*.txt", wx.SAVE) 152 if dlg.ShowModal() == wx.ID_OK: 153 path = dlg.GetPath() 154 mypath = os.path.basename(path) 155 print path 156 dlg.Destroy() 157 158 if not path == None: 159 out = open(path, 'w') 160 has_errors = True 161 if self.action_ids[id].dy==None or self.action_ids[id].dy==[]: 162 has_errors = False 163 164 # Sanity check 165 if has_errors: 166 try: 167 if len(self.action_ids[id].y) != len(self.action_ids[id].dy): 168 print "Y and dY have different lengths" 169 has_errors = False 170 except: 171 has_errors = False 172 173 if has_errors: 174 out.write("<X> <Y> <dY>\n") 175 else: 176 out.write("<X> <Y>\n") 177 178 for i in range(len(self.action_ids[id].x)): 179 if has_errors: 180 out.write("%g %g %g\n" % (self.action_ids[id].x[i], 181 self.action_ids[id].y[i], 182 self.action_ids[id].dy[i])) 183 else: 184 out.write("%g %g\n" % (self.action_ids[id].x[i], 185 self.action_ids[id].y[i])) 186 187 out.close() 188 129 189 130 190 def _onToggleScale(self, event):
Note: See TracChangeset
for help on using the changeset viewer.