blob: 8fa540e629215b12697b12747fa4ed326f81c099 [file] [log] [blame]
============================================
Sirius - Provide custom representation
============================================
Description
============
Overview
---------------------
Sirius allows one to define new kind of representations.
A representation kind is called "dialect".
API
=======
Interface
-------------------------------
To provide a new dialect you must implement four interfaces.
First step is to implement`org.eclipse.sirius.business.api.dialect.Dialect``. Your implementation should like this ::
public class ExampleDialect implements Dialect {
private DialectServices services;
public String getName() {
return "example";
}
public DialectServices getServices() {
if (services == null) {
services = new ExampleDialectServices();
}
return services;
}
}
Second step is to implement ``org.eclipse.sirius.business.api.dialect.DialectServices``.
Third step is to implement ``org.eclipse.sirius.ui.business.api.dialect.DialectUI``. Your implementation should look like this ::
public class ExampleDialectUI implements DialectUI {
private DialectUIServices services;
public String getName() {
return "example";
}
public DialectUIServices getServices() {
if (services == null) {
services = new ExampleDialectUIServices();
}
return services;
}
}
Last step is to implement ``org.eclipse.sirius.ui.business.api.dialect.DialectUIServices``.
When you have finished, you can contribute to dialect extension points.
Extension points
-------------------------------
To contribute our dialect implementation, we have to provide two extensions.
First to contribute to ``org.eclipse.sirius.dialect`` extension point.
Here is a example ::
<extension point="org.eclipse.sirius.dialect">
<dialect
class="com.example.project.extension.dialect.ExampleDialect">
</dialect>
</extension>
Then we need to contribute to ``org.eclipse.sirius.ui.dialectui``
Here is a example ::
<extension
point="org.eclipse.sirius.ui.dialectui">
<dialectUI
class="com.example.project.ui.extension.dialect.ExampleDialectUI">
</dialectUI>
</extension>