IServerDocument interface
Overview
The IServerDocument interface represents the document container. Each IServerDocument interface is a document container made up of views of the same kind.
A view can be a design document form or a panel form.
Every document editor server (encapsulated by the IServerModule interface) that supports creation of documents will have a IServerDocument interface.
The IServerDocument interface hierarchy is as follows;
IServerDocument Methods and Properties Table
IServerDocument |
IServerDocument |
IServerDocument example
Procedure OpenAndShowADocument(Filename : TDynamicString); Var ReportDocument : IServerDocument; Begin If Client = Nil Then Exit; ReportDocument := Client.OpenDocument( 'Text' ,FileName); If ReportDocument <> Nil Then Client.ShowDocument(ReportDocument); End; |
See also
IClient interface
IServerDocumentView interface
IServerView interface
CS server example in the \Developer Kit\Examples\DXP\ClientServer Interfaces\ folder.
IServerDocument Methods
AddView method
(IServerDocument interface)
Syntax
Procedure AddView (Const AView : IServerDocumentView);
Description
This procedure adds a IServerDocumentView object in the server document. A IServerDocument object is a container containing views of document views and panel views.
Example
See also
IServerDocument interface
IServerDocumentView interface
DoFileLoad method
(IServerDocument interface)
Syntax
Function DoFileLoad : LongBool;
Description
This function allows the re-loading of the document. This is useful if the document has been modified and saved and it needs to be re-loaded to ensure that the document is in the latest state.
Example
See also
IServerDocument interface
DoFileSave method
(IServerDocument interface)
Syntax
Function DoFileSave (Const AKind : Widestring) : LongBool;
Description
This function provides you an option to save the document in a different format if the document supported by the specific document editor provides the option of saving in a different format other than the default format. Normally these file formats are stored in the SaveFilters block within the EditorWindowKind section within a server installation file (with an INS extension).
File Formats
For example with PCB documents in Altium Designer, you can save them as a PCB ASCII format, PCB Binary 3 format etc - PCB Binary, PCB 3.0 Binary, PCB 4.0 Binary, PCB ASCII. By default its PCB Binary 5.0.
With Schematic documents, you can save them as a Advanced Schematic binary, Advanced Schematic ascii, Schematic binary 4.0, Orcad SDT Schematic, Advanced Schematic template.
Server Installation files
The file formats supported by editors can be found in the server installation files within the SaveFilters - End blocks.
DelphiScript Example
Var Board : IPCB_Document; AView : IServerDocumentView; AServerDocument : IServerDocument; Begin // save the file in a different PCB format //check if current document is a PCB document otherwise exit! Board := PCBServer.GetCurrentPCBBoard; If Board = Nil Then Exit; If Client = Nil Then Exit; // Grab the current document view using the Client's Interface. AView := Client.GetCurrentView; AServerDocument := AView.OwnerDocument; AServerDocument.DoFileSave( 'PCB ASCII' ); Close; End; |
See also
IServerDocument interface
IServerDocument interface
GetCanClose method
GetModified method
GetFileName method
Focus method
(IServerDocument interface)
Syntax
Procedure Focus;
Description
The procedure forces the document to be the focussed document in Altium Designer. A focussed document is the top level document and in view in Altium Designer workspace that responds to commands etc.
Example
See also
IServerDocument interface
GetBeingClosed method
(IServerDocument interface)
Syntax
Function GetBeingClosed : LongBool;
Description
The function determines whether the server document is being closed or not. Use the GetCanClose function to check if the document can be closed or not.
Example
See also
IServerDocument interface
GetCanClose method
GetModified method
GetFileName method
DoFileSave method
GetCanClose method
(IServerDocument interface)
Syntax
Function GetCanClose : LongBool;
Description
This function checks whether the document can be closed or not. This method is used for the CanClose property.
Example
See also
IServerDocument interface
GetModified method
GetFileName method
DoFileSave method
GetContextHelpTopicName method
(IServerDocument interface)
Syntax
Function GetContextHelpTopicName : Widestring;
Description
The GetContextHelpTopicName function retrieves the help topic name for the document. Normally the returned string would be the ServerModuleName.DocumentKind format for example 'SCH.SCH' Some servers provide more detailed information, for example Schematic Editor server returns Sch.Sheet.Port when the mouse is over the Port object on a schematic sheet.
Notes
Third party developers can use this function to provide context sensitive help.
To implement the help for your server, you should have a .HELPID file in the Help folder where the link between the string returned by the GetContextHelpTopicName and the actual help document is established.
For example the CXTSystemDesignCapture.HelpID contains a Sch.Sheet.Port = CXTSystemDesignCapture.chm,Document_Objects\Port.htm. This means when the F1 key is pressed and the Sch.Sheet.Port string is returned, it will use the CXTSystemDesignCapture.chm filename and display the Document_Objects\Port.htm topic.
Example
See also
IServerDocument interface
GetCount method
(IServerDocument interface)
Syntax
Function GetCount : Integer;
Description
The Count property returns the number of views (of the same type) in the IServerDocument container. Use in conjunction with the View property.
This method is used for the Count property.
Example
Var ServerModule : IServerModule; ServerDocument : IServerDocument; ServerDocumentView : IServerDocumentView; Begin ServerModule := Client.ServerModuleByName[ 'PCB' ]; If ServerModule = Nil Then Exit; For I := 0 to ServerModule.DocumentCount - 1 Do Begin ServerDocument := ServerModule.Documents[I]; ShowMessage( 'Document View Count ' + IntToStr(ServerDocument.Count) + # 13 + 'Kind ' + ServerDocument.Kind)); End; End; |
See also
IServerDocument interface
GetFileModifiedDate method
(IServerDocument interface)
Syntax
Function GetFileModifiedDate: TDateTime;
Description
This function returns the date and time of the modified file.
Example
See also
IServerDocument interface
GetFileModifiedDate method
SetFileModifiedDate method
TDateTime type from Borland Delphi Run Time Library.
GetFileName method
(IServerDocument interface)
Syntax
Function GetFileName : Widestring;
Description
This function retrieves the file name as a string for the server document. Note a server document can be a document view or a panel view, and thus if it is a panel view, the GetFileName method is invalid.
Example
ServerDocumentView := ServerDocument.View[j]; If Not(ServerDocumentView.IsPanel) Then ShowMessage( ' Document Name ' + ServerDocument.FileName); |
See also
IServerDocument interface
GetIsShown method
(IServerDocument interface)
Syntax
Function GetIsShown : LongBool;
Description
The IsShown property denotes whether or not this document is displayed in Altium Designer. This property is supported by the GetIsShown and SetIsShown methods.
Example
See also
IServerDocument interface
GetKind method
(IServerDocument interface)
Syntax
Function GetKind : Widestring;
Description
This function returns the Kind string for this document and this function is used for the Kind property. Examples include 'PCB', 'PCBLIB','SCH','SCHLIB' etc.
Example
ServerModule := Client.ServerModuleByName[ 'PCB' ]; If ServerModule = Nil Then Exit; For I := 0 to ServerModule.DocumentCount - 1 Do Begin ServerDocument := ServerModule.Documents[I]; ShowMessage( 'Document View Count ' + IntToStr(ServerDocument.Count) + # 13 + 'Kind ' + ServerDocument.GetKind)); End; |
See also
IServerDocument interface
GetModified method
(IServerDocument interface)
Syntax
Function GetModified : LongBool;
Description
The Modified property denotes whether this document has been modified or not, and can be taken as a "dirty" flag, that is a document has been modified and it has been marked dirty.
This property is supported by the GetModified and SetModified methods.
Example
Var AView : IServerDocumentView; AServerDocument : IServerDocument; Begin If Client = Nil Then Exit; // Grab the current document view using the Client's Interface. AView := Client.GetCurrentView; // Grab the server document which stores views by extracting the ownerdocument field. AServerDocument := AView.OwnerDocument; // Set the document dirty. AServerDocument.Modified := True; End; |
See also
IServerDocument interface
GetServerModule method
(IServerDocument interface)
Syntax
Function GetServerModule : IServerModule;
Description
The ServerModule is a read-only property which returns the IServerModule interface that the document is associated with. The server module represents the server object installed and running in Altium Designer.
A server module manages its own documents and panels. This property is supported by the GetServerModule method.
Example
//IServerModule interface ServerModule := Client.ServerModuleByName[ 'PCB' ]; If ServerModule = Nil Then Exit; ShowMessage(IntToStr(ServerModule.DocumentCount)); For I := 0 to ServerModule.DocumentCount - 1 Do Begin //IServerDocument interface ServerDocument := ServerModule.Documents[I]; // do what you want with server documents End; |
See also
IServerDocument interface
IServerModule interface
GetSupportsOwnSave method
(IServerDocument interface)
Syntax
Function GetSupportsOwnSave : LongBool;
Description
The SupportsOwnSave property returns a boolean value whether a save routine has been provided to save these documents associated with the server. This is a read only property and is supported by the GetSupportsOwnSave method.
Example
See also
IServerDocument interface
GetView method
(IServerDocument interface)
Syntax
Function GetView (Index : Integer) : IServerDocumentView;
Description
The View property is an indexed property and represents a document or panel view. The IServerDocument.Count method returns the list of views (which could be document or panel windows) as part of the IServerDocument container.
This property is supported by the GetView method.
Example
For J := 0 to ServerDocument.Count - 1 Do Begin ServerDocumentView := ServerDocument.View[j]; ShowMessage( 'View Name ' + ServerDocumentView.ViewName); If Not(ServerDocumentView.IsPanel) Then ShowMessage( ' Document Name ' + ServerDocument.FileName); End; |
See also
IServerDocument interface
GetViewByName method
(IServerDocument interface)
Syntax
Function GetViewByName (Const ViewName : Widestring) : IServerDocumentView;
Description
The GetViewByName function returns the View object which represents a document or panel view.
Example
ServerDocumentView := ServerDocument.GetViewByName(PCBExpressionFilter); If ServerDocumentView.IsPanel Then ShowMessage( 'This Server Document View is a Panel' ); |
See also
IServerDocument interface
IServerDocumentView interface
SetBeingClosed method
(IServerDocument interface)
Syntax
Procedure SetBeingClosed (Const Value : LongBool);
Description
The BeingClosed property denotes that this design document is being closed before this design document can be successfully destroyed. This property is a read only property. You can check the status of the document before you attempt to modify or update the document before it is being closed.
This property is supported by the GetBeingClosed and SetBeingClosed methods.
Example
See also
IServerDocument interface
SetFileModifiedDate method
(IServerDocument interface)
Syntax
Procedure SetFileModifiedDate(Const AValue : TDateTime);
Description
The procedure sets the modified date for the document if the document has been modified by an outside agent.
Example
See also
IServerDocument interface
GetModified method
SetModified method
SetFileName method
(IServerDocument interface)
Syntax
Function SetFileName (Const AFileName : Widestring): Widestring;
Description
The SetFileName function sets the filename for the document.
Example
See also
IServerDocument interface
SetIsShown method
(IServerDocument interface)
Syntax
Procedure SetIsShown (Const Value : LongBool);
Description
The IsShown property denotes whether or not this document is displayed in Altium Designer. This property is supported by the GetIsShown and SetIsShown methods.
Example
See also
IServerDocument interface
SetModified method
(IServerDocument interface)
Syntax
Procedure SetModified (Const Value : LongBool);
Description
The Modified property denotes whether this document has been modified or not, and can be taken as a "dirty" flag, that is a document has been modified and it has been marked dirty.
This property is supported by the GetModified and SetModified methods.
Example
Var AView : IServerDocumentView; AServerDocument : IServerDocument; Begin If Client = Nil Then Exit; // Grab the current document view using the Client's Interface. AView := Client.GetCurrentView; // Grab the server document which stores views by extracting the ownerdocument field. AServerDocument := AView.OwnerDocument; // Set the document dirty. AServerDocument.Modified := True; End; |
See also
IServerDocument interface
NotifyViews method
(IServerDocument interface)
Syntax
Procedure NotifyViews (ANotification : INotification);
Description
This procedure sends a notification to all the views associated with the IServerDocument container.
Example
See also
IServerDocument interface
INotification interface
SupportsReload method
(IServerDocument interface)
Syntax
Function SupportsReload : LongBool;
Description
This method determines whether the document in Altium Designer can be re loaded or not (to refresh and to make sure that the document state is the latest).
Example
See also
IServerDocument interface
DoFileLoad method
UpdateModifiedDate method
(IServerDocument interface)
Syntax
Procedure UpdateModifiedDate;
Description
The procedure updates the modified document's date after this document has been modified.
Example
See also
IServerDocument interface
GetModified method
SetModified method
ReleaseFileOwnership method
(IServerDocument interface)
Syntax
Procedure ReleaseFileOwnership;
Description
For internal use only.
Example
See also
IServerDocument interface
ReleaseDataFileHandle method
(IServerDocument interface)
Syntax
Procedure ReleaseDataFileHandle;
Description
For internal use only.
Example
See also
IServerDocument interface
OwnsFile method
(IServerDocument interface)
Syntax
Function OwnsFile : Boolean;
Description
The OwnsFile function determines whether the document is owned by the Altium Designer product and thus this document can be saved or not.
Example
See also
IServerDocument interface
DoSafeFileSave method
(IServerDocument interface)
Syntax
Function DoSafeFileSave (Const AKind : Widestring) : LongBool;
Description
The function determines whether the document can be saved of specified document type safely.
Example
See also
IServerDocument interface
DoSafeChangeFileNameAndSave method
(IServerDocument interface)
Syntax
Function DoSafeChangeFileNameAndSave(Const ANewFileName, AKind : Widestring) : LongBool;
Description
The function determines whether the current document can be saved with the new file name and new document type or not.
Example
See also
IServerDocument interface
AcquireFileOwnership method
(IServerDocument interface)
Syntax
Procedure AcquireFileOwnership;
Description
For internal use only.
Example
See also
IServerDocument interface
AcquireDataFileHandle method
(IServerDocument interface)
Syntax
Procedure AcquireDataFileHandle;
Description
For internal use only.
Example
See also
IServerDocument interface
WarnIfOwnedByOther method
(IServerDocument interface)
Syntax
Function WarnIfOwnedByOther(AWarningLevel : TFileOwnershipWarningLevel) : LongBool;
Description
This function determines whether the document is owned by another user. A document can be shared amongst other users but the other users cannot save this document when this document is owned solely by one user.
Example
See also
IServerDocument interface
IServerDocument Properties
BeingClosed property
(IServerDocument interface)
Syntax
Property BeingClosed : LongBool Read GetBeingClosed Write SetBeingClosed;
Description
The BeingClosed property denotes that this design document is being closed before this design document can be successfully destroyed. This property is a read only property. You can check the status of the document before you attempt to modify or update the document before it is being closed.
This property is supported by the GetBeingClosed and SetBeingClosed methods.
Example
See also
IClient interface
IServerDocument interface
CanClose property
(IServerDocument interface)
Syntax
Property CanClose : LongBool Read GetCanClose;
Description
This CanClose property determines whether the document can be closed or not.
Example
See also
IClient interface
IServerDocument interface
Count property
(IServerDocument interface)
Syntax
Property Count : Integer Read GetCount;
Description
The Count property returns the number of views (of the same type) in the IServerDocument container. Use in conjunction with the View property.
This property is supported by the GetCount method.
Example
Var ServerModule : IServerModule; ServerDocument : IServerDocument; ServerDocumentView : IServerDocumentView; Begin ServerModule := Client.ServerModuleByName[ 'PCB' ]; If ServerModule = Nil Then Exit; For I := 0 to ServerModule.DocumentCount - 1 Do Begin ServerDocument := ServerModule.Documents[I]; ShowMessage( 'Document View Count ' + IntToStr(ServerDocument.Count) + # 13 + 'Kind ' + ServerDocument.Kind)); End; End; |
See also
IClient interface
IServerDocument interface
Filename property
(IServerDocument interface)
Syntax
Property FileName : Widestring Read GetFileName;
Description
The FileName property returns the filename for the server document (not the corresponding server panel). This property is a read-only property and is supported by the GetFileName method.
Note a server document can be a document view or a panel view, and thus if it is a panel view, the FileName property is invalid.
Example
ServerDocumentView := ServerDocument.View[j]; If Not(ServerDocumentView.IsPanel) Then ShowMessage( ' Document Name ' + ServerDocument.FileName); |
See also
IClient interface
IServerDocument interface
IsShown property
(IServerDocument interface)
Syntax
Property IsShown : LongBool Read GetIsShown Write SetIsShown;
Description
This property denotes whether or not this document is displayed in Altium Designer. This property is supported by the GetIsShown and SetIsShown methods.
Example
See also
IClient interface
IServerDocument interface
Kind property
(IServerDocument interface)
Syntax
Property Kind : Widestring Read GetKind;
Description
The Kind reports the type of the document opened in Altium Designer.
Examples include 'PCB', 'PCBLIB','SCH','SCHLIB' etc. This property is a read-only property. This property is supported by the GetKind method.
Example
ServerModule := Client.ServerModuleByName[ 'PCB' ]; If ServerModule = Nil Then Exit; For I := 0 to ServerModule.DocumentCount - 1 Do Begin ServerDocument := ServerModule.Documents[I]; ShowMessage( 'Document View Count ' + IntToStr(ServerDocument.Count) + # 13 + 'Kind ' + ServerDocument.Kind)); End; |
See also
IClient interface
IServerDocument interface
Modified property
(IServerDocument interface)
Syntax
Property Modified : LongBool Read GetModified Write SetModified;
Description
The Modified property denotes whether this document has been modified or not, and can be taken as a "dirty" flag, that is a document has been modified and it has been marked dirty.
This property is supported by the GetModified and SetModified methods.
Example
Var
AView : IServerDocumentView;
AServerDocument : IServerDocument;
Begin
If Client = Nil Then Exit;
// Grab the current document view using the Client's Interface.
AView := Client.GetCurrentView;
// Grab the server document which stores views by extracting the ownerdocument field.
AServerDocument := AView.OwnerDocument;
// Set the document dirty.
AServerDocument.Modified := True;
End;
See also
IClient interface
IServerDocument interface
ServerModule property
(IServerDocument interface)
Syntax
Property ServerModule : IServerModule Read GetServerModule;
Description
The ServerModule is a read-only property which returns the IServerModule interface that the document is associated with. The server module represents the server object installed and running in Altium Designer.
A server module manages its own documents and panels. This property is supported by the GetServerModule method.
Example
//IServerModule interface ServerModule := Client.ServerModuleByName[ 'PCB' ]; If ServerModule = Nil Then Exit; ShowMessage(IntToStr(ServerModule.DocumentCount)); For I := 0 to ServerModule.DocumentCount - 1 Do Begin //IServerDocument interface ServerDocument := ServerModule.Documents[I]; // do what you want with server documents End; |
See also
IClient interface
IServerDocument interface
IServerModule interface
SupportsOwnSave property
(IServerDocument interface)
Syntax
Property SupportsOwnSave : LongBool Read GetSupportsOwnSave;
Description
The SupportsOwnSave property returns a boolean value whether a save routine has been provided to save these documents associated with the server. Read only property.
Example
See also
IClient interface
IServerDocument interface
View property
(IServerDocument interface)
Syntax
Property View Integer : IServerDocumentView Read GetView;
Description
The View property is an indexed property and represents a document or panel view part of the IDocument container associated with a specific IServerModule interface. The IServerDocument.Count method returns the list of views (which could be document or panel windows) as part of the IServerDocument container.
This property is supported by the GetView method.
Example
For J := 0 to ServerDocument.Count - 1 Do Begin ServerDocumentView := ServerDocument.View[j]; ShowMessage( 'View Name ' + ServerDocumentView.ViewName); If Not(ServerDocumentView.IsPanel) Then ShowMessage( ' Document Name ' + ServerDocument.FileName); End; |
See also
IClient interface
IServerDocument interface