# com.bea.ide.control
ControlSvc.I Interface

public static interface ControlSvc.I

Enclosing class
  `ControlSvc`

## Method Summary

`public `NewControlInfo`` | `createControlDefinition`(`JavaClass` container, `IControlLocator` locator, `URI` controlPath) Show the appropriate dialog for a new control and return the information collected.
`public `URI`` | `createControlExtensionFile`(`URI` extensionPath, `IControlLocator` locator) Generate an extension file for a control without inserting it into a document.
`public boolean` | `generateFile`(`URI` sourceURI, `URI` destinationURI) Generate a file from another file.
`public `Object`` | `getControlBehavior`(`String` key, `ISourceElement` element, `String` tagName, `String` attributeName) Gets an object that describes a behavior for an element in a control.
`public `String`` | `getControlImplementation`(`ISourceElement` element) Returns the type of the implementation class for the control associated with the given element.
`public `IControlLocator`` | `getControlLocator`(`IProject` project, `String` interfaceName) Gets a control locator based on the interface name.
`public `IControlLocator`` | `getControlLocator`(`ISourceElement` element) Gets a control locator for any control element.
`public `List`` | `getControlLocators`(`IProject` project) Returns the list of available controls for the project.
`public `IDocumentViewInfo`` | `getDesignViewInfo`(`JavaDocument` doc) This creates a designview for the given document.
`public void` | `insertControlInstance`(`JavaClass` container, `String` varName, `String` controlType, `JavaDocTag`[] tags, int insertionIndex) Insert the instance variable for a control (jbc or jbcx) into a ControlContainer.
`public void` | `insertControlInstance`(`JavaClass` type, `IControlLocator` locator, int insertionIndex) Insert the instance variable for a control into a ControlContainer.
`public void` | `insertControlInstance`(`JavaClass` containerClass, `String` type, int insertionIndex) Insert the instance variable for a JBCX (or non-extensible JBC) into a ControlContainer.

## Method Detail

### createControlDefinition(JavaClass, IControlLocator, URI) Method

    public NewControlInfo createControlDefinition(JavaClass container,
                                                  IControlLocator locator,
                                                  URI controlPath)

Show the appropriate dialog for a new control and return the information collected.

#### Parameters

container
  A java class into which the new control will go. This method doesn't actaually insert the instance, the class is only used for name uniqueness and other checks. If this is null, these checks will be skipped.

locator
  The control locator for the control to be created.

controlPath
  the URI of the control extension file to create if needed. If this is a file ending in the correct extension, it will be the default file to create. If it's any other file or a directory, the extension file will be created in that directory. If null, no extension file will be created.

#### Returns

A descriptor for the control, or null if the user cancels.

### createControlExtensionFile(URI, IControlLocator) Method

    public URI createControlExtensionFile(URI extensionPath,
                                          IControlLocator locator)

Generate an extension file for a control without inserting it into a document.

#### Parameters

extensionPath
  The default location for the JBCX file to be created.

locator
  the locator for the control to be extended.

#### Returns

the URI to the created file, or null if cancelled or an error occurs.

### generateFile(URI, URI) Method

    public boolean generateFile(URI sourceURI,
                                URI destinationURI)

Generate a file from another file. The specific conversion is decided by examining the filehandlers for the source and destination URIs.

#### Parameters

sourceURI
  the document on which the new contents are based.

destinationURI
  the document to create/overwrite with generated contents.

#### Returns

true if the generation succeeded, false if there was an error.

### getControlBehavior(String, ISourceElement, String, String) Method

    public Object getControlBehavior(String key,
                                     ISourceElement element,
                                     String tagName,
                                     String attributeName)

Gets an object that describes a behavior for an element in a control. Currently, this can be a property editor or renderer for a specific attribute.

#### Parameters

key
  The behavior which should be retrieved. This is a subset of behaviors defined in EditorSupport.

element
  The element to which this behavior relates.

tagName
  the name of the tag for this behavior. May be null.

attributeName
  the name of the attribute for this behavior. May be null.

#### Returns

an object describing the behavior, or null if there is no matching behavior. BEHAVIOR_EDIT_ACTION returns the IActionProxy that edits the given (default if null) attribute.

### getControlImplementation(ISourceElement) Method

    public String getControlImplementation(ISourceElement element)

Returns the type of the implementation class for the control associated with the given element.

#### Parameters

element
  An element in an extension file for a control, or an instance of a control.

#### Returns

The java type of the implementation. This may be null if not found.

### getControlLocator(IProject, String) Method

    public IControlLocator getControlLocator(IProject project,
                                             String interfaceName)

Gets a control locator based on the interface name.

#### Parameters

project
  the Project in which to find the locator.

interfaceName
  The main interface for the control.

#### Returns

The IControlLocator that describes the control.

### getControlLocator(ISourceElement) Method

    public IControlLocator getControlLocator(ISourceElement element)

Gets a control locator for any control element.

#### Parameters

element
  An element in an extension file for a control, or an instance of a control.

#### Returns

The IControlLocator that describes the control.

### getControlLocators(IProject) Method

    public List getControlLocators(IProject project)

Returns the list of available controls for the project.

#### Parameters

project
  The project whose control locators will be returned.

#### Returns

A List of IControlLocator objects for all controls in the project. This will never be null, but may be 0-length.

### getDesignViewInfo(JavaDocument) Method

    public IDocumentViewInfo getDesignViewInfo(JavaDocument doc)

This creates a designview for the given document.

#### Parameters

doc
  The document which needs a design view.

#### Returns

The design view document info object. The createView() method of this interface may be used to create the design view.

### insertControlInstance(JavaClass, String, String, JavaDocTag[], int) Method

    public void insertControlInstance(JavaClass container,
                                      String varName,
                                      String controlType,
                                      JavaDocTag[] tags,
                                      int insertionIndex)

Insert the instance variable for a control (jbc or jbcx) into a ControlContainer.

#### Parameters

container
  The parent of the new variable.

varName
  The instance name to use for the control.

controlType
  The full type of the control.

tags
  An array of javadoc tags to add in addition to common:control. If this is null, a wizard (if appropriate to the base control) will be shown to collect information. A zero-length array should be used to suppress this.

insertionIndex
  The child index of the container after which the new control will appear in source. -1 indicates to use the default.

### insertControlInstance(JavaClass, IControlLocator, int) Method

    public void insertControlInstance(JavaClass type,
                                      IControlLocator locator,
                                      int insertionIndex)

Insert the instance variable for a control into a ControlContainer. IControlLocator.getWizard is called to get the initial instance information, and possibly generate a control extension file.

#### Parameters

type
  The parent of the new variable.

locator
  Control locator for the desired control type.

### insertControlInstance(JavaClass, String, int) Method

    public void insertControlInstance(JavaClass containerClass,
                                      String type,
                                      int insertionIndex)

Insert the instance variable for a JBCX (or non-extensible JBC) into a ControlContainer. This will show the wizard with the tags-only dialog shown.

#### Parameters

containerClass
  the JavaClass into which the control should be inserted.

type
  the fully-qualified type of the control or extension interface.