首页 > 其他分享 >GXT之旅:第八章:Portal&Drag-Drop——Portal的基本介绍

GXT之旅:第八章:Portal&Drag-Drop——Portal的基本介绍

时间:2022-12-06 11:07:09浏览次数:40  
标签:Portlet Drop portal GXT portlet Portal new ToolButton


第八章:Portal&Drag-Drop

本章我们要了解GXT的Portal&Drag-Drop功能。我们会首先学习如何使用Portal(非常类似谷歌的iGoogle功能)布局和Portlet,然后再以实践的方式学习GXT的拖拽功能。


我们会涉及到如下GXt功能集

  • Portal
  • Portlet
  • Draggable
  • DragSource
  • GridDropTarget
  • ListViewDropTarget
  • TreeGridDropTarget
  • TreePanelDropTarget
  • ColumnLayout
  • RowLayout


Portlet class

Portlet 类继承自ContentPanel,她提供了一种特殊的panel,可以在Viewport的Portal容器里,随意的更改显示位置和大小。她很像widows系统里面的桌面应用。

新建一个Portlet的过程很类似于其他容器的创建。

Portlet portlet = new Portlet();
portlet.setHeight(150);
portlet.setHeading("Example Portlet");


运行效果如下:

GXT之旅:第八章:Portal&Drag-Drop——Portal的基本介绍_portlet

portal.setPinned(true);

设置其是否可以被重置位置。除此之外,Portlet继承ContentPanel的所有功能

Portal class

Portal是专门为Portlet设置的容器。事实上,其容器包含了一组按照ColumnLayout布局的LayoutContainer。其中每一个LayoutContainer都包含一个Portlet,布局效果为RowLayout。

Portal同样支持Portlet的拖拽功能。Portal里面会有列,每一个列里面又包含行。因此就有了表格的概念,所以当新建一个Portal的时候,我们就需要在构造函数里,设置有多少列。当然还得通过setColumnWidth()方法设置其每一列的宽度。

假如,我们想创建一个两列的,分别是30%,70%宽的Portal的时候。我们会有如下代码

Portal portal = new Portal(2);
portal.setColumnWidth(0, 0.3);
portal.setColumnWidth(1, 0.7);


当Portal定义好了之后,我们要往每一列里放入Portlet

(其宽度自动的跟着column的宽度适应,只需要设置高度既可)

Portlet portlet1 = new Portlet();
portlet1.setHeight(150);
portlet1.setHeading("Example Portlet 1");
portal.add(portlet1, 0);

Portlet portlet2 = new Portlet();
portlet2.setHeight(150);
portlet2.setHeading("Example Portlet 2");
portal.add(portlet2, 1);


生成后的效果如下:

GXT之旅:第八章:Portal&Drag-Drop——Portal的基本介绍_重置_02

左右两个Portlet可以被拖拽到不同的位置。当一个Portlet正在被拖拽的时候,其效果如下

GXT之旅:第八章:Portal&Drag-Drop——Portal的基本介绍_portlet_03

当右侧的portlet被拖拽到左侧的时候,会自动的改变宽度

GXT之旅:第八章:Portal&Drag-Drop——Portal的基本介绍_构造函数_04


ToolButton

正是因为Portlet继承了ContentPanel,所以我们可以在其头部添加ToolButton。这样一来,可以让Portlet在功能和显示效果上,更接近桌面的应用窗口。

portlet.getHeader().addTool(new ToolButton("x-tool-minimize"));
portlet.getHeader().addTool(new ToolButton("x-tool-maximize"));
portlet.getHeader().addTool(new ToolButton("x-tool-close"));


如上的三行代码,就会构建出如下的效果

GXT之旅:第八章:Portal&Drag-Drop——Portal的基本介绍_构造函数_05

标签:Portlet,Drop,portal,GXT,portlet,Portal,new,ToolButton
From: https://blog.51cto.com/u_15903664/5915146

相关文章

  • GXT之旅:第七章:MVC——Navigation,Main和Item区域交互(1)
    (刚干了一个多月的flex项目,一时半会还无法转过神来专注于GXT的东东,有好多东西自己都忘的差不多了。。。。我得好好屡屡)使用TabPanel显示feeds之前,我们已经通过RssMainPa......
  • GXT之旅:第六章:Templates(2)——XTemplate(1)
    XTemplateXTemplate比Template更为有用,除了拥有Template相同的功能之外,还具有更多有用的功能——提供使用更多的<tpl>标记来满足自己需要的html显示效果。为了下面例子的引......
  • GXT之旅:第六章:Templates(1)——Template(1)
    第六章:Templates本章我们要了解Templates,以及学习他们是如何方便我们去自定义数据的格式化和显示。我们也会详细了解XTemplates的丰富功能本章,我们会涉及到如下GXt功能集Tem......
  • GXT之旅:第五章:高级Components(6)——TabPanel,Status大概介绍
    TabPanelTabPanel继承Container,作为可以容器,可以负责显示和管理TabItem对象集。TabItem对象集可以方法被add或remove。每一个TabItem都有一个id,用来通过findItem方法来......
  • GXT之旅:第五章:高级Components(2)——Grid的高级应用
    Grid的高级应用之前,我们学习的都是Grid的基本功能。事实上,Grids提供了丰富的功能,下面就让我们了解一下。HeaderGroupConfig假设我们想比较欧洲东部在1950和2000年之间的人......
  • GXT之旅:第五章:高级Components(3)——Paging
    PagingPaging是GXT提供的非常有用的功能。顾名思义,就是分页显示数据,而不是一页显示所有的数据。GXT支持远程和本地的分页:远程分页就是真分页,每次server端返回数据都是数据库......
  • GXT之旅:第七章:MVC——标准的MVC与GXT MVC
    第七章:ModelViewController本章我们要了解GXT的MVC架构,以及学习他们在一个大型的应用系统里是如何系统工作的我们会涉及到如下GXt功能集AppEventEventTypeControllerView......
  • react-native-modal-dropdown
    react-native-modal-dropdown1.0.2 • Public • Published ayearago Readme Explore BETA1Dependency32Dependents21Versionsreact-native-m......
  • pd drop_duplicates返回结果count和to_csv的结果不一致
    目的是从表中找出不重复的公司个数,一开始采用了drop_duplicates获取一个去重后的表,count()后发现是500多家,神奇的是当我将结果导入csv,发现只有不到100条。然后我采用groupby......
  • Power App Portal列表自定义筛选器
     因为Portal的列表筛选,只有三种样式,文本框、单选和下拉框,如果要用到其他的筛选那就不能配置它了,所以我们可以使用它的FetchXml的筛选,来达到我们想要的效果,例如做一个日......