@ -766,8 +766,8 @@ public class MutilTempalteTabPane extends JComponent {
// 如果关闭的模板是当前选中的模板,则重新激活当前 selectIndex 的模板;
// selectIndex 没有变化,但是对应的模板已经变成了前一张模板
if ( closeIconIndex = = selectedIndex | | isCloseCurrent ) {
// 如果 closeIconIndex 是最后一个被渲染画出的 ,那么预览上一个,防止数组越界
if ( closeIcon Index > = maxPaintIndex ) {
// 如果当前关闭的模板在最右侧 ,那么预览上一个,防止数组越界
if ( selected Index > = maxPaintIndex ) {
// selectIndex 不会 <0 因为如果关闭的是打开的最后一个模板,那么关闭之后 openedTemplate.isEmpty() = true
selectedIndex - - ;
}
@ -953,6 +953,10 @@ public class MutilTempalteTabPane extends JComponent {
return ;
}
}
//参考CloseCurrentTemplateAction,在closeFormat与closeSpecifiedTemplate之前要先设定isCloseCurrent,这样关闭之后才会自动切换tab
if ( checkCurrentClose ( template ) ) {
setIsCloseCurrent ( true ) ;
}
closeFormat ( template ) ;
closeSpecifiedTemplate ( template ) ;
DesignerContext . getDesignerFrame ( ) . getContentFrame ( ) . repaint ( ) ;
@ -985,6 +989,12 @@ public class MutilTempalteTabPane extends JComponent {
}
private boolean checkCurrentClose ( JTemplate template ) {
JTemplate currentTemplate = HistoryTemplateListCache . getInstance ( ) . getCurrentEditingTemplate ( ) ;
//10.0无JTemplate.isValid
return currentTemplate ! = null & & ComparatorUtils . equals ( template . getPath ( ) , currentTemplate . getPath ( ) ) ;
}
private class MultiTemplateTabMouseMotionListener implements MouseMotionListener {
/ * *