[GRASS-SVN] r61119 - sandbox/krejcmat/src

svn_grass at osgeo.org svn_grass at osgeo.org
Wed Jul 2 08:00:14 PDT 2014


Author: krejcmat
Date: 2014-07-02 08:00:14 -0700 (Wed, 02 Jul 2014)
New Revision: 61119

Added:
   sandbox/krejcmat/src/editor.py
Log:
gui editor etc 

Added: sandbox/krejcmat/src/editor.py
===================================================================
--- sandbox/krejcmat/src/editor.py	                        (rev 0)
+++ sandbox/krejcmat/src/editor.py	2014-07-02 15:00:14 UTC (rev 61119)
@@ -0,0 +1,266 @@
+#!/usr/bin/env python
+# -*- coding: utf-8
+"""
+MODULE:    g.gui.metadata
+
+AUTHOR(S): Matej Krejci <matejkrejci gmail.com>
+
+PURPOSE:   Module for editing metadata based on ISO
+
+COPYRIGHT: (C) 2014 Matej Krejci, and by the GRASS Development Team
+
+           This program is free software udef __init__(self,parent,  label,tag, info=None, multiple=False,multiline=False):nder the GNU General Public
+           License (>=v2). Read the file COPYING that comes with GRASS
+           for details.
+"""
+
+import wx 
+from jinjainfo  import JinjaTemplateInfo as jt
+from wx import ID_ANY
+
+#===============================================================================
+# mditem
+#===============================================================================
+class MDItem(wx.Panel):
+    def __init__(self, parent, label, tag, info=None, multiple=False): 
+        wx.Panel.__init__(self, parent=parent,id=wx.ID_ANY)
+        self.label=label
+        self.multiple=multiple
+        self.info=info
+    
+        self._initWidgets()
+        self._layout()
+        
+    def _initWidgets(self):
+        self.tagText= wx.StaticText(parent=self,id=wx.ID_ANY,label=self.label)
+        self.valueCtrl = wx.TextCtrl(self, id=wx.ID_ANY,  
+                                   style=wx.VSCROLL | 
+                                   wx.TE_MULTILINE | wx.TE_DONTWRAP | 
+                                   wx.TAB_TRAVERSAL|wx.RAISED_BORDER|wx.HSCROLL) 
+        
+        if self.multiple:
+            self.addItemButt=wx.Button(self,-1,size=(20,20),label='+')
+        #self.addInfoButt=wx.Button(self,-1,size=(20,20),label='I')
+        
+    def _layout(self):
+        #add V-sizer to panel
+        panelSizer=wx.BoxSizer(wx.VERTICAL)
+        self.SetSizer(panelSizer)
+        
+        #add text-ctrl and button to H-sizer
+        textFieldSizer = wx.BoxSizer(wx.HORIZONTAL)  
+        textFieldSizer.Add(self.valueCtrl,proportion=1,flag=wx.EXPAND)
+        if self.multiple:
+            textFieldSizer.Add(self.addItemButt,0)
+        
+        #add staticText, textFieldSizer to static box sizer
+        panelSizer.Add(item=self.tagText,proportion=0)
+        panelSizer.Add(item=textFieldSizer,proportion=1,flag=wx.EXPAND)
+
+
+#===============================================================================
+# box        
+#===============================================================================
+class Box(wx.Panel):
+    def __init__(self, parent ): 
+        wx.Panel.__init__(self,parent=parent,id = wx.ID_ANY)
+        
+    def addItems(self,items):
+        self.items=items
+        for item in self.items:
+            self.stBoxSizer.Add(item=item,proportion=1,flag=wx.EXPAND)
+        self._layout() 
+            
+    def addItem(self,items):
+        self.items=items
+        self.stBoxSizer.Add(item=item,proportion=1,flag=wx.EXPAND)
+        self._layout() 
+            
+    def _layout(self):
+
+        if self.items[0].subgrupmulti:
+            self.boxMultiplicity=self.items[0].subgrupmulti
+            self.addBoxButt=wx.Button(self,-1,size=(20,20),label='+') 
+            
+        #get label of static box            
+        self.stboxLabel=self.items[0].group
+        self.stbox=wx.StaticBox(self, label=self.stboxLabel, style=wx.RAISED_BORDER)
+        
+        panelSizer = wx.BoxSizer(wx.HORIZONTAL)
+        self.SetSizer(panelSizer)
+        
+        self.stBoxSizer = wx.StaticBoxSizer( self.stbox, wx.VERTICAL,)
+        panelSizer.Add(item=self.stBoxSizer,flag=wx.EXPAND,proportion=1)
+        
+        if self.items[0].subgrupmulti:
+            panelSizer.Add(self.addBoxButt,0)
+            
+#===============================================================================
+# panel group
+#===============================================================================
+class PanelGroup(wx.Panel):
+    def __init__(self,items):
+        wx.Panel.__init__(self,parent=parent,id= wx.ID_ANY)
+        
+        self.items=items
+        self._addItems()
+        
+    def _addItems(self):
+        for item in self.items:
+            self.panelSizer.Add(item,proportion=1,flag=wx.EXPAND)
+        self._layout()
+            
+    def _layout(self):
+        self.panelSizer=wx.BoxSizer(wx.VERTICAL)
+        self.SetSizer(self.panelSizer)
+#===============================================================================
+# notebook
+#===============================================================================
+class Notebook(wx.Notebook):
+    def __init__(self,parent):
+        wx.Notebook.__init__(self,parent=parent,id= wx.ID_ANY,style=0)
+        
+        self.notebook_panel = wx.Panel(self, wx.ID_ANY)
+        self._layout()
+    def _chckList(self):
+        if len(self.panels) != len(self.labels):
+            print "TODO error"
+               
+    def addPanels(self,panels,labels):
+        self.panels=panels  #list of panels
+        self.labels=labels
+        self._chckList()
+        for panel in self.panels:
+            self.notebook_panel=panel
+            self.AddPage(self.notebook_panel,self.labels[0])
+            self.labels.pop(0)
+            self._layout()
+
+    def _layout(self):
+        panelSizer = wx.BoxSizer(wx.VERTICAL)
+        self.notebook_panel.SetSizer(panelSizer)        
+       #panelSizer.Add(self.notebook_panel, 1, wx.EXPAND, 0)
+#===============================================================================
+# gui builder                                
+#===============================================================================
+class GUIbuilder(): 
+    def __init__(self): 
+        
+        self.MDinfoList=[]
+        #self._getInfoJinja() 
+        self._initFrame()
+        
+        #self._fillFrame()
+        self.app.MainLoop()
+          
+    def _initFrame(self):  
+        self.app = wx.App(False)
+        self.Frame = MainFrame()
+        self.Frame.Show(True) 
+
+    def _fillFrame(self):
+        note=Notebook()
+        
+        
+    def _getInfoJinja(self):
+        jinj=jt(self.templatePath)
+        self.MDinfoList=jinj.getMdInfoGroupByGroupsList()
+        #print self.MDinfoList 
+        
+#===============================================================================
+# main frame           
+#===============================================================================
+class MainFrame(wx.Frame):
+    def __init__(self):
+        wx.Frame.__init__(self, parent=None, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.Size(600, 400)) 
+        
+        self.panel = wx.Panel(self, -1)
+        self.addNotebook()
+        #self._fillFrame()
+        
+    def addNotebook(self):
+        self.notebook=Notebook(self.panel)
+        list=[]
+        
+        list.append(wx.Panel(self,-1))
+        list1=[]
+        list1.append('object')
+        #self.notebook.addPanels(list, list1)
+        self._layout()
+        
+    def _layout(self):
+        #sizer for frame
+        frameSizer = wx.BoxSizer(wx.VERTICAL)
+        self.SetSizer(frameSizer)
+        
+        #add panel to framesizer
+        frameSizer.Add(item=self.panel, proportion=1,flag=wx.EXPAND)
+        
+        self.panelSizer=wx.BoxSizer(wx.HORIZONTAL)
+        self.panel.SetSizer(self.panelSizer)
+                   
+        #self.panelSizer.Add(self.notebook,1, wx.EXPAND, 0)
+
+
+
+
+class EditorSettings():
+    def __init__(self):
+        self.TemplatePath
+        
+
+
+
+
+if __name__ == '__main__': 
+    GUIbuilder()
+
+         
+#===============================================================================
+# class MainFrame(wx.Frame):
+#     def __init__(self, parent, ID, title):
+#         wx.Frame.__init__(self, parent, ID, title,
+#                           wx.DefaultPosition, wx.Size(600, 400))
+# 
+#         self.numgroup=2
+#         self.namegroup='Identifiacation'
+#         tag='resource title'
+# 
+#         self.panel = wx.Panel(self, -1)
+#         self.tagText= wx.StaticText(parent=self.panel,id=wx.ID_ANY,label=tag)
+#         self.valueCtrl = wx.TextCtrl(self.panel, id=wx.ID_ANY,
+#                                    style=wx.VSCROLL |
+#                                    wx.TE_MULTILINE | wx.TE_DONTWRAP |
+#                                     wx.TAB_TRAVERSAL|wx.RAISED_BORDER|wx.HSCROLL)
+#         self.addItemButt=wx.Button(self.panel,-1,size=(20,20),label='+')
+#         self.addInfoButt=wx.Button(self.panel,-1,size=(20,20),label='i')
+#         self.addBoxButt=wx.Button(self.panel,-1,size=(20,20),label='+')
+#         self._layout()
+# 
+#     def _layout(self):
+#         add panel to V-sizer
+#         topSizer = wx.BoxSizer(wx.VERTICAL)
+#         self.SetSizer(topSizer)
+#         topSizer.Add(item=self.panel, proportion=1,flag=wx.EXPAND)
+# 
+#         add V-sizer to panel
+#         panelSizer=wx.BoxSizer(wx.HORIZONTAL)
+#         self.panel.SetSizer(panelSizer)
+# 
+#         add text-ctrl and button to H-sizer
+#         textFieldSizer = wx.BoxSizer(wx.HORIZONTAL)
+#         textFieldSizer.Add(self.valueCtrl,proportion=1,flag=wx.EXPAND)
+#         textFieldSizer.Add(self.addItemButt,0)
+#         textFieldSizer.Add(self.addInfoButt,0)
+# 
+#         create StaticBox
+#         stBox = wx.StaticBox(self.panel, wx.ID_ANY, label=self.namegroup, style=wx.RAISED_BORDER)
+#         stBoxSizer = wx.StaticBoxSizer(stBox, wx.VERTICAL)
+# 
+# 
+#         add staticText, textFieldSizer to static box sizer
+#         stBoxSizer.Add(item=self.tagText,proportion=0)
+#         stBoxSizer.Add(item=textFieldSizer,proportion=1,flag=wx.EXPAND)
+#         panelSizer.Add(stBoxSizer, proportion=1,flag=wx.EXPAND)
+#         panelSizer.Add(self.addBoxButt,0)
+#===============================================================================     
\ No newline at end of file



More information about the grass-commit mailing list