This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 227588
Collapse All | Expand All

(-)a/db.dataview/src/org/netbeans/modules/db/dataview/table/ResultSetTableCellEditor.java (-32 lines)
Lines 45-64 Link Here
45
import java.awt.event.MouseEvent;
45
import java.awt.event.MouseEvent;
46
import java.util.EventObject;
46
import java.util.EventObject;
47
import javax.swing.DefaultCellEditor;
47
import javax.swing.DefaultCellEditor;
48
import javax.swing.JComponent;
49
import javax.swing.JTable;
48
import javax.swing.JTable;
50
import javax.swing.JTextField;
49
import javax.swing.JTextField;
51
import javax.swing.UIManager;
50
import javax.swing.UIManager;
52
import org.jdesktop.swingx.renderer.JRendererCheckBox;
51
import org.jdesktop.swingx.renderer.JRendererCheckBox;
53
import org.netbeans.modules.db.dataview.meta.DBColumn;
54
import org.netbeans.modules.db.dataview.util.DBReadWriteHelper;
55
import org.netbeans.modules.db.dataview.util.DataViewUtils;
52
import org.netbeans.modules.db.dataview.util.DataViewUtils;
56
import org.openide.awt.StatusDisplayer;
57
53
58
public class ResultSetTableCellEditor extends DefaultCellEditor {
54
public class ResultSetTableCellEditor extends DefaultCellEditor {
59
55
60
    protected Object val;
56
    protected Object val;
61
    protected boolean editable = true;
62
    protected JTable table;
57
    protected JTable table;
63
    protected static final boolean suppressEditorBorder;
58
    protected static final boolean suppressEditorBorder;
64
59
Lines 93-109 Link Here
93
                if (val == null && txtVal.equals("")) {
88
                if (val == null && txtVal.equals("")) {
94
                    return null;
89
                    return null;
95
                } else {
90
                } else {
96
                    try {
97
                        assert table != null;
98
                        int col = table.getEditingColumn();
99
                        //textField.addKeyListener(new TableKeyListener());
100
                        return DBReadWriteHelper.validate(txtVal, ((ResultSetJXTable) table).getDBColumn(col));
101
                    } catch (Exception ex) {
102
                        StatusDisplayer.getDefault().setStatusText(ex.getMessage());
103
                        return txtVal;
91
                        return txtVal;
104
                    }
92
                    }
105
                }
93
                }
106
            }
107
        };
94
        };
108
95
109
        textField.addActionListener(delegate);
96
        textField.addActionListener(delegate);
Lines 148-170 Link Here
148
135
149
        checkBox.addActionListener(delegate);
136
        checkBox.addActionListener(delegate);
150
    }
137
    }
151
152
    protected void setEditable(int column, Component c, boolean celleditable) {
153
        assert table != null;
154
        DBColumn dbCol = ((ResultSetJXTable) table).getDBColumn(column);
155
        if (dbCol.isGenerated()) {
156
            editable = false;
157
        }
158
        if (! celleditable) {
159
            editable = false;
160
        } else {
161
            editable = dbCol.isEditable();
162
        }
163
164
        if (c instanceof JTextField) {
165
            ((JTextField) c).setEditable(editable);
166
        } else if (c instanceof JComponent) {
167
            ((JComponent) c).setEnabled(editable);
168
        }
169
    }
170
}
138
}
(-)a/db.dataview/src/org/netbeans/modules/db/dataview/table/celleditor/BooleanTableCellEditor.java (-2 lines)
Lines 58-66 Link Here
58
58
59
    @Override
59
    @Override
60
    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
60
    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
61
        this.table = table;
62
        Component c = super.getTableCellEditorComponent(table, value, isSelected, row, column);
61
        Component c = super.getTableCellEditorComponent(table, value, isSelected, row, column);
63
        setEditable(column, c, table.isCellEditable(row, column));
64
        if (suppressEditorBorder && c instanceof JComponent) {
62
        if (suppressEditorBorder && c instanceof JComponent) {
65
            ((JComponent) c).setBorder(BorderFactory.createEmptyBorder());
63
            ((JComponent) c).setBorder(BorderFactory.createEmptyBorder());
66
        }
64
        }
(-)a/db.dataview/src/org/netbeans/modules/db/dataview/table/celleditor/DateTimePickerCellEditor.java (-14 lines)
Lines 132-138 Link Here
132
        datePicker.setDateTime(getValueAsTimestamp(value));
132
        datePicker.setDateTime(getValueAsTimestamp(value));
133
133
134
        ignoreAction = false;
134
        ignoreAction = false;
135
        setEditable(column, datePicker, table.isCellEditable(row, column));
136
        return datePicker;
135
        return datePicker;
137
    }
136
    }
138
137
Lines 211-229 Link Here
211
        return l;
210
        return l;
212
    }
211
    }
213
212
214
    protected void setEditable(int column, JXDateTimePicker c, boolean celleditable) {
215
        assert table != null;
216
        DBColumn dbCol = ((ResultSetJXTable) table).getDBColumn(column);
217
        if (dbCol.isGenerated()) {
218
            editable = false;
219
        } else if (! celleditable) {
220
            editable = false;
221
        } else {
222
            editable = dbCol.isEditable();
223
        }
224
        c.setEditable(editable);
225
    }
226
227
    public void addKeyListener(KeyListener kl) {
213
    public void addKeyListener(KeyListener kl) {
228
        datePicker.addKeyListener(kl);
214
        datePicker.addKeyListener(kl);
229
    }
215
    }
(-)a/db.dataview/src/org/netbeans/modules/db/dataview/table/celleditor/NumberFieldEditor.java (-2 lines)
Lines 57-68 Link Here
57
57
58
    @Override
58
    @Override
59
    public Component getTableCellEditorComponent(final JTable table, Object value, boolean isSelected, int row, int column) {
59
    public Component getTableCellEditorComponent(final JTable table, Object value, boolean isSelected, int row, int column) {
60
        this.table = table;
61
        Component c = super.getTableCellEditorComponent(table, value, isSelected, row, column);
60
        Component c = super.getTableCellEditorComponent(table, value, isSelected, row, column);
62
        if (suppressEditorBorder && c instanceof JComponent) {
61
        if (suppressEditorBorder && c instanceof JComponent) {
63
            ((JComponent) c).setBorder(BorderFactory.createEmptyBorder());
62
            ((JComponent) c).setBorder(BorderFactory.createEmptyBorder());
64
        }
63
        }
65
        setEditable(column, c, table.isCellEditable(row, column));
66
        return c;
64
        return c;
67
    }
65
    }
68
}
66
}
(-)a/db.dataview/src/org/netbeans/modules/db/dataview/table/celleditor/StringTableCellEditor.java (-3 / +8 lines)
Lines 65-70 Link Here
65
import javax.swing.KeyStroke;
65
import javax.swing.KeyStroke;
66
import javax.swing.SwingUtilities;
66
import javax.swing.SwingUtilities;
67
import javax.swing.table.TableCellEditor;
67
import javax.swing.table.TableCellEditor;
68
import javax.swing.table.TableModel;
68
import org.jdesktop.swingx.JXButton;
69
import org.jdesktop.swingx.JXButton;
69
import org.jdesktop.swingx.JXPanel;
70
import org.jdesktop.swingx.JXPanel;
70
import org.netbeans.modules.db.dataview.table.ResultSetTableCellEditor;
71
import org.netbeans.modules.db.dataview.table.ResultSetTableCellEditor;
Lines 89-96 Link Here
89
    @Override
90
    @Override
90
    public Component getTableCellEditorComponent(final JTable table, Object value, boolean isSelected, int row, int column) {
91
    public Component getTableCellEditorComponent(final JTable table, Object value, boolean isSelected, int row, int column) {
91
        this.table = table;
92
        this.table = table;
93
        
92
        final JComponent c = (JComponent) super.getTableCellEditorComponent(table, value, isSelected, row, column);
94
        final JComponent c = (JComponent) super.getTableCellEditorComponent(table, value, isSelected, row, column);
93
        setEditable(column, c, table.isCellEditable(row, column));
94
95
95
        JXPanel panel = new JXPanel(new BorderLayout()) {
96
        JXPanel panel = new JXPanel(new BorderLayout()) {
96
97
Lines 138-144 Link Here
138
139
139
    protected void editCell(JTable table, int row, int column) {
140
    protected void editCell(JTable table, int row, int column) {
140
        JTextArea textArea = new JTextArea(20, 80);
141
        JTextArea textArea = new JTextArea(20, 80);
141
        Object value = table.getValueAt(row, column);
142
        TableModel tm = table.getModel();
143
        int modelRow = table.convertRowIndexToModel(row);
144
        int modelColumn = table.convertColumnIndexToModel(column);
145
        boolean editable = tm.isCellEditable(modelRow, modelColumn);
146
        Object value = tm.getValueAt(modelRow, modelColumn);
142
        if (value != null) {
147
        if (value != null) {
143
            textArea.setText(value.toString());
148
            textArea.setText(value.toString());
144
            textArea.setCaretPosition(0);
149
            textArea.setCaretPosition(0);
Lines 151-157 Link Here
151
        if (editable) {
156
        if (editable) {
152
            int result = JOptionPane.showOptionDialog(parent, pane, table.getColumnName(column), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, null, null);
157
            int result = JOptionPane.showOptionDialog(parent, pane, table.getColumnName(column), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, null, null);
153
            if (result == JOptionPane.OK_OPTION) {
158
            if (result == JOptionPane.OK_OPTION) {
154
                table.setValueAt(textArea.getText(), row, column);
159
                tm.setValueAt(textArea.getText(), modelRow, modelColumn);
155
            }
160
            }
156
        } else {
161
        } else {
157
            JOptionPane.showMessageDialog(parent, pane, table.getColumnName(column), JOptionPane.PLAIN_MESSAGE, null);
162
            JOptionPane.showMessageDialog(parent, pane, table.getColumnName(column), JOptionPane.PLAIN_MESSAGE, null);

Return to bug 227588