[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/gnue-common/doc TriggerSpecifications.txt
From: |
Jason Cater |
Subject: |
gnue/gnue-common/doc TriggerSpecifications.txt |
Date: |
Mon, 10 Sep 2001 16:33:08 -0400 |
CVSROOT: /home/cvs
Module name: gnue
Changes by: Jason Cater <address@hidden> 01/09/10 16:33:08
Modified files:
gnue-common/doc: TriggerSpecifications.txt
Log message:
Restructured spec file
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-common/doc/TriggerSpecifications.txt.diff?cvsroot=OldCVS&tr1=1.3&tr2=1.4&r1=text&r2=text
Patches:
Index: gnue/gnue-common/doc/TriggerSpecifications.txt
diff -u gnue/gnue-common/doc/TriggerSpecifications.txt:1.3
gnue/gnue-common/doc/TriggerSpecifications.txt:1.4
--- gnue/gnue-common/doc/TriggerSpecifications.txt:1.3 Sun Sep 9 19:22:29 2001
+++ gnue/gnue-common/doc/TriggerSpecifications.txt Mon Sep 10 16:33:08 2001
@@ -1,40 +1,3 @@
-
-* All event triggers should return a value.
-
-* Modify state of widgets:
- widget.properties.
-
-* Direct datasource/result set access:
-
-* Datasource/Block access
- firstRec, nextRec, prevRec, lastRec, etc
-
-* block/field access:
- :block.field
-
-* convenience functions:
- :block.sum(fieldname)
- .count(fieldname)
- .min/.max/.avg/
-
-
-for i :=0 to datasource.field.count do
- mytotal = datasource.field[i]
-
-if len(:currentBlock.zipcode):
- datasource1.clear()
- :datasource1.zipcode = :currentBlock.zipcode
- datasource1.query()
- currentBlock.FieldByName('city').
- :currentBlock.city = :datasource1.city
- :currentBlock.state = :datasource1.state
- for obj in currentblock
- obj.ReadOnly = true
- X = 10
- end
-
-
-
Options for Basic Namespace Representation
------------------------------------------
@@ -66,12 +29,12 @@
Disadvantages:
+ Since there will still be namespace conflicts, all of the
previous disadvantages still apply.
- + Code will be harder to read
+ + Code will be harder to read because of long object references.
- * reference("block.field")
+ * Function-based lookups: find("block.field")
Advantages:
- + Will work in any language supporting functions (all?)
+ + Will work in any language supporting functions (all modern?)
+ Easier to implement as only a few methods need to be added to an
embedded language's namespace.
@@ -91,21 +54,26 @@
Disadvantages:
+ Depending on complexity, we may be creating a language on top of a
language
- +
+ + The "object" referencing method (:block.field) might not be
+ consistant with the language's method (e.g, perl's: block->field)
+ The complexity of writing a pre-parser has yet to be determined
Notes:
sum(:main.token)
setProperty(:main.token, 'Property','value')
-*** Possible layout ***
+
+
+Possible implementation layouts
+-------------------------------
triggerManager
trigger storage
execute triggers
loads engines
- intended to be extended by each system using it (GFTriggerManager,
GRTriggerManager)
+ intended to be extended by each system using it
+ (GFTriggerManager, GRTriggerManager)
triggerEngine
@@ -123,5 +91,46 @@
triggerExtension
adds ability to run triggers to objects that inherit it
+
+
+
+Scratchpad
+----------
+
+* All event triggers should return a value.
+
+* Modify state of widgets:
+ widget.properties.
+
+* Direct datasource/result set access:
+
+* Datasource/Block access
+ firstRec, nextRec, prevRec, lastRec, etc
+
+* block/field access:
+ :block.field
+
+* convenience functions:
+ :block.sum(fieldname)
+ .count(fieldname)
+ .min/.max/.avg/
+
+
+for i :=0 to datasource.field.count do
+ mytotal = datasource.field[i]
+
+if len(:currentBlock.zipcode):
+ datasource1.clear()
+ :datasource1.zipcode = :currentBlock.zipcode
+ datasource1.query()
+ currentBlock.FieldByName('city').
+ :currentBlock.city = :datasource1.city
+ :currentBlock.state = :datasource1.state
+ for obj in currentblock
+ obj.ReadOnly = true
+ X = 10
+ end
+
+