The local storage (phase 1) is now working and i’m continuing with testing the multi user / network storage.
Conflicting changes and users
The biggest thing with a network version is the situation when multiple people are changing a picto sheet. I’ve solved it by introducing users. Everyone who starts Picto Selector will have to log in with some initials (no password). And you can only change the picto sheets that belongs to that user.
If you change something to a sheet then you will get the option to copy the sheet to yourself. A copy with the change will be yours. The original will be untouched.
When multiple people login with the same initials then optimistic locking is used which means that anyone can make changes but when somebody else saves his changes first then you can no longer save your changes until you refresh your information.
There is a default user installed when creating the database. It’s initals are ‘root’ and it is the administrator who can make changes to all picto sheets.
Using picto sheets of older Picto Selector changes
At the first login on a windows account the picto sheets that were created with an old version of Picto Selector will be imported and assigned to the used user initials.
Photo and user pictos
Both the photos and user pictos were causing some headache because in a network situation you do not have access to the source of the photos unless they are located on the server. But then there is still a problem if I want to add synchronization later.
My solution is to insert user pictos as photos and store the visible part of a photo image in the database. The nice side effect is an increased speed of the photo pictos. When showing a photo picto the earlier stored image is used. When you want to change a photo picto then the original photo will be used unless it is not available. In this situation the image in the database is used.
The user pictos list will be stored in the database for each computer/windows account. So people can have different sets of user pictos. I might add a server pictos option later on.
- Add a user manager, so we can change the initials/name of a user or delete a user (only when he has no picto sheets left) (2010-12-04 done)
- Implement a dialog to change the storage / network location of the database in a user friendly way (2010-12-07 done)
- Improve the feedback when someone else has deleted a picto sheet which you want to open (2010-12-04 done)
- Implement the synchronization functionality which includes a way to compare conflicts, do a first synchronization when a connection with new/another database is made.
- Create some documentation how to install the network version and use the synchronization (2010-12-07 network installation done)
- Test test test
Until i’m certain of the correct working of the database version I will continue to add new symbols on the old (non database) version. It could take a while before i’m satisfied.