From 471a2852aff5c6141319e3eba053b199ea9136dd Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Fri, 26 Apr 2019 11:06:20 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-16517=20=E4=BA=A4=E4=BA=92=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/DesignerEnvManager.java | 13 ++++++- .../design/actions/file/PreferencePane.java | 37 +++++++++++++++---- .../DesignerFrameFileDealerPane.java | 5 ++- .../mainframe/vcs/common/VcsHelper.java | 10 ++++- 4 files changed, 54 insertions(+), 11 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java b/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java index 6d8d5b9c0..2c028670e 100644 --- a/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java +++ b/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java @@ -132,6 +132,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { private String jdkHome; private boolean vcsEnable; private boolean saveCommit; + private boolean useInterval; private int saveInterval; @@ -1608,7 +1609,8 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { this.setUndoLimit(reader.getAttrAsInt("undoLimit", 5)); this.setDefaultStringToFormula(reader.getAttrAsBoolean("defaultStringToFormula", false)); this.setVcsEnable(reader.getAttrAsBoolean("supportVcs", true)); - this.setSaveCommit(reader.getAttrAsBoolean("saveCommit", false)); + this.setSaveCommit(reader.getAttrAsBoolean("saveCommit", true)); + this.setUseInterval(reader.getAttrAsBoolean("userInterval", true)); this.setSaveInterval(reader.getAttrAsInt("saveInterval", 60)); if ((tmpVal = reader.getAttrAsString("gridLineColor", null)) != null) { this.setGridLineColor(new Color(Integer.parseInt(tmpVal))); @@ -1947,6 +1949,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { .attr("supportCellEditorDef", this.isSupportCellEditorDef()) .attr("supportVcs", this.isVcsEnable()) .attr("saveInterval", this.getSaveInterval()) + .attr("userInterval", this.isUseInterval()) .attr("saveCommit", this.isSaveCommit()) .attr("isDragPermited", this.isDragPermited()) .attr("gridLineColor", this.getGridLineColor().getRGB()) @@ -1982,4 +1985,12 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { public void setSaveInterval(int saveInterval) { this.saveInterval = saveInterval; } + + public boolean isUseInterval() { + return useInterval; + } + + public void setUseInterval(boolean useInterval) { + this.useInterval = useInterval; + } } diff --git a/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java b/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java index e7db515af..da5d381c3 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java @@ -23,6 +23,7 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.DesignerContext; +import com.fr.design.mainframe.vcs.common.VcsHelper; import com.fr.design.update.push.DesignerPushUpdateManager; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.widget.FRWidgetFactory; @@ -139,7 +140,9 @@ public class PreferencePane extends BasicPane { private UICheckBox vcsEnableCheckBox; private UICheckBox saveCommitCheckBox; + private UICheckBox useIntervalCheckBox; private IntegerEditor saveIntervalEditor; + private UILabel remindVcsLabel; @@ -205,15 +208,22 @@ public class PreferencePane extends BasicPane { private void createVcsSettingPane(JPanel generalPane) { JPanel vcsPane = FRGUIPaneFactory.createVerticalTitledBorderPane(Toolkit.i18nText("Fine-Design_Vcs_Title")); generalPane.add(vcsPane); + remindVcsLabel = new UILabel("Fine-Design_Vcs_Remind"); + remindVcsLabel.setVisible(!VcsHelper.needInit()); vcsEnableCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Vcs_SaveAuto")); saveCommitCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Vcs_No_Delete")); saveIntervalEditor = new IntegerEditor(30); - JPanel memorySpace = new JPanel(FRGUIPaneFactory.createLeftZeroLayout()); + useIntervalCheckBox = new UICheckBox(); + JPanel enableVcsPanel = new JPanel(FRGUIPaneFactory.createLeftZeroLayout()); + enableVcsPanel.add(vcsEnableCheckBox); + enableVcsPanel.add(remindVcsLabel); + JPanel intervalPanel = new JPanel(FRGUIPaneFactory.createLeftZeroLayout()); UILabel everyLabel = new UILabel(Toolkit.i18nText("Fine-Design_Vcs_Every")); UILabel delayLabel = new UILabel(Toolkit.i18nText("Fine-Design_Vcs_Delay")); - memorySpace.add(everyLabel); - memorySpace.add(saveIntervalEditor); - memorySpace.add(delayLabel); + intervalPanel.add(useIntervalCheckBox); + intervalPanel.add(everyLabel); + intervalPanel.add(saveIntervalEditor); + intervalPanel.add(delayLabel); vcsEnableCheckBox.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { @@ -221,14 +231,16 @@ public class PreferencePane extends BasicPane { if (selected) { saveCommitCheckBox.setEnabled(true); saveIntervalEditor.setEnabled(true); + useIntervalCheckBox.setEnabled(true); } else { saveCommitCheckBox.setEnabled(false); saveIntervalEditor.setEnabled(false); + useIntervalCheckBox.setEnabled(false); } } }); - vcsPane.add(vcsEnableCheckBox); - vcsPane.add(memorySpace); + vcsPane.add(enableVcsPanel); + vcsPane.add(intervalPanel); vcsPane.add(saveCommitCheckBox); } @@ -581,13 +593,21 @@ public class PreferencePane extends BasicPane { defaultStringToFormulaBox.setEnabled(false); defaultStringToFormulaBox.setSelected(false); } - vcsEnableCheckBox.setSelected(designerEnvManager.isVcsEnable()); + if (VcsHelper.needInit()) { + vcsEnableCheckBox.setSelected(designerEnvManager.isVcsEnable()); + } else { + vcsEnableCheckBox.setEnabled(false); + vcsEnableCheckBox.setSelected(false); + } if (!vcsEnableCheckBox.isSelected()) { - saveIntervalEditor.setEnabled(false); saveCommitCheckBox.setEnabled(false); + saveIntervalEditor.setEnabled(false); + useIntervalCheckBox.setEnabled(false); } + saveIntervalEditor.setValue(designerEnvManager.getSaveInterval()); saveCommitCheckBox.setSelected(designerEnvManager.isSaveCommit()); + useIntervalCheckBox.setSelected(designerEnvManager.isUseInterval()); supportCellEditorDefCheckBox.setSelected(designerEnvManager.isSupportCellEditorDef()); @@ -680,6 +700,7 @@ public class PreferencePane extends BasicPane { designerEnvManager.setSaveInterval(this.saveIntervalEditor.getValue()); designerEnvManager.setVcsEnable(this.vcsEnableCheckBox.isSelected()); designerEnvManager.setSaveCommit(this.saveCommitCheckBox.isSelected()); + designerEnvManager.setUseInterval(this.useIntervalCheckBox.isSelected()); if (this.autoPushUpdateCheckBox != null) { designerEnvManager.setAutoPushUpdateEnabled(this.autoPushUpdateCheckBox.isSelected()); } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java b/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java index 32b9d1140..87966c6c1 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java @@ -197,11 +197,14 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt if (WorkContext.getCurrent().isLocal()) { toolbarDef.addShortCut(showInExplorerAction); } - toolbarDef.addShortCut(renameAction, delFileAction, vcsAction); + toolbarDef.addShortCut(renameAction, delFileAction); Set extraShortCuts = ExtraDesignClassManager.getInstance().getExtraShortCuts(); for (ShortCut shortCut : extraShortCuts) { toolbarDef.addShortCut(shortCut); } + if (VcsHelper.needInit()) { + toolbarDef.addShortCut(vcsAction); + } toolbarDef.updateToolBar(toolBar); resetActionStatus(); refresh(); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsHelper.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsHelper.java index ecde0e133..748d10026 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsHelper.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsHelper.java @@ -7,6 +7,8 @@ import com.fr.design.gui.itree.filetree.TemplateFileTree; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.JTemplate; import com.fr.general.IOUtils; +import com.fr.plugin.context.PluginContext; +import com.fr.plugin.manage.PluginManager; import com.fr.report.entity.VcsEntity; import com.fr.stable.StringUtils; import com.fr.stable.project.ProjectConstants; @@ -27,6 +29,7 @@ public class VcsHelper { private final static String VCS_DIR = "vcs"; public final static String VCS_CACHE_DIR = pathJoin(VCS_DIR, "cache"); private static final int MINUTE = 60 * 1000; + private final static String VCS_PLUGIN_ID = "com.fr.plugin.vcs.v10"; public final static String CURRENT_USERNAME = WorkContext.getCurrent().isLocal() @@ -92,11 +95,16 @@ public class VcsHelper { } public static boolean needDeleteVersion(VcsEntity entity) { - if (entity == null) { + if (entity == null || !DesignerEnvManager.getEnvManager().isUseInterval()) { return false; } return new Date().getTime() - entity.getTime().getTime() < DesignerEnvManager.getEnvManager().getSaveInterval() * MINUTE && StringUtils.isBlank(entity.getCommitMsg()); } + public static boolean needInit() { + PluginContext context = PluginManager.getContext(VCS_PLUGIN_ID); + return context == null || !context.isActive(); + } + }