che-server/samples/sample-plugin-wizard
Mykola Morhun 6dd0c1245e CODENVY-1106: Add ability to prevent window closing in IDE. Handle closing of preferences window correctly. (#3203)
CODENVY-1106: Add ability to prevent window closing in IDE. Handle closing of preferences window correctly.
2016-12-07 17:15:18 +02:00
..
che-sample-plugin-wizard-ide CODENVY-1106: Add ability to prevent window closing in IDE. Handle closing of preferences window correctly. (#3203) 2016-12-07 17:15:18 +02:00
che-sample-plugin-wizard-server [maven-release-plugin] prepare for next development iteration 2016-12-07 12:34:30 +00:00
che-sample-plugin-wizard-shared [maven-release-plugin] prepare for next development iteration 2016-12-07 12:34:30 +00:00
README.md Follow up fixes after configuration property renaming (#2955) 2016-11-02 10:12:58 +02:00
pom.xml [maven-release-plugin] prepare for next development iteration 2016-12-07 12:34:30 +00:00

README.md

Description

The Plugin Wizard is a demo plugin showing:

  • a new project type for a programming language called "x" and gives it a pretty name of "Sample Project Type"
  • a wizard that adds a compiler version property.
  • a new file type for X source code
  • a sample action that is invoked from within the help menu

Plugin overview

Create a new Project Type

Create a new File Type

Create a new Action

How to build sample-plugin-wizard plugin

The plugin-wizard extension has a client-side (IDE) part and an server part. It also includes some code shared between the IDE and the server. You have to introduce the extension as a dependency in /che/assembly/assembly-ide-war/pom.xml.

Add:

...
<dependency>
  <groupId>org.eclipse.che.sample</groupId>
  <artifactId>che-sample-plugin-wizard-ide</artifactId>
</dependency>
<dependency>
  <groupId>org.eclipse.che.sample</groupId>
  <artifactId>che-sample-plugin-wizard-shared</artifactId>
</dependency>
...

You can insert the dependency anywhere in the list. After you have inserted it, run mvn sortpom:sort and maven will order the pom.xml for you.

Introduce the server part of the extension as a dependency in /che/assembly/assembly-wsagent-war.

Add:

...
<dependency>
  <groupId>org.eclipse.che.sample</groupId>
  <artifactId>che-sample-plugin-wizard-server</artifactId>
</dependency>
<dependency>
  <groupId>org.eclipse.che.sample</groupId>
  <artifactId>che-sample-plugin-wizard-shared</artifactId>
</dependency>
...

You can insert the dependency anywhere in the list. After you have inserted it, run mvn sortpom:sort and maven will order the pom.xml for you.

3- Register dependency to the GWT application

Link the GUI extension into the GWT app. You will add an <inherits> tag to the module definition. The name of the GWT extension is derived from the direction + package structure given to the GWT module defined in our extension.

In: assembly-ide-war/src/main/resources/org/eclipse/che/ide/IDE.gwt.xml

Add:

...
<inherits name='org.eclipse.che.plugin.sample.wizard.SampleWizard'/>
...

3- Rebuild Eclipse Che

# Build a new IDE.war
# This IDE web app will be bundled into the assembly
cd che/assembly/assembly-ide-war
mvn clean install

# Create a new web-app that includes the server-side extension
cd che/assembly/assembly-wsagent-war
mvn clean install

# Creates a new workspace agent that includes new web app w/ your extension
cd assembly/assembly-wsagent-server
mvn clean install

# Create a new Che assembly that includes all new server- and client-side extensions
cd assembly/assembly-main
mvn clean install

4- Run Eclipse Che

# Start Che using the CLI with your new assembly
# Replace <version> with the actual directory name
export CHE_ASSEMBLY=path_to_che_sources/assembly/assembly-main/target/eclipse-che-<version>/eclipse-che-<version>
che start

Documentation resources