Files
VisualSapfor/src/Common/Database/Tables/DataSet.java

90 lines
2.4 KiB
Java

package Common.Database.Tables;
import Common.Database.Objects.DBObject;
import Common.Passes.PassCode_;
import Common.Visual.DataSetControlForm;
import Common.Visual.UI;
import javax.swing.*;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.Vector;
public class DataSet<K, D extends DBObject> extends DataSetAnchestor {
public String Name;
public Class<K> k; //класс первичного ключа.
public Class<D> d; //класс объектов.
public LinkedHashMap<K, D> Data = new LinkedHashMap<>(); //наполнение
//-
protected DataSetControlForm ui = null;
//--
public DataSet(Class<K> k_in, Class<D> d_in) {
k = k_in;
d = d_in;
Name = d.getSimpleName();
}
public DataSetControlForm<D> getUI() {
return ui;
}
public void mountUI(JPanel mountPanel_in) {
UI.Clear(mountPanel_in);
ui = createUI(mountPanel_in);
}
public void ClearUI() {
if ((ui != null) && ui.isShown()) {
ui.ClearSelection();
ui.Clear();
}
}
public void RefreshUI() {
if (ui != null) ui.Refresh();
}
public int getRowCountUI() {
return ui.getRowCount();
}
protected DataSetControlForm createUI(JPanel mountPanel) {
return null;
}
public D getFirstRecord() {
return Data.values().stream().findFirst().orElse(null);
}
public Vector<D> getOrderedRecords(Comparator<D> comparator) {
Vector<D> res = new Vector<>(Data.values());
res.sort(comparator);
return res;
}
public String QName() {
return "\"" + Name + "\"";
}
public String getPKName() {
return "";
} //получить имя ключевого поля. нужно для таблиц.
//-
public void put(Object key, D object) {
Data.put((K) key, object);
}
public D get(Object key) {
return Data.get(key);
}
public void clear() {
Data.clear();
}
public int size() {
return Data.size();
}
public boolean containsKey(Object key) {
return Data.containsKey(key);
}
public void ShowUI() {
if (ui != null) {
ui.Show();
}
}
public void ShowUI(Object key) {
if (ui != null) {
ui.Show(key);
}
}
public PassCode_ getDeletePassCode() {
return null;
}
}