Рефакторинг кода панели быстрого доступа.

This commit is contained in:
2024-10-14 01:16:31 +03:00
parent 4e86871571
commit b37d52496e
13 changed files with 111 additions and 250 deletions

View File

@@ -6,14 +6,22 @@ import Common.Passes.Pass;
import Common.Passes.PassCode_;
import Common.Utils.TextLog;
import Common.Utils.Utils_;
import Common.Utils.Vector_;
import Visual_DVM_2021.PassStats.PassStats;
import Visual_DVM_2021.Passes.PassCode;
import _VisualDVM.Global;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.Vector;
//Основной объект визуализатора.
public abstract class MainModule_<D extends VisualiserDatabase> {
D db;
Class<D> db_class;
//--
LinkedHashMap<PassCode_, Pass> passes;
LinkedHashMap<Current_, Object> objects;
LinkedHashMap<Current_, Object> objects; //Current
//--
public D getDb() {
return db;
}
@@ -25,15 +33,14 @@ public abstract class MainModule_<D extends VisualiserDatabase> {
Class<?> clazz = Class.forName("Visual_DVM_2021.Passes.All." + code.toString());
Pass pass = ((Pass) clazz.newInstance());
passes.put((PassCode_) code, pass);
//--
if (pass.hasStats())
Pass.FAPasses.add(pass);
//--
} catch (Exception ex) {
ex.printStackTrace();
}
}
System.out.println("Passes created!");
}
public void setPassesControlsVisible(boolean flag, PassCode_... codes_in) {
for (PassCode_ code_in : codes_in)
getPass(code_in).setControlsVisible(flag);
}
public MainModule_(Class<D> db_class_in) {
objects = new LinkedHashMap<>();
@@ -45,7 +52,7 @@ public abstract class MainModule_<D extends VisualiserDatabase> {
}
//---
}
public abstract Class<? extends PassCode_> getPassCodesEnum();
public abstract Class getPassCodesEnum();
public void ActivateDB() throws Exception {
db = db_class.newInstance();
db.Connect();
@@ -81,4 +88,20 @@ public abstract class MainModule_<D extends VisualiserDatabase> {
public Pass getPass(PassCode_ code){
return passes.get(code);
}
public Vector<Pass> getFirstAccessPasses(){
Vector<PassStats> sortedStats = new Vector<>(getDb().passStats.Data.values());
System.out.println("sorted passes size= "+sortedStats.size());
sortedStats.sort(new Comparator<PassStats>() {
@Override
public int compare(PassStats o1, PassStats o2) {
return Integer.compare(o2.Usages, o1.Usages);
}
});
Vector<Pass> res= new Vector<>();
for (PassStats passStats: sortedStats){
PassCode_ passCode = (PassCode_) Enum.valueOf(getPassCodesEnum(), passStats.code);
res.add(getPass(passCode));
}
return res;
}
}