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 name="ChangeListManager">
<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/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>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

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