package com.fr.plugin.event.manager.core; import com.fr.base.BaseUtils; import com.fr.design.DesignModelAdapter; import com.fr.design.actions.JWorkBookAction; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.dialog.UIDialog; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.JWorkBook; import com.fr.main.TemplateWorkBook; import com.fr.plugin.event.manager.ui.EventManagerDialog; import com.fr.plugin.event.manager.ui.EventManagerPane; import com.fr.plugin.event.manager.ui.WorkbookEventManagerPane; import com.fr.plugin.event.manager.utils.KeySetUtils; import com.fr.plugin.transform.ExecuteFunctionRecord; import com.fr.plugin.transform.FunctionRecorder; import javax.swing.JOptionPane; import java.awt.event.ActionEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; /** * @author Joe * Created by Joe on 9/3/2020 */ @FunctionRecorder public class WorkbookEventManager extends JWorkBookAction { public WorkbookEventManager(JWorkBook jwb) { super(jwb); this.setMenuKeySet(KeySetUtils.EVENT_MANAGER); this.setName(getMenuKeySet().getMenuKeySetName() + "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); this.setSmallIcon(BaseUtils.readIcon("/com/fr/plugin/event/manager/images/icon_event_manager.png")); } @Override @ExecuteFunctionRecord public void actionPerformed(ActionEvent e) { JWorkBook jwb = getEditingComponent(); if (jwb == null) { FineJOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), "无法获取模板对象!", com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Alert"), JOptionPane.ERROR_MESSAGE); return; } final TemplateWorkBook workBook = jwb.getTarget(); final EventManagerPane eventManagerPane = initEventManager(workBook); UIDialog dialog = new EventManagerDialog(DesignerContext.getDesignerFrame(), eventManagerPane); dialog.addWindowListener(new WindowAdapter() { @Override public void windowClosed(WindowEvent e) { eventManagerPane.update(); // 触发正在编辑的模板改变事件 DesignModelAdapter.getCurrentModelAdapter().fireTargetModified(); super.windowClosed(e); } }); dialog.setVisible(true); } /** * workbook返回tabPane * * @param workBook * @return */ private EventManagerPane initEventManager(TemplateWorkBook workBook) { WorkbookEventManagerPane eventManagerPane = new WorkbookEventManagerPane(); eventManagerPane.setTarget(workBook); return eventManagerPane; } }