Skip to content

Commit

Permalink
G5V8DT-26116 При добавлении модулей излишне добавляется область
Browse files Browse the repository at this point in the history
  • Loading branch information
Nikita Kuznetsov committed Nov 28, 2024
1 parent 1749798 commit ef241f2
Show file tree
Hide file tree
Showing 7 changed files with 60 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,8 @@ private void saveTemplate(ModuleType type)
return;
}
ScriptVariant script = v8Project.getScriptVariant();
Supplier<InputStream> content = moduleStructureProvider.getModuleStructureTemplate(getProject(), type, script);
Supplier<InputStream> content =
moduleStructureProvider.getModuleStructureTemplate(getProject(), type, false, script);
if (content == null)
{
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@
import com._1c.g5.v8.dt.common.StringUtils;
import com._1c.g5.v8.dt.core.filesystem.IQualifiedNameFilePathConverter;
import com._1c.g5.v8.dt.metadata.mdclass.AbstractForm;
import com._1c.g5.v8.dt.metadata.mdclass.CommonModule;
import com._1c.g5.v8.dt.metadata.mdclass.ReturnValuesReuse;
import com._1c.g5.v8.dt.metadata.mdclass.ScriptVariant;
import com._1c.g5.v8.dt.ui.wizards.IDtNewWizardContext;
import com.e1c.v8codestyle.bsl.IModuleStructureProvider;
Expand Down Expand Up @@ -85,15 +87,22 @@ public void createModels(IDtNewWizardContext<EObject> context, Set<EObject> crea
{
formToAddModule = (AbstractForm)model;
}
else if (model instanceof Module)
else if (model instanceof Module module)
{
formToAddModule = null;
Module module = (Module)model;
IFile bslFile = getModuleFile(module);
if (bslFile != null)
{
ModuleType type = BslUtil.computeModuleType(module, qualifiedNameFilePathConverter);
createOrUpdateModule(bslFile, type, context);
if (type == ModuleType.COMMON_MODULE && context.getModel() instanceof CommonModule commonModule)
{
createOrUpdateModule(bslFile, ModuleType.COMMON_MODULE,
commonModule.getReturnValuesReuse() != ReturnValuesReuse.DONT_USE, context);
}
else
{
createOrUpdateModule(bslFile, type, false, context);
}
}
}
}
Expand All @@ -103,19 +112,20 @@ else if (model instanceof Module)
IFile bslFile = getModuleFile(formToAddModule, project);
if (bslFile != null)
{
createOrUpdateModule(bslFile, ModuleType.FORM_MODULE, context);
createOrUpdateModule(bslFile, ModuleType.FORM_MODULE, false, context);

EObject module = createBslProxyModule(bslFile);
createdModels.add(module);
}
}
}

private void createOrUpdateModule(IFile bslFile, ModuleType type, IDtNewWizardContext<EObject> context)
private void createOrUpdateModule(IFile bslFile, ModuleType type, boolean reusableModule,
IDtNewWizardContext<EObject> context)
{
ScriptVariant script = context.getV8project().getScriptVariant();
Supplier<InputStream> content =
moduleStructureProvider.getModuleStructureTemplate(bslFile.getProject(), type, script);
moduleStructureProvider.getModuleStructureTemplate(bslFile.getProject(), type, reusableModule, script);
if (content == null)
{
return;
Expand Down Expand Up @@ -178,5 +188,4 @@ else if (!currentCode.isEmpty())
UiPlugin.log(status);
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,13 @@ public interface IModuleStructureProvider
*
* @param project the project, cannot be {@code null}.
* @param moduleType the module type, cannot be {@code null}.
* @param reusableModule module is reusable common module.
* @param script the script, cannot be {@code null}.
* @return the module structure template supplier of input stream, may return {@code null} if there is no template
* for such module type and script variant.
*/
Supplier<InputStream> getModuleStructureTemplate(IProject project, ModuleType moduleType, ScriptVariant script);
Supplier<InputStream> getModuleStructureTemplate(IProject project, ModuleType moduleType, boolean reusableModule,
ScriptVariant script);

/**
* Gets the module structure top regions in order of as they should be in module.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ public class ModuleStructureProvider

private static final String FOLDER_EN = "/templates/en/"; //$NON-NLS-1$

private static final String REUSABLE_SUFFIX = "_reusable"; //$NON-NLS-1$

private static final IPath FOLDER_SETTINGS = new org.eclipse.core.runtime.Path(".settings/templates"); //$NON-NLS-1$

@Override
Expand All @@ -68,16 +70,19 @@ public boolean canCreateStructure(IProject project)

@Override
public Supplier<InputStream> getModuleStructureTemplate(IProject project, ModuleType moduleType,
ScriptVariant script)
boolean reusableModule, ScriptVariant script)
{

if (moduleType == null || script == null)
{
return null;
}

StringBuilder sb = new StringBuilder();
sb.append(moduleType.getName().toLowerCase());
if (reusableModule)
{
sb.append(REUSABLE_SUFFIX);
}
sb.append("."); //$NON-NLS-1$
sb.append(BSL_FILE_EXTENSION);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@

#Region Internal

// Enter code here.

#EndRegion

#Region Private

// Enter code here.

#EndRegion
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@

#Область СлужебныйПрограммныйИнтерфейс

// Код процедур и функций

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

// Код процедур и функций

#КонецОбласти
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,7 @@ public class ModuleStructurePropertyPageTest

private static final String EDTOR_TITLE = "/" + PROJECT_NAME + "/" + SETTINGS_TEMPLATES_COMMON_MODULE_BSL;

private static final String PROPERTY_PAGE_ID =
"com.e1c.v8codestyle.bsl.ui.properties.moduleStructurePropertyPage";
private static final String PROPERTY_PAGE_ID = "com.e1c.v8codestyle.bsl.ui.properties.moduleStructurePropertyPage";

@Rule
public TestingWorkspace testingWorkspace = new TestingWorkspace(true, false);
Expand Down Expand Up @@ -130,13 +129,14 @@ public void testOpenModuleTemplate() throws Exception
{

IModuleStructureProvider moduleStructureProvider = ServiceAccess.get(IModuleStructureProvider.class);
Supplier<InputStream> templateProvider = moduleStructureProvider.getModuleStructureTemplate(project,
ModuleType.COMMON_MODULE, null);
Supplier<InputStream> templateProvider =
moduleStructureProvider.getModuleStructureTemplate(project, ModuleType.COMMON_MODULE, false, null);
assertNull(templateProvider);
templateProvider = moduleStructureProvider.getModuleStructureTemplate(project, null, ScriptVariant.ENGLISH);
templateProvider =
moduleStructureProvider.getModuleStructureTemplate(project, null, false, ScriptVariant.ENGLISH);
assertNull(templateProvider);
templateProvider = moduleStructureProvider.getModuleStructureTemplate(project,
ModuleType.COMMON_MODULE, ScriptVariant.ENGLISH);
templateProvider = moduleStructureProvider.getModuleStructureTemplate(project, ModuleType.COMMON_MODULE, false,
ScriptVariant.ENGLISH);
assertNotNull(templateProvider);

Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
Expand Down Expand Up @@ -167,7 +167,6 @@ public void testOpenModuleTemplate() throws Exception
waitEventSetnd(dialog);
assertTrue(buttonOpen.isEnabled());


buttonOpen.notifyListeners(SWT.Selection, new Event());
assertNull(dialog.getShell());
waitEventSetnd();
Expand Down Expand Up @@ -199,7 +198,7 @@ public void testOpenModuleTemplate() throws Exception
file.setContents(in, true, true, new NullProgressMonitor());
}

templateProvider = moduleStructureProvider.getModuleStructureTemplate(project, ModuleType.COMMON_MODULE,
templateProvider = moduleStructureProvider.getModuleStructureTemplate(project, ModuleType.COMMON_MODULE, false,
ScriptVariant.ENGLISH);

try (InputStream template = templateProvider.get();
Expand Down

0 comments on commit ef241f2

Please sign in to comment.