@Override public int getColumnCount() { int count = getStandardColumnNames().length; if (selectedBands != null) { count += selectedBands.length; } if (selectedGrids != null) { count += selectedGrids.length; } return count; }
@Override public Class getColumnClass(int columnIndex) { if (columnIndex >= 0 && columnIndex < getStandardColumnNames().length - 1) { return Double.class; } return Object.class; }
@Override public String getColumnName(int columnIndex) { if (columnIndex < getStandardColumnNames().length) { return getStandardColumnNames()[columnIndex]; } int newIndex = columnIndex - getStandardColumnNames().length; if (newIndex < getNumSelectedBands()) { return selectedBands[newIndex].getName(); } newIndex -= getNumSelectedBands(); if (selectedGrids != null && newIndex < selectedGrids.length) { return selectedGrids[newIndex].getName(); } return "?"; }
public int getColumnIndex(String columnName) { String[] standardColumnNames = getStandardColumnNames(); int index = Arrays.binarySearch(standardColumnNames, columnName); if(index < 0) { int elementIndex = ArrayUtils.getElementIndex(columnName, getAdditionalColumnNames()); if (elementIndex >= 0) { index = standardColumnNames.length + elementIndex; } } return index; }
@Override public Object getValueAt(int rowIndex, int columnIndex) { if (columnIndex < getStandardColumnNames().length) { return getStandardColumnValueAt(rowIndex, columnIndex); } return getAdditionalValue(rowIndex, columnIndex); }
public String[] getAdditionalColumnNames() { String[] standardColumnNames = getStandardColumnNames(); int columnCount = getColumnCount(); final int columnCountMin = standardColumnNames.length; String[] additionalColumnNames = new String[columnCount - columnCountMin]; for (int i = 0; i < additionalColumnNames.length; i++) { additionalColumnNames[i] = getColumnName(columnCountMin + i); } return additionalColumnNames; }
@Override public void setValueAt(Object value, int rowIndex, int columnIndex) { if (value == null) { return; } if (columnIndex < getStandardColumnNames().length) { Placemark placemark = placemarkList.get(rowIndex); if (columnIndex == 0) { setPixelPosX(value, placemark); } else if (columnIndex == 1) { setPixelPosY(value, placemark); } else if (columnIndex == 2) { this.setGeoPosLon(value, placemark); } else if (columnIndex == 3) { setGeoPosLat(value, placemark); } else if (columnIndex == getStandardColumnNames().length - 1) { String strValue = value.toString(); placemark.setLabel(strValue); } else { throw new IllegalStateException( "Column[" + columnIndex + "] '" + getColumnName(columnIndex) + "' is not editable"); } } }
private void writePlacemarkDataTableText(final Writer writer) { String[] additionalColumnNames = placemarkTableModel.getAdditionalColumnNames(); String[] standardColumnNames = placemarkTableModel.getStandardColumnNames(); int columnCount = placemarkTableModel.getColumnCount(); List<Placemark> placemarkList = new ArrayList<>(); List<Object[]> valueList = new ArrayList<>(); for (int sortedRow = 0; sortedRow < placemarkTable.getRowCount(); ++sortedRow) { ListSelectionModel selectionModel = placemarkTable.getSelectionModel(); if (selectionModel.isSelectionEmpty() || selectionModel.isSelectedIndex(sortedRow)) { final int modelRow = placemarkTable.convertRowIndexToModel(sortedRow); placemarkList.add(placemarkTableModel.getPlacemarkAt(modelRow)); Object[] values = new Object[columnCount]; for (int col = 0; col < columnCount; col++) { values[col] = placemarkTableModel.getValueAt(modelRow, col); } valueList.add(values); } } PlacemarkIO.writePlacemarksWithAdditionalData(writer, placemarkDescriptor.getRoleLabel(), product.getName(), placemarkList, valueList, standardColumnNames, additionalColumnNames); }
private Object getAdditionalValue(int rowIndex, int columnIndex) { final Placemark placemark = placemarkList.get(rowIndex); int index = columnIndex - getStandardColumnNames().length; final Object defaultGeometry = placemark.getFeature().getDefaultGeometry(); if (!(defaultGeometry instanceof Point)) {