/* * 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.Column; import com.wcs.netbeans.liquiface.model.Table; import com.wcs.netbeans.liquiface.ui.wizards.addnotnull.AddNotNullWizardAction; import com.wcs.netbeans.liquiface.ui.wizards.dropcolumn.DropColumnWizardAction; import com.wcs.netbeans.liquiface.ui.wizards.dropnotnull.DropNotNullWizardAction; import com.wcs.netbeans.liquiface.ui.wizards.modifydatatype.ModifyDataTypeWizardAction; import com.wcs.netbeans.liquiface.ui.wizards.renamecolumn.RenameColumnWizardAction; import javax.swing.JMenuItem; /** * * @author athalay */ public class ColumnPopupMenu extends AbstractPopupMenu { private Table table; private Column column; public ColumnPopupMenu(int tableId, Integer columnId) { super(); this.column = ModelFacade.getInstance().getTableById(tableId).getColumnById(columnId); this.table = ModelFacade.getInstance().getTableById(tableId); createColumnMenu(); } private void createColumnMenu() { add(createRenameColumnItem()); add(createDropColumnItem()); add(createAddNotNullItem()); add(createDropNotNullItem()); add(createModifyColumnDataTypeItem()); } private JMenuItem createRenameColumnItem() { JMenuItem item = createMenuItem("Rename column"); item.setActionCommand("rename_column"); item.addActionListener(new RenameColumnWizardAction(table, column)); return item; } private JMenuItem createModifyColumnDataTypeItem() { JMenuItem item = createMenuItem("Modify data type"); item.setActionCommand("modify_data_type"); item.addActionListener(new ModifyDataTypeWizardAction(table, column)); return item; } private JMenuItem createDropColumnItem() { JMenuItem item = createMenuItem("Drop column"); item.setActionCommand("drop_column"); item.addActionListener(new DropColumnWizardAction(table, column)); return item; } private JMenuItem createAddNotNullItem() { JMenuItem item = createMenuItem("Add not null constraint"); item.setActionCommand("add_not_null"); item.addActionListener(new AddNotNullWizardAction(table, column)); item.setEnabled(column.isNullable()); return item; } private JMenuItem createDropNotNullItem() { JMenuItem item = createMenuItem("Drop not null constraint"); item.setActionCommand("drop_not_null"); item.addActionListener(new DropNotNullWizardAction(table, column)); item.setEnabled(!column.isNullable()); return item; } }