Class CMBase
CMBase
This class provides basic support for objects that appear in the table of contents (TOC).
- Selecting and unselecting
- Getting and Setting Settings
- Getting and Setting Properties (settings, children, and anything else required to recreate the map)
- Manages children and being contained by a parent object
- Listeners
Copyright (C) 2020, Humboldt State University, Jim Graham
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General
Public License as published by the Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see
.
Name |
Name |
CMTYPE_STRING |
|
|
Name that appears in the item and layer lists |
Open |
Open |
CMTYPE_BOOLEAN |
|
false |
true if the object is open in the editor tree |
PropertyURL |
PropertyURL |
CMTYPE_STRING |
|
|
optional URL to load prope |
Static Functions
Object Functions
Returns | Function | Throws |
Name |
Deallocate() |
|
|
AddChild(TheObject) |
|
|
RemoveChild(Index) |
|
|
InsertChild(Index) |
|
NumChildren |
GetNumChildren(TheClass) |
|
TheChild |
GetChild(Index, TheClass) |
|
ChildIndex |
GetChildIndex(TheChild) |
|
|
MoveChild(TheChild, Index) |
|
TheChild |
GetNumDescendants(Index, TheClass) |
|
|
GetDescendant(Index, CurrentRow) |
|
|
SendMessageToDescendants() |
|
UniqueNumber |
AddListener(TheFunction, TheMessage, TheListener) |
|
|
RemoveListener(TheMessage, UniqueNumber) |
|
|
SendMessageToListeners(TheMessage, AdditionalInfo) |
|
Settings |
GetAllSettings() |
|
|
SetAllSettings(NewSettings) |
|
Value |
GetSettingGroup(Group, Default) |
|
|
GetSetting(Param1, Param2, Param3) |
|
|
SetSetting(Param1, Param2, Param3) |
|
|
UnselectAll() |
|
Static Functions
UniqueNumber=GetUniqueNumber()
Gets an integer that is unique for this instance of CanvasMap. This is
used to ensure that all messages have a unique value.
Has to appear here because it is called below
Returns: UniqueNumber - unique integer
Selected=SetSelected()
Sets this object to be the one the user has selected
Returns: Selected - flag
Object Functions
Name=Deallocate()
Gets the current name of the object
Returns: Name - the name of this object
AddChild(TheObject)
Adds an entry to the child array
Parameters:
TheObject - Object to add as a child to this object.
RemoveChild(Index)
Removes an entry from the child array
Parameters:
Index - Index of the child to remove starting at 0 or the child itself
InsertChild(Index)
Inserts a child object into the child array
Parameters:
Index - Index of the child to insert or an existing child at the position of insertion
NumChildren=GetNumChildren(TheClass)
Gets the number of children the object contains.
Parameters:
TheClass - optional class to filter the children
Returns: NumChildren - the number of children contained in this object.
TheChild=GetChild(Index, TheClass)
Gets a child from the object
Parameters:
Index - zero-based index to the desired child. If not provided, the first entry is returned.
TheClass - optional class to filter the children
Returns: TheChild - the child object contained within this object.
ChildIndex=GetChildIndex(TheChild)
Return the index for the specified child object. If the
child does not appear in the CMScene, return -1
Parameters:
TheChild -
Returns: ChildIndex - null
MoveChild(TheChild, Index)
Moves a child to a new location in the list (used to move layers).
This does not need to be overriden because RemoveChild() and InsertChild() are used.
Parameters:
TheChild - either the child to remove or an index to the child
Index - Index of the child to remove starting at 0
TheChild=GetNumDescendants(Index, TheClass)
Gets the total number of descendants that are in this object. This includes
direct children, their children, and so on.
Parameters:
Index - zero-based index to the desired child
TheClass - optional class to filter the children
Returns: TheChild - the child object contained within this object.
GetDescendant(Index, CurrentRow)
Returns a descendent of this object.
Parameters:
Index - 0 this object's first child, 2 for this objects first grandchild or second child, etc.
CurrentRow - optional parameter for the row we are current looking for a descendent on.
SendMessageToDescendants()
General function to send a message to all the descendents of an object.
Used to send event messages to children.
UniqueNumber=AddListener(TheFunction, TheMessage, TheListener)
Add a listener to listen for messages from this object. Messages are
delivered with the function call:
TheFunction(TheSender,TheListener,AdditionalInfo)
TheFunction will receive the messages when sent by TheSender. TheListener
is the object that added itself as the listener so the function can access
its properties. AdditionaInfo is provided by the sender based on the type of message.
Parameters:
TheFunction - The function that will listen to messages
TheMessage - The message number the object wants to listen to
TheListener - The object that will receive messages from this object.
Returns: UniqueNumber - returns a unique number for the function that has been added so it can be removed easily.
RemoveListener(TheMessage, UniqueNumber)
Removes a listener from the list of listeners
Parameters:
TheMessage - The message that the listener was listening for
UniqueNumber - the unique number that was generated when the listener was added.
SendMessageToListeners(TheMessage, AdditionalInfo)
Removes a listener from the list of listeners
Parameters:
TheMessage - The message to send
AdditionalInfo - additional information based on the message type
Settings=GetAllSettings()
Get a set of settings.
Returns: Settings - current settings object (may be undefined)
SetAllSettings(NewSettings)
Sets all the settings for this object.
Parameters:
NewSettings - The settings to replace the existing settings.
Value=GetSettingGroup(Group, Default)
Get a group of settings. Does not check for errors and the returned result could be undefined.
Parameters:
Group - Group for the setting
Default - default value to use in none has been specified as of yet (optional)
Returns: Value - currnet group entry or undefined.
GetSetting(Param1, Param2, Param3)
Sets a set of settings for this object. The TimeSlice must already exist within the object.
Parameters:
Param1 - Either the setting name or the group name
Param2 - Setting name, default, or undefined
Param3 - default, or undefined
SetSetting(Param1, Param2, Param3)
Sets a set of settings for this object. ct.
Parameters:
Param1 - Group or setting
Param2 - Setting or value
Param3 - Value
UnselectAll()
Unselect all objects