final JTableHeader th;
final TableCellRenderer tcr;
final JScrollPane scroll;
final JTextArea lbTextArea;
final Box b;
final AbstractButton ggPlus, ggMinus;
tab = new JPanel();
lay = new BorderLayout();
tab.setLayout( lay );
lbTextArea = new JTextArea( getResourceString( KEY_INFOTEXT[ id ]));
lbTextArea.setEditable( false );
lbTextArea.setBackground( null );
lbTextArea.setColumns( 32 );
lbTextArea.setLineWrap( true );
lbTextArea.setWrapStyleWord( true );
tab.add( lbTextArea, BorderLayout.NORTH );
lbTextArea.setBorder( BorderFactory.createEmptyBorder( 8, 2, 8, 2 ));
tm = new TableModel( id );
stm = new SortedTableModel( tm );
table = new JTable( stm );
th = table.getTableHeader();
stm.setTableHeader( th );
th.setReorderingAllowed( false );
th.setResizingAllowed( true );
table.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );
table.setCellSelectionEnabled( true );
table.setColumnSelectionAllowed( false );
table.setDragEnabled( true );
table.setShowGrid( true );
table.setGridColor( Color.lightGray );
table.setSelectionMode( ListSelectionModel.SINGLE_INTERVAL_SELECTION );
table.setTransferHandler( new MapTransferHandler( id ));
stm.setSortedColumn( 0, SortedTableModel.ASCENDING );
tcr = new MappingRenderer();
setColumnRenderersAndWidths( table, stm, tcr );
scroll = new JScrollPane( table, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS );
tab.add( scroll, BorderLayout.CENTER );
b = Box.createHorizontalBox();
ggPlus = new ModificationButton( ModificationButton.SHAPE_PLUS );
ggMinus = new ModificationButton( ModificationButton.SHAPE_MINUS );
ggMinus.setEnabled( false );
ggPlus.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e )
{
// int row = table.getSelectedRow() + table.getSelectedRowCount();
// if( row <= 0 ) row = collConfigs[ ID ].size();
final int modelIndex = collConfigs[ id ].size();