package devopsdistilled.operp.client.abstracts; import java.awt.Dimension; import java.awt.Toolkit; import javax.swing.JComponent; import javax.swing.JDialog; import net.miginfocom.swing.MigLayout; public abstract class SubTaskPane implements PaneModelObserver { protected JDialog dialog; public SubTaskPane() { dialog = new JDialog(); dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); dialog.getContentPane().setLayout(new MigLayout("fill")); } public abstract JComponent getPane(); public void init() { dialog.getContentPane().add(getPane(), "grow"); dialog.setLocationRelativeTo(null); dialog.pack(); final Toolkit toolkit = Toolkit.getDefaultToolkit(); final Dimension screenSize = toolkit.getScreenSize(); final int x = (screenSize.width - dialog.getWidth()) / 2; final int y = (screenSize.height - dialog.getHeight()) / 2; dialog.setLocation(x, y); dialog.requestFocus(); dialog.setVisible(true); } public JDialog getDialog() { return dialog; } @Override public void updateTitle(String title) { getDialog().setTitle(title); } }