Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 357765
Collapse All | Expand All

(-)src/org/eclipse/emf/ecp/editor/AnnotationHiddenDescriptor.java (+29 lines)
Line 0 Link Here
1
package org.eclipse.emf.ecp.editor;
2
3
import org.eclipse.emf.ecore.EAnnotation;
4
import org.eclipse.emf.ecore.EObject;
5
import org.eclipse.emf.ecore.EStructuralFeature;
6
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
7
8
public class AnnotationHiddenDescriptor implements
9
		IAttributeDescriptor<Boolean> {
10
11
	private final static Boolean defaultValue = new Boolean(false);
12
	
13
	/**
14
	 * Returns true, if feature associated with given
15
	 * {@link IItemPropertyDescriptor} marked with hidden=true annotation
16
	 * 
17
	 * @see org.eclipse.emf.ecp.editor.IAttributeDescriptor#getValue(org.eclipse.emf.edit.provider.IItemPropertyDescriptor,
18
	 *      org.eclipse.emf.ecore.EObject)
19
	 */
20
	public Boolean getValue(IItemPropertyDescriptor propertyDescriptor,
21
			EObject modelElement) {
22
		EAnnotation priority = ((EStructuralFeature) propertyDescriptor.getFeature(modelElement))
23
				.getEAnnotation("org.eclipse.emf.ecp.editor");
24
			if (priority == null || priority.getDetails() == null || priority.getDetails().get("hidden") == null) {
25
				return defaultValue;
26
			}
27
			return Boolean.parseBoolean(priority.getDetails().get("hidden"));
28
	}
29
}
(-)src/org/eclipse/emf/ecp/editor/MEEditorPage.java (-1 / +25 lines)
Lines 7-15 Link Here
7
package org.eclipse.emf.ecp.editor;
7
package org.eclipse.emf.ecp.editor;
8
8
9
import java.util.ArrayList;
9
import java.util.ArrayList;
10
import java.util.Collection;
10
import java.util.Collections;
11
import java.util.Collections;
11
import java.util.Comparator;
12
import java.util.Comparator;
12
import java.util.HashMap;
13
import java.util.HashMap;
14
import java.util.Iterator;
13
import java.util.List;
15
import java.util.List;
14
import java.util.Map;
16
import java.util.Map;
15
17
Lines 223-236 Link Here
223
			"toolbar:org.eclipse.emf.ecp.editor.MEEditorPage");
225
			"toolbar:org.eclipse.emf.ecp.editor.MEEditorPage");
224
		form.getToolBarManager().update(true);
226
		form.getToolBarManager().update(true);
225
	}
227
	}
228
	
229
	/**
230
	 * Filters attributes marked with "hidden=true" annotation
231
	 * 
232
	 * @param propertyDescriptors property descriptors to filter
233
	 */
234
	private void filterHiddenAttributes(Collection<IItemPropertyDescriptor> propertyDescriptors) {
235
		Iterator<IItemPropertyDescriptor> iterator = propertyDescriptors.iterator();
236
		
237
		AnnotationHiddenDescriptor visibilityDescriptor = new AnnotationHiddenDescriptor();
238
		
239
		while (iterator.hasNext()) {
240
			IItemPropertyDescriptor descriptor = iterator.next();
241
			
242
			if (visibilityDescriptor.getValue(descriptor, modelElement)) {
243
				iterator.remove();
244
			}
245
		}
246
	}
226
247
227
	private void sortAndOrderAttributes() {
248
	private void sortAndOrderAttributes() {
228
249
229
		AdapterFactoryItemDelegator adapterFactoryItemDelegator = new AdapterFactoryItemDelegator(
250
		AdapterFactoryItemDelegator adapterFactoryItemDelegator = new AdapterFactoryItemDelegator(
230
			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE));
251
			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE));
231
252
232
		List<IItemPropertyDescriptor> propertyDescriptors = adapterFactoryItemDelegator
253
		Collection<IItemPropertyDescriptor> propertyDescriptors = adapterFactoryItemDelegator
233
			.getPropertyDescriptors(modelElement);
254
			.getPropertyDescriptors(modelElement);
255
		
256
		filterHiddenAttributes(propertyDescriptors);
257
		
234
		if (propertyDescriptors != null) {
258
		if (propertyDescriptors != null) {
235
			AnnotationPositionDescriptor positionDescriptor = new AnnotationPositionDescriptor();
259
			AnnotationPositionDescriptor positionDescriptor = new AnnotationPositionDescriptor();
236
			for (IItemPropertyDescriptor itemPropertyDescriptor : propertyDescriptors) {
260
			for (IItemPropertyDescriptor itemPropertyDescriptor : propertyDescriptors) {

Return to bug 357765