@ -12,9 +12,6 @@ import com.fr.design.mainframe.JTemplate;
import com.fr.design.mainframe.JTemplateActionListener ;
import com.fr.design.mainframe.vcs.VcsConfigManager ;
import com.fr.design.mainframe.vcs.ui.FileVersionTable ;
import com.fr.event.Event ;
import com.fr.event.EventDispatcher ;
import com.fr.event.Listener ;
import com.fr.general.IOUtils ;
import com.fr.log.FineLoggerFactory ;
import com.fr.plugin.context.PluginContext ;
@ -23,14 +20,11 @@ import com.fr.report.entity.VcsEntity;
import com.fr.stable.StringUtils ;
import com.fr.stable.project.ProjectConstants ;
import com.fr.workspace.WorkContext ;
import com.fr.workspace.Workspace ;
import com.fr.workspace.WorkspaceEvent ;
import com.fr.workspace.server.vcs.VcsOperator ;
import com.fr.workspace.server.vcs.filesystem.VcsFileSystem ;
import com.fr.workspace.server.vcs.git.config.GcConfig ;
import javax.swing.Icon ;
import javax.swing.SwingUtilities ;
import javax.swing.border.EmptyBorder ;
import java.awt.Color ;
import java.util.List ;
@ -61,26 +55,10 @@ public class VcsHelper implements JTemplateActionListener {
private final static String SERVICE_NAME_MOVE = "moveVcs" ;
private static final VcsHelper INSTANCE = new VcsHelper ( ) ;
private volatile boolean legacyMode ;
public static VcsHelper getInstance ( ) {
return INSTANCE ;
}
private VcsHelper ( ) {
VcsOperator op = WorkContext . getCurrent ( ) . get ( VcsOperator . class ) ;
// 开了设计器启动页面时一开始取不到VcsOperator,通过下面的切换环境事件再取,这边判断下
if ( op ! = null ) {
legacyMode = op . isLegacyMode ( ) ;
}
EventDispatcher . listen ( WorkspaceEvent . AfterSwitch , new Listener < Workspace > ( ) {
@Override
public void on ( Event event , Workspace param ) {
legacyMode = WorkContext . getCurrent ( ) . get ( VcsOperator . class ) . isLegacyMode ( ) ;
}
} ) ;
}
private int containsFolderCounts ( ) {
TemplateFileTree fileTree = TemplateTreePane . getInstance ( ) . getTemplateFileTree ( ) ;
if ( fileTree . getSelectionPaths ( ) = = null ) {
@ -159,18 +137,20 @@ public class VcsHelper implements JTemplateActionListener {
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 ( jt . getEditingFILE ( ) instanceof VcsCacheFileNodeFile ) {
operator . saveVersionFromCache ( getCurrentUsername ( ) , fileName , StringUtils . EMPTY , latestFileVersion + 1 , replace ) ;
operator . saveVersionFromCache ( getCurrentUsername ( ) , fileName , StringUtils . EMPTY , latestFileVersion + 1 ) ;
String path = DesignerFrameFileDealerPane . getInstance ( ) . getSelectedOperation ( ) . getFilePath ( ) ;
List < VcsEntity > updatedList = WorkContext . getCurrent ( ) . get ( VcsOperator . class ) . getVersions ( path . replaceFirst ( VCS_FILE_SLASH , StringUtils . EMPTY ) ) ;
SwingUtilities . invokeLater ( ( ) - > FileVersionTable . getInstance ( ) . updateModel ( 1 , updatedList ) ) ;
FileVersionTable . getInstance ( ) . updateModel ( 1 , WorkContext . getCurrent ( ) . get ( VcsOperator . class ) . getVersions ( path . replaceFirst ( VCS_FILE_SLASH , StringUtils . EMPTY ) ) ) ;
} else {
operator . saveVersion ( getCurrentUsername ( ) , fileName , StringUtils . EMPTY , latestFileVersion + 1 , replace ) ;
operator . saveVersion ( getCurrentUsername ( ) , fileName , StringUtils . EMPTY , latestFileVersion + 1 ) ;
}
VcsEntity oldEntity = WorkContext . getCurrent ( ) . get ( VcsOperator . class ) . getFileVersionByIndexAndUsername ( fileName , getCurrentUsername ( ) , 1 ) ;
if ( needDeleteVersion ( oldEntity ) ) {
operator . deleteVersion ( oldEntity . getFilename ( ) , oldEntity . getVersion ( ) ) ;
}
if ( GcConfig . getInstance ( ) . isGcEnable ( ) ) {
operator . gc ( ) ;
@ -208,13 +188,6 @@ public class VcsHelper implements JTemplateActionListener {
moveVcs . shutdown ( ) ;
}
/ * *
* 判断是否为老模式
* @return 是否为老模式
* /
public boolean isLegacyMode ( ) {
return legacyMode ;
}
@Override
public void templateOpened ( JTemplate < ? , ? > jt ) {