рефакторинг сохранения форм. не было единого интерфейса
This commit is contained in:
@@ -12,20 +12,20 @@ public class DBForm extends DBObject {
|
||||
public int Height = 0;
|
||||
public DBForm(String type_, Window window) {
|
||||
type = type_;
|
||||
Init(window);
|
||||
Fill(window);
|
||||
}
|
||||
public DBForm() {
|
||||
}
|
||||
public void Init(Window window) {
|
||||
X = window.getX();
|
||||
Y = window.getY();
|
||||
Width = window.getWidth();
|
||||
Height = window.getHeight();
|
||||
}
|
||||
public void Apply(Window window) {
|
||||
window.setSize(Width, Height);
|
||||
window.setLocation(X, Y);
|
||||
}
|
||||
public void Fill(Window window) {
|
||||
X = window.getX();
|
||||
Y = window.getY();
|
||||
Width = window.getWidth();
|
||||
Height = window.getHeight();
|
||||
}
|
||||
@Override
|
||||
public Object getPK() {
|
||||
return type;
|
||||
|
||||
27
src/Common/Database/Objects/Grid/TableVisualData.java
Normal file
27
src/Common/Database/Objects/Grid/TableVisualData.java
Normal file
@@ -0,0 +1,27 @@
|
||||
package Common.Database.Objects.Grid;
|
||||
import Common.Database.Objects.DBObject;
|
||||
import com.sun.org.glassfish.gmbal.Description;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Vector;
|
||||
import java.util.stream.Collectors;
|
||||
public class TableVisualData extends DBObject {
|
||||
@Description("PRIMARY KEY, UNIQUE") //имя таблицы
|
||||
public String name = null;
|
||||
//todo запаковать в json (?)
|
||||
@Description("DEFAULT ''")
|
||||
public String sizes = ""; //ширины столбцов запакованные через |. вводить объекты ради них нецелесообразно.
|
||||
public TableVisualData() {
|
||||
}
|
||||
public TableVisualData(String name_in) {
|
||||
name = name_in;
|
||||
sizes = "";
|
||||
}
|
||||
@Override
|
||||
public Object getPK() {
|
||||
return name;
|
||||
}
|
||||
public Vector<Integer> unpack() {
|
||||
return Arrays.stream(sizes.split("\\|")).map(Integer::parseInt).collect(Collectors.toCollection(Vector::new));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package Common.Database.Objects.Grid;
|
||||
import Common.Database.Tables.DBTable;
|
||||
public class TablesVisualDatasDBTable extends DBTable<String, TableVisualData> {
|
||||
public TablesVisualDatasDBTable() {
|
||||
super(String.class, TableVisualData.class);
|
||||
}
|
||||
}
|
||||
22
src/Common/Database/Objects/Splitter/Splitter.java
Normal file
22
src/Common/Database/Objects/Splitter/Splitter.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package Common.Database.Objects.Splitter;
|
||||
import Common.CommonConstants;
|
||||
import Common.Database.Objects.DBObject;
|
||||
import com.sun.org.glassfish.gmbal.Description;
|
||||
|
||||
import javax.swing.*;
|
||||
public class Splitter extends DBObject {
|
||||
@Description("PRIMARY KEY, UNIQUE")
|
||||
public String name = "";
|
||||
@Description("DEFAULT -1")
|
||||
public int position = CommonConstants.Nan;
|
||||
public Splitter() {
|
||||
}
|
||||
public Splitter(JSplitPane splitPane) {
|
||||
name = splitPane.getName();
|
||||
position = splitPane.getDividerLocation();
|
||||
}
|
||||
@Override
|
||||
public Object getPK() {
|
||||
return name;
|
||||
}
|
||||
}
|
||||
50
src/Common/Database/Objects/Splitter/SplittersDBTable.java
Normal file
50
src/Common/Database/Objects/Splitter/SplittersDBTable.java
Normal file
@@ -0,0 +1,50 @@
|
||||
package Common.Database.Objects.Splitter;
|
||||
import Common.Database.Tables.DBTable;
|
||||
import Common.Utils.Utils_;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.Vector;
|
||||
public class SplittersDBTable extends DBTable<String, Splitter> {
|
||||
public SplittersDBTable() {
|
||||
super(String.class, Splitter.class);
|
||||
}
|
||||
private Vector<JSplitPane> InitSplitters(Object form) throws Exception {
|
||||
Vector<JSplitPane> res = new Vector<>();
|
||||
Class c = form.getClass();
|
||||
for (Field field : c.getFields()) {
|
||||
if (field.getType().getSimpleName().equals("JSplitPane")) {
|
||||
JSplitPane splitPane = (JSplitPane) field.get(form);
|
||||
splitPane.setName(field.getName());
|
||||
res.add(splitPane);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
public void Load(Object form) {
|
||||
try {
|
||||
Vector<JSplitPane> splitters = InitSplitters(form);
|
||||
for (JSplitPane splitPane : splitters) {
|
||||
if (Data.containsKey(splitPane.getName())) {
|
||||
splitPane.setDividerLocation(Data.get(splitPane.getName()).position);
|
||||
} else {
|
||||
getDb().Insert(new Splitter(splitPane));
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Utils_.MainLog.PrintException(ex);
|
||||
}
|
||||
}
|
||||
public void Save(Object form) {
|
||||
try {
|
||||
Vector<JSplitPane> splitters = InitSplitters(form);
|
||||
for (JSplitPane splitPane : splitters) {
|
||||
Splitter splitter = Data.get(splitPane.getName());
|
||||
splitter.position = splitPane.getDividerLocation();
|
||||
getDb().Update(splitter);
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Utils_.MainLog.PrintException(ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
package Common.Database;
|
||||
import Common.Database.Objects.DBForm.FormsDBTable;
|
||||
import Common.Database.Objects.Grid.TablesVisualDatasDBTable;
|
||||
import Common.Database.Objects.PassStats.PassStatsDBTable;
|
||||
import Common.Database.Objects.Splitter.SplittersDBTable;
|
||||
import Common.Database.SQLITE.SQLiteDatabase;
|
||||
import _VisualDVM.GlobalData.Grid.TablesVisualDatasDBTable;
|
||||
import _VisualDVM.GlobalData.Splitter.SplittersDBTable;
|
||||
import _VisualDVM.Passes.PassCode;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
Reference in New Issue
Block a user