org.eclipse.datatools.sqltools.schemaObjectEditor

Identifier:
org.eclipse.datatools.sqltools.schemaobjecteditor.schemaObjectEditor

Description:
This extension point is used to enable the consumers to define a new multiple pages based database schema object editor.

Configuration Markup:

<!ELEMENT extension (SchemaObjectEditor* , EditorPage*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT SchemaObjectEditor (EditorPage* , ReferencedPage* , ReferencedEditor? , DefaultPagesOrder?)>

<!ATTLIST SchemaObjectEditor

EditorId               CDATA #REQUIRED

EditorName             CDATA #REQUIRED

VendorName             CDATA #REQUIRED

Version                CDATA #IMPLIED

ObjectTypeId           CDATA #REQUIRED

Handler                CDATA #REQUIRED

VisibilityConfigurable (true | false)

Icon                   CDATA #IMPLIED

ContributorClass       CDATA #IMPLIED

MustBeFirstWhenShown   CDATA #IMPLIED

MustBeLastWhenShown    CDATA #IMPLIED

ObjectTypeName         CDATA #IMPLIED>

A schema editor is used to edit a schema object, such as a table, a stored procedure, a view, etc.. It can contain several pages, it's easy for the consumer to add a page, just add a EditorPage under SchemaObjectEditor node, also, it is the consumer's responsibility to create the content in a page. The schema object editor framework does not define any model for the consumer, so the consumer need to define the model and implement the subject-obsevers mechanism. The consumer can define the behaviour of the editor by defining the ConfigurationClass. Also, it can contribute actions via ContributorClass.



<!ELEMENT EditorPage EMPTY>

<!ATTLIST EditorPage

PageId           CDATA #REQUIRED

PageName         CDATA #REQUIRED

VisibleByDefault (true | false)

Required         (true | false)

Class            CDATA #REQUIRED

ContextHelpId    CDATA #IMPLIED

ObjectClassType  CDATA #IMPLIED>

An editor page is contained in a multiple pages editor.



<!ELEMENT ReferencedPage EMPTY>

<!ATTLIST ReferencedPage

EditorId        CDATA #IMPLIED

PageId          CDATA #REQUIRED

PageExtensionId CDATA #IMPLIED>

Reference a page defined in other editor. This is to reuse some pages.



<!ELEMENT Excludes (ExcludePage)*>

When referencing an exsiting editor, all pages in that editor will be added into this editor. To exclude some pages in the referencing editor, using this element.



<!ELEMENT ReferencedEditor (Excludes*)>

<!ATTLIST ReferencedEditor

EditorId CDATA #IMPLIED>

If a referenced editor is specified, all the attributes will be ignored except DatabaseName, DatabaseVersion, ObjectTypeId and the containing pages. A common usage of referenced editor is: For a higer version database, it may reuse the lower version's editor, but need to add more pages. ATTN: The refrenced pages/editors in the referenced editor will not be included.



<!ELEMENT ExcludePage EMPTY>

<!ATTLIST ExcludePage

PageId CDATA #REQUIRED>

The excluded page in the referenced editor



<!ELEMENT DefaultPagesOrder (OrderItem)*>

Define the default order of pages which are REQUIRED or visible BY DEFAULT.



<!ELEMENT OrderItem EMPTY>

<!ATTLIST OrderItem

PageId   CDATA #IMPLIED

OrderNum CDATA #IMPLIED>