使用ADF Faces 之四:实现拖放功能
2014-08-19 18:54
211 查看
开发环境:JDevloper 11.1.2.1.0+ Oracle Database 10g Express Edition 10.2.0.1。
完成《Implementing
Drag and Drop》。
实验内容简介:把一个图片拖放到一个输入框上,提取图片的某个属性值,显示在输入框中。
重点步骤说明:
1. 为image组件增加额外属性
拖放Operation组件:Client Attribute到image组件上,并设置属性name=cup和value=Coffee。
可以通过这种方式为组件增加额外的属性,用于拖放时获取这些属性。
2. 让image组件可以被拖动,即拖动源。
拖放Operation组件:Attribute Drag Source到image组件上,并设置提取的属性值。
可以通过这种方式让组件可以被拖动,并且设置拖动时提取的属性值。
3. 让inputText组件可以接受拖放,即拖放目的
拖放Operation组件:Attribute Drop Target到inputText组件上,并设置拖放时要改变的属性值。
可以通过这种方式让组件可以接受拖放,并设置拖放时要改变的属性值。
这里选择value属性,即改变inputText组件的value值。
4. 运行效果如下:
(1)拖放图片到输入框上,发现是可以接受拖放的。
(2)拖放图片到其它地方,发现是无法接受拖放的。
(3)拖放后的效果:获取拖放源的属性值,并改变了拖放目的属性值。
5. 使用DropListener
(1)定义一个Managed Bean:MyPageInfo.java
(2)MyPageInfo.java
(3)增加一个ListBox组件到页面,并将列表的值绑定到Managed Bean的方法。
(4)让ListBox组件接受拖放
拖放Operation组件:Drop Target到ListBox组件上,并设置DropListener到Managed Bean中的方法。
可以通过这种方式让组件可以接受拖放,并设置拖放时要触发的DropListener事件。
注意,与Attribute Drop Target改变组件属性值不同,Drop Target会触发DropListener事件。
(5)运行效果
拖放图片到ListBox上,发现增加了一个item:Coffee。
Project 下载:DndApp.7z
http://maping930883.blogspot.com/2012/03/adf024adf-faces.html
完成《Implementing
Drag and Drop》。
实验内容简介:把一个图片拖放到一个输入框上,提取图片的某个属性值,显示在输入框中。
重点步骤说明:
1. 为image组件增加额外属性
拖放Operation组件:Client Attribute到image组件上,并设置属性name=cup和value=Coffee。
可以通过这种方式为组件增加额外的属性,用于拖放时获取这些属性。
2. 让image组件可以被拖动,即拖动源。
拖放Operation组件:Attribute Drag Source到image组件上,并设置提取的属性值。
可以通过这种方式让组件可以被拖动,并且设置拖动时提取的属性值。
3. 让inputText组件可以接受拖放,即拖放目的
拖放Operation组件:Attribute Drop Target到inputText组件上,并设置拖放时要改变的属性值。
可以通过这种方式让组件可以接受拖放,并设置拖放时要改变的属性值。
这里选择value属性,即改变inputText组件的value值。
4. 运行效果如下:
(1)拖放图片到输入框上,发现是可以接受拖放的。
(2)拖放图片到其它地方,发现是无法接受拖放的。
(3)拖放后的效果:获取拖放源的属性值,并改变了拖放目的属性值。
5. 使用DropListener
(1)定义一个Managed Bean:MyPageInfo.java
(2)MyPageInfo.java
package project1; import java.io.Serializable; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import java.util.ArrayList; import java.util.List; import javax.faces.model.SelectItem; import oracle.adf.view.rich.datatransfer.DataFlavor; import oracle.adf.view.rich.dnd.DnDAction; import oracle.adf.view.rich.event.DropEvent; @ManagedBean(name="dnd") @SessionScoped public class MyPageInfo implements Serializable { public MyPageInfo() { } /** * @return the beverage items */ private List _choices; public List getChoices() { if (_choices == null) { _choices = new ArrayList(); _choices.add(new SelectItem("Cocoa", "Cocoa")); _choices.add(new SelectItem("Tea", "Tea")); _choices.add(new SelectItem("Wine", "Wine")); } return _choices; } /** * Drop event handler */ public DnDAction handleItemDrop(DropEvent dropEvent) { try { DataFlavor df = DataFlavor.getDataFlavor(String.class); String droppedValue = dropEvent.getTransferable().getData(df); if (droppedValue == null) { return DnDAction.NONE; } else { _choices.add(new SelectItem(droppedValue, droppedValue)); } return DnDAction.COPY; } catch (Exception ex) { System.out.println("item drop failed with : " + ex.getMessage()); return DnDAction.NONE; } } }
(3)增加一个ListBox组件到页面,并将列表的值绑定到Managed Bean的方法。
(4)让ListBox组件接受拖放
拖放Operation组件:Drop Target到ListBox组件上,并设置DropListener到Managed Bean中的方法。
可以通过这种方式让组件可以接受拖放,并设置拖放时要触发的DropListener事件。
注意,与Attribute Drop Target改变组件属性值不同,Drop Target会触发DropListener事件。
(5)运行效果
拖放图片到ListBox上,发现增加了一个item:Coffee。
Project 下载:DndApp.7z
http://maping930883.blogspot.com/2012/03/adf024adf-faces.html
相关文章推荐
- Atlas学习手记(7):使用DragOverlayExtender实现拖放功能
- Atlas学习手记(7):使用DragOverlayExtender实现拖放功能
- 说说如何使用 JavaScript 实现拖放功能
- 使用VB实现OLE拖放功能
- Atlas学习手记(7):使用DragOverlayExtender实现拖放功能
- JavaScript中使用zDragDrop实现拖放功能
- Atlas学习手记(7):使用DragOverlayExtender实现拖放功能
- [原创]使用自定义类库实现中间件的功能
- 使用文件流下载文件功能实现 [原]
- linux下使用系统调用编程实现copy命令功能
- 实现:为自写的表格控件中的表格线 实现鼠标拖放功能
- 实现拖放功能的javascirpt代码
- 在C#中实现打印功能(C#中PrintDialog,PrintDocument的使用)
- 使用SHAREPOINT架构企业门户和实现OA功能
- 使用Spring framework实现定时器功能
- CDC使用技巧之最快最方便的实现放大缩小功能
- 关于使用DataGrid的ButtonColumn,动态添加DataGrid列,实现不定列n个文件的下载功能
- 使用Session记录页面地址和实现页面返回功能
- 拖放功能的实现
- C#实现SMTP服务器,使用TCP命令实现,功能比较完善