Lines 43-48
Link Here
|
43 |
*/ |
43 |
*/ |
44 |
package org.netbeans.modules.db.dataview.output; |
44 |
package org.netbeans.modules.db.dataview.output; |
45 |
|
45 |
|
|
|
46 |
import java.awt.BorderLayout; |
46 |
import java.awt.Color; |
47 |
import java.awt.Color; |
47 |
import java.awt.Component; |
48 |
import java.awt.Component; |
48 |
import java.awt.Toolkit; |
49 |
import java.awt.Toolkit; |
Lines 56-71
Link Here
|
56 |
import java.util.Map; |
57 |
import java.util.Map; |
57 |
import java.util.logging.Level; |
58 |
import java.util.logging.Level; |
58 |
import java.util.logging.Logger; |
59 |
import java.util.logging.Logger; |
|
|
60 |
import javax.swing.JComponent; |
59 |
import javax.swing.JMenuItem; |
61 |
import javax.swing.JMenuItem; |
60 |
import javax.swing.JPopupMenu; |
62 |
import javax.swing.JPopupMenu; |
61 |
import javax.swing.JTable; |
63 |
import javax.swing.JTable; |
62 |
import javax.swing.RowFilter; |
64 |
import javax.swing.RowFilter; |
|
|
65 |
import javax.swing.border.LineBorder; |
63 |
import javax.swing.event.ListSelectionEvent; |
66 |
import javax.swing.event.ListSelectionEvent; |
64 |
import javax.swing.event.ListSelectionListener; |
67 |
import javax.swing.event.ListSelectionListener; |
65 |
import javax.swing.table.DefaultTableModel; |
68 |
import javax.swing.table.DefaultTableModel; |
66 |
import javax.swing.table.TableCellEditor; |
69 |
import javax.swing.table.TableCellEditor; |
67 |
import javax.swing.table.TableCellRenderer; |
70 |
import javax.swing.table.TableCellRenderer; |
68 |
import javax.swing.table.TableModel; |
71 |
import javax.swing.table.TableModel; |
|
|
72 |
import org.jdesktop.swingx.renderer.JRendererCheckBox; |
69 |
import org.netbeans.modules.db.dataview.meta.DBColumn; |
73 |
import org.netbeans.modules.db.dataview.meta.DBColumn; |
70 |
import org.netbeans.modules.db.dataview.meta.DBException; |
74 |
import org.netbeans.modules.db.dataview.meta.DBException; |
71 |
import org.netbeans.modules.db.dataview.meta.DBTable; |
75 |
import org.netbeans.modules.db.dataview.meta.DBTable; |
Lines 74-80
Link Here
|
74 |
import org.netbeans.modules.db.dataview.table.ResultSetTableModel; |
78 |
import org.netbeans.modules.db.dataview.table.ResultSetTableModel; |
75 |
import org.openide.DialogDisplayer; |
79 |
import org.openide.DialogDisplayer; |
76 |
import org.openide.NotifyDescriptor; |
80 |
import org.openide.NotifyDescriptor; |
77 |
import org.openide.util.Exceptions; |
|
|
78 |
import org.openide.util.Lookup; |
81 |
import org.openide.util.Lookup; |
79 |
import org.openide.util.NbBundle; |
82 |
import org.openide.util.NbBundle; |
80 |
import org.openide.util.datatransfer.ExClipboard; |
83 |
import org.openide.util.datatransfer.ExClipboard; |
Lines 150-162
Link Here
|
150 |
} |
153 |
} |
151 |
|
154 |
|
152 |
private static class UpdatedResultSetCellRenderer extends ResultSetCellRenderer { |
155 |
private static class UpdatedResultSetCellRenderer extends ResultSetCellRenderer { |
153 |
|
156 |
static int borderThickness = 1; |
154 |
static Color green = new Color(0, 128, 0); |
157 |
static Color green = new Color(0, 128, 0); |
155 |
static Color gray = new Color(245, 245, 245); |
158 |
static Color gray = new Color(245, 245, 245); |
|
|
159 |
private JComponent holder = new JComponent() {}; |
156 |
DataView dataView; |
160 |
DataView dataView; |
157 |
|
161 |
|
158 |
public UpdatedResultSetCellRenderer(DataView dView) { |
162 |
public UpdatedResultSetCellRenderer(DataView dView) { |
159 |
dataView = dView; |
163 |
dataView = dView; |
|
|
164 |
holder.setLayout(new BorderLayout()); |
160 |
} |
165 |
} |
161 |
|
166 |
|
162 |
@Override |
167 |
@Override |
Lines 166-184
Link Here
|
166 |
table.convertRowIndexToModel(row), |
171 |
table.convertRowIndexToModel(row), |
167 |
table.convertColumnIndexToModel(column)); |
172 |
table.convertColumnIndexToModel(column)); |
168 |
|
173 |
|
|
|
174 |
Color color; |
175 |
boolean override = false; |
176 |
|
169 |
if (isSelected) { |
177 |
if (isSelected) { |
170 |
if ((obj == null && value == null) || (obj != null && value != null && value.equals(obj))) { |
178 |
if ((obj == null && value == null) || (obj != null && value != null && value.equals(obj))) { |
171 |
c.setForeground(gray); |
179 |
color = gray; |
|
|
180 |
override = true; |
172 |
} else { |
181 |
} else { |
173 |
c.setForeground(Color.ORANGE); |
182 |
color = Color.ORANGE; |
|
|
183 |
override = true; |
174 |
} |
184 |
} |
175 |
} else { |
185 |
} else { |
176 |
if ((obj == null && value == null) || (obj != null && value != null && value.equals(obj))) { |
186 |
if ((obj == null && value == null) || (obj != null && value != null && value.equals(obj))) { |
177 |
c.setForeground(table.getForeground()); |
187 |
color = table.getForeground(); |
178 |
} else { |
188 |
} else { |
179 |
c.setForeground(green); |
189 |
color = green; |
|
|
190 |
override = true; |
180 |
} |
191 |
} |
181 |
} |
192 |
} |
|
|
193 |
|
194 |
if(override && c instanceof JRendererCheckBox) { |
195 |
holder.removeAll(); |
196 |
holder.setBorder(new LineBorder(color, borderThickness)); |
197 |
holder.add(c); |
198 |
return holder; |
199 |
} else { |
200 |
c.setForeground(color); |
201 |
} |
202 |
|
182 |
return c; |
203 |
return c; |
183 |
} |
204 |
} |
184 |
} |
205 |
} |