2024-10-08 00:39:13 +03:00
|
|
|
|
package Common.Visual;
|
2024-10-11 00:00:30 +03:00
|
|
|
|
import Common.Utils.Utils_;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
|
|
|
|
|
|
import javax.swing.*;
|
|
|
|
|
|
import java.awt.*;
|
|
|
|
|
|
//класс, представляющий собой прокручиваемую панель, на которой лежит нечто.
|
|
|
|
|
|
public class ControlForm<C extends Component> {
|
|
|
|
|
|
public C control = null;
|
2024-10-14 15:19:13 +03:00
|
|
|
|
public JScrollPane scroll = null;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
protected Class<C> control_class;
|
|
|
|
|
|
protected JPanel content; //задник.
|
|
|
|
|
|
public ControlForm(Class<C> class_in) {
|
|
|
|
|
|
control_class = class_in;
|
|
|
|
|
|
setContent(new JPanel(new BorderLayout()));
|
|
|
|
|
|
}
|
|
|
|
|
|
//нужно будет вывестии сделать нормальные формы для деревьев а не ручное создание.
|
|
|
|
|
|
public JPanel getContent() {
|
|
|
|
|
|
return content;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void setContent(JPanel content_in) {
|
|
|
|
|
|
content = content_in;
|
|
|
|
|
|
}
|
|
|
|
|
|
//-
|
|
|
|
|
|
public void Show() {
|
|
|
|
|
|
Clear();
|
|
|
|
|
|
CreateControl();
|
|
|
|
|
|
//------------------------
|
|
|
|
|
|
scroll = new JScrollPane(control);
|
|
|
|
|
|
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
|
|
|
|
|
|
scroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void CreateControl() {
|
|
|
|
|
|
try {
|
|
|
|
|
|
control = control_class.newInstance();
|
|
|
|
|
|
} catch (Exception e) {
|
2024-10-11 00:00:30 +03:00
|
|
|
|
Utils_.MainLog.PrintException(e);
|
2023-09-17 22:13:42 +03:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public boolean isShown() {
|
|
|
|
|
|
return control != null;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void Clear() {
|
|
|
|
|
|
control = null; //очищено.
|
|
|
|
|
|
}
|
|
|
|
|
|
public void Refresh() {
|
|
|
|
|
|
if (control != null)
|
|
|
|
|
|
refresh();
|
|
|
|
|
|
}
|
|
|
|
|
|
//-
|
|
|
|
|
|
protected void refresh() {
|
|
|
|
|
|
} //перерисовать контрол.
|
|
|
|
|
|
}
|