Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 407351

Summary: tabbed property view section is not layout correctly based on aftersection specification
Product: [Eclipse Project] Platform Reporter: Charles Chen <chyhx>
Component: UIAssignee: Platform-UI-Inbox <Platform-UI-Inbox>
Status: CLOSED WONTFIX QA Contact:
Severity: major    
Priority: P3 CC: curtis.windatt.public
Version: 4.3Keywords: helpwanted
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard: stalebug

Description Charles Chen CLA 2013-05-06 22:26:03 EDT
I'm using tabbed properties view and run into this problem: the property view sections are not layout correctly based on afterSection specification when the extension point definition scattered in different bundles. the extension point i use is org.eclipse.ui.views.properties.tabbed.propertySections.

After looking into class TabDescriptor, here is my simple understanding: the behavior of the sorter method is depending on the sequence of reading the section configuration.
assuming that there is an existing section C which is after section A, you want to insert section B:
  1. if read section C's configuration first, the result will be B->C-A, which is wrong;
  2. if read section A's configuration first, the result will be A->B->C, which is expected;

TabDescriptor.java
package org.eclipse.ui.internal.views.properties.tabbed.view;
...
/**
 * Represents the default implementation of a tab descriptor on the tabbed
 * property tabs extensions.
 * 
 * @author Anthony Hunter
 */
public class TabDescriptor extends AbstractTabDescriptor {

	...

	/**
	 * Insert the section descriptor into the section descriptor list.
	 * 
	 * @param target
	 *            the section descriptor to insert.
	 * @return <code>true</code> if the target descriptor was added to the
	 *         descriptors list.
	 */
	private boolean insertSectionDescriptor(ISectionDescriptor target) {
		if (target.getAfterSection().equals(TOP)) {
			getSectionDescriptors().add(0, target);
			return true;
		}
		for (int i = 0; i < getSectionDescriptors().size(); i++) {
			ISectionDescriptor descriptor = (ISectionDescriptor) getSectionDescriptors()
					.get(i);
			if (target.getAfterSection().equals(descriptor.getId())) {
				getSectionDescriptors().add(i + 1, target);
				return true;
			} else if (descriptor.getAfterSection().equals(target.getId())) {
				getSectionDescriptors().add(i, target);
				return true;
			}
		}
		return false;
	}

	...
}

Could anyone help on this issue ASAP? A consistent properties view layout is important for us to avoid confusing customers.
Comment 1 Curtis Windatt CLA 2013-05-07 09:23:30 EDT
Moving to Platform UI and reducing the severity.  The Platform UI team is very busy with the 4.3 release so I don't think this can be looked at currently.  You seem to have a good handle on what is causing the problem.  Would you consider contributing a patch?  I would be happy to review it, though it may have to wait until 4.4.
Comment 2 Lars Vogel CLA 2019-11-27 07:36:44 EST
This bug hasn't had any activity in quite some time. Maybe the problem got
resolved, was a duplicate of something else, or became less pressing for some
reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it.
The information can be, for example, that the problem still occurs, that you
still want the feature, that more information is needed, or that the bug is
(for whatever reason) no longer relevant.

If the bug is still relevant, please remove the stalebug whiteboard tag.