diff --git a/src/main/java/com/sjhy/plugin/ui/MainSetting.form b/src/main/java/com/sjhy/plugin/ui/MainSetting.form
index 9aadd3c0a594353267806272e2fb49852f4d17ee..b37c5cf569c08f7e6ba43c79548b7fe2f8c200ff 100644
--- a/src/main/java/com/sjhy/plugin/ui/MainSetting.form
+++ b/src/main/java/com/sjhy/plugin/ui/MainSetting.form
@@ -1,6 +1,6 @@
diff --git a/src/main/java/com/sjhy/plugin/ui/MainSetting.java b/src/main/java/com/sjhy/plugin/ui/MainSetting.java
index b99576e5f23d8a9da9272c49e06ba10803dc3ec2..1ac15686b599fa0762b9c22bb9a2d8d38136522c 100644
--- a/src/main/java/com/sjhy/plugin/ui/MainSetting.java
+++ b/src/main/java/com/sjhy/plugin/ui/MainSetting.java
@@ -62,6 +62,10 @@ public class MainSetting implements Configurable, Configurable.Composite {
* 模板导出按钮
*/
private JButton exportBtn;
+ /**
+ * 当前版本号
+ */
+ private JLabel versionLabel;
/**
* 重置列表
@@ -294,6 +298,7 @@ public class MainSetting implements Configurable, Configurable.Composite {
*/
private void init() {
//初始化数据
+ versionLabel.setText(settings.getVersion());
authorTextField.setText(settings.getAuthor());
encodeComboBox.setSelectedItem(settings.getEncode());
}
diff --git a/src/main/java/com/sjhy/plugin/ui/TemplateSettingPanel.java b/src/main/java/com/sjhy/plugin/ui/TemplateSettingPanel.java
index 2b76752f45db14a779f840887cd490aa666e87af..a834bd4fb73cd5ffec97deb0963c31fb200fd66f 100644
--- a/src/main/java/com/sjhy/plugin/ui/TemplateSettingPanel.java
+++ b/src/main/java/com/sjhy/plugin/ui/TemplateSettingPanel.java
@@ -200,7 +200,7 @@ public class TemplateSettingPanel implements Configurable {
};
// 创建元素选择面板
- this.baseItemSelectPanel = new BaseItemSelectPanel(group.get(currGroupName).getElementList()) {
+ this.baseItemSelectPanel = new BaseItemSelectPanel(group.get(currGroupName).getElementList(), true) {
@Override
protected void addItem(String name) {
List templateList = group.get(currGroupName).getElementList();
diff --git a/src/main/java/com/sjhy/plugin/ui/base/BaseItemSelectPanel.java b/src/main/java/com/sjhy/plugin/ui/base/BaseItemSelectPanel.java
index 8ee1f2b11e2c5869f76092b207da6b21c1e44827..f52b1e85dbb4df5a07607af2f8d7a32d402a8b45 100644
--- a/src/main/java/com/sjhy/plugin/ui/base/BaseItemSelectPanel.java
+++ b/src/main/java/com/sjhy/plugin/ui/base/BaseItemSelectPanel.java
@@ -34,6 +34,10 @@ public abstract class BaseItemSelectPanel {
* 可选面板集合
*/
private List itemList;
+ /**
+ * 列表元素是否可上下移动
+ */
+ private boolean movable = false;
/**
* 左边面板
@@ -54,6 +58,11 @@ public abstract class BaseItemSelectPanel {
this.itemList = itemList;
}
+ protected BaseItemSelectPanel(@NotNull List itemList, boolean movable) {
+ this.itemList = itemList;
+ this.movable = movable;
+ }
+
/**
* 新增元素
*
@@ -230,13 +239,79 @@ public abstract class BaseItemSelectPanel {
}
});
+ // 如果启动顺序移动
+ if (isMovable()) {
+ // 上移事件
+ actionGroup.add(new AnAction(AllIcons.Actions.MoveUp) {
+ @Override
+ public void actionPerformed(AnActionEvent e) {
+ T selectedItem = getSelectedItem();
+
+ // 获取当前选项索引
+ int index = getItemList().indexOf(selectedItem);
+ int targetIndex = index - 1;
+
+ // 判断选项是否是不可移动情况, 已经在第一项 或 只有一个选项
+ if (index == 0 || getItemList().size() == 1) {
+ return;
+ }
+
+ T targetItem = getItemList().get(targetIndex);
+ getItemList().set(index, targetItem);
+ getItemList().set(targetIndex, selectedItem);
+
+ reset(getItemList(), targetIndex);
+ }
+
+ @Override
+ public void update(AnActionEvent e) {
+ boolean movable = false;
+ if (getSelectedItem() != null && itemList.size() > 1 && itemList.indexOf(getSelectedItem()) > 0) {
+ movable = true;
+ }
+ e.getPresentation().setEnabled(movable);
+ }
+ });
+ // 下移事件
+ actionGroup.add(new AnAction(AllIcons.Actions.MoveDown) {
+ @Override
+ public void actionPerformed(AnActionEvent e) {
+ T selectedItem = getSelectedItem();
+ // 获取当前选项索引
+ int index = getItemList().indexOf(selectedItem);
+ int targetIndex = index + 1;
+
+ // 判断选项是否是不可移动情况, 已经在最后一项 或 只有一个选项
+ if (index == getItemList().size() - 1 || getItemList().size() == 1) {
+ return;
+ }
+
+ T targetItem = getItemList().get(targetIndex);
+ getItemList().set(index, targetItem);
+ getItemList().set(targetIndex, selectedItem);
+
+ reset(getItemList(), targetIndex);
+ }
+
+ @Override
+ public void update(AnActionEvent e) {
+ boolean movable = false;
+ boolean isLast = itemList.size() - itemList.indexOf(getSelectedItem()) == 1;
+ if (getSelectedItem() != null && itemList.size() > 1 && !isLast) {
+ movable = true;
+ }
+ e.getPresentation().setEnabled(movable);
+ }
+ });
+ }
+
return actionGroup;
}
/**
* 重置方法
*
- * @param itemList 元素列表
+ * @param itemList 元素列表
* @param selectedIndex 选中的元素下标
*/
public void reset(@NotNull List itemList, int selectedIndex) {
diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml
index fd8bd9e95b8e5b93d9c720eb7842749fe7753cb1..30a1850c28c4e8e5fb7345b8e512bc4a18ef4f04 100644
--- a/src/main/resources/META-INF/plugin.xml
+++ b/src/main/resources/META-INF/plugin.xml
@@ -132,7 +132,7 @@
More Help Info.
]]>
-
+