You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2022/02/17 08:18:38 UTC

[cayenne] branch master updated: Solution for issue with missed custom templates.

This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/master by this push:
     new 94cfc16  Solution for issue with missed custom templates.
     new bfb848e  Merge pull request #497 from Ivan-nikitko/Master_Modeler's_template_issue
94cfc16 is described below

commit 94cfc16d26619f6bae35bcf57b426abc54be6f8f
Author: ivannikitka <ni...@gmail.com>
AuthorDate: Fri Feb 4 14:38:32 2022 +0300

    Solution for issue with missed custom templates.
---
 .../cayenne/modeler/CodeTemplateManager.java       | 219 ++++++++++++---------
 .../modeler/dialog/pref/TemplateCreator.java       |  35 ++--
 .../modeler/editor/cgen/CustomModeController.java  | 119 ++++-------
 3 files changed, 177 insertions(+), 196 deletions(-)

diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CodeTemplateManager.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CodeTemplateManager.java
index 09ea39a..ca1484a 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CodeTemplateManager.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CodeTemplateManager.java
@@ -59,63 +59,68 @@ public class CodeTemplateManager {
 
 	public static final String NODE_NAME = "codeTemplateManager";
 
-	private List<String> standardSubclassTemplates;
-	private List<String> standardSuperclassTemplates;
-	private List<String> standardClientSubclassTemplates;
-	private List<String> standardClientSuperclassTemplates;
+	private List<String> defaultSubclassTemplates;
+	private List<String> defaultSuperclassTemplates;
+	private List<String> defaultClientSubclassTemplates;
+	private List<String> defaultClientSuperclassTemplates;
 	private Map<String, String> customTemplates;
 	private Map<String, String> reverseCustomTemplate;
-	private Map<String, String> standardTemplates;
+	private Map<String, String> defaultTemplates;
 
-	private List<String> standardEmbeddableTemplates;
-	private List<String> standardEmbeddableSuperclassTemplates;
+	private List<String> defaultEmbeddableTemplates;
+	private List<String> defaultEmbeddableSuperclassTemplates;
 
-	private List<String> standardServerDataMapTemplates;
-	private List<String> standardServerDataMapSuperclassTemplates;
-	private List<String> standardClientDataMapTemplates;
-	private List<String> standardClientDataMapSuperclassTemplates;
+	private List<String> defaultServerDataMapTemplates;
+	private List<String> defaultServerDataMapSuperclassTemplates;
+	private List<String> defaultClientDataMapTemplates;
+	private List<String> defaultClientDataMapSuperclassTemplates;
 
-	private Map<String, String> reverseStandartTemplates;
+	private Map<String, String> reverseDefaultsTemplates;
 
-	private static Logger logger = LoggerFactory.getLogger(CodeTemplateManager.class);
+	private final Application application;
+	private final Preferences templatePreferences;
+
+	private static final Logger logger = LoggerFactory.getLogger(CodeTemplateManager.class);
 
 	public Preferences getTemplatePreferences(Application application) {
 		return application.getPreferencesNode(this.getClass(), NODE_NAME);
 	}
 
 	public CodeTemplateManager(Application application) {
-		standardSuperclassTemplates = new ArrayList<>(2);
-		standardSuperclassTemplates.add(STANDARD_SERVER_SUPERCLASS);
+		this.application = application;
+		this.templatePreferences = getTemplatePreferences(application);
+		defaultSuperclassTemplates = new ArrayList<>(2);
+		defaultSuperclassTemplates.add(STANDARD_SERVER_SUPERCLASS);
 
-		standardClientSuperclassTemplates = new ArrayList<>();
-		standardClientSuperclassTemplates.add(STANDARD_CLIENT_SUPERCLASS);
+		defaultClientSuperclassTemplates = new ArrayList<>();
+		defaultClientSuperclassTemplates.add(STANDARD_CLIENT_SUPERCLASS);
 
-		standardSubclassTemplates = new ArrayList<>(2);
-		standardSubclassTemplates.add(SINGLE_SERVER_CLASS);
-		standardSubclassTemplates.add(STANDARD_SERVER_SUBCLASS);
+		defaultSubclassTemplates = new ArrayList<>(2);
+		defaultSubclassTemplates.add(SINGLE_SERVER_CLASS);
+		defaultSubclassTemplates.add(STANDARD_SERVER_SUBCLASS);
 
-		standardClientSubclassTemplates = new ArrayList<>();
-		standardClientSubclassTemplates.add(STANDARD_CLIENT_SUBCLASS);
+		defaultClientSubclassTemplates = new ArrayList<>();
+		defaultClientSubclassTemplates.add(STANDARD_CLIENT_SUBCLASS);
 
-		standardEmbeddableTemplates = new ArrayList<>();
-		standardEmbeddableTemplates.add(STANDARD_EMBEDDABLE_SUBCLASS);
-		standardEmbeddableTemplates.add(SINGLE_EMBEDDABLE_CLASS);
+		defaultEmbeddableTemplates = new ArrayList<>();
+		defaultEmbeddableTemplates.add(STANDARD_EMBEDDABLE_SUBCLASS);
+		defaultEmbeddableTemplates.add(SINGLE_EMBEDDABLE_CLASS);
 
-		standardEmbeddableSuperclassTemplates = new ArrayList<>();
-		standardEmbeddableSuperclassTemplates.add(STANDARD_EMBEDDABLE_SUPERCLASS);
+		defaultEmbeddableSuperclassTemplates = new ArrayList<>();
+		defaultEmbeddableSuperclassTemplates.add(STANDARD_EMBEDDABLE_SUPERCLASS);
 
-		standardServerDataMapTemplates = new ArrayList<>();
-		standardServerDataMapTemplates.add(STANDARD_SERVER_DATAMAP_SUBCLASS);
-		standardServerDataMapTemplates.add(SINGLE_DATAMAP_CLASS);
+		defaultServerDataMapTemplates = new ArrayList<>();
+		defaultServerDataMapTemplates.add(STANDARD_SERVER_DATAMAP_SUBCLASS);
+		defaultServerDataMapTemplates.add(SINGLE_DATAMAP_CLASS);
 
-		standardServerDataMapSuperclassTemplates = new ArrayList<>();
-		standardServerDataMapSuperclassTemplates.add(STANDARD_SERVER_DATAMAP_SUPERCLASS);
+		defaultServerDataMapSuperclassTemplates = new ArrayList<>();
+		defaultServerDataMapSuperclassTemplates.add(STANDARD_SERVER_DATAMAP_SUPERCLASS);
 		
-		standardClientDataMapTemplates = new ArrayList<>();
-		standardClientDataMapTemplates.add(STANDARD_CLIENT_DATAMAP_SUBCLASS);
+		defaultClientDataMapTemplates = new ArrayList<>();
+		defaultClientDataMapTemplates.add(STANDARD_CLIENT_DATAMAP_SUBCLASS);
 		
-		standardClientDataMapSuperclassTemplates = new ArrayList<>();
-		standardClientDataMapSuperclassTemplates.add(STANDARD_CLIENT_DATAMAP_SUPERCLASS);
+		defaultClientDataMapSuperclassTemplates = new ArrayList<>();
+		defaultClientDataMapSuperclassTemplates.add(STANDARD_CLIENT_DATAMAP_SUPERCLASS);
 
 		updateCustomTemplates(getTemplatePreferences(application));
 		reverseCustomTemplate = new HashMap<>();
@@ -123,39 +128,27 @@ public class CodeTemplateManager {
 			reverseCustomTemplate.put(entry.getValue(), entry.getKey());
 		}
 
-		standardTemplates = new HashMap<>();
-		standardTemplates.put(STANDARD_SERVER_SUPERCLASS, ClassGenerationAction.SUPERCLASS_TEMPLATE);
-		standardTemplates.put(STANDARD_CLIENT_SUPERCLASS, ClientClassGenerationAction.SUPERCLASS_TEMPLATE);
-		standardTemplates.put(STANDARD_SERVER_SUBCLASS, ClassGenerationAction.SUBCLASS_TEMPLATE);
-		standardTemplates.put(STANDARD_CLIENT_SUBCLASS, ClientClassGenerationAction.SUBCLASS_TEMPLATE);
-		standardTemplates.put(SINGLE_SERVER_CLASS, ClassGenerationAction.SINGLE_CLASS_TEMPLATE);
-
-		standardTemplates.put(STANDARD_EMBEDDABLE_SUPERCLASS, ClassGenerationAction.EMBEDDABLE_SUPERCLASS_TEMPLATE);
-		standardTemplates.put(STANDARD_EMBEDDABLE_SUBCLASS, ClassGenerationAction.EMBEDDABLE_SUBCLASS_TEMPLATE);
-		standardTemplates.put(SINGLE_EMBEDDABLE_CLASS, ClassGenerationAction.EMBEDDABLE_SINGLE_CLASS_TEMPLATE);
-
-		standardTemplates.put(STANDARD_SERVER_DATAMAP_SUBCLASS, ClassGenerationAction.DATAMAP_SUBCLASS_TEMPLATE);
-		standardTemplates.put(STANDARD_CLIENT_DATAMAP_SUBCLASS, ClientClassGenerationAction.DMAP_SUBCLASS_TEMPLATE);
-		standardTemplates.put(SINGLE_DATAMAP_CLASS, ClassGenerationAction.DATAMAP_SINGLE_CLASS_TEMPLATE);
-		standardTemplates.put(STANDARD_SERVER_DATAMAP_SUPERCLASS, ClassGenerationAction.DATAMAP_SUPERCLASS_TEMPLATE);
-		standardTemplates.put(STANDARD_CLIENT_DATAMAP_SUPERCLASS, ClientClassGenerationAction.DMAP_SUPERCLASS_TEMPLATE);
-
-		reverseStandartTemplates = new HashMap<>();
-		reverseStandartTemplates.put(ClassGenerationAction.SUBCLASS_TEMPLATE, STANDARD_SERVER_SUBCLASS);
-		reverseStandartTemplates.put(ClientClassGenerationAction.SUBCLASS_TEMPLATE, STANDARD_CLIENT_SUBCLASS);
-		reverseStandartTemplates.put(ClassGenerationAction.SINGLE_CLASS_TEMPLATE, SINGLE_SERVER_CLASS);
-		reverseStandartTemplates.put(ClientClassGenerationAction.SUPERCLASS_TEMPLATE, STANDARD_CLIENT_SUPERCLASS);
-		reverseStandartTemplates.put(ClassGenerationAction.SUPERCLASS_TEMPLATE, STANDARD_SERVER_SUPERCLASS);
-
-		reverseStandartTemplates.put(ClassGenerationAction.EMBEDDABLE_SUPERCLASS_TEMPLATE, STANDARD_EMBEDDABLE_SUPERCLASS);
-		reverseStandartTemplates.put(ClassGenerationAction.EMBEDDABLE_SUBCLASS_TEMPLATE, STANDARD_EMBEDDABLE_SUBCLASS);
-		reverseStandartTemplates.put(ClassGenerationAction.EMBEDDABLE_SINGLE_CLASS_TEMPLATE, SINGLE_EMBEDDABLE_CLASS);
-
-		reverseStandartTemplates.put(ClassGenerationAction.DATAMAP_SUBCLASS_TEMPLATE, STANDARD_SERVER_DATAMAP_SUBCLASS);
-		reverseStandartTemplates.put(ClientClassGenerationAction.DMAP_SUBCLASS_TEMPLATE, STANDARD_CLIENT_DATAMAP_SUBCLASS);
-		reverseStandartTemplates.put(ClassGenerationAction.DATAMAP_SINGLE_CLASS_TEMPLATE, SINGLE_DATAMAP_CLASS);
-		reverseStandartTemplates.put(ClassGenerationAction.DATAMAP_SUPERCLASS_TEMPLATE, STANDARD_SERVER_DATAMAP_SUPERCLASS);
-		reverseStandartTemplates.put(ClientClassGenerationAction.DMAP_SUPERCLASS_TEMPLATE, STANDARD_CLIENT_DATAMAP_SUPERCLASS);
+		defaultTemplates = new HashMap<>();
+		defaultTemplates.put(STANDARD_SERVER_SUPERCLASS, ClassGenerationAction.SUPERCLASS_TEMPLATE);
+		defaultTemplates.put(STANDARD_CLIENT_SUPERCLASS, ClientClassGenerationAction.SUPERCLASS_TEMPLATE);
+		defaultTemplates.put(STANDARD_SERVER_SUBCLASS, ClassGenerationAction.SUBCLASS_TEMPLATE);
+		defaultTemplates.put(STANDARD_CLIENT_SUBCLASS, ClientClassGenerationAction.SUBCLASS_TEMPLATE);
+		defaultTemplates.put(SINGLE_SERVER_CLASS, ClassGenerationAction.SINGLE_CLASS_TEMPLATE);
+
+		defaultTemplates.put(STANDARD_EMBEDDABLE_SUPERCLASS, ClassGenerationAction.EMBEDDABLE_SUPERCLASS_TEMPLATE);
+		defaultTemplates.put(STANDARD_EMBEDDABLE_SUBCLASS, ClassGenerationAction.EMBEDDABLE_SUBCLASS_TEMPLATE);
+		defaultTemplates.put(SINGLE_EMBEDDABLE_CLASS, ClassGenerationAction.EMBEDDABLE_SINGLE_CLASS_TEMPLATE);
+
+		defaultTemplates.put(STANDARD_SERVER_DATAMAP_SUBCLASS, ClassGenerationAction.DATAMAP_SUBCLASS_TEMPLATE);
+		defaultTemplates.put(STANDARD_CLIENT_DATAMAP_SUBCLASS, ClientClassGenerationAction.DMAP_SUBCLASS_TEMPLATE);
+		defaultTemplates.put(SINGLE_DATAMAP_CLASS, ClassGenerationAction.DATAMAP_SINGLE_CLASS_TEMPLATE);
+		defaultTemplates.put(STANDARD_SERVER_DATAMAP_SUPERCLASS, ClassGenerationAction.DATAMAP_SUPERCLASS_TEMPLATE);
+		defaultTemplates.put(STANDARD_CLIENT_DATAMAP_SUPERCLASS, ClientClassGenerationAction.DMAP_SUPERCLASS_TEMPLATE);
+
+		reverseDefaultsTemplates = new HashMap<>();
+		for(Map.Entry<String, String> entry : defaultTemplates.entrySet()){
+			reverseDefaultsTemplates.put(entry.getValue(), entry.getKey());
+		}
 	}
 
 	/**
@@ -191,61 +184,97 @@ public class CodeTemplateManager {
 				logger.warn("Path for template named '{}' could not be resolved", name);
 			}
 		}
-		value = standardTemplates.get(name);
+		value = defaultTemplates.get(name);
 		return value != null ? value.toString() : null;
 	}
 
 	public String getNameByPath(String name, Path rootPath) {
-		String fullPath = rootPath.resolve(Paths.get(name)).normalize().toString();
-		if(reverseCustomTemplate.containsKey(fullPath)){
-			return reverseCustomTemplate.get(fullPath);
+		Path path = Paths.get(name);
+		String normalizedPath = (rootPath == null) ?
+				path.normalize().toString() :
+				rootPath.resolve(path).normalize().toString();
+		if (reverseCustomTemplate.containsKey(normalizedPath)) {
+			return reverseCustomTemplate.get(normalizedPath);
 		} else {
-			Object value = reverseStandartTemplates.get(name);
-			return value != null ? value.toString() : null;
+			Object value = reverseDefaultsTemplates.get(name);
+			if (value != null) {
+				return value.toString();
+			} else {
+				String preparedName = prepareName(Paths.get(normalizedPath), templatePreferences);
+				return addTemplate(normalizedPath, preparedName).getKey();
+			}
+		}
+	}
+
+	public FSPath addTemplate(String path, String name) {
+		Preferences newNode = templatePreferences.node(name);
+		FSPath fsPath = (FSPath) application
+				.getCayenneProjectPreferences()
+				.getProjectDetailObject(FSPath.class, newNode);
+		fsPath.setPath(path);
+		return fsPath;
+	}
+
+	/**
+	 * Prepares template name from the path. First, remove the extension and add "_0" to the name.
+	 * Next step is check for unique. If the same name is exist, increases number at the end to the next one.
+	 */
+	private String prepareName(Path path, Preferences templatePreferences) {
+		String preparedName = path.getFileName().toString().replaceAll(".vm$", "");
+		preparedName += "_0";
+		int j = 1;
+		try {
+			while (templatePreferences.nodeExists(preparedName)) {
+				preparedName = preparedName.replaceAll("_.*[0-9]", "_" + j);
+				j++;
+			}
+		} catch (BackingStoreException e) {
+			logger.warn("Error reading preferences");
 		}
+		return preparedName;
 	}
 
 	public Map<String, String> getCustomTemplates() {
 		return customTemplates;
 	}
 
-	public List<String> getStandardSubclassTemplates() {
-		return standardSubclassTemplates;
+	public List<String> getDefaultSubclassTemplates() {
+		return defaultSubclassTemplates;
 	}
 
-	public List<String> getStandardClientSubclassTemplates() {
-		return standardClientSubclassTemplates;
+	public List<String> getDefaultClientSubclassTemplates() {
+		return defaultClientSubclassTemplates;
 	}
 
-	public List<String> getStandardSuperclassTemplates() {
-		return standardSuperclassTemplates;
+	public List<String> getDefaultSuperclassTemplates() {
+		return defaultSuperclassTemplates;
 	}
 
-	public List<String> getStandardClientSuperclassTemplates() {
-		return standardClientSuperclassTemplates;
+	public List<String> getDefaultClientSuperclassTemplates() {
+		return defaultClientSuperclassTemplates;
 	}
 
-	public List<String> getStandartEmbeddableTemplates() {
-		return standardEmbeddableTemplates;
+	public List<String> getDefaultEmbeddableTemplates() {
+		return defaultEmbeddableTemplates;
 	}
 
-	public List<String> getStandartEmbeddableSuperclassTemplates() {
-		return standardEmbeddableSuperclassTemplates;
+	public List<String> getDefaultEmbeddableSuperclassTemplates() {
+		return defaultEmbeddableSuperclassTemplates;
 	}
 
-	public List<String> getStandartDataMapTemplates() {
-		return standardServerDataMapTemplates; 
+	public List<String> getDefaultDataMapTemplates() {
+		return defaultServerDataMapTemplates;
 	}
 
-	public List<String> getStandartDataMapSuperclassTemplates() {
-		return standardServerDataMapSuperclassTemplates;
+	public List<String> getDefaultDataMapSuperclassTemplates() {
+		return defaultServerDataMapSuperclassTemplates;
 	}
 	
-	public List<String> getStandardClientDataMapTemplates() {
-		return standardClientDataMapTemplates; 
+	public List<String> getDefaultClientDataMapTemplates() {
+		return defaultClientDataMapTemplates;
 	}
 	
-	public List<String> getStandardClientDataMapSuperclassTemplates() { 
-		return standardClientDataMapSuperclassTemplates; 
+	public List<String> getDefaultClientDataMapSuperclassTemplates() {
+		return defaultClientDataMapSuperclassTemplates;
 	}
 }
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/TemplateCreator.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/TemplateCreator.java
index 5a19458..7b213fa 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/TemplateCreator.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/TemplateCreator.java
@@ -20,8 +20,6 @@
 package org.apache.cayenne.modeler.dialog.pref;
 
 import java.awt.Component;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
 import java.io.File;
 import java.util.HashSet;
 import java.util.Set;
@@ -47,6 +45,7 @@ public class TemplateCreator extends CayenneController {
     protected Set<String> existingNames;
     protected CayennePreferenceEditor editor;
     protected Preferences preferences;
+    private static final String ERROR = "Error";
 
     public TemplateCreator(TemplatePreferences parent) {
         super(parent);
@@ -98,12 +97,9 @@ public class TemplateCreator extends CayenneController {
         view.getTemplateChooser().setCurrentDirectory(path.getExistingDirectory(false));
         view.getTemplateChooser().addPropertyChangeListener(
                 FileChooser.CURRENT_DIRECTORY_PROPERTY,
-                new PropertyChangeListener() {
-
-                    public void propertyChange(PropertyChangeEvent evt) {
-                        File directory = view.getTemplateChooser().getCurrentDirectory();
-                        path.setDirectory(directory);
-                    }
+                evt -> {
+                    File directory = view.getTemplateChooser().getCurrentDirectory();
+                    path.setDirectory(directory);
                 });
     }
 
@@ -114,22 +110,21 @@ public class TemplateCreator extends CayenneController {
             JOptionPane.showMessageDialog(
                     view,
                     "Enter Template Name",
-                    "Error",
+                    ERROR,
                     JOptionPane.WARNING_MESSAGE);
         } else if (existingNames.contains(templateName)) {
             JOptionPane.showMessageDialog(
                     view,
                     "'" + templateName + "' is already taken, enter a different name",
-                    "Error",
+                    ERROR,
                     JOptionPane.WARNING_MESSAGE);
         } else if (view.getTemplateChooser().getFile() == null) {
             JOptionPane.showMessageDialog(
                     view,
                     "Must select an existing template file",
-                    "Error",
+                    ERROR,
                     JOptionPane.WARNING_MESSAGE);
-        }
-        else {
+        } else {
             canceled = false;
             view.dispose();
         }
@@ -161,15 +156,11 @@ public class TemplateCreator extends CayenneController {
         if (canceled) {
             return null;
         }
-
-        String key = view.getTemplateName().getText();
+        String name = view.getTemplateName().getText();
         File file = view.getTemplateChooser().getFile();
-        Preferences newNode = preferences.node(key);
-        FSPath path = (FSPath) application
-                .getCayenneProjectPreferences()
-                .getProjectDetailObject(FSPath.class, newNode);
-        editor.getAddedNode().add(newNode);
-        path.setPath(file != null ? file.getAbsolutePath() : null);
-        return path;
+        String path = file != null ? file.getAbsolutePath() : null;
+        FSPath fsPath = application.getCodeTemplateManager().addTemplate(path, name);
+        editor.getAddedNode().add(fsPath.getCurrentPreference());
+        return fsPath;
     }
 }
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModeController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModeController.java
index b6d7651..ab1e14a 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModeController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModeController.java
@@ -19,7 +19,6 @@
 
 package org.apache.cayenne.modeler.editor.cgen;
 
-import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -30,7 +29,6 @@ import org.apache.cayenne.gen.CgenConfiguration;
 import org.apache.cayenne.gen.ClassGenerationAction;
 import org.apache.cayenne.gen.ClientClassGenerationAction;
 import org.apache.cayenne.modeler.CodeTemplateManager;
-import org.apache.cayenne.modeler.dialog.cgen.TemplateDialog;
 import org.apache.cayenne.modeler.dialog.pref.PreferenceDialog;
 import org.apache.cayenne.swing.BindingBuilder;
 
@@ -71,36 +69,36 @@ public class CustomModeController extends GeneratorController {
         Collections.sort(customTemplates);
 
         List<String> superTemplates = isClient ?
-                new ArrayList<>(templateManager.getStandardClientSuperclassTemplates()) :
-                new ArrayList<>(templateManager.getStandardSuperclassTemplates());
+                new ArrayList<>(templateManager.getDefaultClientSuperclassTemplates()) :
+                new ArrayList<>(templateManager.getDefaultSuperclassTemplates());
         Collections.sort(superTemplates);
         superTemplates.addAll(customTemplates);
 
         List<String> subTemplates = isClient ?
-                new ArrayList<>(templateManager.getStandardClientSubclassTemplates()) :
-                new ArrayList<>(templateManager.getStandardSubclassTemplates());
+                new ArrayList<>(templateManager.getDefaultClientSubclassTemplates()) :
+                new ArrayList<>(templateManager.getDefaultSubclassTemplates());
         Collections.sort(subTemplates);
         subTemplates.addAll(customTemplates);
 
         List<String> querySuperTemplates = isClient ?
-                new ArrayList<>(templateManager.getStandardClientDataMapSuperclassTemplates()) :
-                new ArrayList<>(templateManager.getStandartDataMapSuperclassTemplates());
+                new ArrayList<>(templateManager.getDefaultClientDataMapSuperclassTemplates()) :
+                new ArrayList<>(templateManager.getDefaultDataMapSuperclassTemplates());
         Collections.sort(querySuperTemplates);
         querySuperTemplates.addAll(customTemplates);
 
         List<String> queryTemplates = isClient ?
-                new ArrayList<>(templateManager.getStandardClientDataMapTemplates()) :
-                new ArrayList<>(templateManager.getStandartDataMapTemplates());
+                new ArrayList<>(templateManager.getDefaultClientDataMapTemplates()) :
+                new ArrayList<>(templateManager.getDefaultDataMapTemplates());
         Collections.sort(queryTemplates);
         queryTemplates.addAll(customTemplates);
 
-        List<String> embeddableSuperTemplates = new ArrayList<>(templateManager.getStandartEmbeddableSuperclassTemplates());
-		Collections.sort(embeddableSuperTemplates);
-		embeddableSuperTemplates.addAll(customTemplates);
+        List<String> embeddableSuperTemplates = new ArrayList<>(templateManager.getDefaultEmbeddableSuperclassTemplates());
+        Collections.sort(embeddableSuperTemplates);
+        embeddableSuperTemplates.addAll(customTemplates);
 
-		List<String> embeddableTemplates = new ArrayList<>(templateManager.getStandartEmbeddableTemplates());
-		Collections.sort(embeddableTemplates);
-		embeddableTemplates.addAll(customTemplates);
+        List<String> embeddableTemplates = new ArrayList<>(templateManager.getDefaultEmbeddableTemplates());
+        Collections.sort(embeddableTemplates);
+        embeddableTemplates.addAll(customTemplates);
 
         this.view.getSubclassTemplate().getComboBox().setModel(new DefaultComboBoxModel<>(subTemplates.toArray(new String[0])));
         this.view.getSuperclassTemplate().getComboBox().setModel(new DefaultComboBoxModel<>(superTemplates.toArray(new String[0])));
@@ -110,11 +108,6 @@ public class CustomModeController extends GeneratorController {
         this.view.getEmbeddableSuperTemplate().getComboBox().setModel(new DefaultComboBoxModel<>(embeddableSuperTemplates.toArray(new String[0])));
     }
 
-    public void missTemplateDialog(CgenConfiguration cgenConfiguration, String template, String superTemplate) {
-        new TemplateDialog(this, cgenConfiguration, template, superTemplate).startupAction();
-        updateComboBoxes();
-    }
-
     public void popPreferencesAction() {
         new PreferenceDialog(getApplication().getFrameController()).startupAction(PreferenceDialog.TEMPLATES_KEY);
         updateTemplates();
@@ -132,63 +125,30 @@ public class CustomModeController extends GeneratorController {
         String superTemplateName = getApplication().getCodeTemplateManager().getNameByPath(
                 cgenConfiguration.getSuperTemplate(), cgenConfiguration.getRootPath());
         String embeddableTemplateName = getApplication().getCodeTemplateManager().getNameByPath(
-        		cgenConfiguration.getEmbeddableTemplate(), cgenConfiguration.getRootPath());
+                cgenConfiguration.getEmbeddableTemplate(), cgenConfiguration.getRootPath());
         String embeddableSuperTemplateName = getApplication().getCodeTemplateManager().getNameByPath(
-        		cgenConfiguration.getEmbeddableSuperTemplate(), cgenConfiguration.getRootPath());
+                cgenConfiguration.getEmbeddableSuperTemplate(), cgenConfiguration.getRootPath());
         String queryTemplateName = getApplication().getCodeTemplateManager().getNameByPath(
-        		cgenConfiguration.getQueryTemplate(), cgenConfiguration.getRootPath());
+                cgenConfiguration.getQueryTemplate(), cgenConfiguration.getRootPath());
         String querySuperTemplateName = getApplication().getCodeTemplateManager().getNameByPath(
-        		cgenConfiguration.getQuerySuperTemplate(), cgenConfiguration.getRootPath());
-
-        String path = cgenConfiguration.getRootPath().resolve(Paths.get(cgenConfiguration.getTemplate())).normalize().toString();
-        String superPath = cgenConfiguration.getRootPath().resolve(Paths.get(cgenConfiguration.getSuperTemplate())).normalize().toString();
-        String embeddableTemplatePath = cgenConfiguration.getRootPath().resolve(Paths.get(cgenConfiguration.getEmbeddableTemplate())).normalize().toString();
-        String embeddableSuperTemplatePath = cgenConfiguration.getRootPath().resolve(Paths.get(cgenConfiguration.getEmbeddableSuperTemplate())).normalize().toString();
-        String queryTemplatePath = cgenConfiguration.getRootPath().resolve(Paths.get(cgenConfiguration.getQueryTemplate())).normalize().toString();
-        String querySuperTemplatePath = cgenConfiguration.getRootPath().resolve(Paths.get(cgenConfiguration.getQuerySuperTemplate())).normalize().toString();
-
-        if(templateName == null && superTemplateName == null) {
-            view.getSubclassTemplate().setItem(null);
-            view.getSuperclassTemplate().setItem(null);
-            missTemplateDialog(cgenConfiguration, path, superPath);
-        } else if(templateName == null) {
-            view.getSubclassTemplate().setItem(null);
-            missTemplateDialog(cgenConfiguration, path, null);
-        } else if(superTemplateName == null) {
-            view.getSuperclassTemplate().setItem(null);
-            missTemplateDialog(cgenConfiguration, null, superPath);
-        } else {
-            view.getSubclassTemplate().setItem(templateName);
-            view.getSuperclassTemplate().setItem(superTemplateName);
-        }
-
-        if(embeddableTemplateName == null && embeddableSuperTemplateName == null) {
-        	missTemplateDialog(cgenConfiguration, embeddableTemplatePath, embeddableSuperTemplatePath);
-        } else if(embeddableTemplateName == null) {
-        	missTemplateDialog(cgenConfiguration, embeddableTemplatePath, null);
-        } else if(embeddableSuperTemplateName == null) {
-        	missTemplateDialog(cgenConfiguration, null, embeddableSuperTemplatePath);
-        }
-    	view.getEmbeddableTemplate().setItem(embeddableTemplateName);
-    	view.getEmbeddableSuperTemplate().setItem(embeddableSuperTemplateName);
-
-    	if(queryTemplateName == null && querySuperTemplateName == null) {
-    		missTemplateDialog(cgenConfiguration, queryTemplatePath, querySuperTemplatePath);
-    	} else if(queryTemplateName == null) {
-    		missTemplateDialog(cgenConfiguration, queryTemplatePath, null);
-    	} else if(querySuperTemplateName == null) {
-    		missTemplateDialog(cgenConfiguration, null, querySuperTemplatePath);
-    	}
-    	view.getQueryTemplate().setItem(queryTemplateName);
-    	view.getQuerySuperTemplate().setItem(querySuperTemplateName);
+                cgenConfiguration.getQuerySuperTemplate(), cgenConfiguration.getRootPath());
+
+        view.getSubclassTemplate().setItem(templateName);
+        view.getSuperclassTemplate().setItem(superTemplateName);
+
+        view.getEmbeddableTemplate().setItem(embeddableTemplateName);
+        view.getEmbeddableSuperTemplate().setItem(embeddableSuperTemplateName);
+
+        view.getQueryTemplate().setItem(queryTemplateName);
+        view.getQuerySuperTemplate().setItem(querySuperTemplateName);
 
         view.setDisableSuperComboBoxes(view.getPairs().isSelected());
     }
 
-    private void initListeners(){
+    private void initListeners() {
         view.getPairs().addActionListener(val -> {
             cgenConfiguration.setMakePairs(view.getPairs().isSelected());
-            if(!view.getPairs().isSelected()) {
+            if (!view.getPairs().isSelected()) {
                 cgenConfiguration.setTemplate(ClassGenerationAction.SINGLE_CLASS_TEMPLATE);
                 cgenConfiguration.setEmbeddableTemplate(ClassGenerationAction.EMBEDDABLE_SINGLE_CLASS_TEMPLATE);
                 cgenConfiguration.setQueryTemplate(ClassGenerationAction.DATAMAP_SINGLE_CLASS_TEMPLATE);
@@ -224,7 +184,7 @@ public class CustomModeController extends GeneratorController {
         view.getClientMode().addActionListener(val -> {
             boolean isSelected = view.getClientMode().isSelected();
             cgenConfiguration.setClient(isSelected);
-            if(isSelected) {
+            if (isSelected) {
                 cgenConfiguration.setTemplate(ClientClassGenerationAction.SUBCLASS_TEMPLATE);
                 cgenConfiguration.setSuperTemplate(ClientClassGenerationAction.SUPERCLASS_TEMPLATE);
                 cgenConfiguration.setQueryTemplate(ClientClassGenerationAction.DMAP_SUBCLASS_TEMPLATE);
@@ -247,15 +207,15 @@ public class CustomModeController extends GeneratorController {
                             ClassGenerationAction.SUBCLASS_TEMPLATE,
                     cgenConfiguration.getRootPath());
             String queryTemplateName = getApplication().getCodeTemplateManager().getNameByPath(
-            		isSelected ?
-            				ClientClassGenerationAction.DMAP_SUBCLASS_TEMPLATE :
-            					ClassGenerationAction.DATAMAP_SUBCLASS_TEMPLATE,
-            					cgenConfiguration.getRootPath());
+                    isSelected ?
+                            ClientClassGenerationAction.DMAP_SUBCLASS_TEMPLATE :
+                            ClassGenerationAction.DATAMAP_SUBCLASS_TEMPLATE,
+                    cgenConfiguration.getRootPath());
             String querySuperTemplateName = getApplication().getCodeTemplateManager().getNameByPath(
-            		isSelected ?
-            				ClientClassGenerationAction.DMAP_SUPERCLASS_TEMPLATE :
-            					ClassGenerationAction.DATAMAP_SUPERCLASS_TEMPLATE,
-            					cgenConfiguration.getRootPath());
+                    isSelected ?
+                            ClientClassGenerationAction.DMAP_SUPERCLASS_TEMPLATE :
+                            ClassGenerationAction.DATAMAP_SUPERCLASS_TEMPLATE,
+                    cgenConfiguration.getRootPath());
             view.getSubclassTemplate().setItem(templateName);
             view.getSuperclassTemplate().setItem(superTemplateName);
             view.getQueryTemplate().setItem(queryTemplateName);
@@ -264,7 +224,8 @@ public class CustomModeController extends GeneratorController {
         });
     }
 
-    public void initForm(CgenConfiguration cgenConfiguration){
+    @Override
+    public void initForm(CgenConfiguration cgenConfiguration) {
         super.initForm(cgenConfiguration);
         view.getClientMode().setSelected(cgenConfiguration.isClient());
         updateTemplates();