CN113378008B - 一种支持树形模型的操作回撤方法 - Google Patents
一种支持树形模型的操作回撤方法 Download PDFInfo
- Publication number
- CN113378008B CN113378008B CN202110474662.2A CN202110474662A CN113378008B CN 113378008 B CN113378008 B CN 113378008B CN 202110474662 A CN202110474662 A CN 202110474662A CN 113378008 B CN113378008 B CN 113378008B
- Authority
- CN
- China
- Prior art keywords
- node
- sequence
- editing
- tree model
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 230000008859 change Effects 0.000 claims description 12
- 230000004048 modification Effects 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 4
- 230000008520 organization Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 5
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于软件设计的技术领域,公开了一种支持树形模型的操作回撤方法,根据树形模型的拓扑结构,建立操作序列表List=[P1,P2,…,Pi,…,Pn],其中Pi表示第i个编辑操作及操作内容,所述操作内容包括第i个编辑操作所作用的节点对象在树形模型中的拓扑位置,并保存当前编辑操作Pn对应的树形模型;根据回撤要求,从所述操作序列表中找到对应的编辑操作Pi,按照倒序方式,将对应的操作内容从当前编辑操作Pn逐步回复到编辑操作Pi对应的树形模型,从而完成回撤操作。本发明的树形组织结构的模型操作,所需的存储空间小,且不限制回撤操作次数,能显著提升模型编辑效率。
Description
技术领域
本发明属于软件设计的技术领域,具体涉及一种支持树形模型的操作回撤方 法。
背景技术
目前各类软件平台中,回撤重做已成为系统必备的标准化编辑操作之一,但 很多软件平台对回撤重做的支持程度仍有待提升,或仅支持固定次数回撤操作, 超过限定次数则无法实现;或每次对模型数据进行全局备份,效率较低。如面 向产品设计的各类三维CAD工具,或产品设计工具大多以树形结构形式来组织 内部模型数据,这些工具的回撤重做功能仅支持固定次数的回撤操作,如最多 能回撤100次,尚不能突破次数限制,不能支持无限次回撤。
发明内容
本发明提供了一种支持树形模型的操作回撤方法,解决了现有软件设计平台 仅支持固定次数回撤操作,超过限定次数则无法实现;或每次对模型数据进行 全局备份,效率较低等问题。
本发明可通过以下技术方案实现:
一种支持树形模型的操作回撤方法,根据树形模型的拓扑结构,建立操作序 列表List=[P1,P2,…,Pi,…,Pn],其中Pi表示第i个编辑操作及操作内容,所述 操作内容包括第i个编辑操作所作用的节点对象在树形模型中的拓扑位置,并保 存当前编辑操作Pn对应的树形模型;
根据回撤要求,从所述操作序列表中找到对应的编辑操作Pi,按照倒序方式, 将对应的操作内容从当前编辑操作Pn逐步回复到编辑操作Pi对应的树形模型, 从而完成回撤操作。
进一步,所述第i个编辑操作的数据结构包括当前操作序号、当前操作种类 以及指向当前操作所作用的节点对象及其对应的对象值和拓扑位置的指针,其 中,所述操作序列表中所涉及的所有节点对象均被保存下来,其对应的对象值 和拓扑位置按照操作顺序逐一保存下来,形成对应的节点历史记录表;
所述树形模型设置为通过编辑操作“添加”、“修改”和/或“删除”建立的 包含一个或者多个根节点、子节点的树形结构,所述拓扑位置设置为X.Y.Z,其 中,X表示节点对象所属层的层序,所述层序从根节点向下层的子节点逐层设置 为0、1、2…N,Z表示节点对象在其所属层中的个序,所述个序从左向右对应 设置1、2…M,Y表示节点对象从属于相邻上一层的子节点对象所对应的个序。
进一步,建立操作序列表的方法如下:
a)若当前操作种类为“添加”编辑操作,则在原来的树形结构中添加新的 节点对象,根据需要设置对应的对象值;同时,创建该操作的节点对象、对象 值、拓扑位置指针并将此时的对象值、拓扑位置顺序保存至对应的节点历史记 录表,创建将由此引起拓扑位置变化的节点对象的新拓扑位置指针并将此时的 新拓扑位置顺序保存至对应的节点历史记录表,然后按照操作顺序将该操作保 存至操作序列表中;
b)若当前操作种类为“修改”编辑操作,则将在原来的树形结构中相应节 点的对象值修改为新对象值;同时,创建该操作的对象值指针并将此时的新对 象值顺序保存至对应的节点历史记录表,然后按照操作顺序将该操作保存至操 作序列表中;
c)若当前操作种类为“删除”编辑操作,则将在原来的树形结构中相应节 点的节点对象和/或者对象值删除;同时创建该操作的对象值、拓扑位置指针并 此时的对象值、拓扑位置顺序保存至对应的节点历史记录表,此时的对象值、 拓扑位置均为空值,创建将由此引起拓扑位置变化的节点对象的新拓扑位置指 针将此时的新拓扑位置顺序保存至对应的节点历史记录表,然后按照操作顺序 将该操作保存至操作序列表中。
进一步,根据当前编辑操作Pn所涉及的指针,找到对应的节点历史记录表, 从中找到编辑操作Pn-1对应的拓扑位置和/或对象值,若所述拓扑位置或对象值 没有出现,则倒序向前找到对应的第一个出现的拓扑位置或对象值,更新当前 编辑操作Pn对应的树形模型为编辑操作Pn-1对应的树形模型,按照倒序方式, 直至更新当前编辑操作Pi+1对应的树形模型为编辑操作Pi对应的树形模型,完 成回撤操作。
进一步,若所述拓扑位置和对象值为空值,则在更新后的树形模型中删除对 应的节点对象。
本发明有益的技术效果如下:
本发明的树形组织结构的模型操作,所需的存储空间小,且不限制回撤操 作次数,能显著提升模型编辑效率。同时,只要系统存储空间允许,每个节点 内的对象值可一直存储,则上述撤销重做操作无操作次数限制,这将突破现有 工具平台的回撤操作次数限制,且回撤重做过程中并不执行繁重的逆操作过程, 仅需根据基于操作序列表进行模型结构回复即可,大大提高了回撤操作效率。
附图说明
图1为本发明的总体过程示意图;
图2为本发明的通用树形模型结构的示意图;
图3为本发明的树形模型结构的具体示例示意图;
图4为本发明的属性节点对象值列表的示意图;
图5为本发明的属性节点对象值列表的具体示例示意图;
图6为本发明的树形结构建立根节点的具体示例示意图;
图7为本发明的树形结构建立两层节点的具体示例示意图;
图8为本发明的图3中树形结构删除名称属性节点后的示意图;
图9为本发明的图3中树形结构进行变更编辑操作后的树拓扑结构示意图;
图10为本发明的节点历史记录表的结构示意图;
图11为本发明的模型结构的编辑历史演变示意图,其中(a)-(d)表示演变过 程;
图12为本发明的操作1作用后的操作序列表示意图;
图13为本发明的操作3作用后的操作序列表示意图;
图14为本发明的操作4作用后的操作序列表示意图;
图15为本发明的实施例中的计算机中各个磁盘的文件夹设置结构示意图;
图16为本发明的实施例中的office办公软件中的菜单栏/工具栏示意图。
具体实施方式
下面结合附图及较佳实施例详细说明本发明的具体实施方式。
参见附图1,本发明提供了一种支持树形模型的操作回撤方法,如采用树形 结构的机械模型设计,根据树形模型的拓扑结构,建立操作序列表List=[P1, P2,…,Pi,…,Pn],其中Pi表示第i个编辑操作及操作内容,所述操作内容包括第i个编辑操作所作用的节点对象在树形模型中的拓扑位置,并保存当前编辑操作Pn对应的树形模型;根据回撤要求,从所述操作序列表中找到对应的编辑操作 Pi,按照倒序方式,将对应的操作内容从当前编辑操作Pn逐步回复到编辑操作 Pi对应的树形模型,从而完成回撤操作。这样,只需存储根据操作顺序建立的 操作序列表及当前编辑操作Pn对应的树形模型,该操作序列表存储了每次操作 所作用节点的拓扑位置变化,无需保存针对每次编辑操作的树形结构模型,节 省存储空间,为后续无限次回撤操作提供物理基础,然后根据回撤要求,按照 倒序方式,逐步从当前编辑操作Pn回撤到编辑操作Pi对应的树形模型,无需执 行繁重的逆操作过程,仅需根据操作序列表进行模型结构更新即可,大大提高 了回撤操作效率,能显著提升模型编辑效率。
总所周知,可以将树形模型设置为通过编辑操作“添加”、“修改”和/或“删 除”建立的包含多个根节点、子节点的树形结构,该树形模型的一般结构如图2 所示,顶层模型的属性内容由其下属的子节点逐一描述,属性亦可展开,进一 步由树形结构表示,不同属性的属性名称不能重复。图3给出了一个由如图2 所示的树形结构描述的具体树状模型结构图,该模型的名称、质量等简单属性 仅包含单个数值,无需使用树状结构描述,可作为顶层模型的一个单独属性子 节点;而包含子属性的复杂属性,如形状属性,则需以该属性节点为根节点, 继续使用长、宽、高等子属性节点来描述。显然,形状属性节点及其子属性节 点是整体模型结构树的子树。
对于每个属性节点即节点对象,其可能的基本编辑操作类型只有三种:添加、 修改、删除,每个编辑操作所涉及的模型节点可能包含多个。因此对每个属性 节点而言,为记录其历史操作记录,需要定义属性节点列表,因此,对于每个 属性节点,其内部需维护其历史记录顺序列表,如图4所示。以图3中名称为 例,假定其初始名称为“板”,然后名称被修改为“托板”,最后修改为“底板”,则 其属性节点中存储的历史值依次记录后如图5所示。
显然,在模型刚刚创建时,其属性节点并不一定存在,例如,图3示例中, 在零件模型刚刚创建时,其名称、质量、形状或体积等属性均可为空,此时零 件模型的树形结构仅包含一个根节点,如图6所示,经若干编辑操作后,模型 结构逐步演变为图3所示树形结构。若先添加名称属性,则应添加相应的属性 节点,其添加操作完毕后,模型结构如图7所示。
此外,对模型执行删除操作时,可以删除特定属性,相应地,树形结构需 删除对应的属性节点,例如删除图2零件模型的名称属性时,需将名称属性节 点删除,对应的树形结构如图8所示。需注意的是,若此时执行回撤操作时, 树形结构应能从图8恢复至图2结构,也就是说,若按照从左至右的次序,名 称属性节点应重新成为顶层零件模型根节点的第一个子节点,这意味着模型树 上的每个节点不仅要记录属性值即节点的对象值,还需要记录每个节点在树形 结构上的拓扑位置。
上文所述三种编辑操作中,添加和删除操作会更改模型树的整体拓扑结构, 如在图5的基础上添加名称属性,则模型树的拓扑结构发生了变化,从图2中 结构删除名称属性节点也一样,零件模型根节点的子节点数由4变为图8所示 的3个。另外还有一种针对整体模型树的编辑操作,即调整模型树的拓扑结构 操作,例如,针对图2所示结构,调整质量属性节点的拓扑位置,从模型树根 节点的第二个子节点移动至最尾端,如图9所示。显然,但从每个属性值而言, 图9中每个节点的属性值没有变化,但属性节点的拓扑结构已改变,对于这种 编辑操作也应具备回撤功能。由于这种变更编辑操作可以看作是先删除再添加,因此仍然可以通过上文所述的三种基本的编辑操作实现。
显然,编辑操作所影响的不仅仅是单个的属性值,还有整体树形结构的拓 扑结构。每次操作不仅要记录属性值,同时需记录相应的拓扑位置信息。图2 所示的单一存储属性值的模型树结构没有记录节点的拓扑信息,不能满足支持 回撤重做操作的需要。
综上,本发明提出了存储模型结构的拓扑位置概念,对于每个属性,不仅 记录对象值的变化列表,同时记录不同编辑操作后属性节点在整体树上的拓扑 位置,因此对于每个属性节点而言,其内部结构如图10所示,其内部同时按编 辑操作排序存储拓扑位置的历史记录列表以及对象值的历史记录列表,统称为 节点历史记录表,且拓扑位置记录列表长度与对象值记录列表的长度可能会不 同。
根据图10所示结构,对于如图11所示变化,假定初始状态时仅包含零件模 型根节点,依次进行如下操作:(1)操作1:进行编辑操作,将名称属性加入模 型中;(2)操作2:将质量属性加到名称属性之前;(3)操作3:修改名称属性值; (4)操作4:删除质量属性。
针对上述操作,模型的树状结构图则由图11(a)至图11(e)所示,在图11(b) 中,名称属性节点被加入模型树形结构中;在图11(c)中,质量属性节点加入后, 名称节点属性值没有变化,但其所处的拓扑位置发生变化,由根节点的第一个 子节点变为第二个子节点。考虑到树形结构的特征,每个子节点的拓扑位置还 和相邻的上一层拓扑结构有关,我们将拓扑位置设置为X.Y.Z,其中,X表示节 点对象所属层的层序,约定根节点的拓扑层次为0,其子节点为1,后续每层子 节点的拓扑层次都在其父节点上加1,即该层序从根节点向下层的子节点逐层设 置为0、1、2…N,Z表示节点对象在其所属层中的个序,该个序从左向右对应 设置1、2…M,即对于位于同一拓扑层次的节点,按照从左至右的次序从1开始 进行排序,Y表示节点对象从属于相邻上一层的子节点对象所对应的个序。
对于图11(c)中的质量和名称节点,质量属性节点的拓扑值为1.1.1,说明其 位于拓扑第1层的第1个节点,且从属于上一层的第一个节点,而此时名称属 性节点的拓扑值从原来的1.1.1变为1.1.2,表示名称属性节点已成为第1层的第 2个节点,可以看出,添加操作只影响位于被插入节点后的同层节点。操作4将 质量属性删除,因此此时根节点零件模型仅有名称属性子节点,因此名称属性 节点的拓扑值重新变为1.1.1。
相应地,针对图11所示的模型编辑操作,首先,定义操作序列表List=[P1, P2,…,Pi,…,Pn],其中第i个编辑操作的数据结构包括当前操作序号、当前操作 种类以及指向当前操作所作用的节点对象及其对应的对象值和拓扑位置的指 针,其中,所述操作序列表中所涉及的所有节点对象均被保存下来,其对应的 对象值和拓扑位置按照操作顺序逐一保存下来,形成对应的节点历史记录表; 即列表中的先后次序代表了操作的先后顺序,列表中每个操作内部的基本编辑 操作均指向被操作属性对应的节点历史记录表中拓扑位置列表及对象值列表的 特定项,因此,操作1的记录内容如图12所示,其指针指向的内容是该操作后 的最新对象值,即操作1包含1个添加操作,添加的对象为名称属性,指向的 拓扑列表项1.1.1,表示名称属性节点位于模型树的第1层,为该层的第1个子 节点,并且从属于上一层第一个节点即根节点,如图11(b)所示。
相应地,图11中经操作2、操作3后对应的操作历史列表如图13所示,即 在操作历史列表中,在操作1之后添加操作2,操作2添加质量属性,需要注意 的是,由于操作2的存在,虽然操作2没有直接修改名称属性,但却造成了名 称属性的拓扑位置从原来的1.1.1变为1.1.2,因此规定操作2同时要包含指向名 称拓扑列表值的指针。操作3在操作2之后依次排列,由于操作3仅仅修改了 名称的属性值,并没有导致名称节点的拓扑位置变化,因此操作3仅需保存指 向名称最新属性值的指针即可。
对于操作4,其操作后结果的操作序列表如图14所示,需注意的是,操作4 执行删除质量属性操作,此时,删除操作指向质量属性所包含的拓扑列表和对 象值列表中被删除的项为空值,表明质量属性已不存在。
综上,对于支持树形结构操作进行回撤时,根据当前编辑操作Pn所涉及的指 针,找到对应的节点历史记录表,从中找到编辑操作Pn-1对应的拓扑位置和/或 对象值,若所述拓扑位置或对象值没有出现,则倒序向前找到对应的第一个出 现的拓扑位置或对象值,更新当前编辑操作Pn对应的树形模型为编辑操作Pn-1对应的树形模型,按照倒序方式,直至更新当前编辑操作Pi+1对应的树形模型 为编辑操作Pi对应的树形模型,完成回撤操作。值得注意的是,若上述拓扑位 置和对象值为空值,则在更新后的树形模型中删除对应的节点对象。具体如下:
1.针对树状结构组织的模型,为树的拓扑结构定义拓扑层次,并对同层的节点 按序编排拓扑序号,为每个节点的拓扑位置定义做准备;
2.为模型的每个属性定义存储编辑操作历史内容的节点结构,主要包括属性名称、拓扑列表、对象值列表,分别用于按序存储不同基本编辑操作后的属性 节点拓扑位置及对象值,如图10所示;
3.定义存储操作的数据结构,包含操作名,按序执行的基本操作列表,每个基 本操作包含操作类型,操作属性,并附有指向属性节点内部拓扑位置及对象 值的指针,如图12所示;
4.在执行系统编辑操作时,根据模型的树状结构信息,生成如图14所示的操 作序列表,记录所有操作历史,具体如下:
a)若当前操作种类为“添加”编辑操作,则在原来的树形结构中添加新的 节点对象,根据需要设置对应的对象值;同时,创建该操作的节点对象、对象 值、拓扑位置指针并将此时的对象值、拓扑位置顺序保存至对应的节点历史记 录表,创建将由此引起拓扑位置变化的节点对象的新拓扑位置指针并将此时的 新拓扑位置顺序保存至对应的节点历史记录表,然后按照操作顺序将该操作保 存至操作序列表中;
b)若当前操作种类为“修改”编辑操作,则将在原来的树形结构中相应节 点的对象值修改为新对象值;同时,创建该操作的对象值指针并将此时的新对 象值顺序保存至对应的节点历史记录表,然后按照操作顺序将该操作保存至操 作序列表中;
c)若当前操作种类为“删除”编辑操作,则将在原来的树形结构中相应节 点的节点对象和/或者对象值删除;同时创建该操作的对象值、拓扑位置指针并 此时的对象值、拓扑位置顺序保存至对应的节点历史记录表,此时的对象值、 拓扑位置均为空值,创建将由此引起拓扑位置变化的节点对象的新拓扑位置指 针将此时的新拓扑位置顺序保存至对应的节点历史记录表,然后按照操作顺序 将该操作保存至操作序列表中。
特别地,针对添加和删除操作:
该添加操作所添加的节点Ni所处同层拓扑层次的节点为N1,…,Nm,且位于 节点Ni之后的节点Ni+1,…,Nm,则为节点Ni+1,…,Nm属性的拓扑列表添加新的 拓扑值,随后对节点Ni+1,…,Nm的所有子节点同样要执行该操作。删除操作与 之类似。
5.执行回撤操作时,针对当前的模型树结构,若执行的是回撤当前操作,则直 接在操作序列表中找到当前操作的前一个操作,并以前一操作中基本操作序 列所指向的属性节点内部拓扑列表及值列表的指针为基准,倒序更新树形模 型结构。以图13为例,此时的树形模型结构如图11(d)所示,若回撤当前操 作3,其树形模型应回到图11(c)所示的结构,此时,以操作3所指向的属性 节点列表值的前一项为基准,更新树形模型结构。操作3中最后一个基本操 作为“修改:名称”,其指向的名称值列表中的“底板”,显然,对象值列表中,底板的前一项为“板”,因此将名称属性的对象值设为“板”,而操作3 没有包含指向名称属性拓扑位置列表的指针,因此其拓扑位置不变,仍然处 于根节点的第二个子节点位置,具体如下:
以图11中操作4回撤为例,系统模型将从图11e所示结构转为图11d结构, 此时的操作序列表如图13所示,操作4共包含3个指针,分别是:
指针1:名称属性拓扑位置列表中最后一个值“1.1.1”;
指针2:质量属性拓扑位置列表中最后一个空值;
指针3:质量属性对象值列表中最后一个空值。
回撤操作4时,遍历上述指针,获取相应列表中指针所指向值的前续值,并 以该前续值更新树形模型,具体如下:
针对指针1:其指向名称属性拓扑位置列表中最后一个值“1.1.1”,而前续值 为“1.1.2”,即此时名称节点应位于拓扑值1.2的位置,即根节点零件模型的第 2个子节点位置;
针对指针2:其指向质量属性拓扑位置列表中最后一个空值,其前续值为“1.1.1”,因此应加入质量属性,且该属性节点位于拓扑值1.1.1的位置,即根 节点零件模型的第1个子节点位置;
针对指针3:其指向质量属性值列表中最后一个空值,其前续值为“1kg”, 将质量属性设为1kg。
特别地,当指针指向列表的第1项时,其前续值为空值,则在回撤该操作时, 直接删除对应的属性即可。如回撤图13所示的操作2时,其包含指向质量拓扑 位置列表和对象值列表的指针,但分别指向的都是列表的第1个值,已没有前 续值,因此回撤操作2时,应直接删除质量属性,但将名称属性的拓扑值从1.1.2 重新设为1.1.1。
当然,树形结构组织除了本发明中所提到的用于机械模型设计中的树形模 型,还可以是计算机中各个磁盘的文件夹设置结构,如图15所示,或者office 办公软件中的菜单栏/工具栏如图16所示等等,它们的整体结构都是树形结构, 只需将图15中的各级文件夹或者图16菜单栏中的各个操作项目看作节点,对 其进行操作所产生的结果作为对象值,就可以利用本发明的回撤方法进行历史 操作回撤。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解, 这些仅是举例说明,在不背离本发明的原理和实质的前提下,可以对这些实施 方式做出多种变更或修改,因此,本发明的保护范围由所附权利要求书限定。
Claims (3)
1.一种支持树形模型的操作回撤方法,其特征在于:根据树形模型的拓扑结构,建立操作序列表List = [P 1, P 2,…, P i , …, P n ],其中P i 表示第i个编辑操作及操作内容,所述操作内容包括第i个编辑操作所作用的节点对象在树形模型中的拓扑位置,并保存当前编辑操作P n 对应的树形模型;
根据回撤要求,从所述操作序列表中找到对应的编辑操作P i ,按照倒序方式,将对应的操作内容从当前编辑操作P n 逐步回复到编辑操作P i 对应的树形模型,从而完成回撤操作;
所述第i个编辑操作的数据结构包括当前操作序号、当前操作种类以及指向当前操作所作用的节点对象及其对应的对象值和拓扑位置的指针,其中,所述操作序列表中所涉及的所有节点对象均被保存下来,对应的对象值和拓扑位置按照操作顺序逐一保存下来,形成对应的节点历史记录表;
所述树形模型设置为通过编辑操作“添加”、“修改”和/或“删除”建立的包含一个或者多个根节点、子节点的树形结构,所述拓扑位置设置为X.Y.Z,其中,X表示节点对象所属层的层序,所述层序从根节点向下层的子节点逐层设置为0、1、2…N,Z表示节点对象在其所属层中的个序,所述个序从左向右对应设置1、2…M,Y表示节点对象从属于相邻上一层的子节点对象所对应的个序;
根据当前编辑操作P n 所涉及的指针,找到对应的节点历史记录表,从中找到编辑操作P n-1 对应的拓扑位置和/或对象值,若所述拓扑位置或对象值没有出现,则倒序向前找到对应的第一个出现的拓扑位置或对象值,更新当前编辑操作P n 对应的树形模型为编辑操作P n-1 对应的树形模型,按照倒序方式,直至更新当前编辑操作P i+1 对应的树形模型为编辑操作P i 对应的树形模型,完成回撤操作。
2.根据权利要求1所述的支持树形模型的操作回撤方法,其特征在于建立操作序列表的方法如下:
a)若当前操作种类为“添加”编辑操作,则在原来的树形结构中添加新的节点对象,根据需要设置对应的对象值;同时,创建该操作的节点对象、对象值、拓扑位置指针,并将此时的对象值、拓扑位置顺序保存至对应的节点历史记录表,创建将由此引起拓扑位置变化的节点对象的新拓扑位置指针,并将此时的新拓扑位置顺序保存至对应的节点历史记录表,然后按照操作顺序将该操作保存至操作序列表中;
b)若当前操作种类为“修改”编辑操作,则将在原来的树形结构中相应节点的对象值修改为新对象值;同时,创建该操作的对象值指针并将此时的新对象值顺序保存至对应的节点历史记录表,然后按照操作顺序将该操作保存至操作序列表中;
c)若当前操作种类为“删除”编辑操作,则将在原来的树形结构中相应节点的节点对象和/或者对象值删除;同时创建该操作的对象值、拓扑位置指针,并此时的对象值、拓扑位置顺序保存至对应的节点历史记录表,此时的对象值、拓扑位置均为空值,创建将由此引起拓扑位置变化的节点对象的新拓扑位置指针将此时的新拓扑位置顺序保存至对应的节点历史记录表,然后按照操作顺序将该操作保存至操作序列表中。
3.根据权利要求1所述的支持树形模型的操作回撤方法,其特征在于:若所述拓扑位置和对象值为空值,则从更新后的树形模型中删除对应的节点对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110474662.2A CN113378008B (zh) | 2021-04-29 | 2021-04-29 | 一种支持树形模型的操作回撤方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110474662.2A CN113378008B (zh) | 2021-04-29 | 2021-04-29 | 一种支持树形模型的操作回撤方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113378008A CN113378008A (zh) | 2021-09-10 |
CN113378008B true CN113378008B (zh) | 2022-10-11 |
Family
ID=77570326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110474662.2A Active CN113378008B (zh) | 2021-04-29 | 2021-04-29 | 一种支持树形模型的操作回撤方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113378008B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878010B (zh) * | 2023-03-01 | 2023-06-23 | 南方科技大学 | 一种操作交互方法、装置、电子设备和计算可读存储介质 |
CN117311576B (zh) * | 2023-09-28 | 2024-05-24 | 上海新迪数字技术有限公司 | 一种cad操作行为预测方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1776616A (zh) * | 2005-12-15 | 2006-05-24 | 北京航空航天大学 | 三维模型编辑器建模命令框架设计方法 |
CN101477555A (zh) * | 2009-01-09 | 2009-07-08 | 南京联创科技股份有限公司 | 基于sql数据库的任务树的快速检索及生成显示的方法 |
CN102867059A (zh) * | 2012-09-19 | 2013-01-09 | 浪潮(北京)电子信息产业有限公司 | 一种树形结构中数据的处理方法和系统 |
CN110532260A (zh) * | 2019-07-23 | 2019-12-03 | 北京三快在线科技有限公司 | 逻辑表达式的存储及读取方法、装置、电子设备及介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030149762A1 (en) * | 2001-10-05 | 2003-08-07 | Knight Gregory John | Storage area network methods and apparatus with history maintenance and removal |
US7430593B2 (en) * | 2001-10-05 | 2008-09-30 | International Business Machines Corporation | Storage area network for topology rendering |
JP2009252097A (ja) * | 2008-04-09 | 2009-10-29 | Ntt Docomo Inc | 位置リスト提供サーバ、通信システム、位置リスト提供方法および位置リスト提供装置 |
CN105138502B (zh) * | 2015-08-14 | 2019-07-05 | 上海斐讯数据通信技术有限公司 | 一种识别复制对象并收藏数据的方法 |
-
2021
- 2021-04-29 CN CN202110474662.2A patent/CN113378008B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1776616A (zh) * | 2005-12-15 | 2006-05-24 | 北京航空航天大学 | 三维模型编辑器建模命令框架设计方法 |
CN101477555A (zh) * | 2009-01-09 | 2009-07-08 | 南京联创科技股份有限公司 | 基于sql数据库的任务树的快速检索及生成显示的方法 |
CN102867059A (zh) * | 2012-09-19 | 2013-01-09 | 浪潮(北京)电子信息产业有限公司 | 一种树形结构中数据的处理方法和系统 |
CN110532260A (zh) * | 2019-07-23 | 2019-12-03 | 北京三快在线科技有限公司 | 逻辑表达式的存储及读取方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113378008A (zh) | 2021-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113378008B (zh) | 一种支持树形模型的操作回撤方法 | |
JP4886693B2 (ja) | 情報処理方法、情報処理装置および情報処理プログラム | |
US7058621B1 (en) | Method for extracting information from a database | |
CN110727687B (zh) | 一种物料清单转换方法及其系统 | |
JP5241738B2 (ja) | 表からツリー構造データを構築する方法及び装置 | |
JPH0934763A (ja) | ファイル管理装置およびファイル管理方法 | |
CN112148680B (zh) | 一种基于分布式图数据库的文件系统元数据管理方法 | |
Rho et al. | An efficient version model of software diagrams | |
CN111897971B (zh) | 一种适用于电网调度控制领域的知识图谱管理方法及系统 | |
CN108073696A (zh) | 基于分布式内存数据库的gis应用方法 | |
US7467130B2 (en) | Method for converting chained join tables to tree structure, and a program for converting the same | |
CN113377364B (zh) | 基于节点历史值的树形结构组织编辑操作回撤方法 | |
CN109254962B (zh) | 一种基于t-树的索引优化方法、装置及存储介质 | |
EP1555609A1 (en) | Data processing method and data processing program | |
CN101359337B (zh) | 用于交互式地编辑gis拓扑数据集的方法 | |
CN110083603B (zh) | 一种基于邻接表实现节点路径的查询方法及系统 | |
CN110309369B (zh) | 一种树形结构数据的实现方法及终端 | |
CN114696325A (zh) | 电网拓扑配置方法 | |
CN109241098A (zh) | 一种分布式数据库的查询优化方法 | |
CN110275865B (zh) | 文件存储优化方法和装置 | |
CN114048273A (zh) | 一种数据仓库引擎 | |
CN100502529C (zh) | 一种嵌入式系统定时器组织方法 | |
CN113626406A (zh) | 基于工地、建筑和构件关系模型的信息获取方法和装置 | |
CN110377612A (zh) | 一种对数据更新操作进行排序重组的方法及相应的装置 | |
KR0175579B1 (ko) | 객체지향 sdl 설계명세서의 버전 관리방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231123 Address after: 201111 floor 2, building 2, No. 1508, Kunyang Road, Minhang District, Shanghai Patentee after: Shanghai Baiqiao Information Technology Co.,Ltd. Address before: 201620 No. 333, Longteng Road, Shanghai, Songjiang District Patentee before: SHANGHAI University OF ENGINEERING SCIENCE |