Browse Source

Pull request #12249: REPORT-91839 模板版本管理二期 修复bug

Merge in DESIGN/design from ~DESTINY.LIN/design:feature/x to feature/x

* commit 'b8f7eda1b0fbc2bb30f0281d6b4a6abcf6b788b3':
  REPORT-91839 模板版本管理二期 修复bug
feature/x
parent
commit
5619bf3f82
  1. 54
      designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsHelper.java
  2. 11
      designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsMovePanel.java

54
designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsHelper.java

@ -79,7 +79,14 @@ public class VcsHelper implements JTemplateActionListener {
EventDispatcher.listen(ConfigEvent.READY, new ListenerAdaptor() {
@Override
protected void on(Event event) {
legacyMode = WorkContext.getCurrent().get(VcsOperator.class).isLegacyMode();
try {
legacyMode = WorkContext.getCurrent().get(VcsOperator.class).isLegacyMode();
FineLoggerFactory.getLogger().info("[VcsHelper] legacyMode:{}", legacyMode);
} catch (Exception e) {
//保险起见走老逻辑
legacyMode = true;
FineLoggerFactory.getLogger().error("[VcsHelper] get legacy failed", e.getMessage());
}
}
});
}
@ -99,7 +106,6 @@ public class VcsHelper implements JTemplateActionListener {
JTemplate template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate();
if (DesignerEnvManager.getEnvManager().getVcsConfigManager().isVcsEnable() && JTemplate.isValid(template)) {
fireAutoSaveVcs(template);
FineLoggerFactory.getLogger().info("[VcsV2] fire Vcs auto save success!");
}
}
}, interval, interval, TimeUnit.MINUTES);
@ -263,7 +269,7 @@ public class VcsHelper implements JTemplateActionListener {
@Override
public void templateOpened(JTemplate<?, ?> jt) {
try {
if (VcsConfigManager.getInstance().isUseAutoSave()) {
if (checkAutoSaveSupport()) {
startAutoSave(VcsConfigManager.getInstance().getAutoSaveInterval());
}
} catch (Exception e) {
@ -282,25 +288,16 @@ public class VcsHelper implements JTemplateActionListener {
* @param jt 模板
*/
public void fireAutoSaveVcs(final JTemplate jt) {
ExecutorService fireVcs = Executors.newSingleThreadExecutor(new NamedThreadFactory("autoFireVcs"));
fireVcs.execute(new Runnable() {
@Override
public void run() {
String fileName = getEditingFilename();
VcsOperator operator = WorkContext.getCurrent().get(VcsOperator.class);
VcsEntity entity = operator.getFileVersionByIndex(fileName, 0);
boolean replace = needDeleteVersion(entity);
int latestFileVersion = 0;
if (entity != null) {
latestFileVersion = entity.getVersion();
}
if (JTemplate.isValid(jt)) {
doSave(jt, fileName, latestFileVersion, replace, operator);
}
}
});
if (!fireVcs.isShutdown()) {
fireVcs.shutdown();
String fileName = getEditingFilename();
VcsOperator operator = WorkContext.getCurrent().get(VcsOperator.class);
VcsEntity entity = operator.getFileVersionByIndex(fileName, 0);
boolean replace = needDeleteVersion(entity);
int latestFileVersion = 0;
if (entity != null) {
latestFileVersion = entity.getVersion();
}
if (JTemplate.isValid(jt)) {
doSave(jt, fileName, latestFileVersion, replace, operator);
}
}
@ -348,7 +345,9 @@ public class VcsHelper implements JTemplateActionListener {
@Override
public void templateClosed(JTemplate<?, ?> jt) {
try {
stopAutoSave();
if (checkAutoSaveSupport()) {
stopAutoSave();
}
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage());
}
@ -372,4 +371,13 @@ public class VcsHelper implements JTemplateActionListener {
public boolean checkMoveFunctionSupport() {
return VcsHelper.getInstance().isLegacyMode() && (WorkContext.getCurrent().isLocal() || WorkContext.getCurrent().isRoot());
}
/**
* 是否支持自动保存
*
* @return 支持返回true
*/
public boolean checkAutoSaveSupport() {
return VcsConfigManager.getInstance().isUseAutoSave() && !VcsHelper.getInstance().isLegacyMode();
}
}

11
designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsMovePanel.java

@ -19,10 +19,6 @@ import com.fr.design.widget.FRWidgetFactory;
import com.fr.general.FRFont;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
import com.fr.transaction.Configurations;
import com.fr.transaction.WorkerAdaptor;
import com.fr.workspace.server.vcs.VcsConfig;
import com.fr.workspace.server.vcs.VcsManager;
import com.fr.workspace.server.vcs.v2.move.VcsMoveService;
import com.fr.workspace.server.vcs.v2.move.VcsMoveStrategy;
@ -391,13 +387,6 @@ public class VcsMovePanel extends BasicPane {
VcsMoveService.getInstance().stopMoving();
initSuccessPane();
VcsMovePanel.this.getParentCard().show(getParentPane(), SUCCESS);
Configurations.update(new WorkerAdaptor(VcsConfig.class) {
@Override
public void run() {
VcsConfig.getInstance().setUseV2(true);
}
});
VcsManager.getInstance().updateManager();
VcsHelper.getInstance().updateLegacyMode();
}
}

Loading…
Cancel
Save