forked from FR-Global/plugin-event-manager
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
3.0 KiB
79 lines
3.0 KiB
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.CellWidgetPropertyPane; |
|
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) { |
|
final JWorkBook jwb = getEditingComponent(); |
|
if (jwb == null) { |
|
FineJOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Plugin_Event_Manager_Alert_No_Target"), |
|
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Alert"), JOptionPane.ERROR_MESSAGE); |
|
return; |
|
} |
|
final TemplateWorkBook workBook = jwb.getTarget(); |
|
final EventManagerPane eventManagerPane = initEventManagerPane(workBook); |
|
UIDialog dialog = new EventManagerDialog(DesignerContext.getDesignerFrame(), eventManagerPane); |
|
|
|
dialog.addWindowListener(new WindowAdapter() { |
|
@Override |
|
public void windowClosed(WindowEvent e) { |
|
eventManagerPane.update(); |
|
// 触发正在编辑的模板改变事件 |
|
DesignModelAdapter.getCurrentModelAdapter().fireTargetModified(); |
|
// 刷新一下右侧面板,避免事件显示不同步 |
|
jwb.refreshEastPropertiesPane(); |
|
super.windowClosed(e); |
|
} |
|
}); |
|
dialog.setVisible(true); |
|
} |
|
|
|
/** |
|
* 初始化事件管理器面板,返回tab pane |
|
* @param workBook 当前表单对象 |
|
* @return |
|
*/ |
|
private EventManagerPane initEventManagerPane(TemplateWorkBook workBook) { |
|
WorkbookEventManagerPane eventManagerPane = new WorkbookEventManagerPane(); |
|
eventManagerPane.setTarget(workBook); |
|
return eventManagerPane; |
|
} |
|
|
|
}
|
|
|