Skip to content

Commit baef44b

Browse files
author
lk
committed
初始化项目
1 parent 662bceb commit baef44b

18 files changed

+190
-544
lines changed

build.gradle

-4
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,6 @@ repositories {
4545
maven { url "https://www.jetbrains.com/intellij-repository/releases" }
4646
}
4747

48-
repositories {
49-
mavenCentral()
50-
}
51-
5248
dependencies {
5349
testCompile group: 'junit', name: 'junit', version: '4.12'
5450
}
Binary file not shown.

image/2020-03-25_09-28-47.jpg

20 KB
Loading

src/main/java/com/plugins/mybaitslog/MyBatisLogStartupActivity.java

-24
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.plugins.mybaitslog;
2+
3+
import com.intellij.openapi.project.Project;
4+
import com.intellij.openapi.wm.ToolWindow;
5+
import com.intellij.openapi.wm.ToolWindowFactory;
6+
import com.intellij.ui.content.Content;
7+
import com.intellij.ui.content.ContentFactory;
8+
import com.plugins.mybaitslog.console.ConsolePanel;
9+
import com.plugins.mybaitslog.icons.Icons;
10+
import org.jetbrains.annotations.NotNull;
11+
12+
import javax.swing.*;
13+
14+
/**
15+
* @author lk
16+
* @version 1.0
17+
* @date 2020/4/10 21:46
18+
*/
19+
public class MyBatisLogToolWindow implements ToolWindowFactory {
20+
21+
22+
@Override
23+
public void createToolWindowContent(@NotNull Project project, @NotNull ToolWindow toolWindow) {
24+
ConsolePanel consolePanel = new ConsolePanel();
25+
final JComponent jComponent = consolePanel.ConsolePanel(project);
26+
ContentFactory contentFactory = ContentFactory.SERVICE.getInstance();
27+
Content content = contentFactory.createContent(jComponent, "", false);
28+
toolWindow.setIcon(Icons.MyBatisIcon);
29+
toolWindow.getContentManager().addContent(content);
30+
}
31+
}

src/main/java/com/plugins/mybaitslog/action/RestoreSqlForSelection.java

+5-7
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import com.intellij.openapi.wm.ToolWindowManager;
1212
import com.intellij.ui.JBColor;
1313
import com.plugins.mybaitslog.icons.Icons;
14-
import com.plugins.mybaitslog.console.ConsoleRunExecutor;
1514
import com.plugins.mybaitslog.util.ConfigUtil;
1615
import com.plugins.mybaitslog.util.PrintUtil;
1716
import com.plugins.mybaitslog.util.RestoreSqlUtil;
@@ -44,15 +43,14 @@ public void actionPerformed(AnActionEvent e) {
4443
CaretModel caretModel = e.getData(LangDataKeys.EDITOR).getCaretModel();
4544
Caret currentCaret = caretModel.getCurrentCaret();
4645
String sqlText = currentCaret.getSelectedText();
47-
ToolWindow toolWindow = ToolWindowManager.getInstance(project).getToolWindow(ConsoleRunExecutor.TOOLWINDOWS_ID);
48-
if (!ConfigUtil.active || !toolWindow.isAvailable()) {
49-
new ShowLogInConsoleAction(project).showLogInConsole(project);
46+
ToolWindow toolWindow = ToolWindowManager.getInstance(project).getToolWindow("MyBatis Log");
47+
if (!toolWindow.isAvailable()) {
48+
//激活Restore Sql tab
49+
toolWindow.activate(null);
5050
}
51-
//激活Restore Sql tab
52-
toolWindow.activate(null);
5351
final String preparing = ConfigUtil.getPreparing(project);
5452
final String parameters = ConfigUtil.getParameters(project);
55-
if(StringUtils.isNotEmpty(sqlText)){
53+
if (StringUtils.isNotEmpty(sqlText)) {
5654
String[] sqlArr = sqlText.split("\n");
5755
if (isSelectedText(project, sqlText, sqlArr, preparing, parameters)) {
5856
setSelectedTextFormat(project, sqlArr, preparing, parameters);

src/main/java/com/plugins/mybaitslog/action/ShowLogInConsoleAction.java

-57
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.plugins.mybaitslog.console;
2+
3+
import com.intellij.icons.AllIcons;
4+
import com.intellij.openapi.actionSystem.AnAction;
5+
import com.intellij.openapi.actionSystem.AnActionEvent;
6+
import com.intellij.openapi.project.DumbAware;
7+
8+
/**
9+
* @author lk
10+
* @version 1.0
11+
* @date 2020/4/10 22:00
12+
*/
13+
public class ConsoleActionGroup {
14+
15+
private static Runnable myFilterAction;
16+
17+
public static void withFilter(Runnable filter) {
18+
ConsoleActionGroup.myFilterAction = filter;
19+
}
20+
21+
public static Runnable getMyFilterAction() {
22+
return ConsoleActionGroup.myFilterAction;
23+
}
24+
25+
/**
26+
* 过滤按钮
27+
*/
28+
public static class FilterAction extends AnAction implements DumbAware {
29+
public FilterAction() {
30+
super("Filter", "Filter", AllIcons.General.Filter);
31+
}
32+
33+
@Override
34+
public void actionPerformed(AnActionEvent e) {
35+
ConsoleActionGroup.myFilterAction.run();
36+
}
37+
}
38+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
package com.plugins.mybaitslog.console;
2+
3+
import com.intellij.execution.filters.Filter;
4+
import com.intellij.execution.filters.TextConsoleBuilder;
5+
import com.intellij.execution.filters.TextConsoleBuilderFactory;
6+
import com.intellij.execution.ui.ConsoleView;
7+
import com.intellij.openapi.actionSystem.ActionManager;
8+
import com.intellij.openapi.actionSystem.ActionToolbar;
9+
import com.intellij.openapi.actionSystem.AnAction;
10+
import com.intellij.openapi.actionSystem.DefaultActionGroup;
11+
import com.intellij.openapi.project.Project;
12+
import com.intellij.openapi.ui.SimpleToolWindowPanel;
13+
import com.plugins.mybaitslog.action.gui.FilterSetting;
14+
import com.plugins.mybaitslog.util.PrintUtil;
15+
import org.jetbrains.annotations.NotNull;
16+
17+
import javax.swing.*;
18+
import java.awt.*;
19+
import java.util.ArrayList;
20+
import java.util.List;
21+
22+
/**
23+
* console 描述
24+
*/
25+
public class ConsolePanel {
26+
27+
private final List<Filter> myFilterList = new ArrayList<>();
28+
29+
/**
30+
* 创建 输出面板
31+
*
32+
* @param project
33+
* @return
34+
*/
35+
private ConsoleView createConsole(@NotNull Project project) {
36+
TextConsoleBuilder consoleBuilder = TextConsoleBuilderFactory.getInstance().createBuilder(project);
37+
consoleBuilder.filters(myFilterList);
38+
ConsoleView console = consoleBuilder.getConsole();
39+
PrintUtil.setConsoleView(console);
40+
return console;
41+
}
42+
43+
44+
private static JComponent createConsolePanel(ConsoleView view) {
45+
JPanel panel = new JPanel();
46+
panel.setLayout(new BorderLayout());
47+
panel.add(view.getComponent(), BorderLayout.CENTER);
48+
return panel;
49+
}
50+
51+
52+
/**
53+
* 构建面板
54+
*/
55+
public JComponent ConsolePanel(final Project myProject) {
56+
final ConsoleView consoleView = createConsole(myProject);
57+
//左边显示的控件
58+
final JComponent consolePanel = createConsolePanel(consoleView);
59+
final ActionToolbar actionToolbar = createActionToolbar(myProject, consolePanel, consoleView);
60+
actionToolbar.setTargetComponent(consolePanel);
61+
62+
SimpleToolWindowPanel panel = new SimpleToolWindowPanel(false, true);
63+
panel.setContent(consolePanel);
64+
panel.setToolbar(actionToolbar.getComponent());
65+
66+
DefaultActionGroup actions = new DefaultActionGroup();
67+
for (AnAction action : consoleView.createConsoleActions()) {
68+
actions.add(action);
69+
}
70+
final JComponent component = panel.getComponent();
71+
return component;
72+
}
73+
74+
/**
75+
* 创建工具栏
76+
*
77+
* @param consolePanel
78+
* @param consoleView
79+
* @return
80+
*/
81+
@NotNull
82+
private ActionToolbar createActionToolbar(final Project project, JComponent consolePanel, ConsoleView consoleView) {
83+
final DefaultActionGroup actionGroup = new DefaultActionGroup();
84+
ConsoleActionGroup.withFilter(() -> {
85+
//启动filter配置
86+
FilterSetting dialog = new FilterSetting(project);
87+
dialog.pack();
88+
dialog.setSize(600, 400);//配置大小
89+
dialog.setLocationRelativeTo(null);//位置居中显示
90+
dialog.setVisible(true);
91+
});
92+
actionGroup.add(new ConsoleActionGroup.FilterAction());
93+
actionGroup.add(consoleView.createConsoleActions()[2]);
94+
actionGroup.add(consoleView.createConsoleActions()[3]);
95+
actionGroup.add(consoleView.createConsoleActions()[5]);
96+
return ActionManager.getInstance().createActionToolbar("EventLog", actionGroup, false);
97+
}
98+
}

src/main/java/com/plugins/mybaitslog/console/ConsoleRunExecutor.java

-78
This file was deleted.

0 commit comments

Comments
 (0)