Skip to content

Commit 6e26d15

Browse files
committed
Copy file from source to theme
Not a workable solution yet. Additional logic and error handling required.
1 parent 0ea99c2 commit 6e26d15

File tree

2 files changed

+41
-13
lines changed

2 files changed

+41
-13
lines changed

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

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,12 @@
55
package com.magento.idea.magento2plugin.actions.generation.dialog;
66

77
import com.intellij.openapi.project.Project;
8-
import com.intellij.openapi.vfs.VirtualFile;
98
import com.intellij.psi.PsiFile;
109
import com.jetbrains.php.lang.psi.elements.Method;
1110
import com.jetbrains.php.lang.psi.elements.PhpClass;
12-
import com.magento.idea.magento2plugin.actions.generation.CreateAPluginAction;
13-
import com.magento.idea.magento2plugin.actions.generation.data.PluginDiXmlData;
14-
import com.magento.idea.magento2plugin.actions.generation.data.PluginFileData;
15-
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.CreateAPluginDialogValidator;
1611
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.OverrideInThemeDialogValidator;
17-
import com.magento.idea.magento2plugin.actions.generation.generator.PluginClassGenerator;
18-
import com.magento.idea.magento2plugin.actions.generation.generator.PluginDiXmlGenerator;
12+
import com.magento.idea.magento2plugin.actions.generation.generator.OverrideInThemeGenerator;
1913
import com.magento.idea.magento2plugin.indexes.ModuleIndex;
20-
import com.magento.idea.magento2plugin.magento.files.Plugin;
21-
import com.magento.idea.magento2plugin.magento.packages.File;
22-
import com.magento.idea.magento2plugin.magento.packages.Package;
2314
import com.magento.idea.magento2plugin.ui.FilteredComboBox;
2415
import org.jetbrains.annotations.NotNull;
2516

@@ -30,8 +21,7 @@
3021
public class OverrideInThemeDialog extends AbstractDialog {
3122
@NotNull
3223
private final Project project;
33-
private Method targetMethod;
34-
private PhpClass targetClass;
24+
private final PsiFile psiFile;
3525
@NotNull
3626
private final OverrideInThemeDialogValidator validator;
3727
private JPanel contentPane;
@@ -42,6 +32,7 @@ public class OverrideInThemeDialog extends AbstractDialog {
4232

4333
public OverrideInThemeDialog(@NotNull Project project, PsiFile psiFile) {
4434
this.project = project;
35+
this.psiFile = psiFile;
4536
this.validator = OverrideInThemeDialogValidator.getInstance(this);
4637

4738
setContentPane(contentPane);
@@ -80,7 +71,8 @@ private void onOK() {
8071
return;
8172
}
8273

83-
// TODO: implement generator
74+
OverrideInThemeGenerator overrideInThemeGenerator = OverrideInThemeGenerator.getInstance(project);
75+
overrideInThemeGenerator.execute(psiFile, this.getTheme());
8476

8577
this.setVisible(false);
8678
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.magento.idea.magento2plugin.actions.generation.generator;
2+
3+
import com.intellij.openapi.project.Project;
4+
import com.intellij.psi.PsiDirectory;
5+
import com.intellij.psi.PsiFile;
6+
import com.magento.idea.magento2plugin.indexes.ModuleIndex;
7+
8+
public class OverrideInThemeGenerator {
9+
10+
private static OverrideInThemeGenerator INSTANCE = null;
11+
12+
private final Project project;
13+
14+
public static OverrideInThemeGenerator getInstance(Project project) {
15+
if (null == INSTANCE) {
16+
INSTANCE = new OverrideInThemeGenerator(project);
17+
}
18+
return INSTANCE;
19+
}
20+
21+
public OverrideInThemeGenerator(Project project) {
22+
this.project = project;
23+
}
24+
25+
public void execute(PsiFile baseFile, String themeName) {
26+
ModuleIndex moduleIndex = ModuleIndex.getInstance(project);
27+
PsiDirectory directory = moduleIndex.getModuleDirectoryByModuleName(themeName);
28+
29+
//TODO: Copy file to correct path when source is module
30+
//TODO: Copy file to correct path when source is theme
31+
//TODO: Throw error if theme file already exists
32+
directory.copyFileFrom(baseFile.getName(), baseFile);
33+
PsiFile newFile = directory.findFile(baseFile.getName());
34+
newFile.navigate(true);
35+
}
36+
}

0 commit comments

Comments
 (0)