Java Code Examples for org.eclipse.emf.edit.provider.IItemPropertySource.getPropertyDescriptors()

The following are Jave code examples for showing how to use getPropertyDescriptors() of the org.eclipse.emf.edit.provider.IItemPropertySource class. You can vote up the examples you like. Your votes will be used in our system to get more good examples.
+ Save this method
Example 1
Project: limpet   File: CombinedProperty.java   View Source Code Vote up 6 votes
/** utility class to add all properties to supplied list
 * 
 * @param result
 * @param object
 * @param source
 * @param name
 */
private static void storeProperties(
    final Collection<IPropertyDescriptor> result, final Object object,
    final IItemPropertySource source, final String name)
{
  for (IItemPropertyDescriptor itemPropertyDescriptor : source
      .getPropertyDescriptors(object))
  {
    result.add(new PropertyDescriptor(object, itemPropertyDescriptor)
    {
      public String getCategory()
      {
        return name;
      };

    });
  }
}
 
Example 2
Project: OpenSPIFe   File: EMFDetailFormPart.java   View Source Code Vote up 6 votes
private void createReferenceBinding(Composite parent, EObject target, IItemPropertyDescriptor pd, EReference reference) {
  // Check to see if the EClassifier would like to be displayed
  // in detail. May want to reserve this for EReference types in
  // the future, and should probably check if the object has its
  // own IItemPropertySource
  if (EMFUtils.testBooleanAnnotation(reference, EMFDetailUtils.ANNOTATION_SOURCE_DETAIL, ANNOTATION_DETAIL_INSPECT_REFERENCE)) {
  	if (EMFUtils.testBooleanAnnotation(reference, EMFDetailUtils.ANNOTATION_SOURCE_DETAIL, ANNOTATION_DETAIL_INSPECT_REFLECTIVELY)) {
 			ReflectiveItemProviderAdapterFactory ripaf = new ReflectiveItemProviderAdapterFactory();
 			EObject eObject = (EObject)target.eGet(reference);
 			IItemPropertySource source = (IItemPropertySource) ripaf.adapt(eObject, IItemPropertySource.class);
 			if (source != null) {
 				List<IItemPropertyDescriptor> pds = source.getPropertyDescriptors(eObject);
 				String displayName = pd.getDisplayName(eObject);
		buildPropertySection(parent, eObject, pds, displayName, null);
 			}
  		return;
  	}
inspectReferenceFeature(parent, target, reference);
  } else if (EMFUtils.testBooleanAnnotation(reference, EMFDetailUtils.ANNOTATION_SOURCE_DETAIL, ANNOTATION_DETAIL_TABLE)) {
  	DetailProviderParameter parameter = createDetailProviderParameter(parent, target, pd);
  	EMFDetailUtils.TABLE_BINDING_FACTORY.createBinding(parameter);
  } else {
  	createEditor(parent, target, pd);
  }
 }
 
Example 3
Project: OpenSPIFe   File: EMFTreeTableUtils.java   View Source Code Vote up 4 votes
public static TreeTableViewer<EObject, EAttribute> createEMFTreeTableViewer(Composite parent, EStructuralFeature structuralFeature, EClass eClass, EditingDomain editingDomain, boolean forceTreeParent, boolean useDefaultSortColumn, boolean isScrollable, boolean editable) {
	EPackage ePackage = eClass.getEPackage();
	EObject eObject = ePackage.getEFactoryInstance().create(eClass);
	AdapterFactory domainAdapterFactory = EMFUtils.getAdapterFactory(editingDomain);
	IItemPropertySource source = (IItemPropertySource) domainAdapterFactory.adapt(eObject, IItemPropertySource.class);

	List<ITreeTableColumn> columns = new ArrayList<ITreeTableColumn>();
	for (final IItemPropertyDescriptor descriptor : source.getPropertyDescriptors(eObject)) {
		if (!isVisible(descriptor.getFeature(eObject))) {
			continue;
		}
		DetailProviderParameter parameter = new DetailProviderParameter();
		parameter.setPropertyDescriptor(descriptor);
		parameter.setTarget(eObject);
		ITreeTableColumn column = null;
		IEMFTreeTableProvider provider = EMFUtils.adapt(eObject, IEMFTreeTableProvider.class);
		if (provider != null) {
			column = provider.getTreeTableColumn(parameter);
		}
		if (column == null) {
			String displayName = EMFDetailUtils.getDisplayName(eObject, descriptor);
			int columnWidth = getColumnWidth(eObject, descriptor);
			column = new ValidatedReferenceTreeTableColumn(parameter, displayName, columnWidth, editable);
		}
		columns.add(column);
	}
	
	TreeTableColumnConfiguration configuration = new TreeTableColumnConfiguration(columns.get(0), columns, (useDefaultSortColumn) ? columns.get(0) : null);
	TreeTableComposite composite = new TreeTableComposite(parent, configuration, useDefaultSortColumn, isScrollable);
	// this odd "if" preserves existing semantics that conflated sorting with layouts
	if (useDefaultSortColumn) {
		composite.setLayout(new FillLayout());
	} else {
		composite.setLayout(new TreeTableColumnLayout(true));
	}
	TreeTableViewer<EObject, EAttribute> viewer = new ReflowingTreeTableViewer<EObject, EAttribute>(composite, configuration, null);
	
	if(forceTreeParent) {
		viewer.getTree().setParent(parent);
	}
	
	AdapterFactory adapterFactory = EMFUtils.getAdapterFactory(editingDomain);
	viewer.setEditorModel(new IEnsembleEditorModel.STUB(new ObjectUndoContext(editingDomain)));
	viewer.setContentProvider(new EMFTreeTableContentProvider(adapterFactory, structuralFeature, eClass));
	viewer.setLabelProvider(new EMFTreeTableLabelProvider(adapterFactory));
	return viewer;		
}