def setSessionDetail(self, grid, session, begin_row, begin_col): """ Sets session detail in GUI Arguments: grid -- wx.grid.Grid The grid to add session details t session -- model_runner_db.CalibrationSession begin_row -- int The row to begin adding values to begin_col -- int The column to begin adding values to """ #self.sessionDetail.Clear() #self.sessionDetail.WriteText("id: %s\nobs_filename: %s" % # (session.id, session.obs_filename)) grid.ClearGrid() grid.SetCellValue(begin_row, begin_col, str(session.starttime)) if session.endtime: grid.SetCellValue(begin_row+1, begin_col, str(session.endtime)) grid.SetCellValue(begin_row+2, begin_col, session.user) grid.SetCellValue(begin_row+3, begin_col, session.project) grid.SetCellValue(begin_row+4, begin_col, str(session.iterations)) grid.SetCellValue(begin_row+5, begin_col, str(session.processes)) grid.SetCellValue(begin_row+6, begin_col, session.status) if session.obs_filename: grid.SetCellValue(begin_row+7, begin_col, session.obs_filename) if session.notes: grid.SetCellValue(begin_row+8, begin_col, session.notes) grid.AutoSizeColumns() grid.AutoSizeRows()
def addSessionsToGrid(self, grid, begin_row, begin_col): """ Add session.id to each row of the grid Arguments: grid -- wx.grid.Grid The grid to add session IDs to begin_row -- int The row to begin adding values to begin_col -- int The column to begin adding values to """ if None == self.sessions: self.sessions = self.calibratorDB.getSessions() grid.ClearGrid() # Add rows to the grid if necessary numSessions = len(self.sessions) rowsNeeded = numSessions - grid.NumberRows if rowsNeeded > 0: grid.AppendRows(rowsNeeded) myRow = begin_row for session in self.sessions: grid.SetCellValue(myRow, begin_col, str(session.id)) myRow += 1 grid.AutoSizeColumns() grid.AutoSizeRows()
def __init__(self, parent, vlist=[], ntitle="Values"): wx.Frame.__init__(self, parent, -1, ntitle, wx.DefaultPosition, wx.Size(400, 500)) global dir_path self.SetMenu() icon_path = os.path.join(dir_path, "Icon") self.icon = wx.Icon(os.path.join(icon_path, "Text.ico"), wx.BITMAP_TYPE_ICO) self.SetIcon(self.icon) wx.BeginBusyCursor() self.grid = grid = wx.Grid(self, -1) rtotal = len(vlist) try: ctotal = len(vlist[0]) except: ctotal = 1 grid.CreateGrid(rtotal, ctotal) grid.SetColLabelAlignment(wx.ALIGN_LEFT, wx.ALIGN_BOTTOM) row = 0 for val in vlist: col = 0 for set in val: grid.SetCellValue(row, col, str(set)) col += 1 row += 1 grid.AutoSizeRows() grid.Refresh() wx.EndBusyCursor()
def changeGrid(grid, data, colnames, rownames, oddcol="#f0f0f0", evencol="white"): if len(data) > 0: model = MinimalGridTableModel(len(data), len(data[0]), data, colnames, rownames, oddcol, evencol) grid.SetTable(model, True) grid.Refresh() grid.AutoSizeRows() grid.AutoSizeColumns() return grid
def addRunDetailsToGrid(self, grid, run, begin_row, begin_col): """ Sets run detail in GUI Arguments: grid -- wx.grid.Grid The grid to add run details to run -- model_runner_db.CalibrationRun begin_row -- int The row to begin adding values to begin_col -- int The column to begin adding values to """ grid.ClearGrid() grid.SetCellValue(begin_row, begin_col, run.worldfile) grid.SetCellValue(begin_row+1, begin_col, run.output_path) grid.SetCellValue(begin_row+2, begin_col, run.cmd_raw) if run.param_s1: grid.SetCellValue(begin_row+3, begin_col, "%.4f" % run.param_s1) if run.param_s2: grid.SetCellValue(begin_row+4, begin_col, "%.4f" % run.param_s2) if run.param_s3: grid.SetCellValue(begin_row+5, begin_col, "%.4f" % run.param_s3) if run.param_sv1: grid.SetCellValue(begin_row+6, begin_col, "%.4f" % run.param_sv1) if run.param_sv2: grid.SetCellValue(begin_row+7, begin_col, "%.4f" % run.param_sv2) if run.param_gw1: grid.SetCellValue(begin_row+8, begin_col, "%.4f" % run.param_gw1) if run.param_gw2: grid.SetCellValue(begin_row+9, begin_col, "%.4f" % run.param_gw2) if run.param_vgsen1: grid.SetCellValue(begin_row+10, begin_col, "%.4f" % run.param_vgsen1) if run.param_vgsen2: grid.SetCellValue(begin_row+11, begin_col, "%.4f" % run.param_vgsen2) if run.param_vgsen3: grid.SetCellValue(begin_row+12, begin_col, "%.4f" % run.param_vgsen3) grid.AutoSizeColumns() grid.AutoSizeRows()
def __init__(self, parent,lbl,hid): wx.Frame.__init__(self, parent, title='HDFGridView: '+lbl,size=wx.Size(750, 650)) imgDir=ut.Path.GetImage() icon = wx.Icon(os.path.join(imgDir,'h5pyViewer.ico'), wx.BITMAP_TYPE_ICO) self.SetIcon(icon) pan = wx.Panel(self, -1) t=type(hid) if t==h5py.h5d.DatasetID: data=h5py.Dataset(hid) elif t==np.ndarray: data=hid else: raise(TypeError('unhandled type')) grid = Grid(pan, data) tbl=grid.GetTable() sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(grid, 1, wx.EXPAND) wxAxCtrlLst=[] l=len(data.shape) if l==1: if type(hid.get_type())==h5py.h5t.TypeCompoundID: tbl = Table1DCompound(data) else: tbl = Table1DArray(data) else: idxXY=(l-2,l-1) #idxXY=(l-1,l-2) for idx,l in enumerate(data.shape): if idx in idxXY: continue wxAxCtrl=ut.SliderGroup(pan, label='Axis:%d'%idx,range=(0,l-1)) wxAxCtrl.idx=idx wxAxCtrlLst.append(wxAxCtrl) sizer.Add(wxAxCtrl.sizer, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, border=5) wxAxCtrl.SetCallback(Grid.OnSetView,wxAxCtrl) sl=ut.GetSlice(idxXY,data.shape,wxAxCtrlLst) if type(hid.get_type())==h5py.h5t.TypeCompoundID: tbl = Table2DArray(data) else: tbl = Table2DArray(data) tbl.idxXY=idxXY if idxXY[0]<idxXY[1]: tbl.view = tbl.data[sl] else: tbl.view = tbl.data[sl].T self.wxAxCtrlLst=wxAxCtrlLst #print type(tbl) grid.SetTable (tbl, True) #AutoSize must be called after SetTable, but takes lot of time on big tables! if tbl.GetNumberCols()*tbl.GetNumberRows()<50*50: grid.AutoSizeColumns(True);grid.AutoSizeRows(True) #grid.SetDefaultColSize(200, True) self.grid=grid pan.SetSizer(sizer) pan.Layout() self.Centre() self.BuildMenu() grid.Bind(wx.grid.EVT_GRID_CMD_COL_SIZE, self.OnColSize)