|
|
|
@ -766,8 +766,8 @@ public class MutilTempalteTabPane extends JComponent {
|
|
|
|
|
// 如果关闭的模板是当前选中的模板,则重新激活当前 selectIndex 的模板;
|
|
|
|
|
// selectIndex 没有变化,但是对应的模板已经变成了前一张模板
|
|
|
|
|
if (closeIconIndex == selectedIndex || isCloseCurrent) { |
|
|
|
|
// 如果 closeIconIndex 是最后一个被渲染画出的,那么预览上一个,防止数组越界
|
|
|
|
|
if (closeIconIndex >= maxPaintIndex) { |
|
|
|
|
// 如果当前关闭的模板在最右侧,那么预览上一个,防止数组越界
|
|
|
|
|
if (selectedIndex >= 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 { |
|
|
|
|
/** |
|
|
|
|