/apache-isis-ide

Apache Isis IDE (plugins for Eclipse)

Primary LanguageXML

apache-isis-ide

This project is alpha quality

This project provides a set of plugins for Eclipse to help write domain-driven applications using Apache Isis.

There are three main components:

  • enhanced rename refactoring
  • views
  • code folding

The plugin archive site can be downloaded here.

Enhanced Refactoring

The Isis programming model (see cheat sheet) defines a number of supporting methods for each class member. For example, for a property lastName defined by getLastName() and setLastName(String), this proposed value can be validated using the supporting validateLastName(String) method.

The Apache Isis IDE plugins hook into the refactoring, so that any supporting methods are automatically renamed if the property (or collection, or action) is also renamed. For example, changing lastName to familyName would result in the validate method being renamed to validateFamilyName(String).

Views

The views show summary information about the class members of the domain object opened in the current editor. Double clicking on any row moves the cursor to that member in the editor.

The views are dynamically updated as you edit the class members; or (with the exception of the outline view) you can use view to edit the class member annotations.

Outline View

The outline is a read-only view of all of the class members of the current domain object, indicating whether each member has supporting methods or not. Double clicking on any row moves the cursor to that member in the editor.

Outline View

where:

Hi
hideXxx() method is present
Di
disableXxx() method is present
Mo
modifyXxx() method is present
Cl
clearXxx() method is present
Va
validateXxx() method is present
AT
addToXxx() method is present
VAT
validateAddToXxx() method is present
RF
removeFromXxx() method is present
VRF
validateRemoveFromXxx() method is present
De
defaultXxx() method is present
Ch
choicesXxx() method is present

Properties View

The properties view is a read/write view on the annotations relevant to properties of any type. Double clicking on any row moves the cursor to that member in the editor.

Properties View

where:

MO#sequence
@MemberOrder sequence() attribute
MO#name
@MemberOrder name() attribute
Title#sequence
@Title sequence() attribute
Title#preprend
@Title prepend() attribute
Title#append
@Title append() attribute
Title#abbreviatedTo
@Title abbreviatedTo() attribute
TypicalLength
@TypicalLength value() attribute
Disabled
@Disabled value() attribute
Optional
@Optional value() attribute
NotPersisted
@NotPersisted value() attribute
Hidden
@Hidden value() attribute
Named
@Named value() attribute
DescribedAs
@DescribedAs value() attribute

String Properties View

The string properties view is a read/write view on the annotations relevant to only properties of type java.lang.String. Double clicking on any row moves the cursor to that member in the editor.

String Properties View

where:

Type
Indicates the property's type
MaxLength
@MaxLength value() attribute
ML#numberOfLines
@MultiLine numberOfLines() attribute
ML#preventWrapping
@MultiLine preventWrapping() attribute
Mask
@Mask value() attribute
RE#validation
@RegEx validation() attribute
RE#format
@RegEx format() attribute
RE#caseSensitive
@RegEx caseSensitive() attribute

Collections View

The collections view is a read/write view on the annotations relevant to collections. Double clicking on any row moves the cursor to that collection in the editor.

Collections View

where:

Type
Indicates the collection's type
MO#sequence
@MemberOrder sequence() attribute
MO#name
@MemberOrder name() attribute
TypeOf
@TypeOf value() attribute
Disabled
@Disabled value() attribute
NotPersisted
@NotPersisted value() attribute
Hidden
@Hidden value() attribute
Named
@Named value() attribute
DescribedAs
@DescribedAs value() attribute

Actions View

The actions view is a read/write view on the annotations relevant to actions, also showing annotations for the actions' parameters (if any). Double clicking on any row moves the cursor to that action in the editor.

Actions View

where, for the action:

Type
Indicates the action's return type
MO#sequence
@MemberOrder sequence() attribute
MO#name
@MemberOrder name() attribute
QueryOnly
@QueryOnly value() attribute
Idempotent
@Idempotent value() attribute
Disabled
@Disabled value() attribute
Hidden
@Hidden value() attribute
NotContributed
@NotContributed value() attribute
NotInServiceMenu
@NotInServiceMenu value() attribute
Debug
@Debug value() attribute
Exploration
@Exploration value() attribute
Named
@Named value() attribute
DescribedAs
@DescribedAs value() attribute

and where, for each action paramter:

Type
Indicates the parameter's type
Named
@Named value() attribute
Optional
@Optional value() attribute
TypicalLength
@TypicalLength value() attribute
MaxLength
@MaxLength value() attribute (string parameters only)
ML#numberOfLines
@MultiLine numberOfLines() attribute (string parameters only)
ML#preventWrapping
@MultiLine preventWrapping() attribute (string parameters only)
Mask
@Mask value() attribute (string parameters only)
RE#validation
@RegEx validation() attribute (string parameters only)
RE#format
@RegEx format() attribute (string parameters only)
RE#caseSensitive
@RegEx caseSensitive() attribute (string parameters only)

Code Folding

The code folding is derived from the Coffee Bytes folding plugin, fixed to run with the latest Eclipse.

Configure using the Preferences menu.

Outline View

Outline View