Files
VisualSapfor/src/_VisualDVM/Passes/All/ResurrectComponent.java
2024-10-22 20:18:50 +03:00

64 lines
2.3 KiB
Java

package _VisualDVM.Passes.All;
import Common.Visual.Controls.PassMenuItem;
import Common.Visual.Windows.Dialog.VFileChooser;
import _VisualDVM.Global;
import _VisualDVM.Passes.CurrentComponentPass;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
public class ResurrectComponent extends CurrentComponentPass {
File file;
VFileChooser fileChooser;
@Override
public JMenuItem createMenuItem() {
if (menuItem == null)
menuItem = new PassMenuItem(this);
return menuItem;
}
@Override
public String getButtonText() {
return "";
}
@Override
protected boolean canStart(Object... args) throws Exception {
if (super.canStart(args)) {
//тут таргет меняется, поэтому меняется и условие выбора файлов.
fileChooser = new VFileChooser(
"Выбор версии компонента для восстановления",
new FileFilter() {
@Override
public boolean accept(File f) {
return f.isFile() &&
f.getName().startsWith(target.getComponentType().toString());
}
@Override
public String getDescription() {
return target.getComponentType().toString() + "*";
}
}
);
fileChooser.SetCurrentDirectory(Global.BackUpsDirectory);
return (file = fileChooser.ShowDialog()) != null;
}
return false;
}
@Override
protected void body() throws Exception {
Files.copy(file.toPath(), target.getNewFile().toPath(), StandardCopyOption.REPLACE_EXISTING);
target.Update();
}
@Override
protected void performDone() throws Exception {
target.InitialVersionCheck();
if (target.CanBeUpdated())
target.CheckIfNeedsUpdateOrPublish();
}
@Override
protected void showDone() throws Exception {
Global.components.refreshUpdatesStatus();
}
}