@@ -0,0 +1,654 @@
+package devopsdistilled.operp.client.abstracts;%0A%0Aimport javax.swing.JComponent;%0Aimport javax.swing.JDialog;%0A%0Aimport net.miginfocom.swing.MigLayout;%0A%0Apublic abstract class SubTaskPane %7B%0A%09protected JDialog dialog;%0A%09protected JComponent owner;%0A%0A%09public SubTaskPane() %7B%0A%09%09dialog = new JDialog();%0A%09%7D%0A%0A%09public abstract JComponent getPane();%0A%0A%09public void setOwner(JComponent owner) %7B%0A%09%09this.owner = owner;%0A%09%7D%0A%0A%09public JDialog getDialog() %7B%0A%09%09dialog.getContentPane().setLayout(new MigLayout(%22debug%22));%0A%09%09dialog.getContentPane().add(getPane());%0A%09%09dialog.setLocationRelativeTo(owner);%0A%09%09dialog.setSize(400, 600);%0A%09%09dialog.setVisible(true);%0A%09%09return dialog;%0A%09%7D%0A%0A%7D%0A

Create an abstract implementation to be subclassed by SubTaskPanels