[0035] 步骤S130,根据距离所述拖拽节点最近的节点信息确定位于目标点的拖拽节点与所述思维导图中其他节点的关联关系。
[0036] 具体的,在拖拽节点达到目标点的过程中,根据距离拖拽节点最近的节点信息确定位于目标节点的拖拽节点与思维导图中的其他节点的关系。其他节点包括各级节点,可选的,位于目标节点的拖拽节点与思维导图中其他节点的关系可以是,位于目标节点的拖拽节点是其他节点的子节点或父节点,或者是与其他节点平级的节点。
[0037] 步骤S140,在所述思维导图中绘制并展示所述位于目标点的拖拽节点与所述思维导图中其他节点的关联关系。
[0038] 具体的,将位于目标点的拖拽节点与思维导图中的其他节点的关联关系在思维导图中绘制出来,并将绘制结果进行展示,用户可以根据展示结果进行后续操作。可选的,使用程序绘制的部件Adorner绘制出拖拽节点拖拽过程的预览。
[0039] 本发明实施例中,根据思维导图中拖拽节点的拖拽信息确定拖拽距离,并根据拖拽距离和预设距离的关系确定距离拖拽节点最近的节点信息,进而确定位于目标点的拖拽节点与思维导图中其他节点的关系,绘制该关系并展示。实现了思维导图节点拖拽过程中的实时预览,清晰显示当前节点的拖拽位置,为用户提供了方便。
[0040] 实施例二
[0041] 图2是本发明实施例二中的一种用于思维导图的操作方法的流程图,本实施例在实施例一的
基础上,在所述根据所述目标点确定距离所述拖拽节点最近的节点信息之前,还包括:获取所述思维导图中各分支对应的外接矩形区域的集合。本实施例中的用于思维导图的操作方法包括:步骤S210、步骤S220、步骤S230和步骤S240。
[0042] 步骤S210,获取思维导图中的拖拽节点的拖拽信息,所述拖拽信息包括起点信息和目标点信息。
[0043] 步骤S220,根据所述起点和目标点确定拖拽距离,如果所述拖拽距离大于等于距离阈值,则获取所述思维导图中各分支对应的外接矩形区域的集合,根据所述目标点确定距离所述拖拽节点最近的节点信息。
[0044] 具体的,在根据起点和目标点确定拖拽距离并判断拖拽距离大于等于距离阈值之后,获取思维导图中各分支对应的外接矩形区域的集合。可选的,在思维导图中,将中心节点作为演示节点,中心节点的下一级节点为一级节点,一级节点的下一级节点成为二级节点,中心节点和一级节点之间的连接即为一个分支,一级节点和二级节点之间的连接也是一个分支。拖拽开始时,遍历思维导图中的一级节点,通过递归方法获取该一级节点与其子节点的最小的顶部值(top)、最大的底部值(bottom)、最小的左边值(left)、最大的右边值(right),根据获得四个值构建该一级分支对应的外接矩形区域,将该矩形区域记录为Bounds=new Rect((left,top),(right,bottom)。针对每个一级节点,均用该方法获得其对应的外接矩形区域,将各个一级节点对应的矩形区域组合在一起,顺序编号,依次为外接矩形区域1、外接矩形区域2、…、外接矩形区域n,各外接矩形区域构成外接矩形区域的集合,其中,每个一级节点均生成一个Bounds,将每个一级节点和其对应的Bounds记录到哈希列表中,哈希列表用R表示,用来存储每个一级节点和其对应的Bounds,根据所述目标点确定距离所述拖拽节点最近的节点信息
[0045] 步骤S230,根据距离所述拖拽节点最近的节点信息确定位于目标点的拖拽节点与所述思维导图中其他节点的关联关系。
[0046] 步骤S240,在所述思维导图中绘制并展示所述位于目标点的拖拽节点与所述思维导图中其他节点的关联关系。
[0047] 优选的,所述方法还包括:对所述拖拽节点的拖拽结束时,根据所述其他节点的当前位置以及位于最后目标点的拖拽节点与所述思维导图中其他节点的关联关系确定所述其他节点的调整位置;根据所述其他节点对应的调整位置以及所述位于最后目标点的拖拽节点与所述思维导图中其他节点的关联关系调整所述思维导图并展示。
[0048] 具体的,对拖拽节点的拖拽结束时,拖拽节点位于整个拖拽过程中最后目标点保持不变。此时,根据其他节点的当前位置以及位于最后的目标点和拖拽节点与思维导图中其他节点的关系,确定其他节点的调整位置。优选的,如果拖拽节点最后的目标点需要其他节点进行位置的调整才可以到达,则需要将其他节点的位置进行调整。可选的,根据位于目标点的拖拽节点与思维导图中其他节点的位置关系,示例性的,该位置关系包括位于最后目标点的拖拽节点与其他节点的位置关系,例如上方、下方、左方或右方等,和/或与其他节点是子节点或者父节点的关系。
[0049] 本发明实施例中,通过在所述根据所述目标点确定距离所述拖拽节点最近的节点信息之前获取所述思维导图中各分支对应的外接矩形区域的集合,确定了拖拽节点的目标点对应的矩形区域的范围。
[0050] 实施例三
[0051] 图3是本发明实施例三中的一种用于思维导图的操作方法的流程图,本实施例在实施例一和实施例二的基础上,对步骤S120和步骤S130进行了细化,所述根据所述目标点确定距离所述拖拽节点最近的节点信息包括:如果所述目标点在所述外接矩形区域的集合内,则从所在的外接矩形区域对应的分支中确定距离所述拖拽节点最近的节点;所述根据距离所述拖拽节点最近的节点信息确定位于目标点的拖拽节点与所述思维导图中其他节点的关联关系包括:根据距离所述拖拽节点最近的节点的父节点的子节点与所述目标点的位置关系,确定位于所述目标点的拖拽节点的相邻节点;以距离所述拖拽节点最近的节点的父节点作为位于所述目标点的拖拽节点的父节点,确定位于所述目标点的拖拽节点与相邻节点的关联关系。本实施例中的用于思维导图的操作方法包括:步骤S310、步骤S320、步骤S330、步骤S340和步骤S350。
[0052] 步骤S310,获取思维导图中的拖拽节点的拖拽信息,所述拖拽信息包括起点信息和目标点信息。
[0053] 步骤S320,根据所述起点和目标点确定拖拽距离,如果所述拖拽距离大于等于距离阈值,如果所述目标点在所述外接矩形区域的集合内,则从所在的外接矩形区域对应的分支中确定距离所述拖拽节点最近的节点。
[0054] 具体的,在根据起点和目标点确定拖拽距离并判断拖拽距离大于距离阈值之后,当前目标点记为P,遍历哈希表,查找目标点的位置是否在外接矩形区域的集合中,如果是,则遍历结束,继续判断目标点的位置具体位于外接矩形区域集合中具体在哪个矩形区域。可选的,目标点的位置是位于外接矩形区域5,则从外接矩形区域5对应的分支中,确定距离拖拽节点最近的节点;当前分支的Bounds记为Rp,当前分支记为S。
[0055] 步骤S330,根据距离所述拖拽节点最近的节点的父节点的子节点与所述目标点的位置关系,确定位于所述目标点的拖拽节点的相邻节点。
[0056] 具体的,遍历S分支上的子节点,计算出离拖拽点最近的子节点s1,根据s1获得其父节点sp,遍历sp的子节点,根据子节点所在位置,确
定子节点与拖拽节点的位置关系,并根据该位置关系确定位于目标节点的拖拽节点的相邻节点。
[0057] 步骤S340,以距离所述拖拽节点最近的节点的父节点作为位于所述目标点的拖拽节点的父节点,确定位于所述目标点的拖拽节点与相邻节点的关联关系。
[0058] 具体的,将节点sp作为位于目标点的拖拽节点的父节点,确定位于所述目标点的拖拽节点与相邻节点的关联关系。可选的,位于目标点的拖拽节点与相邻节点的关联关系可以是,s1相邻上方的节点su(若无则记为空)、s1相邻下方节点sd(若无则记为空),根据获得的su、sd、s1、sur(su的位置)、sdr(sd的位置)、r(sp的位置)组成关联关系。
[0059] 步骤S350,在所述思维导图中绘制并展示所述位于目标点的拖拽节点与所述思维导图中其他节点的关联关系。
[0060] 本发明实施例中,通过对目标点在外接矩形区域的集合中的情况进行分析,确定距离拖拽节点最近的节点,并根据该节点的父节点的子节点与目标点的位置关系,确定位于目标点的拖拽节点的相邻节点,将该父节点作为位于目标点的拖拽节点的父节点,确定位于目标点的拖拽节点与相连节点的关联关系。实现了对目标点在外接矩形区域的集合中的情况下确定了目标点的拖拽节点与相连节点的关联关系。
[0061] 实施例四
[0062] 图4是本发明实施例四中的一种用于思维导图的操作方法的流程图,本实施例在实施例一至实施例三的基础上,对步骤S120和步骤S130进行了细化,
[0063] 所述根据所述目标点确定距离所述拖拽节点最近的节点信息包括:如果所述目标点不在所述外接矩形区域的集合内,则确定距离所述拖拽节点最近的节点为中心节点;所述根据距离所述拖拽节点最近的节点信息确定位于目标点的拖拽节点与所述思维导图中其他节点的关联关系包括:根据所述中心节点的子节点与所述目标点的位置关系,确定位于所述目标点的拖拽节点的相邻节点;以所述中心节点作为位于所述目标点的拖拽节点的父节点,确定位于所述目标点的拖拽节点与相邻节点的关联关系。本实施例中的用于思维导图的操作方法包括:步骤S410、步骤S420、步骤S430、步骤S440和步骤S450。
[0064] 步骤S410,获取思维导图中的拖拽节点的拖拽信息,所述拖拽信息包括起点信息和目标点信息。
[0065] 步骤S420,根据所述起点和目标点确定拖拽距离,如果所述拖拽距离大于等于距离阈值,如果所述目标点不在所述外接矩形区域的集合内,则确定距离所述拖拽节点最近的节点为中心节点。
[0066] 具体的,在根据起点和目标点确定拖拽距离并判断拖拽距离大于距离阈值之后,当前目标点记为P,遍历哈希表,查找目标点的位置是否在外接矩形区域的集合中,如果目标点不在外接矩形区域的集合内,则将距离拖拽节点最近的节点为中心节点。示例性的,如果点P不在外接矩形区域的集合内,则说明拖拽已超出了思维导图的范围或思维导图的中心范围区域,则将距离拖拽节点最近的节点确定为中心点。
[0067] 步骤S430,根据所述中心节点的子节点与所述目标点的位置关系,确定位于所述目标点的拖拽节点的相邻节点。
[0068] 具体的,当判断距离拖拽节点最近的节点确定为中心点后,确定各中心节点的子节点与目标点的位置关系,示例性的,该位置关系包括位于最后目标点的拖拽节点与其他节点的位置关系,例如上方、下方、左方或右方等,和/或与其他节点是子节点或者父节点的关系。确定位于目标点的拖拽节点的相邻节点。
[0069] 步骤S440,以所述中心节点作为位于所述目标点的拖拽节点的父节点,确定位于所述目标点的拖拽节点与相邻节点的关联关系。
[0070] 具体的,将中心节点作为位于目标点的拖拽节点的父节点,并确定位于目标点的拖拽节点与相邻节点的关联关系。可选的,根据位于目标点的拖拽节点的坐标,遍历中心节点的子节点,计算位于目标点的拖拽节点相邻的上方节点su(若无则记为空),位于目标点的拖拽节点的下方节点sd(若无则记为空);根据获得的su、sd、C(中心节点)、sur(su的位置)、sdr(sd的位置)、r(中心节点的位置信息)组成关联关系。
[0071] 步骤S450,在所述思维导图中绘制并展示所述位于目标点的拖拽节点与所述思维导图中其他节点的关联关系。
[0072] 本发明实施例中,通过对目标点不在外接矩形区域的集合内的情况进行分析,将距离拖拽节点最近的节点确定为中心节点,并根据中心节点的子节点与目标点的位置关系,确定位于目标点的拖拽节点的相邻节点,将中心节点作为位于目标点的拖拽节点的父节点,确定位于目标点的拖拽节点与相邻节点的关联关系。实现了对目标点在外接矩形区域的集合中的情况下确定了目标点的拖拽节点与相连节点的关联关系。
[0073] 示例性的,为了使方案的表述更易于理解,在上述实施例的基础上,对拖拽结束时的方案进行了进一步阐述。拖拽结束时,已经完成了思维导图中绘制并展示位于目标点的拖拽节点与所述思维导图中其他节点的关联关系,根据该关联关系,以中心节点为根节点,根据sd和su计算出拖拽节点的位置,如果sd存在,则使用递归
算法获取sd分支(包括子节点)所构成的外接矩形的最小的顶部值(top),通过外接矩形最小的顶部值和各分支间的间隙值计算出拖拽节点的位置;如果sd不存在,su不存在,则使用递归算法获得su分支(包括子节点)所构成的外接矩形的最大的底部值(bottom),通过外接矩形最大的底部值和分支间间隙计算出拖拽节点的位置;如果sd和su都不存在,则为平直的节点,即拖拽节点的纵坐标值与关联关系中中心节点的纵坐标值相等,拖拽节点的横坐标值与关联关系中中心节点的横坐标值有固定宽度差的一个值,可选的,该固定差值可以预先设定,通过横坐标和纵坐标可以确定拖拽节点的位置。
[0074] 示例性的,图5是本发明实施例提供的一种思维导图拖拽节点动态移动过程的起始位置示意图;图6是本发明实施例提供的一种思维导图拖拽节点动态移动过程的中间某一时刻的位置示意图;图7是本发明实施例提供的一种思维导图拖拽节点动态移动过程的目标位置示意图。如图5、图6和图7所示,550、650和750均为演示的中心节点,510-540、610-640和710-740均为一级节点,511、512、521、522、531、532和541为二级节点,其中531为拖拽节点;611、612、613、621、622、631和641为二级节点,其中,613为拖拽节点在拖拽过程中某一时刻的位置;711、712、713、721、722、731和741为二级节点,其中713为拖拽节点的目标位置。
[0075] 实施例五
[0076] 图8是本发明实施例五中的一种用于思维导图的操作装置的结构示意图,该装置适用于执行本发明实施例一至四中提供的一种用于思维导图的操作方法,该装置具体包括:
[0077] 信息获取单元810,用于获取思维导图中的拖拽节点的拖拽信息,所述拖拽信息包括起点信息和目标点信息;
[0078] 关系确定单元820,与信息获取单元810相连,用于根据所述起点和目标点确定拖拽距离,如果所述拖拽距离大于等于距离阈值,则根据所述目标点确定距离所述拖拽节点最近的节点信息;并根据距离所述拖拽节点最近的节点信息确定位于目标点的拖拽节点与所述思维导图中其他节点的关联关系;
[0079] 显示单元830,与关系确定单元820相连,用于在所述思维导图中绘制并展示所述位于目标点的拖拽节点与所述思维导图中其他节点的关联关系。
[0080] 进一步的,信息获取单元810还用于获取所述思维导图中各分支对应的外接矩形区域的集合。
[0081] 进一步的,关系确定单元820还用于如果所述目标点在所述外接矩形区域的集合内,则从所在的外接矩形区域对应的分支中确定距离所述拖拽节点最近的节点。
[0082] 进一步的,关系确定单元820还用于根据距离所述拖拽节点最近的节点的父节点的子节点与所述目标点的位置关系,确定位于所述目标点的拖拽节点的相邻节点;以距离所述拖拽节点最近的节点的父节点作为位于所述目标点的拖拽节点的父节点,确定位于所述目标点的拖拽节点与相邻节点的关联关系。
[0083] 进一步的,关系确定单元820还用于如果所述目标点不在所述外接矩形区域的集合内,则确定距离所述拖拽节点最近的节点为中心节点。
[0084] 进一步的,关系确定单元820还用于根据所述中心节点的子节点与所述目标点的位置关系,确定位于所述目标点的拖拽节点的相邻节点;以所述中心节点作为位于所述目标点的拖拽节点的父节点,确定位于所述目标点的拖拽节点与相邻节点的关联关系。
[0085] 进一步的,所述装置还包括位置确定单元和调整单元。
[0086] 位置确定单元,用于对所述拖拽节点的拖拽结束时,根据所述其他节点的当前位置以及位于最后目标点的拖拽节点与所述思维导图中其他节点的关联关系确定所述其他节点的调整位置;
[0087] 调整单元,用于根据所述其他节点对应的调整位置以及所述位于最后目标点的拖拽节点与所述思维导图中其他节点的关联关系调整所述思维导图并展示。
[0088] 进一步的,如果所述拖拽距离小于距离阈值,则确定本次拖拽为误操作。
[0089] 本发明实施例中,根据思维导图中拖拽节点的拖拽信息确定拖拽距离,并根据拖拽距离和预设距离的关系确定距离拖拽节点最近的节点信息,进而确定位于目标点的拖拽节点与思维导图中其他节点的关系,绘制该关系并展示。实现了思维导图节点拖拽过程中的实时预览,清晰显示拖拽节点在任意时刻的拖拽位置,为用户提供了方便。
[0090] 显然,本领域技术人员应该明白,上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模
块和有益效果。
[0091] 注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的
权利要求范围决定。