⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 barfactory.java

📁 jawe的最新版本,基于Java的图形化工作流编辑器。图形化工作流编辑器 。使用JAVA语言开发
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
      String[] act = Utils.tokenize(actionOrder, ACTION_DELIMITER);      for (int i = 0; i < act.length; i++) {         if (act[i].equals(ACTION_SEPARATOR)) {            menu.addSeparator();         } else if (act[i].startsWith(JAWECOMPONENT_AS_MENU_PREFIX)) {            String className = (String) comp.getSettings()               .getSetting(act[i].substring(1) + CLASSNAME_POSTFIX);            String settingsName = (String) comp.getSettings()               .getSetting(act[i].substring(1) + SETTINGSNAME_POSTFIX);            JMenu subMenu = getExternalMenu(className, settingsName);            BarFactory.setAccelerator(subMenu, comp.getSettings()               .getLanguageDependentString(act[i].substring(1) + ACCELERATION_POSTFIX));            BarFactory.setMnemonic(subMenu, comp.getSettings()               .getLanguageDependentString(act[i].substring(1) + MNEMONIC_POSTFIX));            menu.add(subMenu);         } else if (act[i].startsWith(JAWE_STANDARD_MENU_PREFIX)) {            menu.add(JaWEManager.getInstance()               .getJaWEController()               .getJaWEActions()               .getActionMenu(act[i], addBCListener));         } else if (act[i].startsWith(JAWE_STANDARD_ACTION_PREFIX)) {            menu.add(JaWEManager.getInstance()               .getJaWEController()               .getJaWEActions()               .getActionMenuItem(act[i].substring(11), addBCListener));         } else if (act[i].startsWith(SUBMENU_PREFIX)) {            menu.add(createSubMenu(act[i].substring(1), comp, addBCListener));         } else {            JaWEAction ja = comp.getSettings().getAction(act[i]);            if (ja != null) {               menu.add(createMenuItem(ja, comp, addBCListener));            }         }      }      return menu;   }   protected static JMenu createSubMenu(String name,                                        JaWEComponent comp,                                        boolean addBCListener) {      JMenu menu = new JMenu();      String depName = (String) comp.getSettings()         .getSetting(name + LANGUAGEDEPENDENTNAME_POSTFIX);      String langDepName = comp.getSettings().getLanguageDependentString(depName                                                                         + LABEL_POSTFIX);      if (langDepName == null) {         langDepName = name;      }      BarFactory.setAccelerator(menu, comp.getSettings()         .getLanguageDependentString(depName + ACCELERATION_POSTFIX));      BarFactory.setMnemonic(menu, comp.getSettings()         .getLanguageDependentString(depName + MNEMONIC_POSTFIX));      menu.setText(langDepName);      String actionOrder = comp.getSettings().getMenuActionOrder(name);      String[] act = Utils.tokenize(actionOrder, ACTION_DELIMITER);      int cnt=0;      for (int i = 0; i < act.length; i++) {         if (act[i].equals(ACTION_SEPARATOR)) {            menu.addSeparator();            cnt++;         } else if (act[i].startsWith(JAWECOMPONENT_AS_MENU_PREFIX)) {            String className = (String) comp.getSettings()               .getSetting(act[i].substring(1) + CLASSNAME_POSTFIX);            String settingsName = (String) comp.getSettings()               .getSetting(act[i].substring(1) + SETTINGSNAME_POSTFIX);            JMenu subMenu = getExternalMenu(className, settingsName);            if (subMenu != null) {               BarFactory.setAccelerator(subMenu, comp.getSettings()                  .getLanguageDependentString(act[i].substring(1) + ACCELERATION_POSTFIX));               BarFactory.setMnemonic(subMenu, comp.getSettings()                  .getLanguageDependentString(act[i].substring(1) + MNEMONIC_POSTFIX));               menu.add(subMenu);               cnt++;            } else {               System.out.println("Can't create ext meny "                                  + settingsName + " for cn " + className);                           }         } else if (act[i].startsWith(JAWE_STANDARD_MENU_PREFIX)) {            menu.add(JaWEManager.getInstance()               .getJaWEController()               .getJaWEActions()               .getActionMenu(act[i], addBCListener));            cnt++;         } else if (act[i].startsWith(JAWE_STANDARD_ACTION_PREFIX)) {            menu.add(JaWEManager.getInstance()               .getJaWEController()               .getJaWEActions()               .getActionMenuItem(act[i].substring(11), addBCListener));            cnt++;         } else if (act[i].startsWith(SUBMENU_PREFIX)) {            JMenu sm=createSubMenu(act[i], comp, addBCListener);            if (sm!=null) {               menu.add(sm);               cnt++;            }         } else {            JaWEAction ja = comp.getSettings().getAction(act[i]);            if (ja != null) {               menu.add(createMenuItem(ja, comp, addBCListener));               cnt++;            }         }      }      if (cnt>0) {         return menu;      }      return null;   }   protected static JMenu getExternalMenu(String className, String settingsClassName) {      try {         Constructor sc = Class.forName(settingsClassName).getConstructor(new Class[] {});         JaWEComponentSettings settings = (JaWEComponentSettings) sc.newInstance(new Object[0]);         Constructor c = Class.forName(className).getConstructor(new Class[] {            JaWEComponentSettings.class         });         JaWEComponent jc = (JaWEComponent) c.newInstance(new Object[] {            settings         });         return (JMenu) (jc.getView());      } catch (Throwable thr) {      }      return null;   }   public static JMenuItem createMenuItem(JaWEAction ja,                                          JaWEComponent comp,                                          boolean addBCListener) {      Action a = ja.getAction();      String aname = null;      if (a != null) {         aname = (String) a.getValue(Action.NAME);      }      String depName = ja.getLangDepName();      if (aname == null) {         aname = depName;      }      if (depName == null) {         depName = aname;      }      String label = comp.getSettings().getLanguageDependentString(depName                                                                   + LABEL_POSTFIX);      if (label == null) {         label = aname;      }      JMenuItem mi = new JMenuItem(label);      mi.setName(aname);      ImageIcon ai = ja.getIcon();      if (ai != null) {         mi.setHorizontalTextPosition(SwingConstants.RIGHT);         mi.setIcon(ai);      }      BarFactory.setAccelerator(mi, comp.getSettings()         .getLanguageDependentString(depName + ACCELERATION_POSTFIX));      BarFactory.setMnemonic(mi, comp.getSettings()         .getLanguageDependentString(depName + MNEMONIC_POSTFIX));      mi.setActionCommand(aname);      if (a != null) {         mi.addActionListener(a);         if (addBCListener) {            a.addPropertyChangeListener(new ButtonPropertyChangedListener(mi));         }         mi.setEnabled(a.isEnabled());      } else {         mi.setEnabled(false);      }      return mi;   }   public static void setMnemonic(JMenuItem mi, String mnemonic) {      if (mnemonic != null && mnemonic.length() > 0) {         mi.setMnemonic(mnemonic.toCharArray()[0]);      }   }   public static void setAccelerator(JMenuItem mi, String accel) {      if (accel != null) {         try {            int mask = 0;            if (accel.startsWith(CTRL_PREFIX)) {               mask += ActionEvent.CTRL_MASK;               accel = accel.substring(CTRL_PREFIX.length() + 1);            }            if (accel.startsWith(SHIFT_PREFIX)) {               mask += ActionEvent.SHIFT_MASK;               accel = accel.substring(SHIFT_PREFIX.length() + 1);            }            if (accel.startsWith(ALT_PREFIX)) {               mask += ActionEvent.ALT_MASK;               accel = accel.substring(ALT_PREFIX.length() + 1);            }            int key = KeyEvent.class.getField("VK_" + accel).getInt(null);            mi.setAccelerator(KeyStroke.getKeyStroke(key, mask));         } catch (Exception e) {            System.err.println("Error while assigning accelerator !!!");         }      }   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -