File: developer_documentation.txt

package info (click to toggle)
glom 1.30.4-7
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 41,260 kB
  • sloc: ansic: 160,257; cpp: 72,338; javascript: 9,331; sh: 4,971; xml: 476; makefile: 315; perl: 236
file content (46 lines) | stat: -rw-r--r-- 1,676 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Developer Documentation:

*** The Document:
- Stores:
  - Database connection information - server name, database name, user name.
  - Stores relationships between tables.
  - Lookup definitions - e.g. copy the current price of this product into this field.
  - Form layouts.
  - Remembered Finds
  - Which tables are secondary (hidden) - e.g. invoice lines.
- Reuse:
  - Is in XML format, with a DTD, so it could be used to build other interfaces.
    e.g. an HTML/JSP web interface. See *** Web UI.
  
*** Basic application framework:
- App_Glom inherits from Bakery::App_WithDoc, overriding appropriately.
- Document_Glom inherits from Document_XML,
  which inherits from Bakery::Document, overriding appropriately.
- See comments in Bakery::App header.


*** Database terminology:
- I use Table, Record, Field


*** Constraints:

- Data Details:
  - Related records:
    - If the to field is a primary key, then there can be only one related record, because only one value can be in the from field.
      (If that field has a value then Add should be disabled).

  
Crazy notions that just might work:

*** Web UI:
- The XML document stores enough information to generate a full-featured web interface.
- e.g. JSP pages that put these things on the page by using Java classes/methods.:
  - List, optionally filtered by a Find.
  - Details, arranged using same layout logic as app.
  - Find forms, like Details.
- The Java-generated HTML could use style names to allow customisation without change to the Java code.
- By changing the top-level JSP pages and by defining styles a great deal of customisation would be possible, without making the system unmaintainable.