|
@@ -1,5 +1,13 @@
|
|
|
+// iGeom JS
|
|
|
+// LInE: "free software and private data"
|
|
|
+
|
|
|
export class DrawerAggregator {
|
|
|
- constructor(drawer, geometricObject, konvaObject, elementClass) {
|
|
|
+
|
|
|
+ static static_id = 1; // help in debug
|
|
|
+
|
|
|
+ constructor (drawer, geometricObject, konvaObject, elementClass) {
|
|
|
+ this.id = DrawerAggregator.static_id++; // DrawerAggregator identification number
|
|
|
+ console.log("drawer-aggregator.js!update(e): this.id=" + this.id); //D
|
|
|
this.drawer = drawer;
|
|
|
this.genericObject = geometricObject;
|
|
|
this.konvaObject = konvaObject;
|
|
@@ -7,45 +15,47 @@ export class DrawerAggregator {
|
|
|
this.visible = true;
|
|
|
if (elementClass != undefined) this.elementClass = elementClass;
|
|
|
else {
|
|
|
- if (
|
|
|
- konvaObject.attrs != undefined &&
|
|
|
- konvaObject.attrs.class != undefined
|
|
|
- )
|
|
|
+ if (konvaObject.attrs != undefined && konvaObject.attrs.class != undefined)
|
|
|
this.elementClass = konvaObject.attrs.class;
|
|
|
- }
|
|
|
- }
|
|
|
- setGeometricObject(genericObject) {
|
|
|
+ }
|
|
|
+ }
|
|
|
+ setGeometricObject (genericObject) {
|
|
|
this.genericObject = genericObject;
|
|
|
- }
|
|
|
- setDrawer(drawer) {
|
|
|
+ }
|
|
|
+ setDrawer (drawer) {
|
|
|
this.drawer = drawer;
|
|
|
- }
|
|
|
- setKonvaObject(konvaObject) {
|
|
|
+ }
|
|
|
+ setKonvaObject (konvaObject) {
|
|
|
this.konvaObject = konvaObject;
|
|
|
- }
|
|
|
- setElementClass(elementClass) {
|
|
|
+ }
|
|
|
+ setElementClass (elementClass) {
|
|
|
this.elementClass = elementClass;
|
|
|
- }
|
|
|
- addAggregator(aggregator) {
|
|
|
+ }
|
|
|
+ addAggregator (aggregator) {
|
|
|
if (!this.aggregators.includes(aggregator)) {
|
|
|
this.aggregators.push(aggregator);
|
|
|
this.genericObject.dependentsOnThis.push(aggregator.genericObject);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- update(e) {
|
|
|
+
|
|
|
+ update (e) {
|
|
|
+ var tam = this.aggregators?this.aggregators.length:0; //D xxx
|
|
|
+ var aux = JSON.stringify(this.geometricObject) + ", #this.aggregators=" + tam + " : "; //D xxx
|
|
|
+ for (var ii=0; ii<tam; ii++) aux += this.aggregators[ii].id + ","; //D xxx
|
|
|
+ console.log("drawer-aggregator.js!update(e): this.id=" + this.id + ": this.geometricObject=" + aux); //D xxx
|
|
|
this.drawer.update(this, e);
|
|
|
this.updateAggregators(this.aggregators, e);
|
|
|
- }
|
|
|
- updateAggregators(aggregators, e) {
|
|
|
+ }
|
|
|
+
|
|
|
+ updateAggregators (aggregators, e) {
|
|
|
+ console.log("drawer-aggregator.js!updateAggregators(aggregators,e)"); //D
|
|
|
aggregators.forEach(aggregator => {
|
|
|
aggregator.drawer.update(aggregator, e);
|
|
|
- if (
|
|
|
- aggregator.aggregators == undefined ||
|
|
|
- aggregator.aggregators.length == 0
|
|
|
- ) {
|
|
|
+ if (aggregator.aggregators == undefined || aggregator.aggregators.length == 0) {
|
|
|
return;
|
|
|
- }
|
|
|
+ }
|
|
|
this.updateAggregators(aggregator.aggregators, e);
|
|
|
- });
|
|
|
- }
|
|
|
-}
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|