16 |
# write to the Free Software Foundation, Inc., 59 Temple Place |
# write to the Free Software Foundation, Inc., 59 Temple Place |
17 |
# - Suite 330, Boston, MA 02111-1307, USA. |
# - Suite 330, Boston, MA 02111-1307, USA. |
18 |
# |
# |
19 |
# Copyright 2001-2002 Free Software Foundation |
# Copyright 2001-2003 Free Software Foundation |
20 |
# |
# |
21 |
# FILE: |
# FILE: |
22 |
# TreeView.py |
# TreeView.py |
23 |
# |
# |
24 |
# DESCRIPTION: |
# DESCRIPTION: |
25 |
|
# The TreeView for forms instances |
26 |
# |
# |
27 |
# NOTES: |
# NOTES: |
28 |
# |
# |
29 |
# TODO: all the SetItemImage lines in this file have been commented out as on win32 it was segfaulting |
# TODO: all the SetItemImage lines in this file have been |
30 |
|
# TODO: commented out as on win32 it was segfaulting |
31 |
|
# |
32 |
|
|
33 |
import sys, os |
import sys, os |
34 |
from wxPython.wx import * |
from wxPython.wx import * |
35 |
from gnue.common import GDebug, GTrigger |
from gnue.common import GDebug, GTrigger, GDataSource |
36 |
from gnue.forms import GFForm, GFObjects, GFLibrary |
from gnue.forms import GFForm, GFObjects, GFLibrary |
37 |
from gnue.designer.PopupMenu import ObjectMenu |
from gnue.designer.base.PopupMenu import ObjectMenu |
38 |
from gnue.designer.Icons import treeIconMap, treeIconList |
from gnue.designer.base.Icons import treeIconMap, treeIconList |
39 |
from gnue.designer.TreeView import TreeView as BaseTreeView |
from gnue.designer.base.tools.TreeView import TreeView as BaseTreeView |
40 |
|
|
41 |
class TreeView (BaseTreeView): |
class TreeView (BaseTreeView): |
|
def __init__(self, instance, root, parent): |
|
42 |
|
|
43 |
self.rootDescr = 'Form' |
rootDescr = 'Form' |
44 |
BaseTreeView.__init__(self, instance, root, parent) |
|
45 |
|
def init(self): |
46 |
|
|
47 |
|
BaseTreeView.init(self) |
48 |
|
|
49 |
|
logic = None |
50 |
|
layout = None |
51 |
|
for child in self.rootObject._children: |
52 |
|
if child._type == 'GFLogic': |
53 |
|
logic = child |
54 |
|
elif child._type == 'GFLayout': |
55 |
|
layout = child |
56 |
|
|
57 |
self.rootObject._treeItemFormProperties = \ |
self.rootObject._treeItemFormProperties = \ |
58 |
self.AppendItem(self.rootObject._treeItem, _("Properties")) |
self.AppendItem(self.rootObject._treeItem, _("Properties")) |
59 |
self.SetItemImage(self.rootObject._treeItemFormProperties, treeIconMap['properties']) |
self.tree.SetItemImage(self.rootObject._treeItemFormProperties, treeIconMap['properties']) |
60 |
self.rootObject._treeItemImportedLibraries = \ |
self.rootObject._treeItemImportedLibraries = \ |
61 |
self.AppendItem(self.rootObject._treeItem, _("Imported Libraries")) |
self.AppendItem(self.rootObject._treeItem, _("Imported Libraries")) |
62 |
self.SetItemImage(self.rootObject._treeItemImportedLibraries, treeIconMap['import']) |
self.tree.SetItemImage(self.rootObject._treeItemImportedLibraries, treeIconMap['import']) |
63 |
self.rootObject._treeItemDataSources = \ |
self.rootObject._treeItemDataSources = \ |
64 |
self.AppendItem(self.rootObject._treeItem, _("Data Sources")) |
self.AppendItem(self.rootObject._treeItem, _("Data Sources")) |
65 |
self.SetItemImage(self.rootObject._treeItemDataSources, treeIconMap['datasource']) |
self.tree.SetItemImage(self.rootObject._treeItemDataSources, treeIconMap['datasource']) |
66 |
self.rootObject._treeItemNamedTriggers = \ |
self.rootObject._treeItemNamedTriggers = \ |
67 |
self.AppendItem(self.rootObject._treeItem, _("Shared Triggers")) |
self.AppendItem(self.rootObject._treeItem, _("Shared Triggers")) |
68 |
self.SetItemImage(self.rootObject._treeItemNamedTriggers, treeIconMap['trigger']) |
self.tree.SetItemImage(self.rootObject._treeItemNamedTriggers, treeIconMap['trigger']) |
69 |
self.rootObject._treeItemPageLayout = \ |
self.rootObject._treeItemLogic = logic._treeItem = \ |
70 |
|
self.AppendItem(self.rootObject._treeItem, _("Field Logic")) |
71 |
|
self.tree.SetItemImage(self.rootObject._treeItemLogic, treeIconMap['block']) |
72 |
|
self.rootObject._treeItemPageLayout = layout._treeItem = \ |
73 |
self.AppendItem(self.rootObject._treeItem, _("Page Layout")) |
self.AppendItem(self.rootObject._treeItem, _("Page Layout")) |
74 |
self.SetItemImage(self.rootObject._treeItemPageLayout, treeIconMap['page']) |
self.tree.SetItemImage(self.rootObject._treeItemPageLayout, treeIconMap['page']) |
75 |
|
|
76 |
self.SetPyData(self.rootObject._treeItem, self.rootObject) |
self.tree.SetPyData(self.rootObject._treeItem, self.rootObject) |
77 |
self.SetPyData(self.rootObject._treeItemFormProperties, ObjectMenu(self.instance,None)) |
self.tree.SetPyData(self.rootObject._treeItemFormProperties, ObjectMenu(self.instance,None)) |
78 |
self.SetPyData(self.rootObject._treeItemDataSources, ObjectMenu(self.instance,None)) |
self.tree.SetPyData(self.rootObject._treeItemDataSources, ObjectMenu(self.instance,None)) |
79 |
self.SetPyData(self.rootObject._treeItemNamedTriggers, ObjectMenu(self.instance,None)) |
self.tree.SetPyData(self.rootObject._treeItemNamedTriggers, ObjectMenu(self.instance,None)) |
80 |
self.SetPyData(self.rootObject._treeItemPageLayout, ObjectMenu(self.instance,None)) |
self.tree.SetPyData(self.rootObject._treeItemLogic, logic) |
81 |
|
self.tree.SetPyData(self.rootObject._treeItemPageLayout, layout) |
82 |
|
|
83 |
self.rootObject.walk(self.inventoryObject) |
self.rootObject.walk(self.inventoryObject) |
84 |
|
|
90 |
object._parent == self.rootObject: |
object._parent == self.rootObject: |
91 |
object._treeItem = self.rootObject._treeItemFormProperties |
object._treeItem = self.rootObject._treeItemFormProperties |
92 |
icon = 'properties' |
icon = 'properties' |
93 |
|
elif object._type in ('GFLogic','GFLayout') and \ |
94 |
|
object._parent == self.rootObject: |
95 |
|
pass |
96 |
else: |
else: |
97 |
parentTreeItem = object._parent._treeItem |
parentTreeItem = object._parent._treeItem |
98 |
if isinstance(object, GTrigger.GTrigger) and \ |
if isinstance(object, GTrigger.GTrigger) and \ |
104 |
if not hasattr(object._parent,'_treeItemTrigger'): |
if not hasattr(object._parent,'_treeItemTrigger'): |
105 |
object._parent._treeItemTrigger = \ |
object._parent._treeItemTrigger = \ |
106 |
self.AppendItem(object._parent._treeItem, _("Events")) |
self.AppendItem(object._parent._treeItem, _("Events")) |
107 |
#self.SetItemImage(object._parent._treeItemTrigger, treeIconMap['trigger']) |
#self.tree.SetItemImage(object._parent._treeItemTrigger, treeIconMap['trigger']) |
108 |
|
|
109 |
|
|
110 |
parentTreeItem = object._parent._treeItemTrigger |
parentTreeItem = object._parent._treeItemTrigger |
111 |
icon = 'trigger' |
icon = 'trigger' |
112 |
elif isinstance(object, GFObjects.GFDataSource) or \ |
elif isinstance(object, GFObjects.GFDataSource) or \ |
113 |
isinstance(object, GFObjects.GFDatabase): |
isinstance(object, GDataSource.GConnection): |
114 |
parentTreeItem = self.rootObject._treeItemDataSources |
parentTreeItem = self.rootObject._treeItemDataSources |
115 |
icon = 'datasource' |
icon = 'datasource' |
116 |
elif isinstance(object, GFObjects.GFPage) and \ |
elif isinstance(object, GFObjects.GFPage) and \ |
117 |
object._parent == self.rootObject: |
object._parent == self.rootObject: |
|
parentTreeItem = self.rootObject._treeItemPageLayout |
|
118 |
icon = 'page' |
icon = 'page' |
119 |
elif object._type in ('GFBlock',): |
elif object._type in ('GFBlock',): |
120 |
icon = 'block' |
icon = 'block' |
131 |
|
|
132 |
object._treeItem = self.AppendItem(parentTreeItem, |
object._treeItem = self.AppendItem(parentTreeItem, |
133 |
"%s" % object.getDescription()) |
"%s" % object.getDescription()) |
134 |
self.SetPyData(object._treeItem, object) |
self.tree.SetPyData(object._treeItem, object) |
135 |
#self.SetItemImage(object._treeItem, treeIconMap[icon]) |
#self.tree.SetItemImage(object._treeItem, treeIconMap[icon]) |
136 |
|
|
137 |
|
|