blob: 45ac5bb08d4d1d06f54e5be10f2f0c8ebd877bfe [file] [log] [blame]
chapter:Samples[Samples]
section:SampleImplementation[Sample Implementations]
This section describes some view that are developed using EMF Parsley as a reference implementation to understand how it can be used.
section2:ResourceBased[Resource Based Components]
These components are used to access and manipulate resource based models.
Since all of them specialize the abstract class codeRef[org.eclipse.emf.parsley.views.AbstractSaveableView],
they are all customizable via the following common features:
section2:Resource_ResourceLoader[Resource Customization: Context Menu Factory]
section2:Resource_AdapterFactoryEditingDomain[Resource Customization: Adapter Factory Editing Domain]
%%ul[
%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
%% ul[item[ref:ResourceLoader[ResourceLoader]
%% ul[
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% ]]
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% item[ref:FeaturesProvider[FeaturesProvider]]
%% ]]
%% item[ref:ResourceSaveManager[ResourceSaveManager]]
%% item[ref:EmfActionBarContributor[EmfActionBarContributor]]
%% item[ref:ViewerInitializer[ViewerInitializer]
%% ul[
%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
%% ul[
%% item[ref:ResourceLoader[ResourceLoader]
%% ul[
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% ]]
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% item[ref:FeaturesProvider[FeaturesProvider]]
%% ]]
%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
%% ul[
%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
%% ]]
%% item[ref:ViewerContextMenuFactory[ViewerContextMenuFactory]]
%% ]]
%%]
section3:TableResourceView[Table Resource View]
The e[Table Resource View] is implemented by codeRef[org.eclipse.emf.parsley.views.AbstractSaveableTableView]
class that is intended to be subclassed bu user. It aims to provide a ready-to-use view containing a table that visualizes homogeneous objects.
The following code is an simple example of how it can be used to display a list of Book (based on ExtLibrary
example). To use this view you must first implement the code[URI createResourceURI()] method to specify resource URI.
code[Java][
@Override
protected URI createResourceURI() {
return URI.createPlatformResourceURI(
EmfParsleyAbstractTests.MY_EXTLIBRARY_RELATIVE_PATH, true);
}
]
Therefore you have to implements code[EClass getEClass()] method to specify wich is the type to rapresent and code[Object getContents(Resource resource)]
for the retrieve of the collection.
code[Java][
@Override
protected EClass getEClass() {
return EXTLibraryPackage.Literals.BOOK;
}
@Override
protected Object getContents(Resource resource) {
Library library=(Library) resource.getContents().get(0);
return library.getBooks();
}
]
Here a list of available customizations (see related links for examples):
%%ul[
%% item[ref:TableViewerBuilder[TableViewerBuilder]
%% ul[
%% item[ref:TableViewerColumnBuilder[TableViewerColumnBuilder]
%% ul[
%% item[ref:JfaceProviderFactory[JfaceProviderFactory]]
%% item[ref:PropertyDescriptionProvider[PropertyDescriptionProvider]]
%% item[ref:FeaturesProvider[FeaturesProvider]]
%% ]]
%% item[ref:ViewerInitializer[ViewerInitializer]
%% ul[
%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
%% ul[
%% item[ref:ResourceLoader[ResourceLoader]
%% ul[
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% ]]
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% item[ref:FeaturesProvider[FeaturesProvider]]
%% ]]
%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
%% ul[
%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
%% ]]
%% item[ref:ViewerContextMenuFactory[ViewerContextMenuFactory]]
%% ]]
%% ]]
%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
%% ul[
%% item[ref:ResourceLoader[ResourceLoader]
%% ul[
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% ]]
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% item[ref:FeaturesProvider[FeaturesProvider]]
%% ]]
%%]
section3:TreeResourceView[Tree Resource View]
The e[Tree Resource View] is implemented by class codeRef[org.eclipse.emf.parsley.views.AbstractSaveableTreeView],
that is intented to be subclassed by user.
The following code is an simple example of how it can be used to display a tree of Book (based on ExtLibrary
example). To use this view you must first implement the code[URI createResourceURI()] method to specify resource URI.
code[Java][
@Override
protected URI createResourceURI() {
return URI.createPlatformResourceURI(
EmfParsleyAbstractTests.MY_EXTLIBRARY_RELATIVE_PATH, true);
}
]
Here a list of available customizations (see related links for examples):
%%ul[
%% item[ref:ViewerInitializer[ViewerInitializer]
%% ul[
%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
%% ul[
%% item[ref:ResourceLoader[ResourceLoader]
%% ul[
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% ]]
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% item[ref:FeaturesProvider[FeaturesProvider]]
%% ]]
%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
%% ul[
%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
%% ]]
%% item[ref:ViewerContextMenuFactory[ViewerContextMenuFactory]]
%% ]]
%%]
section3:AbstractSaveableTreeFormView[Tree Form Resource View]
The e[Tree Form Resource View] is implemented by class codeRef[org.eclipse.emf.parsley.views.AbstractSaveableTreeFormView],
that is inteded to be subclassed by user.
As well as in the e[Tree Resource View], it can be used to display a tree but it adds a detail form for editing.
The following code is an example based on ExtLibrary example, where you can see how to implement the code[URI createResourceURI()] method to specify resource URI.
code[Java][
@Override
protected URI createResourceURI() {
return URI.createPlatformResourceURI(
EmfParsleyAbstractTests.MY_EXTLIBRARY_RELATIVE_PATH, true);
}
]
Here a list of available customizations (see related links for examples):
%%ul[
%% item[ref:TreeFormFactory[TreeFormFactory]
%% ul[
%% item[ref:ViewerInitializer[ViewerInitializer]
%% ul[
%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
%% ul[
%% item[ref:ResourceLoader[ResourceLoader]
%% ul[
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% ]]
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% item[ref:FeaturesProvider[FeaturesProvider]]
%% ]]
%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
%% ul[
%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
%% ]]
%% item[ref:ViewerContextMenuFactory[ViewerContextMenuFactory]
%% ul[
%% item[ref:ViewerContentProvider[ViewerContentProvider]]
%% ]]
%% ]]
%% item[ref:FormFactory[FormFactory]
%% ul[
%% item[ref:FormPropertyDescriptionProvider[FormPropertyDescriptionProvider]
%% ul[
%% item[ref:PropertyDescriptionProvider[PropertyDescriptionProvider]]
%% ]]
%% item[ref:FormFeatureControlFactory[FormFeatureControlFactory]
%% ul[
%% item[ref:JfaceProviderFactory[JfaceProviderFactory]]
%% ]]
%% item[ref:EditingDomainFinder[EditingDomainFinder]]
%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
%% ul[
%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
%% ]]
%% item[ref:FeaturesProvider[FeaturesProvider]]
%% ]]
%% ]]
%%]
section2:SelectionChange[Selection Change Components]
In this section we presents some components that are based on selection. These components extends the
class codeRef[org.eclipse.emf.parsley.views.AbstractOnSelectionView].
section3:AbstractOnSelectionTableView[On Selection Table View (Abstract)]
codeRef[org.eclipse.emf.parsley.views.AbstractOnSelectionTableView]
%%ul[
%% item[ref:ViewerFactory[ViewerFactory]
%% ul[
%% item[ref:TableViewerBuilder[TableViewerBuilder]
%% ul[
%% item[ref:TableViewerColumnBuilder[TableViewerColumnBuilder]
%% ul[
%% item[ref:JfaceProviderFactory[JfaceProviderFactory]]
%% item[ref:PropertyDescriptionProvider[PropertyDescriptionProvider]]
%% item[ref:FeaturesProvider[FeaturesProvider]]
%% ]]
%% ]]
%% item[ref:ViewerInitializer[ViewerInitializer]
%% ul[
%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
%% ul[
%% item[ref:ResourceLoader[ResourceLoader]
%% ul[
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% ]]
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% item[ref:FeaturesProvider[FeaturesProvider]]
%% ]]
%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
%% ul[
%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
%% ]]
%% item[ref:ViewerContextMenuFactory[ViewerContextMenuFactory]]
%% ]]
%% ]]
%%]
section3:OnSelectionFormView[On Selection Form View]
codeRef[org.eclipse.emf.parsley.views.OnSelectionFormView]
%%ul[
%% item[ref:ViewerFactory[ViewerFactory]
%% ul[
%% item[ref:TableViewerBuilder[TableViewerBuilder]
%% ul[
%% item[ref:TableViewerColumnBuilder[TableViewerColumnBuilder]
%% ul[
%% item[ref:JfaceProviderFactory[JfaceProviderFactory]]
%% item[ref:PropertyDescriptionProvider[PropertyDescriptionProvider]]
%% item[ref:FeaturesProvider[FeaturesProvider]]
%% ]]
%% ]]
%% item[ref:ViewerInitializer[ViewerInitializer]
%% ul[
%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
%% ul[
%% item[ref:ResourceLoader[ResourceLoader]
%% ul[
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% ]]
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% item[ref:FeaturesProvider[FeaturesProvider]]
%% ]]
%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
%% ul[
%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
%% ]]
%% item[ref:ViewerContextMenuFactory[ViewerContextMenuFactory]]
%% ]]
%% ]]
%%]
section3:OnSelectionTreeView[On Selection Tree View]
codeRef[org.eclipse.emf.parsley.views.OnSelectionTreeView]
%%ul[
%% item[ref:ViewerInitializer[ViewerInitializer]
%% ul[
%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
%% ul[
%% item[ref:ResourceLoader[ResourceLoader]
%% ul[
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% ]]
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% item[ref:FeaturesProvider[FeaturesProvider]]
%% ]]
%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
%% ul[
%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
%% ]]
%% item[ref:ViewerContextMenuFactory[ViewerContextMenuFactory]]
%% ]]
%%]
section3:OnSelectionTreeFormView[On Selection Tree Form View]
codeRef[org.eclipse.emf.parsley.views.OnSelectionTreeFormView]
%%ul[
%% item[ref:TreeFormFactory[TreeFormFactory]
%% ul[
%% item[ref:ViewerInitializer[ViewerInitializer]
%% ul[
%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
%% ul[
%% item[ref:ResourceLoader[ResourceLoader]
%% ul[
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% ]]
%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
%% item[ref:FeaturesProvider[FeaturesProvider]]
%% ]]
%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
%% ul[
%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
%% ]]
%% item[ref:ViewerContextMenuFactory[ViewerContextMenuFactory]
%% ul[
%% item[ref:ViewerContentProvider[ViewerContentProvider]]
%% ]]
%% ]]
%% item[ref:FormFactory[FormFactory]
%% ul[
%% item[ref:FormPropertyDescriptionProvider[FormPropertyDescriptionProvider]
%% ul[
%% item[ref:PropertyDescriptionProvider[PropertyDescriptionProvider]]
%% ]]
%% item[ref:FormFeatureControlFactory[FormFeatureControlFactory]
%% ul[
%% item[ref:JfaceProviderFactory[JfaceProviderFactory]]
%% ]]
%% item[ref:EditingDomainFinder[EditingDomainFinder]]
%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
%% ul[
%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
%% ]]
%% item[ref:FeaturesProvider[FeaturesProvider]]
%% ]]
%% ]]
%%]
section2:Editor[Editor component]