Browse Source

Merge pull request #16974 in DESIGN/design from bugfix/11.0 to feature/x

* commit '1770bdb32b865db4e9e6704fe76a5f63bef2d4ea':
  REPORT-149091 修复动态参数切换异常
  KERNEL-20956 修复jxbrowser因解压文件导致的启动失败问题
feature/x
superman 1 month ago
parent
commit
6187af1ee2
  1. 18
      designer-base/src/main/java/com/fr/design/jxbrowser/JxEngine.java
  2. 26
      designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java

18
designer-base/src/main/java/com/fr/design/jxbrowser/JxEngine.java

@ -3,8 +3,10 @@ package com.fr.design.jxbrowser;
import com.fr.design.DesignerEnvManager;
import com.fr.design.ui.ModernUIConstants;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.CommonUtils;
import com.fr.value.ClearableLazyValue;
import com.fr.web.struct.AssembleComponent;
import com.teamdev.jxbrowser.engine.ChromiumBinariesExtractionException;
import com.teamdev.jxbrowser.engine.Engine;
import com.teamdev.jxbrowser.engine.EngineOptions;
import com.teamdev.jxbrowser.engine.RenderingMode;
@ -12,8 +14,11 @@ import com.teamdev.jxbrowser.engine.event.EngineCrashed;
import com.teamdev.jxbrowser.net.Network;
import com.teamdev.jxbrowser.net.Scheme;
import com.teamdev.jxbrowser.net.callback.VerifyCertificateCallback;
import com.teamdev.jxbrowser.os.Environment;
import org.jetbrains.annotations.NotNull;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Collections;
import java.util.Map;
@ -41,7 +46,18 @@ public class JxEngine {
.addSwitch("--disable-google-traffic")
.addScheme(Scheme.of(ModernUIConstants.EMB_TAG),
new NxInterceptRequestCallback(this::getComponent, this::getParameterMap));
Engine engine = Engine.newInstance(builder.build());
Engine engine;
try {
engine = Engine.newInstance(builder.build());
} catch (ChromiumBinariesExtractionException e) {
Path chromiumDir = Paths.get(System.getProperty("jxbrowser.chromium.dir", Environment.defaultChromiumDir().toString()));
if (CommonUtils.deleteFile(chromiumDir.toFile())) {
FineLoggerFactory.getLogger().warn("[jxbrowser]Retry start engine success after delete chromium dir manually: {}", chromiumDir);
engine = Engine.newInstance(builder.build());
} else {
throw e;
}
}
engine.on(EngineCrashed.class, (event) -> {
FineLoggerFactory.getLogger().error("jxBrowser engine crashed with exitCode: {}", event.exitCode());
event.engine().close();

26
designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java

@ -21,6 +21,7 @@ import com.fr.design.mainframe.ElementCasePane;
import com.fr.design.utils.gui.UIComponentUtils;
import com.fr.design.widget.FRWidgetFactory;
import com.fr.general.data.TableDataColumn;
import com.fr.log.FineLoggerFactory;
import com.fr.report.cell.CellElement;
import com.fr.report.cell.TemplateCellElement;
import com.fr.report.cell.cellattr.core.group.DSColumn;
@ -373,13 +374,33 @@ public class SelectedDataColumnPane extends BasicPane {
update(SelectedDataColumnPane.this.cellElement);
casePane.fireTargetModified();
}
@Override
public void doCancel() {
editorPane.stopEditing();
}
});
editorPane.populate(ps == null ? new Parameter[0] : ps);
editorPane.populate(ps == null ? new Parameter[0] : cloneParameterList(ps));
paramDialog.setVisible(true);
}
});
}
private Parameter[] cloneParameterList(Parameter[] parameters) {
if (parameters == null) {
return null;
}
try {
Parameter[] cloneParameterList = new Parameter[parameters.length];
for (int i = 0; i < parameters.length; i++) {
cloneParameterList[i] = (Parameter) parameters[i].clone();
}
return cloneParameterList;
} catch (CloneNotSupportedException e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
return null;
}
private boolean isColumnName(String columnExp) {
return StringUtils.isNotBlank(columnExp) && (columnExp.length() > 0 && columnExp.charAt(0) == '#') && !columnExp.endsWith("#");
@ -397,8 +418,7 @@ public class SelectedDataColumnPane extends BasicPane {
public Dimension getPreferredSize() {
if (this.isVisible()) {
return super.getPreferredSize();
}
else {
} else {
return new Dimension();
}
}

Loading…
Cancel
Save