Files
VisualSapfor/src/Visual_DVM_2021/UI/Main/VersionsComparisonForm.java

110 lines
4.2 KiB
Java
Raw Normal View History

2023-09-17 22:13:42 +03:00
package Visual_DVM_2021.UI.Main;
import Common.Current;
import Common.Global;
import Common.Utils.Utils;
import GlobalData.Settings.SettingName;
import ProjectData.Files.DBProjectFile;
import ProjectData.Project.db_project_info;
import javax.swing.*;
import java.util.Vector;
public class VersionsComparisonForm extends ComparisonForm<db_project_info> {
private final JComboBox<DBProjectFile> cbFile;
protected DBProjectFile file = null;
private VersionsComparisonForm getMaster() {
return (VersionsComparisonForm) master;
}
private VersionsComparisonForm getSlave() {
return (VersionsComparisonForm) slave;
}
public VersionsComparisonForm(VersionsComparisonForm slave_in) {
super(db_project_info.class, slave_in);
cbFile = new JComboBox<>();
tools.add(cbFile, 3);
cbFile.addActionListener(e -> {
DBProjectFile File1 = null;
DBProjectFile File2 = null;
ClearText();
file = (cbFile.getSelectedItem() instanceof DBProjectFile) ?
((DBProjectFile) cbFile.getSelectedItem()) : null;
if (file != null) {
if (isMaster()) {
getSlave().selectSameFile(file);
} else {
File1 = getMaster().file;
File2 = file;
//---
if ((File1 != null) && (File2 != null)) {
boolean ExtensionsOn = Global.db.settings.get(SettingName.ExtensionsOn).toBoolean();
String name1 = ExtensionsOn ? File1.file.getName() : Utils.getFileNameWithoutExtension(File1.file);
String name2 = ExtensionsOn ? File2.file.getName() : Utils.getFileNameWithoutExtension(File2.file);
System.out.println("name1=" + Utils.Brackets(name1) + "name2=" + Utils.Brackets(name2));
if (Global.db.settings.get(SettingName.ComparsionDiffMergeOn).toBoolean()) {
if (name1.equalsIgnoreCase(name2))
master.DoComparePass(true);
} else
master.DoShowPass(true);
}
}
}
});
}
@Override
protected Current getCurrentObjectName() {
return Current.Version;
}
@Override
protected String getText() {
return Utils.ReadAllText(file.file);
}
@Override
protected void removeObject() {
cbFile.removeAllItems();
file = null;
}
@Override
public boolean isReady() {
return super.isReady() && file != null;
}
@Override
protected void showObject() {
lObjectName.setText(object.name);
lObjectName.setToolTipText(
object.getVersionTooltip()
);
cbFile.removeAllItems();
Vector<DBProjectFile> files = object.getFilesForComparsion();
for (DBProjectFile file : files)
cbFile.addItem(file);
}
public void selectSameFile(DBProjectFile file_in) {
file = null;
cbFile.setSelectedIndex(-1);
for (int i = 0; i < cbFile.getItemCount(); ++i) {
DBProjectFile dbProjectFile = cbFile.getItemAt(i);
if (Global.db.settings.get(SettingName.ExtensionsOn).toBoolean()) {
2023-11-02 00:01:34 +03:00
//если учитываем расширения, ищем полное совпадение
2023-09-17 22:13:42 +03:00
if (dbProjectFile.name.equals(file_in.name)) {
cbFile.setSelectedIndex(i);
return;
}
} else {
if (Utils.getNameWithoutExtension(dbProjectFile.name).equals(Utils.getNameWithoutExtension(file_in.name))) {
cbFile.setSelectedIndex(i);
return;
}
}
//если drk.x
}
}
public void CheckVersion(db_project_info version_in) {
if ((object != null) && version_in.Home.equals(object.Home)) {
RemoveObject();
}
}
@Override
protected boolean fortranWrapsOn() {
return Global.db.settings.get(SettingName.FortranWrapsOn).toBoolean();
}
}