package Visual_DVM_2021.Passes.All; import _VisualDVM.Current; import _VisualDVM.Global; import _VisualDVM.GlobalProperties; import _VisualDVM.Visual.UI; import Common.Passes.Pass; import java.lang.reflect.Field; public class UpdateProperty extends Pass { //todo в дальнейшем, все настройки перевести в properties, и перенести сюда функционал UpdateSetting (?) String name = ""; Field field = null; Object oldValue = null; Object newValue = null; @Override protected boolean canStart(Object... args) throws Exception { name = (String) args[0]; newValue = args[1]; //-- field = GlobalProperties.class.getField(name); oldValue = field.get(Global.properties); //--- return !newValue.equals(oldValue); } @Override protected void body() throws Exception { field.set(Global.properties, newValue); Global.properties.Update(); } @Override protected void showDone() throws Exception { switch (name) { case "collapseCredentials": if ((boolean) newValue) UI.getMainWindow().getTestingWindow().CollapseCredentials(); else UI.getMainWindow().getTestingWindow().ExpandCredentials(); break; case "collapseProjectTrees": if (Global.mainModule.HasProject()) { if ((boolean) newValue) UI.getMainWindow().getProjectWindow().CollapseProjectTrees(); else UI.getMainWindow().getProjectWindow().ExpandProjectTrees(); } break; case "collapseFileGraphs": if (Global.mainModule.HasFile()) { if ((boolean) newValue) Global.mainModule.getFile().form.CollapseGraphs(); else Global.mainModule.getFile().form.ExpandGraphs(); } break; case "collapseFileMessages": if (Global.mainModule.HasFile()) { if ((boolean) newValue) Global.mainModule.getFile().form.CollapseMessages(); else Global.mainModule.getFile().form.ExpandMessages(); } break; } } }