RowSeparatorHeight error

VA Smalltalk is a "100% VisualAge compatible" IDE that includes the original VisualAge technology and the popular VA Assist and WidgetKit add-ons.

Moderators: Eric Clayberg, wembley, tc, Diane Engles, solveig

RowSeparatorHeight error

Postby schepurny » Wed Jan 16, 2008 5:48 am

On a current project we had been struggling with this problem fairly often: 'Undefined Object does not understand RowSeparatorHeight'. We determined that it occurs only in AIX under various scenarios, one of which is when a container has just enough items in it that it is full (without a scroll bar) plus a partial row sometimes referred to as the bottom margin item. This error is within EwTableList. We have made a fix for this that initializes the marginItem in cases where it is being instantiated through lazy initialization.


marginItem
"Answer a fake item which represents the bottom margin.
This value is lazily-initialized."

marginItem isNil ifTrue: [
marginItem := self visibleItemNodeClass new.
self adjustMarginItem].
^marginItem

We made a simple test window that recreates this problem every time in AIX.

We are hoping that this fix will be included in the next VA release.

I tried to include the class as an attachment but for some strange reason this forum doesn't accept attachments even with extensions .st, .txt, or .doc. I have included the class fileout text below instead.


AbtAppBldrView subclass: #MyClass1
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''!

!MyClass1 class privateMethods !

_PRAGMA_IS_

"%%PRAGMA DECLARE
(name: IS_MyClass1 isPool: true isConstant: false)
(pool: IS_MyClass1 declarations: (
(name: IS_instanceInterfaceSpec isConstant: false)
))"!

abtPrimFlushInterfaceSpecCache

IS_MyClass1 associationsDo: [: poolDictionaryAssoc | poolDictionaryAssoc value: nil].
super abtPrimFlushInterfaceSpecCache!

abtUntranslatedConstants
"** Do not modify or delete ** See: AbtAppBldrPart class>>#about_abtUntranslatedConstants"

^#('column 1')!

IS_instanceInterfaceSpec
"Private - ** Warning ** This method is generated by VisualAge and should not
be modified or deleted. This method is responsible for returning a featureSpec
that describes the implementation of a particular feature of the receiver"

^IS_MyClass1::IS_instanceInterfaceSpec notNil
ifTrue: [IS_MyClass1::IS_instanceInterfaceSpec]
ifFalse: [
IS_MyClass1::IS_instanceInterfaceSpec := AbtInterfaceSpec new]! !

!MyClass1 publicMethods !

asdf

^6!

items

^OrderedCollection new
add: 'abcdef';
add: 'abcdef2';
add: 'abcdef3';
add: 'abcdef4';
add: 'abcdef5';
add: 'abcdef6';
yourself! !

!MyClass1 privateMethods !

abtBuildInternals
"** Do not modify or delete ** See: AbtAppBldrPart class>>#about_abtBuildInternals"

| gui window containerDetails1 containerDetailsColumn1 pushButton1 conn1 conn11 conn2 |

gui := self class abtSeparatedConstants.
window := AbtShellView abtCreatePart: 'Window' parent: nil owner: self.
containerDetails1 :=
AbtContainerDetailsView abtCreatePart: 'Container Details1' parent: window.
containerDetailsColumn1 :=
AbtContainerDetailsColumn
abtCreatePart: 'Container Details Column1'
parent: containerDetails1.
pushButton1 := AbtPushButtonView abtCreatePart: 'Push Button1' parent: window.
self primaryPart: window.
window framingSpec: (
AbtViewAttachmentConstraint new
leftEdge: (AbtEdgeConstant new offset: 30);
rightEdge: (AbtEdgeConstant new offset: 533);
topEdge: (AbtEdgeConstant new offset: 30);
bottomEdge: (AbtEdgeConstant new offset: 426)).
containerDetails1
framingSpec: (
AbtViewAttachmentConstraint new
leftEdge: (
AbtRunEdgeAttachmentConstraint new
attachment: XmATTACHFORM;
offset: 56);
rightEdge: (
AbtRunEdgeAttachmentConstraint new
attachment: XmATTACHSELFOPPOSITE;
offset: 320);
topEdge: (
AbtRunEdgeAttachmentConstraint new
attachment: XmATTACHFORM;
offset: 39);
bottomEdge: (
AbtRunEdgeAttachmentConstraint new
attachment: XmATTACHSELFOPPOSITE;
offset: 180));
rowSeparators: false.
containerDetailsColumn1
width: 301;
attributeName: nil;
heading: (gui at: 1) " 'column 1' ";
abtEditPolicyItems: (OrderedCollection new yourself).
pushButton1 framingSpec: (
AbtViewAttachmentConstraint new
leftEdge: (
AbtRunEdgeAttachmentConstraint new
attachment: XmATTACHFORM;
offset: 312);
rightEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHNONE);
topEdge: (
AbtRunEdgeAttachmentConstraint new
attachment: XmATTACHFORM;
offset: 358);
bottomEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHNONE)).
pushButton1
abtWhenPrimitive: #clicked
perform: (
conn1 :=
AbtEventToActionConnection new
source: pushButton1;
eventName: #clicked;
actionProvider: self
variableFeatureName: #closeWidget
featureSelector: #IS_closeWidget).
self attributeConnections add: (
conn11 :=
AbtAttributeToCodeHookConnection new
connectSource: containerDetails1
featureName: #items
feature: AbtContainerDetailsView IS_items
toTarget: self
selector: #items).
self attributeConnections add: (
conn2 :=
AbtAttributeToCodeHookConnection new
connectSource: containerDetails1
featureName: #selectionIndex
feature: AbtContainerDetailsView IS_selectionIndex
toTarget: self
selector: #asdf).
self initializeAttributeConnections.
self finalInitialize! !

MyClass1 initializeAfterLoad!
schepurny
 
Posts: 16
Joined: Tue Jan 15, 2008 10:23 am

Re: RowSeparatorHeight error

Postby solveig » Wed Jan 23, 2008 10:16 am

Thank you for the fix and test case. We will try it out and verify your results.

I have opened a case for this problem to assist in tracking it. The number is 33629.

Regards,
Solveig
solveig
Moderator
 
Posts: 57
Joined: Tue Oct 17, 2006 6:30 am

Re: RowSeparatorHeight error

Postby solveig » Mon May 11, 2009 11:55 am

Hello,

I have been trying to reproduce the problem, but I cannot. Your test (MyClass1) did not file in properly and did not look right in the Composition editor, so I tried constructing it by reading the file-out (MyClass33629). I have attached a zip file containing a DAT with a single application, Test33629 containing the two classes.

the problem may lie in one of two areas: either I have not recreated your test case faithfully, or I am not interacting with the test case in such a way as to exhibit the problem.

Please, review the test case. Where it deviates from yours, change it and send it back to me along with directions on how to create the problem and exactly the symptom, e.g. walkback. It might help to actually send the walkback as well.

Thanks,
Solveig

PS. You can attach the zip file using the "upload attachment" tab at the bottom of the "post reply" page.
Attachments
test33629.zip
contains DAT with test case
(11.93 KiB) Downloaded 40 times
solveig
Moderator
 
Posts: 57
Joined: Tue Oct 17, 2006 6:30 am


Return to VA Smalltalk 7.0, 7.5 & 8.0

Who is online

Users browsing this forum: Yahoo [Bot] and 1 guest