Browse Source

wxGUI/dbmbr: insert/update records - show also data types

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@49989 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 13 years ago
parent
commit
0daae8abee
2 changed files with 23 additions and 15 deletions
  1. 16 11
      gui/wxpython/dbmgr/dialogs.py
  2. 7 4
      gui/wxpython/dbmgr/manager.py

+ 16 - 11
gui/wxpython/dbmgr/dialogs.py

@@ -567,7 +567,8 @@ class ModifyTableRecord(wx.Dialog):
         self.usebox = False
         self.usebox = False
         self.cat = None
         self.cat = None
         winFocus = False
         winFocus = False
-        for column, value in data:
+        
+        for column, ctype, value in data:
             if self.keyId == cId:
             if self.keyId == cId:
                 self.cat = int(value)
                 self.cat = int(value)
                 if not keyEditable[1]:
                 if not keyEditable[1]:
@@ -588,9 +589,10 @@ class ModifyTableRecord(wx.Dialog):
                     winFocus = True
                     winFocus = True
             
             
             label = wx.StaticText(parent = self.dataPanel, id = wx.ID_ANY,
             label = wx.StaticText(parent = self.dataPanel, id = wx.ID_ANY,
-                                  label = column + ":")
-            
-            self.widgets.append((label.GetId(), valueWin.GetId()))
+                                  label = column)
+            ctype = wx.StaticText(parent = self.dataPanel, id = wx.ID_ANY,
+                                  label = "[%s]:" % ctype)
+            self.widgets.append((label.GetId(), ctype.GetId(), valueWin.GetId()))
             
             
             cId += 1
             cId += 1
         
         
@@ -601,15 +603,18 @@ class ModifyTableRecord(wx.Dialog):
         sizer = wx.BoxSizer(wx.VERTICAL)
         sizer = wx.BoxSizer(wx.VERTICAL)
         
         
         # data area
         # data area
-        dataSizer = wx.FlexGridSizer (cols = 2, hgap = 3, vgap = 3)
-        dataSizer.AddGrowableCol(1)
+        dataSizer = wx.FlexGridSizer(cols = 3, hgap = 3, vgap = 3)
+        dataSizer.AddGrowableCol(2)
         
         
-        for labelId, valueId in self.widgets:
+        for labelId, ctypeId, valueId in self.widgets:
             label = self.FindWindowById(labelId)
             label = self.FindWindowById(labelId)
+            ctype = self.FindWindowById(ctypeId)
             value = self.FindWindowById(valueId)
             value = self.FindWindowById(valueId)
             
             
             dataSizer.Add(label, proportion = 0,
             dataSizer.Add(label, proportion = 0,
                           flag = wx.ALIGN_CENTER_VERTICAL)
                           flag = wx.ALIGN_CENTER_VERTICAL)
+            dataSizer.Add(ctype, proportion = 0,
+                          flag = wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT)
             dataSizer.Add(value, proportion = 0,
             dataSizer.Add(value, proportion = 0,
                           flag = wx.EXPAND | wx.ALIGN_CENTER_VERTICAL)
                           flag = wx.EXPAND | wx.ALIGN_CENTER_VERTICAL)
         
         
@@ -637,9 +642,9 @@ class ModifyTableRecord(wx.Dialog):
         sizer.Add(item = btnSizer, proportion = 0,
         sizer.Add(item = btnSizer, proportion = 0,
                   flag = wx.EXPAND | wx.ALL, border = 5)
                   flag = wx.EXPAND | wx.ALL, border = 5)
         
         
-        framewidth = self.GetSize()[0]
-        self.SetMinSize((framewidth,250))
-        
+        framewidth = self.GetBestSize()[0] + 25
+        self.SetMinSize((framewidth, 250))
+
         self.SetAutoLayout(True)
         self.SetAutoLayout(True)
         self.SetSizer(sizer)
         self.SetSizer(sizer)
         sizer.Fit(self)
         sizer.Fit(self)
@@ -652,7 +657,7 @@ class ModifyTableRecord(wx.Dialog):
         If columns is given (list), return only values of given columns.
         If columns is given (list), return only values of given columns.
         """
         """
         valueList = []
         valueList = []
-        for labelId, valueId in self.widgets:
+        for labelId, ctypeId, valueId in self.widgets:
             column = self.FindWindowById(labelId).GetLabel().replace(':', '')
             column = self.FindWindowById(labelId).GetLabel().replace(':', '')
             if columns is None or column in columns:
             if columns is None or column in columns:
                 value = str(self.FindWindowById(valueId).GetValue())
                 value = str(self.FindWindowById(valueId).GetValue())

+ 7 - 4
gui/wxpython/dbmgr/manager.py

@@ -1352,12 +1352,14 @@ class AttributeManager(wx.Frame):
         colIdx = 0
         colIdx = 0
         keyId = -1
         keyId = -1
         for col in columnName:
         for col in columnName:
+            ctype = self.mapDBInfo.tables[table][col]['type']
             if col == keyColumn: # key 
             if col == keyColumn: # key 
                 if missingKey is False: 
                 if missingKey is False: 
-                    data.append((col, str(maxCat + 1)))
+                    data.append((col, ctype, str(maxCat + 1)))
                     keyId = colIdx
                     keyId = colIdx
             else:
             else:
-                data.append((col, ''))
+                data.append((col, ctype, ''))
+            
             colIdx += 1
             colIdx += 1
                 
                 
         dlg = ModifyTableRecord(parent = self,
         dlg = ModifyTableRecord(parent = self,
@@ -1463,16 +1465,17 @@ class AttributeManager(wx.Frame):
             
             
         # add other visible columns
         # add other visible columns
         for i in range(len(columnName)):
         for i in range(len(columnName)):
+            ctype = self.mapDBInfo.tables[table][columnName[i]]['type']
             if columnName[i] == keyColumn: # key 
             if columnName[i] == keyColumn: # key 
                 if missingKey is False: 
                 if missingKey is False: 
-                    data.append((columnName[i], str(cat)))
+                    data.append((columnName[i], ctype, str(cat)))
                     keyId = i
                     keyId = i
             else:
             else:
                 if missingKey is True:
                 if missingKey is True:
                     value = list.GetItem(item, i-1).GetText()
                     value = list.GetItem(item, i-1).GetText()
                 else:
                 else:
                     value = list.GetItem(item, i).GetText()
                     value = list.GetItem(item, i).GetText()
-                data.append((columnName[i], value))
+                data.append((columnName[i], ctype, value))
 
 
         dlg = ModifyTableRecord(parent = self, 
         dlg = ModifyTableRecord(parent = self, 
                                 title = _("Update existing record"),
                                 title = _("Update existing record"),