ClipboardTrigger
基本用法
ClipboardTrigger
在界面 XML 的 facets
元素定义,有如下属性:
2. button
- 定义触发复制动作的 Button 按钮 id
。
用 isSupportedByWebBrowser() 方法检查用户的浏览器是否支持内容复制。
|
示例:
<window xmlns="http://jmix.io/schema/ui/window"
caption="msg://clipboardTriggerScreen.caption">
<facets>
<clipboardTrigger id="clipboardTrigger"
button="btn"
input="maskedField"/>
</facets>
<layout>
<hbox spacing="true">
<maskedField id="maskedField"
caption="Phone number"
mask="(###) ###-##-##"/>
<button id="btn"
caption="Copy"
align="BOTTOM_RIGHT"/>
</hbox>
</layout>
</window>
@Autowired
private Notifications notifications;
@Autowired
private ClipboardTrigger clipboardTrigger;
@Subscribe("btn")
public void onBtnClick(Button.ClickEvent event) {
if (clipboardTrigger.isSupportedByWebBrowser()) {
notifications.create()
.withCaption("Phone number was copied to clipboard")
.show();
} else {
notifications.create()
.withCaption("The phone number is not copied, because your " +
"browser does not support this functionality")
.show();
}
}
事件和处理器
如需使用 Jmix Studio 生成处理器的桩代码,需要在界面 XML 描述或者 Jmix UI 层级结构面板选中 facet 元素,然后用 Jmix UI 组件面板的 Handlers 标签页生成。 或者可以使用界面控制器顶部面板的 Generate Handler 按钮。 |
CopyEvent
此事件在用户点击 ClipboardTrigger
关联的按钮时发送,事件有以下方法:
-
isSuccess()
- 如果文本内容成功复制到客户端的剪贴板,则返回true
。 -
getSource()
- 返回产生该事件的ClipboardTrigger
对象。
@Subscribe("clipboardTrigger")
public void onClipboardTriggerCopy(ClipboardTrigger.CopyEvent event) {
if (event.isSuccess()) {
notifications.create()
.withCaption("Text was successfully copied to clipboard")
.show();
} else {
notifications.create()
.withCaption("Something went wrong during copying")
.show();
}
}
如需以编程的方式注册事件处理器,使用 facet 的 addCopyListener()
方法。
本页是否有帮助?
感谢您的反馈