package es.icarto.gvsig.navtableforms.gui.tables.menu; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import javax.swing.JTable; import javax.swing.table.TableModel; import es.icarto.gvsig.navtableforms.gui.tables.IForm; import es.icarto.gvsig.navtableforms.gui.tables.JTableUtils; import es.icarto.gvsig.navtableforms.gui.tables.model.AlphanumericTableModel; /** * AlphanumericUpdateJTableContextualMenu * * Relationship table contextual menus which opens subforms and has option only * for updating registers. * * @author Jorge L�pez Fern�ndez <jlopez@cartolab.es> */ public class AlphanumericUpdateJTableContextualMenu extends AlphanumericJTableContextualMenu { public AlphanumericUpdateJTableContextualMenu(IForm form) { super(form); } public void mouseClicked(MouseEvent e) { table = (JTable) e.getComponent(); if ((e.getClickCount() == 2) && (table.getSelectedRow() > -1)) { TableModel model = table.getModel(); if (model instanceof AlphanumericTableModel) { form.actionUpdateRecord(((AlphanumericTableModel) model) .convertRowIndexToModel(table.getSelectedRow())); } else { form.actionUpdateRecord(table.convertRowIndexToModel(table .getSelectedRow())); } } else if (e.getButton() == BUTTON_RIGHT) { if (!JTableUtils.hasRows(table) || (table.getSelectedRow() == NO_ROW_SELECTED)) { updateMenuItem.setEnabled(false); } else { updateMenuItem.setEnabled(true); } popupMenu.show(e.getComponent(), e.getX(), e.getY()); } } protected void initContextualMenu() { updateMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { form.actionUpdateRecord(((AlphanumericTableModel) table .getModel()).convertRowIndexToModel(table .getSelectedRow())); } }); popupMenu.add(updateMenuItem); } }