package com.fanruan.api.design.work.compat; import com.fanruan.api.design.ui.component.UIButton; import com.fanruan.api.design.ui.component.UILockButton; import com.fr.base.svg.IconUtils; import com.fr.design.editlock.ConnectionLockChangeChecker; import com.fr.design.editlock.EditLockUtils; import com.fr.report.LockItem; import java.awt.*; import java.awt.event.ActionListener; /** * @author richie * @version 10.0 * Created by richie on 2021/3/18 * 用于兼容没有数据连接lock的版本 */ public class ConnectionLockHelper { public static UIButton generateLockButton(Dimension buttonSize, ActionListener listener) { UILockButton editButton = new UILockButton( EditLockUtils.CONNECTION_LOCKED_ICON, IconUtils.readIcon("/com/fr/design/images/m_web/connection"), EditLockUtils.CONNECTION_LOCKED_TOOLTIPS, null ); editButton.setPreferredSize(buttonSize); editButton.addActionListener(listener); ConnectionLockChangeChecker.getInstance().addEditLockChangeListener(editButton); return editButton; } public static boolean doLock(Component component) { // 尝试为数据连接加锁 boolean actionLock = EditLockUtils.lock(LockItem.CONNECTION); if (!actionLock) { // 锁定失败,代表已经被其他用户锁定,跳出弹窗提示 EditLockUtils.showLockMessage(component); return true; } return false; } public static void unlock() { // 关闭定义数据连接页面,为其解锁 EditLockUtils.unlock(LockItem.CONNECTION); } }