Bug 178179 The order of included css files keeps unchanged when reloading
Xingjie once asked Rima this question, and Rima answered that the order kept unchanged. The question and answer are listed following: About reload css. Now there is duplicate style name problem. Which css file is added at last, which file has the highest priority. For example design file has two css file. base.css and new.css . Base.css ----- StyleA ----- StyleB New.css -----StyleA -----StyleC So the priority of new.css is higher. So we can get three styles: New.css.styleA, StyleB, StyleC When I execute reload base.css action, There is two choices. One is : keep every thing. That means the priority of new.css is higher too. Second is: After reload, priority of base.css is higher. And in report design you will see New.css -----StyleA -----StyleC Base.css ----- StyleA ----- StyleB And we can get three styles: base.css.styleA, styleB, styleC Which is the better choice? I will let Xiong send a bug about the choice that in future we can know the behavior. [Rima Kanguri] Always the priority of the last file included is highest. In your example the styles defined in New.css takes higher priority always. Even when user performs a reload operation.
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/css/StyleSheetLoader.java
/**
	 * Translates a CSS rule into one or more styles with the definition of ROM.
	 * This method only deals with the style rules, while any other rules, such
	 * as import rules, page rules and so on, are ignored. The neglect
	 * operations will be recorded in the log file and added into the warning
	 * list. Then all the created styles by interpretations and translations
	 * will be added into the given <code>CssStyleSheet</code> container.
	 * 
	 * @param styleSheet
	 *            the style sheet, which is a container defined by Model to
	 *            store all the styles loaded from the external resource
	 * @param rule
	 *            the current CSS rule to handle
	 * @throws StyleSheetException
	 *             the CSS rule has some syntax errors colliding with CSS2
	 *             grammar
	 */
	void loadStyle( CssStyleSheet styleSheet, CSSRule rule )
			throws StyleSheetException
	{
		
		if ( rule.getType( ) == CSSRule.STYLE_RULE )
		{
			try
			{
				StyleRule sr = (StyleRule) rule;
				SelectorList selectionList = sr.getSelectorList( );
				CSSStyleDeclaration declaration = sr.getStyle( );
				LinkedHashMap properties = null;
				List errors = new ArrayList( );