abstract stream class %ZEN.StudioDocument.AbstractDocument
extends %Studio.AbstractDocument
Abstract Document used to serve ZEN-editor documents into Studio
In order to create a new Studio Abstract Document, you need to create
a subclass of this class and provide the following:
- A class Projection named RegisterExtension.
For example:
Projection RegisterExtension As %Projection.StudioDocument(DocumentExtension = "BPL");
- A value for the EDITORURL parameter.
This is the URL of the page that provides the actual editor UI.
- If needed, a value for the DOCUMENTCLASS parameter.
- An override of the Save method.
- An override of the Exists method.
parameter DESCRIPTION;
Description Studio will display for this document.
If DOMAIN is defined this will be localized.
parameter DOCUMENTCLASS;
If set, name of superclass used for documents of this type.
For example, "Ens.DataTransformDTL"
parameter EDITORURL;
URL of the editor Studio will display within its HTML pane.
parameter EXTENSION;
File extension used for this document (e.g., ".dtl")
parameter LISTABSTRACT = 0;
If true, the built-in document list logic will include abstract classes
otherwise they are ignored.
method Compile(flags As %String)
as %Status
Compile this document
classmethod Delete(name As %String)
as %Status
Delete the class that corresponds to document name.
Subclass should override this behavior for non-class based editors.
classmethod Exists(pName As %String)
as %Boolean
Return 1 if the given document exists and 0 if it does not.
Subclass can override this behavior.
classmethod GetClassName(pName As %String)
as %String
Return the corresponding class name for this document
classmethod GetOther(Name As %String)
as %String
Return other document types that this is related to.
Passed a name and you return a comma separated list of the other documents it is related to
or "" if it is not related to anything
Subclass should override this behavior for non-class based editors.
classmethod ListClose(ByRef qHandle As %Binary)
as %Status
classmethod ListExecute(ByRef qHandle As %Binary, Directory As %String, Flat As %Boolean, System As %Boolean)
as %Status
classmethod ListFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0)
as %Status
method Load()
as %Status
Return URL for Studio to use to load editor.
classmethod LocalizeDescription(ext As %String, ByRef Description As %String(MAXLEN=500))
as %Status
classmethod TimeStamp(name As %String)
as %TimeStamp
Return the timestamp of routine 'name' in %TimeStamp format. This is used to determine if the routine has
been updated on the server and so needs reloading from Studio. So the format should be $zdatetime($horolog,3),
or "" if the routine does not exist.
Subclass should override this behavior for non-class based editors.