исправил старый баг. при синхронизации бд не восстанавливались поставленные галки а текущий объект был реализован странно

This commit is contained in:
2024-10-17 23:27:47 +03:00
parent 4c2d39cb92
commit 96df1c3a18
6 changed files with 42 additions and 40 deletions

10
.idea/workspace.xml generated
View File

@@ -7,16 +7,12 @@
</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 afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Messages/MessagesControlForm.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Common/Database/Database.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Database/Database.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/Database/Tables/DataSet.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Database/Tables/DataSet.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Common/Database/Tables/DataSet.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Database/Tables/DataSet.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/Visual/DataSetControlForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Visual/DataSetControlForm.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Common/Visual/DataSetControlForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Visual/DataSetControlForm.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/Visual/Tables/HeaderTextFilter.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Visual/Tables/HeaderTextFilter.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SynchronizeBugReports.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SynchronizeBugReports.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Messages/Errors/ErrorsDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Messages/Errors/ErrorsDBTable.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/UpdateSelectedComponents.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/UpdateSelectedComponents.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Messages/MessagesDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Messages/MessagesDBTable.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Messages/Notes/NotesDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Messages/Notes/NotesDBTable.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Messages/Warnings/WarningsDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Messages/Warnings/WarningsDBTable.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

@@ -272,12 +272,16 @@ public abstract class Database {
protected abstract void resetAI(DBTable table) throws Exception; protected abstract void resetAI(DBTable table) throws Exception;
//- //-
public void SaveLastSelections() { public void SaveLastSelections() {
for (DataSet dataSet : tables.values()) for (DataSet dataSet : tables.values()) {
dataSet.SaveLastSelections(); if (dataSet.getUI() != null)
dataSet.getUI().SaveLastCurrent();
}
} }
public void RestoreLastSelections() { public void RestoreLastSelections() {
for (DataSet dataSet : tables.values()) for (DataSet dataSet : tables.values()) {
dataSet.RestoreLastSelections(); if (dataSet.getUI() != null)
dataSet.getUI().RestoreLastCurrent();
}
} }
//--- //---
public abstract PassCode_ getSynchronizePassCode(); //если бд есть на сервере. public abstract PassCode_ getSynchronizePassCode(); //если бд есть на сервере.

View File

@@ -15,9 +15,6 @@ import java.util.LinkedHashMap;
import java.util.Vector; import java.util.Vector;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class DataSet<K, D extends DBObject> extends DataSetAnchestor { public class DataSet<K, D extends DBObject> extends DataSetAnchestor {
//-
public LinkedHashMap<Class, Object> selections = new LinkedHashMap<>();
//---
public String Name; public String Name;
public Class<K> k; //класс первичного ключа. public Class<K> k; //класс первичного ключа.
public Class<D> d; //класс объектов. public Class<D> d; //класс объектов.
@@ -52,7 +49,7 @@ public class DataSet<K, D extends DBObject> extends DataSetAnchestor {
public void SetCurrentObjectByUI(Object pk) { public void SetCurrentObjectByUI(Object pk) {
if (ui != null) { if (ui != null) {
ui.ClearSelection(); //сброс текущего объекта и всего что с ним связано. ui.ClearSelection(); //сброс текущего объекта и всего что с ним связано.
ui.Select(pk); ui.SetCurrentByPK(pk);
} }
} }
protected DataSetControlForm createUI(JPanel mountPanel) { protected DataSetControlForm createUI(JPanel mountPanel) {
@@ -218,24 +215,6 @@ public class DataSet<K, D extends DBObject> extends DataSetAnchestor {
} }
return res; return res;
} }
public void SaveLastSelections() {
if (ui!=null) {
Object lastPk = null;
if ((CurrentName() != null) && (getCurrent() != null))
lastPk = getCurrent().getPK();
if (!selections.containsKey(getClass()))
selections.put(getClass(), lastPk);
else selections.replace(getClass(), lastPk);
}
}
public void RestoreLastSelections() {
if (ui!=null) {
Object lastPk = selections.get(getClass());
if ((CurrentName() != null) && (lastPk != null)) {
ui.Select(lastPk);
}
}
}
//------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------
public PassCode_ getDeletePassCode() { public PassCode_ getDeletePassCode() {
return null; return null;

View File

@@ -35,6 +35,10 @@ public class DataSetControlForm extends ControlForm<DataTable> {
public LinkedHashMap<Integer, HeaderTextFilter> headersTextFilters = new LinkedHashMap<>(); //текстовые фильтры столбцов public LinkedHashMap<Integer, HeaderTextFilter> headersTextFilters = new LinkedHashMap<>(); //текстовые фильтры столбцов
//фильтры и подсчеты. todo слить с баром (?) //фильтры и подсчеты. todo слить с баром (?)
MatchesCounter f_ui = null; MatchesCounter f_ui = null;
//--
Object savedCurrentKey = null;
Vector<Object> savedSelectedKeys = new Vector<>();
//--
public DataSetControlForm(DataSet dataSource_in, JPanel mountPanel_in) { public DataSetControlForm(DataSet dataSource_in, JPanel mountPanel_in) {
super(DataTable.class, mountPanel_in); super(DataTable.class, mountPanel_in);
dataSource = dataSource_in; dataSource = dataSource_in;
@@ -316,9 +320,9 @@ public class DataSetControlForm extends ControlForm<DataTable> {
} }
public void Show(Object pk) { public void Show(Object pk) {
Show(); Show();
Select(pk); SetCurrentByPK(pk);
} }
public void Select(Object pk) { public void SetCurrentByPK(Object pk) {
if (isShown()) if (isShown())
control.SelectRowByPK(pk); control.SelectRowByPK(pk);
} }
@@ -372,4 +376,23 @@ public class DataSetControlForm extends ControlForm<DataTable> {
public boolean hasMenuBar() { public boolean hasMenuBar() {
return true; return true;
} }
//-
public void SaveLastCurrent() {
savedCurrentKey = null;
savedSelectedKeys.clear();
if ((dataSource.CurrentName() != null) && (dataSource.getCurrent() != null)) {
savedCurrentKey = dataSource.getCurrent().getPK();
}
savedSelectedKeys = dataSource.getSelectedKeys();
}
public void RestoreLastCurrent() {
for (Object key: savedSelectedKeys){
if (dataSource.containsKey(key))
dataSource.get(key).Select(true);
}
if ((savedCurrentKey!=null)&&(dataSource.containsKey(savedCurrentKey))){
SetCurrentByPK(savedCurrentKey);
}
}
} }

View File

@@ -24,7 +24,7 @@ public class SynchronizeBugReports extends ComponentsRepositoryPass<Object> {
} }
@Override @Override
protected void showPreparation() throws Exception { protected void showPreparation() throws Exception {
server.db.bugReports.SaveLastSelections(); server.db.bugReports.getUI().SaveLastCurrent();
server.db.bugReports.ClearUI(); server.db.bugReports.ClearUI();
server.db.subscribers.ClearUI(); server.db.subscribers.ClearUI();
server.db.workspaces.ClearUI(); server.db.workspaces.ClearUI();
@@ -48,9 +48,9 @@ public class SynchronizeBugReports extends ComponentsRepositoryPass<Object> {
protected void showDone() throws Exception { protected void showDone() throws Exception {
if (Global.mainModule.getUI().hasMainWindow()) { if (Global.mainModule.getUI().hasMainWindow()) {
Global.mainModule.getUI().getMainWindow().getCallbackWindow().ShowBugReports(); Global.mainModule.getUI().getMainWindow().getCallbackWindow().ShowBugReports();
Global.componentsServer.db.bugReports.RestoreLastSelections(); server.db.bugReports.getUI().RestoreLastCurrent();
server.db.subscribers.RestoreLastSelections(); server.db.subscribers.getUI().RestoreLastCurrent();
server.db.workspaces.RestoreLastSelections(); server.db.workspaces.getUI().RestoreLastCurrent();
} }
} }
} }

View File

@@ -41,7 +41,7 @@ public class UpdateSelectedComponents extends Pass<Vector<Component>> {
@Override @Override
protected void body() throws Exception { protected void body() throws Exception {
for (Component component : target) { for (Component component : target) {
Global.Components.getUI().Select(component.getPK()); Global.Components.getUI().SetCurrentByPK(component.getPK());
Global.mainModule.getPass(PassCode.UpdateComponent).Do(); Global.mainModule.getPass(PassCode.UpdateComponent).Do();
} }
} }