
org.yaoqiang.dialog.PanelContainer Maven / Gradle / Ivy
package org.yaoqiang.dialog;
import java.awt.BorderLayout;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JComponent;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JViewport;
import javax.swing.ScrollPaneConstants;
import org.yaoqiang.util.Resources;
/**
* PanelContainer
*
* @author Shi Yaoqiang([email protected])
*/
public class PanelContainer extends JPanel {
private static final long serialVersionUID = 1L;
protected BaseDialog parentDialog;
protected JScrollPane scrollPane;
protected PanelFactory panelFactory;
protected boolean isModified = false;
public PanelContainer(BaseDialog parentDialog) {
this.parentDialog = parentDialog;
init();
initPanelContainer();
}
public void init() {
panelFactory = new PanelFactory(this);
}
public void initPanelContainer() {
scrollPane = new JScrollPane();
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
JViewport port = scrollPane.getViewport();
port.setScrollMode(JViewport.BLIT_SCROLL_MODE);
scrollPane.getVerticalScrollBar().setUnitIncrement(20);
scrollPane.getHorizontalScrollBar().setUnitIncrement(40);
setLayout(new BorderLayout());
JPanel wp = new JPanel();
wp.setLayout(new BoxLayout(wp, BoxLayout.Y_AXIS));
wp.add(Box.createVerticalStrut(5));
wp.add(scrollPane);
add(wp, BorderLayout.CENTER);
}
public JComponent getDisplay() {
return this;
}
public boolean isModified() {
return this.isModified;
}
public void panelChanged() {
setModified(true);
}
public int showModifiedWarning() {
int option = JOptionPane.showConfirmDialog(null, Resources.get("saveChanges"), Resources.get("optionTitle"), JOptionPane.YES_NO_CANCEL_OPTION);
if (option == JOptionPane.YES_OPTION) {
apply();
setModified(false);
}
return option;
}
public void apply() {
Panel p = getViewPanel();
if (p != null) {
p.saveObjects();
}
}
public void setModified(boolean isModified) {
this.isModified = isModified;
}
public void setActiveObject(Object el, String type) {
setModified(false);
setViewPanel(panelFactory.getPanel(el, type));
}
public BaseDialog getParentDialog() {
return parentDialog;
}
public PanelFactory getPanelFactory() {
return panelFactory;
}
public Panel getViewPanel() {
return (Panel) scrollPane.getViewport().getView();
}
public void setViewPanel(Panel panel) {
scrollPane.setViewportView(panel);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy