|
|
|
@ -7,6 +7,13 @@ import java.util.List;
|
|
|
|
|
import java.util.function.Predicate; |
|
|
|
|
|
|
|
|
|
public class MultiTemplateTabUtils { |
|
|
|
|
/** |
|
|
|
|
* 计算离currentIndex最近的相同模式的模板index值(优先左边) |
|
|
|
|
* @param currentIndex 当前index |
|
|
|
|
* @param openedTemplate 模板list |
|
|
|
|
* @param type 当前显示模式 |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static int calShowTemplateIndex(int currentIndex, List<JTemplate<?, ?>> openedTemplate, String type) { |
|
|
|
|
if (currentIndex < 0 || currentIndex > openedTemplate.size() - 1) { |
|
|
|
|
return -1; |
|
|
|
@ -16,6 +23,13 @@ public class MultiTemplateTabUtils {
|
|
|
|
|
return getShowJTemplateTab(currentIndex, openedTemplate, template -> !showJTemplateTab(type, template)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 先从左找,再从右找离得最近的满足条件的模板 |
|
|
|
|
* @param currentIndex 当前index |
|
|
|
|
* @param openedTemplate 模板list |
|
|
|
|
* @param predicate |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
private static int getShowJTemplateTab(int currentIndex, List<JTemplate<?, ?>> openedTemplate, Predicate<JTemplate<?, ?>> predicate) { |
|
|
|
|
for (int i = currentIndex; i >= 0; i--) { |
|
|
|
|
if (predicate.test(openedTemplate.get(i))) { |
|
|
|
@ -30,6 +44,12 @@ public class MultiTemplateTabUtils {
|
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 是否显示模板 |
|
|
|
|
* @param type 模板类型 |
|
|
|
|
* @param jTemplate 模板 |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
private static boolean showJTemplateTab(String type, JTemplate<?, ?> jTemplate) { |
|
|
|
|
return ComparatorUtils.equals(type, jTemplate.getTemplateTabOperatorType()); |
|
|
|
|
} |
|
|
|
|