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 + -
显示快捷键?