01-23-2016, 12:01 AM
(01-22-2016, 11:58 AM)Zuberman Wrote: Option 1 requires a fair amount of work from a UI perspective as I have to make some major design changes to the editor and I also have to introduce a concept of separators that are inserted between songs. The original song list can remain unchanged - the separator is just an entry for visualization. This is doable though, it will just take some time.to be honest I threw option 2 in there for completeness, but I had an inkling that it would be more complicated.
Option 2 requires a redesign of setlists that affects every section of code across the entire application that deals with them. If I think of a "Set" as an ordered list of songs, a setlist goes from having a simple list of ordered songs to having a list of sets which are each an ordered list of songs. That means I can no longer use any common code to deal with them, which impacts the database code the most. It also makes things like the alphabetic sorting odd because each set would be individually sorted, making the alphabet list unusable unless I flattened all of the songs in that sort order, dissolving the set boundaries (which I'll probably have to do with option 1 as well). I would not allow sets to contain other sets, as then you have a hierarchical mess which would be very difficult to implement from a UI perspective (you would need some sort of tree control which doesn't really fit anything I currently have implemented). Every change I make I also have to make in the companion application meaning a new design for the UI dealing with setlists there as well.
There's still plenty more I'm sure I haven't thought about with option 2 that would make it a nightmare. It would probably take me months of work to make the changes necessary for this, introducing a lot of bugs along the way. I'm going to have to say no to this idea unless there is overwhelming support for it. Option 1 is going to require a lot of UI changes for editing and displaying setlists, meaning I can no longer use shared code for that, but it's more manageable than the kind of changes option 2 would require as I'm not fundamentally changing the core design of setlists.
Mike
Option 1 would work just fine, especially since, aside from the numbering issue, it is in fact pretty close to what a place holder is, in other words a song with very few capabilities. I can do sets now with place-holder songs, but, that doesn't give me sense of where I am in the set.