Skip to content

Commit 5b44535

Browse files
committed
update: update actionbar
1 parent 1d49b32 commit 5b44535

File tree

5 files changed

+90
-20
lines changed

5 files changed

+90
-20
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.dengzii.plugin.template.tools.ui
2+
3+
import com.intellij.openapi.actionSystem.AnAction
4+
import com.intellij.openapi.actionSystem.AnActionEvent
5+
import com.intellij.openapi.actionSystem.DefaultActionGroup
6+
import com.intellij.openapi.actionSystem.Presentation
7+
import com.intellij.openapi.actionSystem.ex.ActionButtonLook
8+
import com.intellij.openapi.actionSystem.impl.ActionButton
9+
import com.intellij.openapi.actionSystem.impl.ActionToolbarImpl
10+
import com.intellij.util.ui.JBUI
11+
import java.awt.Dimension
12+
import javax.swing.Icon
13+
14+
object ActionToolBarUtils {
15+
16+
fun create(place: String, horizontal: Boolean = true, action: List<Action>): ActionToolbarImpl {
17+
val toolbarActionGroup = DefaultActionGroup(action)
18+
return object : ActionToolbarImpl(place, toolbarActionGroup, horizontal, false, true) {
19+
override fun createToolbarButton(action: AnAction, look: ActionButtonLook?, place: String,
20+
presentation: Presentation, minimumSize: Dimension): ActionButton {
21+
if (action is Action) {
22+
presentation.icon = action.icon
23+
presentation.isEnabled = action.isEnabled
24+
presentation.description = action.desc
25+
}
26+
val bt = super.createToolbarButton(action, look, place, presentation, minimumSize)
27+
bt.setIconInsets(JBUI.insets(0))
28+
return bt
29+
}
30+
}
31+
}
32+
33+
class Action(var icon: Icon,
34+
var isEnabled: Boolean = true,
35+
var desc: String = "",
36+
var action: () -> Unit) : AnAction() {
37+
38+
override fun actionPerformed(p0: AnActionEvent) {
39+
action.invoke()
40+
}
41+
}
42+
}

src/com/dengzii/plugin/template/ui/ConfigurePanel.form

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
<properties/>
1515
<border type="none"/>
1616
<children>
17-
<component id="9661f" class="com.dengzii.plugin.template.ui.EditToolbar" binding="actionbar">
17+
<grid id="56dc8" binding="panelActionBar" layout-manager="BorderLayout" hgap="0" vgap="0">
1818
<constraints/>
19-
<properties>
20-
<enabled value="true"/>
21-
</properties>
22-
</component>
19+
<properties/>
20+
<border type="none"/>
21+
<children/>
22+
</grid>
2323
<grid id="699a3" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
2424
<margin top="0" left="100" bottom="0" right="0"/>
2525
<constraints/>

src/com/dengzii/plugin/template/ui/ConfigurePanel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class ConfigurePanel extends JPanel {
2323
JPanel panelStructure;
2424
JPanel panelPlaceholder;
2525
JPanel panelFileTemp;
26-
EditToolbar actionbar;
2726
JCheckBox cbPlaceholder;
2827
JBTabbedPane tabbedPane;
28+
JPanel panelActionBar;
2929
}

src/com/dengzii/plugin/template/ui/CreateModuleDialog.java

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,31 @@
33
import com.dengzii.plugin.template.Config;
44
import com.dengzii.plugin.template.TemplateConfigurable;
55
import com.dengzii.plugin.template.model.Module;
6+
import com.dengzii.plugin.template.tools.NotificationUtils;
7+
import com.dengzii.plugin.template.tools.ui.ActionToolBarUtils;
68
import com.dengzii.plugin.template.utils.Logger;
79
import com.intellij.icons.AllIcons;
10+
import com.intellij.openapi.actionSystem.*;
11+
import com.intellij.openapi.actionSystem.ex.ActionButtonLook;
12+
import com.intellij.openapi.actionSystem.impl.ActionButton;
13+
import com.intellij.openapi.actionSystem.impl.ActionToolbarImpl;
814
import com.intellij.openapi.options.ShowSettingsUtil;
915
import com.intellij.openapi.project.Project;
16+
import com.intellij.openapi.util.Couple;
17+
import com.intellij.openapi.wm.impl.welcomeScreen.WelcomeScreenComponentFactory;
18+
import com.intellij.util.containers.ContainerUtil;
19+
import com.intellij.util.ui.JBUI;
20+
import kotlin.Unit;
21+
import kotlin.jvm.functions.Function0;
22+
import org.jetbrains.annotations.NotNull;
1023

1124
import javax.swing.*;
1225
import java.awt.*;
1326
import java.awt.event.ActionEvent;
1427
import java.awt.event.KeyEvent;
15-
import java.util.*;
28+
import java.util.ArrayList;
29+
import java.util.Collections;
30+
import java.util.HashMap;
1631
import java.util.List;
1732

1833
public class CreateModuleDialog extends JDialog {
@@ -31,23 +46,22 @@ public class CreateModuleDialog extends JDialog {
3146
private JButton btFinish;
3247
private JScrollPane scrollPanePlaceHolder;
3348
private JScrollPane scrollPaneFileTemplate;
34-
// private JPanel panelPlaceholder;
3549

3650
private EditableTable tablePlaceholder;
3751
private EditableTable tableFileTemplate;
3852

39-
private OnFinishListener onFinishListener;
53+
private final OnFinishListener onFinishListener;
4054

4155
private java.util.List<Module> moduleTemplates = Collections.emptyList();
4256
private Module selectedModule;
4357

44-
private HashMap<String, JPanel> panels = new HashMap<>();
45-
private List<String> titles = new ArrayList<>();
58+
private final HashMap<String, JPanel> panels = new HashMap<>();
59+
private final List<String> titles = new ArrayList<>();
4660

4761
private PreviewPanel previewPanel;
4862

4963
private int currentPanelIndex;
50-
private Project project;
64+
private final Project project;
5165

5266
private CreateModuleDialog(Project project, OnFinishListener onFinishListener) {
5367
setContentPane(rootPanel);

src/com/dengzii/plugin/template/ui/RealConfigurePanel.kt

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ import com.dengzii.plugin.template.model.Module.Companion.getAucExport
1111
import com.dengzii.plugin.template.model.Module.Companion.getAucModule
1212
import com.dengzii.plugin.template.model.Module.Companion.getAucPkg
1313
import com.dengzii.plugin.template.model.Module.Companion.getEmpty
14+
import com.dengzii.plugin.template.tools.ui.ActionToolBarUtils
1415
import com.dengzii.plugin.template.tools.ui.PopMenuUtils
16+
import com.intellij.icons.AllIcons
1517
import com.intellij.openapi.fileChooser.FileChooser
1618
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory
1719
import com.intellij.ui.DocumentAdapter
@@ -39,6 +41,20 @@ class RealConfigurePanel : ConfigurePanel() {
3941
private var modified = false
4042

4143
init {
44+
panelActionBar.add(ActionToolBarUtils.create("ActionBar1", true, listOf(
45+
ActionToolBarUtils.Action(AllIcons.General.Add) {
46+
// onAddConfig()
47+
},
48+
ActionToolBarUtils.Action(AllIcons.General.Remove) {
49+
onRemoveConfig()
50+
},
51+
ActionToolBarUtils.Action(AllIcons.General.CopyHovered) {
52+
onCopyConfig()
53+
},
54+
ActionToolBarUtils.Action(AllIcons.Actions.Download) {
55+
onExportTemplate()
56+
}
57+
)))
4258
initComponent()
4359
loadConfig()
4460
initData()
@@ -73,11 +89,6 @@ class RealConfigurePanel : ConfigurePanel() {
7389
}
7490

7591
private fun initData() {
76-
actionbar.onAdd { e ->
77-
if (e != null) {
78-
onAddConfig(e)
79-
}
80-
}
8192
tableFileTemp.addChangeListener {
8293
modified = true
8394
}
@@ -87,9 +98,6 @@ class RealConfigurePanel : ConfigurePanel() {
8798
panelPreview.setOnTreeUpdateListener {
8899
modified = true
89100
}
90-
actionbar.onRemove(this::onRemoveConfig)
91-
actionbar.onCopy(this::onCopyConfig)
92-
actionbar.onExport(this::onExportTemplate)
93101
cbPlaceholder.addChangeListener {
94102
panelPreview.setReplacePlaceholder(cbPlaceholder.isSelected)
95103
}
@@ -122,6 +130,12 @@ class RealConfigurePanel : ConfigurePanel() {
122130
}
123131

124132
private fun addModuleTemplate(module: Module) {
133+
configs!!.forEach {
134+
if (it.templateName == module.templateName) {
135+
module.templateName = module.templateName + "_New"
136+
}
137+
}
138+
125139
configs!!.add(module)
126140
templateListModel!!.addElement(module.templateName)
127141
listTemplate.doLayout()

0 commit comments

Comments
 (0)