package com.freedomotic.jfrontend.utils; import java.awt.Component; import java.awt.Dimension; import java.util.ArrayList; import javax.swing.JComboBox; import javax.swing.JTextField; import javax.swing.SpringLayout; /** * * @author Enrico Nicoletti */ public class PropertiesPanel_1 extends javax.swing.JPanel { private ArrayList<Component> table; private int rows; private int cols; private static final int MAX_ROWS = 100; /** * Creates new form PropertiesPanel * * @param rows * @param cols */ public PropertiesPanel_1(int rows, int cols) { initComponents(); this.setVisible(true); this.setPreferredSize(new Dimension(500, 500)); this.rows = rows; this.cols = cols; table = new ArrayList<Component>(); this.setLayout(new SpringLayout()); } /** * * @param component * @param row * @param col */ public synchronized void addElement(Component component, final int row, final int col) { if (component == null) { throw new IllegalArgumentException("Cannot add a null component"); } table.add(component); if (col == (cols - 1)) { //is the last col component.setMaximumSize(new Dimension(2000, 50)); component.setPreferredSize(new Dimension(200, 50)); } else { component.setMaximumSize(new Dimension(200, 50)); component.setPreferredSize(new Dimension(200, 50)); } add(component); } /** * */ public void layoutPanel() { //Lay out the panel. // System.out.println("row:" + rows + " cols:" + cols); SpringUtilities.makeCompactGrid(this, rows, cols, //rows, cols 5, 5, //initX, initY 5, 5); //xPad, yPad this.validate(); } /** * * @return */ public int addRow() { return rows++; } /** * * @return */ public int addColumn() { return cols++; } /** * * @return */ public int getRows() { return rows; } /** * * @return */ public int getColumns() { return cols; } /** * * @param row * @param col * @return */ public String getComponent(int row, int col) { Component comp = table.get((row * col) + col); if (comp != null) { if (comp instanceof JTextField) { JTextField jTextField = (JTextField) comp; return jTextField.getText(); } else { if (comp instanceof JComboBox) { JComboBox combo = (JComboBox) comp; return combo.getSelectedItem().toString(); } } } return null; } /** * */ @Override public void removeAll() { super.removeAll(); table.clear(); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents( ) { javax.swing.GroupLayout layout = new javax.swing.GroupLayout( this ); this.setLayout( layout ); layout.setHorizontalGroup( layout.createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING ) .addGap( 0, 400, Short.MAX_VALUE ) ); layout.setVerticalGroup( layout.createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING ) .addGap( 0, 296, Short.MAX_VALUE ) ); } // </editor-fold>//GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables // End of variables declaration//GEN-END:variables }