1 package org.sape.carbon.services.console; 2 3 import java.lang.reflect.Array ; 4 5 import javax.swing.JPanel ; 6 import javax.swing.JTable ; 7 import javax.swing.table.TableCellEditor ; 8 import javax.swing.table.TableCellRenderer ; 9 10 import org.sape.carbon.core.config.Config; 11 import org.sape.carbon.core.config.Configuration; 12 13 17 public class ConfigurationArrayDataEditorRenderer extends JPanel 18 implements TableCellEditor , TableCellRenderer { 19 20 private ObjectTreeModel.ArrayNode arrayNode; 21 22 23 public ConfigurationArrayDataEditorRenderer(ObjectTreeModel.ArrayNode arrayNode) { 24 this.arrayNode = arrayNode; 25 initComponents(); 26 } 27 28 33 private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; 35 36 jButton1 = new javax.swing.JButton (); 37 38 setLayout(new java.awt.BorderLayout ()); 39 40 setBackground(new java.awt.Color (255, 255, 255)); 41 jButton1.setFont(new java.awt.Font ("Dialog", 0, 10)); 42 jButton1.setText("add"); 43 jButton1.setMaximumSize(new java.awt.Dimension (52, 18)); 44 jButton1.setMinimumSize(new java.awt.Dimension (52, 18)); 45 jButton1.setPreferredSize(new java.awt.Dimension (52, 18)); 46 jButton1.setRequestFocusEnabled(false); 47 jButton1.addActionListener(new java.awt.event.ActionListener () { 48 public void actionPerformed(java.awt.event.ActionEvent evt) { 49 jButton1ActionPerformed(evt); 50 } 51 }); 52 53 add(jButton1, java.awt.BorderLayout.EAST); 54 55 } 57 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { Object [] objects = (Object [])this.arrayNode.getValue(); 60 61 Object newArray = 62 java.lang.reflect.Array.newInstance( 63 this.arrayNode.getValue().getClass().getComponentType(), 64 objects.length + 1); 65 66 System.arraycopy(objects,0,newArray,0,objects.length); 67 68 Class componentClass = objects.getClass().getComponentType(); 69 if (Configuration.class.isAssignableFrom(componentClass)) { 70 Configuration config = 71 Config.getInstance().createConfiguration(componentClass); 72 Array.set(newArray, objects.length, config); 73 } 74 75 this.arrayNode.setValue(newArray); 76 77 } 79 public void addCellEditorListener(javax.swing.event.CellEditorListener cellEditorListener) { 80 } 81 82 public void cancelCellEditing() { 83 } 84 85 public Object getCellEditorValue() { 86 return this.arrayNode.getArray(); 87 } 88 89 public java.awt.Component getTableCellEditorComponent(javax.swing.JTable jTable, Object obj, boolean param, int param3, int param4) { 90 System.out.println("Editing Array!: " + obj.getClass().getName()); 91 this.arrayNode = (ObjectTreeModel.ArrayNode)obj; 92 return this; 93 } 94 95 public boolean isCellEditable(java.util.EventObject eventObject) { 96 return true; 97 } 98 99 public void removeCellEditorListener(javax.swing.event.CellEditorListener cellEditorListener) { 100 } 101 102 public boolean shouldSelectCell(java.util.EventObject eventObject) { 103 return true; 104 } 105 106 public boolean stopCellEditing() { 107 return true; 108 } 109 110 public java.awt.Component getTableCellRendererComponent(JTable table, 111 Object value, boolean isSelected, boolean hasFocus, 112 int row, int column) { 113 114 this.arrayNode = (ObjectTreeModel.ArrayNode) value; 115 116 return this; 117 } 118 119 private javax.swing.JButton jButton1; 121 123 } 124 | Popular Tags |