[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