Skip to content

Commit 1a0309b

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

File tree

2 files changed

+46
-81
lines changed

2 files changed

+46
-81
lines changed

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

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.magento.idea.magento2plugin.magento.packages.ComponentType;
1414
import com.magento.idea.magento2plugin.magento.packages.Package;
1515
import com.magento.idea.magento2plugin.util.magento.GetMagentoModuleUtil;
16+
import java.util.Objects;
1617
import org.jetbrains.annotations.NotNull;
1718

1819
public class NewSetupDataPatchAction extends CustomGeneratorContextAction {
@@ -34,18 +35,16 @@ public void actionPerformed(final @NotNull AnActionEvent event) {
3435
if (event.getProject() == null || moduleData == null || getDirectory() == null) {
3536
return;
3637
}
37-
final String[] templateData = moduleData.getName().split(Package.vendorModuleNameSeparator);
38+
final String[] module = moduleData.getName().split(Package.vendorModuleNameSeparator);
3839

39-
if (templateData.length != 2) { //NOPMD
40+
if (module.length != 2) { //NOPMD
4041
return;
4142
}
42-
43-
NewSetupDataPatchDialog.open(
44-
event.getProject(),
45-
getDirectory(),
46-
templateData[0],
47-
templateData[1]
43+
final PsiDirectory rooDirectory = moduleData.getModuleDir().findSubdirectory(
44+
ROOT_DIRECTORY
4845
);
46+
47+
NewSetupDataPatchDialog.open(event.getProject(), rooDirectory, module[0], module[1]);
4948
}
5049

5150
@Override
@@ -57,24 +56,31 @@ protected boolean isVisible(
5756
if (!moduleData.getType().equals(ComponentType.module)) {
5857
return false;
5958
}
60-
final String targetDirName = targetDirectory.getName();
6159

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

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

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

76-
return ROOT_DIRECTORY.equals(targetDirName)
77-
|| parentDirFirst != null && ROOT_DIRECTORY.equals(parentDirFirst.getName())
78-
|| parentDirSecond != null && ROOT_DIRECTORY.equals(parentDirSecond.getName());
84+
return false;
7985
}
8086
}

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)