/****************************************************************************** * Copyright: GPL v3 * * * * 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 dba.gui.auxClasses; import dba.gui.CustomTree; import dba.gui.FDWizard.FDWizard; import dba.utils.Localization; import dbaCore.data.Database; import dbaCore.data.FunctionalDependency; import dbaCore.data.RelationSchema; import javax.swing.*; /** * Class to provide all methods for functional dependencies * * @author Andreas Freitag */ public class FdLogic { private Localization locale; public FdLogic() { super(); locale = Localization.getInstance(); } /** * Edit selected fd */ public void editFd() { Database database = CustomTree.getInstance().getDatabase(); RelationSchema relation = CustomTree.getInstance().getParentRelation(); RelationSchema tmpRelation = relation.getClone(); FunctionalDependency fd = CustomTree.getInstance().getFd(); FunctionalDependency fdClone = fd.getClone(); FDWizard wizard = new FDWizard(tmpRelation, fd); wizard.setVisible(true); if (wizard.getRelationChanged()) { tmpRelation.removeFunctionalDependency(fdClone); database.replaceRelationSchema(relation, tmpRelation); } } /** * Delete selected fd */ public void deleteFd() { RelationSchema relation = CustomTree.getInstance().getParentRelation(); FunctionalDependency fd = CustomTree.getInstance().getFd(); Object[] options = {locale.getString("Yes"), locale.getString("No")}; int n = JOptionPane.showOptionDialog(null, locale.getString("TREE_FDDelMsg") + " '" + fd.toString() + "'", locale.getString("TREE_FDDelTitle"), JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[1]); if (n == 0) { relation.removeFunctionalDependency(fd); } } }