package _VisualDVM.Repository.Component; import Common.Database.Tables.DataSet; import Common.MainModule_; import Common.Visual.DataSetControlForm; import _VisualDVM.Current; import _VisualDVM.Global; import _VisualDVM.Repository.Component.PerformanceAnalyzer.PerformanceAnalyzer; import _VisualDVM.Repository.Component.Sapfor.Sapfor_F; import _VisualDVM.Repository.Component.UI.ComponentsForm; import javax.swing.*; public class ComponentsSet extends DataSet { //------------------------------------------------------------------ public static Visualiser visualiser = null; public static Visualizer_2 visualizer_2 = null; public boolean bad_state = false; public boolean need_update = false; public boolean need_publish = false; public ComponentsSet() { super(ComponentType.class, Component.class); put(ComponentType.Visualiser, visualiser = new Visualiser()); put(ComponentType.Sapfor_F, (Component) MainModule_.instance.set(Current.Sapfor, new Sapfor_F())); put(ComponentType.Visualizer_2, visualizer_2); put(ComponentType.PerformanceAnalyzer, Global.performanceAnalyzer = new PerformanceAnalyzer()); put(ComponentType.Instruction, new Instruction()); } public boolean needChanges() { return bad_state || need_update; } public String getButtonIconPath() { return needChanges() ? "/icons/ComponentsNeedUpdate.gif" : (need_publish ? "/icons/ComponentsNeedPublish_2023.gif" : "/icons/ComponentsActual.png"); } @Override public String getSingleDescription() { return "компонент"; } @Override public String getPluralDescription() { return "компоненты"; } @Override protected DataSetControlForm createUI(JPanel mountPanel) { return new ComponentsForm(this, mountPanel); } //-- public void refreshUpdatesStatus() { if (getUI() != null) getUI().RedrawControl(); validateStates(); if (Global.mainModule.getUI().hasMainWindow()) Global.mainModule.getUI().getMainWindow().ShowUpdatesIcon(); } public boolean validateStates() { bad_state = need_update = need_publish = false; for (Component component : Data.values()) { switch (component.getState()) { case Not_found: case Unknown_version: case Old_version: if (component.isNecessary()) bad_state = true; component.Select(true); break; case Needs_update: need_update = true; component.Select(true); break; case Needs_publish: need_publish = true; break; default: component.Select(false); break; } // } } return !bad_state; } public void initialVersionsCheck() { for (Component component : Data.values()) component.InitialVersionCheck(); } }