专利名称:多页面组织和操纵电子文档的制作方法
技术领域:
本发明总体上涉及文档管理,具体地涉及一种用于组织和操纵电子文档的方法和工具。
背景技术:
模型-视图-控制器(MVC)是在软件工程中使用的普通架构模式,其通常用于复 杂的软件应用中,所述复杂的软件应用呈现大量的数据,并且维持同一数据的多个视图。 MVC架构将对象划分为三个类别一即模型、视图、控制器一之一。在MVC架构中,模型负责 维持数据,视图负责显示全部或一部分数据的用户界面,并且控制器负责处理影响模型或 视图的事件。通过以这种方式划分对象,多个视图和控制器可以与相同的模型交互。也可 以创建新的视图和控制器来与模型交互,而不要求模型设计的改变。而且,以这种方式划分 对象准许在不影响数据处理的情况下进行视图的改变,因此进行用户界面的改变,并且允 许在不要求视图的改变的情况下重新组织模型。由本申请的受让方一加拿大的亚伯达的卡尔加里的智能技术ULC(SMART Technologies ULC)提供的Notebook 软件是使用MVC架构的软件产品。SMART Notebook 允许用户创建、组织和操纵文档,其中每个文档包括一个或多个页面。现在转向图1,示出了 SMARTNotebook 的MVC架构,并且总得由附图标记20标识。可以看出,SMART Notebook MVC架构20包括模型22,在这种情况下为PageModel (页面模型)和PageListModel (页 面列表模型);视图24,在这种情况下为PageSorter (分页器);以及,控制器26,其在这 种情况下为PageListController (页面列表控制器)。PageModel是文档页面的数据表 示,并且提供了用于操纵文档页面的方法,PageListModel (PageListModel)是构成文档的 页面的列表的数据表示。PageListController处理允许PageListModel的操纵的事件。 PageSorter提供允许选择和操纵文档的页面的用户界面。具体地,对于所选择的文档, PageSorter用户界面在主要观看区域或窗口中显示所选择的文档页面,并且沿着主要观看 区域的左侧或右侧将文档的其他页面显示为缩略图(例如小复制图像)。响应于作为与 PageSorter用户界面的用户交互的结果接收的用户输入,PageSorter将用户输入中继到 PageListController。 PageListController 作为口向应设置 PageModel 禾口 PageListModel 的状态,并且向PageSorter返回通知。PageSorter响应于该通知而查询PageModel和 PageListModel的状态,并且因此更新用户界面。虽然SMART Notebook 已经证明是用于组织文档的页面的有价值的工具,但是 PageSorter提供了有限的文档操纵功能。具体地,通过与PageSorter的用户交互仅可以执 行文档页面的增加、移动或删除,并且仅可以一次操纵单个页面。可以明白,期望文档操纵 的改善。因此,本发明的目的是提供一种用于组织和操纵电子文档的新颖方法和工具。
发明内容
因此,在一个方面,提供了一种用于组织和操纵电子文档的软件工具,所述电子文 档包括至少一组文档页面,所述软件工具包括第一用户界面模块,被配置为以列表状布置 来呈现所述电子文档的文档页面;第二用户界面模块,被配置为在相应的屏面(panel)中 呈现每组的文档页面;可操作用于同时操纵在所述屏面的一个或多个中呈现的多个所选择 的文档页面的部件。在一个实施例中,所述第二用户界面模块被配置为允许在所述相应的屏面中重新 排序每组的文档页面。可以经由拖放操作来执行所述重新排序。所述第二用户界面模块也 被配置为允许经由拖放操作来在屏面之间移动文档页面。在一个实施例中,所述第一用户 界面模块被配置为允许对所述列表状布置的文档页面的顺序重新排序。所述可操作用于操 纵的部件被配置为向所述多个所选择的文档页面应用主题,例如颜色、图形对象、文本、图 案、音频、视频等。根据另一个方面,在其中呈现软件在计算装置上执行时允许显示和操纵包括多个 页面的文档的呈现软件环境中,提供了改善,该改善包括编组工具,所述编组工具可操作用 于编组文档的页面,并且显示每组的页面,并且操纵所选择的一个或多个组的页面。根据另一个方面,提供了一种电子文档组织和操纵方法,包括在图形用户界面上 的独立屏面中显示文档的每组电子页面;提供用于允许用户在一个或多个屏面内重新排序 页面和/或在屏面之间移动页面的工具;并且响应于所述工具的使用,适当地重新排序和/ 或移动所述页面。根据另一个方面,提供了一种包含计算机程序的计算机可读介质,所述计算机程 序用于组织和操纵包括至少一组文档页面的电子文档,所述计算机程序包括用于以列表 状布置来呈现所述电子文档的文档页面的计算机程序代码;用于在相应的屏面中呈现每组 的文档页面的计算机程序代码;用于同时操纵在所述屏面的一个或多个中呈现的多个所选 择的文档页面的计算机程序代码。根据另一个方面,提供了一种包含计算机程序的计算机可读介质,所述计算机程 序用于组织和操纵电子文档,所述计算机程序包括用于在图形用户界面上的独立屏面中 显示文档的每组电子页面的计算机程序代码;以及,用于响应于用户输入而在屏面内重新 排序页面和/或在屏面之间移动页面的计算机程序代码。
现在将参考附图更全面地说明实施例,其中图1是现有技术的SMART Notebook 的MVC架构的表示;图2和3是覆盖SMART Notebook 的MVC架构的另外的MVC架构的表示;图4示出了 PageGroupView(页面组视图)用户界面;图5示出了在PageGroupView用户界面上的下拉菜单;图6示出了强化的PageSorter (分页器)用户界面;以及图7示出了在强化的PageSorter用户界面上的下拉菜单。
具体实施例方式如上所述,由加拿大的亚伯达的卡尔加里的智能技术ULC提供的SMART Notebook 软件是使用MVC架构的软件产品。SMARTNotebook 允许用户创建、组织和操纵 文档,其中每个文档包括一个或多个页面。为了增强SMART Notebook 组织和操纵文档页 面的能力,提供了 PageGrouping(页面编组)工具。PageGrouping工具允许用户以下述方 式来同时操纵文档的多个页面,所述方式使得多个页面能够以用户确定的有意义方式逻辑 地与类别相关联。通过以另外的MVC架构30覆盖SMART Notebook 的MVC架构20而实现 PageGrouping工具,所述另外的MVC架构30为MVC架构20的镜像,如图2和3中所 示。所述另外的MVC架构30包括模块32,在这个示例中为GroupMode 1 (组模型) 和GroupListModel (组列表模型);视图34,在这个示例中为强化的PageSorter和 PageGroupView ;以及,控制器36,在这个示例中为GroupListController (组列表控制器)。GroupModel是文档的一组页面的数据表示,并且通过提供用于操纵所述一组 文档页面的表示的方法来对PageModel的功能做镜像(mirror)。对于每组文档页面, GroupModel存储组特定数据,例如组标题、组ID、在组中的文档页面的数量和在组中的文 档页面索引。附件A示出了 GroupMode 1的示例性表示。可以明白,GroupModel允许向组 添加文档页面,从组中去除文档页面或从组中删除文档页面,并且允许设置一组文档页面 的标题。GroupModel不存储文档的页面。而是,GroupModel存储用于标识组的文档页面的 唯一标识符(例如页面ID)。GroupListModel是文档的多组页面的列表的数据表示,并且类似于 PageListModel。具体地,GroupListModel存储关于多组页面在文档中的顺序的信息。 GroupListModel提供用于组织多组文档页面、添加多组文档页面、重新布置多组文档页面, 并且删除多组文档页面的方法。GroupListModel也提供了一种用于创建文档页面的虚拟组 的方法,所述文档页面的虚拟组包括当前在GroupListModel中的所有组的文档页面的混 合。附件B示出了 GroupListModel的示例性表示。GroupListController是处理事件以允许GroupListModel的操纵的控制器。附 件C示出了 GroupListController的示例性表示。GroupListController保持在模型 32和和视图34之间的分隔,并且提供了用于同步和分发应用通知消息的机制。例如,调 用AddGroup函数不仅向GroupListModel添加了新的GR0UP_ID,而且向相关的视图通知 GroupListModel已经改变,因此视图可以进行更新。PageGroupView提供了用户界面50,其用于操纵可以在图4中看到的多组文档页 面。PageGroupView用户界面50提供了用于经由拖放操作来管理文档的页面和在文档中的 组中的页面的直观方式。具体地,PageGroupView用户界面50在主要观看区域52中呈现 文档的每组的文档页面。每组的文档页面被呈现为在标题栏56之下的屏面54中的阵列, 标题栏56标识向组分配的标题。可以通过选择期望的文档页面、跨屏面54将所选择的文 档页面拖动至其在组中的新的期望位置,并且释放所选择的文档页面,来简单地重新排序 在每组中的文档页面。也可以通过选择一个组的期望文档页面、跨一个或多个屏面54将所 选择的文档页面拖动至其在新组中的期望位置,并且释放所选择的文档页面,来将每个文 档页面从一个组移动到另一组。接近每个标题栏56的右端提供了可选按钮60,其在被选择时暴露可选操作的菜单62,所述可选操作使得能够选择、移动或重新命名与标题栏相关联 的组。也提供了 “添加新组”可选按钮64,其在被选择时允许创建文档页面的新组,并且显 示对应的屏面54和标题栏56。一旦已经显示了屏面54和标题栏56,则可以将文档页面从 现有组的屏面54拖动并且放在如上所述的标题栏56之下的新屏面54中。PageGroupView 用户界面50也允许例如像背景主题(例如颜色、图形对象、文本、图案(条纹、阴影等)、音 频、视频等)的文档页面属性被应用到一个或多个所选组的文档页面。以这种方式,可以同 时操纵一个或多个所选组的多个文档页面。也可以通过下述方式来创建新的一组文档页面通过选择在现有组内的文档页 面,并且执行右击事件,所述右击事件导致显示包括删除页面、清洁页面、创建组和屏幕底 面(screen shade)选项的菜单,如图5中所示。从菜单选择创建组选项创建用于新组的屏 面54和标题栏56,并且将所选择的文档页面置于对于新组创建的屏面54中。选择屏幕底 面选项允许用户选择用于所选文档页面的背景主题。PageGroupView被划分为呈递(rendering)组件和原生图形用户界面组件,其允 许在SMART Notebook 的不同版本上使用PageGroupView的基础布局、行为和观看与感觉。 附件D示出了 PageGroupView的呈递组件的示例性表示。可以明白,PageGroupView的呈 递组件包括IPageGroupView类别和CPageGroupView类别。IPageGroupView类别是由呈递 组件用于与原生图形用户界面组件通信的回调接口。原生图形用户界面组件响应于回调, 并且调入CPageGroupView类别,以处理行为、拖放、呈递、键盘和鼠标输入。强化的PageSorter提供了用户界面70,其用于在多组文档页面之间导航,并且 用于选择要在主观看区域52上显示的当前文档页面,如图6中所示。可以看出,强化的 PageSorter用户界面70向可以用于导航通过文档的页面的主要观看区域52的一侧呈现 缩略图的列表72。以在列表中的顺序来呈现每组的文档页面。选择在列表72中呈现的缩 略图将主要观看区域52切换到与所选择的缩略图对应的文档页面。PageSorter用户界面 70允许在组内或组之间拖放列表中的文档页面、滚动至特定组的文档页面和应用到多个所 选择的文档页面的各操作。PageSorter用户界面70包括可选“组”按钮,其被选择时暴露 如图7中所示的下拉菜单76。菜单76通过标题来标识每组文档页面。选择标题使所显示 的缩略图的列表72滚动,以便与所选择的标题对应的组的文档页面的缩略图表示位于列 表的顶部。菜单76也包括组编辑项目,组编辑项目在被选择时暴露可选操作的菜单,所述 可选操作使得能够在组之间移动文档页面,重新排序在组内的文档页面,重新排序在文档 内的多组页面,并且重新命名多组文档页面。虽然已经具体参考在SMART Notebook 中的其实施方式而描述了 PageGrouping 工具,但是本领域内的技术人员可以理解,可以通过允许按照期望编组电子文档并且按照 期望操纵多组电子文档,在其他呈现软件环境中使用PageGrouping工具以便利电子文档 (例如文件或页面)的管理。PageGrouping工具在下述方面是有益的它使得用户能够分类、操纵和容易地访 问在文档中的多组页面。在维持大量文档一其中每个包含大量的页面一的情况下,这是 特别有益的。PageGrouping工具已经证明在教育环境中是非常有益的,因为其允许教师组 织和构造教学计划。例如,可以通过文档来表示书,并且在文档内的每组表示那本书的章 节。这允许教师计划几个章节(即组)的教学,并且能够在上课期间使用PageGroupView和PageSorter用户界面来在不同的章节之间转换。注意,课程也可以被提供为组中的文档 页面。另一个类似的用途是组织要在课程期间讨论的几个题目的特定课程教学,并且创建 包括用于表示讨论的题目的多组文档页面的文档。在教学期间未讨论的组的文档页面当然 可以通过用户界面被移动到表示下一个课程教学的文档。PageGrouping工具可以包括程序模块,所述程序模块包括但是不限于例程、程序、 对象组件、数据结构等,并且可以被体现为在计算机可读介质上存储的计算机可读程序代 码。所述计算机可读介质是可以存储数据的任何数据存储装置,所述数据可以其后被计算 机系统读取。计算机可读介质的示例例如包括只读存储器、随机存取存储器、CD-ROM、磁带 和光数据存储装置。也可以通过包括耦合的计算机系统的网络来分发所述计算机可读程序 代码,以便以分布的方式来存储和执行计算机可读程序代码。虽然已经参考
了实施例,但是本领域内的技术人员可以理解,在不不偏 离由所附的权利要求限定的其精神和范围的情况下,可以进行改变和修改。附件A
class IGroupModel
{
protected
virtual--IGroupModel () {};
public:
virtualvoid AddPage(PAGE_ID id, UINT index = OxFFFFFFFF)=
virtualvoid RemovePage(PAGE_ID id) = 0 ;
virtualvoid MovePage (PAGE_ID id, UINT index) = 0;
virtualGR0UP_ID GetUniqueGrouplD ()const = 0 ;
virtualvoid SetTitle (const CAtlString & title) = 0 ;
virtualCAtlString GetTitle ()const = 0 ;
virtualvoid AddPageList(CAtlArray<PAGE_ID>&ids) = 0 ;
virtualvoid GetPageIDs (CAtlArray<PAGE_ID>&ids) = 0 ;
virtualint GetDisplayIndex(PAGE_ID id) = 0;
virtualPAGE_ID GetIDFromIndex (UINT index) = 0;
virtualUINT GetNumberOfPages ()const = 0 ;
ι ;
typedef boost::shared_ptr<IGroupMode1>IGroupModeIPtr
附件B
class IGroupListModel
{
protected:
virtual-:[GroupListModelQ {};
public:
virtual GR0UP_ID AddGroup(UINT index = OxFFFFFFFF) = 0 ;
virtual void Delete Group(GR0UP_ID id) = 0 ;
virtual void MoveGroup(GR0UP_ID id, UINT newlndex) = O ;virtual void RestoreExistingGroup (GR0UP_ID id, UINT ilnsertionlndex) = O ;virtual void GetGroupIDs(CAtlArray<GROUP_ID>&ids) = O ;virtual IGroupModelPtr GetGroup(GR0UP_ID id) = O ;virtual GR0UP_ID GetGroupFromIndex(UINT index) = O ;virtual void RefreshAllGroups () = 0;virtual IGroupModelPtr GetAllGroups () = 0;virtual int GetGroupIndexFromID(GR0UP_ID id) = O ;virtual int GetGroupCount 0=0;};typedef boost::shared_ptr<IGroupListModel>IGroupListModelPtr ;附件Cclass IGroup ListController{protected:virtual-IGroupListController() {};public:virtual GR0UP_ID AddGroup(UINT index = OxFFFFFFFF) = O ;virtual void DeleteGroup (GR0UP_ID id) = 0;virtual void MoveGroup(GR0UP_ID id, UINT newlndex) = O ;virtual void RestoreExistingGroup (GR0UP_ID id, UINT ilnsertionlndex) = O ;virtual void GetGroupIDs(CAtlArray<GROUP_ID>&ids) = O ;virtual void SetGroupTitle(const CAtlString&title,GR0UP_ID id)= O ;};typedef boost::shared_ptr<IGroupListController>IGroupListControIlerPt附件Dclass IPageGroupView{
public virtual void InvalidateArea (const RectF& rect) = O ;virtual void NotifyClose ViewO = O ;virtual void LayoutChange() = O ;virtual RectF VisibleDisplayAreaO = O ;virtual void SetScrollBarPosition(int x, int y) = O ;virtual PointF ScrollBarPositionQ = O ;
virtual PointF MaximumScrolIPos () = O ;virtual void InvokeGroupRightClickMenu(const PointF & pt, const GROUP—ID &id) = O ;virtual void InvokePageRightClickMenu(const PointF&pt, const PAGE_ ID &id) = O ;virtual void StartPageTitleEditing(const RectF&rect, const PAGE_ID &id) = O ;virtual void StartGroupTitleEditing(const RectF & rect, const GROUP—ID & id)=O ;virtual void StartAutoScrollTimer () = 0;virtual void StopAutoScrolITimer () = 0;virtual-IPageGroupView () {};};附件Dclass CPageGroupView{
0109]CPageGroupView(const INotebookDocumentPtr & pDoc,const
0110]IGroupListModelPtr& model,IPageGroupView^pgView); 0111 ]-CPageGroupView ();
0112]void OnPaint(const SDGraphicsCoutextPtr & g,const RectF & rect);
0113]void OnLButtonDown(PointF pt, int nflags);
0114]void OnRButtonDown(PointF pt, int nflags);
0115]void OnLButtonUp(PointF pt, int nflags);
0116]void OnKeyDown(UINT Key, UINT flags) ;//use the cross platform keys
0117]here
0118]void OnLButtonDblClick(PointF pt, int nflags);
0119]void OnMouseMove(PointF pt, int nflags);
0120]void InvalidateRect(const RectF & rect);
0121]void OnDragging(PointF pt);
0122]void OnDragEnter(const SDImagePtr & img,PointF pt);
0123]bool OnDragStart(PointF pt, int nflags);
0124]void OnDragLeave ();
0125]bool HandleDrop(pointF pt);
0126]void RemoveDragFeedback ();
0127]void LayoutItems(const SDGraphicsContcxtPtr &g, const RectF &rect,
SizeF &0128]scrollSize);
0129]void initView ();
0130]bool IfProduceRightClickMenu(const PointF pt);
0131]void DeleteGroup(GR0UP_ID id);
0132]void MoveUpGroup (GR0UP_ID id);
0133]void MoveDownGroup(GR0UP_ID id);
0134]PageItemPtr GetDragPageItem(){return m_pltern ;};
0135]GroupltemPtrGroupAtPoint(PointF pt);
0136]PageItemPtr PageAtPoint(PointF pt);
0137]INotePageModelArrayListPtr GetSelectedNotePageModels();
0138]int GetItemFromPosition(GR0UP_ID gid,PointF pt);
0139]GROUP_ID GroupAtPosition (PointF pt);
0140]PAGE_ID PageAtPosition (PointF pt);
0141]bool IsDragFromSelf();
0142]void EndDragDrop ();
0143]void EditGroupTitle (const GROUP ID &id);
0144]void EditPageTitle(const PAGE_ID &id);
0145]UINT NumberOfSelectedPages()const ;
0146]bool IsScreenShadeVisible(const PAGE_ID &id);
0147]bool IsPageEmpty(const PAGE_ID & id);
0148]void DeleteSelectedPages();
0149]void ClearSelectedPages();
0150]void ScreenShadeSelectedPages();
0151]void UpdatePage(const PAGE_ID &id);
0152]bool IsRubberBanding()const ;
0153]void SelectedPage (CAtlArray<PAGE_ID>& ids);
0154]void DoAutoScroll ();
0155]IGroupModelPtr GetDragGroupModel();
0156]void CreateGroupFromSelectedPages(const CAtl String & title)
0157]private:
0158]IPageGroupView*m_PgView ;
0159]};
0160]typedef boost::shared_ptr<CPageGroupView>CPageGroupViewPtr ;
权利要求
一种用于组织和操纵电子文档的软件工具,所述电子文档包括至少一组文档页面,所述软件工具包括第一用户界面模块,被配置为以列表状布置来呈现所述电子文档的文档页面;第二用户界面模块,被配置为在相应的屏面中呈现每组的文档页面;以及可操作用于同时操纵在所述屏面一个或多个中呈现的多个所选择的文档页面的部件。
2.根据权利要求1所述的软件工具,其中,所述第二用户界面模块被配置为允许在所 述相应的屏面内重新排序每组的文档页面。
3.根据权利要求2所述的软件工具,其中,所述第二用户界面模块允许经由拖放操作 来重新排序每组的文档页面。
4.根据权利要求1至3的任何一项所述的软件工具,其中,所述第二用户界面模块被配 置为允许在屏面之间移动文档页面。
5.根据权利要求4所述的软件工具,其中,所述第二用户界面模块允许经由拖放操作 来在屏面之间移动文档页面。
6.根据权利要求1至5的任何一项所述的软件工具,其中,所述第一用户界面模块被配 置为允许对所述列表状布置的文档页面的顺序重新排序。
7.根据权利要求1至6的任何一项所述的软件工具,其中,所述可操作用于操纵的部件 被配置为向所述多个所选择的文档页面应用主题。
8.根据权利要求7所述的软件工具,其中,所应用的主题选自包括颜色、图形对象、文 本、图案、音频和视频的组。
9.根据权利要求1至8的任何一项所述的软件工具,其中,所述第二用户界面模块被配 置为标注每个屏面。
10.根据权利要求1至9的任何一项所述的软件工具,其中,所述第二用户界面模块被 配置为响应于用户输入来创建新屏面。
11.根据权利要求10所述的软件工具,其中,所述第二用户界面模块被配置为允许将 现有屏面的文档页面移动到所创建的新屏面。
12.根据权利要求11所述的软件工具,其中,所述第二用户界面模块允许经由拖放操 作从现有屏面向所创建的新屏面移动文档页面。
13.在其中呈现软件在计算装置上执行时允许显示和操纵包括多个页面的文档的呈现 软件环境中,改善包括编组工具,所述编组工具可操作用于编组文档的页面,并且显示每组 的页面,并且操纵所选择的一个或多个组的页面。
14.一种电子文档组织和操纵方法,包括在图形用户界面上的独立屏面中显示文档的每组电子页面;提供用于允许用户在一个或多个屏面内重新排序页面和/或在屏面之间移动页面的 工具;以及响应于所述工具的使用,适当地重新排序和/或移动所述页面。
15.根据权利要求14所述的方法,其中,响应于拖放工具操作而执行所述重新排序和/ 或移动。
16.根据权利要求14或15所述的方法,其中,所述工具响应于用户输入而选择多个页 面,并且同时向所选择的页面应用主题。
17.根据权利要求16所述的方法,其中,在所述应用期间,向所述选择的页面应用选自 下组的主题,所述组包括颜色、图形对象、文本、图案、音频和视频。
18.一种计算机可读介质,包含计算机程序,所述计算机程序用于组织和操纵电子文 档,所述电子文档包括至少一组文档页面,所述计算机程序包括用于以列表状布置来呈现所述电子文档的文档页面的计算机程序代码; 用于在相应的屏面中呈现每组的文档页面的计算机程序代码;以及 用于同时操纵在所述屏面的一个或多个中呈现的多个所选择的文档页面的计算机程 序代码。
19.根据权利要求18所述的计算机可读介质,其中,所述计算机程序进一步包括用于 在所述相应的屏面内重新排序每组的文档页面的计算机程序代码。
20.根据权利要求18或19所述的计算机可读介质,其中,所述计算机程序进一步包括 用于在屏面之间移动文档页面的计算机程序代码。
21.根据权利要求18至20的任何一项所述的计算机可读介质,其中,所述计算机程序 进一步包括用于对所述列表状布置的文档页面重新排序的计算机程序代码。
22.根据权利要求18至21的任何一项所述的计算机可读介质,其中,所述用于操纵的 计算机程序代码向所述多个所选择的文档页面应用主题。
23.一种计算机可读介质,包含计算机程序,所述计算机程序用于组织和操纵电子文 档,所述计算机程序包括用于在图形用户界面上的独立屏面中显示文档的每组电子页面的计算机程序代码;以及,用于响应于用户输入在屏面内重新排序页面和/或在屏面之间移动页面的计算机程 序代码。
24.根据权利要求23所述的计算机可读介质,其中,所述计算机程序进一步包括用于 选择多个页面并且用于向所选择的页面同时应用主题的计算机程序代码。
全文摘要
一种用于组织和操纵电子文档的软件工具,所述电子文档包括至少一组文档页面,所述软件工具包括第一用户界面模块,其被配置为以列表状布置来呈现所述电子文档的文档页面;第二用户界面模块,其被配置为在相应的屏面中呈现每组的文档页面;以及,可操作用于同时操纵在所述屏面的一个或多个中呈现的多个所选择的文档页面的部件。
文档编号G09B5/02GK101939722SQ200980101951
公开日2011年1月5日 申请日期2009年1月8日 优先权日2008年1月9日
发明者乔纳森·奈茨, 吉赛尔·贡萨尔维斯, 斯图尔特·施奈德, 王淼森, 迈克尔·博伊尔, 香农·古德曼 申请人:智能技术Ulc公司