Skip to content

Commit ad84dee

Browse files
committed
Improve code structure
1 parent 53ab5bb commit ad84dee

File tree

7 files changed

+61
-62
lines changed

7 files changed

+61
-62
lines changed

resources/templates/reducer/actions.ts.mustache

Whitespace-only changes.

resources/templates/reducer/index.ts.mustache

Whitespace-only changes.

resources/templates/reducer/types.ts.mustache

Whitespace-only changes.
Lines changed: 4 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,16 @@
11
package fabs.component;
22

3-
import com.intellij.openapi.actionSystem.AnActionEvent;
4-
import com.intellij.openapi.actionSystem.CommonDataKeys;
5-
import com.intellij.openapi.application.ApplicationManager;
6-
import com.intellij.openapi.project.Project;
73
import com.intellij.openapi.vfs.VirtualFile;
8-
import com.intellij.pom.Navigatable;
4+
import fabs.util.AbstractCreator;
95
import fabs.util.AbstractCreatorAction;
106

11-
import java.awt.*;
7+
import java.util.Map;
128

139
public class ComponentCreatorAction extends AbstractCreatorAction {
1410

1511
@Override
16-
public void update(AnActionEvent anActionEvent) {
17-
Project project = anActionEvent.getProject();
12+
protected AbstractCreator createCreator(VirtualFile directory, String componentName, Map<String, Object> templateModel, String[] files) {
13+
return new ComponentCreator(directory, componentName, templateModel, files);
1814

19-
Navigatable navigatable = anActionEvent.getData(CommonDataKeys.NAVIGATABLE);
20-
anActionEvent.getPresentation().setEnabledAndVisible(project != null && navigatable != null);
21-
}
22-
23-
24-
@Override
25-
public void actionPerformed(AnActionEvent e) {
26-
ComponentCreatorDialog dialog = new ComponentCreatorDialog();
27-
VirtualFile selectedLocation = e.getData(CommonDataKeys.VIRTUAL_FILE);
28-
VirtualFile targetLocation = getLocation(selectedLocation);
29-
30-
final int width = dialog.getWidth();
31-
final int height = dialog.getHeight();
32-
final Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
33-
int x = (screenSize.width / 2) - (width / 2);
34-
int y = (screenSize.height / 2) - (height / 2);
35-
dialog.setLocation(x, y);
36-
37-
dialog.pack();
38-
dialog.setVisible(true);
39-
40-
final String componentName = dialog.getComponentName();
41-
42-
if (dialog.isCanceled()) {
43-
return;
44-
}
45-
46-
ApplicationManager.getApplication().runWriteAction(
47-
new RunnableCreator(targetLocation, componentName, dialog.getTemplateVars(), dialog.getFiles())
48-
);
4915
}
5016
}

src/fabs/component/RunnableCreator.java

Lines changed: 0 additions & 23 deletions
This file was deleted.

src/fabs/util/AbstractCreator.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22

33
import java.io.IOException;
44

5-
public abstract class AbstractCreator {
5+
public abstract class AbstractCreator implements Runnable {
6+
@Override
7+
public void run() {
8+
try {
9+
this.create();
10+
} catch (IOException e) {
11+
e.printStackTrace();
12+
}
13+
}
14+
615
public abstract void create() throws IOException;
716
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,62 @@
11
package fabs.util;
22

33
import com.intellij.openapi.actionSystem.AnAction;
4+
import com.intellij.openapi.actionSystem.AnActionEvent;
5+
import com.intellij.openapi.actionSystem.CommonDataKeys;
6+
import com.intellij.openapi.application.ApplicationManager;
7+
import com.intellij.openapi.project.Project;
48
import com.intellij.openapi.vfs.VirtualFile;
9+
import com.intellij.pom.Navigatable;
10+
import fabs.component.ComponentCreator;
11+
import fabs.component.ComponentCreatorDialog;
12+
13+
import java.awt.*;
14+
import java.util.Map;
515

616
public abstract class AbstractCreatorAction extends AnAction {
717

18+
protected abstract AbstractCreator createCreator(VirtualFile directory, String componentName, Map<String, Object> templateModel, String[] files);
19+
20+
@Override
21+
public void update(AnActionEvent anActionEvent) {
22+
Project project = anActionEvent.getProject();
23+
24+
Navigatable navigatable = anActionEvent.getData(CommonDataKeys.NAVIGATABLE);
25+
anActionEvent.getPresentation().setEnabledAndVisible(project != null && navigatable != null);
26+
}
27+
828
protected VirtualFile getLocation(VirtualFile file) {
929
if (file.isDirectory()) {
1030
return file;
1131
}
1232
return file.getParent();
1333
}
1434

35+
@Override
36+
public void actionPerformed(AnActionEvent e) {
37+
ComponentCreatorDialog dialog = new ComponentCreatorDialog();
38+
VirtualFile selectedLocation = e.getData(CommonDataKeys.VIRTUAL_FILE);
39+
VirtualFile targetLocation = getLocation(selectedLocation);
40+
41+
final int width = dialog.getWidth();
42+
final int height = dialog.getHeight();
43+
final Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
44+
int x = (screenSize.width / 2) - (width / 2);
45+
int y = (screenSize.height / 2) - (height / 2);
46+
dialog.setLocation(x, y);
47+
48+
dialog.pack();
49+
dialog.setVisible(true);
50+
51+
final String componentName = dialog.getComponentName();
52+
53+
if (dialog.isCanceled()) {
54+
return;
55+
}
56+
57+
ApplicationManager.getApplication().runWriteAction(
58+
this.createCreator(targetLocation, componentName, dialog.getTemplateVars(), dialog.getFiles())
59+
);
60+
}
61+
1562
}

0 commit comments

Comments
 (0)