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() 方法。
本页是否有帮助?
感谢您的反馈