1 package com.proalpha.pds.projconf.configure;
3 import java.util.Arrays;
5 import org.eclipse.core.runtime.CoreException;
6 import org.eclipse.debug.core.DebugPlugin;
7 import org.eclipse.debug.core.ILaunchConfigurationType;
8 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
9 import org.eclipse.debug.core.ILaunchManager;
10 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory;
13 import com.openedge.pdt.project.launch.ABLLaunchConstants;
24 private String projectVersion;
27 private String progressVersion;
30 private String startupProgram;
33 private String workingDirectory;
36 private String clientLogDirectory;
39 private String startupParameters;
42 private static final String STREAM_CODE_PAGE =
"ISO8859-1";
45 private static final String INTERNAL_CODE_PAGE =
"ISO8859-1";
48 private static final String NUM_SEP =
"46";
51 private static final String NUM_DEC =
"44";
54 private static final String DATE_FORMAT =
"dmy";
57 private static final String COLLATION_TABLE =
"German-Library";
60 private static final String CASE_TABLE =
"Basic";
72 String clientLogDirectory, String startupParameters) {
73 this.projectVersion = project;
74 this.progressVersion = version;
75 this.startupProgram = startupProgram;
76 this.workingDirectory = workingDirectory;
77 this.clientLogDirectory = clientLogDirectory;
78 this.startupParameters = startupParameters;
86 ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
87 ILaunchConfigurationType type = manager.getLaunchConfigurationType(ABLLaunchConstants.ABL_LAUNCH_TYPE);
89 ILaunchConfigurationWorkingCopy configuration;
91 configuration = type.newInstance(
null, projectVersion);
94 configuration.setAttribute(ABLLaunchConstants.ATTR_ABL_PROJECT_NAME, projectVersion);
95 configuration.setAttribute(ABLLaunchConstants.ATTR_ABL_PROGRAM, startupProgram);
96 configuration.setAttribute(ABLLaunchConstants.ATTR_ABL_WORKING_DIRECTORY, workingDirectory);
97 configuration.setAttribute(ABLLaunchConstants.ATTR_ABL_PROVERSION, progressVersion);
99 configuration.setAttribute(ABLLaunchConstants.ATTR_ABL_PROPATH_USE_DEFAULT,
true);
100 configuration.setAttribute(ABLLaunchConstants.ATTR_ABL_PROPATH, (String)
null);
103 configuration.setAttribute(ABLLaunchConstants.ATTR_ABL_USE_PROJECT_DATABASES,
true);
104 configuration.setAttribute(ABLLaunchConstants.ATTR_ABL_DATABASES, (String)
null);
107 configuration.setAttribute(ABLLaunchConstants.ATTR_LOGGING_APPEND_LOG,
true);
108 configuration.setAttribute(ABLLaunchConstants.ATTR_ABL_LOGGING_CLIENT_LOG, clientLogDirectory);
111 configuration.setAttribute(ABLLaunchConstants.ATTR_I18N_CASE_TABLE, CASE_TABLE);
112 configuration.setAttribute(ABLLaunchConstants.ATTR_I18N_COLLATION_TABLE, COLLATION_TABLE);
113 configuration.setAttribute(ABLLaunchConstants.ATTR_I18N_DATE_FORMAT, DATE_FORMAT);
114 configuration.setAttribute(ABLLaunchConstants.ATTR_I18N_FRACTIONAL_SEP, NUM_DEC);
115 configuration.setAttribute(ABLLaunchConstants.ATTR_I18N_THOUSANDS_SEP, NUM_SEP);
116 configuration.setAttribute(ABLLaunchConstants.ATTR_I18N_INTERNAL_CODE_PAGE, INTERNAL_CODE_PAGE);
117 configuration.setAttribute(ABLLaunchConstants.ATTR_I18N_STREAM_CODE_PAGE, STREAM_CODE_PAGE);
120 configuration.setAttribute(ABLLaunchConstants.ATTR_ABL_STARTUP_PARAMETERS,
121 startupParameters.replace(
",INWBConnect=no",
""));
123 configuration.setAttribute(
"org.eclipse.debug.core.MAPPED_RESOURCE_PATHS",
124 Arrays.asList(
"/" + projectVersion));
125 configuration.setAttribute(
"org.eclipse.debug.core.MAPPED_RESOURCE_TYPES", Arrays.asList(
"4"));
126 configuration.setAttribute(
"org.eclipse.debug.core.capture_output",
false);
127 configuration.setAttribute(
"org.eclipse.debug.ui.ATTR_CONSOLE_OUTPUT_ON",
false);
129 configuration.doSave();
130 }
catch (CoreException e) {
131 logger.error(e.getMessage(), e);