package _VisualDVM.Repository.Component; import Common.Database.Tables.DataSet; import Common.Visual.DataSetControlForm; import Common.Visual.Tables.RendererMaskedNanInteger; import Common.Visual.Tables.RendererStatusEnum; import _VisualDVM.Current; import _VisualDVM.Visual.Menus.ComponentsMenuBar; import java.util.Vector; public class ComponentsSet extends DataSet { public ComponentsSet() { super(ComponentType.class, Component.class); } @Override public String getSingleDescription() { return "компонент"; } @Override public String getPluralDescription() { return "компоненты"; } @Override protected DataSetControlForm createUI() { return new DataSetControlForm(this) { @Override public boolean hasCheckBox() { return true; } @Override protected void AdditionalInitColumns() { columns.get(0).setVisible(false); columns.get(3).setRendererClass(RendererMaskedNanInteger.class); columns.get(4).setRendererClass(RendererMaskedNanInteger.class); columns.get(6).setRendererClass(RendererStatusEnum.class); } }; } @Override public String[] getUIColumnNames() { return new String[]{"Компонент", "Текущая версия", "Актуальная версия", "Дата сборки", "Статус"}; } @Override public Object getFieldAt(Component object, int columnIndex) { switch (columnIndex) { case 2: return object.getComponentType().getDescription(); case 3: return object.version; case 4: return object.actual_version; case 5: return object.date_text; case 6: return object.getState(); default: return null; } } @Override public Current CurrentName() { return Current.Component; } @Override public Vector getCheckedItems() { Vector target = new Vector<>(); Component visualiser = null; Component server = null; //------------------------ for (Component component : super.getCheckedItems()) { switch (component.getComponentType()) { case Visualizer_2: server = component; break; case Visualiser: visualiser = component; break; default: target.add(component); break; } } if (visualiser != null) target.add(visualiser); if (server != null) target.add(server); return target; } @Override public Class getMenuBarClass() { return ComponentsMenuBar.class; } }