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

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

@@ -1,6 +1,7 @@
package Common.Database;
import Common.Database.SQLITE.SQLiteDatabase;
import Common.Database.Objects.DBForm.FormsDBTable;
import Visual_DVM_2021.PassStats.PassStatsDBTable;
import _VisualDVM.GlobalData.Grid.TablesVisualDatasDBTable;
import _VisualDVM.GlobalData.Splitter.SplittersDBTable;
import Visual_DVM_2021.Passes.PassCode;
@@ -10,6 +11,7 @@ public class VisualiserDatabase extends SQLiteDatabase {
public FormsDBTable forms;
public TablesVisualDatasDBTable tablesVisualData;
public SplittersDBTable splitters;
public PassStatsDBTable passStats;
public VisualiserDatabase(File file_in) {
super(file_in);
}
@@ -18,6 +20,7 @@ public class VisualiserDatabase extends SQLiteDatabase {
addTable(forms = new FormsDBTable());
addTable(tablesVisualData = new TablesVisualDatasDBTable());
addTable(splitters = new SplittersDBTable());
addTable(passStats = new PassStatsDBTable());
}
@Override
public PassCode getSynchronizePassCode() {

View File

@@ -20,10 +20,6 @@ import java.util.Stack;
import java.util.Vector;
import java.util.concurrent.Semaphore;
public class Pass<T> {
public static Vector<Pass> FAPasses = new Vector<>();
//</editor-fold>
//-
public PassStats stats = null;
public int callsCount = 0; //число вызовов прохода за текущий сеанс визуализатора.
public T target; //главный аргумент.
public PassState state = PassState.Inactive; //текущее состояние прохода.
@@ -39,23 +35,10 @@ public class Pass<T> {
private JButton tabButton = null;
private Exception last_error; //последнее пойманное исключение выполнения.
//->>
public static Throwable getCauseRec(Throwable ex) {
public Throwable getCauseRec(Throwable ex) {
Throwable cause = ex.getCause();
return (cause == null) ? ex : getCauseRec(cause);
}
public static void setPassesControlsVisible(boolean flag, PassCode... codes_in) {
for (PassCode code_in : codes_in)
Global.mainModule.getPass(code_in).setControlsVisible(flag);
}
//важно. вызывать только если есть интерфейс. passstats делать частью общей бд.пусть будут.
public static void CheckAllStats() throws Exception {
for (Pass pass : FAPasses) {
if (!(Global.mainModule.getDb()).passStats.Data.containsKey(pass.code().toString()))
Global.mainModule.getDb().Insert(pass.stats = new PassStats(pass.code().toString()));
else pass.stats = (Global.mainModule.getDb()).passStats.Data.get(pass.code().toString());
}
FAPasses.sort(new SortPassesByStats());
}
//<editor-fold desc="Интерфейс">
//https://www.delftstack.com/ru/howto/java/java-resize-image/
public String getIconPath() {
@@ -110,15 +93,12 @@ public class Pass<T> {
}
public void UpdateStatsIfNeed() {
if (hasStats()) {
stats.Inc();
try {
Global.mainModule.getDb().Update(stats);
FAPasses.sort(new SortPassesByStats());
if (Global.mainModule.HasProject())
UI.fastAccessMenuBar.Refresh();
Global.mainModule.getDb().passStats.IncPassStat(code());
} catch (Exception ex) {
Utils_.MainLog.PrintException(ex);
}
UI.fastAccessMenuBar.Refresh();
}
}
public PassCode code() {

View File

@@ -1,9 +0,0 @@
package Common.Passes;
import Common.Passes.Pass;
import java.util.Comparator;
public class SortPassesByStats implements Comparator<Common.Passes.Pass> {
public int compare(Common.Passes.Pass p1, Pass p2) {
return p2.stats.Usages - p1.stats.Usages;
}
}