org.eclipse.graphiti.pattern

## Interface IPattern

All Superinterfaces:
  IAdd, ICreate, ICreateInfo, IDelete, IDirectEditing, ILayout, IMoveShape, IRemove, IResizeShape, IUpdate

All Known Implementing Classes:
  AbstractPattern, IdPattern, TypedPattern

    public interface IPattern
    extends ICreate, IAdd, IDelete, IRemove, IUpdate, ILayout, IResizeShape, IMoveShape, IDirectEditing

The Interface IPattern marks a pattern for handling shapes. Please see the information in `AbstractPattern`.

### Field Summary

### Fields inherited from interface org.eclipse.graphiti.func.ICreate

`EMPTY`

### Fields inherited from interface org.eclipse.graphiti.func.IDirectEditing

`TYPE_CUSTOM, TYPE_DROPDOWN, TYPE_DROPDOWN_READ_ONLY, TYPE_MULTILINETEXT, TYPE_NONE, TYPE_TEXT`

### Method Summary

All Methods Instance Methods Abstract Methods
`PictogramElement` `add(IAddContext context)` Clients must override this method to provide the functionality to add an existing domain object to a diagram.
`boolean` `canAdd(IAddContext context)` Clients must override this method to indicate the framework that this pattern can add a domain object to the diagram.
`void` `completeInfo(IDirectEditingInfo info, Object bo)` Complete the directEditing info.
`void` `completeInfo(IDirectEditingInfo info, Object bo, String keyProperty)` Complete the directEditing info.
`String` `getCreateDescription()` Gets the create description.
`String` `getCreateName()` Gets the create name.
`IResizeConfiguration` `getResizeConfiguration(IResizeShapeContext context)` Provides configuration object, which describes the resize behavior.
`boolean` `hasDoneChanges(Class<?> actionType)` Is queried by the framework after a pattern has been executed to find out if this pattern should appear in the undo stack.
`boolean` `isMainBusinessObjectApplicable(Object mainBusinessObject)` This method must be implemented by the pattern user.
`boolean` `isPaletteApplicable()` Determines whether the pattern supports the creation of new business objects from the palette.
`void` `setFeatureProvider(IFeatureProvider fp)` Sets the feature provider.

### Methods inherited from interface org.eclipse.graphiti.func.ICreate

`canCreate, create`

### Methods inherited from interface org.eclipse.graphiti.func.ICreateInfo

`getCreateImageId, getCreateLargeImageId`

### Methods inherited from interface org.eclipse.graphiti.func.IDelete

`canDelete, delete, isDeleteAbort, postDelete, preDelete`

### Methods inherited from interface org.eclipse.graphiti.func.IRemove

`canRemove, isRemoveAbort, postRemove, preRemove, remove`

### Methods inherited from interface org.eclipse.graphiti.func.IUpdate

`canUpdate, update, updateNeeded`

### Methods inherited from interface org.eclipse.graphiti.func.ILayout

`canLayout, layout`

### Methods inherited from interface org.eclipse.graphiti.func.IResizeShape

`canResizeShape, resizeShape`

### Methods inherited from interface org.eclipse.graphiti.func.IMoveShape

`canMoveShape, moveShape`

### Methods inherited from interface org.eclipse.graphiti.func.IDirectEditing

`canDirectEdit, checkValueValid, completeValue, getEditingType, getInitialValue, getPossibleValues, getProposalSupport, getValueProposals, isAutoCompletionEnabled, isCompletionAvailable, setValue, stretchFieldToFitText`

### Method Detail

#### isPaletteApplicable

    boolean isPaletteApplicable()

Determines whether the pattern supports the creation of new business objects from the palette. Setting this to `false` will suppress the creation of a palette item for this pattern.

Returns:
  `true` if the pattern supports the `ICreate` methods and a palette item should be generated

#### getCreateName

    String getCreateName()

Gets the create name.

Specified by:
  `getCreateName` in interface `ICreateInfo`
Returns:
  name for UI representation

#### getCreateDescription

    String getCreateDescription()

Gets the create description.

Specified by:
  `getCreateDescription` in interface `ICreateInfo`
Returns:
  description for UI representation

#### setFeatureProvider

    void setFeatureProvider(IFeatureProvider fp)

Sets the feature provider.

Parameters:
  `fp` - the new feature provider

#### isMainBusinessObjectApplicable

    boolean isMainBusinessObjectApplicable(Object mainBusinessObject)

This method must be implemented by the pattern user. The main pictogram element of the pattern is linked with the main business object.

Parameters:
  `mainBusinessObject` - the main business object
Returns:
  True, if this pattern is responsible for the main business object

#### completeInfo

    void completeInfo(IDirectEditingInfo info,
                      Object bo)

Complete the directEditing info. This information is needed to switch automatically into the direct editing mode. (e.g. after creation of a new object)

Parameters:
  `info` - the directEditing info
  `bo` - the business object

#### completeInfo

    void completeInfo(IDirectEditingInfo info,
                      Object bo,
                      String keyProperty)

Complete the directEditing info. This information is needed to switch automatically into the direct editing mode. (e.g. after creation of a new object)

Parameters:
  `info` - the directEditing info
  `bo` - the business object
  `keyProperty` - the key property

#### add

    PictogramElement add(IAddContext context)

Clients must override this method to provide the functionality to add an existing domain object to a diagram. Corresponds to the `IAdd.add(IAddContext)` method. The default implementation simply does nothing and returns `null`.

Specified by:
  `add` in interface `IAdd`
Parameters:
  `context` - The add context holding information about the added domain object.
Returns:
  The root shape of the created pictogram tree.

#### canAdd

    boolean canAdd(IAddContext context)

Clients must override this method to indicate the framework that this pattern can add a domain object to the diagram. Corresponds to the `IAdd.canAdd(IAddContext)` method. The default implementation simply returns `false`.

Specified by:
  `canAdd` in interface `IAdd`
Parameters:
  `context` - The add context holding information about the added domain object.
Returns:
  `true`, if the domain object can be added, `false` otherwise.

#### getResizeConfiguration

    IResizeConfiguration getResizeConfiguration(IResizeShapeContext context)

Provides configuration object, which describes the resize behavior.

Parameters:
  `context` - the resizing context
Returns:
  the resize configuration object

#### hasDoneChanges

    boolean hasDoneChanges(Class<?> actionType)

Is queried by the framework after a pattern has been executed to find out if this pattern should appear in the undo stack. By default all patterns should appear there (see implementation in AbstractPattern), but single pattern may decide to override this behavior. Note that this is a dynamic attribute of the pattern that is queried each time after the pattern has been executed.

IMPORTANT NOTE: The implementor of the feature is responsible for correctly implementing this method! It will lead to inconsistencies if this method returns `false` although the pattern did changes.

Parameters:
  `actionType` - the followings types are currently supported: `IDelete.class, IRemove.class`
Returns:
  `true` if the last action of the pattern from this action type should appear in the undo stack, `false` otherwise
Since:
  0.9