/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.wcs.netbeans.liquiface.ui.swing.popup;
/*
* #%L
* Liquiface - GUI for Liquibase
* %%
* Copyright (C) 2013 Webstar Csoport Kft.
* %%
* 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/gpl-3.0.html>.
* #L%
*/
import com.wcs.netbeans.liquiface.facade.ModelFacade;
import com.wcs.netbeans.liquiface.model.Table;
import com.wcs.netbeans.liquiface.ui.wizards.addcolumns.AddColumnsWizardAction;
import com.wcs.netbeans.liquiface.ui.wizards.addfk.AddForeignKeyWizardAction;
import com.wcs.netbeans.liquiface.ui.wizards.addpk.AddPrimaryKeyWizardAction;
import com.wcs.netbeans.liquiface.ui.wizards.addunique.AddUniqueConstraintWizardAction;
import com.wcs.netbeans.liquiface.ui.wizards.dropfk.DropForeignKeyWizardAction;
import com.wcs.netbeans.liquiface.ui.wizards.droppk.DropPrimaryKeyWizardAction;
import com.wcs.netbeans.liquiface.ui.wizards.droptable.DropTableWizardAction;
import com.wcs.netbeans.liquiface.ui.wizards.dropunique.DropUniqueConstraintWizardAction;
import com.wcs.netbeans.liquiface.ui.wizards.renametable.RenameTableWizardAction;
import javax.swing.JMenuItem;
/**
*
* @author botond
*/
public class TablePopupMenu extends AbstractPopupMenu{
private Table table;
public TablePopupMenu(int tableId) {
super();
this.table = ModelFacade.getInstance().getTableById(tableId);
createTableMenu();
}
private void createTableMenu(){
add(createAddColumnsItem());
add(createAddPrimaryKeyItem());
add(createDropPrimaryKeyItem());
add(createAddUniqueConstraintItem());
add(createDropUniqueConstraintItem());
add(createAddForeignKeyItem());
add(createDropForeignKeyItem());
add(createRenameTableItem());
add(createDropTableItem());
}
private JMenuItem createAddColumnsItem(){
JMenuItem item = createMenuItem("Add columns");
item.setActionCommand("add_columns");
item.addActionListener(new AddColumnsWizardAction(table));
return item;
}
private JMenuItem createAddPrimaryKeyItem(){
JMenuItem item = createMenuItem("Add primary key");
item.setActionCommand("add_primary_key");
item.addActionListener(new AddPrimaryKeyWizardAction(table));
item.setEnabled(table.getPrimaryKeyConstraint() == null);
return item;
}
private JMenuItem createDropPrimaryKeyItem(){
JMenuItem item = createMenuItem("Drop primary key");
item.setActionCommand("drop_primary_key");
item.addActionListener(new DropPrimaryKeyWizardAction(table));
item.setEnabled(table.getPrimaryKeyConstraint() != null);
return item;
}
private JMenuItem createAddUniqueConstraintItem(){
JMenuItem item = createMenuItem("Add unique constraint");
item.setActionCommand("add_unique");
item.addActionListener(new AddUniqueConstraintWizardAction(table));
return item;
}
private JMenuItem createDropUniqueConstraintItem(){
JMenuItem item = createMenuItem("Drop unique constraint");
item.setActionCommand("drop_unique");
item.addActionListener(new DropUniqueConstraintWizardAction(table));
item.setEnabled(!table.getUniqueConstraints().isEmpty());
return item;
}
private JMenuItem createAddForeignKeyItem(){
JMenuItem item = createMenuItem("Add foreign key");
item.setActionCommand("add_foreign_key");
item.addActionListener(new AddForeignKeyWizardAction(table));
return item;
}
private JMenuItem createDropForeignKeyItem(){
JMenuItem item = createMenuItem("Drop foreign key");
item.setActionCommand("drop_foreign_key");
item.addActionListener(new DropForeignKeyWizardAction(table));
item.setEnabled(!table.getForeignKeyConstraints().isEmpty());
return item;
}
private JMenuItem createRenameTableItem(){
JMenuItem item = createMenuItem("Rename table");
item.setActionCommand("rename_table");
item.addActionListener(new RenameTableWizardAction(table));
return item;
}
private JMenuItem createDropTableItem(){
JMenuItem item = createMenuItem("Drop table");
item.setActionCommand("drop_table");
item.addActionListener(new DropTableWizardAction(table));
return item;
}
}