From: <cpm...@us...> - 2010-03-27 22:39:06
|
Revision: 11547 http://pcgen.svn.sourceforge.net/pcgen/?rev=11547&view=rev Author: cpmeister Date: 2010-03-27 22:39:00 +0000 (Sat, 27 Mar 2010) Log Message: ----------- SummaryInfoTab update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterLevelMock.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java sandbox/cdomui/code/src/java/pcgen/gui2/util/JTableEx.java sandbox/cdomui/code/src/java/pcgen/gui2/util/table/TableCellUtilities.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterLevelMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterLevelMock.java 2010-03-27 20:05:12 UTC (rev 11546) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterLevelMock.java 2010-03-27 22:39:00 UTC (rev 11547) @@ -167,17 +167,17 @@ public int getHPGained() { - throw new UnsupportedOperationException("Not supported yet."); + return 0; } public int getHPRolled() { - throw new UnsupportedOperationException("Not supported yet."); + return 0; } public void setHPRolled(int hp) { - throw new UnsupportedOperationException("Not supported yet."); + return; } } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-27 20:05:12 UTC (rev 11546) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-27 22:39:00 UTC (rev 11547) @@ -21,7 +21,6 @@ package pcgen.gui2.tabs; import java.awt.Font; -import java.awt.Graphics; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; @@ -51,6 +50,12 @@ import javax.swing.event.ListDataEvent; import javax.swing.event.ListDataListener; import javax.swing.table.AbstractTableModel; +import javax.swing.table.DefaultTableColumnModel; +import javax.swing.table.JTableHeader; +import javax.swing.table.TableCellRenderer; +import javax.swing.table.TableColumn; +import javax.swing.table.TableColumnModel; +import javax.swing.table.TableModel; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.math.NumberUtils; import pcgen.core.facade.AlignmentFacade; @@ -172,6 +177,7 @@ setPanelTitle(classPanel, "Class & Level"); initRightPanel(rightPanel); gbc.weightx = 1; + gbc.weighty = 1; add(rightPanel, gbc); } @@ -198,11 +204,10 @@ JLabel raceLabel = createLabel("Race:"); JLabel ageLabel = createLabel("Age:"); JLabel classLabel = createLabel("Class:"); - JLabel addLabel = createLabel("Add Levels:"); - JLabel removeLabel = createLabel("Remove Levels"); JLabel expLabel = createLabel("Current EXP:"); JLabel nextlevelLabel = createLabel("Next Level:"); JLabel expmodLabel = createLabel("Add or Subtract From Current EXP:"); + initLevelPanel(levelPanel); /* * initialize constrant variables */ @@ -418,7 +423,9 @@ gbc2.weightx = 0; gbc2.fill = GridBagConstraints.BOTH; - + JScrollPane pane = new JScrollPane(); + initLevelScrollPane(pane); + panel.add(pane, gbc2); } private void initLevelScrollPane(JScrollPane pane) @@ -435,6 +442,24 @@ SpringLayout layout = new SpringLayout(); layeredPane.setLayout(layout); + + JTableHeader tableHeader = classLevelTable.getTableHeader(); + { + TableColumnModel columnModel = new DefaultTableColumnModel(); + columnModel.setColumnSelectionAllowed(false); + TableCellRenderer headerRenderer = tableHeader.getDefaultRenderer(); + columnModel.addColumn(createTableColumn(0, "Level", headerRenderer, false)); + columnModel.addColumn(createTableColumn(1, "HP", headerRenderer, false)); + columnModel.addColumn(createTableColumn(2, "Class (All Levels In Class)", + headerRenderer, true)); + classLevelTable.setColumnModel(columnModel); + classLevelTable.setAutoCreateColumnsFromModel(false); + classLevelTable.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN); + classLevelTable.setCellSelectionEnabled(false); + tableHeader.setResizingAllowed(false); + tableHeader.setReorderingAllowed(false); + } + layout.putConstraint(SpringLayout.NORTH, layeredPane, 0, SpringLayout.NORTH, classLevelTable); @@ -450,7 +475,7 @@ int rowheight = classLevelTable.getRowHeight(); layout.putConstraint(SpringLayout.NORTH, addClassButton, - rowheight, + -rowheight, SpringLayout.SOUTH, classLevelTable); layout.putConstraint(SpringLayout.SOUTH, addClassButton, 0, @@ -463,14 +488,14 @@ 0, SpringLayout.EAST, classLevelTable); layout.putConstraint(SpringLayout.NORTH, removeClassButton, - rowheight, + -rowheight, SpringLayout.NORTH, addClassButton); layout.putConstraint(SpringLayout.SOUTH, removeClassButton, 0, SpringLayout.NORTH, addClassButton); layout.putConstraint(SpringLayout.NORTH, addLevelLabel, - rowheight, + -rowheight, SpringLayout.SOUTH, classLevelTable); layout.putConstraint(SpringLayout.SOUTH, addLevelLabel, 0, @@ -479,10 +504,24 @@ 0, SpringLayout.WEST, addClassButton); - pane.setColumnHeaderView(classLevelTable.getTableHeader()); + pane.setColumnHeaderView(tableHeader); pane.setViewportView(layeredPane); } + private static TableColumn createTableColumn(int index, String headerValue, + TableCellRenderer headerRenderer, boolean resizable) + { + TableColumn column = new TableColumn(index); + column.setHeaderValue(headerValue); + if (!resizable) + { + column.setHeaderRenderer(headerRenderer); + column.sizeWidthToFit(); + column.setResizable(resizable); + } + return column; + } + private static JButton createSignButton(Sign sign) { JButton button = new JButton(); @@ -503,8 +542,7 @@ basicsPanel.removeAll(); GridBagConstraints gbc = new GridBagConstraints(); { - JLabel label = new JLabel("Name:"); - label.setFont(labelFont); + JLabel label = createLabel("Name:"); gbc.anchor = java.awt.GridBagConstraints.WEST; basicsPanel.add(label, gbc); @@ -660,6 +698,7 @@ stateTable.put(Models.HandsComboBoxModel, handsModel); stateTable.put(Models.AlignmentComboBoxModel, alignmentModel); stateTable.put(Models.DeityComboBoxModel, deityModel); + stateTable.put(Models.LevelTableModel, new ClassLevelTableModel(character)); return stateTable; } @@ -672,7 +711,8 @@ GenderComboBoxModel, HandsComboBoxModel, AlignmentComboBoxModel, - DeityComboBoxModel + DeityComboBoxModel, + LevelTableModel } public void storeState(Hashtable<Object, Object> state) @@ -691,7 +731,7 @@ handsComboBox.setModel((ComboBoxModel) state.get(Models.HandsComboBoxModel)); alignmentComboBox.setModel((ComboBoxModel) state.get(Models.AlignmentComboBoxModel)); deityComboBox.setModel((ComboBoxModel) state.get(Models.DeityComboBoxModel)); - + classLevelTable.setModel((TableModel) state.get(Models.LevelTableModel)); resetBasicsPanel(); } @@ -795,23 +835,6 @@ } - private class ClassLevelTablePanel extends JPanel - { - - public ClassLevelTablePanel() - { - setLayout(null); - - } - - @Override - protected void paintChildren(Graphics g) - { - super.paintChildren(g); - } - - } - private class ClassLevelTableModel extends AbstractTableModel implements ListDataListener { @@ -823,6 +846,7 @@ { this.character = character; this.levels = character.getLevels(); + this.finalLevelMap = new HashMap<ClassFacade, Integer>(); resetLevelMap(); levels.addListDataListener(this); } @@ -850,6 +874,19 @@ return 3; } + @Override + public Class<?> getColumnClass(int columnIndex) + { + switch (columnIndex) + { + case 0: + case 1: + return Integer.class; + default: + return Object.class; + } + } + public Object getValueAt(int rowIndex, int columnIndex) { if (rowIndex == levels.getSize()) Modified: sandbox/cdomui/code/src/java/pcgen/gui2/util/JTableEx.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/util/JTableEx.java 2010-03-27 20:05:12 UTC (rev 11546) +++ sandbox/cdomui/code/src/java/pcgen/gui2/util/JTableEx.java 2010-03-27 22:39:00 UTC (rev 11547) @@ -23,7 +23,6 @@ import javax.swing.JTable; import javax.swing.ListSelectionModel; import javax.swing.SwingConstants; -import java.awt.Component; import java.awt.Container; import java.math.BigDecimal; import java.util.Collections; @@ -31,12 +30,12 @@ import java.util.List; import java.util.Vector; import javax.swing.JViewport; -import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableColumnModel; import javax.swing.table.TableColumnModel; import javax.swing.table.TableModel; import pcgen.gui2.util.table.DefaultSortableTableModel; import pcgen.gui2.util.table.SortableTableModel; +import pcgen.gui2.util.table.TableCellUtilities; import pcgen.util.Comparators; /** @@ -48,253 +47,206 @@ public class JTableEx extends JTable { - private static final long serialVersionUID = 514835142307946415L; - private final RowComparator rowComparator = new RowComparator(); - private List<SortingPriority> columnkeys; + private static final long serialVersionUID = 514835142307946415L; + private final RowComparator rowComparator = new RowComparator(); + private List<SortingPriority> columnkeys; - /** - * Constructor - */ - public JTableEx() - { - this(null, null, null); - } + /** + * Constructor + */ + public JTableEx() + { + this(null, null, null); + } - /** - * Constructor - * @param tm - */ - public JTableEx(SortableTableModel tm) - { - this(tm, null, null); - } + /** + * Constructor + * @param tm + */ + public JTableEx(SortableTableModel tm) + { + this(tm, null, null); + } - /** - * Constructor - * @param tm - * @param tcm - */ - public JTableEx(SortableTableModel tm, TableColumnModel tcm) - { - this(tm, tcm, null); - } + /** + * Constructor + * @param tm + * @param tcm + */ + public JTableEx(SortableTableModel tm, TableColumnModel tcm) + { + this(tm, tcm, null); + } - public JTableEx(SortableTableModel tm, TableColumnModel tcm, - ListSelectionModel lsm) - { - super(tm, tcm, lsm); + public JTableEx(SortableTableModel tm, TableColumnModel tcm, + ListSelectionModel lsm) + { + super(tm, tcm, lsm); - setDefaultRenderer(BigDecimal.class, new AlignCellRenderer( - SwingConstants.RIGHT)); - setDefaultRenderer(Float.class, new AlignCellRenderer( - SwingConstants.RIGHT)); - setDefaultRenderer(Integer.class, new AlignCellRenderer( - SwingConstants.RIGHT)); - setSortingPriority(createDefaultSortingPriority()); - setTableHeader(new JTableSortingHeader(this)); - } + setDefaultRenderer(BigDecimal.class, new TableCellUtilities.AlignRenderer(SwingConstants.RIGHT)); + setDefaultRenderer(Float.class, new TableCellUtilities.AlignRenderer(SwingConstants.RIGHT)); + setDefaultRenderer(Integer.class, new TableCellUtilities.AlignRenderer(SwingConstants.RIGHT)); + setSortingPriority(createDefaultSortingPriority()); + setTableHeader(new JTableSortingHeader(this)); + } - protected List<? extends SortingPriority> createDefaultSortingPriority() - { - return Collections.emptyList(); - } + protected List<? extends SortingPriority> createDefaultSortingPriority() + { + return Collections.emptyList(); + } - @Override - public boolean getScrollableTracksViewportHeight() - { - // fetch the table's parent - Container viewport = getParent(); + @Override + public boolean getScrollableTracksViewportHeight() + { + // fetch the table's parent + Container viewport = getParent(); - // if the parent is not a viewport, calling this isn't useful - if (!(viewport instanceof JViewport)) - { - return false; - } + // if the parent is not a viewport, calling this isn't useful + if (!(viewport instanceof JViewport)) + { + return false; + } - // return true if the table's preferred height is smaller - // than the viewport height, else false - return getPreferredSize().height < viewport.getHeight(); - } + // return true if the table's preferred height is smaller + // than the viewport height, else false + return getPreferredSize().height < viewport.getHeight(); + } - @Override - public void setModel(TableModel model) - { - if (!(model instanceof SortableTableModel)) - { - model = new DefaultSortableTableModel(model); - } - super.setModel(model); - } + @Override + public void setModel(TableModel model) + { + if (!(model instanceof SortableTableModel)) + { + model = new DefaultSortableTableModel(model); + } + super.setModel(model); + } - @Override - public SortableTableModel getModel() - { - return (SortableTableModel) super.getModel(); - } + @Override + public SortableTableModel getModel() + { + return (SortableTableModel) super.getModel(); + } - /** - * set horizontal alignment of column - * and attach a new cell renderer - * @param col - * @param alignment - **/ - public void setColAlign(int col, int alignment) - { - getColumnModel().getColumn(col).setCellRenderer( - new AlignCellRenderer(alignment)); - } + /** + * set horizontal alignment of column + * and attach a new cell renderer + * @param col + * @param alignment + **/ + public void setColAlign(int col, int alignment) + { + getColumnModel().getColumn(col).setCellRenderer( + new TableCellUtilities.AlignRenderer(alignment)); + } - public void toggleSort(int column) - { - Vector<SortingPriority> list = new Vector<SortingPriority>(getSortingPriority()); - int index; - for (index = list.size() - 1; index >= 0; index--) - { - if (list.get(index).getColumn() == column) - { - break; - } - } - switch (index) - { - case 0: - if (list.get(0).getMode() == SortMode.ASCENDING) - { - list.set(0, new SortingPriority(column, SortMode.DESCENDING)); - break; - } - default: - list.remove(index); - case -1: - list.add(0, new SortingPriority(column, SortMode.ASCENDING)); - } - if (list.size() > 2) - { - list.setSize(2); - } - setSortingPriority(list); - } + public void toggleSort(int column) + { + Vector<SortingPriority> list = new Vector<SortingPriority>(getSortingPriority()); + int index; + for (index = list.size() - 1; index >= 0; index--) + { + if (list.get(index).getColumn() == column) + { + break; + } + } + switch (index) + { + case 0: + if (list.get(0).getMode() == SortMode.ASCENDING) + { + list.set(0, new SortingPriority(column, SortMode.DESCENDING)); + break; + } + default: + list.remove(index); + case -1: + list.add(0, new SortingPriority(column, SortMode.ASCENDING)); + } + if (list.size() > 2) + { + list.setSize(2); + } + setSortingPriority(list); + } - public void setSortingPriority(List<? extends SortingPriority> keys) - { - this.columnkeys = Collections.unmodifiableList(keys); - sortModel(); - } + public void setSortingPriority(List<? extends SortingPriority> keys) + { + this.columnkeys = Collections.unmodifiableList(keys); + sortModel(); + } - public void sortModel() - { - TableColumnModel old = getColumnModel(); - setColumnModel(new DefaultTableColumnModel()); - getModel().sortModel(rowComparator); - setColumnModel(old); - } + public void sortModel() + { + TableColumnModel old = getColumnModel(); + setColumnModel(new DefaultTableColumnModel()); + getModel().sortModel(rowComparator); + setColumnModel(old); + } - public List<? extends SortingPriority> getSortingPriority() - { - return columnkeys; - } + public List<? extends SortingPriority> getSortingPriority() + { + return columnkeys; + } - private final class RowComparator implements Comparator<List<?>> - { + private final class RowComparator implements Comparator<List<?>> + { - @SuppressWarnings("unchecked") - public int compare(List<?> o1, - List<?> o2) - { - SortableModel model = getModel(); - for (SortingPriority priority : columnkeys) - { - if (priority.getMode() == SortMode.UNORDERED) - { - continue; - } - int column = priority.getColumn(); - Comparator comparator = Comparators.getComparatorFor(model.getColumnClass(column)); - Object obj1 = null; - Object obj2 = null; - if (o1.size() > column) - { - obj1 = o1.get(column); - } - if (o2.size() > column) - { - obj2 = o2.get(column); - } - int ret; - if (obj1 == null || obj2 == null) - { - if (obj1 == obj2) - { - ret = 0; - } - else if (obj1 == null) - { - ret = -1; - } - else - { - ret = 1; - } - } - else - { - ret = comparator.compare(obj1, obj2); - } - if (priority.getMode() == SortMode.DESCENDING) - { - ret *= -1; - } - if (ret != 0) - { - return ret; - } - } - return 0; - } + @SuppressWarnings("unchecked") + public int compare(List<?> o1, + List<?> o2) + { + SortableModel model = getModel(); + for (SortingPriority priority : columnkeys) + { + if (priority.getMode() == SortMode.UNORDERED) + { + continue; + } + int column = priority.getColumn(); + Comparator comparator = Comparators.getComparatorFor(model.getColumnClass(column)); + Object obj1 = null; + Object obj2 = null; + if (o1.size() > column) + { + obj1 = o1.get(column); + } + if (o2.size() > column) + { + obj2 = o2.get(column); + } + int ret; + if (obj1 == null || obj2 == null) + { + if (obj1 == obj2) + { + ret = 0; + } + else if (obj1 == null) + { + ret = -1; + } + else + { + ret = 1; + } + } + else + { + ret = comparator.compare(obj1, obj2); + } + if (priority.getMode() == SortMode.DESCENDING) + { + ret *= -1; + } + if (ret != 0) + { + return ret; + } + } + return 0; + } - } - - /** - * Align the cell text in a column - **/ - public static final class AlignCellRenderer extends DefaultTableCellRenderer - { - - /** - * align is one of: - * SwingConstants.LEFT - * SwingConstants.CENTER - * SwingConstants.RIGHT - **/ - private int align = SwingConstants.LEFT; - - /** - * Align the cell renderer - * @param anInt - */ - public AlignCellRenderer(int anInt) - { - super(); - align = anInt; - setHorizontalAlignment(align); - } - - @Override - public Component getTableCellRendererComponent(JTable table, - Object value, - boolean isSelected, - boolean hasFocus, - int row, - int column) - { - super.getTableCellRendererComponent(table, value, isSelected, - hasFocus, row, column); - setEnabled((table == null) || table.isEnabled()); - - setHorizontalAlignment(align); - - return this; - } - - } + } } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/util/table/TableCellUtilities.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/util/table/TableCellUtilities.java 2010-03-27 20:05:12 UTC (rev 11546) +++ sandbox/cdomui/code/src/java/pcgen/gui2/util/table/TableCellUtilities.java 2010-03-27 22:39:00 UTC (rev 11547) @@ -29,6 +29,7 @@ import javax.swing.JTable; import javax.swing.JToggleButton; import javax.swing.SpinnerModel; +import javax.swing.SwingConstants; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.table.DefaultTableCellRenderer; @@ -41,167 +42,198 @@ public final class TableCellUtilities { - private TableCellUtilities() - { + private TableCellUtilities() + { + } - } + public static class RadioButtonEditor extends AbstractCellEditor + implements ActionListener, + TableCellEditor + { - public static class RadioButtonEditor extends AbstractCellEditor - implements ActionListener, - TableCellEditor - { + private JRadioButton button; - private JRadioButton button; + public RadioButtonEditor() + { + this.button = new JRadioButton(); + button.setHorizontalAlignment(JRadioButton.CENTER); + button.addActionListener(this); + } - public RadioButtonEditor() - { - this.button = new JRadioButton(); - button.setHorizontalAlignment(JRadioButton.CENTER); - button.addActionListener(this); - } + public Object getCellEditorValue() + { + return Boolean.valueOf(button.isSelected()); + } - public Object getCellEditorValue() - { - return Boolean.valueOf(button.isSelected()); - } + public Component getTableCellEditorComponent(JTable table, Object value, + boolean isSelected, + int row, int column) + { + boolean selected = false; + if (value instanceof Boolean) + { + selected = ((Boolean) value).booleanValue(); + } + else if (value instanceof String) + { + selected = value.equals("true"); + } + button.setSelected(selected); + return button; + } - public Component getTableCellEditorComponent(JTable table, Object value, - boolean isSelected, - int row, int column) - { - boolean selected = false; - if (value instanceof Boolean) - { - selected = ((Boolean) value).booleanValue(); - } - else if (value instanceof String) - { - selected = value.equals("true"); - } - button.setSelected(selected); - return button; - } + public void actionPerformed(ActionEvent e) + { + stopCellEditing(); + } - public void actionPerformed(ActionEvent e) - { - stopCellEditing(); - } + } - } + public static class SpinnerEditor extends AbstractCellEditor + implements TableCellEditor, ChangeListener + { - public static class SpinnerEditor extends AbstractCellEditor - implements TableCellEditor, ChangeListener - { + protected final JSpinner spinner; - protected final JSpinner spinner; + public SpinnerEditor() + { + this(new JSpinner()); + } - public SpinnerEditor() - { - this(new JSpinner()); - } + public SpinnerEditor(SpinnerModel model) + { + this(new JSpinner(model)); + } - public SpinnerEditor(SpinnerModel model) - { - this(new JSpinner(model)); - } + public SpinnerEditor(JSpinner spinner) + { + this.spinner = spinner; + spinner.addChangeListener(this); + } - public SpinnerEditor(JSpinner spinner) - { - this.spinner = spinner; - spinner.addChangeListener(this); - } + public Object getCellEditorValue() + { + return spinner.getValue(); + } - public Object getCellEditorValue() - { - return spinner.getValue(); - } + public Component getTableCellEditorComponent(JTable table, Object value, + boolean isSelected, + int row, + int column) + { + spinner.setValue(value); + return spinner; + } - public Component getTableCellEditorComponent(JTable table, Object value, - boolean isSelected, - int row, - int column) - { - spinner.setValue(value); - return spinner; - } + public void stateChanged(ChangeEvent e) + { + stopCellEditing(); + } - public void stateChanged(ChangeEvent e) - { - stopCellEditing(); - } + } - } + public static class ToggleButtonRenderer extends DefaultTableCellRenderer + { - public static class ToggleButtonRenderer extends DefaultTableCellRenderer - { + private JToggleButton button; - private JToggleButton button; + public ToggleButtonRenderer(JToggleButton button) + { + this.button = button; + button.setHorizontalAlignment(CENTER); + button.setBorderPainted(true); + } - public ToggleButtonRenderer(JToggleButton button) - { - this.button = button; - button.setHorizontalAlignment(CENTER); - button.setBorderPainted(true); - } + @Override + public Component getTableCellRendererComponent(JTable table, + Object value, + boolean isSelected, + boolean hasFocus, + int row, + int column) + { + super.getTableCellRendererComponent(table, value, isSelected, + hasFocus, row, + column); + if (value == null) + { + return this; + } + button.setForeground(getForeground()); + button.setBackground(getBackground()); + button.setBorder(getBorder()); - @Override - public Component getTableCellRendererComponent(JTable table, - Object value, - boolean isSelected, - boolean hasFocus, - int row, - int column) - { - super.getTableCellRendererComponent(table, value, isSelected, - hasFocus, row, - column); - if (value == null) - { - return this; - } - button.setForeground(getForeground()); - button.setBackground(getBackground()); - button.setBorder(getBorder()); + button.setSelected(((Boolean) value).booleanValue()); + return button; + } - button.setSelected(((Boolean) value).booleanValue()); - return button; - } + } - } + public static class SpinnerRenderer extends DefaultTableCellRenderer + { - public static class SpinnerRenderer extends DefaultTableCellRenderer - { + private final JSpinner spinner; - private final JSpinner spinner; + public SpinnerRenderer() + { + this(new JSpinner()); + } - public SpinnerRenderer() - { - this(new JSpinner()); - } + public SpinnerRenderer(JSpinner spinner) + { + this.spinner = spinner; + } - public SpinnerRenderer(JSpinner spinner) - { - this.spinner = spinner; - } + @Override + public Component getTableCellRendererComponent(JTable table, + Object value, + boolean isSelected, + boolean hasFocus, + int row, + int column) + { + if (value == null) + { + return super.getTableCellRendererComponent(table, value, + isSelected, + hasFocus, row, column); + } + spinner.setValue(value); + spinner.setEnabled(table.isCellEditable(row, column)); + return spinner; + } - @Override - public Component getTableCellRendererComponent(JTable table, - Object value, - boolean isSelected, - boolean hasFocus, - int row, - int column) - { - if (value == null) - { - return super.getTableCellRendererComponent(table, value, - isSelected, - hasFocus, row, column); - } - spinner.setValue(value); - spinner.setEnabled(table.isCellEditable(row, column)); - return spinner; - } + } - } + /** + * Align the cell text in a column + */ + public static final class AlignRenderer extends DefaultTableCellRenderer + { + + /** + * align is one of: + * SwingConstants.LEFT + * SwingConstants.CENTER + * SwingConstants.RIGHT + **/ + private int align = SwingConstants.LEFT; + + public AlignRenderer(int anInt) + { + super(); + align = anInt; + setHorizontalAlignment(align); + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) + { + super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); + setEnabled((table == null) || table.isEnabled()); + setHorizontalAlignment(align); + return this; + } + + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |