recentfilesmenu.java
来自「jawe的最新版本,基于Java的图形化工作流编辑器。图形化工作流编辑器 。使用」· Java 代码 · 共 109 行
JAVA
109 行
/** * Miroslav Popov, Aug 5, 2005 */package org.enhydra.jawe.base.recentfiles;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.FileOutputStream;import java.util.StringTokenizer;import javax.swing.JComponent;import javax.swing.JMenu;import javax.swing.JMenuItem;import org.enhydra.jawe.BarFactory;import org.enhydra.jawe.JaWEComponent;import org.enhydra.jawe.JaWEComponentView;import org.enhydra.jawe.JaWEConstants;import org.enhydra.jawe.JaWEManager;import org.enhydra.shark.xpdl.XMLUtil;/** * @author Miroslav Popov * */public class RecentFilesMenu extends JMenu implements JaWEComponentView, ActionListener { public static final String RFL_FILENAME = "/.rfl"; public void configure () { } protected RecentFilesManager controller; public RecentFilesMenu (RecentFilesManager controller) { this.controller=controller; } public void init () { setText(controller.getSettings().getLanguageDependentString(controller.getName() + BarFactory.LABEL_POSTFIX)); String rfl = XMLUtil.fileToString(JaWEConstants.JAWE_USER_HOME + RFL_FILENAME); if (rfl != null) { for (StringTokenizer st = new StringTokenizer(rfl, "\n"); st.hasMoreTokens();) { addToRecentFiles( st.nextToken()); } } } public void addToRecentFiles(String filename) { if (filename==null) return; JMenuItem mItem; for (int i = 0; i < getItemCount(); ++i) { mItem = (JMenuItem) getMenuComponent(i); if (filename.equals(mItem.getText().substring(2))) { remove(i); } } int recentFileListSize = 10; if (getItemCount() == recentFileListSize) { remove(recentFileListSize - 1); } mItem = new JMenuItem("1 " + filename); mItem.addActionListener(this); insert(mItem, 0); // changing mnemonics to correspond to the ordinal number of items for (int i = 0; i < getItemCount(); ++i) { mItem = (JMenuItem) getMenuComponent(i); String oldText = mItem.getText(); String ordNo = String.valueOf(i + 1); String mnemonic = ordNo.substring(ordNo.length() - 1, ordNo.length()); mItem.setText(mnemonic + " " + oldText.substring(2)); BarFactory.setMnemonic(mItem, mnemonic); } } public void saveRecentFiles() { try { String fileList = ""; for (int i = getItemCount(); i > 0;) { JMenuItem mItem = (JMenuItem) getMenuComponent(--i); fileList += mItem.getText().substring(2); if (i > 0) fileList += "\n"; } FileOutputStream fos = new FileOutputStream(JaWEConstants.JAWE_USER_HOME + RFL_FILENAME); fos.write(fileList.getBytes(JaWEManager.getInstance().getJaWEController().getControllerSettings().getEncoding())); // Write to file fos.flush(); fos.close(); } catch (Exception ex) { } } public void actionPerformed(ActionEvent ae) { String filename = ae.getActionCommand().substring(2); if (JaWEManager.getInstance().getJaWEController().tryToClosePackage(null, false)) { JaWEManager.getInstance().getJaWEController().openPackageFromFile(filename); } } public JaWEComponent getJaWEComponent () { return controller; } public JComponent getDisplay () { return this; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?