Skip to content

gwtproject/gwt-editor

Repository files navigation

GWT Editor

GWT3/J2CL compatible License Chat on Gitter CI

A future-proof port of the com.google.gwt.editor.Editor GWT module, with no dependency on gwt-user (besides the Java Runtime Emulation), to prepare for GWT 3 / J2Cl.

Migrating from com.google.gwt.editor.Editor

  1. Add the dependency to your build.

    For Maven:

    <dependency> <groupId>org.gwtproject.editor</groupId> <artifactId>gwt-editor</artifactId> <version>HEAD-SNAPSHOT</version> </dependency>

    and the processor:

    <dependency> <groupId>org.gwtproject.editor</groupId> <artifactId>gwt-editor-processor</artifactId> <version>HEAD-SNAPSHOT</version> <scope>provided</scope> </dependency>

    For Gradle:

    implementation("org.gwtproject.editor:gwt-editor:HEAD-SNAPSHOT")

    and the processor:

    ToDo ... <dependency> <groupId>org.gwtproject.editor</groupId> <artifactId>gwt-editor-processor</artifactId> <version>HEAD-SNAPSHOT</version> <scope>provided</scope> </dependency>
  2. Update your GWT module to use

    <inherits name="org.gwtproject.editor.Editor" />
  3. Change the imports in your Java source files:

    import org.gwtproject.editor.client.xxx;

Instructions

To build gwt-event:

  • run mvn clean verify

on the parent directory. This will build the artifact and run tests against GWT2. The J2CL test need to be executed with mvn j2cl:clean an mvn j2cl:test due to a problem with modules that use processors. See: https://github.com/Vertispan/j2clmavenplugin/issues/14

System Requirements

GWT Editor requires GWT 2.9.0 or newer!

Dependencies

GWT Editor depends on the following module:

  • GWT Event.

Example usage

the bean

public class Person { private int id; private String name; private boolean active; public Person() { } public Person(int id, String name, boolean active) { this.id = id; this.name = name; this.active = active; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isActive() { return active; } public void setActive(boolean active) { this.active = active; } }

The component

this component uses domino-ui

public class PersonComponent implements IsElement<HTMLDivElement>, Editor<Person> { @IsDriver interface Driver extends SimpleBeanEditorDriver<Person, PersonComponent> { } private DominoElement<HTMLDivElement> root = DominoElement.of(div()); IntegerBox id; TextBox name; CheckBox active; private final Driver driver; public PersonComponent() { driver = new PersonComponent_Driver_Impl(); id = IntegerBox.create("id"); name = TextBox.create("name"); active = CheckBox.create("Is active"); root.appendChild(Row.create() .appendChild(Column.span12() .appendChild(id)) .appendChild(Column.span12() .appendChild(name)) .appendChild(Column.span12() .appendChild(active)) ); driver.initialize(this); } public void edit(Person person){ driver.edit(person); } public Person save(){ return driver.flush(); } @Override public HTMLDivElement asElement() { return root.asElement(); } }

And use it like this

PersonComponent personComponent = new PersonComponent(); Person person = new Person(10, "Ahmad", false); DomGlobal.document.body.appendChild(Card.create() .appendChild(personComponent) .asElement()); personComponent.edit(person); 

About

Ported GWT editors from GWT 2.8.x ready for GWT 2.x & J2CL /GWT 3)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5

Languages