You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2015/06/15 07:54:22 UTC
svn commit: r1685500 - in
/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools: ./
pdfdebugger/colorpane/
Author: tilman
Date: Mon Jun 15 05:54:21 2015
New Revision: 1685500
URL: http://svn.apache.org/r1685500
Log:
PDFBOX-2530: show Indexed colorspace + show colorspace title, as done by Khyrul Bashar in GSoC2015
Added:
pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/CSIndexed.java (with props)
pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/IndexedColorant.java (with props)
pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/IndexedTableModel.java (with props)
Modified:
pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java
pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/CSDeviceN.java
pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/CSSeparation.java
pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/DeviceNColorant.java
pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/DeviceNTableModel.java
Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java?rev=1685500&r1=1685499&r2=1685500&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java Mon Jun 15 05:54:21 2015
@@ -22,7 +22,9 @@ import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Arrays;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JComponent;
@@ -34,6 +36,7 @@ import javax.swing.UIManager;
import javax.swing.border.BevelBorder;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
+import javax.swing.filechooser.FileFilter;
import javax.swing.tree.TreeModel;
import javax.swing.tree.TreePath;
import org.apache.pdfbox.cos.COSArray;
@@ -57,10 +60,8 @@ import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.InputStream;
import java.io.IOException;
-import java.util.HashSet;
-import java.util.Set;
-import javax.swing.filechooser.FileFilter;
import org.apache.pdfbox.tools.pdfdebugger.colorpane.CSDeviceN;
+import org.apache.pdfbox.tools.pdfdebugger.colorpane.CSIndexed;
import org.apache.pdfbox.tools.pdfdebugger.colorpane.CSSeparation;
import org.apache.pdfbox.tools.util.FileOpenSaveDialog;
import org.apache.pdfbox.tools.pdfdebugger.ui.Tree;
@@ -331,7 +332,6 @@ public class PDFDebugger extends javax.s
* For now only Separation Color space is shown.
* @param csNode the special color space containing node.
*/
- //TODO implement Indexed color spaces related features
private void showColorPane(Object csNode)
{
if (csNode instanceof MapEntry)
@@ -358,12 +358,9 @@ public class PDFDebugger extends javax.s
{
jSplitPane1.setRightComponent(new CSDeviceN(array).getPanel());
}
- else
+ else if (csName.equals(COSName.INDEXED))
{
- if (!jSplitPane1.getRightComponent().equals(jScrollPane2))
- {
- jSplitPane1.setRightComponent(jScrollPane2);
- }
+ jSplitPane1.setRightComponent(new CSIndexed(array).getPanel());
}
}
}
Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/CSDeviceN.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/CSDeviceN.java?rev=1685500&r1=1685499&r2=1685500&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/CSDeviceN.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/CSDeviceN.java Mon Jun 15 05:54:21 2015
@@ -19,7 +19,11 @@ package org.apache.pdfbox.tools.pdfdebug
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
+import java.awt.Font;
import java.util.Arrays;
+import javax.swing.BoxLayout;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import java.io.IOException;
@@ -29,7 +33,7 @@ import org.apache.pdfbox.pdmodel.graphic
/**
- *@author Khyrul Bashar.
+ *@author Khyrul Bashar.
*/
/**
@@ -38,10 +42,11 @@ import org.apache.pdfbox.pdmodel.graphic
public class CSDeviceN
{
private PDDeviceN deviceN;
- private JScrollPane panel;
+ private JPanel panel;
/**
* Constructor
+ *
* @param array COSArray instance that holds DeviceN color space
*/
public CSDeviceN(COSArray array)
@@ -60,14 +65,15 @@ public class CSDeviceN
/**
* Parses the colorant data from the array.
+ *
* @return the parsed colorants.
- * @throws IOException if the color conversion fails.
+ * @throws java.io.IOException if the color conversion fails.
*/
private DeviceNColorant[] getColorantData() throws IOException
{
int componentCount = deviceN.getNumberOfComponents();
DeviceNColorant[] colorants = new DeviceNColorant[componentCount];
- for (int i=0; i<componentCount; i++)
+ for (int i = 0; i < componentCount; i++)
{
DeviceNColorant colorant = new DeviceNColorant();
@@ -75,7 +81,7 @@ public class CSDeviceN
float[] maximum = new float[componentCount];
Arrays.fill(maximum, 0);
float[] minimum = new float[componentCount];
- Arrays.fill(minimum,1);
+ Arrays.fill(minimum, 1);
maximum[i] = 1;
minimum[i] = 0;
colorant.setMaximum(getColorObj(deviceN.toRGB(maximum)));
@@ -87,17 +93,28 @@ public class CSDeviceN
private void initUI(DeviceNColorant[] colorants)
{
+ panel = new JPanel();
+ panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
+ panel.setPreferredSize(new Dimension(300, 500));
+
+ JLabel colorSpaceLabel = new JLabel("DeviceN colorspace");
+ colorSpaceLabel.setAlignmentX((float) 0.5);
+ colorSpaceLabel.setFont(new Font(Font.MONOSPACED, Font.BOLD, 30));
+
DeviceNTableModel tableModel = new DeviceNTableModel(colorants);
JTable table = new JTable(tableModel);
table.setDefaultRenderer(Color.class, new ColorBarCellRenderer());
table.setRowHeight(60);
- panel = new JScrollPane();
- panel.setPreferredSize(new Dimension(300, 500));
- panel.setViewportView(table);
+ JScrollPane scrollPane = new JScrollPane();
+ scrollPane.setViewportView(table);
+
+ panel.add(colorSpaceLabel);
+ panel.add(scrollPane);
}
/**
* return the main panel that hold all the UI elements.
+ *
* @return JPanel instance
*/
public Component getPanel()
Added: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/CSIndexed.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/CSIndexed.java?rev=1685500&view=auto
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/CSIndexed.java (added)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/CSIndexed.java Mon Jun 15 05:54:21 2015
@@ -0,0 +1,155 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pdfbox.tools.pdfdebugger.colorpane;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.io.IOException;
+import javax.swing.Box;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+
+import org.apache.pdfbox.cos.COSArray;
+import org.apache.pdfbox.cos.COSNumber;
+import org.apache.pdfbox.pdmodel.graphics.color.PDIndexed;
+
+/**
+ * @author Khyrul Bashar.
+ */
+
+/**
+ * A class that provides the necessary UI and functionalities to show the Indexed colorspace.
+ */
+public class CSIndexed
+{
+ private PDIndexed indexed;
+ private JPanel panel;
+ private int colorCount;
+
+ /**
+ * Constructor.
+ * @param array COSArray instance for Indexed Colorspace.
+ */
+ public CSIndexed(COSArray array)
+ {
+ try
+ {
+ indexed = new PDIndexed(array);
+ colorCount = getHival(array);
+ initUI(getColorantData());
+ }
+ catch (IOException e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
+ * Parses the colorant data from the array and return.
+ *
+ * @return
+ */
+ private IndexedColorant[] getColorantData()
+ {
+ IndexedColorant[] colorants = new IndexedColorant[colorCount];
+ for (int i = 0; i < colorCount; i++)
+ {
+ IndexedColorant colorant = new IndexedColorant();
+ colorant.setIndex(i);
+
+ float[] rgbValues = indexed.toRGB(new float[]{i});
+ colorant.setRgbValues(rgbValues);
+ colorants[i] = colorant;
+ }
+ return colorants;
+ }
+
+ private void initUI(IndexedColorant[] colorants)
+ {
+ panel = new JPanel();
+ panel.setLayout(new GridBagLayout());
+ panel.setPreferredSize(new Dimension(300, 500));
+
+ JLabel colorSpaceLabel = new JLabel("Indexed colorspace");
+ colorSpaceLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
+ colorSpaceLabel.setFont(new Font(Font.MONOSPACED, Font.BOLD, 30));
+ JPanel colorspaceLabelPanel = new JPanel();
+ colorspaceLabelPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
+ colorspaceLabelPanel.add(colorSpaceLabel);
+
+ JLabel colorCountLabel = new JLabel(" Total Color Count: " + colorCount);
+ colorCountLabel.setAlignmentX(Component.LEFT_ALIGNMENT);
+ colorCountLabel.setFont(new Font(Font.MONOSPACED, Font.BOLD, 20));
+
+ IndexedTableModel tableModel = new IndexedTableModel(colorants);
+ JTable table = new JTable(tableModel);
+ table.setDefaultRenderer(Color.class, new ColorBarCellRenderer());
+ table.setRowHeight(40);
+ table.getColumnModel().getColumn(0).setMinWidth(30);
+ table.getColumnModel().getColumn(0).setMaxWidth(50);
+ table.getColumnModel().getColumn(1).setMinWidth(100);
+ table.getColumnModel().getColumn(1).setMaxWidth(100);
+
+ JScrollPane scrollPane = new JScrollPane();
+ scrollPane.setViewportView(table);
+ scrollPane.setAlignmentX(Component.LEFT_ALIGNMENT);
+
+ Box box = Box.createVerticalBox();
+ box.add(colorCountLabel);
+ box.add(scrollPane);
+ box.setAlignmentX(Component.LEFT_ALIGNMENT);
+
+ GridBagConstraints gbc = new GridBagConstraints();
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ gbc.weighty = 0.05;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ gbc.anchor = GridBagConstraints.PAGE_START;
+
+ panel.add(colorspaceLabelPanel, gbc);
+
+ gbc.gridy = 2;
+ gbc.weighty=0.9;
+ gbc.weightx = 1;
+ gbc.fill = GridBagConstraints.BOTH;
+ gbc.anchor = GridBagConstraints.BELOW_BASELINE;
+
+ panel.add(box, gbc);
+ }
+
+ /**
+ * return the main panel that hold all the UI elements.
+ *
+ * @return JPanel instance
+ */
+ public Component getPanel()
+ {
+ return panel;
+ }
+
+ private int getHival(COSArray array)
+ {
+ int hival = ((COSNumber) array.getObject(2).getCOSObject()).intValue();
+ return Math.min(hival, 255);
+ }
+}
Propchange: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/CSIndexed.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/CSSeparation.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/CSSeparation.java?rev=1685500&r1=1685499&r2=1685500&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/CSSeparation.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/CSSeparation.java Mon Jun 15 05:54:21 2015
@@ -27,6 +27,7 @@ import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.Dictionary;
import java.util.Hashtable;
+import javax.swing.BoxLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
@@ -148,7 +149,7 @@ public class CSSeparation implements Cha
contentPanel.add(colorBar, gbc2);
setColorBarBorder();
- panel = new JPanel(new GridBagLayout());
+ JPanel mainpanel = new JPanel(new GridBagLayout());
JLabel colorantNameLabel = new JLabel("Colorant: " + separation.getColorantName());
colorantNameLabel.setFont(boldFont);
@@ -159,15 +160,25 @@ public class CSSeparation implements Cha
maingbc.weightx = 1;
maingbc.weighty = 0.03;
maingbc.anchor = GridBagConstraints.FIRST_LINE_START;
- panel.add(colorantNameLabel, maingbc);
+ mainpanel.add(colorantNameLabel, maingbc);
maingbc.gridx = 0;
maingbc.gridy = 1;
maingbc.weighty = 0.97;
maingbc.gridwidth = 10;
maingbc.fill = GridBagConstraints.HORIZONTAL;
- panel.add(contentPanel, maingbc);
+ mainpanel.add(contentPanel, maingbc);
+ panel = new JPanel();
+ panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
+ panel.setPreferredSize(new Dimension(300, 500));
+
+ JLabel colorSpaceLabel = new JLabel("Separation colorspace");
+ colorSpaceLabel.setAlignmentX((float) 0.5);
+ colorSpaceLabel.setFont(new Font(Font.MONOSPACED, Font.BOLD, 30));
+
+ panel.add(colorSpaceLabel);
+ panel.add(mainpanel);
}
private void initValues()
Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/DeviceNColorant.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/DeviceNColorant.java?rev=1685500&r1=1685499&r2=1685500&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/DeviceNColorant.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/DeviceNColorant.java Mon Jun 15 05:54:21 2015
@@ -34,19 +34,6 @@ public class DeviceNColorant
{
}
- /**
- * Constructor
- * @param colorantName String instance
- * @param maxi maximum color
- * @param mini minimum color
- */
- public DeviceNColorant(String colorantName, Color maxi, Color mini)
- {
- name = colorantName;
- maximum = maxi;
- minimum = mini;
- }
-
public String getName()
{
return name;
Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/DeviceNTableModel.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/DeviceNTableModel.java?rev=1685500&r1=1685499&r2=1685500&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/DeviceNTableModel.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/DeviceNTableModel.java Mon Jun 15 05:54:21 2015
@@ -28,12 +28,12 @@ import javax.swing.table.AbstractTableMo
*/
public class DeviceNTableModel extends AbstractTableModel
{
- private final String[] columnNames = new String[]{"Colorant", "Maximum", "Minimum"};
+ private static final String[] COLUMNNAMES = new String[] { "Colorant", "Maximum", "Minimum"};
private final DeviceNColorant[] data;
/**
* Constructor
- * @param colorants
+ * @param colorants array of DeviceNColorant
*/
public DeviceNTableModel(DeviceNColorant[] colorants)
{
@@ -49,7 +49,7 @@ public class DeviceNTableModel extends A
@Override
public int getColumnCount()
{
- return columnNames.length;
+ return COLUMNNAMES.length;
}
@Override
@@ -71,7 +71,7 @@ public class DeviceNTableModel extends A
@Override
public String getColumnName(int column)
{
- return columnNames[column];
+ return COLUMNNAMES[column];
}
@Override
@@ -88,4 +88,4 @@ public class DeviceNTableModel extends A
return null;
}
}
-}
\ No newline at end of file
+}
Added: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/IndexedColorant.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/IndexedColorant.java?rev=1685500&view=auto
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/IndexedColorant.java (added)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/IndexedColorant.java Mon Jun 15 05:54:21 2015
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pdfbox.tools.pdfdebugger.colorpane;
+
+import java.awt.Color;
+
+/**
+ * @author Khyrul Bashar.
+ */
+
+/**
+ * Class to represent Colorant in Indexed color.
+ */
+public class IndexedColorant
+{
+ private int index;
+ private float[] rgbValues;
+
+ /**
+ * Constructor.
+ */
+ public IndexedColorant(){}
+
+ public int getIndex()
+ {
+ return index;
+ }
+
+ public void setIndex(int index)
+ {
+ this.index = index;
+ }
+
+ public void setRgbValues(float[] rgbValues)
+ {
+ this.rgbValues = rgbValues;
+ }
+
+ public Color getColor()
+ {
+ return new Color(rgbValues[0], rgbValues[1], rgbValues[2]);
+ }
+
+ public String getRGBValuesString()
+ {
+ StringBuilder builder = new StringBuilder();
+ for (float i: rgbValues)
+ {
+ builder.append((int)(i*255));
+ builder.append(", ");
+ }
+ builder.deleteCharAt(builder.lastIndexOf(","));
+ return builder.toString();
+ }
+}
Propchange: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/IndexedColorant.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/IndexedTableModel.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/IndexedTableModel.java?rev=1685500&view=auto
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/IndexedTableModel.java (added)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/IndexedTableModel.java Mon Jun 15 05:54:21 2015
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pdfbox.tools.pdfdebugger.colorpane;
+
+import java.awt.Color;
+import javax.swing.table.AbstractTableModel;
+
+/**
+ * @author Khyrul Bashar.
+ */
+
+/**
+ * This the table model for showing Indexed color space which extends AbstractTableModel.
+ */
+public class IndexedTableModel extends AbstractTableModel
+{
+
+ private static final String[] COLUMNSNAMES = new String[] {"Index", "RGB value", "Color"};
+ private final IndexedColorant[] data;
+
+ /**
+ * Constructor
+ * @param colorants array of IndexedColorant
+ */
+ public IndexedTableModel(IndexedColorant[] colorants)
+ {
+ data = colorants;
+ }
+
+ @Override
+ public int getRowCount()
+ {
+ return data.length;
+ }
+
+ @Override
+ public int getColumnCount()
+ {
+ return COLUMNSNAMES.length;
+ }
+
+ @Override
+ public Object getValueAt(int row, int column)
+ {
+ switch (column)
+ {
+ case 0:
+ return data[row].getIndex();
+ case 1:
+ return data[row].getRGBValuesString();
+ case 2:
+ return data[row].getColor();
+ default:
+ return null;
+ }
+ }
+
+ @Override
+ public String getColumnName(int column)
+ {
+ return COLUMNSNAMES[column];
+ }
+
+ @Override
+ public Class<?> getColumnClass(int columnIndex)
+ {
+ switch (columnIndex)
+ {
+ case 0:
+ return Integer.class;
+ case 1:
+ return String.class;
+ case 2:
+ return Color.class;
+ default:
+ return null;
+ }
+ }
+}
Propchange: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/colorpane/IndexedTableModel.java
------------------------------------------------------------------------------
svn:eol-style = native