Cheers,
From what code you provide I can not spot any error. I do not use your persistence strategy myself, so I first thought that it might be an issue related to that - for instance something with the identity of objects from the recentFileList and the savedEntry messing up. But that would not explain why it works unsorted.
I have a piece of code in my application which is doing pretty much the same: selected := table selection selectedItem. table items: self sheeps. (selected notNil and: [ table items includes: selected ]) ifTrue: [ table selection selectItem: selected. self announceNewSelection: selected ]. For some reason I work on the selection rather than the table, but it does not seem to make any difference when I just tried. Is there a way in which you mock the âobjects := â¦.â to something which do not use persistence to rule out that is the persistence causing the problems (or verify it). A method which returns a triple of known objects perhaps. Sometimes the problem lies in the instantiation of the table, so perhaps that might help to see. I am on EU time and on discord this morning, you are more than welcome to try to grab me. I have been using SpTablePresenter a lot (and is often baffled as well). Best, Kasper
On 4 Jul 2021, at 11.26, Mark O'Donoghue <mark.odonoghue.2010@gmail.com> wrote:
Howdy all
Iâve got stuck trying to manage Tables â over 12 hours now and Iâm out of ideas!. â¹
Any observations / suggestions are most welcomeâ¦
Iâve been loading small external files of transactions using NeoCSV into Spec2 tables. I am trying to use Fuel to persist the table contents so that my application will re-load the working state from where I finished in the last session. (Iâve opted for Fuel as a simple alternative to having to do the whole object relational mapping thing.)
The idea is that transactions (and potentially some manual adjustments) will be processed over time. (This is preferable to having to reload all files from the beginning evert time I run the applicationâ¦)
The Spec2 tables have been working well until I tried to persist them. I canât seem to fully re-load them to a previously saved state.
For example - I can restore the essential contents of my table in most circumstances using:
restoreObjects âfilePresenter1 is a SpTablePresenterâ
| objects savedEntry | objects := CpPersist restoreObjectsFromFileNamed: 'E:\Me\zzzST-Test\demo.fuel'.
recentFileList := objects at: 1. currFileFilter := objects at: 2. savedEntry := objects at: 3.
self updateFilterButton: currFileFilter.
filteredFileList := self filterFilesUsing: currFileFilter.
filePresenter1 items: filteredFileList.
savedEntry ifNotNil: [filePresenter1 selectItem: savedEntry ].
However, if any of the table columns are re-sorted , the re-load operation gets confused and I canât get the saved a saved selected item to become selected again.
(It seems to be confusing the index numbers of the sorted and unsorted lists â even when I match by contents rather than index.) (I also created an equality test to ensure equivalent entries are recognised by the #= operation in the list of the underlying model ).
This all works fine - unless I sort a column!
Since this approach was going to be used on several screens Iâd really like to find a solution.
Cheers Mark Perth, Western Australia