Browse Source

Merge pull request #4732 in DESIGN/design from bugfix/10.0 to feature/10.0

* commit '0b846a1fc62f212b6d345dca8ef649be57ef2cd3':
  代码修改
  REPORT-54355 ReuFilter 远程兼容问题
  REPORT-54361 组件复用-合入主版本-接触点优化-MarkReadMap为true&&clickedWidgetLib为false时,点套用组件入口,没弹出已合入主版本的提示;点组件库,可以弹出@kerry
  REPORT-54308 模板缺失插件设计改进设计器提供配置
  REPORT-54306 【稳定共创】在“配置工作目录”界面,切换远程后没有消息提醒
feature/10.0
superman 4 years ago
parent
commit
d53540a727
  1. 39
      designer-base/src/main/java/com/fr/design/DesignerEnvManager.java
  2. 11
      designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java
  3. 12
      designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java
  4. 4
      designer-base/src/main/java/com/fr/design/mainframe/ComponentReuseNotifyUtil.java
  5. 2
      designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java
  6. 44
      designer-form/src/main/java/com/fr/design/mainframe/FormWidgetDetailPane.java
  7. 2
      designer-form/src/main/java/com/fr/design/mainframe/share/ui/local/LocalWidgetRepoPane.java
  8. 11
      designer-form/src/main/java/com/fr/design/mainframe/share/util/InstallComponentHelper.java
  9. 5
      designer-realize/src/main/java/com/fr/design/mainframe/app/DesignerAppUtils.java
  10. 2
      designer-realize/src/main/java/com/fr/design/share/SharableManager.java

39
designer-base/src/main/java/com/fr/design/DesignerEnvManager.java

@ -199,6 +199,8 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
private DesignerLoginConfigManager designerLoginConfigManager = DesignerLoginConfigManager.getInstance();
private boolean showTemplateMissingPlugin = true;
/**
* DesignerEnvManager.
*/
@ -315,8 +317,8 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
}
LogHandler handler = new LogHandler<FileAppender>() {
final FileAppender appender = new FileAppender(
new com.fr.third.apache.log4j.PatternLayout("%d{HH:mm:ss} %t %p [%c] %m%n"),
fileName
new com.fr.third.apache.log4j.PatternLayout("%d{HH:mm:ss} %t %p [%c] %m%n"),
fileName
);
@Override
@ -621,6 +623,24 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
this.templateTreePaneExpanded = templateTreePaneExpanded;
}
/**
* 是否提示模板缺少插件
*
* @return 提示返回true
*/
public boolean isShowTemplateMissingPlugin() {
return showTemplateMissingPlugin;
}
/**
* 设置是否提示模板缺少插件
*
* @param showTemplateMissingPlugin 是否提示
*/
public void setShowTemplateMissingPlugin(boolean showTemplateMissingPlugin) {
this.showTemplateMissingPlugin = showTemplateMissingPlugin;
}
/**
* 知否自动备份
*
@ -1698,7 +1718,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
}
}
private void readComponentReuseNotificationInfo(XMLableReader reader){
private void readComponentReuseNotificationInfo(XMLableReader reader) {
reader.readXMLObject(this.notificationInfo);
}
@ -1792,6 +1812,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
this.setRecentSelectedConnection(tmpVal);
}
this.setEmbedServerLazyStartup(reader.getAttrAsBoolean("embedServerLazyStartup", false));
this.setShowTemplateMissingPlugin(reader.getAttrAsBoolean("showTemplateMissingPlugin", true));
}
private void readReportPaneAttributions(XMLableReader reader) {
@ -2060,6 +2081,9 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
if (this.isEmbedServerLazyStartup()) {
writer.attr("embedServerLazyStartup", this.isEmbedServerLazyStartup());
}
if (!this.isShowTemplateMissingPlugin()) {
writer.attr("showTemplateMissingPlugin", this.isShowTemplateMissingPlugin());
}
writer.end();
}
@ -2212,11 +2236,12 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
enum XmlHandler {
Self;
public void handle(Throwable throwable) {
ErrorDialog dialog = new ErrorDialog(null,
Toolkit.i18nText("Fine-Design_Error_Start_Apology_Message"),
Toolkit.i18nText("Fine-Design_Error_Start_Report"),
throwable.getMessage()) {
Toolkit.i18nText("Fine-Design_Error_Start_Apology_Message"),
Toolkit.i18nText("Fine-Design_Error_Start_Report"),
throwable.getMessage()) {
@Override
protected void okEvent() {
dispose();
@ -2232,5 +2257,5 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
dialog.setVisible(true);
DesignerExiter.getInstance().execute();
}
};
}
}

11
designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java

@ -96,8 +96,9 @@ public class EnvChangeEntrance {
* @param envName 目标工作目录名称
*/
public void switch2Env(final String envName) {
switch2Env(envName, PopTipStrategy.LATER);
VersionCheckUtils.showVersionCheckDialog(envName);
if (switch2Env(envName, PopTipStrategy.LATER)) {
VersionCheckUtils.showVersionCheckDialog(envName);
}
}
/**
@ -445,9 +446,12 @@ public class EnvChangeEntrance {
@Override
public void doOk() {
envListOkAction(envListPane, PopTipStrategy.LATER);
boolean changeResult = envListOkAction(envListPane, PopTipStrategy.LATER);
// 切换完成后清理密码
updateNotRememberPwdEnv();
if (changeResult) {
VersionCheckUtils.showVersionCheckDialog(envListPane.updateEnvManager());
}
}
@Override
@ -479,6 +483,7 @@ public class EnvChangeEntrance {
DesignerExiter.getInstance().execute();
} else {
updateNotRememberPwdEnv();
VersionCheckUtils.showVersionCheckDialog(envListPane.updateEnvManager());
}
}

12
designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java

@ -40,7 +40,6 @@ import com.fr.general.log.Log4jConfig;
import com.fr.locale.InterProviderFactory;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.Constants;
import com.fr.stable.StableUtils;
import com.fr.stable.os.OperatingSystem;
import com.fr.third.apache.log4j.Level;
import com.fr.transaction.Configurations;
@ -141,6 +140,8 @@ public class PreferencePane extends BasicPane {
private UIComboBox maxUndoLimit;
//是非支持自动计算父格
private UICheckBox supportDefaultParentCalculateCheckBox;
//打开模板是否提示缺少插件
private UICheckBox showTemplateMissingPlugin;
//是否自动转化为公式
private UICheckBox supportStringToFormulaBox;
@ -361,6 +362,11 @@ public class PreferencePane extends BasicPane {
supportDefaultParentCalculateCheckBox = new UICheckBox(
i18nText("Fine-Design_Basic_Preference_Support_Default_Parent_Calculate"));
functionPane.add(supportDefaultParentCalculateCheckBox);
//添加是否展示打开模板提示缺少插件选择项
showTemplateMissingPlugin = new UICheckBox(
i18nText("Fine-Design_Basic_Preference_Show-Template-Missing-Plugin"));
functionPane.add(showTemplateMissingPlugin);
}
private void createEditPane(JPanel generalPane) {
@ -644,6 +650,8 @@ public class PreferencePane extends BasicPane {
supportDefaultParentCalculateCheckBox.setSelected(designerEnvManager.isSupportDefaultParentCalculate());
showTemplateMissingPlugin.setSelected(designerEnvManager.isShowTemplateMissingPlugin());
supportStringToFormulaBox.setSelected(designerEnvManager.isSupportStringToFormula());
shortCutLabel.setText(getDisplayShortCut(designerEnvManager.getAutoCompleteShortcuts()));
@ -744,6 +752,8 @@ public class PreferencePane extends BasicPane {
designerEnvManager.setSupportDefaultParentCalculate(supportDefaultParentCalculateCheckBox.isSelected());
designerEnvManager.setShowTemplateMissingPlugin(showTemplateMissingPlugin.isSelected());
designerEnvManager.setSupportStringToFormula(supportStringToFormulaBox.isSelected());
designerEnvManager.setDefaultStringToFormula(defaultStringToFormulaBox.isSelected());

4
designer-base/src/main/java/com/fr/design/mainframe/ComponentReuseNotifyUtil.java

@ -18,7 +18,7 @@ public class ComponentReuseNotifyUtil {
}
public static void enterWidgetLibExtraAction(boolean needValidRead) {
public static void enterWidgetLibExtraAction() {
if (ComponentReuseNotificationInfo.getInstance().isClickedWidgetLib()) {
return;
}
@ -28,7 +28,7 @@ public class ComponentReuseNotifyUtil {
return COMPONENT_SNAP_CHAT_KEY;
}
});
if (snapChat.hasRead() && needValidRead) {
if (snapChat.hasRead()) {
DesignerToastMsgUtil.toastPrompt(Toolkit.i18nText("Fine-Design_Component_Reuse_Merge_Prompt"));
}
ComponentReuseNotificationInfo.getInstance().setClickedWidgetLib(true);

2
designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java

@ -315,7 +315,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
@Override
public void actionPerformed(ActionEvent e) {
ComponentCollector.getInstance().collectCmpBoardClick();
ComponentReuseNotifyUtil.enterWidgetLibExtraAction(true);
ComponentReuseNotifyUtil.enterWidgetLibExtraAction();
}
});
// 权限编辑

44
designer-form/src/main/java/com/fr/design/mainframe/FormWidgetDetailPane.java

@ -4,17 +4,24 @@ import com.fr.base.BaseUtils;
import com.fr.design.dialog.BasicPane;
import com.fr.design.file.Releasable;
import com.fr.design.gui.ibutton.UIHeadGroup;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.mainframe.reuse.ComponentReuseNotificationInfo;
import com.fr.design.mainframe.share.collect.ComponentCollector;
import com.fr.design.mainframe.share.ui.local.LocalWidgetRepoPane;
import com.fr.design.mainframe.share.ui.online.OnlineWidgetRepoPane;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.SwingConstants;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.util.ArrayList;
import java.util.List;
@ -31,6 +38,8 @@ public class FormWidgetDetailPane extends FormDockView implements Releasable {
private UIHeadGroup headGroup;
private List<BasicPane> paneList;
private boolean isEmptyPane = false;
public static FormWidgetDetailPane getInstance() {
if (HOLDER.singleton == null) {
HOLDER.singleton = new FormWidgetDetailPane();
@ -59,7 +68,7 @@ public class FormWidgetDetailPane extends FormDockView implements Releasable {
}
public String getViewTitle() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Widget_Tree_And_Table");
return Toolkit.i18nText("Fine-Design_Form_Widget_Tree_And_Table");
}
@Override
@ -71,6 +80,9 @@ public class FormWidgetDetailPane extends FormDockView implements Releasable {
* 初始化
*/
public void refreshDockingView(){
if (isEmptyPane) {
return;
}
FormDesigner designer = this.getEditingFormDesigner();
removeAll();
if (designer == null) {
@ -101,6 +113,10 @@ public class FormWidgetDetailPane extends FormDockView implements Releasable {
this.add(centerPane, BorderLayout.CENTER);
}
public void resetEmptyPane(){
this.isEmptyPane = false;
}
/**
* 清除数据
@ -111,10 +127,34 @@ public class FormWidgetDetailPane extends FormDockView implements Releasable {
this.add(psp, BorderLayout.CENTER);
}
public void switch2Empty(){
isEmptyPane = true;
this.removeAll();
JPanel panel = FRGUIPaneFactory.createVerticalFlowLayout_Pane(true, FlowLayout.LEADING, 0, 5);
UILabel imagePanel = new UILabel(BaseUtils.readIcon("/com/fr/base/images/share/version_not_match.png"));
imagePanel.setPreferredSize(new Dimension(240, 96));
imagePanel.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(imagePanel);
UILabel uiLabel1 = tipLabel(Toolkit.i18nText("Fine-Design_Share_Version_Not_Match_Tip1"));
UILabel uiLabel2 = tipLabel(Toolkit.i18nText("Fine-Design_Share_Version_Not_Match_Tip2"));
panel.add(uiLabel1);
panel.add(uiLabel2);
panel.setBorder(BorderFactory.createEmptyBorder(240, 0, 0, 0));
this.add(panel, BorderLayout.CENTER);
}
private UILabel tipLabel(String text) {
UILabel tipLabel = new UILabel(text);
tipLabel.setHorizontalAlignment(SwingConstants.CENTER);
tipLabel.setPreferredSize(new Dimension(240, 20));
tipLabel.setForeground(Color.decode("#8F8F92"));
return tipLabel;
}
public void enterWidgetLib() {
ComponentReuseNotifyUtil.enterWidgetLibExtraAction();
EastRegionContainerPane.getInstance().switchTabTo(EastRegionContainerPane.KEY_WIDGET_LIB);
ComponentReuseNotifyUtil.enterWidgetLibExtraAction(false);
}
/**

2
designer-form/src/main/java/com/fr/design/mainframe/share/ui/local/LocalWidgetRepoPane.java

@ -5,6 +5,7 @@ import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.VerticalFlowLayout;
import com.fr.design.mainframe.FormWidgetDetailPane;
import com.fr.design.mainframe.share.sort.WidgetSortType;
import com.fr.design.mainframe.share.ui.widgetfilter.LocalWidgetFilter;
import com.fr.design.mainframe.share.util.InstallComponentHelper;
@ -213,6 +214,7 @@ public class LocalWidgetRepoPane extends BasicPane {
Thread.currentThread().interrupt();
} catch (ExecutionException e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
FormWidgetDetailPane.getInstance().switch2Empty();
} finally {
isRefreshing.set(false);
}

11
designer-form/src/main/java/com/fr/design/mainframe/share/util/InstallComponentHelper.java

@ -46,9 +46,14 @@ public class InstallComponentHelper {
}
private static boolean needPreInstallComponent() {
//老用户或者组件库里已有组件,不预装组件
SnapChat snapChat = SnapChatFactory.createSnapChat(false, SnapChatKeys.COMPONENT);
return !snapChat.hasRead() && !hasComponentInstalled();
try {
//老用户或者组件库里已有组件,不预装组件
SnapChat snapChat = SnapChatFactory.createSnapChat(false, SnapChatKeys.COMPONENT);
return !snapChat.hasRead() && !hasComponentInstalled();
} catch (Throwable e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
return false;
}
/**

5
designer-realize/src/main/java/com/fr/design/mainframe/app/DesignerAppUtils.java

@ -77,6 +77,11 @@ public class DesignerAppUtils {
* @return 格式化后的多行插件错误信息详情
*/
public static String dealWithErrorDetailMultiLineAndCache(String key) {
if (!DesignerEnvManager.getEnvManager().isShowTemplateMissingPlugin()) {
// 直接清空不提示
TemplateIOErrorContextHolder.reset();
return StringUtils.EMPTY;
}
Multimap<String, PluginMarkerAdapter> pendingPlugins = TemplateIOErrorContextHolder.getPendingPlugin();
if (pendingPlugins.isEmpty()) {
return StringUtils.EMPTY;

2
designer-realize/src/main/java/com/fr/design/share/SharableManager.java

@ -3,6 +3,7 @@ package com.fr.design.share;
import com.fr.design.base.clipboard.ClipboardFilter;
import com.fr.design.designer.creator.XCreator;
import com.fr.design.designer.creator.XLayoutContainer;
import com.fr.design.mainframe.FormWidgetDetailPane;
import com.fr.design.mainframe.JForm;
import com.fr.design.mainframe.JTemplate;
import com.fr.design.mainframe.share.collect.ComponentCollector;
@ -55,6 +56,7 @@ public class SharableManager {
GeneralContext.addEnvChangedListenerToLast(new EnvChangedListener() {
@Override
public void envChanged() {
FormWidgetDetailPane.getInstance().resetEmptyPane();
LocalWidgetRepoPane.getInstance().refreshPane();
}
});

Loading…
Cancel
Save