package _VisualDVM.Passes.Sapfor; import Common.Visual.Controls.PassMenuItem; import _VisualDVM.Current; import _VisualDVM.Global; import _VisualDVM.Passes.Project.CurrentProjectPass; import _VisualDVM.ProjectData.Project.db_project_info; import _VisualDVM.ProjectData.ProjectView; import _VisualDVM.Repository.Component.Sapfor.TransformationPermission; import _VisualDVM.Visual.UI; 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() { Global.mainModule.getUI().getMainWindow().getProjectWindow().FocusVersions(); } @Override protected void showFinish() throws Exception { super.showFinish(); Global.mainModule.set(Current.ProjectView, ProjectView.Files); Global.mainModule.getUI().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; } }