diff --git a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java index b10a61e36..67db552a5 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java +++ b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java @@ -66,24 +66,25 @@ public class AlphaFineConstants { public static final Font GREATER_FONT = new Font("Song_TypeFace", 0, 20); + public static final String IMAGE_URL = "/com/fr/design/mainframe/alphafine/images/"; public static final String PLUGIN_SEARCH_URL = SiteCenter.getInstance().acquireUrlByKind("plugin.searchAPI"); - public static final String PLUGIN_URL = "http://shop.finereport.com/plugin/"; + public static final String PLUGIN_URL = SiteCenter.getInstance().acquireUrlByKind("af.plugin"); - public static final String REUSE_URL = "http://shop.finereport.com/reuse/"; + public static final String REUSE_URL = SiteCenter.getInstance().acquireUrlByKind("af.reuse"); - public static final String DOCUMENT_DOC_URL = "http://help.finereport.com/doc-view-"; + public static final String DOCUMENT_DOC_URL = SiteCenter.getInstance().acquireUrlByKind("af.doc_view"); - public static final String DOCUMENT_SEARCH_URL = "http://help.finereport.com/?api-search-title-"; + public static final String DOCUMENT_SEARCH_URL = SiteCenter.getInstance().acquireUrlByKind("af.doc_search"); - public static final String DOCUMENT_INFORMATION_URL = "http://help.finereport.com/?api-search-did-"; + public static final String DOCUMENT_INFORMATION_URL = SiteCenter.getInstance().acquireUrlByKind("af.doc_info"); - public static final String PLUGIN_IMAGE_URL = "http://shopres.finereport.com/"; + public static final String PLUGIN_IMAGE_URL = SiteCenter.getInstance().acquireUrlByKind("af.plugin_image"); - public static final String CLOUD_SERVER_URL = "http://cloud.fanruan.com/api/monitor/record_of_afsearch/single"; + public static final String CLOUD_SERVER_URL = SiteCenter.getInstance().acquireUrlByKind("af.record"); - public static final String SEARCH_API = "http://cloud.fanruan.com/api/intelligence/search/recommend?searchKey="; + public static final String SEARCH_API = SiteCenter.getInstance().acquireUrlByKind("af.cloud_search"); } diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/render/ContentCellRender.java b/designer/src/com/fr/design/mainframe/alphafine/cell/render/ContentCellRender.java index 563e26f46..a99aecf3a 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/render/ContentCellRender.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/render/ContentCellRender.java @@ -1,5 +1,6 @@ package com.fr.design.mainframe.alphafine.cell.render; +import com.bulenkov.iconloader.IconLoader; import com.fr.design.gui.ilable.UILabel; import com.fr.design.mainframe.alphafine.AlphaFineConstants; import com.fr.design.mainframe.alphafine.cell.model.AlphaCellModel; @@ -15,6 +16,9 @@ import java.awt.*; */ public class ContentCellRender implements ListCellRenderer { private static final int OFFSET = 45; + private static final String SELECTED_PATH = AlphaFineConstants.IMAGE_URL + "selected"; + private static final String CELL_PATH = AlphaFineConstants.IMAGE_URL + "alphafine"; + private static final String SUFFIX = ".png"; @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { @@ -30,13 +34,13 @@ public class ContentCellRender implements ListCellRenderer { titleLabel.setText(" " + model.getName()); if (model.hasAction()) { if (isSelected) { - String iconUrl = "/com/fr/design/mainframe/alphafine/images/selected" + model.getType().getTypeValue() + ".png"; + String iconUrl = SELECTED_PATH + model.getType().getTypeValue() + SUFFIX; panel.setBackground(AlphaFineConstants.BLUE); titleLabel.setForeground(Color.WHITE); - titleLabel.setIcon(new ImageIcon(IOUtils.readImage(iconUrl))); + titleLabel.setIcon(IconLoader.getIcon(iconUrl)); } else { - String iconUrl = "/com/fr/design/mainframe/alphafine/images/alphafine" + model.getType().getTypeValue() + ".png"; - titleLabel.setIcon(new ImageIcon(IOUtils.readImage(iconUrl))); + String iconUrl = CELL_PATH + model.getType().getTypeValue() + SUFFIX; + titleLabel.setIcon(IconLoader.getIcon(iconUrl)); titleLabel.setForeground(AlphaFineConstants.BLACK); } diff --git a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java index b5daed04e..e973c6a42 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -1,5 +1,6 @@ package com.fr.design.mainframe.alphafine.component; +import com.bulenkov.iconloader.IconLoader; import com.fr.base.ConfigManager; import com.fr.base.FRContext; import com.fr.design.DesignerEnvManager; @@ -21,12 +22,16 @@ import com.fr.design.mainframe.alphafine.preview.DocumentPreviewPane; import com.fr.design.mainframe.alphafine.preview.FilePreviewPane; import com.fr.design.mainframe.alphafine.preview.NoResultPane; import com.fr.design.mainframe.alphafine.preview.PluginPreviewPane; -import com.fr.design.mainframe.alphafine.search.manager.*; +import com.fr.design.mainframe.alphafine.search.manager.ActionSearchManager; +import com.fr.design.mainframe.alphafine.search.manager.DocumentSearchManager; +import com.fr.design.mainframe.alphafine.search.manager.FileSearchManager; +import com.fr.design.mainframe.alphafine.search.manager.PluginSearchManager; +import com.fr.design.mainframe.alphafine.search.manager.RecentSearchManager; +import com.fr.design.mainframe.alphafine.search.manager.RecommendSearchManager; import com.fr.form.main.Form; import com.fr.form.main.FormIO; import com.fr.general.ComparatorUtils; import com.fr.general.FRLogger; -import com.fr.general.IOUtils; import com.fr.general.Inter; import com.fr.general.http.HttpClient; import com.fr.io.TemplateWorkBookIO; @@ -44,7 +49,13 @@ import javax.swing.event.DocumentEvent; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import java.awt.*; -import java.awt.event.*; +import java.awt.event.AWTEventListener; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; import java.io.IOException; import java.net.URL; @@ -134,7 +145,7 @@ public class AlphaFineDialog extends UIDialog { private void initComponents() { initSearchTextField(); JPanel topPane = new JPanel(new BorderLayout()); - UILabel iconLabel = new UILabel(new ImageIcon(getClass().getResource("/com/fr/design/mainframe/alphafine/images/bigsearch.png"))); + UILabel iconLabel = new UILabel(IconLoader.getIcon(AlphaFineConstants.IMAGE_URL + "bigsearch.png")); iconLabel.setPreferredSize(AlphaFineConstants.ICON_LABEL_SIZE); iconLabel.setOpaque(true); iconLabel.setBackground(Color.WHITE); @@ -149,7 +160,7 @@ public class AlphaFineDialog extends UIDialog { } }; closeButton.setPreferredSize(AlphaFineConstants.CLOSE_BUTTON_SIZE); - closeButton.setIcon(new ImageIcon(getClass().getResource("/com/fr/design/mainframe/alphafine/images/alphafine_close.png"))); + closeButton.setIcon(IconLoader.getIcon(AlphaFineConstants.IMAGE_URL + "alphafine_close.png")); closeButton.set4ToolbarButton(); closeButton.setBorderPainted(false); closeButton.setRolloverEnabled(false); @@ -345,7 +356,7 @@ public class AlphaFineDialog extends UIDialog { */ private void removeLeftPane() { if (searchListModel.isEmpty() && defaultPane == null) { - defaultPane = new NoResultPane(Inter.getLocText("FR-Designer-AlphaFine_NO_Result"), IOUtils.readIcon("/com/fr/design/mainframe/alphafine/images/no_result.png")); + defaultPane = new NoResultPane(Inter.getLocText("FR-Designer-AlphaFine_NO_Result"), AlphaFineConstants.IMAGE_URL + "no_result.png"); searchResultPane.remove(leftSearchResultPane); searchResultPane.add(defaultPane, BorderLayout.WEST); refreshContainer(); @@ -556,7 +567,7 @@ public class AlphaFineDialog extends UIDialog { break; case ACTION: rightSearchResultPane.removeAll(); - rightSearchResultPane.add(new NoResultPane(Inter.getLocText("FR-Designer_NoResult"), IOUtils.readIcon("/com/fr/design/mainframe/alphafine/images/noresult.png"))); + rightSearchResultPane.add(new NoResultPane(Inter.getLocText("FR-Designer_NoResult"), AlphaFineConstants.IMAGE_URL + "noresult.png")); validate(); repaint(); break; @@ -698,6 +709,7 @@ public class AlphaFineDialog extends UIDialog { /** * 处理搜索结果 + * * @param selectedValue */ private void dealWithSearchResult(AlphaCellModel selectedValue) { diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/alphafine1@2x.png b/designer/src/com/fr/design/mainframe/alphafine/images/alphafine1@2x.png new file mode 100644 index 000000000..97ee11685 Binary files /dev/null and b/designer/src/com/fr/design/mainframe/alphafine/images/alphafine1@2x.png differ diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/alphafine2@2x.png b/designer/src/com/fr/design/mainframe/alphafine/images/alphafine2@2x.png new file mode 100644 index 000000000..667a7c0cd Binary files /dev/null and b/designer/src/com/fr/design/mainframe/alphafine/images/alphafine2@2x.png differ diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/alphafine3@2x.png b/designer/src/com/fr/design/mainframe/alphafine/images/alphafine3@2x.png new file mode 100644 index 000000000..a3d5423f9 Binary files /dev/null and b/designer/src/com/fr/design/mainframe/alphafine/images/alphafine3@2x.png differ diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/alphafine4@2x.png b/designer/src/com/fr/design/mainframe/alphafine/images/alphafine4@2x.png new file mode 100644 index 000000000..7eed33901 Binary files /dev/null and b/designer/src/com/fr/design/mainframe/alphafine/images/alphafine4@2x.png differ diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/alphafine5@2x.png b/designer/src/com/fr/design/mainframe/alphafine/images/alphafine5@2x.png new file mode 100644 index 000000000..b1c3675a0 Binary files /dev/null and b/designer/src/com/fr/design/mainframe/alphafine/images/alphafine5@2x.png differ diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/alphafine_close@2x.png b/designer/src/com/fr/design/mainframe/alphafine/images/alphafine_close@2x.png new file mode 100644 index 000000000..ce2ed4a89 Binary files /dev/null and b/designer/src/com/fr/design/mainframe/alphafine/images/alphafine_close@2x.png differ diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/bigsearch@2x.png b/designer/src/com/fr/design/mainframe/alphafine/images/bigsearch@2x.png new file mode 100644 index 000000000..a7d6c8cad Binary files /dev/null and b/designer/src/com/fr/design/mainframe/alphafine/images/bigsearch@2x.png differ diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/no_result@2x.png b/designer/src/com/fr/design/mainframe/alphafine/images/no_result@2x.png new file mode 100644 index 000000000..53c12eb30 Binary files /dev/null and b/designer/src/com/fr/design/mainframe/alphafine/images/no_result@2x.png differ diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/noresult@2x.png b/designer/src/com/fr/design/mainframe/alphafine/images/noresult@2x.png new file mode 100644 index 000000000..c5fb22863 Binary files /dev/null and b/designer/src/com/fr/design/mainframe/alphafine/images/noresult@2x.png differ diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/opening@2x.gif b/designer/src/com/fr/design/mainframe/alphafine/images/opening@2x.gif new file mode 100644 index 000000000..d6c165e57 Binary files /dev/null and b/designer/src/com/fr/design/mainframe/alphafine/images/opening@2x.gif differ diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/selected1@2x.png b/designer/src/com/fr/design/mainframe/alphafine/images/selected1@2x.png new file mode 100644 index 000000000..dfc820247 Binary files /dev/null and b/designer/src/com/fr/design/mainframe/alphafine/images/selected1@2x.png differ diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/selected2@2x.png b/designer/src/com/fr/design/mainframe/alphafine/images/selected2@2x.png new file mode 100644 index 000000000..d02b7971d Binary files /dev/null and b/designer/src/com/fr/design/mainframe/alphafine/images/selected2@2x.png differ diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/selected3@2x.png b/designer/src/com/fr/design/mainframe/alphafine/images/selected3@2x.png new file mode 100644 index 000000000..568b5428e Binary files /dev/null and b/designer/src/com/fr/design/mainframe/alphafine/images/selected3@2x.png differ diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/selected4@2x.png b/designer/src/com/fr/design/mainframe/alphafine/images/selected4@2x.png new file mode 100644 index 000000000..56396c803 Binary files /dev/null and b/designer/src/com/fr/design/mainframe/alphafine/images/selected4@2x.png differ diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/selected5@2x.png b/designer/src/com/fr/design/mainframe/alphafine/images/selected5@2x.png new file mode 100644 index 000000000..1d571ada5 Binary files /dev/null and b/designer/src/com/fr/design/mainframe/alphafine/images/selected5@2x.png differ diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/smallsearch@2x.png b/designer/src/com/fr/design/mainframe/alphafine/images/smallsearch@2x.png new file mode 100644 index 000000000..a9f208ee2 Binary files /dev/null and b/designer/src/com/fr/design/mainframe/alphafine/images/smallsearch@2x.png differ diff --git a/designer/src/com/fr/design/mainframe/alphafine/preview/NoResultPane.java b/designer/src/com/fr/design/mainframe/alphafine/preview/NoResultPane.java index 67157aee2..6b80aae8b 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/preview/NoResultPane.java +++ b/designer/src/com/fr/design/mainframe/alphafine/preview/NoResultPane.java @@ -1,5 +1,6 @@ package com.fr.design.mainframe.alphafine.preview; +import com.bulenkov.iconloader.IconLoader; import com.fr.design.gui.ilable.UILabel; import com.fr.design.mainframe.alphafine.AlphaFineConstants; import com.fr.general.FRFont; @@ -11,14 +12,14 @@ import java.awt.*; * Created by XiaXiang on 2017/8/14. */ public class NoResultPane extends JPanel { - public NoResultPane(String title, Icon icon) { + public NoResultPane(String title, String iconUrl) { setLayout(new BorderLayout()); setBackground(Color.white); setPreferredSize(new Dimension(AlphaFineConstants.LEFT_WIDTH, AlphaFineConstants.CONTENT_HEIGHT)); UILabel image = new UILabel(); image.setPreferredSize(new Dimension(150, 111)); image.setHorizontalAlignment(SwingConstants.CENTER); - image.setIcon(icon); + image.setIcon(IconLoader.getIcon(iconUrl)); image.setBorder(BorderFactory.createEmptyBorder(100,0,0,0)); UILabel description = new UILabel(title); description.setForeground(AlphaFineConstants.MEDIUM_GRAY); diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index 2913df00a..09a5eac53 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -244,10 +244,6 @@ public class JForm extends JTemplate implements BaseJForm { || evt.getCreatorEventID() == DesignerEvent.CREATOR_DELETED) { setPropertyPaneChange(formDesign.getRootComponent()); } else if (evt.getCreatorEventID() == DesignerEvent.CREATOR_SELECTED) { - // 防止多次触发 - if (lastAffectedCreator != null && lastAffectedCreator == evt.getAffectedCreator()) { - return; - } lastAffectedCreator = evt.getAffectedCreator(); setPropertyPaneChange(lastAffectedCreator); } diff --git a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java index d5878a095..a01d4347a 100644 --- a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java @@ -157,7 +157,7 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope wsp.setBorder(null); mobileParaWidgetTable = new MobileParaWidgetTable(designer); mobileWidgetTable = new MobileWidgetTable(designer); - designer.addDesignerEditListener(new mobileWidgetDesignerAdapter()); + designer.addDesignerEditListener(new MobileWidgetDesignerAdapter()); centerPane = FRGUIPaneFactory.createCardLayout_S_Pane(); cardLayout = (CardLayout) centerPane.getLayout(); centerPane.add(mobileParaWidgetTable, PARA); @@ -245,7 +245,7 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope */ private Component getExtraBodyTable(AbstractPropertyTable abstractPropertyTable) { Widget selection = designer.getSelectionModel().getSelection().getSelectedCreator().toData(); - if (selection.getWidgetName().equals("body")) { + if ("body".equals(selection.getWidgetName())) { JPanel jPanel = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); jPanel.add(abstractPropertyTable); MobileWidgetTable mobileWidgetTable = new MobileWidgetTable(designer); @@ -294,7 +294,7 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope XLayoutContainer container = XCreatorUtils.getHotspotContainer(xCreator); boolean xCreatorAccept = xCreator.acceptType(XWParameterLayout.class); - boolean containerAccept = container!=null && container.acceptType(XWParameterLayout.class); + boolean containerAccept = container != null && container.acceptType(XWParameterLayout.class); return xCreatorAccept || containerAccept; } @@ -332,7 +332,7 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope || evt.getCreatorEventID() == DesignerEvent.CREATOR_DELETED || evt.getCreatorEventID() == DesignerEvent.CREATOR_RESIZED) { formWidgetCardPane.populate(); - }else if(evt.getCreatorEventID() == DesignerEvent.CREATOR_SELECTED){ + } else if (evt.getCreatorEventID() == DesignerEvent.CREATOR_SELECTED){ // 防止多次触发 if (lastAffectedCreator != null && lastAffectedCreator == evt.getAffectedCreator()) { return; @@ -382,9 +382,9 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope /** * 移动端属性表监听界面事件(改变大小,编辑,选中,增加控件) */ - private class mobileWidgetDesignerAdapter implements DesignerEditListener { + private class MobileWidgetDesignerAdapter implements DesignerEditListener { - mobileWidgetDesignerAdapter() { + MobileWidgetDesignerAdapter() { } /** @@ -393,10 +393,18 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope * @param evt 事件 */ public void fireCreatorModified(DesignerEvent evt) { - if (evt.getCreatorEventID() == DesignerEvent.CREATOR_RESIZED - || evt.getCreatorEventID() == DesignerEvent.CREATOR_EDITED - || evt.getCreatorEventID() == DesignerEvent.CREATOR_SELECTED - || evt.getCreatorEventID() == DesignerEvent.CREATOR_ADDED) { + int[] validEventIds = {DesignerEvent.CREATOR_RESIZED, DesignerEvent.CREATOR_EDITED, + DesignerEvent.CREATOR_SELECTED, DesignerEvent.CREATOR_ADDED}; + boolean isValid = false; + for (int validEventId : validEventIds) { + if (evt.getCreatorEventID() == validEventId) { + isValid = true; + break; + } + } + if (!isValid) { + return; + } //fanglei:下面的注释不要删,只是暂时屏蔽 // int value = downPanel.getVerticalScrollBar().getValue(); // if (hasSelectParaPane(getEditingFormDesigner())) { @@ -411,12 +419,17 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope // //控件列表选中某组件,触发表单中选中控件,选中事件又触发列表刷新,滚动条回到0 // //此处设置滚动条值为刷新前 // downPanel.getVerticalScrollBar().setValue(value); - if (mobileExtraPropertyPanes != null) { - for (MobileWidgetDefinePane extraPane : mobileExtraPropertyPanes) { - extraPane.populate(designer); - } + if (mobileExtraPropertyPanes != null) { + for (MobileWidgetDefinePane extraPane : mobileExtraPropertyPanes) { + extraPane.populate(designer); } } + + } + + @Override + public boolean equals(Object o) { + return o instanceof MobileWidgetDesignerAdapter; } }