Style Set menu and Styles tab synchronization issues. (#194)

The bug I raised earlier ID 183 is not yet fixed.

Set Tools -> Options -> General, 'Default project style set' - 'Simple with shadow'.

Create new Project, new Class Diagram, add class to diagram.

The class does have 'Simple with shadow' style. Good.

The menu Project -> Style Set now has nothing checked. I don't know how this is supposed to work but would expect that either 'Default' or 'Simple with shadow' would be checked. Otherwise how are you supposed to know which is the current style set? This is BUG 1.

Clicking Project -> Style -> Default results in the class in the diagram having a black and white style with a gloss effect. In this case the style displayed by the class on the diagram and the style listed as Default in the Styles Tab _are_the_same_. This is good.

Clicking Project -> Style -> Colorful results in the class in the diagram having a coloured (blue) style with a sharp black shadow, but the style listed as Default in the Styles Tab _is_completely_different. In this case the style listed in the Style Tab is black and white with a smooth shadow, whereas the class in the diagram is coloured with a flat shadow. This is BUG 2.


Is Project -> Style Set -> Default supposed to be set to whatever you selected in Tools -> Options -> General, 'Default project style set'. _Or_ does it represent an actual style set named 'Default'?

If it represents whatever you selected in Tools -> Options -> General - 'Default project style set', then when you create a new Project it should be checked.

If on the other hand 'Default' is a separate Style Set named 'Default' then when you create a new Project whichever Style Set you selected in Tools -> Options -> General - 'Default project style set' (in this case 'Simple with shadow') should be checked instead.

14 March 2013 7:19:30
20 February 2014 1:38:18
Requested by
Solved in

Dusan Rodina - 14 March 2013 7:44:03

Style sets work this way - when you select a style set from menu (Project/Style Set), it applies a style set to project and copy this style set to the project. From that moment the project style set is completely new instance, independent from the chosen one. So when you open your project on computer, where this style set is missing or modified, the project will have always the same look.

The bad design decision from me was that the menu item with chosen style set was checked. That's why I removed these checks completely from the new version.

The Default style set has a special status among the other styles. It is a built-in style set. Other style sets are loaded from '.simss' files.

The default project style set in Option window (Tools/Options) says which style set will be used instead of the built-in style set.

I'll think more about work with style sets and try to make it more obvious and intuitive in the next version.

Dusan Rodina - 14 March 2013 7:56:07

Maybe I can show the current style set checked in one of next versions. However, it will be a bit complicated - the program will have to compare the content of the current project style set with each defined style set and when it find the match, it will check the menu item of the style set.

Dusan Rodina - 14 March 2013 8:14:11

The preview of default style for Colorful is correct. Colorful style set has conditional default style - it varies by element type (class, package, use case etc.).

Conditional styles are accessible only from Style Set editor - you can open it using menu Project/Style Set/Edit.

Neutrino 14 March 2013 9:35:24

Thanks for the prompt reply Dusan.

So you start off with a copy of a pre-existing style set, ('Simple', 'Simple Bold' etc) of which 'Default' is just another style set (the built in one).

The user is then free to modify the style set, at which point it has been 'customized'.

In that case here's how I think the UI should work.

1) You need to provide some indication of what the current style set is.

2) That the Default style set is 'built in' is an implementation feature that the user does not need to know about. So it does not need to live in a separate section on the Project -> Style Set menu since that makes it unclear that it's just the name of another style set.


I suggest you add a Style Set title field to the Styles tab just above the toolbar. If an unmodified style set is being used it would display the standard name of the style set ('Default', 'Simple', 'Simple bold' etc), if the user has modified the style set it would read ('Simple - modified', 'Simple Bold - modified' etc), and if the user has loaded a style set from disk then it would display the name that the style set was saved using.

On the Project -> Style Set menu I suggest you remove the separator between 'Default' and the other styles, (to make it clear that it is in fact a style set itself rather than the one you selected to be the default in Tools -> Options). Also remove 'Remove all custom styles', I don't think it does anything at the moment, and if it did do anything then I think it would be the same as selecting one of the predefined style sets.

If the user has modified the predefined style set and then clicks on one of the style sets from the Project -> Style Sets menu, then there should be a warning that if they continue then all the modified styles in their project will be lost.


Other random points:

Turn indentation on when writing styles to out to xml file. Makes it much easier to read.

When clicking Project -> Style Set -> Edit, the style set name only appears in the 'Style Set Name' field for 'Default' and 'Simple Bold', for all other style sets it is blank.

Menu commands that open a dialog e.g. Project -> Style Set -> Load, Project -> Style Set -> Edit should have a trailing elipsis '...'

I see that the Colorful style has conditional styles and that the colours are different for different objects. However using the Colorful style set none of the objects has its heading rendered using a Bold font, and yet that is how the default style appears in the Styles Tab.

Dusan Rodina - 15 March 2013 3:05:36

I thank you for your valuable advices and suggestions. I will definitely use them in the development of the next version.

Neutrino 15 March 2013 6:28:45

You are most welcome Dusan, it's nice to see this project being so actively developed :)

Your Name:
You can use these formatting tags: [b]bold[/b] [i]italic[/i] [u]underline[/u] [url][/url] [code]some code[/code] [quote]quoted text[/quote] [list]one list item per line[/list]