diff --git a/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java b/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java index 1bffe0842..3047ca99c 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java @@ -15,6 +15,7 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.VerticalFlowLayout; import com.fr.design.mainframe.reuse.ReuseGuideDialog; import com.fr.design.mainframe.reuse.SnapChatKeys; +import com.fr.design.mainframe.share.collect.ComponentCollector; import com.fr.design.menu.SnapChatUtil; import com.fr.design.notification.SnapChat; import com.fr.design.notification.SnapChatFactory; @@ -313,6 +314,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer { new ActionListener() { @Override public void actionPerformed(ActionEvent e) { + ComponentCollector.getInstance().collectCmpBoardClick(); ComponentReuseNotifyUtil.enterWidgetLibExtraAction(true); } }); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/share/collect/ComponentCollector.java b/designer-base/src/main/java/com/fr/design/mainframe/share/collect/ComponentCollector.java index 1fa2b993e..3ea805deb 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/share/collect/ComponentCollector.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/share/collect/ComponentCollector.java @@ -12,6 +12,7 @@ import com.fr.form.share.Group; import com.fr.form.share.group.filter.DirFilter; import com.fr.form.share.group.filter.ReuFilter; import com.fr.general.ComparatorUtils; +import com.fr.general.GeneralUtils; import com.fr.json.JSON; import com.fr.json.JSONArray; import com.fr.json.JSONException; @@ -371,7 +372,7 @@ public class ComponentCollector implements XMLable { sortType = JSONFactory.createJSON(JSON.ARRAY); } - private int cmpBoardClickDaily() { + private int cmpBoardClickDaily() { DateTime dateTime = DateTime.parse(startTime); DateTime currTime = DateTime.now(); @@ -524,7 +525,7 @@ public class ComponentCollector implements XMLable { jo.put("userId", MarketConfig.getInstance().getBBSAttr().getBbsUid()); jo.put("uuid", uuid); jo.put("cmpBoardClickDaily", cmpBoardClickDaily()); - jo.put("pluginVersion", PluginContexts.currentContext().getVersion()); + jo.put("pluginVersion", GeneralUtils.readBuildNO()); jo.put("localCmpNumber", localCmpNumber); jo.put("remoteCmpNumber", remoteCmpNumber); jo.put("uploadCmpNumber", uploadCmpNumber); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/share/collect/CollectorManager.java b/designer-base/src/main/java/com/fr/design/mainframe/share/collect/SharableCollectorManager.java similarity index 90% rename from designer-base/src/main/java/com/fr/design/mainframe/share/collect/CollectorManager.java rename to designer-base/src/main/java/com/fr/design/mainframe/share/collect/SharableCollectorManager.java index 3ccb62429..2ea982001 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/share/collect/CollectorManager.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/share/collect/SharableCollectorManager.java @@ -14,7 +14,7 @@ import java.util.concurrent.TimeUnit; /** * created by Harrison on 2020/03/25 **/ -public class CollectorManager { +public class SharableCollectorManager { /** * 1 天 @@ -32,10 +32,10 @@ public class CollectorManager { private ScheduledExecutorService service; private static class ConfigManagerHolder { - private static CollectorManager instance = new CollectorManager(); + private static SharableCollectorManager instance = new SharableCollectorManager(); } - public static CollectorManager getInstance() { + public static SharableCollectorManager getInstance() { return ConfigManagerHolder.instance; } @@ -43,7 +43,7 @@ public class CollectorManager { public void execute() { service = Executors - .newSingleThreadScheduledExecutor(new NamedThreadFactory("plugin-CollectorManager", true)); + .newSingleThreadScheduledExecutor(new NamedThreadFactory("SharableComponentCollectorManager", true)); service.scheduleAtFixedRate(new Runnable() { @Override public void run() { diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/XChartEditor.java b/designer-form/src/main/java/com/fr/design/designer/creator/XChartEditor.java index 24bea0177..682dcc4d4 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/XChartEditor.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/XChartEditor.java @@ -255,6 +255,10 @@ public class XChartEditor extends XBorderStyleWidgetCreator { * @param e 鼠标点击事件 */ public void respondClick(EditingMouseListener editingMouseListener, MouseEvent e) { + if (this.isShareConfigButtonFocus()) { + CoverReportPane.showShareConfig(((XCreator) this.getParent()).toData()); + return; + } FormDesigner designer = editingMouseListener.getDesigner(); SelectionModel selectionModel = editingMouseListener.getSelectionModel(); isEditing = e.getButton() == MouseEvent.BUTTON1 && @@ -272,11 +276,6 @@ public class XChartEditor extends XBorderStyleWidgetCreator { } } } - if (this.isShareConfigButtonFocus()) { - CoverReportPane.showShareConfig(((XCreator) this.getParent()).toData()); - } - - } @Override diff --git a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java index 2a130dad4..c67280caa 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java @@ -45,6 +45,8 @@ import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.form.FormECCompositeProvider; import com.fr.design.mainframe.form.FormECDesignerProvider; +import com.fr.design.mainframe.share.collect.ComponentCollector; +import com.fr.design.mainframe.share.util.ShareComponentUtils; import com.fr.design.mainframe.template.info.JFormProcessInfo; import com.fr.design.mainframe.template.info.TemplateProcessInfo; import com.fr.design.mainframe.toolbar.ToolBarMenuDock; @@ -74,6 +76,7 @@ import com.fr.form.ui.Widget; import com.fr.form.ui.container.WBorderLayout; import com.fr.form.ui.container.WLayout; import com.fr.general.ComparatorUtils; +import com.fr.json.JSONArray; import com.fr.log.FineLoggerFactory; import com.fr.page.PaperSettingProvider; import com.fr.plugin.observer.PluginEventListener; @@ -337,6 +340,28 @@ public class JForm extends JTemplate implements BaseJForm jt) { + if (jt == null) { + return; + } + int useCount = 0; + if (!jt.getProcessInfo().isTestTemplate()) { + JForm jForm = (JForm) jt; + XLayoutContainer root = jForm.getFormDesign().getRootComponent(); + List xCreators = ShareComponentUtils.getHelpConfigXCreatorList(root); + JSONArray helpConfigUseInfo = ComponentCollector.getInstance().getHelpConfigUseInfoWithTemplate(jt.getTarget().getTemplateID()); + for (XCreator xCreator : xCreators) { + if (helpConfigUseInfo.contains(ShareComponentUtils.getWidgetId(xCreator.toData()))) { + useCount++; + } + } + ComponentCollector.getInstance().collectHelpConfigInfo(jt.getTarget().getTemplateID(), xCreators.size(), useCount); + } + + } + }); return tabCenterPane; } diff --git a/designer-form/src/main/java/com/fr/design/mainframe/share/util/SharableXMLUtils.java b/designer-form/src/main/java/com/fr/design/mainframe/share/util/SharableXMLUtils.java new file mode 100644 index 000000000..baacf4272 --- /dev/null +++ b/designer-form/src/main/java/com/fr/design/mainframe/share/util/SharableXMLUtils.java @@ -0,0 +1,13 @@ +package com.fr.design.mainframe.share.util; + +import com.fr.form.share.encrypt.engine.SharableReadHelper; +import com.fr.stable.xml.XMLConf; +import com.fr.stable.xml.helper.XMLReadHelper; + +public class SharableXMLUtils { + public static synchronized void registerSharableReadHelper() { + XMLReadHelper readHelper = XMLConf.getReadHelper(); + XMLReadHelper helper = new SharableReadHelper(readHelper); + XMLConf.registerXMLHelper(helper); + } +} diff --git a/designer-form/src/main/java/com/fr/design/mainframe/share/util/ShareComponentUtils.java b/designer-form/src/main/java/com/fr/design/mainframe/share/util/ShareComponentUtils.java index abd2c5450..485c44149 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/share/util/ShareComponentUtils.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/share/util/ShareComponentUtils.java @@ -20,8 +20,11 @@ import com.fr.stable.StringUtils; import com.fr.workspace.WorkContext; import org.jetbrains.annotations.NotNull; +import java.awt.Component; import java.awt.Dimension; import java.awt.Rectangle; +import java.util.ArrayList; +import java.util.List; /** * Coder: zack @@ -89,5 +92,18 @@ public class ShareComponentUtils { } - + public static List getHelpConfigXCreatorList(XCreator root) { + List helpConfigXCreatorList = new ArrayList<>(); + if (isShareWidget(root)) { + helpConfigXCreatorList.add(root); + return helpConfigXCreatorList; + } + Component[] components = root.getComponents(); + for (Component component : components) { + if (component instanceof XCreator) { + helpConfigXCreatorList.addAll(getHelpConfigXCreatorList((XCreator) component)); + } + } + return helpConfigXCreatorList; + } } diff --git a/designer-realize/src/main/java/com/fr/design/share/SharableInitManager.java b/designer-realize/src/main/java/com/fr/design/share/SharableInitManager.java new file mode 100644 index 000000000..42870535b --- /dev/null +++ b/designer-realize/src/main/java/com/fr/design/share/SharableInitManager.java @@ -0,0 +1,11 @@ +package com.fr.design.share; + +import com.fr.design.mainframe.share.collect.SharableCollectorManager; +import com.fr.design.mainframe.share.util.SharableXMLUtils; + +public class SharableInitManager { + public static void start() { + SharableXMLUtils.registerSharableReadHelper(); + SharableCollectorManager.getInstance().execute(); + } +} diff --git a/designer-realize/src/main/java/com/fr/design/share/effect/EffectItemGroup.java b/designer-realize/src/main/java/com/fr/design/share/effect/EffectItemGroup.java index 923c200d1..a07478c9d 100644 --- a/designer-realize/src/main/java/com/fr/design/share/effect/EffectItemGroup.java +++ b/designer-realize/src/main/java/com/fr/design/share/effect/EffectItemGroup.java @@ -68,8 +68,7 @@ public class EffectItemGroup { for (int index = 0; index < listenerSize; index ++) { Listener listener = widget.getListener(index); SourceNode sourceNode = SourceNodeUtils.createSourceNode(widget, null); - String eventName = switchLang(listener.getEventName()) + (index + 1); - this.add(new ListenerEffectItem(listener, sourceNode, eventName)); + this.add(new ListenerEffectItem(listener, sourceNode)); } } diff --git a/designer-realize/src/main/java/com/fr/design/share/effect/ListenerEffectItem.java b/designer-realize/src/main/java/com/fr/design/share/effect/ListenerEffectItem.java index 38d635424..55b53ad72 100644 --- a/designer-realize/src/main/java/com/fr/design/share/effect/ListenerEffectItem.java +++ b/designer-realize/src/main/java/com/fr/design/share/effect/ListenerEffectItem.java @@ -9,10 +9,9 @@ import com.fr.form.ui.Widget; public class ListenerEffectItem extends BaseEffectItem { private Listener listener; - public ListenerEffectItem(Listener listener, SourceNode sourceNode, String name) { + public ListenerEffectItem(Listener listener, SourceNode sourceNode) { this.listener = listener; this.setSourceNode(sourceNode); - this.setName(name); init(); } @@ -24,6 +23,8 @@ public class ListenerEffectItem extends BaseEffectItem { object = new Listener(listener.getTargetWidget(), listener.getEventName(), listener.getAction(), listener.isInvokeOnce()); } setObject(object); + + setName(listener.getName()); this.setNameableCreator(new EventCreator(Widget.EVENT_STATECHANGE, EventPropertyTable.WidgetEventListenerUpdatePane.class)); } @@ -32,7 +33,13 @@ public class ListenerEffectItem extends BaseEffectItem { setObject((Listener) bean); } + public void setName(String name) { + super.setName(name); + getObject().setName(name); + } + public void save() { + listener.setName(getObject().getName()); listener.setEventName(getObject().getEventName()); listener.setAction(getObject().getAction()); listener.setInvokeOnce(getObject().isInvokeOnce()); diff --git a/designer-realize/src/main/java/com/fr/design/share/ui/config/table/ConfigTableModel.java b/designer-realize/src/main/java/com/fr/design/share/ui/config/table/ConfigTableModel.java index 29fe8e125..b9b3f15d2 100644 --- a/designer-realize/src/main/java/com/fr/design/share/ui/config/table/ConfigTableModel.java +++ b/designer-realize/src/main/java/com/fr/design/share/ui/config/table/ConfigTableModel.java @@ -39,8 +39,7 @@ public class ConfigTableModel extends AbstractTableModel { @Override public boolean isCellEditable(int rowIndex, int columnIndex) { - EffectItem effectItem = effectItems.get(rowIndex); - return columnIndex == 1 && !(effectItem instanceof ListenerEffectItem); + return columnIndex == 1; } @Override diff --git a/designer-realize/src/main/java/com/fr/design/share/ui/generate/ShareMainPane.java b/designer-realize/src/main/java/com/fr/design/share/ui/generate/ShareMainPane.java index e9b5a25e2..504d95be9 100644 --- a/designer-realize/src/main/java/com/fr/design/share/ui/generate/ShareMainPane.java +++ b/designer-realize/src/main/java/com/fr/design/share/ui/generate/ShareMainPane.java @@ -498,7 +498,7 @@ public class ShareMainPane extends JPanel { ArrayUtils.toPrimitive(rowSizeList.toArray(new Double[rowSizeList.size()])), columnSize, rowCountList.toArray(new int[rowCountList.size()][]), - LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); + LayoutConstants.HGAP_SMALL, LayoutConstants.VGAP_MEDIUM); } private JPanel createNameFiledPane() { diff --git a/designer-realize/src/main/java/com/fr/design/share/ui/generate/table/EffectTableModel.java b/designer-realize/src/main/java/com/fr/design/share/ui/generate/table/EffectTableModel.java index 042159c69..f9d4ecb2b 100644 --- a/designer-realize/src/main/java/com/fr/design/share/ui/generate/table/EffectTableModel.java +++ b/designer-realize/src/main/java/com/fr/design/share/ui/generate/table/EffectTableModel.java @@ -44,8 +44,7 @@ public class EffectTableModel extends AbstractTableModel { @Override public boolean isCellEditable(int rowIndex, int columnIndex) { - EffectItem effectItem = effectItems.get(rowIndex); - return columnIndex == 1 && !(effectItem instanceof ListenerEffectItem); + return columnIndex == 1; } @Override diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java index 5c7a20efc..43c0e720f 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java @@ -60,12 +60,12 @@ import com.fr.design.os.impl.SupportOSImpl; import com.fr.design.parameter.FormParameterReader; import com.fr.design.parameter.ParameterPropertyPane; import com.fr.design.parameter.WorkBookParameterReader; +import com.fr.design.share.SharableInitManager; import com.fr.design.share.ui.config.ShareConfigPane; import com.fr.design.share.ui.generate.ShareGeneratePane; import com.fr.design.update.actions.RecoverForDesigner; import com.fr.design.update.push.DesignerPushUpdateManager; import com.fr.design.widget.ui.btn.FormSubmitButtonDetailPane; -import com.fr.form.stable.ElementCaseThumbnailProcessor; import com.fr.general.GeneralContext; import com.fr.general.xml.GeneralXMLTools; import com.fr.js.EmailJavaScript; @@ -205,6 +205,7 @@ public class DesignerActivator extends Activator { designerRegister(); InformationCollector.getInstance().collectStartTime(); + SharableInitManager.start(); } private void createPluginListener() {