/*
* This file is part of the aidGer project.
*
* Copyright (C) 2010-2013 The aidGer Team
*
* 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 de.aidger.controller.actions;
import static de.aidger.utils.Translation._;
import de.aidger.model.Runtime;
import de.aidger.view.UI;
import de.aidger.view.Wizard;
import de.aidger.view.wizard.DatabaseDetails;
import java.awt.event.ActionEvent;
import javax.swing.JComponent;
import javax.swing.AbstractAction;
/**
* This action saves the username before advancing.
*
* @author rmbl
*/
public class DatabaseDetailsFinishAction extends AbstractAction {
public void actionPerformed(ActionEvent e) {
Wizard dlg = (Wizard) ((JComponent) e.getSource())
.getTopLevelAncestor();
String type = Runtime.getInstance().getOption("database-type");
DatabaseDetails dtls = ((DatabaseDetails) dlg.getCurrentPanel());
Runtime.getInstance().setOption("database-driver", dtls.getDriver());
String uri;
if (type.equals("0")) {
if (dtls.getHost().isEmpty()) {
UI.displayError(_("The path can't be empty."));
e.setSource(null);
return;
}
uri = "jdbc:derby:" + dtls.getHost() + ";create=true";
} else if (type.equals("1")) {
if (dtls.getHost().isEmpty() || dtls.getPort().equals(0) || dtls.getDatabase().isEmpty()) {
UI.displayError(_("The hostname, port and database can't be empty."));
e.setSource(null);
return;
}
uri = "jdbc:mysql://" + dtls.getHost() + ":" + dtls.getPort() + "/" + dtls.getDatabase();
if (!dtls.getUsername().isEmpty()) {
uri += "?user=" + dtls.getUsername() + "&password";
if (!dtls.getPassword().isEmpty()) {
uri += "=" + dtls.getPassword();
}
uri += "&autoReconnect=true";
} else {
uri += "?autoReconnect=true";
}
} else {
if (dtls.getHost().isEmpty()) {
UI.displayError(_("The JDBC Uri can't be empty."));
e.setSource(null);
return;
}
uri = dtls.getHost();
}
Runtime.getInstance().setOption("database-uri", uri);
}
}