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

This commit is contained in:
2024-10-17 17:22:33 +03:00
parent 17c2644766
commit e34778d6be
65 changed files with 145 additions and 103 deletions

View File

@@ -13,11 +13,14 @@ import java.util.Vector;
//самый общий интерфейс базы данных, независимо от реализации.
public abstract class Database {
//------------------------------
public LinkedHashMap<Class<? extends DBObject>, DBTable> tables = new LinkedHashMap<>(); //таблицы
protected LinkedHashMap<Class<? extends DBObject>, DBTable> tables = new LinkedHashMap<>(); //таблицы
protected File file = null;
public Database(File file_in) {
file = file_in;
}
public <T extends DBObject> DBTable<?, T> getTable(Class<T> tableClass) {
return tables.get(tableClass);
}
public File getFile() {
return file;
}

View File

@@ -42,7 +42,9 @@ public class DataSet<K, D extends DBObject> extends DataSetAnchestor {
}
protected void createFilters() {
}
public boolean hasMenuBar(){return true;}
public boolean hasMenuBar() {
return true;
}
public DataMenuBar createMenuBar() {
return new DataMenuBar(getPluralDescription());
}
@@ -268,7 +270,7 @@ public class DataSet<K, D extends DBObject> extends DataSetAnchestor {
return MainModule_.instance.Check(log, CurrentName());
}
public boolean CheckSelectedOrCurrent(TextLog log) {
if ((getSelectedCount() == 0) && (CurrentName()==null || (getCurrent()==null))) {
if ((getSelectedCount() == 0) && (CurrentName() == null || (getCurrent() == null))) {
log.Writeln_(getPluralDescription() + ":");
log.Writeln_("Отсутствуют отмеченные объекты, или текущий объект!");
return false;
@@ -298,7 +300,7 @@ public class DataSet<K, D extends DBObject> extends DataSetAnchestor {
}
return res;
}
public Vector<K> getSelectedOrCurrentKeys(){
public Vector<K> getSelectedOrCurrentKeys() {
Vector<K> res = new Vector<>();
if (getSelectedCount() > 0)
res = getSelectedKeys();
@@ -328,5 +330,7 @@ public class DataSet<K, D extends DBObject> extends DataSetAnchestor {
}
}
//-------------------------------------------------------------------------------------
public PassCode_ getDeletePassCode(){return null;}
public PassCode_ getDeletePassCode() {
return null;
}
}

View File

@@ -0,0 +1,3 @@
package Common.MainModules;
public class _MainModule {
}

View File

@@ -11,7 +11,7 @@ public abstract class AddObjectPass<D extends DBObject> extends ObjectPass<D> {
protected boolean canStart(Object... args) throws Exception {
target = d.newInstance();
return
((getOwner() == null) || (getDb().tables.get(getOwner()).CheckCurrent(Log))) &&
((getOwner() == null) || (getDb().getTable(getOwner()).CheckCurrent(Log))) &&
fillObjectFields();
}
protected boolean fillObjectFields() throws Exception {

View File

@@ -23,7 +23,7 @@ public abstract class DeleteObjectPass<D extends DBObject> extends ObjectPass<D>
case DROP:
break;
case DELETE:
getDb().tables.get(dep).ClearUI();
getDb().getTable(dep).ClearUI();
break;
}
}
@@ -49,7 +49,7 @@ public abstract class DeleteObjectPass<D extends DBObject> extends ObjectPass<D>
protected void performFinish() throws Exception {
getTable().ShowUI();
for (Class dep : getTable().getFKDependencies().keySet()) {
getDb().tables.get(dep).RefreshUI();
getDb().getTable(dep).RefreshUI();
}
}
}

View File

@@ -1,6 +1,6 @@
package Common.Passes;
import Common.Database.Objects.DBObject;
public abstract class DeleteObjectsPass<D extends DBObject> extends ObjectsPass<D>{
public abstract class DeleteObjectsPass<D extends DBObject> extends ObjectsPass<D> {
public DeleteObjectsPass(Class<D> d_in) {
super(d_in);
}
@@ -12,7 +12,7 @@ public abstract class DeleteObjectsPass<D extends DBObject> extends ObjectsPass<
protected boolean canStart(Object... args) throws Exception {
if (!getTable().CheckSelectedOrCurrent(Log))
return false;
target = getTable().getSelectedOrCurrent();
target = getTable().getSelectedOrCurrent();
return getTable().ShowDeleteObjectsDialog(target.size());
}
//Очищаем все связанные таблицы, чтобы не допустить перерисовки во время удаления объекта.
@@ -25,14 +25,14 @@ public abstract class DeleteObjectsPass<D extends DBObject> extends ObjectsPass<
case DROP:
break;
case DELETE:
getDb().tables.get(dep).ClearUI();
getDb().getTable(dep).ClearUI();
break;
}
}
}
@Override
protected void body() throws Exception {
for (D d: target){
for (D d : target) {
getDb().Delete(d);
for (Class dep : getTable().getFKDependencies().keySet()) {
switch (getTable().getFKDependencies().get(dep).data) {
@@ -53,7 +53,7 @@ public abstract class DeleteObjectsPass<D extends DBObject> extends ObjectsPass<
protected void performFinish() throws Exception {
getTable().ShowUI();
for (Class dep : getTable().getFKDependencies().keySet()) {
getDb().tables.get(dep).RefreshUI();
getDb().getTable(dep).RefreshUI();
}
}
}

View File

@@ -21,6 +21,6 @@ public abstract class EditObjectPass<D extends DBObject> extends ObjectPass<D> {
protected void showFinish() throws Exception {
getTable().ShowUI(target.getPK());
for (Class dep : getTable().getFKDependencies().keySet())
getDb().tables.get(dep).RefreshUI();
getDb().getTable(dep).RefreshUI();
}
}

View File

@@ -13,7 +13,7 @@ public abstract class ObjectPass<D extends DBObject> extends Pass<D> {
}
; //источник данных
public DBTable getTable() {
return getDb().tables.get(d);
return getDb().getTable(d);
} //таблица в источнике данных
@Override//sorted
public String getButtonText() {

View File

@@ -15,7 +15,7 @@ public abstract class ObjectsPass<D extends DBObject> extends Pass<Vector<D>> {
return MainModule_.instance.getDb();
}
public DBTable getTable() {
return getDb().tables.get(d);
return getDb().getTable(d);
} //таблица в источнике данных
@Override//sorted
public String getButtonText() {

View File

@@ -309,7 +309,7 @@ public class DataSetControlForm extends ControlWithCurrentForm<DataTable> {
FKBehaviour behaviour = table.getFKDependencies().get(dep);
switch (behaviour.ui) {
case ACTIVE:
table.getDb().tables.get(dep).ShowUI();
table.getDb().getTable(dep).ShowUI();
break;
case PASSIVE:
break;
@@ -325,7 +325,7 @@ public class DataSetControlForm extends ControlWithCurrentForm<DataTable> {
FKBehaviour behaviour = table.getFKDependencies().get(dep);
switch (behaviour.ui) {
case ACTIVE:
table.getDb().tables.get(dep).ClearUI();
table.getDb().getTable(dep).ClearUI();
break;
case PASSIVE:
break;

View File

@@ -1,6 +1,4 @@
package Common.Visual.Menus;
import Common.Visual.Menus.StyledPopupMenu;
import Common.Visual.Menus.VisualiserMenuItem;
import Common.Visual.Trees.StyledTree;
import javax.swing.*;

View File

@@ -1,8 +1,8 @@
package Common.Visual.Trees;
import Common.MainModule_;
import Common.Visual.Fonts.VisualiserFonts;
import Common.Visual.Themes.ThemeElement;
import Common.Visual.Menus.GraphMenu;
import Common.Visual.Themes.ThemeElement;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;