GAP (Francy) - Chapter 5: Francy Core

Goto Chapter: Top 1 2 3 4 5 6 7 8 9 Ind
[Top of Book] [Contents] [Previous Chapter] [Next Chapter]

[MathJax off]

5 Francy Core
5.1 Categories
5.1-1 IsFrancyObject
5.1-2 IsFrancyDefaultObject
5.1-3 IsFrancyTypeObject
5.2 Families
5.3 Global
5.4 Attributes
5.4-1 FrancyId
5.4-2 FrancyId
5.4-3 SetFrancyId

### 5 Francy Core

Francy is responsible for generating JSON metadata which allows external tools / libraries / frameworks to add a visual representation. This JSON representation defines the contract between this package (server) and a GUI framework (client), this enables complete SoC (Separation of Concerns). Francy can be used to provide a graphical interactive environment on existing GAP packages.

A JSON schema is present and can be used to produce clients for this package. See schema/francy.json

To map required / optional attributes from the schema into GAP code, the implementation follows the following criteria:

- Object creation requests mandatory attributes, i.e. required with no default value, e.g. canvas:=Canvas("Title")

- Object creation accepts an object of defaults, i.e. default values for mandatory fields but that might repeat througout the creation of multiple similar objects, e.g. defaults:=DefaultCanvas; defaults!.zoomToFit:=false; canvas:=Canvas("Title",defaults); Where DefaultCanvas contains defaults for width (800) and height (600)

- Attributes associated with the object that can be set, .i.e. optional with no defaults, e.g. canvas:=Canvas("Title"); SetTexTypesetting(canvas,true);

The API follows a common convention and adding objects to other objects is done using Add(objectHolder,object)

Although Francy has the concept of a `Graph`, it does not implement any Mathematics Graphs Theory.

Please see Francy-JS for client implementation.

#### 5.1 Categories

In this section we show all Francy Core Categories.

##### 5.1-1 IsFrancyObject

`‣ IsFrancyObject`( arg ) | ( filter )

Returns: `true` or `false`

Identifies all `Objects` in Francy.

##### 5.1-2 IsFrancyDefaultObject

`‣ IsFrancyDefaultObject`( arg ) | ( filter )

Returns: `true` or `false`

Identifies all Default records in Francy.

##### 5.1-3 IsFrancyTypeObject

`‣ IsFrancyTypeObject`( arg ) | ( filter )

Returns: `true` or `false`

Identifies all Type records in Francy.

#### 5.2 Families

In this section we show all Francy Core Families.

#### 5.3 Global

In this section we show all Francy Core Types

#### 5.4 Attributes

In this section we show all Francy Core Attributes

##### 5.4-1 FrancyId

`‣ FrancyId`( arg ) | ( attribute )

Returns: `IsString` with the id of the object

All Objects created in Francy have a generated identifier.

##### 5.4-2 FrancyId

`‣ FrancyId`( arg1 ) | ( operation )

Returns: `IsString` with the id of the object

Prints the object unique identifier.

##### 5.4-3 SetFrancyId

`‣ SetFrancyId`( o, s ) | ( operation )

Use with care! Changing the unique ID might be useful in certain cases, but bare in mind it might cause unexpected behavior if you're not sure about!

[Top of Book] [Contents] [Previous Chapter] [Next Chapter]
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 Ind

generated by GAPDoc2HTML