Java tutorial
/* * Copyright (C) 2011 Ives van der Flaas * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package be.ac.ua.comp.scarletnebula.gui.keywizards; import javax.swing.JOptionPane; import javax.swing.SwingWorker; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import be.ac.ua.comp.scarletnebula.core.CloudProvider; import be.ac.ua.comp.scarletnebula.gui.addserverwizard.ChooseImagePage; public class FinalNewKeyPage extends AbstractFinalKeyWizardPage { private static final long serialVersionUID = 1L; private static final Log log = LogFactory.getLog(ChooseImagePage.class); private final CloudProvider provider; private final String keyname; public FinalNewKeyPage(final CloudProvider provider, final String keyname) { super(provider, "Click Finish to create a new SSH key named " + keyname + " for provider " + provider.getName(), keyname); this.provider = provider; this.keyname = keyname; } @Override protected void performAction(final KeyRecorder recorder) { recorder.keyname = keyname; recorder.makeDefault = makeKeyDefault(); (new SwingWorker<Exception, Object>() { @Override protected Exception doInBackground() throws Exception { try { provider.createKey(keyname, makeKeyDefault()); } catch (final Exception e) { return e; } return null; } @Override public void done() { try { final Exception result = get(); if (result != null) { log.error("Could not create key", result); JOptionPane.showMessageDialog(FinalNewKeyPage.this, result.getLocalizedMessage(), "Error creating key", JOptionPane.ERROR_MESSAGE); } } catch (final Exception ignore) { } } }).execute(); } }