# Frame Extension XML Reference

Describes an extension that adds a dockable frame window to the IDE. The extension XML provides basic information about the frame, including its label in the user interface, its icon in menus, and the class that implements the user interface and behavior for the frame. In addition, you can use the <application-layout> element to specify that frames should be visible in specific positions at startup.

Note: The <extension-xml> element is the root for any extension descriptor. For this kind of extension, the <extension-xml> element's id attribute value must be "urn:com-bea-ide:frame".

For more information on creating a frame view, see the package summary for com.bea.ide.ui.frame.

<extension-xml>
<frame-view-set>
<frame-view>
<application-layout>
<frame-layout>
<frame-container>
<frame-view-ref>

## <frame-view-set> Element

Specifies one or more frame views. Each <frame-view> child element specifies a separate frame view.

<extension-xml>
<frame-view-set>

### Syntax

    <frame-view-set>
        <!-- frame-view elements to specify new frames -->
    </frame-view-set>

### Attributes

Attribute | Description
--- | ---
scope | Optional string. The scope in which the frames defined in this set will be available for display by the user. This can be "main" or "urn:com-bea-ide:debug" to indicate that the frames should be available in the IDE main (not debugging) mode or debugging mode.

### Hierarchy

Parents: <extension-xml>.

Children: <frame-view>.

## <frame-view> Element

Specifies an IDE frame view (a dockable window). You use the <frame-view> element to define certain appearance and behavior properties for the view in the IDE. Most importantly, you specify the class that is your implementation of the view — its user interface and behavior.

<extension-xml>
<frame-view-set>
<frame-view>

### Syntax

    <frame-view
        askavailable="true | false"
        class="classNameForViewImplementation"
        [hasaction="true | false"]
        [icon="pathToGifFile"]
        [id="identifierForThisView"]
        label="labelToDisplayInUI"
    >

### Attributes

Attribute | Description
--- | ---
askavailable | Optional boolean. true to specify that this view implements IFrameView, and that its isAvailable() method should be called to determine whether the frame can be shown. Note that using this attribute can have significant performance impact. Consider using the <frame-view-set> scope attribute to limit how frequently the view gets asked about its availability.
class | Required string. The fully-qualified class name of the frame view implementation. A frame view implementation class must extend Component, implement IFrameView, or both.
hasaction | Optional boolean. true to specify that a menu item for this view should not be shown in any generated frame view menu.
icon | Required string. Path to a 16x16 .gif file that should be used to represent this view in menus.
id | Optional string. An identifier to distinguish between multiple instances of the implementation class.
label | Required string. The label used in the view tab, and in the View menu.

### Hierarchy

Parents: <frame-view-set>.

Children: None.

## <application-layout> Element

Specifies the parameters for frame layouts, or descriptors that specify startup positions for frame views. Use this element when you want one or more frame views to appear in the IDE in specific positions at startup.

<extension-xml>
<application-layout>

### Syntax

    <application-layout
        id="layoutInWhichTheseLayoutsShouldAppear"
    >

### Attributes

Attribute | Description
--- | ---
id | Required string. Identifier for the application layout to which this element's children should be applied. Valid values are "main" and "urn:com-bea-ide:debug".

### Hierarchy

Parents: <extension-xml>.

Children: <frame-layout>.

## <frame-layout> Element

Specifies the parameters of a layout, or the specific positions of one or more frame views at IDE startup.

<extension-xml>
<application-layout>
<frame-layout>

### Syntax

    <frame-layout
        id="frameLayoutID"
    >

### Attributes

Attribute | Description
--- | ---
id | Optional string. Id of the frame layout to which the children should be applied. The valid value is "main".

### Hierarchy

Parents: <application-layout>.

Children: <frame-container>.

## <frame-container> Element

Specifies layout parameters for a group of frame view windows. Use this element when you have two or more frame views that should appear in specific positions relative to each other at startup. Note that <frame-container> elements can have <frame-container> elements as children, each of which define further-nested frames.

<extension-xml>
<application-layout>
<frame-layout>
<frame-container>

### Syntax

    <frame-layout
        [orientation="orientationInIDE"]
        proportion="percentageOfIDESpace"
    >

### Attributes

Attribute | Description
--- | ---
orientation | Optional string. This container's orientation in the layout. Valid values are "tabbed", "root", "north", "south", "west", or "east" (see FrameSvc for descriptions of the positions). This attribute is valid only on the root <frame-container> in a <frame-layout> element.
proportion | Required string. The percentage of space that this container should occupy in the IDE. For example, a container oriented "south" with a proportion of "25%" would occupy the lower 25 percent of the IDE. As with HTML tables, proportions need not add up to 100 percent.

### Hierarchy

Parents: <frame-layout>.

Children: <frame-view-ref>, <frame-container>.

## <frame-view-ref> Element

Specifies a frame view to appear in a container. Within the <frame-container> element, which defines layout parameters, the <frame-view-ref> element specifies details about the frame itself.

<extension-xml>
<application-layout>
<frame-layout>
<frame-container>
<frame-view-ref>

### Syntax

    <frame-layout
        class="frameViewImplementationClass"
        [id="frameLayoutID"]
        [proportion="percentageOfContainerSpace"]
        [visible="true | false"]
    >

### Attributes

Attribute | Description
--- | ---
class | Required string. The fully-qualified class name of the frame view implementation.
id | Optional string. An identifier to distinguish between multiple instances of the implementation class.
proportion | Optional string. The percentage of space that this container should occupy in the container. For example, a container oriented "south" with a proportion of "25%" would occupy the lower 25 percent of the IDE. As with HTML tables, proportions need not add up to 100 percent.
visible | Optional boolean. false to hide this frame on startup.

### Hierarchy

Parents: <frame-container>.

Children: None.