no message
This commit is contained in:
287
src/_VisualDVM/Visual/Windows/SapforPackagesComparisonForm.java
Normal file
287
src/_VisualDVM/Visual/Windows/SapforPackagesComparisonForm.java
Normal file
@@ -0,0 +1,287 @@
|
||||
package _VisualDVM.Visual.Windows;
|
||||
import Common.CurrentAnchestor;
|
||||
import Common.Visual.CommonUI;
|
||||
import _VisualDVM.Current;
|
||||
import Common.Database.Objects.DBObject;
|
||||
import _VisualDVM.Visual.Controls.ShortLabel;
|
||||
import _VisualDVM.Visual.Menus.VisualiserMenuBar;
|
||||
import _VisualDVM.Visual.UI;
|
||||
import Common.Utils.TextLog;
|
||||
import TestingSystem.SAPFOR.SapforPackage.SapforPackage;
|
||||
import TestingSystem.SAPFOR.SapforTask.SapforTask;
|
||||
import TestingSystem.SAPFOR.SapforTasksPackage.UI.SapforTasksPackageTree;
|
||||
import Visual_DVM_2021.Passes.PassCode_2021;
|
||||
import Visual_DVM_2021.Passes.Pass_2021;
|
||||
|
||||
import javax.swing.*;
|
||||
public class SapforPackagesComparisonForm {
|
||||
public boolean comparisonMode = false;
|
||||
//-->>
|
||||
private JPanel content;
|
||||
public JPanel getContent() {
|
||||
return content;
|
||||
}
|
||||
protected JToolBar tools;
|
||||
protected JLabel lObjectName;
|
||||
private JButton bApplyObject;
|
||||
private JButton bPrevious;
|
||||
private JButton bNext;
|
||||
private JButton bCompare;
|
||||
private JButton bClose;
|
||||
private JPanel treePanel;
|
||||
//-->>
|
||||
SapforPackagesComparisonForm this_ = null; //?
|
||||
SapforPackagesComparisonForm slave = null;
|
||||
SapforPackagesComparisonForm master = null;
|
||||
//-->>
|
||||
protected SapforPackage object = null;
|
||||
//-->>
|
||||
protected SapforTasksPackageTree Body;
|
||||
public JScrollPane treeScroll = null;
|
||||
//--->>
|
||||
public boolean isMaster() {
|
||||
return slave != null;
|
||||
}
|
||||
public boolean isSlave() {
|
||||
return master != null;
|
||||
}
|
||||
//--->>
|
||||
//неперегружаемые методы
|
||||
protected void RemoveObject() {
|
||||
object = null;
|
||||
showNoObject();
|
||||
//--
|
||||
if (comparisonMode) {
|
||||
comparisonMode = false;
|
||||
if (isMaster()) {
|
||||
slave.comparisonMode = false;
|
||||
slave.object = null;
|
||||
slave.showNoObject();
|
||||
} else {
|
||||
master.comparisonMode = false;
|
||||
master.object = null;
|
||||
master.showNoObject();
|
||||
}
|
||||
}
|
||||
}
|
||||
public void ApplyObject() {
|
||||
//---Загрузка
|
||||
RemoveObject();
|
||||
//---
|
||||
TextLog log = new TextLog();
|
||||
if (CurrentAnchestor.Check(log, Current.SapforPackage)) {
|
||||
object = Current.getSapforPackage();
|
||||
if (object.isLoaded() || (Pass_2021.passes.get(PassCode_2021.DownloadSapforPackage).Do(object))) {
|
||||
showObject();
|
||||
}
|
||||
} else
|
||||
CommonUI.Info(log.toString());
|
||||
}
|
||||
public void ApplyObject(DBObject object_in) {
|
||||
RemoveObject();
|
||||
object = (SapforPackage) object_in;
|
||||
if (object.isLoaded() || (Pass_2021.passes.get(PassCode_2021.DownloadSapforPackage).Do(object))) {
|
||||
showObject();
|
||||
}
|
||||
}
|
||||
public void Show() throws Exception {
|
||||
}
|
||||
public void showNoObject() {
|
||||
lObjectName.setText("?");
|
||||
lObjectName.setToolTipText("Объект не назначен.");
|
||||
showNoTree();
|
||||
if (isMaster()) {
|
||||
UI.getMainWindow().getTestingWindow().ShowNoSapforPackageVersionEtalon();
|
||||
} else {
|
||||
UI.getMainWindow().getTestingWindow().ShowNoSapforPackageVersion();
|
||||
}
|
||||
}
|
||||
//---
|
||||
public void showCommonTree() {
|
||||
//---
|
||||
treePanel.add(treeScroll = new JScrollPane(
|
||||
Body = new SapforTasksPackageTree(object.package_json.root,
|
||||
isMaster() ? Current.SapforEtalonVersion : Current.SapforVersion
|
||||
)));
|
||||
treePanel.repaint();
|
||||
treePanel.revalidate();
|
||||
}
|
||||
public void showComparisonTree() {
|
||||
treePanel.add(treeScroll = new JScrollPane(
|
||||
Body = new SapforTasksPackageTree(object.package_json.comparison_root,
|
||||
isMaster() ? Current.SapforEtalonVersion : Current.SapforVersion
|
||||
)));
|
||||
treePanel.repaint();
|
||||
treePanel.revalidate();
|
||||
}
|
||||
//---
|
||||
public void showNoTree() {
|
||||
CommonUI.Clear(treePanel);
|
||||
}
|
||||
public void showObject() {
|
||||
lObjectName.setText(object.getPK().toString() + (isMaster() ? "(эталон)" : ""));
|
||||
lObjectName.setToolTipText(object.getPK().toString());
|
||||
//--
|
||||
if (object.package_json == null) {
|
||||
try {
|
||||
object.readJson();
|
||||
object.package_json.getVersionsFiles(object);
|
||||
object.package_json.buildTree(object);
|
||||
//---
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
object.package_json.DropComparison();
|
||||
//--
|
||||
showCommonTree();
|
||||
}
|
||||
protected String getText() {
|
||||
return "";
|
||||
}
|
||||
public SapforPackagesComparisonForm(SapforPackagesComparisonForm slave_in) {
|
||||
//-
|
||||
this_ = this;
|
||||
slave = slave_in;
|
||||
bPrevious.setVisible(isMaster());
|
||||
bNext.setVisible(isMaster());
|
||||
bApplyObject.addActionListener(e -> {
|
||||
ApplyObject();
|
||||
});
|
||||
//--->>>
|
||||
if (isMaster()) {
|
||||
slave.master = this;
|
||||
bPrevious.addActionListener(e -> {
|
||||
});
|
||||
bNext.addActionListener(e -> {
|
||||
});
|
||||
bCompare.addActionListener(e -> {
|
||||
DoComparePass();
|
||||
});
|
||||
} else {
|
||||
//рабу сравнивать не положено.
|
||||
bCompare.setVisible(false);
|
||||
}
|
||||
//--->>>
|
||||
bClose.addActionListener(e -> {
|
||||
onClose();
|
||||
});
|
||||
}
|
||||
//-->>
|
||||
private void createUIComponents() {
|
||||
// TODO: place custom component creation code here
|
||||
lObjectName = new ShortLabel(40);
|
||||
tools = new VisualiserMenuBar();
|
||||
}
|
||||
//для сравнения по кнопке.
|
||||
public boolean isReady() {
|
||||
return object != null;
|
||||
}
|
||||
public void onClose() {
|
||||
RemoveObject();
|
||||
}
|
||||
public void DoComparePass() {
|
||||
Pass_2021 pass = new Pass_2021() {
|
||||
SapforPackage package1;
|
||||
SapforPackage package2;
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return "Сравнение";
|
||||
}
|
||||
@Override
|
||||
protected boolean needsAnimation() {
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean needsConfirmations() {
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
if (isReady() && slave.isReady()) {
|
||||
//--
|
||||
package1 = object;
|
||||
package2 = slave.object;
|
||||
//--
|
||||
if (package1.package_json.tasks.size() != package2.package_json.tasks.size()) {
|
||||
Log.Writeln_("Количество задач в пакетах не совпадает!");
|
||||
return false;
|
||||
}
|
||||
//--
|
||||
//todo в дереве отображать пустые задачи заместо тех кого не хватает.
|
||||
for (SapforTask task1 : package1.package_json.tasks) {
|
||||
if (!package2.package_json.containsKey(task1.getUniqueKey()))
|
||||
Log.Writeln_("Задача эталона " + task1.getUniqueKey() + "не найдена в сравниваемом пакете!");
|
||||
}
|
||||
return Log.isEmpty();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
protected void performPreparation() throws Exception {
|
||||
comparisonMode = false;
|
||||
slave.comparisonMode = false;
|
||||
//--
|
||||
treeScroll = null;
|
||||
slave.treeScroll = null;
|
||||
//--
|
||||
package1.package_json.DropComparison();
|
||||
package2.package_json.DropComparison();
|
||||
}
|
||||
@Override
|
||||
protected void showPreparation() throws Exception {
|
||||
showNoTree();
|
||||
slave.showNoTree();
|
||||
//--->>>
|
||||
UI.getMainWindow().getTestingWindow().ShowNoSapforPackageVersionEtalon();
|
||||
UI.getMainWindow().getTestingWindow().ShowNoSapforPackageVersion();
|
||||
}
|
||||
@Override
|
||||
protected void body() throws Exception {
|
||||
//теперь сравниваем задачи
|
||||
int i = 1;
|
||||
for (SapforTask task1 : package1.package_json.tasks) {
|
||||
SapforTask task2 = package2.package_json.getTaskByKey(task1.getUniqueKey());
|
||||
task1.checkMatch(task2);
|
||||
//--
|
||||
++i;
|
||||
}
|
||||
//--
|
||||
for (SapforTask task1 : package1.package_json.tasks) {
|
||||
SapforTask task2 = package2.package_json.getTaskByKey(task1.getUniqueKey());
|
||||
}
|
||||
//---
|
||||
package1.package_json.buildComparisonTree(package1);
|
||||
package2.package_json.buildComparisonTree(package2);
|
||||
}
|
||||
@Override
|
||||
protected boolean validate() {
|
||||
return Log.isEmpty();
|
||||
}
|
||||
@Override
|
||||
protected void showFail() throws Exception {
|
||||
showCommonTree();
|
||||
slave.showCommonTree();
|
||||
}
|
||||
@Override
|
||||
protected void performDone() throws Exception {
|
||||
comparisonMode = true;
|
||||
slave.comparisonMode = true;
|
||||
//--
|
||||
}
|
||||
@Override
|
||||
protected void showDone() throws Exception {
|
||||
showComparisonTree();
|
||||
slave.showComparisonTree();
|
||||
// SynchronizeTrees();
|
||||
}
|
||||
};
|
||||
pass.Do();
|
||||
}
|
||||
public void SynchronizeTrees() {
|
||||
if (slave.Body != null) {
|
||||
Body.setSlaveTree(slave.Body);
|
||||
slave.treeScroll.getVerticalScrollBar().setModel(treeScroll.getVerticalScrollBar().getModel());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user