mirror of https://gitee.com/cf-fz/WebCAD.git
parent
9b8eee239a
commit
2427b6eb0b
@ -0,0 +1,18 @@
|
||||
import { app } from "../ApplicationServices/Application";
|
||||
import { GroupRecord } from "../DatabaseServices/GroupTableRecord";
|
||||
import { PromptStatus } from "../Editor/PromptResult";
|
||||
|
||||
export class Command_Group
|
||||
{
|
||||
async exec()
|
||||
{
|
||||
let ssRes = await app.Editor.GetSelection({ UseSelect: true });
|
||||
|
||||
if (ssRes.Status !== PromptStatus.OK)
|
||||
return;
|
||||
let g = new GroupRecord();
|
||||
app.Database.GroupTable.Append(g);
|
||||
for (let e of ssRes.SelectSet.SelectEntityList)
|
||||
g.Entitys.push(e.Id);
|
||||
}
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
import { Factory } from "./CADFactory";
|
||||
import { GroupRecord } from "./GroupTableRecord";
|
||||
import { ObjectCollection } from "./ObjectCollection";
|
||||
import { CADFiler } from "./CADFiler";
|
||||
|
||||
@Factory
|
||||
export class GroupTable extends ObjectCollection<GroupRecord>
|
||||
{
|
||||
//对象从文件中读取数据,初始化自身
|
||||
ReadFile(file: CADFiler)
|
||||
{
|
||||
let ver = file.Read();
|
||||
super.ReadFile(file);
|
||||
}
|
||||
//对象将自身数据写入到文件.
|
||||
WriteFile(file: CADFiler)
|
||||
{
|
||||
file.Write(1);
|
||||
super.WriteFile(file);
|
||||
}
|
||||
//#endregion
|
||||
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
import { Factory } from "./CADFactory";
|
||||
import { SymbolTableRecord } from "./SymbolTableRecord";
|
||||
import { AutoRecord, ISPROXYKEY } from "./AutoRecord";
|
||||
import { ObjectId } from "./ObjectId";
|
||||
import { Entity } from "./Entity/Entity";
|
||||
import { CADFiler } from "./CADFiler";
|
||||
|
||||
@Factory
|
||||
export class GroupRecord extends SymbolTableRecord
|
||||
{
|
||||
@AutoRecord Entitys: ObjectId[];
|
||||
|
||||
constructor()
|
||||
{
|
||||
super();
|
||||
|
||||
this.Entitys = new Proxy([], {
|
||||
set: (target, key, value, receiver) =>
|
||||
{
|
||||
if (Reflect.get(target, key, receiver) !== value)
|
||||
{
|
||||
if (this.WriteAllObjectRecord())
|
||||
{
|
||||
if (value instanceof ObjectId && value.Object instanceof Entity)
|
||||
{
|
||||
if (!this.Id)
|
||||
console.warn("请先添加到Database后在进行操作!");
|
||||
else
|
||||
value.Object.GourpId = this.Id;
|
||||
}
|
||||
}
|
||||
}
|
||||
return Reflect.set(target, key, value, receiver);
|
||||
},
|
||||
get: (target, key, receiver) =>
|
||||
{
|
||||
if (key === ISPROXYKEY)
|
||||
return true;
|
||||
return Reflect.get(target, key, receiver);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//对象从文件中读取数据,初始化自身
|
||||
ReadFile(file: CADFiler)
|
||||
{
|
||||
let ver = file.Read();
|
||||
super.ReadFile(file);
|
||||
let count = file.Read() as number;
|
||||
|
||||
this.Entitys.length = 0;
|
||||
for (let i = 0; i < count; i++)
|
||||
{
|
||||
this.Entitys.push(file.ReadObjectId());
|
||||
}
|
||||
}
|
||||
//对象将自身数据写入到文件.
|
||||
WriteFile(file: CADFiler)
|
||||
{
|
||||
file.Write(1);
|
||||
super.WriteFile(file);
|
||||
file.Write(this.Entitys.length);
|
||||
for (let id of this.Entitys)
|
||||
file.WriteObjectId(id);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in new issue