Compare commits

...

2 Commits

Author SHA1 Message Date
e1627badd3 no message 2024-10-14 12:37:30 +03:00
e265a2a3b6 no message 2024-10-14 12:37:02 +03:00
2 changed files with 45 additions and 50 deletions

3
.idea/workspace.xml generated
View File

@@ -7,10 +7,7 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment=""> <list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/MainModule_.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/MainModule_.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Common/MainModule_.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/MainModule_.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/Utils/Utils_.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Utils/Utils_.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/MainModule.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/MainModule.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -1,10 +1,10 @@
package Common; package Common;
import Common.Database.Objects.PassStats.PassStats;
import Common.Database.Objects.iDBObject; import Common.Database.Objects.iDBObject;
import Common.Database.VisualiserDatabase; import Common.Database.VisualiserDatabase;
import Common.Passes.Pass; import Common.Passes.Pass;
import Common.Passes.PassCode_; import Common.Passes.PassCode_;
import Common.Utils.TextLog; import Common.Utils.TextLog;
import Common.Database.Objects.PassStats.PassStats;
import Common.Visual.Windows.PassForm; import Common.Visual.Windows.PassForm;
import _VisualDVM.Current; import _VisualDVM.Current;
@@ -13,47 +13,14 @@ import java.util.LinkedHashMap;
import java.util.Vector; import java.util.Vector;
//Основной объект визуализатора. //Основной объект визуализатора.
public abstract class MainModule_<D extends VisualiserDatabase> { public abstract class MainModule_<D extends VisualiserDatabase> {
public static MainModule_ object =null; public static MainModule_ object = null; //текущий экземпляр
//-- //--
D db; D db;
Class<D> db_class; Class<D> db_class;
//--
LinkedHashMap<PassCode_, Pass> passes;
LinkedHashMap<Current_, Object> objects; //Current LinkedHashMap<Current_, Object> objects; //Current
//-- //--
public D getDb() { LinkedHashMap<PassCode_, Pass> passes;
return db; //--
}
//---
private void createPasses(){
passes= new LinkedHashMap<>();
for (Object code: getPassCodesEnum().getEnumConstants()){
try {
Class<?> clazz = Class.forName(getAllPassesClassPrefix() + code.toString());
Pass pass = ((Pass) clazz.newInstance());
passes.put((PassCode_) code, pass);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
public void setPassesControlsVisible(boolean flag, PassCode_... codes_in) {
for (PassCode_ code_in : codes_in)
getPass(code_in).setControlsVisible(flag);
}
public boolean HasPassForm() {
return get(Current.PassForm) != null;
}
public PassForm getPassForm() {
return (PassForm) get(Current.PassForm);
}
public Pass getPass(PassCode_ code){
return passes.get(code);
}
public String getPassDescription(String passName){
return ((PassCode_)Enum.valueOf(MainModule_.object.getPassCodesEnum(), passName)).getDescription();
}
//---
public MainModule_(Class<D> db_class_in) { public MainModule_(Class<D> db_class_in) {
objects = new LinkedHashMap<>(); objects = new LinkedHashMap<>();
createPasses(); createPasses();
@@ -66,8 +33,10 @@ public abstract class MainModule_<D extends VisualiserDatabase> {
object = this; object = this;
System.out.println("main module created"); System.out.println("main module created");
} }
public abstract Class getPassCodesEnum(); //БАЗА ДАННЫХ И ТЕКУЩИЕ ОБЪЕКТЫ
public abstract String getAllPassesClassPrefix(); public D getDb() {
return db;
}
public void ActivateDB() throws Exception { public void ActivateDB() throws Exception {
db = db_class.newInstance(); db = db_class.newInstance();
db.Connect(); db.Connect();
@@ -75,13 +44,12 @@ public abstract class MainModule_<D extends VisualiserDatabase> {
db.prepareTablesStatements(); db.prepareTablesStatements();
db.Synchronize(); db.Synchronize();
} }
public void DeactivateDB() throws Exception{ public void DeactivateDB() throws Exception {
if (db != null) db.Disconnect(); if (db != null) db.Disconnect();
} }
//--
public Object get(Current_ name) { public Object get(Current_ name) {
if (!objects.containsKey(name)) if (!objects.containsKey(name))
objects.put(name,null); objects.put(name, null);
return objects.get(name); return objects.get(name);
} }
public Object set(Current_ name, Object object) { public Object set(Current_ name, Object object) {
@@ -96,12 +64,41 @@ public abstract class MainModule_<D extends VisualiserDatabase> {
Log.Writeln_(name.getDescription() + " не выбран(а)"); Log.Writeln_(name.getDescription() + " не выбран(а)");
return Log.isEmpty(); return Log.isEmpty();
} }
//применять только для наследников iDBObject
public boolean matchCurrentID(Current_ name, int id) { public boolean matchCurrentID(Current_ name, int id) {
return (get(name) != null) && (((iDBObject) get(name)).id == id); return (get(name) != null) && (((iDBObject) get(name)).id == id);
} }
//ПРОХОДЫ
public Vector<Pass> getFirstAccessPasses(){ public abstract Class getPassCodesEnum();
public abstract String getAllPassesClassPrefix();
private void createPasses() {
passes = new LinkedHashMap<>();
for (Object code : getPassCodesEnum().getEnumConstants()) {
try {
Class<?> clazz = Class.forName(getAllPassesClassPrefix() + code.toString());
Pass pass = ((Pass) clazz.newInstance());
passes.put((PassCode_) code, pass);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
public void setPassesControlsVisible(boolean flag, PassCode_... codes_in) {
for (PassCode_ code_in : codes_in)
getPass(code_in).setControlsVisible(flag);
}
public boolean HasPassForm() {
return get(Current.PassForm) != null;
}
public PassForm getPassForm() {
return (PassForm) get(Current.PassForm);
}
public Pass getPass(PassCode_ code) {
return passes.get(code);
}
public String getPassDescription(String passName) {
return ((PassCode_) Enum.valueOf(MainModule_.object.getPassCodesEnum(), passName)).getDescription();
}
public Vector<Pass> getFirstAccessPasses() {
Vector<PassStats> sortedStats = new Vector<>(getDb().passStats.Data.values()); Vector<PassStats> sortedStats = new Vector<>(getDb().passStats.Data.values());
sortedStats.sort(new Comparator<PassStats>() { sortedStats.sort(new Comparator<PassStats>() {
@Override @Override
@@ -109,11 +106,12 @@ public abstract class MainModule_<D extends VisualiserDatabase> {
return Integer.compare(o2.Usages, o1.Usages); return Integer.compare(o2.Usages, o1.Usages);
} }
}); });
Vector<Pass> res= new Vector<>(); Vector<Pass> res = new Vector<>();
for (PassStats passStats: sortedStats){ for (PassStats passStats : sortedStats) {
PassCode_ passCode = (PassCode_) Enum.valueOf(getPassCodesEnum(), passStats.code); PassCode_ passCode = (PassCode_) Enum.valueOf(getPassCodesEnum(), passStats.code);
res.add(getPass(passCode)); res.add(getPass(passCode));
} }
return res; return res;
} }
//---
} }