Skip to content

Commit 1865a62

Browse files
committed
1139: Fixed code after review
1 parent 9da21d0 commit 1865a62

File tree

2 files changed

+47
-81
lines changed

2 files changed

+47
-81
lines changed

src/com/magento/idea/magento2plugin/actions/context/php/NewSetupDataPatchAction.java

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
import com.magento.idea.magento2plugin.util.magento.GetMagentoModuleUtil;
1616
import org.jetbrains.annotations.NotNull;
1717

18+
import java.util.Objects;
19+
1820
public class NewSetupDataPatchAction extends CustomGeneratorContextAction {
1921

2022
public static final String ACTION_NAME = "Magento 2 Setup Data Patch";
@@ -34,18 +36,16 @@ public void actionPerformed(final @NotNull AnActionEvent event) {
3436
if (event.getProject() == null || moduleData == null || getDirectory() == null) {
3537
return;
3638
}
37-
final String[] templateData = moduleData.getName().split(Package.vendorModuleNameSeparator);
39+
final String[] module = moduleData.getName().split(Package.vendorModuleNameSeparator);
3840

39-
if (templateData.length != 2) { //NOPMD
41+
if (module.length != 2) { //NOPMD
4042
return;
4143
}
42-
43-
NewSetupDataPatchDialog.open(
44-
event.getProject(),
45-
getDirectory(),
46-
templateData[0],
47-
templateData[1]
44+
final PsiDirectory rooDirectory = moduleData.getModuleDir().findSubdirectory(
45+
ROOT_DIRECTORY
4846
);
47+
48+
NewSetupDataPatchDialog.open(event.getProject(), rooDirectory, module[0], module[1]);
4949
}
5050

5151
@Override
@@ -57,24 +57,31 @@ protected boolean isVisible(
5757
if (!moduleData.getType().equals(ComponentType.module)) {
5858
return false;
5959
}
60-
final String targetDirName = targetDirectory.getName();
6160

62-
if (!(ROOT_DIRECTORY.equals(targetDirName) || PATCH_DIRECTORY.equals(targetDirName)
63-
|| DATA_DIRECTORY.equals(targetDirName))
64-
) {
65-
return false;
61+
if (ROOT_DIRECTORY.equals(targetDirectory.getName())) {
62+
return Objects.requireNonNull(targetDirectory.getParentDirectory()).getName().equals(
63+
moduleData.getModuleDir().getName()
64+
);
6665
}
6766

68-
final PsiDirectory parentDirFirst = targetDirectory.getParentDirectory();
69-
PsiDirectory parentDirSecond = null;
70-
71-
if (parentDirFirst != null) {
72-
parentDirSecond = parentDirFirst.getParentDirectory();
67+
if (PATCH_DIRECTORY.equals(targetDirectory.getName())) {
68+
return ROOT_DIRECTORY.equals(Objects.requireNonNull(
69+
targetDirectory.getParentDirectory()).getName()
70+
);
7371
}
7472

73+
if (DATA_DIRECTORY.equals(targetDirectory.getName())) {
74+
final PsiDirectory parentDirectory = Objects.requireNonNull(
75+
targetDirectory.getParentDirectory()
76+
);
77+
78+
if (PATCH_DIRECTORY.equals(parentDirectory.getName())) {
79+
return ROOT_DIRECTORY.equals(Objects.requireNonNull(
80+
parentDirectory.getParentDirectory()).getName()
81+
);
82+
}
83+
}
7584

76-
return ROOT_DIRECTORY.equals(targetDirName)
77-
|| parentDirFirst != null && ROOT_DIRECTORY.equals(parentDirFirst.getName())
78-
|| parentDirSecond != null && ROOT_DIRECTORY.equals(parentDirSecond.getName());
85+
return false;
7986
}
8087
}

src/com/magento/idea/magento2plugin/actions/generation/dialog/NewSetupDataPatchDialog.java

Lines changed: 19 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,13 @@
1515
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.NotEmptyRule;
1616
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.PhpClassRule;
1717
import com.magento.idea.magento2plugin.actions.generation.generator.ModuleSetupDataPatchGenerator;
18+
import com.magento.idea.magento2plugin.actions.generation.generator.util.DirectoryGenerator;
1819
import com.magento.idea.magento2plugin.magento.files.ModuleSetupDataPatchFile;
20+
import com.magento.idea.magento2plugin.magento.packages.File;
1921
import java.awt.event.ActionEvent;
2022
import java.awt.event.KeyEvent;
2123
import java.awt.event.WindowAdapter;
2224
import java.awt.event.WindowEvent;
23-
import java.util.Objects;
2425
import javax.swing.JButton;
2526
import javax.swing.JComponent;
2627
import javax.swing.JLabel;
@@ -128,11 +129,15 @@ protected void onOK() {
128129
}
129130

130131
private void generateFile() {
132+
final PsiDirectory directory = DirectoryGenerator.getInstance().findOrCreateSubdirectories(
133+
baseDir, NewSetupDataPatchAction.PATCH_DIRECTORY + File.separator
134+
+ NewSetupDataPatchAction.DATA_DIRECTORY
135+
);
131136
final ModuleSetupDataPatchGenerator generator = new ModuleSetupDataPatchGenerator(
132137
new ModuleSetupDataPatchData(
133138
modulePackage,
134139
moduleName,
135-
createDirectory(baseDir),
140+
directory,
136141
getClassName()
137142
),
138143
project
@@ -146,16 +151,22 @@ public String getClassName() {
146151
}
147152

148153
private boolean validateFields() {
149-
final PsiDirectory targetDirectory = getDirectory(baseDir);
154+
final PsiDirectory patchDirectory = baseDir.findSubdirectory(
155+
NewSetupDataPatchAction.PATCH_DIRECTORY
156+
);
157+
PsiDirectory directory = null;
150158

151-
if (NewSetupDataPatchAction.DATA_DIRECTORY.equals(targetDirectory.getName())) {
152-
final PsiFile[] files = targetDirectory.getFiles();
153-
for (final PsiFile file : files) {
159+
if (patchDirectory != null) {
160+
directory = patchDirectory.findSubdirectory(NewSetupDataPatchAction.DATA_DIRECTORY);
161+
}
162+
163+
if (directory != null) {
164+
for (final PsiFile file : directory.getFiles()) {
154165
final String className = ModuleSetupDataPatchFile.resolveClassNameFromInput(
155166
getClassName()
156167
);
157168

158-
if (file.getName().equals(className + ".php")) {
169+
if (file.getName().equals(className + ModuleSetupDataPatchFile.EXTENSION)) {
159170
showErrorMessage(
160171
fieldsValidationsList.get(0).getField(),
161172
"Class name `" + className + "` already exist."
@@ -165,59 +176,7 @@ private boolean validateFields() {
165176
}
166177
}
167178
}
168-
return validateFormFields();
169-
}
170-
171-
private PsiDirectory getDirectory(final PsiDirectory targetDirectory) {
172-
if (NewSetupDataPatchAction.ROOT_DIRECTORY.equals(baseDir.getName())) {
173-
final PsiDirectory subDirectoryPatch = baseDir.findSubdirectory(
174-
NewSetupDataPatchAction.PATCH_DIRECTORY
175-
);
176179

177-
if (subDirectoryPatch != null) {
178-
return subDirectoryPatch.findSubdirectory(NewSetupDataPatchAction.DATA_DIRECTORY);
179-
}
180-
}
181-
if (NewSetupDataPatchAction.PATCH_DIRECTORY.equals(baseDir.getName())) {
182-
return baseDir.findSubdirectory(NewSetupDataPatchAction.DATA_DIRECTORY);
183-
}
184-
185-
return targetDirectory;
186-
}
187-
188-
private PsiDirectory createDirectory(final PsiDirectory targetDirectory) {
189-
if (NewSetupDataPatchAction.ROOT_DIRECTORY.equals(targetDirectory.getName())) {
190-
final PsiDirectory subDirectoryPatch = targetDirectory.findSubdirectory(
191-
NewSetupDataPatchAction.PATCH_DIRECTORY
192-
);
193-
194-
if (subDirectoryPatch == null) {
195-
return targetDirectory.createSubdirectory(
196-
NewSetupDataPatchAction.PATCH_DIRECTORY
197-
).createSubdirectory(NewSetupDataPatchAction.DATA_DIRECTORY);
198-
}
199-
final PsiDirectory subDirectoryData = subDirectoryPatch.findSubdirectory(
200-
NewSetupDataPatchAction.DATA_DIRECTORY
201-
);
202-
203-
return Objects.requireNonNullElseGet(
204-
subDirectoryData, () -> subDirectoryPatch.createSubdirectory(
205-
NewSetupDataPatchAction.DATA_DIRECTORY
206-
)
207-
);
208-
}
209-
if (NewSetupDataPatchAction.PATCH_DIRECTORY.equals(targetDirectory.getName())) {
210-
final PsiDirectory subDirectoryData = targetDirectory.findSubdirectory(
211-
NewSetupDataPatchAction.DATA_DIRECTORY
212-
);
213-
214-
return Objects.requireNonNullElseGet(
215-
subDirectoryData, () -> targetDirectory.createSubdirectory(
216-
NewSetupDataPatchAction.DATA_DIRECTORY
217-
)
218-
);
219-
}
220-
221-
return targetDirectory;
180+
return validateFormFields();
222181
}
223182
}

0 commit comments

Comments
 (0)