50 lines
1.8 KiB
Java
50 lines
1.8 KiB
Java
package _VisualDVM.Passes.All;
|
||
import Common.Passes.Pass;
|
||
import Common.Passes.PassException;
|
||
import Common.Utils.Utils_;
|
||
import _VisualDVM.ComponentsServer.Component.Component;
|
||
import _VisualDVM.Global;
|
||
import _VisualDVM.Passes.PassCode;
|
||
public class UpdateComponent extends Pass<Component> {
|
||
@Override
|
||
protected PassCode necessary() {
|
||
return PassCode.CreateComponentBackUp;
|
||
}
|
||
@Override
|
||
protected boolean resetsNecessary() {
|
||
return true;
|
||
}
|
||
@Override
|
||
protected void body() throws Exception {
|
||
target = Global.components.getUI().getCurrent();
|
||
PassCode subPassCode = null;
|
||
//<editor-fold desc="получение нового файла компонента">
|
||
switch (target.getComponentType()) {
|
||
case Sapfor_F:
|
||
case Visualizer_2:
|
||
subPassCode = Utils_.isWindows() ? PassCode.DownloadComponent : PassCode.BuildComponent;
|
||
break;
|
||
case Visualiser:
|
||
case Instruction:
|
||
case PerformanceAnalyzer:
|
||
subPassCode = PassCode.DownloadComponent;
|
||
break;
|
||
}
|
||
if ((subPassCode != null) && Global.mainModule.getPass(subPassCode).Do()) {
|
||
//</editor-fold>
|
||
if (!target.getNewFile().exists())
|
||
throw new PassException("Не удалось получить новый файл для компонента " + target.getComponentType().getDescription());
|
||
//непосредственное обновление.
|
||
target.Update();
|
||
}
|
||
}
|
||
@Override
|
||
protected void performFinish() throws Exception {
|
||
target.CheckIfNeedsUpdateOrPublish();
|
||
}
|
||
@Override
|
||
protected void showDone() throws Exception {
|
||
Global.components.refreshUpdatesStatus();
|
||
}
|
||
}
|