no message
This commit is contained in:
60
src/_VisualDVM/Passes/Sapfor/OpenSapforVersionPass.java
Normal file
60
src/_VisualDVM/Passes/Sapfor/OpenSapforVersionPass.java
Normal file
@@ -0,0 +1,60 @@
|
||||
package _VisualDVM.Passes.Sapfor;
|
||||
import Common.Passes.Pass;
|
||||
import Common.Utils.Utils_;
|
||||
import _VisualDVM.Passes.PassCode;
|
||||
import _VisualDVM.Current;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.GlobalData.Settings.SettingName;
|
||||
import _VisualDVM.TestingSystem.SAPFOR.Json.SapforVersion_json;
|
||||
import _VisualDVM.TestingSystem.SAPFOR.SapforTask.SapforTask;
|
||||
|
||||
import java.io.File;
|
||||
import java.nio.file.Paths;
|
||||
public abstract class OpenSapforVersionPass extends Pass<SapforVersion_json> {
|
||||
@Override
|
||||
public String getIconPath() {
|
||||
return "/icons/OpenProject.png";
|
||||
}
|
||||
@Override
|
||||
public String getButtonText() {
|
||||
return "";
|
||||
}
|
||||
public abstract Current getCurrentName();
|
||||
@Override
|
||||
protected boolean needsAnimation() {
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
if (Global.mainModule.Check(Log, getCurrentName())) {
|
||||
target = (SapforVersion_json) Global.mainModule.get(getCurrentName());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
protected void body() throws Exception {
|
||||
SapforTask task = target.task;
|
||||
ShowMessage1("Построение дерева версий и создание баз данных...");
|
||||
File rootHome = Paths.get((Global.mainModule.getDb()).settings.get(SettingName.Workspace).Value,
|
||||
Utils_.getDateName(task.test_description)).toFile();
|
||||
for (SapforVersion_json version_json : task.versions) {
|
||||
ShowMessage2(version_json.version);
|
||||
version_json.createProject(rootHome);
|
||||
}
|
||||
for (SapforVersion_json version_json : task.variants) {
|
||||
ShowMessage2(version_json.version);
|
||||
version_json.createProject(rootHome);
|
||||
}
|
||||
//-второй проход это запись логов и сообщений. у вариантов их быть не может.
|
||||
ShowMessage1("Прочтение журналов и сообщений..."); //без версий нельзя, иначе лишние файлы захватит.
|
||||
for (SapforVersion_json version_json : task.versions) {
|
||||
ShowMessage2(version_json.version);
|
||||
version_json.ReadMessages();
|
||||
}
|
||||
}
|
||||
@Override
|
||||
protected void performDone() throws Exception {
|
||||
Global.mainModule.getPass(PassCode.OpenCurrentProject).Do(target.project.Home);
|
||||
}
|
||||
}
|
||||
176
src/_VisualDVM/Passes/Sapfor/SapforAnalysis.java
Normal file
176
src/_VisualDVM/Passes/Sapfor/SapforAnalysis.java
Normal file
@@ -0,0 +1,176 @@
|
||||
package _VisualDVM.Passes.Sapfor;
|
||||
import Common.Passes.PassState;
|
||||
import Common.Utils.Utils_;
|
||||
import Common.Visual.UI_;
|
||||
import _VisualDVM.Passes.PassCode;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.Visual.Controls.PassControl;
|
||||
import _VisualDVM.Visual.Menus.PassMenuItem;
|
||||
import _VisualDVM.Visual.UI;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.util.Vector;
|
||||
public class SapforAnalysis extends SapforPass {
|
||||
boolean asDonePhase = false;
|
||||
protected Vector<String> getForbiddenPhases() {
|
||||
return new Vector<>();
|
||||
}
|
||||
@Override
|
||||
protected boolean needsAnimation() {
|
||||
return super.needsAnimation() && !asDonePhase;
|
||||
}
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
asDonePhase = false;
|
||||
if (super.canStart(args)) {
|
||||
asDonePhase = ((args.length >= 1) && ((boolean) args[0]));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public String phase() {
|
||||
return "";
|
||||
}
|
||||
@Override
|
||||
protected PassCode necessary() {
|
||||
return PassCode.SPF_ParseFilesWithOrder;
|
||||
}
|
||||
@Override
|
||||
public String getIconPath() {
|
||||
return "/icons/NotPick.png";
|
||||
}
|
||||
protected String getDoneIconPath() {
|
||||
return "/icons/Pick.png";
|
||||
}
|
||||
@Override
|
||||
protected boolean isGoodCode() {
|
||||
return sapfor.getErrorCode() > 0;
|
||||
}
|
||||
@Override
|
||||
protected void PerformPreparation() throws Exception {
|
||||
//-
|
||||
if (UI_.isActive())
|
||||
showPreparation(); // отображение пустых данных
|
||||
//-
|
||||
performPreparation(); //в данном случае удаление данных
|
||||
//-
|
||||
//особенность отрисовки местных контролов.
|
||||
//если сначала удалить данные, то контролы могут обновиться и сослаться на несуществующие
|
||||
//поэтому сначала блокируем контролы, потом удаляем.
|
||||
}
|
||||
@Override
|
||||
protected void body() throws Exception {
|
||||
sapfor.RunAnalysis(
|
||||
getSapforPassName(),
|
||||
-Global.messagesServer.getPort(),
|
||||
Global.packSapforSettings(),
|
||||
target.getProjFile().getAbsolutePath());
|
||||
}
|
||||
protected void unpack(String packed) throws Exception {
|
||||
}
|
||||
//---------------------------------------------
|
||||
//всегда обновлять фазу, даже если она уже выполнена.
|
||||
protected boolean alwaysCheck() {
|
||||
return false;
|
||||
}
|
||||
protected boolean isAtomic() {
|
||||
return true;
|
||||
}
|
||||
//атомарность означает что анализ не ищет фаз.
|
||||
@Override
|
||||
protected void performDone() throws Exception {
|
||||
if (!sapfor.getResult().isEmpty()) {
|
||||
unpack(sapfor.getResult());
|
||||
}
|
||||
if (!isAtomic() && !asDonePhase) {
|
||||
Utils_.MainLog.Print("Поиск выполненных фаз..");
|
||||
sapfor.RunAnalysis(
|
||||
"SPF_GetPassesStateStr",
|
||||
-Global.messagesServer.getPort(),
|
||||
"",
|
||||
"");
|
||||
if (sapfor.getErrorCode() >= 0) {
|
||||
String[] arrayPasses = sapfor.getResult().split("\\|");
|
||||
// "FILL_PAR_REGIONS_LINES" всегда брать последним, чтобы информация была актуальна.
|
||||
Vector<String> sortedPasses = new Vector<>();
|
||||
boolean needsRegions = false;
|
||||
for (String p : arrayPasses) {
|
||||
if (p.equals("FILL_PAR_REGIONS_LINES"))
|
||||
needsRegions = true;
|
||||
else
|
||||
sortedPasses.add(p);
|
||||
}
|
||||
if (needsRegions)
|
||||
sortedPasses.add("FILL_PAR_REGIONS_LINES");
|
||||
for (String p : sortedPasses) {
|
||||
if (!p.isEmpty() && !phase().equals(p)) {
|
||||
SapforAnalysis analysis =
|
||||
sapfor.getAnalysisByPhase(p);
|
||||
if ((analysis != null) && (!analysis.getName().equals(getName())) && (analysis.alwaysCheck() || !analysis.isDone())) {
|
||||
if (getForbiddenPhases().contains(analysis.getName())) {
|
||||
analysis.setDone();
|
||||
analysis.MarkAsDone();
|
||||
} else
|
||||
analysis.start(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Utils_.MainLog.Print("Фазы получены.");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------
|
||||
@Override
|
||||
public void Reset() {
|
||||
if (state == PassState.Done) {
|
||||
state = PassState.Inactive;
|
||||
for (PassControl control: controls)
|
||||
control.setIcon(getIconPath());
|
||||
}
|
||||
}
|
||||
public void MarkAsDone() {
|
||||
for (PassControl control: controls)
|
||||
control.setIcon(getDoneIconPath());
|
||||
}
|
||||
@Override
|
||||
protected void showDone() throws Exception {
|
||||
MarkAsDone();
|
||||
}
|
||||
@Override
|
||||
public AbstractAction getControlAction() {
|
||||
return new AbstractAction() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (isDone()) FocusResult();
|
||||
else {
|
||||
UpdateStatsIfNeed();
|
||||
Do();
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@Override
|
||||
public boolean hasStats() {
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
protected void FocusResult() {
|
||||
UI.getMainWindow().FocusProject();
|
||||
}
|
||||
@Override
|
||||
protected void unpackMessages() throws Exception {
|
||||
if (!asDonePhase) super.unpackMessages();
|
||||
}
|
||||
@Override
|
||||
protected void showFinish() throws Exception {
|
||||
if (!asDonePhase)
|
||||
super.showFinish();
|
||||
}
|
||||
@Override
|
||||
public JMenuItem createMenuItem() {
|
||||
if (menuItem == null)
|
||||
menuItem = new PassMenuItem(this);
|
||||
return menuItem;
|
||||
}
|
||||
}
|
||||
21
src/_VisualDVM/Passes/Sapfor/SapforFilesModification.java
Normal file
21
src/_VisualDVM/Passes/Sapfor/SapforFilesModification.java
Normal file
@@ -0,0 +1,21 @@
|
||||
package _VisualDVM.Passes.Sapfor;
|
||||
import _VisualDVM.Passes.PassCode;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.GlobalData.Settings.SettingName;
|
||||
public class SapforFilesModification extends SapforModification {
|
||||
@Override
|
||||
protected PassCode necessary() {
|
||||
return PassCode.SPF_ParseFilesWithOrder;
|
||||
}
|
||||
@Override
|
||||
protected void performPreparation() throws Exception {
|
||||
super.performPreparation();
|
||||
if ((Global.mainModule.getDb()).settings.get(SettingName.SaveModifications).toBoolean()) {
|
||||
Global.mainModule.getProject().createModification();
|
||||
}
|
||||
}
|
||||
@Override
|
||||
protected void performDone() throws Exception {
|
||||
Global.mainModule.getSapfor().UpdateProjectFiles(true);
|
||||
}
|
||||
}
|
||||
21
src/_VisualDVM/Passes/Sapfor/SapforModification.java
Normal file
21
src/_VisualDVM/Passes/Sapfor/SapforModification.java
Normal file
@@ -0,0 +1,21 @@
|
||||
package _VisualDVM.Passes.Sapfor;
|
||||
import _VisualDVM.Global;
|
||||
public class SapforModification extends SapforPass {
|
||||
public String addOpt1 = "";
|
||||
public String addOpt2 = "";
|
||||
@Override
|
||||
protected boolean isGoodCode() {
|
||||
return sapfor.getErrorCode() >= 0;
|
||||
}
|
||||
@Override
|
||||
protected void body() throws Exception {
|
||||
sapfor.RunModification(
|
||||
getSapforPassName(),
|
||||
-Global.messagesServer.getPort(),
|
||||
Global.packSapforSettings(),
|
||||
target.getProjFile().getAbsolutePath(),
|
||||
"",
|
||||
addOpt1,
|
||||
addOpt2);
|
||||
}
|
||||
}
|
||||
30
src/_VisualDVM/Passes/Sapfor/SapforPass.java
Normal file
30
src/_VisualDVM/Passes/Sapfor/SapforPass.java
Normal file
@@ -0,0 +1,30 @@
|
||||
package _VisualDVM.Passes.Sapfor;
|
||||
import Common.Passes.PassException;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.Visual.UI;
|
||||
public class SapforPass extends SilentSapforPass {
|
||||
//отличается наличием журнала и сообщений
|
||||
@Override
|
||||
protected void performFinish() throws Exception {
|
||||
target.db.BeginTransaction();
|
||||
try {
|
||||
unpackMessages();
|
||||
} catch (PassException ex) {
|
||||
Log.Writeln_(ex.getMessage());
|
||||
}
|
||||
target.db.Commit();
|
||||
}
|
||||
protected void unpackMessages() throws Exception {
|
||||
target.unpackMessagesAndLog(sapfor.getOutputMessage(), sapfor.getOutput());
|
||||
}
|
||||
@Override
|
||||
protected void showFinish() throws Exception {
|
||||
UI.getMainWindow().getProjectWindow().RefreshProjectTreeAndMessages();
|
||||
UI.getMainWindow().getProjectWindow().ShowProjectSapforLog();
|
||||
}
|
||||
@Override
|
||||
public void Interrupt() throws Exception {
|
||||
// target.CreateInterruptFile();
|
||||
Global.mainModule.getSapfor().Interrupt();
|
||||
}
|
||||
}
|
||||
108
src/_VisualDVM/Passes/Sapfor/SapforTransformation.java
Normal file
108
src/_VisualDVM/Passes/Sapfor/SapforTransformation.java
Normal file
@@ -0,0 +1,108 @@
|
||||
package _VisualDVM.Passes.Sapfor;
|
||||
import _VisualDVM.Passes.PassCode;
|
||||
import _VisualDVM.Current;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.Visual.Menus.PassMenuItem;
|
||||
import _VisualDVM.Visual.UI;
|
||||
import _VisualDVM.ProjectData.Project.db_project_info;
|
||||
import _VisualDVM.ProjectData.ProjectView;
|
||||
import _VisualDVM.Repository.Component.Sapfor.TransformationPermission;
|
||||
|
||||
import javax.swing.*;
|
||||
public class SapforTransformation extends SapforPass {
|
||||
protected String Options = ""; //дополнительный аргумент для преобразований.
|
||||
protected TransformationPermission getPermission() {
|
||||
return TransformationPermission.All;
|
||||
}
|
||||
@Override
|
||||
public String getIconPath() {
|
||||
return "/icons/Transformations/" + getName() + ".png";
|
||||
}
|
||||
protected String getVersionLetter() {
|
||||
return "v";
|
||||
}
|
||||
protected String getVersionDescription() {
|
||||
return getDescription();
|
||||
}
|
||||
//-
|
||||
@Override
|
||||
protected PassCode necessary() {
|
||||
return PassCode.SPF_ParseFilesWithOrder;
|
||||
}
|
||||
protected boolean resetAnalysesAfter() {
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
protected boolean isGoodCode() {
|
||||
return sapfor.getErrorCode() >= 0;
|
||||
}
|
||||
@Override
|
||||
protected void performPreparation() throws Exception {
|
||||
super.performPreparation();
|
||||
db_project_info.ResetNewVersions();
|
||||
target.createEmptyVersion(getVersionLetter(), getVersionDescription());
|
||||
//уже добавлена. отображена и выбрана!
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void body() throws Exception {
|
||||
sapfor.RunTransformation(
|
||||
getName(),
|
||||
-Global.messagesServer.getPort(),
|
||||
Global.packSapforSettings(),
|
||||
target.getProjFile().getAbsolutePath(),
|
||||
target.last_version.Home.getAbsolutePath(),
|
||||
Options
|
||||
);
|
||||
}
|
||||
@Override
|
||||
protected void performDone() throws Exception {
|
||||
//миграция типов файлов.
|
||||
target.migrateFilesSettings(target.last_version, true , true);
|
||||
if (resetAnalysesAfter())
|
||||
sapfor.ResetAllAnalyses();
|
||||
}
|
||||
@Override
|
||||
public boolean hasStats() {
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
protected void FocusResult() {
|
||||
UI.getMainWindow().getProjectWindow().FocusVersions();
|
||||
}
|
||||
@Override
|
||||
protected void performFail() throws Exception {
|
||||
super.performFail();
|
||||
target.undoLastTransformation();
|
||||
}
|
||||
@Override
|
||||
protected void showFinish() throws Exception {
|
||||
super.showFinish();
|
||||
Global.mainModule.set(Current.ProjectView, ProjectView.Files);
|
||||
UI.getMainWindow().getProjectWindow().ShowProjectView();
|
||||
}
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
switch (Global.transformationPermission) {
|
||||
case All:
|
||||
return super.canStart(args);
|
||||
case VariantsOnly:
|
||||
if (getPermission().equals(TransformationPermission.VariantsOnly)) {
|
||||
return super.canStart(args);
|
||||
} else {
|
||||
Log.Writeln_("Разрешено только построение параллельных вариантов!");
|
||||
return false;
|
||||
}
|
||||
case None:
|
||||
Log.Writeln_("Нет разрешения на выполнение преобразований");
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public JMenuItem createMenuItem() {
|
||||
if (menuItem == null)
|
||||
menuItem = new PassMenuItem(this);
|
||||
return menuItem;
|
||||
}
|
||||
}
|
||||
44
src/_VisualDVM/Passes/Sapfor/SilentSapforPass.java
Normal file
44
src/_VisualDVM/Passes/Sapfor/SilentSapforPass.java
Normal file
@@ -0,0 +1,44 @@
|
||||
package _VisualDVM.Passes.Sapfor;
|
||||
import _VisualDVM.Passes.Project.CurrentProjectPass;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.Repository.Component.Sapfor.Sapfor;
|
||||
public class SilentSapforPass extends CurrentProjectPass {
|
||||
protected Sapfor sapfor;
|
||||
@Override
|
||||
protected boolean needsAnimation() {
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean needsConfirmations() {
|
||||
return true;
|
||||
}
|
||||
protected String getSapforPassName() {
|
||||
return getName();
|
||||
}
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
return super.canStart(args) && ((sapfor = Global.mainModule.getSapfor()) != null);
|
||||
}
|
||||
@Override
|
||||
protected void performPreparation() throws Exception {
|
||||
target.CleanInterruptFile();
|
||||
}
|
||||
@Override
|
||||
protected boolean validate() {
|
||||
switch (sapfor.getErrorCode()) {
|
||||
case Sapfor.empty_code:
|
||||
case Sapfor.canceled_code:
|
||||
return false;
|
||||
default:
|
||||
return isGoodCode();
|
||||
}
|
||||
}
|
||||
@Override
|
||||
protected void performFail() throws Exception {
|
||||
Log.Writeln_("Код возврата " + sapfor.getErrorCode());
|
||||
sapfor.ResetAllAnalyses();
|
||||
}
|
||||
protected boolean isGoodCode() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
63
src/_VisualDVM/Passes/Sapfor/Transformation.java
Normal file
63
src/_VisualDVM/Passes/Sapfor/Transformation.java
Normal file
@@ -0,0 +1,63 @@
|
||||
package _VisualDVM.Passes.Sapfor;
|
||||
import _VisualDVM.Passes.Project.CurrentProjectPass;
|
||||
import _VisualDVM.Current;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.Visual.Menus.PassMenuItem;
|
||||
import _VisualDVM.Visual.UI;
|
||||
import _VisualDVM.ProjectData.Project.db_project_info;
|
||||
import _VisualDVM.ProjectData.ProjectView;
|
||||
import _VisualDVM.Repository.Component.Sapfor.TransformationPermission;
|
||||
|
||||
import javax.swing.*;
|
||||
public class Transformation extends CurrentProjectPass {
|
||||
protected TransformationPermission getPermission() {
|
||||
return TransformationPermission.All;
|
||||
}
|
||||
//todo - возможно сделать все же интерфейс для преобразований. чтобы наконец обобщить сапфоровские и несапфоровские? хз
|
||||
@Override
|
||||
protected void performPreparation() throws Exception {
|
||||
db_project_info.ResetNewVersions();
|
||||
target.createEmptyVersion(getVersionLetter(), getVersionDescription());
|
||||
}
|
||||
protected String getVersionDescription() {
|
||||
return getDescription();
|
||||
}
|
||||
@Override
|
||||
public String getIconPath() {
|
||||
return "/icons/Transformations/" + getName() + ".png";
|
||||
}
|
||||
protected String getVersionLetter() {
|
||||
return "v";
|
||||
}
|
||||
@Override
|
||||
public boolean hasStats() {
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
protected void FocusResult() {
|
||||
UI.getMainWindow().getProjectWindow().FocusVersions();
|
||||
}
|
||||
@Override
|
||||
protected void showFinish() throws Exception {
|
||||
super.showFinish();
|
||||
Global.mainModule.set(Current.ProjectView, ProjectView.Files);
|
||||
UI.getMainWindow().getProjectWindow().ShowProjectView();
|
||||
}
|
||||
@Override
|
||||
protected void performDone() throws Exception {
|
||||
//миграция типов файлов.
|
||||
//это несапфоровские дела.тут копируем хедеры сами.
|
||||
target.migrateFilesSettings(target.last_version, true, false);
|
||||
}
|
||||
@Override
|
||||
protected void performFail() throws Exception {
|
||||
super.performFail();
|
||||
target.undoLastTransformation();
|
||||
}
|
||||
@Override
|
||||
public JMenuItem createMenuItem() {
|
||||
if (menuItem == null)
|
||||
menuItem = new PassMenuItem(this);
|
||||
return menuItem;
|
||||
}
|
||||
}
|
||||
67
src/_VisualDVM/Passes/Sapfor/VariantsMassPass.java
Normal file
67
src/_VisualDVM/Passes/Sapfor/VariantsMassPass.java
Normal file
@@ -0,0 +1,67 @@
|
||||
package _VisualDVM.Passes.Sapfor;
|
||||
import _VisualDVM.Passes.Project.CurrentProjectPass;
|
||||
import _VisualDVM.Passes.PassCode;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.Visual.UI;
|
||||
import _VisualDVM.ProjectData.Files.DBProjectFile;
|
||||
import _VisualDVM.ProjectData.SapforData.Variants.ParallelVariant;
|
||||
import _VisualDVM.Repository.Component.Sapfor.Sapfor;
|
||||
public abstract class VariantsMassPass extends CurrentProjectPass {
|
||||
public abstract PassCode getSubPassCode();
|
||||
int count;
|
||||
@Override
|
||||
protected boolean needsAnimation() {
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public void Interrupt() throws Exception {
|
||||
Global.mainModule.getSapfor().Interrupt();
|
||||
}
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
count =0;
|
||||
if (super.canStart(args)) {
|
||||
count = target.parallelVariants.getCheckedCount();
|
||||
if (count== 0) {
|
||||
Log.Writeln_("Не выбрано ни одного параллельного варианта");
|
||||
return false;
|
||||
} else if (! Global.mainModule.getPass(PassCode.SPF_GetArrayDistribution).isDone()) {
|
||||
Log.Writeln_("Варианты неактуальны. Сначала перестройте распределение данных.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
protected void body() throws Exception {
|
||||
ShowProgress(count, 0, true);
|
||||
int i = 0;
|
||||
for (ParallelVariant p : target.parallelVariants.Data.values())
|
||||
if (p.isSelected()) {
|
||||
if (! Global.mainModule.getPass(getSubPassCode()).Do(p)) break;
|
||||
ShowProgress(count, ++i, true);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
protected void performFinish() throws Exception {
|
||||
//распаковку соо делаем только 1 раз. после всей массы вариантов.
|
||||
Sapfor sapfor = Global.mainModule.getSapfor();
|
||||
target.unpackMessagesAndLog(sapfor.getOutputMessage(), sapfor.getOutput());
|
||||
}
|
||||
@Override
|
||||
protected void showFinish() throws Exception {
|
||||
UI.getVersionsWindow().getVariantsWindow().RefreshVariants();
|
||||
UI.getMainWindow().getProjectWindow().RefreshProjectFiles();
|
||||
UI.getMainWindow().getProjectWindow().ShowProjectSapforLog();
|
||||
//-
|
||||
DBProjectFile badFile = target.getFirstBadFile();
|
||||
if (badFile != null) {
|
||||
Global.mainModule.getPass(PassCode.OpenCurrentFile).Do(badFile);
|
||||
UI.getMainWindow().FocusProject();
|
||||
UI.getMainWindow().getProjectWindow().FocusFile();
|
||||
}
|
||||
//-
|
||||
if (Global.mainModule.HasFile())
|
||||
Global.mainModule.getFile().form.ShowMessages();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user