try { final ColorPaletteDef colorPaletteDef = ColorPaletteDef.loadColorPaletteDef(file); colorPaletteDef.getFirstPoint().setLabel(file.getName()); applyColorPaletteDef(colorPaletteDef, getProductSceneView().getRaster(), targetImageInfo); setImageInfoCopy(targetImageInfo);
private static void transferPoints(ColorPaletteDef sourceCPD, double minSample, double maxSample, boolean autoDistribute, ColorPaletteDef targetCPD) { if (autoDistribute || sourceCPD.isAutoDistribute()) { alignNumPoints(sourceCPD, targetCPD); double minDisplaySample = sourceCPD.getMinDisplaySample(); double maxDisplaySample = sourceCPD.getMaxDisplaySample(); double delta1 = (maxSample > minSample) ? maxSample - minSample : 1.0; double delta2 = (maxDisplaySample > minDisplaySample) ? maxDisplaySample - minDisplaySample : 1.0; double b = delta1 / delta2; double a = minSample - minDisplaySample * b; for (int i = 0; i < sourceCPD.getNumPoints(); i++) { targetCPD.getPointAt(i).setSample(a + b * sourceCPD.getPointAt(i).getSample()); targetCPD.getPointAt(i).setColor(sourceCPD.getPointAt(i).getColor()); targetCPD.getPointAt(i).setLabel(sourceCPD.getPointAt(i).getLabel()); } } else { targetCPD.setPoints(sourceCPD.getPoints().clone()); } }
@Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { if (getImageInfo() == null) { return; } final ColorPaletteDef.Point point = getImageInfo().getColorPaletteDef().getPointAt(rowIndex); if (columnIndex == 0) { point.setLabel((String) aValue); fireTableCellUpdated(rowIndex, columnIndex); parentForm.applyChanges(); } else if (columnIndex == 1) { final Color color = (Color) aValue; point.setColor(color == null ? ImageInfo.NO_COLOR : color); fireTableCellUpdated(rowIndex, columnIndex); parentForm.applyChanges(); } }
public ColorPaletteDef getSelectedColorPaletteDefinition() { final int selectedIndex = getSelectedIndex(); final ComboBoxModel<ColorPaletteWrapper> model = getModel(); final ColorPaletteWrapper colorPaletteWrapper = model.getElementAt(selectedIndex); final ColorPaletteDef cpd = colorPaletteWrapper.cpd; cpd.getFirstPoint().setLabel(colorPaletteWrapper.name); return cpd; }