package org.geopublishing.geopublisher.swing; import java.awt.Component; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.io.File; import javax.swing.AbstractAction; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import net.miginfocom.swing.MigLayout; import de.schmitzm.swing.CancelButton; import de.schmitzm.swing.OkButton; import de.schmitzm.swing.SwingUtil; /** * * @author Michael Janik * */ public class CleanUnreferencedFoldersDialog extends JDialog { private File[] unrefDirs; boolean accepted = false; private final JLabel explanationLabel = new JLabel(GpSwingUtil.R("UnreferencedDirectoryFound_AskIfItShouldBeDeleted")); private JScrollPane unreferencedDirsListScrollPane; private OkButton okButton; private CancelButton cancelButton; public CleanUnreferencedFoldersDialog(File[] dirs, Component owner) { super(SwingUtil.getParentWindow(owner), ModalityType.APPLICATION_MODAL); this.unrefDirs = dirs; initGui(); } private void initGui() { JPanel contentPane = new JPanel(new MigLayout("wrap 2","grow","grow")); contentPane.add(explanationLabel, "span 2"); contentPane.add(getUnreferencedDirsList(), "span 2, grow"); contentPane.add(getCancelButton(), "right, skip 1, split 2, tag cancel"); contentPane.add(getOkButton(),"right, tag ok"); setContentPane(contentPane); setTitle(GpSwingUtil.R("UnreferencedDirectoryFound_Title")); SwingUtil.centerFrameOnScreen(this); pack(); setVisible(true); } protected OkButton getOkButton() { if (okButton == null) { okButton = new OkButton(new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { setAccepted(true); dispose(); } }); } return okButton; } protected CancelButton getCancelButton() { if (cancelButton == null) { cancelButton = new CancelButton(new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { setAccepted(false); dispose(); } }); } return cancelButton; } private JScrollPane getUnreferencedDirsList() { if (unreferencedDirsListScrollPane == null) { JTextArea liste = new JTextArea(5, 30); unreferencedDirsListScrollPane = new JScrollPane(liste); liste.setEditable(false); for (File file : unrefDirs) { liste.append(file.toString() + "\n"); } unreferencedDirsListScrollPane.setPreferredSize(new Dimension(450,100)); } return unreferencedDirsListScrollPane; } public boolean isAccepted() { return this.accepted; } public void setAccepted(boolean value) { this.accepted = value; } }