Files
VisualSapfor/src/Common/Database/DBObject.java

66 lines
1.9 KiB
Java
Raw Normal View History

2023-09-17 22:13:42 +03:00
package Common.Database;
import Common.UI.Selectable;
import Common.Utils.Index;
import Common.Utils.Utils;
import com.sun.org.glassfish.gmbal.Description;
import java.io.Serializable;
import java.util.Objects;
public abstract class DBObject implements Selectable, Serializable {
//<editor-fold desc="Selectable">
@Description("IGNORE")
private boolean selected = false;
@Override
public boolean isSelected() {
return selected;
}
@Override
public void select(boolean flag) {
if (selected != flag) {
selected = flag;
Index counter = getSelectionCounter();
if (Objects.nonNull(counter)) {
if (selected) counter.Inc();
else counter.Dec();
}
}
}
//</editor-fold>
public Index getSelectionCounter() {
return null;
}
public boolean isVisible() {
return true;
}
public abstract Object getPK();
public String getBDialogName() {
return Utils.Brackets(getDialogName());
}
public String getDialogName() {
return getPK().toString();
}
//статус. например завершенность багрепорта или состояние задачи на запуск. как правило обладает цветным шрифтом.
//как объект будут называть по внешним ключам.
public String getFKName() {
return getClass().getSimpleName().toLowerCase() + "_id";
2023-09-17 22:13:42 +03:00
}
public Object getEmptyFK() {
return null;
}
@Override
public String toString() {
return getBDialogName();
}
//---
public void SynchronizeFields(DBObject src){
selected = src.selected;
}
//------
public DBObject(){}
public DBObject(DBObject src){
this.SynchronizeFields(src);
}
//---------
2023-09-17 22:13:42 +03:00
}