I like the symbol functionality (with some usability problems i have described in my previous topic, e.g. no Convert to symbol on right click), but it’s usage is very limited, because there are only 2 posibilities
- use original source - 100 % identical - symbol everywhere
- break it apart - no connection to symbol source
This limits most of the usage of the symbols i can imagine. E.g. typicaly i want to create a symbol (or in terminology of other services - shared template) with the common data on the webpage - browser window, top header, headline and menu, footer.
The problem is, that on every page, where i would use such symbol, i need to do some slight modification - e.g. change the Title and URL of the browser window and resize it to fit the content, change selected menu item …
This way the only thing i can do now is to always break it appart and destroy the common symbol functionality, so e.g. if i want to change, resize or move the logo, add one item to menu … i have to do all the changes on every single mockup again.
I think this is wrong and pity and i believe it could be “quite easily” solved thanks to JSON internal structure of every element/symbol.
My idea is to add 3rd possibility for symbol - Modified symbol. This way the used symbol would be virtualy broken apart as standard group, but still keep the connection link to symbol. And instead of full information about the symbol, the json definition would keep the modification “diff”. So e.g. in my example above (changing title,url,height of browser, change selected element in menu), the diff would contain
controls: control: ID:0, text: “New title\rhttp://new.url.com”, measuredH: 1000; ID: 1; selectedIndex: 1;
This way i could still edit the source symbol and it would keep all the changes in all it’s usage. Only if i e.g. delete one element from the symbol, it would need to delete its info from all the modifications (and recalculate the ID’s), or e.g. if i add one more item to the menu in symbol edit, it would need to recalculate the selectedIndex in all modifications (so that the same items would be selected on given modifications…