Browse Source

Merging in latest from upstream (DESIGN/design:refs/heads/feature/10.0)

* commit '50d9d36180a069769470b1fe9cbedfb7b68ff631':
  无jira 同步到feature
  REPORT-27647 模板组件的安装下载-模板组件复用插件 处理下可能的 npe
  REPORT-27647 模板组件的安装下载-模板组件复用插件 修复部分监听上的问题
persist/11.0
richie 5 years ago
parent
commit
448827b14a
  1. 4
      designer-base/src/main/java/com/fr/design/fun/PropertyItemPaneProvider.java
  2. 39
      designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java
  3. 10
      designer-base/src/main/java/com/fr/design/mainframe/PropertyItemBean.java
  4. 12
      designer-base/src/main/java/com/fr/design/notification/SnapChatConfig.java
  5. 2
      designer-form/src/main/java/com/fr/design/mainframe/JForm.java
  6. 16
      designer-realize/src/main/java/com/fr/start/DesignerLauncher.java
  7. 14
      designer-realize/src/main/java/com/fr/start/FineDesigner.java

4
designer-base/src/main/java/com/fr/design/fun/PropertyItemPaneProvider.java

@ -14,6 +14,10 @@ public interface PropertyItemPaneProvider<T> extends Mutable {
String XML_TAG = "PropertyItemPaneProvider"; String XML_TAG = "PropertyItemPaneProvider";
int FIRST = 100;
int LAST = -100;
/** /**
* 独一无二的标志 * 独一无二的标志
* *

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

@ -145,7 +145,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
}; };
PluginListenerRegistration.getInstance().listen( PluginListenerRegistration.getInstance().listen(
PluginEventType.AfterRun, PluginEventType.AfterRun,
new PluginEventListener() { new PluginEventListener(PropertyItemPaneProvider.FIRST) {
@Override @Override
public void on(PluginEvent event) { public void on(PluginEvent event) {
PluginContext context = event.getContext(); PluginContext context = event.getContext();
@ -159,7 +159,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
}, filter); }, filter);
PluginListenerRegistration.getInstance().listen( PluginListenerRegistration.getInstance().listen(
PluginEventType.BeforeStop, PluginEventType.BeforeStop,
new PluginEventListener(10) { new PluginEventListener(PropertyItemPaneProvider.FIRST) {
@Override @Override
public void on(PluginEvent event) { public void on(PluginEvent event) {
PluginContext context = event.getContext(); PluginContext context = event.getContext();
@ -201,10 +201,14 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
String key = provider.key(); String key = provider.key();
PropertyItemBean itemBean = provider.getItem(); PropertyItemBean itemBean = provider.getItem();
PropertyItem propertyItem = new PropertyItem(itemBean.getName(), PropertyItem propertyItem = new PropertyItem(itemBean.getName(),
itemBean.getTitle(), itemBean.getTitle(),
itemBean.getBtnIconName(), itemBean.getBtnIconName(),
itemBean.getVisibleModes(), itemBean.getVisibleModes(),
itemBean.getEnableModes()); itemBean.getEnableModes());
String btnIconBaseDir = itemBean.getBtnIconBaseDir();
if (StringUtils.isNotEmpty(btnIconBaseDir)) {
propertyItem.setIconBaseDir(btnIconBaseDir);
}
UIButton button = propertyItem.getButton(); UIButton button = propertyItem.getButton();
List<ActionListener> buttonListeners = itemBean.getButtonListeners(); List<ActionListener> buttonListeners = itemBean.getButtonListeners();
for (ActionListener buttonListener : buttonListeners) { for (ActionListener buttonListener : buttonListeners) {
@ -648,14 +652,21 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
private static final String ICON_SUFFIX_DISABLED = "_disabled.png"; private static final String ICON_SUFFIX_DISABLED = "_disabled.png";
private static final String ICON_SUFFIX_SELECTED = "_selected.png"; private static final String ICON_SUFFIX_SELECTED = "_selected.png";
private String btnIconName; private String btnIconName;
private String iconBaseDir;
private String iconSuffix = ICON_SUFFIX_NORMAL; // normal, diabled, selected, 三者之一 private String iconSuffix = ICON_SUFFIX_NORMAL; // normal, diabled, selected, 三者之一
private final Color selectedBtnBackground = new Color(0xF5F5F7); private final Color selectedBtnBackground = new Color(0xF5F5F7);
private Color originBtnBackground; private Color originBtnBackground;
public PropertyItem(String name, String title, String btnIconName, PropertyMode[] visibleModes, PropertyMode[] enableModes) { public PropertyItem(String name, String title, String btnIconName, PropertyMode[] visibleModes, PropertyMode[] enableModes) {
this(name, title, btnIconName, ICON_BASE_DIR, visibleModes, enableModes);
}
public PropertyItem(String name, String title, String btnIconName, String iconBaseDir, PropertyMode[] visibleModes, PropertyMode[] enableModes) {
this.name = name; this.name = name;
this.title = title; this.title = title;
this.btnIconName = btnIconName; this.btnIconName = btnIconName;
this.iconBaseDir = iconBaseDir;
initButton(); initButton();
initPropertyPanel(); initPropertyPanel();
initModes(visibleModes, enableModes); initModes(visibleModes, enableModes);
@ -712,7 +723,16 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
this.isEnabled = isEnabled; this.isEnabled = isEnabled;
button.setEnabled(isEnabled); button.setEnabled(isEnabled);
} }
public void setIconBaseDir(String iconBaseDir) {
this.iconBaseDir = iconBaseDir;
}
private String getIconBaseDir() {
return StringUtils.isEmpty(iconBaseDir) ? ICON_BASE_DIR : iconBaseDir;
}
private void initPropertyPanel() { private void initPropertyPanel() {
propertyPanel = new JPanel(); propertyPanel = new JPanel();
propertyPanel.setBackground(Color.pink); propertyPanel.setBackground(Color.pink);
@ -793,7 +813,8 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
} }
private String getBtnIconUrl() { private String getBtnIconUrl() {
return ICON_BASE_DIR + btnIconName + iconSuffix;
return getIconBaseDir() + btnIconName + iconSuffix;
} }
public void resetButtonIcon() { public void resetButtonIcon() {

10
designer-base/src/main/java/com/fr/design/mainframe/PropertyItemBean.java

@ -11,6 +11,7 @@ public class PropertyItemBean {
private String name; private String name;
private String title; private String title;
private String btnIconName; private String btnIconName;
private String btnIconBaseDir;
private EastRegionContainerPane.PropertyMode[] visibleModes; private EastRegionContainerPane.PropertyMode[] visibleModes;
private EastRegionContainerPane.PropertyMode[] enableModes; private EastRegionContainerPane.PropertyMode[] enableModes;
private List<ActionListener> buttonListeners; private List<ActionListener> buttonListeners;
@ -42,6 +43,15 @@ public class PropertyItemBean {
this.btnIconName = btnIconName; this.btnIconName = btnIconName;
} }
public String getBtnIconBaseDir() {
return btnIconBaseDir;
}
public void setBtnIconBaseDir(String btnIconBaseDir) {
this.btnIconBaseDir = btnIconBaseDir;
}
public EastRegionContainerPane.PropertyMode[] getVisibleModes() { public EastRegionContainerPane.PropertyMode[] getVisibleModes() {
return visibleModes; return visibleModes;
} }

12
designer-base/src/main/java/com/fr/design/notification/SnapChatConfig.java

@ -43,9 +43,12 @@ public class SnapChatConfig implements XMLable {
@Override @Override
public void readXML(XMLableReader reader) { public void readXML(XMLableReader reader) {
String tagName = reader.getTagName(); if (reader.isChildNode()) {
if ("MarkReadMap".equals(tagName)) { if ("item".equals(reader.getTagName())) {
readMarkReadMapXML(reader); String tmpVal = reader.getElementValue();
Boolean markRead = Boolean.valueOf(tmpVal);
markReadMap.put(reader.getAttrAsString("key", StringUtils.EMPTY), markRead);
}
} }
} }
@ -62,9 +65,6 @@ public class SnapChatConfig implements XMLable {
reader.readXMLObject(new XMLReadable() { reader.readXMLObject(new XMLReadable() {
@Override @Override
public void readXML(XMLableReader reader) { public void readXML(XMLableReader reader) {
String tmpVal = reader.getElementValue();
Boolean markRead = Boolean.valueOf(tmpVal);
markReadMap.put(reader.getAttrAsString("key", StringUtils.EMPTY), markRead);
} }
}); });
} }

2
designer-form/src/main/java/com/fr/design/mainframe/JForm.java

@ -148,7 +148,7 @@ public class JForm extends JTemplate<Form, FormUndoState> implements BaseJForm<F
} }
}; };
PluginListenerRegistration.getInstance().listen(PluginEventType.AfterRun, PluginListenerRegistration.getInstance().listen(PluginEventType.AfterRun,
new PluginEventListener() { new PluginEventListener(PropertyItemPaneProvider.LAST) {
@Override @Override
public void on(PluginEvent event) { public void on(PluginEvent event) {
PluginContext context = event.getContext(); PluginContext context = event.getContext();

16
designer-realize/src/main/java/com/fr/start/DesignerLauncher.java

@ -3,6 +3,9 @@ package com.fr.start;
import com.fr.process.FineProcess; import com.fr.process.FineProcess;
import com.fr.process.engine.FineJavaProcessFactory; import com.fr.process.engine.FineJavaProcessFactory;
import com.fr.process.engine.core.FineProcessContext; import com.fr.process.engine.core.FineProcessContext;
import com.fr.stable.StableUtils;
import java.io.File;
/** /**
* @author hades * @author hades
@ -11,6 +14,10 @@ import com.fr.process.engine.core.FineProcessContext;
*/ */
public class DesignerLauncher { public class DesignerLauncher {
private static final String BIN = "bin";
private static final String DOT =".";
private static final String BIN_HOME = generateBinHome();
private static final DesignerLauncher INSTANCE = new DesignerLauncher(); private static final DesignerLauncher INSTANCE = new DesignerLauncher();
private String[] args; private String[] args;
@ -19,6 +26,11 @@ public class DesignerLauncher {
} }
private static String generateBinHome() {
return DOT.equals(StableUtils.getInstallHome()) ?
DOT : StableUtils.getInstallHome() + File.separator + BIN;
}
public static DesignerLauncher getInstance() { public static DesignerLauncher getInstance() {
return INSTANCE; return INSTANCE;
} }
@ -26,12 +38,14 @@ public class DesignerLauncher {
public void start(String[] args) { public void start(String[] args) {
this.args = args; this.args = args;
FineJavaProcessFactory.create(). FineJavaProcessFactory.create().
entry("com.fr.start.MainDesigner"). entry(MainDesigner.class).
javaRuntime(DesignerJavaRuntime.getInstance().getJavaExec()). javaRuntime(DesignerJavaRuntime.getInstance().getJavaExec()).
classPath(DesignerJavaRuntime.getInstance().getClassPath()). classPath(DesignerJavaRuntime.getInstance().getClassPath()).
inheritJvmSettings(). inheritJvmSettings().
jvmSettings(DesignerJavaRuntime.getInstance().getJvmOptions()). jvmSettings(DesignerJavaRuntime.getInstance().getJvmOptions()).
arguments(args). arguments(args).
directory(BIN_HOME).
entryPackage(FineDesigner.class).
startProcess(DesignerProcessType.INSTANCE); startProcess(DesignerProcessType.INSTANCE);
DesignerSuperListener.getInstance().start(); DesignerSuperListener.getInstance().start();
} }

14
designer-realize/src/main/java/com/fr/start/FineDesigner.java

@ -0,0 +1,14 @@
package com.fr.start;
import com.fr.process.engine.core.FineProcessEntry;
/**
* 包装类 改变子进程的进程名
*
* @author hades
* @version 10.0
* Created by hades on 2020/3/24
*/
public class FineDesigner extends FineProcessEntry {
}
Loading…
Cancel
Save