public String getClipboardData() { int size = m_mTab.getFieldCount(); int currentRow = m_mTab.getCurrentRow(); StringBuffer header = new StringBuffer(); StringBuffer body = new StringBuffer(); StringBuffer data = new StringBuffer(); boolean justCreatedHeader = false; MField mField; String value; for (int row = 0; row < m_mTab.getRowCount(); row++) { for (int i = 0; i < size; i++) { mField = m_mTab.getField(i); if (mField.isDisplayed()) { if (!justCreatedHeader) { header.append(mField.getHeader()).append("\t"); } fieldEditors.get(mField).setValue(m_mTab.getValue(row, mField.getColumnName())); value = fieldEditors.get(mField).getValue() != null ? fieldEditors.get(mField).getDisplay() : ""; body.append(value).append("\t"); } } justCreatedHeader = true; body.append("\n"); } // Restaurar datos de la fila actual for (int i = 0; i < size; i++) { mField = m_mTab.getField(i); if (mField.isDisplayed()) { fieldEditors.get(mField).setValue(m_mTab.getValue(currentRow, mField.getColumnName())); } } data.append(header).append("\n").append(body); return data.toString(); }
/** * Descripción de Método * * @param aPanel * @param mTab * @param table * @return */ private int setupVTable(APanel aPanel, MTab mTab, VTable table) { if (!mTab.isDisplayed()) { return 0; } int size = mTab.getFieldCount(); for (int i = 0; i < size; i++) { TableColumn tc = getTableColumn(table, i); MField mField = mTab.getField(i); // if (mField.getColumnName().equals(tc.getIdentifier().toString())) { if (mField.getDisplayType() == DisplayType.RowID) { tc.setCellRenderer(new VRowIDRenderer(false)); tc.setCellEditor(new VRowIDEditor(false)); tc.setHeaderValue(""); tc.setMaxWidth(2); } else { // need to set CellEditor explicitly as default editor based on class causes problem // (YesNo-> Boolean) if (mField.isDisplayed() && mField.isDisplayedInGrid()) { tc.setCellRenderer(new VCellRenderer(mField)); VCellEditor ce = new VCellEditor(mField, this); tc.setCellEditor(ce); // tc.setHeaderValue(mField.getHeader()); // tc.setPreferredWidth( Math.min( mField.getDisplayLength(),30 )); original, Modificado // por ConSerTi tc.setPreferredWidth(mField.getDisplayLength()); tc.setMinWidth(1); tc.setHeaderRenderer(new VHeaderRenderer(mField.getDisplayType())); // Enable Button actions in grid if (mField.getDisplayType() == DisplayType.Button) { VEditor button = ce.getEditor(); if ((button != null) && (aPanel != null)) { ((JButton) button).addActionListener(aPanel); } } } else // column not displayed { tc.setHeaderValue(null); tc.setMinWidth(0); tc.setMaxWidth(0); tc.setPreferredWidth(0); } } // System.out.println ("TableColumnID " + tc.getIdentifier () // + " Renderer=" + tc.getCellRenderer () // + mField.getHeader ()); // Modificado Por ConSerTi, para permitir campos de longuitud menor de 30 tc.setMinWidth(10); } // found field else { log.log( Level.SEVERE, "TableColumn " + tc.getIdentifier() + " <> MField " + mField.getColumnName() + mField.getHeader()); } } // for all fields table.createSortRenderers(); return size; } // setupVTable