[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/designer src/TemplateChooser.py templates/...
From: |
Jason Cater |
Subject: |
gnue/designer src/TemplateChooser.py templates/... |
Date: |
Sun, 07 Oct 2001 15:07:24 -0400 |
CVSROOT: /home/cvs
Module name: gnue
Changes by: Jason Cater <address@hidden> 01/10/07 15:07:24
Modified files:
designer/src : TemplateChooser.py
designer/templates: __init__.py
designer/templates/forms: __init__.py
designer/templates/reports: __init__.py
Log message:
Wizard dialog now runs the selected wizard; templates are automatically
detected (it's no longer necessary to add your template to the list in
__init__.py)
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/designer/src/TemplateChooser.py.diff?cvsroot=OldCVS&tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/designer/templates/__init__.py.diff?cvsroot=OldCVS&tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/designer/templates/forms/__init__.py.diff?cvsroot=OldCVS&tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/designer/templates/reports/__init__.py.diff?cvsroot=OldCVS&tr1=1.2&tr2=1.3&r1=text&r2=text
Patches:
Index: gnue/designer/src/TemplateChooser.py
diff -u gnue/designer/src/TemplateChooser.py:1.7
gnue/designer/src/TemplateChooser.py:1.8
--- gnue/designer/src/TemplateChooser.py:1.7 Tue Sep 18 17:16:57 2001
+++ gnue/designer/src/TemplateChooser.py Sun Oct 7 15:07:24 2001
@@ -29,7 +29,7 @@
from wxPython.wx import *
from gnue.common import GDebug
from gnue.designer import TemplateBase
-from gnue.designer.templates import GetAvailablePackages
+from gnue.designer.templates import GetAvailablePackages, GetAvailableTemplates
import TemplateBase
class TemplateChooser:
@@ -64,8 +64,7 @@
self.chooseButton.SetPosition( (x - dx, y) )
-
- EVT_BUTTON(self.chooser,self.chooseButton.GetId(), self.OnSelect)
+ EVT_BUTTON(self.chooser,self.chooseButton.GetId(), self.OnSelected)
EVT_BUTTON(self.chooser,self.cancelButton.GetId(), self.OnCancel)
EVT_CLOSE(self.chooser, self.OnCancel)
@@ -96,6 +95,8 @@
# self.panel.GetBackgroundColour().Blue() + 32) )
GDebug.printMesg(2,"Packages=%s" % self.packages)
+ lookupIndex = 0
+ self.lookup = {}
for package in self.packages:
page = wxPanel(self.notebook, -1, wxPoint(0,0), \
self.notebook.GetClientSize())
@@ -108,43 +109,58 @@
ctrl.InsertColumn(3, "Author", format=wxLIST_FORMAT_LEFT, width=-1)
ctrl.InsertColumn(4, "Version", format=wxLIST_FORMAT_LEFT, width=-1)
+ EVT_LIST_ITEM_SELECTED(self.chooser, ctrl.GetId(), self.OnSelect)
+
self.notebook.AddPage(page, package.PACKAGE)
+
+ i = 0
+ for template in GetAvailableTemplates(package):
+ ctrl.InsertStringItem(i, template['Name'])
+ if template.has_key('Description'):
+ ctrl.SetStringItem(i, 1, template['Description'])
+ else:
+ ctrl.SetStringItem(i, 1, 'Unknown')
+
+ if template['Product'] == TemplateBase.TEMPLATE:
+ ctrl.SetStringItem(i, 2, 'Template')
+ elif template['Product'] == TemplateBase.WIZARD:
+ ctrl.SetStringItem(i, 2, 'Wizard')
+
+ if template.has_key('Author'):
+ ctrl.SetStringItem(i, 3, template['Author'])
+ else:
+ ctrl.SetStringItem(i, 3, 'Unknown')
+
+ if template.has_key('Version'):
+ ctrl.SetStringItem(i, 4, template['Version'])
+ else:
+ ctrl.SetStringItem(i, 4, 'Unknown')
+ ctrl.SetItemData(i, lookupIndex)
+
+ self.lookup[lookupIndex] = template
- for template in package.GetAvailableTemplates():
- ctrl.InsertStringItem(0, template['Name'])
- if template.has_key('Description'):
- ctrl.SetStringItem(0, 1, template['Description'])
- else:
- ctrl.SetStringItem(0, 1, 'Unknown')
-
- if template['Product'] == TemplateBase.TEMPLATE:
- ctrl.SetStringItem(0, 2, 'Template')
- elif template['Product'] == TemplateBase.WIZARD:
- ctrl.SetStringItem(0, 2, 'Wizard')
-
- if template.has_key('Author'):
- ctrl.SetStringItem(0, 3, template['Author'])
- else:
- ctrl.SetStringItem(0, 3, 'Unknown')
-
- if template.has_key('Version'):
- ctrl.SetStringItem(0, 4, template['Version'])
- else:
- ctrl.SetStringItem(0, 4, 'Unknown')
+ i += 1
+ lookupIndex += 1
+ self.selection = 0
completed = self.chooser.ShowModal()
- self.chooser.Destroy()
+ results = None
if completed:
- from gnue.designer.templates.forms import Simple
- return Simple.TemplateInformation
- else:
- return None
+ results = self.lookup[self.selection]
+ self.chooser.Destroy()
+ return results
+ # When user highlights a wizard from the list...
def OnSelect(self, event):
+ self.selection = event.GetData()
+
+ # When user clicks the "Select" button...
+ def OnSelected(self, event):
self.chooser.EndModal(1)
+ # When user clicks the "Cancel" button...
def OnCancel(self, event):
self.chooser.EndModal(0)
Index: gnue/designer/templates/__init__.py
diff -u gnue/designer/templates/__init__.py:1.2
gnue/designer/templates/__init__.py:1.3
--- gnue/designer/templates/__init__.py:1.2 Sun Sep 16 19:43:53 2001
+++ gnue/designer/templates/__init__.py Sun Oct 7 15:07:24 2001
@@ -27,7 +27,49 @@
# NOTES:
#
-# TODO: Can we automatically find all the packages?
+import os, string, dircache
+
+#################################################################
+#
+# Returns a list of <modules> containing templates.
+# To get the wizards available in a template, call
+# GetAvailableTemplates(<module>)
+#
+#################################################################
+
def GetAvailablePackages():
- import forms, reports
- return [forms, reports]
+ packages = []
+ basedir = os.path.dirname(__file__)
+ for dir in dircache.listdir(basedir):
+ if os.path.isdir(os.path.join(basedir, dir)):
+ try:
+ packages.append(__import__('gnue/designer/templates/%s' %dir))
+ except ImportError:
+ pass
+ return packages
+
+
+#################################################################
+#
+# Return a list of the TemplateInformation dictionaries for all
+# available templates in the specified <module> (package).
+#
+#################################################################
+
+def GetAvailableTemplates(package):
+ templates = []
+ basedir = os.path.dirname(package.__file__)
+ processed = [] # Base file names processed (e.g., base of Simply.py*
+ # is Simple) This will keep us from importing Simple
+ # three times if Simple.py, Simple.pyc, and Simple.lib
+ # all exist.
+ for dir in dircache.listdir(basedir):
+ base = string.split(dir,'.')[0]
+ if not dir[0] in ('.','_') and not base in processed:
+ processed.append(base)
+ try:
+ templates.append(__import__(
+ '%s/%s' % (package.__name__,base)).TemplateInformation)
+ except ImportError:
+ pass
+ return templates
Index: gnue/designer/templates/forms/__init__.py
diff -u gnue/designer/templates/forms/__init__.py:1.2
gnue/designer/templates/forms/__init__.py:1.3
--- gnue/designer/templates/forms/__init__.py:1.2 Sun Sep 16 19:43:53 2001
+++ gnue/designer/templates/forms/__init__.py Sun Oct 7 15:07:24 2001
@@ -24,11 +24,7 @@
# DESCRIPTION:
# Form template directory
#
-# NOTES:
-#
+# Our package name
PACKAGE = 'Forms'
-def GetAvailableTemplates():
- import Simple
- return [Simple.TemplateInformation]
Index: gnue/designer/templates/reports/__init__.py
diff -u gnue/designer/templates/reports/__init__.py:1.2
gnue/designer/templates/reports/__init__.py:1.3
--- gnue/designer/templates/reports/__init__.py:1.2 Sun Sep 16 19:43:53 2001
+++ gnue/designer/templates/reports/__init__.py Sun Oct 7 15:07:24 2001
@@ -24,10 +24,7 @@
# DESCRIPTION:
# Report template directory
#
-# NOTES:
-#
+# Our package name
PACKAGE = 'Reports'
-def GetAvailableTemplates():
- return []
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/designer src/TemplateChooser.py templates/...,
Jason Cater <=