[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue common/src/GObjects.py designer/src/Instan...
From: |
Jason Cater |
Subject: |
gnue common/src/GObjects.py designer/src/Instan... |
Date: |
Wed, 27 Nov 2002 19:11:32 -0500 |
CVSROOT: /cvsroot/gnue
Module name: gnue
Changes by: Jason Cater <address@hidden> 02/11/27 19:11:32
Modified files:
common/src : GObjects.py
designer/src : Instance.py TemplateBase.py TemplateParser.py
TreeView.py TriggerEditor.py
designer/src/forms: Incubator.py Instance.py
designer/src/forms/LayoutEditor: LayoutEditor.py
WidgetHandler.py
designer/src/forms/wizards: AddBlock.py AddBox.py AddButton.py
AddDataSource.py AddDropDown.py
AddEntry.py AddLabel.py AddPage.py
Log message:
* Visual cleanup (panel/text spacing, etc)
* First attempt at getting wizards working with the new layout
management markup
* More cleanup
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/GObjects.py.diff?tr1=1.45&tr2=1.46&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/Instance.py.diff?tr1=1.70&tr2=1.71&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/TemplateBase.py.diff?tr1=1.17&tr2=1.18&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/TemplateParser.py.diff?tr1=1.22&tr2=1.23&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/TreeView.py.diff?tr1=1.27&tr2=1.28&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/TriggerEditor.py.diff?tr1=1.23&tr2=1.24&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/Incubator.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/Instance.py.diff?tr1=1.19&tr2=1.20&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/LayoutEditor/LayoutEditor.py.diff?tr1=1.36&tr2=1.37&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/LayoutEditor/WidgetHandler.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/AddBlock.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/AddBox.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/AddButton.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/AddDataSource.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/AddDropDown.py.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/AddEntry.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/AddLabel.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/AddPage.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
Patches:
Index: gnue/common/src/GObjects.py
diff -c gnue/common/src/GObjects.py:1.45 gnue/common/src/GObjects.py:1.46
*** gnue/common/src/GObjects.py:1.45 Wed Nov 27 16:29:16 2002
--- gnue/common/src/GObjects.py Wed Nov 27 19:11:31 2002
***************
*** 301,307 ****
# Moves upward though the parents of an object till
# it finds the parent of the specified type
#
! def findChildOfType(self, type, includeSelf=1, allowAllChildren=1):
if includeSelf and self._type == type:
return self
--- 301,307 ----
# Moves upward though the parents of an object till
# it finds the parent of the specified type
#
! def findChildOfType(self, type, includeSelf=1, allowAllChildren=0):
if includeSelf and self._type == type:
return self
***************
*** 317,322 ****
--- 317,345 ----
return o
return None
+
+
+ #
+ # findChildrenOfType
+ #
+ # find all children of a specific type
+ #
+ def findChildrenOfType(self, type, includeSelf=1, allowAllChildren=0):
+
+ rs = []
+
+ if includeSelf and self._type == type:
+ rs += [self]
+
+ for child in self._children:
+ if child._type == type:
+ rs += [child]
+
+ if allowAllChildren:
+ for child in self._children:
+ rs += child.findChildOfType(type,0, 1)
+
+ return rs
#
Index: gnue/designer/src/Instance.py
diff -c gnue/designer/src/Instance.py:1.70 gnue/designer/src/Instance.py:1.71
*** gnue/designer/src/Instance.py:1.70 Mon Nov 25 23:23:33 2002
--- gnue/designer/src/Instance.py Wed Nov 27 19:11:31 2002
***************
*** 76,85 ****
def preSave(self):
return
- # Return an instance of the "primary" visual editor/layout panel
- def createVisualEditor(self):
- return None
-
#
def createTools(self):
pass
--- 76,81 ----
***************
*** 88,93 ****
--- 84,92 ----
def createWizards(self):
pass
+ # Used by TemplateParser to build a wizard.current dict
+ def buildWizardCurrentDict(self):
+ return {}
########################################################################
#
***************
*** 117,124 ****
self._app = app
self.connections = app.connections
- self._lastGenericNameSeq = {}
self.nameMappings = {}
self._pages = []
--- 116,123 ----
self._app = app
self.connections = app.connections
self.nameMappings = {}
+ self.usedNames = []
self._pages = []
***************
*** 428,433 ****
--- 427,433 ----
object.name[-3:] == ">__")):
object.name = self.getNextGenericName(object._type[2:])
self.nameMappings[string.lower(object.name)] = object
+ self.usedNames.append(object.name.lower())
# Now, give the tool-specific instances a chance
self.inventoryObject(object)
***************
*** 474,506 ****
def getNextGenericName (self, type):
! while 1:
! if self._lastGenericNameSeq.has_key(string.lower(type)):
! self._lastGenericNameSeq[string.lower(type)] = \
! self._lastGenericNameSeq[string.lower(type)] + 1
! else:
! self._lastGenericNameSeq[string.lower(type)] = 1
! name = "%s%s_%s" % (string.upper(type[0]), \
! string.lower(type[1:]),
self._lastGenericNameSeq[string.lower(type)])
! if not self.nameMappings.has_key(string.lower(name)):
! break
!
! return name
!
!
! def getUniqueName(self, n):
! name = string.lower(n)
! while self.nameMappings.has_key(name):
! if '_' in name:
! nameparts = string.split(name,'_')
! try:
! nameparts[-1] = str(int(nameparts[-1]) + 1)
! name = string.join(nameparts,'_')
! except ValueError:
! name += '_1'
! else:
! name += '_1'
! return name
def save(self):
--- 474,507 ----
def getNextGenericName (self, type):
! return self.getUniqueName(type.capitalize() + '1')
!
!
! def getUniqueName(self, name):
!
! if name.lower() not in self.usedNames:
! self.usedNames.append(name.lower())
! return name
!
! index = len(name) - 1
!
! while index > 0 and '0' <= name[index] <= '9':
! index -= 1
!
! index += 1
! if index >= len(name):
! start = 1
! base = name
! else:
! start = int(name[index:])
! base = name[:index]
!
! while "%s%s" % (base, start) in self.usedNames:
! start += 1
!
! self.usedNames.append(("%s%s" % (base, start)).lower())
! return "%s%s" % (base, start)
!
def save(self):
Index: gnue/designer/src/TemplateBase.py
diff -c gnue/designer/src/TemplateBase.py:1.17
gnue/designer/src/TemplateBase.py:1.18
*** gnue/designer/src/TemplateBase.py:1.17 Mon Oct 28 18:43:08 2002
--- gnue/designer/src/TemplateBase.py Wed Nov 27 19:11:31 2002
***************
*** 87,93 ****
# entered by the wizard user.
variables = {}
! def Start(self, object):
return 0
--- 87,93 ----
# entered by the wizard user.
variables = {}
! def Start(self, object, current={}):
return 0
***************
*** 193,198 ****
--- 193,202 ----
return list
+ def GetUniqueName(self, name):
+ self.instance.getUniqueName(name)
+
+
##########################################
#
# The following methods are of no concern
***************
*** 201,206 ****
--- 205,211 ----
def __init__(self, parser):
self.parser = parser
+ self.instance = parser.instance
self._connections = parser.instance._app.connections
self.__cachedConnections= {}
self.__cachedSources= {}
***************
*** 259,261 ****
--- 264,271 ----
self.orderable = orderable
+ # A wizard can raise this if not enough information
+ # is provided or if the root object is not in a
+ # sufficient state.
+ class InsufficientInformation(StandardError):
+ pass
\ No newline at end of file
Index: gnue/designer/src/TemplateParser.py
diff -c gnue/designer/src/TemplateParser.py:1.22
gnue/designer/src/TemplateParser.py:1.23
*** gnue/designer/src/TemplateParser.py:1.22 Mon Oct 28 18:43:08 2002
--- gnue/designer/src/TemplateParser.py Wed Nov 27 19:11:31 2002
***************
*** 48,54 ****
self.template = self.templateInformation['BaseClass'](self)
self.template.Start(self.rootObject,
! self.currentObject or self.rootObject,
**params)
# If this is simply a template and not a wizard,
--- 48,54 ----
self.template = self.templateInformation['BaseClass'](self)
self.template.Start(self.rootObject,
! self.instance.buildWizardCurrentDict(),
**params)
# If this is simply a template and not a wizard,
Index: gnue/designer/src/TreeView.py
diff -c gnue/designer/src/TreeView.py:1.27 gnue/designer/src/TreeView.py:1.28
*** gnue/designer/src/TreeView.py:1.27 Mon Nov 25 23:23:33 2002
--- gnue/designer/src/TreeView.py Wed Nov 27 19:11:31 2002
***************
*** 54,60 ****
'ObjectDeleted' : self.onDeleteObject,
})
! self.tree = wxTreeCtrl(self, wxNewId(),
style=wxTR_HAS_BUTTONS|wxTR_EDIT_LABELS|wxTR_HAS_VARIABLE_ROW_HEIGHT)
self._handler = None
--- 54,63 ----
'ObjectDeleted' : self.onDeleteObject,
})
! self.panel = wxPanel(self,-1,style=wxSIMPLE_BORDER, pos=wxPoint(6,6))
! EVT_SIZE(self, self.onSize)
!
! self.tree = wxTreeCtrl(self.panel, wxNewId(),
style=wxTR_HAS_BUTTONS|wxTR_EDIT_LABELS|wxTR_HAS_VARIABLE_ROW_HEIGHT)
self._handler = None
***************
*** 68,78 ****
EVT_RIGHT_DOWN(self, self.OnRightDown)
EVT_LEFT_DCLICK(self, self.OnEditProperties)
! EVT_SIZE(self, self.OnSize)
self.Fit()
! def OnSize(self, event):
! self.tree.SetSize(self.GetClientSize())
def AppendItem(self, parent, description):
rv = self.tree.AppendItem(parent, description)
--- 71,83 ----
EVT_RIGHT_DOWN(self, self.OnRightDown)
EVT_LEFT_DCLICK(self, self.OnEditProperties)
!
self.Fit()
! def onSize(self, event):
! x,y = self.GetClientSizeTuple()
! self.panel.SetSize((x-12,y-12))
! self.tree.SetSize(self.panel.GetClientSizeTuple())
def AppendItem(self, parent, description):
rv = self.tree.AppendItem(parent, description)
Index: gnue/designer/src/TriggerEditor.py
diff -c gnue/designer/src/TriggerEditor.py:1.23
gnue/designer/src/TriggerEditor.py:1.24
*** gnue/designer/src/TriggerEditor.py:1.23 Mon Nov 25 23:23:33 2002
--- gnue/designer/src/TriggerEditor.py Wed Nov 27 19:11:31 2002
***************
*** 80,88 ****
self.toolpanel = wxPanel(self, -1, pos=wxPoint(0,0), size=wxSize(32,32),
style=wxRAISED_BORDER|wxCLIP_CHILDREN)
self.namedNameLabel = wxStaticText(self.toolpanel, -1, _("Trigger: "),
pos=wxPoint(4,6))
! self.namedTriggerCombo = wxComboBox(self.toolpanel, -1,
pos=wxPoint(self.namedNameLabel.GetSize().width + 10,4), style=wxCB_READONLY)
EVT_COMBOBOX(self, self.namedTriggerCombo.GetId(),
self.OnNamedTriggerSelected)
# EventAware provided by ToolPanel
self.registerEventListeners({
'ObjectSelected' : self.onSetCurrentObject,
--- 80,92 ----
self.toolpanel = wxPanel(self, -1, pos=wxPoint(0,0), size=wxSize(32,32),
style=wxRAISED_BORDER|wxCLIP_CHILDREN)
self.namedNameLabel = wxStaticText(self.toolpanel, -1, _("Trigger: "),
pos=wxPoint(4,6))
! self.namedTriggerCombo = wxComboBox(self.toolpanel, -1,
choices=[''],pos=wxPoint(self.namedNameLabel.GetSize().width + 10,4),
style=wxCB_READONLY)
! self.toolh = max(self.namedNameLabel.GetSizeTuple()[1],
self.namedTriggerCombo.GetSizeTuple()[1]) + 12
! self.editor.SetPosition((0, self.toolh))
!
EVT_COMBOBOX(self, self.namedTriggerCombo.GetId(),
self.OnNamedTriggerSelected)
+
# EventAware provided by ToolPanel
self.registerEventListeners({
'ObjectSelected' : self.onSetCurrentObject,
***************
*** 92,111 ****
})
self.rootObject.walk(self.inventoryObject)
! if self.object:
self._setObject(object)
def OnNamedTriggerSelected(self, event):
! self.dispatchEvent('ObjectSelected',
! object = self.namedTriggerList[event.GetSelection()],
originator = None)
def _onSize(self, event):
w,h = self.GetClientSizeTuple()
! self.toolpanel.SetSize(wxSize(w,32))
! self.editor.SetSize(wxSize(w,h-32))
def onSetCurrentObject (self, event):
--- 96,126 ----
})
self.rootObject.walk(self.inventoryObject)
! if self.object:
self._setObject(object)
def OnNamedTriggerSelected(self, event):
! s= event.GetSelection()
! if s:
! self.dispatchEvent('ObjectSelected',
! object = self.namedTriggerList[s-1],
originator = None)
+ self.editor.SetReadOnly(0)
+ else:
+ self.editor.InEditMode = 0
+ self.editor.SetText("")
+ self.editor.EmptyUndoBuffer()
+ self.editor.InEditMode = 1
+ self.editor.SetReadOnly(1)
+ self.object = None
+
def _onSize(self, event):
w,h = self.GetClientSizeTuple()
! self.toolpanel.SetSize(wxSize(w,self.toolh))
! self.editor.SetSize(wxSize(w,h-self.toolh+1))
def onSetCurrentObject (self, event):
***************
*** 119,125 ****
def _setObject(self, object):
! self.__ignoreevent = 1
self.__ignoreevent = 0
self.object = object
--- 134,140 ----
def _setObject(self, object):
! ## self.__ignoreevent = 1
self.__ignoreevent = 0
self.object = object
***************
*** 143,149 ****
i = 0
while self.namedTriggerList[i] != object:
i = i + 1
! self.namedTriggerCombo.SetSelection(i)
else:
self.mode = EVENT_TRIGGER
--- 158,164 ----
i = 0
while self.namedTriggerList[i] != object:
i = i + 1
! self.namedTriggerCombo.SetSelection(i+1)
else:
self.mode = EVENT_TRIGGER
Index: gnue/designer/src/forms/Incubator.py
diff -c gnue/designer/src/forms/Incubator.py:1.3
gnue/designer/src/forms/Incubator.py:1.4
*** gnue/designer/src/forms/Incubator.py:1.3 Mon Nov 25 00:41:42 2002
--- gnue/designer/src/forms/Incubator.py Wed Nov 27 19:11:31 2002
***************
*** 96,101 ****
--- 96,105 ----
for attr in attributes.keys():
if attrs.has_key(attr):
o.__dict__[attr] = attributes[attr]
+ elif attr.index(':')+1:
+ # Hackery for forms namespace support
+ o.__dict__[attr.replace(':','__')]
+
o.name = name
instance.nameMappings[o.name] = o
Index: gnue/designer/src/forms/Instance.py
diff -c gnue/designer/src/forms/Instance.py:1.19
gnue/designer/src/forms/Instance.py:1.20
*** gnue/designer/src/forms/Instance.py:1.19 Mon Nov 25 09:22:36 2002
--- gnue/designer/src/forms/Instance.py Wed Nov 27 19:11:31 2002
***************
*** 91,96 ****
--- 91,99 ----
form.width = 40
GFObjects.GFLogic(form)
layout = GFObjects.GFLayout(form)
+ layout._xmlchildnamespaces = {'Char':'GNUe:Layout:Char'}
+ layout.Char__width = 40
+ layout.Char__height = 12
GFObjects.GFPage(layout)
return form
***************
*** 98,103 ****
--- 101,110 ----
def inventoryObject(self, object):
if object._type == 'GFForm':
object._blockMap = {}
+ elif object._type == 'GFLogic':
+ object._parent._logic = object
+ elif object._type == 'GFLayout':
+ object._parent._layout = object
elif object._type == 'GFBlock':
if self.rootObject._blockMap.has_key(object.name):
raise "Warning: Multiple blocks with name %s" % object.name
***************
*** 204,209 ****
--- 211,219 ----
for child in other:
self.rootObject._children.append(child)
+ # Used by TemplateParser to build a wizard.current dict
+ def buildWizardCurrentDict(self):
+ return {}
# Hack having to do with UIwxpython import
def uiEventTrap(self, event):
Index: gnue/designer/src/forms/LayoutEditor/LayoutEditor.py
diff -c gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.36
gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.37
*** gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.36 Mon Nov 25
23:23:33 2002
--- gnue/designer/src/forms/LayoutEditor/LayoutEditor.py Wed Nov 27
19:11:31 2002
***************
*** 219,226 ****
if field=='text':
#TODO: this will butcher align=center setups
if (not hasattr(object,'alignment')) or ( object.alignment ==
'left'):
! if not hasattr(object,'width') or object.width != len(value):
! object.width=len(value)
# TODO: This should probably trigger a new ObjectModified event
event.new['width'] = object.width
--- 219,226 ----
if field=='text':
#TODO: this will butcher align=center setups
if (not hasattr(object,'alignment')) or ( object.alignment ==
'left'):
! if not hasattr(object,'Char__width') or object.Char__width !=
len(value):
! object.Char__width=len(value)
# TODO: This should probably trigger a new ObjectModified event
event.new['width'] = object.width
***************
*** 321,328 ****
self.borderPercentage = (float(gConfig('borderPercentage')) / 100)
self.textPercentage = (float(gConfig('textPercentage')) / 100)
! width = self.rootObject.width
! height = self.rootObject.height
self.widgetWidth = (self.charWidth * self.borderPercentage)
self.widgetHeight = (self.charHeight * self.borderPercentage) + 3
--- 321,328 ----
self.borderPercentage = (float(gConfig('borderPercentage')) / 100)
self.textPercentage = (float(gConfig('textPercentage')) / 100)
! width = self.rootObject._layout.Char__width
! height = self.rootObject._layout.Char__height
self.widgetWidth = (self.charWidth * self.borderPercentage)
self.widgetHeight = (self.charHeight * self.borderPercentage) + 3
***************
*** 485,492 ****
def selectWidgetInArea(self, object, x1, y1, x2, y2):
try:
! if x1 <= object.x <= x2 and \
! y1 <= object.y <= y2:
self._currentSelection[object._widgetHandler] = 1
object._widgetHandler.setSelected(1)
except AttributeError:
--- 485,492 ----
def selectWidgetInArea(self, object, x1, y1, x2, y2):
try:
! if x1 <= object.Char__x <= x2 and \
! y1 <= object.Char__y <= y2:
self._currentSelection[object._widgetHandler] = 1
object._widgetHandler.setSelected(1)
except AttributeError:
Index: gnue/designer/src/forms/LayoutEditor/WidgetHandler.py
diff -c gnue/designer/src/forms/LayoutEditor/WidgetHandler.py:1.5
gnue/designer/src/forms/LayoutEditor/WidgetHandler.py:1.6
*** gnue/designer/src/forms/LayoutEditor/WidgetHandler.py:1.5 Mon Nov 25
00:41:42 2002
--- gnue/designer/src/forms/LayoutEditor/WidgetHandler.py Wed Nov 27
19:11:31 2002
***************
*** 147,154 ****
data = [ { "Type" : "selectedWidgets",
"Attributes": {
! 'startingX': object.x + int(x/self.instance.gridWidth),
! 'startingY': object.y + int(y/self.instance.gridHeight),
}
}]
# "name": dname,
--- 147,154 ----
data = [ { "Type" : "selectedWidgets",
"Attributes": {
! 'startingX': object.Char__x +
int(x/self.instance.gridWidth),
! 'startingY': object.Char__y +
int(y/self.instance.gridHeight),
}
}]
# "name": dname,
***************
*** 237,243 ****
if self.object._type == 'GFBox':
self.__popupAttr = 'label'
x = self.widget.GetPosition().x + (self.instance.gridWidth/2)
! width = (self.object.width - 2) * self.instance.gridWidth
else:
self.__popupAttr = 'text'
x = self.widget.GetPosition().x
--- 237,243 ----
if self.object._type == 'GFBox':
self.__popupAttr = 'label'
x = self.widget.GetPosition().x + (self.instance.gridWidth/2)
! width = (self.object.Char__width - 2) * self.instance.gridWidth
else:
self.__popupAttr = 'text'
x = self.widget.GetPosition().x
***************
*** 272,278 ****
nx = dx * self.instance.gridWidth
ny = dy * self.instance.gridHeight
! if (self.object.width + dx < 0 or self.object.height + dy < 0):
return 0
else:
for widget in self.mainWidget.widgets:
--- 272,278 ----
nx = dx * self.instance.gridWidth
ny = dy * self.instance.gridHeight
! if (self.object.Char__width + dx < 0 or self.object.Char__height + dy <
0):
return 0
else:
for widget in self.mainWidget.widgets:
***************
*** 282,294 ****
oldVals = {}
newVals = {}
if dx:
! oldVals['width'] = self.object.width
! self.object.width = self.object.width + dx
! newVals['width'] = self.object.width
if dy:
! oldVals['height'] = self.object.height
! self.object.height = self.object.height + dy
! newVals['height'] = self.object.height
self.instance.dispatchEvent('ObjectModified', object=self.object,
originator="Forms::LayoutEditor",
--- 282,294 ----
oldVals = {}
newVals = {}
if dx:
! oldVals['Char:width'] = self.object.Char__width
! self.object.Char__width = self.object.Char__width + dx
! newVals['Char:width'] = self.object.Char__width
if dy:
! oldVals['Char:height'] = self.object.Char__height
! self.object.Char__height = self.object.Char__height + dy
! newVals['Char:height'] = self.object.Char__height
self.instance.dispatchEvent('ObjectModified', object=self.object,
originator="Forms::LayoutEditor",
***************
*** 310,316 ****
nx = dx * self.instance.gridWidth
ny = dy * self.instance.gridHeight
! if (self.object.x + dx < 0 or self.object.y + dy < 0):
return 0
else:
for widget in self.mainWidget.widgets:
--- 310,316 ----
nx = dx * self.instance.gridWidth
ny = dy * self.instance.gridHeight
! if (self.object.Char__x + dx < 0 or self.object.Char__y + dy < 0):
return 0
else:
for widget in self.mainWidget.widgets:
***************
*** 319,331 ****
oldVals = {}
newVals = {}
if dx:
! oldVals['x'] = self.object.x
! self.object.x = self.object.x + dx
! newVals['x'] = self.object.x
if dy:
! oldVals['y'] = self.object.y
! self.object.y = self.object.y + dy
! newVals['y'] = self.object.y
self.instance.dispatchEvent('ObjectModified', object=self.object,
originator="Forms::LayoutEditor",
--- 319,331 ----
oldVals = {}
newVals = {}
if dx:
! oldVals['Char:x'] = self.object.Char__x
! self.object.Char__x += dx
! newVals['Char:x'] = self.object.Char__x
if dy:
! oldVals['Char:y'] = self.object.Char__y
! self.object.Char__y += dy
! newVals['Char:y'] = self.object.Char__y
self.instance.dispatchEvent('ObjectModified', object=self.object,
originator="Forms::LayoutEditor",
Index: gnue/designer/src/forms/wizards/AddBlock.py
diff -c gnue/designer/src/forms/wizards/AddBlock.py:1.4
gnue/designer/src/forms/wizards/AddBlock.py:1.5
*** gnue/designer/src/forms/wizards/AddBlock.py:1.4 Thu Nov 14 20:27:57 2002
--- gnue/designer/src/forms/wizards/AddBlock.py Wed Nov 27 19:11:31 2002
***************
*** 60,84 ****
# Step #0 / Get Name
#
if step == '0':
!
content = [WizardText('This will insert a new block.'),
WizardInput('name',label='Object Name:',required=1,size=20)]
!
return { 'title': 'Add Block',
'content': content,
'prev': None,
'next': None }
!
###############
#
# We have all the data, so generate our widget.
#
def Finalize(self):
! attrs = {'name': self.variables['name'] or 'Block_1'}
# Find form...
! form = self.current.findParentOfType('GFForm')
! block = self.AddElement('block', form,attrs)
return 1
--- 60,84 ----
# Step #0 / Get Name
#
if step == '0':
!
content = [WizardText('This will insert a new block.'),
WizardInput('name',label='Object Name:',required=1,size=20)]
!
return { 'title': 'Add Block',
'content': content,
'prev': None,
'next': None }
!
###############
#
# We have all the data, so generate our widget.
#
def Finalize(self):
! attrs = {'name': self.GetUniqueName(self.variables['name'] or 'Block1')}
# Find form...
! logic = self.current['logic']
! block = self.AddElement('block', logic, attrs)
return 1
Index: gnue/designer/src/forms/wizards/AddBox.py
diff -c gnue/designer/src/forms/wizards/AddBox.py:1.2
gnue/designer/src/forms/wizards/AddBox.py:1.3
*** gnue/designer/src/forms/wizards/AddBox.py:1.2 Thu Nov 14 20:01:25 2002
--- gnue/designer/src/forms/wizards/AddBox.py Wed Nov 27 19:11:31 2002
***************
*** 62,74 ****
# Create element
self.AddElement( 'box',
! self.current.findParentOfType('GFPage'),
! { 'name': 'Box_1',
'label': 'I am a Box',
! 'x': self.x,
! 'y': self.y,
! 'width': self.width > 2 and self.width or 10,
! 'height': self.height > 2 and self.height or 4})
return 1
--- 62,74 ----
# Create element
self.AddElement( 'box',
! self.current['page'],
! { 'name': self.GetUniqueName('Box1'),
'label': 'I am a Box',
! 'Char:x': self.x,
! 'Char:y': self.y,
! 'Char:width': self.width > 2 and self.width or 10,
! 'Char:height': self.height > 2 and self.height or 4})
return 1
Index: gnue/designer/src/forms/wizards/AddButton.py
diff -c gnue/designer/src/forms/wizards/AddButton.py:1.2
gnue/designer/src/forms/wizards/AddButton.py:1.3
*** gnue/designer/src/forms/wizards/AddButton.py:1.2 Thu Nov 14 20:01:25 2002
--- gnue/designer/src/forms/wizards/AddButton.py Wed Nov 27 19:11:31 2002
***************
*** 126,167 ****
def Finalize(self):
! name = self.variables['name'] or 'Button_1'
label = self.variables['label'] or name
! triggerName = name + "_Trigger"
attrs = {'name': name,
'label': label,
! 'trigger': triggerName,
! 'x': self.x,
! 'y': self.y,
! 'width': max(self.width, len(label) + 2),
! 'height': self.height or 1}
! button = self.AddElement('button', self.current, attrs)
action, info = string.split(self.variables['action'],':')
if action == 'b':
! block = self.current.findParentOfType('GFBlock')
! if not block:
! block = self.current.findChildOfType('GFBlock')
! if not block:
! block = self.form.findChildOfType('GFBlock')
! if not block:
! blockName = 'NoBlock'
! else:
! blockName = block.name
!
code = triggerTemplates[action] % locals()
-
trigger = self.AddElement('trigger',
! self.form,
attributes = {
! 'type':'NAMED',
! 'name': triggerName },
content = code)
return 1
--- 126,156 ----
def Finalize(self):
! name = self.GetUniqueName(self.variables['name'] or 'Button1')
label = self.variables['label'] or name
!
attrs = {'name': name,
'label': label,
! 'Char:x': self.x,
! 'Char:y': self.y,
! 'Char:width': max(self.width, len(label) + 2),
! 'Char:height': self.height or 1}
! button = self.AddElement('button', self.current['page'], attrs)
action, info = string.split(self.variables['action'],':')
if action == 'b':
! block = self.current['block']
! blockName = block.name
code = triggerTemplates[action] % locals()
trigger = self.AddElement('trigger',
! button,
attributes = {
! 'type':'On-Action' },
content = code)
return 1
***************
*** 188,194 ****
triggerTemplates = {
't': """\
##
! ## %(triggerName)s [Button Trigger]
##
# Your code goes here
--- 177,183 ----
triggerTemplates = {
't': """\
##
! ## [Button On-Action Trigger]
##
# Your code goes here
***************
*** 197,203 ****
'b': """\
##
! ## %(triggerName)s [Button Trigger]
##
# Perform a block-level %(info)s
--- 186,192 ----
'b': """\
##
! ## [Button On-Action Trigger]
##
# Perform a block-level %(info)s
***************
*** 206,212 ****
'f': """\
##
! ## %(triggerName)s [Button Trigger]
##
# Perform a form-level %(info)s
--- 195,201 ----
'f': """\
##
! ## [Button On-Action Trigger]
##
# Perform a form-level %(info)s
Index: gnue/designer/src/forms/wizards/AddDataSource.py
diff -c gnue/designer/src/forms/wizards/AddDataSource.py:1.4
gnue/designer/src/forms/wizards/AddDataSource.py:1.5
*** gnue/designer/src/forms/wizards/AddDataSource.py:1.4 Fri Nov 15
15:22:03 2002
--- gnue/designer/src/forms/wizards/AddDataSource.py Wed Nov 27 19:11:31 2002
***************
*** 136,143 ****
# Create new datasource
datasource = self.AddElement('datasource', self.form,
! { 'name': self.variables['name'],
! 'database': self.variables['connection'],
'table': self.variables['table'] } )
--- 136,143 ----
# Create new datasource
datasource = self.AddElement('datasource', self.form,
! { 'name': self.GetUniqueName(self.variables['name']),
! 'connection': self.variables['connection'],
'table': self.variables['table'] } )
***************
*** 151,158 ****
#
def __getExistingDatasources(self):
self.__firstConnection = None
! for child in self.form._children:
! if child._type == 'GFDataSource' and hasattr(child,'table'):
if not self.__firstConnection:
self.__firstConnection = child.database
break
--- 151,158 ----
#
def __getExistingDatasources(self):
self.__firstConnection = None
! for child in self.form.findChildrenOfType('GFDataSource'):
! if hasattr(child,'table'):
if not self.__firstConnection:
self.__firstConnection = child.database
break
Index: gnue/designer/src/forms/wizards/AddDropDown.py
diff -c gnue/designer/src/forms/wizards/AddDropDown.py:1.13
gnue/designer/src/forms/wizards/AddDropDown.py:1.14
*** gnue/designer/src/forms/wizards/AddDropDown.py:1.13 Sat Nov 16 00:46:04 2002
--- gnue/designer/src/forms/wizards/AddDropDown.py Wed Nov 27 19:11:31 2002
***************
*** 60,65 ****
--- 60,69 ----
self.y = y
self.width = width
self.height = height
+
+ if not self.current['block']:
+ raise InsufficientInformation, _("There are no blocks in this form.")
+
self.__getExistingDatasources()
***************
*** 234,242 ****
# Create new datasource
if self.variables['datasource'] == 0:
datasource = self.AddElement('datasource', self.form,
! { 'name': "dtsDrp_%s_%s" % (self.variables['table'],
! self.variables['name']),
! 'database': self.variables['connection'],
'prequery': 1,
'table': self.variables['table'] } )
keyfield = self.variables['key']
--- 238,246 ----
# Create new datasource
if self.variables['datasource'] == 0:
datasource = self.AddElement('datasource', self.form,
! { 'name': self.GetUniqueName("dtsDrp_%s_%s" %
(self.variables['table'],
! self.variables['name'])),
! 'connection': self.variables['connection'],
'prequery': 1,
'table': self.variables['table'] } )
keyfield = self.variables['key']
***************
*** 251,257 ****
# Create a "static" datasource
else:
datasource = self.AddElement('datasource', self.form,
! { 'name': "dtsDrpStatic%s" % self.variables['name'],
'type': "static" } )
keyfield = 'key'
descrfield = 'descr'
--- 255,261 ----
# Create a "static" datasource
else:
datasource = self.AddElement('datasource', self.form,
! { 'name': self.GetUniqueName("dtsDrpStatic%s" %
self.variables['name']),
'type': "static" } )
keyfield = 'key'
descrfield = 'descr'
***************
*** 265,271 ****
except ValueError:
pass
ssr = self.AddElement('staticsetrow', ss)
! self.AddElement('staticsetfield',ssr,{'name': 'key','value': key})
self.AddElement('staticsetfield',ssr,{'name': 'descr','value': descr})
--- 269,275 ----
except ValueError:
pass
ssr = self.AddElement('staticsetrow', ss)
! self.AddElement('staticsetfield',ssr,{'name': 'key', 'value': key})
self.AddElement('staticsetfield',ssr,{'name': 'descr','value': descr})
***************
*** 274,299 ****
#
# Make sure we find a Block
! block = self.current.findParentOfType('GFBlock')
! if not block:
! block =
self.current.findParentOfType('GFPage').findChildOfType('GFBlock')
! if not block:
! # Create a block
! block = self.AddElement('block',
self.current.findParentOfType('GFPage'))
! self.AddElement('entry', self.current.findChildOfType('GFBlock'),
! { 'name': 'fld%s' % self.variables['name'],
'field': self.variables['name'],
- 'style': 'dropdown',
- 'x': self.x,
- 'y': self.y,
- 'width': self.width or 10,
- 'height': 1,
'fk_source': datasource.name,
'fk_key': keyfield,
'fk_description': descrfield } )
return 1
--- 278,305 ----
#
# Make sure we find a Block
! block = self.current['block']
! page = self.current['page']
! field = self.AddElement('field', block,
! { 'name': self.GetUniqueName('fld%s' %
self.variables['name'], block),
'field': self.variables['name'],
'fk_source': datasource.name,
'fk_key': keyfield,
'fk_description': descrfield } )
+ self.AddElement('entry', page,
+ { 'name': self.GetUniqueName('ntry%s' %
self.variables['name'], page),
+ 'field': field.name,
+ 'block': block.name,
+ 'style': 'dropdown',
+ 'Char:x': self.x,
+ 'Char:y': self.y,
+ 'Char:width': self.width or 10,
+ 'Char:height': 1 } )
+
+
return 1
***************
*** 306,313 ****
self.__firstConnection = None
self.__datasourceSet = []
self.__datasourceMap = {}
! for child in self.form._children:
! if child._type == 'GFDataSource' and hasattr(child,'table'):
self.__datasourceSet.append((child.name,"%s (%s)" % (child.name,
child.table)))
self.__datasourceMap[child.name] = child
if not self.__firstConnection:
--- 312,319 ----
self.__firstConnection = None
self.__datasourceSet = []
self.__datasourceMap = {}
! for child in self.form.findChildrenOfType('GFDataSource'):
! if hasattr(child,'table'):
self.__datasourceSet.append((child.name,"%s (%s)" % (child.name,
child.table)))
self.__datasourceMap[child.name] = child
if not self.__firstConnection:
Index: gnue/designer/src/forms/wizards/AddEntry.py
diff -c gnue/designer/src/forms/wizards/AddEntry.py:1.4
gnue/designer/src/forms/wizards/AddEntry.py:1.5
*** gnue/designer/src/forms/wizards/AddEntry.py:1.4 Thu Nov 14 20:01:25 2002
--- gnue/designer/src/forms/wizards/AddEntry.py Wed Nov 27 19:11:31 2002
***************
*** 51,81 ****
self.width = width
self.height = height
###############
#
! # We have all the data, so generate our widget.
#
def Finalize(self):
! attrs = {'name': 'Entry_1',
! 'x': self.x,
! 'y': self.y,
! 'width': self.width or 10,
! 'height': self.height or 1}
!
! # Find or create parent block...
! block = self.current.findChildOfType('GFBlock')
! if not block:
! page = self.current.findChildOfType('GFPage')
! block = self.AddElement('block', page)
# Create entry element
! entry = self.AddElement('entry', block, attrs)
return 1
--- 51,83 ----
self.width = width
self.height = height
+ if not self.current['block']:
+ raise InsufficientInformation, _("There are no blocks in this form.")
###############
#
! # We have all the data, so generate our widget.
#
def Finalize(self):
+ page = self.current['page']
+ block = self.current['block']
! field = self.AddElement('field',block,
! {'name':
self.GetUniqueName('UnboundField1',block)})
! attrs = {'name': self.GetUniqueName('Entry1',page),
! 'field': field.name,
! 'block': block.name,
! 'Char:x': self.x,
! 'Char:y': self.y,
! 'Char:width': self.width or 10,
! 'Char:height': self.height or 1}
# Create entry element
! entry = self.AddElement('entry', page, attrs)
return 1
Index: gnue/designer/src/forms/wizards/AddLabel.py
diff -c gnue/designer/src/forms/wizards/AddLabel.py:1.2
gnue/designer/src/forms/wizards/AddLabel.py:1.3
*** gnue/designer/src/forms/wizards/AddLabel.py:1.2 Thu Nov 14 20:01:25 2002
--- gnue/designer/src/forms/wizards/AddLabel.py Wed Nov 27 19:11:31 2002
***************
*** 58,68 ****
# We have all the data, so generate our widget.
#
def Finalize(self):
!
# Create element
self.AddElement( 'label',
! self.current.findParentOfType('GFPage'),
! { 'name': 'Label_1',
'text': 'Label:',
'x': self.x,
'y': self.y,
--- 58,70 ----
# We have all the data, so generate our widget.
#
def Finalize(self):
!
! page = self.current['page']
!
# Create element
self.AddElement( 'label',
! page,
! { 'name': self.GetUniqueName('Label1',page),
'text': 'Label:',
'x': self.x,
'y': self.y,
Index: gnue/designer/src/forms/wizards/AddPage.py
diff -c gnue/designer/src/forms/wizards/AddPage.py:1.6
gnue/designer/src/forms/wizards/AddPage.py:1.7
*** gnue/designer/src/forms/wizards/AddPage.py:1.6 Thu Nov 14 20:01:25 2002
--- gnue/designer/src/forms/wizards/AddPage.py Wed Nov 27 19:11:31 2002
***************
*** 115,128 ****
def Finalize(self):
! attrs = {'name': self.variables['name'] or 'Page_1'}
try:
attrs['caption'] = self.variables['caption'] or 'New Tab'
except KeyError:
pass
! page = self.AddElement('page', self.form, attrs)
return 1
--- 115,128 ----
def Finalize(self):
! attrs = {'name': self.GetUniqueName(self.variables['name'] or 'Page1')}
try:
attrs['caption'] = self.variables['caption'] or 'New Tab'
except KeyError:
pass
! page = self.AddElement('page', self.current['layout'], attrs)
return 1
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue common/src/GObjects.py designer/src/Instan...,
Jason Cater <=