package es.icarto.gvsig.navtableforms.gui.tables.handler; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JPanel; import javax.swing.table.TableModel; import com.iver.andami.PluginServices; import com.iver.andami.ui.mdiManager.IWindow; import com.iver.andami.ui.mdiManager.WindowInfo; @SuppressWarnings("serial") public class EditableNNRelTableForm extends JPanel implements IWindow, ActionListener { private WindowInfo viewInfo; private EditableNNRelTableHandler tableRelationship; private JComboBox secondaryPKValueCB; private JButton addButton; private int keyColumn = 0; public EditableNNRelTableForm(EditableNNRelTableHandler tableRelationship, int keyColumn) { this.tableRelationship = tableRelationship; this.keyColumn = keyColumn; viewInfo = this.getWindowInfo(); createForm(); } public EditableNNRelTableForm(EditableNNRelTableHandler tableRelationship) { this.tableRelationship = tableRelationship; viewInfo = this.getWindowInfo(); createForm(); } private void createForm() { this.setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); secondaryPKValueCB = new JComboBox(); c.fill = GridBagConstraints.HORIZONTAL; c.ipady = 5; // make this component tall c.insets = new Insets(10, 5, 10, 5); c.gridwidth = 1; c.gridx = 0; c.gridy = 0; this.add(secondaryPKValueCB, c); addButton = new JButton(PluginServices.getText(this, "add_relation")); c.insets = new Insets(10, 10, 10, 10); c.ipady = 0; c.gridy = 1; c.anchor = GridBagConstraints.PAGE_END; // bottom of space this.add(addButton, c); for (String value : tableRelationship.getUnlinkedSecondaryValues()) { secondaryPKValueCB.addItem(value); } addButton.addActionListener(this); } public void open() { PluginServices.getMDIManager().addCentredWindow(this); } public void addAction() { open(); } public void deleteAction() { int row = tableRelationship.getJTable().getSelectedRow(); TableModel tableModel = (TableModel) tableRelationship .getJTable().getModel(); String secondaryPKValue = tableModel.getValueAt(row, keyColumn) .toString(); tableRelationship.deleteRow(secondaryPKValue); } @Override public WindowInfo getWindowInfo() { if (viewInfo == null) { viewInfo = new WindowInfo(WindowInfo.MODELESSDIALOG | WindowInfo.RESIZABLE | WindowInfo.PALETTE); } viewInfo.setHeight(75); viewInfo.setWidth(200); return viewInfo; } @Override public Object getWindowProfile() { return null; } @Override public void actionPerformed(ActionEvent event) { if (event.getSource() == addButton) { if (secondaryPKValueCB.getSelectedItem() != null) { tableRelationship.insertRow(secondaryPKValueCB .getSelectedItem().toString()); PluginServices.getMDIManager().closeWindow(this); } } } }