popupmenufactory.java
来自「全面实现ilog地功能,没有使用第三方lib.」· Java 代码 · 共 126 行
JAVA
126 行
/* * This source code is part of TWaver 1.3.1 * * SERVA Software PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * Copyright 2000-2005 SERVA Software, Inc. All rights reserved. */package demo.table;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.lang.reflect.Method;
import java.util.List;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import demo.TPopupMenu;
import twaver.TWaverUtil;
import twaver.table.TTable;
import twaver.table.TTableColumn;
import twaver.table.TTableModel;
import twaver.table.TTablePopupMenuFactory;
public class PopupMenuFactory {
final static String text = "TWaver" + TWaverUtil.getVersionString();
public static void initTablePopupMenu(TTable table){
initTableHeadPopupMenu(table);
initTableBodyPopupMenu(table);
}
// init table head popupMenu
private static void initTableHeadPopupMenu(final TTable table){
table.setTableHeadPopupMenuFactory(new TTablePopupMenuFactory(){
public JPopupMenu getPopupMenu(TTable table, MouseEvent e) {
JPopupMenu popupMenu = new TPopupMenu(text, Color.WHITE, Color.BLACK, 20);
final List columnList = table.getTableModel().getRawColumn();
for(int i=0; i<columnList.size(); i++){
final TTableColumn column = (TTableColumn)columnList.get(i);
final JCheckBoxMenuItem item = new JCheckBoxMenuItem(column.getDisplayName(), column.isVisible());
popupMenu.add(item);
item.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
column.setVisible(item.isSelected());
}
});
if(i == 1){
popupMenu.addSeparator();
}
}
popupMenu.addSeparator();
JMenuItem item = new JMenuItem(TWaverUtil.getString("table.column.visibleAll"));
popupMenu.add(item);
item.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
for(int i=0; i<columnList.size(); i++){
TTableColumn column = (TTableColumn)columnList.get(i);
column.setVisible(true);
}
}
});
item = new JMenuItem(TWaverUtil.getString("table.column.hideAll"));
popupMenu.add(item);
item.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
for(int i=0; i<columnList.size(); i++){
TTableColumn column = (TTableColumn)columnList.get(i);
column.setVisible(false);
}
}
});
return popupMenu;
}
});
}
// init table body popupMenu
private static void initTableBodyPopupMenu(TTable table){
JPopupMenu popupMenu = new TPopupMenu(text, Color.WHITE, Color.RED, Color.BLUE, 20);
createJMenuItem(popupMenu, table.getTableModel(), "removeCheckedRows");
createJMenuItem(popupMenu, table.getTableModel(), "removeSelectedRows");
popupMenu.addSeparator();
createJMenuItem(popupMenu, table.getTableModel(), "clearRawData");
createJMenuItem(popupMenu, table.getTableModel(), "clearPublishedData");
popupMenu.addSeparator();
createJMenuItem(popupMenu, table.getTableModel(), "uncheckPublishedRows");
createJMenuItem(popupMenu, table.getTableModel(), "uncheckCurrentPageRows");
popupMenu.addSeparator();
createJMenuItem(popupMenu, table.getTableModel(), "checkSelectedRows");
createJMenuItem(popupMenu, table.getTableModel(), "checkCurrentPageRows");
createJMenuItem(popupMenu, table.getTableModel(), "checkPublishedRows");
table.setDefaultTableBodyPopupMenu(popupMenu);
}
private static JMenuItem createJMenuItem(JPopupMenu popupMenu, final TTableModel tableModel, final String methodName){
JMenuItem item = new JMenuItem(TWaverUtil.getString("table." + methodName));
item.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
try {
// unlock table model
if(tableModel.isLocked()){
tableModel.unlock();
}
// invoke method
Method method = TTableModel.class.getMethod(methodName, null);
method.invoke(tableModel, null);
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
popupMenu.add(item);
return item;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?