From 92af60d32f97a6088324b21cee088496637dc045 Mon Sep 17 00:00:00 2001 From: neil <459208047@qq.com> Date: Mon, 11 Jun 2018 11:32:34 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-8515=20=E5=90=AF=E5=8A=A8=E9=80=9F?= =?UTF-8?q?=E5=BA=A6=E4=BC=98=E5=8C=96,=20=E8=B5=84=E6=BA=90=E9=A2=84?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/gui/imenu/UIBasicMenuItemUI.java | 53 ++- .../DesignerFrameFileDealerPane.java | 62 ++- .../src/com/fr/start/BaseDesigner.java | 24 +- .../alphafine/component/AlphaFinePane.java | 10 +- .../src/com/fr/start/Designer.java | 46 +- .../src/com/fr/start/ImagePreLoader.java | 406 ++++++++++++++++++ 6 files changed, 551 insertions(+), 50 deletions(-) create mode 100644 designer-realize/src/com/fr/start/ImagePreLoader.java diff --git a/designer-base/src/com/fr/design/gui/imenu/UIBasicMenuItemUI.java b/designer-base/src/com/fr/design/gui/imenu/UIBasicMenuItemUI.java index d8cce02344..8dcb2d806b 100644 --- a/designer-base/src/com/fr/design/gui/imenu/UIBasicMenuItemUI.java +++ b/designer-base/src/com/fr/design/gui/imenu/UIBasicMenuItemUI.java @@ -4,20 +4,49 @@ package com.fr.design.gui.imenu; -import com.fr.general.ComparatorUtils; import com.fr.design.utils.ColorRoutines; import com.fr.design.utils.ThemeUtils; +import com.fr.general.ComparatorUtils; -import javax.swing.*; +import javax.swing.AbstractAction; +import javax.swing.ActionMap; +import javax.swing.ButtonModel; +import javax.swing.Icon; +import javax.swing.InputMap; +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JComponent; +import javax.swing.JMenu; +import javax.swing.JMenuItem; +import javax.swing.JRadioButtonMenuItem; +import javax.swing.KeyStroke; +import javax.swing.LookAndFeel; +import javax.swing.MenuElement; +import javax.swing.MenuSelectionManager; +import javax.swing.SwingUtilities; +import javax.swing.UIManager; import javax.swing.event.MenuDragMouseEvent; import javax.swing.event.MenuDragMouseListener; import javax.swing.event.MenuKeyListener; import javax.swing.event.MouseInputListener; -import javax.swing.plaf.*; +import javax.swing.plaf.ActionMapUIResource; +import javax.swing.plaf.ColorUIResource; +import javax.swing.plaf.ComponentInputMapUIResource; +import javax.swing.plaf.ComponentUI; +import javax.swing.plaf.MenuItemUI; +import javax.swing.plaf.UIResource; import javax.swing.plaf.basic.BasicGraphicsUtils; import javax.swing.plaf.basic.BasicHTML; import javax.swing.text.View; -import java.awt.*; +import java.awt.Color; +import java.awt.Component; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.Graphics; +import java.awt.Insets; +import java.awt.Point; +import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; @@ -588,7 +617,7 @@ public class UIBasicMenuItemUI extends MenuItemUI { } protected void installDefaults() { - String prefix = getPropertyPrefix(); + final String prefix = getPropertyPrefix(); acceleratorFont = UIManager.getFont("MenuItem.acceleratorFont"); @@ -600,7 +629,7 @@ public class UIBasicMenuItemUI extends MenuItemUI { LookAndFeel.installBorder(menuItem, prefix + ".border"); oldBorderPainted = menuItem.isBorderPainted(); menuItem.setBorderPainted(((Boolean) (UIManager.get(prefix + ".borderPainted"))).booleanValue()); - LookAndFeel.installColorsAndFont(menuItem, prefix + ".background", prefix + ".foreground", prefix + ".font"); + installFont(prefix); // MenuItem specific defaults if (selectionBackground == null || selectionBackground instanceof UIResource) { @@ -637,6 +666,18 @@ public class UIBasicMenuItemUI extends MenuItemUI { defaultIconGap = DEFAULT_ICON_GAP; // Should be from table } + private void installFont(final String prefix) { + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + LookAndFeel.installColorsAndFont(menuItem, prefix + ".background", prefix + ".foreground", prefix + ".font"); + } + }); + thread.setName("UIBasicMenuItemUI"); + thread.setDaemon(true); + thread.start(); + } + protected Dimension getPreferredMenuItemSize(JComponent c, Icon checkIcon, Icon arrowIcon, int defaultTextIconGap) { JMenuItem b = (JMenuItem) c; diff --git a/designer-base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java b/designer-base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java index af03db3fe1..6755965bbb 100644 --- a/designer-base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java +++ b/designer-base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java @@ -10,7 +10,11 @@ import com.fr.design.constants.UIConstants; import com.fr.design.data.DesignTableDataManager; import com.fr.design.data.datapane.TableDataTreePane; import com.fr.design.data.tabledata.ResponseDataSourceChange; -import com.fr.design.file.*; +import com.fr.design.file.FileOperations; +import com.fr.design.file.FileToolbarStateChangeListener; +import com.fr.design.file.HistoryTemplateListPane; +import com.fr.design.file.MutilTempalteTabPane; +import com.fr.design.file.TemplateTreePane; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.imenu.UIMenuHighLight; @@ -33,15 +37,23 @@ import com.fr.stable.CoreConstants; import com.fr.stable.StableUtils; import com.fr.stable.project.ProjectConstants; -import javax.swing.*; +import javax.swing.BorderFactory; +import javax.swing.Box; +import javax.swing.BoxLayout; +import javax.swing.JDialog; +import javax.swing.JPanel; +import javax.swing.SwingConstants; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.CardLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; -import java.io.File; import java.util.HashMap; import java.util.Map; import java.util.Set; @@ -129,9 +141,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt public void refreshDockingView() { ToolBarDef toolbarDef = new ToolBarDef(); toolbarDef.addShortCut(openReportAction, refreshTreeAction); - if (FRContext.getCurrentEnv().isSupportLocalFileOperate()) { - toolbarDef.addShortCut(openFolderAction, renameAction); - } + toolbarDef.addShortCut(openFolderAction, renameAction); toolbarDef.addShortCut(delFileAction); Set extraShortCuts = ExtraDesignClassManager.getInstance().getExtraShortCuts(); for (ShortCut shortCut : extraShortCuts){ @@ -256,37 +266,19 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt public void stateChange() { //当前环境为远程环境时 if (FRContext.getCurrentEnv() != null) { - if (!FRContext.getCurrentEnv().isSupportLocalFileOperate()) { - if (selectedOperation.getSelectedTemplatePath() != null) { - openReportAction.setEnabled(true); - } else { - openReportAction.setEnabled(false); - } - FileNode node = TemplateTreePane.getInstance().getTemplateFileTree().getSelectedFileNode(); - if (selectedOperation.getSelectedTemplatePath() != null){ - if (node.getLock() != null && !ComparatorUtils.equals(node.getUserID(),node.getLock())){ - delFileAction.setEnabled(false); - } else { - delFileAction.setEnabled(true); - } - } else { - delFileAction.setEnabled(false); - } + //当前环境为本地环境时 + if (selectedOperation.getSelectedTemplatePath() != null) { + openReportAction.setEnabled(true); + renameAction.setEnabled(true); + delFileAction.setEnabled(true); } else { - //当前环境为本地环境时 - if (selectedOperation.getSelectedTemplatePath() != null) { - openReportAction.setEnabled(true); - renameAction.setEnabled(true); - delFileAction.setEnabled(true); - } else { - openReportAction.setEnabled(false); - renameAction.setEnabled(false); - delFileAction.setEnabled(false); - } - openFolderAction.setEnabled(containsFolderNums() + seletedTemplateNums() != 0); + openReportAction.setEnabled(false); + renameAction.setEnabled(false); + delFileAction.setEnabled(false); } - refreshTreeAction.setEnabled(true); + openFolderAction.setEnabled(containsFolderNums() + seletedTemplateNums() != 0); } + refreshTreeAction.setEnabled(true); if (containsFolderNums() > 0 && (containsFolderNums() + seletedTemplateNums() > 1)) { refreshActions(); } else if (containsFolderNums() == 0 && seletedTemplateNums() > 1) { diff --git a/designer-base/src/com/fr/start/BaseDesigner.java b/designer-base/src/com/fr/start/BaseDesigner.java index 6648d9c7a6..3c5ede5e32 100644 --- a/designer-base/src/com/fr/start/BaseDesigner.java +++ b/designer-base/src/com/fr/start/BaseDesigner.java @@ -11,6 +11,7 @@ import com.fr.design.file.TemplateTreePane; import com.fr.design.fun.DesignerStartOpenFileProcessor; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerFrame; +import com.fr.design.mainframe.loghandler.LogMessageBar; import com.fr.design.mainframe.toolbar.ToolBarMenuDock; import com.fr.design.utils.DesignUtils; import com.fr.event.EventDispatcher; @@ -48,12 +49,32 @@ public abstract class BaseDesigner extends ToolBarMenuDock { EventDispatcher.fire(ModuleEvent.MajorModuleStarting, InterProviderFactory.getProvider().getLocText("FR-Designer_Initializing")); // 初始化look and feel.这个在预加载之前执行是因为lookAndFeel里的东西,预加载时也要用到 DesignUtils.initLookAndFeel(); - + // 预加载一些耗时的单例面板 + preLoadPane(); + // 初始化Log Handler DesignerEnvManager.loadLogSetting(); createDesignerFrame(); } + private void preLoadPane() { + ExecutorService service = Executors.newCachedThreadPool(); + service.submit(new Runnable() { + @Override + public void run() { + LogMessageBar.getInstance(); + } + }); + + service.submit(new Runnable() { + @Override + public void run() { + HistoryTemplateListPane.getInstance(); + } + }); + service.shutdown(); + } + public void show(final String[] args) { ExecutorService executorService = Executors.newSingleThreadExecutor(); executorService.submit(new Runnable() { @@ -61,6 +82,7 @@ public abstract class BaseDesigner extends ToolBarMenuDock { public void run() { collectUserInformation(); showDesignerFrame(args, DesignerContext.getDesignerFrame(), false); + DesignerContext.getDesignerFrame().refreshEnv(); for (int i = 0; !TemplateTreePane.getInstance().getTemplateFileTree().isTemplateShowing() && i < LOAD_TREE_MAXNUM; i++) { TemplateTreePane.getInstance().getTemplateFileTree().refresh(); } diff --git a/designer-realize/src/com/fr/design/mainframe/alphafine/component/AlphaFinePane.java b/designer-realize/src/com/fr/design/mainframe/alphafine/component/AlphaFinePane.java index 86ddc8b40c..fee8f69b85 100644 --- a/designer-realize/src/com/fr/design/mainframe/alphafine/component/AlphaFinePane.java +++ b/designer-realize/src/com/fr/design/mainframe/alphafine/component/AlphaFinePane.java @@ -1,16 +1,18 @@ package com.fr.design.mainframe.alphafine.component; -import com.bulenkov.iconloader.IconLoader; import com.fr.design.actions.help.alphafine.AlphaFineContext; import com.fr.design.actions.help.alphafine.AlphaFineListener; import com.fr.design.constants.UIConstants; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.mainframe.alphafine.AlphaFineHelper; -import com.fr.design.utils.ThemeUtils; +import com.fr.general.IOUtils; import com.fr.general.Inter; -import java.awt.*; +import java.awt.AWTEvent; +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -28,7 +30,7 @@ public class AlphaFinePane extends BasicPane { setPreferredSize(new Dimension(24, 24)); setLayout(new BorderLayout()); UIButton refreshButton = new UIButton(); - refreshButton.setIcon(IconLoader.getIcon("/com/fr/design/mainframe/alphafine/images/smallsearch.png")); + refreshButton.setIcon(IOUtils.readIcon(("/com/fr/design/mainframe/alphafine/images/smallsearch.png"))); refreshButton.setToolTipText(Inter.getLocText("FR-Designer_AlphaFine")); refreshButton.set4ToolbarButton(); refreshButton.setRolloverEnabled(false); diff --git a/designer-realize/src/com/fr/start/Designer.java b/designer-realize/src/com/fr/start/Designer.java index a890bc73c4..c877876b8a 100644 --- a/designer-realize/src/com/fr/start/Designer.java +++ b/designer-realize/src/com/fr/start/Designer.java @@ -30,6 +30,7 @@ import com.fr.design.mainframe.JWorkBook; import com.fr.design.mainframe.alphafine.component.AlphaFinePane; import com.fr.design.mainframe.bbs.UserInfoLabel; import com.fr.design.mainframe.bbs.UserInfoPane; +import com.fr.design.mainframe.templateinfo.TemplateInfoCollector; import com.fr.design.mainframe.toolbar.ToolBarMenuDockPlus; import com.fr.design.menu.KeySetUtils; import com.fr.design.menu.MenuDef; @@ -41,6 +42,7 @@ import com.fr.design.utils.concurrent.ThreadFactoryBuilder; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; +import com.fr.general.SiteCenter; import com.fr.module.Module; import com.fr.module.ModuleContext; import com.fr.stable.BuildContext; @@ -52,16 +54,22 @@ import com.fr.stable.xml.XMLTools; import com.fr.start.fx.SplashFx; import com.fr.start.jni.SplashMac; import com.fr.start.module.StartupArgs; -import com.fr.start.server.FineEmbedServer; import com.fr.start.server.ServerTray; -import javax.swing.*; +import javax.swing.JComponent; +import javax.swing.JPanel; import javax.swing.border.MatteBorder; -import java.awt.*; +import java.awt.Component; +import java.awt.Cursor; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.util.ArrayList; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; @@ -87,7 +95,7 @@ public class Designer extends BaseDesigner { * @param args 参数 */ public static void main(String[] args) { - + preloadResource(); BuildContext.setBuildFilePath("/com/fr/stable/build.properties"); SplashContext.getInstance().registerSplash(createSplash()); SplashContext.getInstance().show(); @@ -102,6 +110,33 @@ public class Designer extends BaseDesigner { } + private static void preloadResource() { + ExecutorService service = Executors.newCachedThreadPool(); + + service.submit(new Runnable() { + @Override + public void run() { + SiteCenter.getInstance(); + Cursor cursor = UIConstants.CELL_DEFAULT_CURSOR; + } + }); + + service.submit(new Runnable() { + @Override + public void run() { + new ImagePreLoader(); + } + }); + + service.submit(new Runnable() { + @Override + public void run() { + TemplateInfoCollector.getInstance(); + } + }); + service.shutdown(); + } + private static SplashStrategy createSplash() { // 这里可以开接口加载自定义启动画面 if (OperatingSystem.isWindows()) { @@ -498,6 +533,9 @@ public class Designer extends BaseDesigner { collector.collectStopTime(); collector.saveXMLFile(); Env currentEnv = FRContext.getCurrentEnv(); + if (currentEnv == null) { + return; + } currentEnv.doWhenServerShutDown(); } diff --git a/designer-realize/src/com/fr/start/ImagePreLoader.java b/designer-realize/src/com/fr/start/ImagePreLoader.java new file mode 100644 index 0000000000..7d020d2f70 --- /dev/null +++ b/designer-realize/src/com/fr/start/ImagePreLoader.java @@ -0,0 +1,406 @@ +package com.fr.start; + +import com.fr.general.IOUtils; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +/** + * 在设计器框架加载之前, 先用多个线程把相关的资源文件全部load到缓存中. + */ +public class ImagePreLoader { + + public static final int THRESHOLD = 50; + + public ImagePreLoader() { + ExecutorService service = Executors.newCachedThreadPool(); + + int len = preLoadImages.length; + int start = 0; + for (int i = 0; i < len; i++) { + if (i != 0 && i % THRESHOLD == 0) { + loadImage(start,i, service); + start = i; + } + if (len - i < THRESHOLD) { + loadImage(start, len, service); + break; + } + + } + service.shutdown(); + } + + private void loadImage(final int start, final int end, ExecutorService service) { + service.submit(new Runnable() { + @Override + public void run() { + for (int i = start; i < end; i++) { + IOUtils.readImageWithCache(preLoadImages[i]); + } + } + }); + } + + + private String[] preLoadImages = { + "com/fr/design/images/m_file/formExport.png", + "com/fr/base/images/oem/cpt.png", + "com/fr/design/images/data/store_procedure.png", + "/com/fr/design/images/m_file/preview.png", + "com/fr/base/images/cell/blank.gif", + "com/fr/design/images/data/dock/serverdatabase.png", + "/com/fr/design/images/data/dock/serverclasstabledata.png", + "/com/fr/design/images/data/dock/serverdatatable.png", + "/com/fr/design/images/data/file.png", + "/com/fr/design/images/data/tree.png", + "/com/fr/design/images/buttonicon/minus.png", + "/com/fr/design/images/buttonicon/plus.png", + "/com/fr/design/images/data/multi.png", + "/com/fr/design/images/data/store_procedure.png", + "com/fr/design/images/buttonicon/arrowdown.png", + "com/fr/design/images/buttonicon/arrowup.png", + "com/fr/design/images/buttonicon/yes.png", + "com/fr/design/images/buttonicon/select_item.png", + "com/fr/design/images/buttonicon/prewidget.png", + "com/fr/design/images/buttonicon/editn.png", + "com/fr/design/images/buttonicon/editp.png", + "com/fr/design/images/buttonicon/hiden.png", + "com/fr/design/images/buttonicon/hidep.png", + "com/fr/design/images/buttonicon/viewn.png", + "com/fr/design/images/buttonicon/viewp.png", + "com/fr/design/images/buttonicon/run24.png", + "com/fr/design/images/buttonicon/runs.png", + "com/fr/design/mainframe/alphafine/images/smallsearch.png", + "com/fr/design/images/buttonicon/pageb24.png", + "com/fr/design/images/buttonicon/writeb24.png", + "com/fr/design/images/buttonicon/anab24.png", + "com/fr/design/images/buttonicon/pages.png", + "com/fr/design/images/buttonicon/writes.png", + "com/fr/design/images/buttonicon/anas.png", + "com/fr/design/images/buttonicon/refresh.png", + "com/fr/design/images/gui/color/foreground.png", + "com/fr/design/images/buttonicon/history.png", + "com/fr/design/images/m_file/close.png", + "com/fr/design/images/m_file/edit.png", + "com/fr/design/images/data/search.png", + "com/fr/design/images/data/black_search.png", + "com/fr/design/images/data/source/delete.png", + "com/fr/design/images/control/edit.png", + "com/fr/design/images/control/edit_white.png", + "com/fr/design/images/buttonicon/prevew_down_icon.png", + "com/fr/design/images/m_report/close.png", + "com/fr/design/images/m_report/close_over.png", + "com/fr/design/images/m_report/close_press.png", + "com/fr/design/images/buttonicon/save.png", + "com/fr/design/images/buttonicon/undo.png", + "com/fr/design/images/buttonicon/redo.png", + "com/fr/design/images/buttonicon/additicon_grey.png", + "com/fr/design/images/buttonicon/addicon.png", + "com/fr/design/images/buttonicon/list_normal.png", + "com/fr/design/images/buttonicon/list_pressed.png", + "com/fr/design/images/buttonicon/close_icon.png", + "com/fr/design/images/buttonicon/mouseoverclose icon.png", + "com/fr/design/images/buttonicon/pressclose icon.png", + "com/fr/design/images/buttonicon/open.png", + "com/fr/design/images/m_file/view_folder.png", + "com/fr/design/images/data/source/rename.png", + "com/fr/design/images/buttonicon/minus.png", + "com/fr/design/images/buttonicon/plus.png", + "com/fr/design/images/data/database.png", + "com/fr/design/images/data/source/classTableData.png", + "com/fr/design/images/data/dataTable.png", + "com/fr/design/images/data/multi.png", + "com/fr/design/images/data/file.png", + "com/fr/design/images/data/tree.png", + "com/fr/design/images/control/tab/remove.png", + "com/fr/design/images/m_file/preview.png", + "com/fr/design/images/m_web/connection.png", + "com/fr/design/images/control/addPopup.png", + "com/fr/design/images/buttonicon/propertiestab/cellelement_normal.png", + "com/fr/design/images/buttonicon/propertiestab/cellattr_normal.png", + "com/fr/design/images/buttonicon/propertiestab/floatelement_normal.png", + "com/fr/design/images/buttonicon/propertiestab/widgetsettings_normal.png", + "com/fr/design/images/buttonicon/propertiestab/conditionattr_normal.png", + "com/fr/design/images/buttonicon/propertiestab/hyperlink_normal.png", + "com/fr/design/images/buttonicon/propertiestab/widgetlib_normal.png", + "com/fr/design/images/buttonicon/propertiestab/authorityedit_normal.png", + "com/fr/design/images/buttonicon/propertiestab/configuredroles_normal.png", + "com/fr/design/images/buttonicon/propertiestab/cellelement_selected.png", + "com/fr/design/images/log/selectedall.png", + "com/fr/design/images/m_edit/copy.png", + "com/fr/design/images/log/clear.png", + "com/fr/design/images/log/clear.png", + "com/fr/design/images/log/selectedall.png", + "com/fr/design/images/log/setting.png", + "com/fr/design/images/buttonicon/newcpts.png", + "com/fr/base/images/oem/logo.png", + "com/fr/design/images/data/bind/localconnect.png", + "com/fr/design/images/gui/tab_add_normal.png", + "com/fr/design/images/m_help/demo.png", + "com/fr/design/images/gui/tab_add_hover.png", + "com/fr/design/images/gui/tab_add_click.png", + "com/fr/design/images/gui/tab_delete.png", + "com/fr/design/images/bbs.png", + "com/fr/design/images/video.png", + "com/fr/design/images/help.png", + "com/fr/design/images/questions.png", + "com/fr/design/images/update.png", + "com/fr/design/images/need.png", + "com/fr/design/images/bug.png", + "com/fr/design/images/signature.png", + "com/fr/design/images/m_file/switch.png", + "com/fr/design/images/gui/blank.gif", + "com/fr/design/images/gui/folder.png", + "com/fr/design/images/gui/javaFile.gif", + "com/fr/design/images/gui/classFile.gif", + "com/fr/design/images/gui/jspFile.gif", + "com/fr/design/images/gui/jsFile.gif", + "com/fr/design/images/gui/xmlFile.gif", + "com/fr/design/images/gui/htmlFile.gif", + "com/fr/design/images/gui/jarFile.gif", + "com/fr/design/images/gui/gifFile.gif", + "com/fr/design/images/gui/jpgFile.gif", + "com/fr/design/images/gui/bmpFile.gif", + "com/fr/design/images/gui/cptFile.png", + "com/fr/design/images/gui/frm.png", + "com/fr/design/images/gui/cht.png", + "com/fr/design/images/chart/ChartType.png", + "com/fr/van/chart/map/images/mapData.png", + "com/fr/design/images/buttonicon/add.png", + "com/fr/base/images/cell/control/remove.png", + "com/fr/design/images/control/up.png", + "com/fr/design/images/control/down.png", + "com/fr/design/images/control/sortAsc.png", + "com/fr/design/images/m_insert/formula.png", + "com/fr/design/images/calender/year_reduce.png", + "com/fr/design/images/calender/year_reduce_hover.png", + "com/fr/design/images/calender/year_reduce_click.png", + "com/fr/design/images/calender/month_reduce.png", + "com/fr/design/images/calender/month_reduce_hover.png", + "com/fr/design/images/calender/month_reduce_click.png", + "com/fr/design/images/calender/month_add.png", + "com/fr/design/images/calender/month_add_hover.png", + "com/fr/design/images/calender/month_add_click.png", + "com/fr/design/images/calender/year_add.png", + "com/fr/design/images/calender/year_add_hover.png", + "com/fr/design/images/calender/year_add_click.png", + "com/fr/design/images/buttonicon/type_string.png", + "com/fr/base/images/cell/control/add.png", + "com/fr/design/images/expand/cellAttr.gif", + "com/fr/design/images/expand/none16x16.png", + "com/fr/design/images/expand/asc.png", + "com/fr/design/images/expand/des.png", + "com/fr/design/images/form/toolbar/pie.png", + "com/fr/design/images/buttonicon/widget/date_16.png", + "com/fr/design/images/buttonicon/widget/tree_16.png", + "com/fr/design/images/buttonicon/widget/comboboxtree.png", + "com/fr/design/images/buttonicon/widget/checkbox_group_16.png", + "com/fr/design/images/buttonicon/widget/button_group_16.png", + "com/fr/design/images/buttonicon/widget/number_field_16.png", + "com/fr/design/images/buttonicon/widget/label_16.png", + "com/fr/web/images/form/resources/button_16.png", + "com/fr/design/images/buttonicon/widget/button_16.png", + "com/fr/design/images/buttonicon/widget/files_up.png", + "com/fr/design/images/buttonicon/widget/combo_box_16.png", + "com/fr/design/images/buttonicon/widget/combo_check_16.png", + "com/fr/design/images/buttonicon/widget/check_box_16.png", + "com/fr/web/images/form/resources/list_16.png", + "com/fr/design/images/buttonicon/widget/text_field_16.png", + "com/fr/design/images/buttonicon/widget/text_area_16.png", + "com/fr/design/images/buttonicon/widget/password_field_16.png", + "com/fr/web/images/form/resources/iframe_16.png", + "com/fr/design/images/form/toolbar/column.png", + "com/fr/design/images/form/toolbar/bar.png", + "com/fr/design/images/form/toolbar/line.png", + "com/fr/design/images/form/toolbar/area.png", + "com/fr/design/images/form/toolbar/gauge.png", + "com/fr/design/images/form/toolbar/radar.png", + "com/fr/design/images/form/toolbar/scatter.png", + "com/fr/design/images/form/toolbar/bubble.png", + "com/fr/design/images/form/toolbar/custom.png", + "com/fr/design/images/form/toolbar/multiPie.png", + "com/fr/design/images/form/toolbar/map.png", + "com/fr/design/images/form/toolbar/drillmap.png", + "com/fr/design/images/form/toolbar/treeMap.png", + "com/fr/design/images/form/toolbar/funnel.png", + "com/fr/design/images/form/toolbar/heatmap.png", + "com/fr/design/images/form/toolbar/wordcloud.png", + "com/fr/design/images/form/toolbar/gantt.png", + "com/fr/design/images/form/toolbar/structure.png", + "com/fr/design/images/control/help_open.png", + "com/fr/web/images/form/forbid.png", + "com/fr/web/images/form/resources/layout_absolute.png", + "com/fr/design/images/m_edit/cut.png", + "com/fr/design/images/m_edit/paste.png", + "com/fr/design/images/m_report/delete.png", + "com/fr/design/images/toolbarbtn/parametersetting.png", + "com/fr/base/images/oem/addworksheet.png", + "com/fr/design/images/sheet/addpolysheet.png", + "com/fr/base/images/oem/worksheet.png", + "com/fr/design/images/sheet/polysheet.png", + "com/fr/design/images/sheet/left_normal@1x.png", + "com/fr/design/images/sheet/right_normal@1x.png", + "com/fr/design/images/sheet/left_hover@1x.png", + "com/fr/design/images/sheet/right_hover@1x.png", + "com/fr/design/images/data/source/normalDown20.png", + "com/fr/design/images/data/source/hoverDown20.png", + "com/fr/design/images/data/source/normalUp20.png", + "com/fr/design/images/data/source/hoverUp20.png", + "com/fr/design/images/m_edit/formatBrush.png", + "com/fr/design/images/expand/none16x16_selected@1x.png", + "com/fr/design/images/expand/vertical.png", + "com/fr/design/images/expand/vertical_selected@1x.png", + "com/fr/design/images/expand/landspace.png", + "com/fr/design/images/expand/landspace_selected@1x.png", + "com/fr/design/images/buttonicon/select.png", + "com/fr/design/images/expand/asc_selected.png", + "com/fr/design/images/expand/des_selected.png", + "com/fr/design/images/m_format/cellstyle/bold.png", + "com/fr/design/images/m_format/cellstyle/italic.png", + "com/fr/design/images/m_format/cellstyle/underline.png", + "com/fr/design/images/m_format/cellstyle/strikethrough.png", + "com/fr/design/images/m_format/cellstyle/shadow.png", + "com/fr/design/images/m_format/cellstyle/sup.png", + "com/fr/design/images/m_format/cellstyle/sub.png", + "com/fr/base/images/dialog/border/top.png", + "com/fr/design/images/m_format/cellstyle/top_white.png", + "com/fr/base/images/dialog/border/left.png", + "com/fr/design/images/m_format/cellstyle/left_white.png", + "com/fr/base/images/dialog/border/bottom.png", + "com/fr/design/images/m_format/cellstyle/bottom_white.png", + "com/fr/base/images/dialog/border/right.png", + "com/fr/design/images/m_format/cellstyle/right_white.png", + "com/fr/base/images/dialog/border/horizontal.png", + "com/fr/design/images/m_format/cellstyle/horizontal_white.png", + "com/fr/base/images/dialog/border/vertical.png", + "com/fr/design/images/m_format/cellstyle/vertical_white.png", + "com/fr/design/images/m_format/out.png", + "com/fr/design/images/m_format/cellstyle/out_white.png", + "com/fr/design/images/m_format/in.png", + "com/fr/design/images/m_format/cellstyle/in_white.png", + "com/fr/design/images/m_format/cellstyle/h_left_normal.png", + "com/fr/design/images/m_format/cellstyle/h_left_normal_white.png", + "com/fr/design/images/m_format/cellstyle/h_center_normal.png", + "com/fr/design/images/m_format/cellstyle/h_center_normal_white.png", + "com/fr/design/images/m_format/cellstyle/h_right_normal.png", + "com/fr/design/images/m_format/cellstyle/h_right_normal_white.png", + "com/fr/design/images/m_format/cellstyle/h_s_normal.png", + "com/fr/design/images/m_format/cellstyle/h_s_normal_white.png", + "com/fr/design/images/m_format/cellstyle/defaultAlignment.png", + "com/fr/design/images/m_format/cellstyle/defaultAlignment_white.png", + "com/fr/design/images/m_format/cellstyle/v_top_normal.png", + "com/fr/design/images/m_format/cellstyle/v_top_normal_white.png", + "com/fr/design/images/m_format/cellstyle/v_center_normal.png", + "com/fr/design/images/m_format/cellstyle/v_center_normal_white.png", + "com/fr/design/images/m_format/cellstyle/v_down_normal.png", + "com/fr/design/images/m_format/cellstyle/v_down_normal_white.png", + "com/fr/design/images/control/refresh.png", + "com/fr/design/images/toolbarbtn/close.png", + "com/fr/design/images/buttonicon/new_form3.png", + "com/fr/design/images/m_file/save.png", + "com/fr/design/images/m_file/saveAs.png", + "com/fr/design/images/m_edit/undo.png", + "com/fr/design/images/m_edit/redo.png", + "com/fr/design/images/m_file/excel.png", + "com/fr/design/images/m_file/pdf.png", + "com/fr/design/images/m_file/word.png", + "com/fr/design/images/m_file/svg.png", + "com/fr/design/images/m_file/csv.png", + "com/fr/design/images/m_file/text.png", + "com/fr/design/images/m_web/datasource.png", + "com/fr/design/images/m_report/webreportattribute.png", + "com/fr/design/images/m_report/exportAttr.png", + "com/fr/design/images/m_report/p.png", + "com/fr/design/images/m_report/mobile.png", + "com/fr/web/images/print.png", + "com/fr/design/images/m_report/watermark.png", + "com/fr/design/images/m_file/pageSetup.png", + "com/fr/design/images/m_report/header.png", + "com/fr/design/images/m_report/footer.png", + "com/fr/design/images/m_report/background.png", + "com/fr/design/images/m_report/reportWriteAttr.png", + "com/fr/design/images/m_report/linearAttr.png", + "com/fr/design/images/m_report/reportEngineAttr.png", + "com/fr/design/images/m_report/allow_authority_edit.png", + "com/fr/design/images/m_insert/bindColumn.png", + "com/fr/design/images/m_insert/text.png", + "com/fr/design/images/m_insert/richtext.png", + "com/fr/design/images/m_insert/chart.png", + "com/fr/design/images/m_insert/image.png", + "com/fr/design/images/m_insert/bias.png", + "com/fr/design/images/arrow/arrow_up.png", + "com/fr/design/images/m_insert/subReport.png", + "com/fr/design/images/arrow/arrow_down.png", + "com/fr/design/images/toolbarbtn/toolbarbtnsetting.png", + "com/fr/design/images/control/addPopup.png", + "com/fr/design/images/toolbarbtn/toolbarbtnclear.png", + "com/fr/design/images/m_insert/insertRow.png", + "com/fr/design/images/m_insert/insertColumn.png", + "com/fr/design/images/m_format/modified.png", + "com/fr/design/images/m_format/highlight.png", + "com/fr/web/images/form/resources/preview_16.png", + "com/fr/web/images/save.png", + "com/fr/design/images/m_insert/hyperLink.png", + "com/fr/web/images/flashPrint.png", + "com/fr/design/images/m_edit/merge.png", + "com/fr/web/images/appletPrint.png", + "com/fr/design/images/m_edit/unmerge.png", + "com/fr/web/images/pdf.png", + "com/fr/design/images/m_format/cellAttr.png", + "com/fr/web/images/pdfPrint.png", + "com/fr/web/images/serverPrint.png", + "com/fr/web/images/email.png", + "com/fr/web/images/preview.png", + "com/fr/design/images/server/platform_16_16.png", + "com/fr/design/images/data/user_widget.png", + "com/fr/design/images/server/plugin.png", + "com/fr/web/images/excel.png", + "com/fr/design/images/m_web/function.png", + "com/fr/web/images/word.png", + "com/fr/web/images/pageSetup.png", + "com/fr/web/images/export.png", + "com/fr/design/images/m_web/edit.png", + "com/fr/web/images/pageNumber.png", + "com/fr/web/images/first.png", + "com/fr/design/images/m_web/style.png", + "com/fr/web/images/last.png", + "com/fr/web/images/previous.png", + "com/fr/web/images/next.png", + "com/fr/web/images/scale.png", + "com/fr/web/images/appendRow.png", + "com/fr/web/images/deleteRow.png", + "com/fr/web/images/verify.gif", + "com/fr/web/images/save2.png", + "com/fr/design/images/m_file/export.png", + "com/fr/web/images/showValue.png", + "com/fr/web/images/pianyi.png", + "com/fr/web/images/writeOffline.png", + "com/fr/web/images/edit/stash.png", + "com/fr/web/images/edit/clearstash.png", + "com/fr/design/images/m_insert/cell.png", + "com/fr/design/images/m_insert/float.png", + "com/fr/design/images/gui/color/background.png", + "com/fr/design/images/m_format/cell.png", + "com/fr/design/images/data/source/dataDictionary.png", + "com/fr/design/images/m_format/cellstyle/bold_white.png", + "com/fr/design/images/m_format/cellstyle/italic_white.png", + "com/fr/design/images/m_format/cellstyle/underline_white.png", + "com/fr/design/images/m_format/noboder.png", + "com/fr/design/images/gui/popup.gif", + "com/fr/design/images/m_insert/floatPop.png", + "com/fr/web/images/platform/demo.png", + "com/fr/base/images/dialog/pagesetup/down.png", + "com/fr/base/images/dialog/pagesetup/over.png", + "com/fr/web/images/reportlet.png", + "com/fr/design/images/buttonicon/switchShortCuts.png", + "com/fr/design/images/buttonicon/ds_column_name.png", + "com/fr/base/images/cell/control/add.png", + "com/fr/base/images/cell/control/rename.png", + "com/fr/base/images/cell/control/remove.png", + "com/fr/design/images/control/up.png", + "com/fr/design/images/control/down.png", + "com/fr/design/images/condition/bracket.png", + "com/fr/design/images/condition/unBracket.png" + }; +}