From: <cpm...@us...> - 2010-03-27 04:22:18
|
Revision: 11542 http://pcgen.svn.sourceforge.net/pcgen/?rev=11542&view=rev Author: cpmeister Date: 2010-03-27 04:22:10 +0000 (Sat, 27 Mar 2010) Log Message: ----------- SummaryInfoTab update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterLevelFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterLevelMock.java sandbox/cdomui/code/src/java/pcgen/gui2/proto/SummaryPanel.form sandbox/cdomui/code/src/java/pcgen/gui2/proto/SummaryPanel.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/gui2/util/SignIcon.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterLevelFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterLevelFacade.java 2010-03-26 21:48:42 UTC (rev 11541) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterLevelFacade.java 2010-03-27 04:22:10 UTC (rev 11542) @@ -29,28 +29,34 @@ public interface CharacterLevelFacade { - /** - * - * This method handles adding and removing skill points to the character's - * skills. This methods takes into acount the skill cost and spendable skill - * points and will call appropriate message dialogs when an inappropriate - * action is called. - * @param skill the skill to invest points in - * @param points the amount of points to invest - * @return true if the points were successfuly invested - */ - public boolean investSkillPoints(SkillFacade skill, int points); + /** + * + * This method handles adding and removing skill points to the character's + * skills. This methods takes into acount the skill cost and spendable skill + * points and will call appropriate message dialogs when an inappropriate + * action is called. + * @param skill the skill to invest points in + * @param points the amount of points to invest + * @return true if the points were successfuly invested + */ + public boolean investSkillPoints(SkillFacade skill, int points); - public ClassFacade getSelectedClass(); + public ClassFacade getSelectedClass(); - public SkillCost getSkillCost(SkillFacade skill); + public SkillCost getSkillCost(SkillFacade skill); - public int getRankCost(SkillCost cost); + public int getRankCost(SkillCost cost); - public int getGainedSkillPoints(); + public int getGainedSkillPoints(); - public void setGainedSkillPoints(int points); + public void setGainedSkillPoints(int points); - public int getSpentSkillPoints(); + public int getSpentSkillPoints(); + public int getHPGained(); + + public int getHPRolled(); + + public void setHPRolled(int hp); + } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterLevelMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterLevelMock.java 2010-03-26 21:48:42 UTC (rev 11541) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterLevelMock.java 2010-03-27 04:22:10 UTC (rev 11542) @@ -20,7 +20,6 @@ * * $Id$ */ - package pcgen.gui2.mock; import java.util.HashMap; @@ -53,6 +52,7 @@ */ public class CharacterLevelMock implements CharacterLevelFacade { + private ClassMock selectedClass; private int gainedSkillPoints; private int spentSkillPoints; @@ -67,8 +67,7 @@ spentSkillPoints = 0; skillRanks = new HashMap<SkillFacade, Double>(); } - - + /* (non-Javadoc) * @see pcgen.core.facade.CharacterLevelFacade#getGainedSkillPoints() */ @@ -124,7 +123,7 @@ */ public boolean investSkillPoints(SkillFacade skill, int points) { - if (points+spentSkillPoints > gainedSkillPoints) + if (points + spentSkillPoints > gainedSkillPoints) { return false; } @@ -143,12 +142,14 @@ numRanks = 0.0d; } int spent = spentSkillPoints + points; - if(spent < 0) + if (spent < 0) + { return false; + } // Can't check max ranks here as we need to know the previous levels and the ranks they have too spentSkillPoints = spent; - numRanks += ((double)points) / cost; + numRanks += ((double) points) / cost; skillRanks.put(skill, numRanks); return true; } @@ -163,4 +164,20 @@ Double numRanks = skillRanks.get(skill); return numRanks == null ? 0.0d : numRanks; } + + public int getHPGained() + { + throw new UnsupportedOperationException("Not supported yet."); + } + + public int getHPRolled() + { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void setHPRolled(int hp) + { + throw new UnsupportedOperationException("Not supported yet."); + } + } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/proto/SummaryPanel.form =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/proto/SummaryPanel.form 2010-03-26 21:48:42 UTC (rev 11541) +++ sandbox/cdomui/code/src/java/pcgen/gui2/proto/SummaryPanel.form 2010-03-27 04:22:10 UTC (rev 11542) @@ -11,8 +11,104 @@ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> - <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-106,0,0,2,28"/> + <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-106,0,0,1,-25"/> </AuxValues> - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> + <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> + <SubComponents> + <Component class="javax.swing.JLabel" name="jLabel1"> + <Properties> + <Property name="text" type="java.lang.String" value="Add Levels:"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.5" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JLabel" name="jLabel2"> + <Properties> + <Property name="text" type="java.lang.String" value="Remove Levels:"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.5" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JTextField" name="jTextField1"> + <Properties> + <Property name="columns" type="int" value="3"/> + <Property name="text" type="java.lang.String" value="jTextField1"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JTextField" name="jTextField2"> + <Properties> + <Property name="columns" type="int" value="3"/> + <Property name="text" type="java.lang.String" value="jTextField2"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JButton" name="jButton1"> + <Properties> + <Property name="text" type="java.lang.String" value="jButton1"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JButton" name="jButton2"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Lucida Console" size="18" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="-"/> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[0, 0, 0, 0]"/> + </Property> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[15, 14]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[40, 14]"/> + </Property> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JLabel" name="jLabel3"> + <Properties> + <Property name="text" type="java.lang.String" value="jLabel3"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JLabel" name="jLabel4"> + <Properties> + <Property name="text" type="java.lang.String" value="jLabel4"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + </SubComponents> </Form> Modified: sandbox/cdomui/code/src/java/pcgen/gui2/proto/SummaryPanel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/proto/SummaryPanel.java 2010-03-26 21:48:42 UTC (rev 11541) +++ sandbox/cdomui/code/src/java/pcgen/gui2/proto/SummaryPanel.java 2010-03-27 04:22:10 UTC (rev 11542) @@ -24,12 +24,71 @@ */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { + java.awt.GridBagConstraints gridBagConstraints; - setLayout(new java.awt.BorderLayout()); + jLabel1 = new javax.swing.JLabel(); + jLabel2 = new javax.swing.JLabel(); + jTextField1 = new javax.swing.JTextField(); + jTextField2 = new javax.swing.JTextField(); + jButton1 = new javax.swing.JButton(); + jButton2 = new javax.swing.JButton(); + jLabel3 = new javax.swing.JLabel(); + jLabel4 = new javax.swing.JLabel(); + + setLayout(new java.awt.GridBagLayout()); + + jLabel1.setText("Add Levels:"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.weightx = 0.5; + add(jLabel1, gridBagConstraints); + + jLabel2.setText("Remove Levels:"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + gridBagConstraints.weightx = 0.5; + add(jLabel2, gridBagConstraints); + + jTextField1.setColumns(3); + jTextField1.setText("jTextField1"); + add(jTextField1, new java.awt.GridBagConstraints()); + + jTextField2.setColumns(3); + jTextField2.setText("jTextField2"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + add(jTextField2, gridBagConstraints); + + jButton1.setText("jButton1"); + add(jButton1, new java.awt.GridBagConstraints()); + + jButton2.setFont(new java.awt.Font("Lucida Console", 1, 18)); // NOI18N + jButton2.setText("-"); + jButton2.setMargin(new java.awt.Insets(0, 0, 0, 0)); + jButton2.setMinimumSize(new java.awt.Dimension(15, 14)); + jButton2.setPreferredSize(new java.awt.Dimension(40, 14)); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + add(jButton2, gridBagConstraints); + + jLabel3.setText("jLabel3"); + add(jLabel3, new java.awt.GridBagConstraints()); + + jLabel4.setText("jLabel4"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + add(jLabel4, gridBagConstraints); }// </editor-fold>//GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton jButton1; + private javax.swing.JButton jButton2; + private javax.swing.JLabel jLabel1; + private javax.swing.JLabel jLabel2; + private javax.swing.JLabel jLabel3; + private javax.swing.JLabel jLabel4; + private javax.swing.JTextField jTextField1; + private javax.swing.JTextField jTextField2; // End of variables declaration//GEN-END:variables } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-26 21:48:42 UTC (rev 11541) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-27 04:22:10 UTC (rev 11542) @@ -26,29 +26,42 @@ import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.text.NumberFormat; +import java.util.HashMap; import java.util.Hashtable; +import java.util.Map; import javax.swing.BorderFactory; import javax.swing.ComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JComponent; +import javax.swing.JFormattedTextField; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.Spring; import javax.swing.SpringLayout; import javax.swing.border.TitledBorder; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; +import javax.swing.event.ListDataEvent; +import javax.swing.event.ListDataListener; +import javax.swing.table.AbstractTableModel; import org.apache.commons.lang.ArrayUtils; import pcgen.core.facade.AlignmentFacade; import pcgen.core.facade.CharacterFacade; +import pcgen.core.facade.CharacterLevelFacade; +import pcgen.core.facade.ClassFacade; import pcgen.core.facade.DeityFacade; import pcgen.core.facade.RaceFacade; import pcgen.core.facade.SimpleFacade; import pcgen.gui2.tools.CharacterStateEditable; import pcgen.gui2.util.DefaultGenericListModel; import pcgen.gui2.util.DelegatingGenericComboBoxModel; +import pcgen.gui2.util.GenericListModel; +import pcgen.gui2.util.SignIcon; +import pcgen.gui2.util.SignIcon.Sign; /** * @@ -71,6 +84,7 @@ private final JTextField expField; private final JTextField nextlevelField; private final JTextField expmodField; + private final JTable classLevelTable; private final JComboBox genderComboBox; private final JComboBox handsComboBox; private final JComboBox alignmentComboBox; @@ -99,6 +113,7 @@ this.expField = new JTextField(); this.nextlevelField = new JTextField(); this.expmodField = new JTextField(); + this.classLevelTable = new JTable(); this.genderComboBox = new JComboBox(); this.handsComboBox = new JComboBox(); this.alignmentComboBox = new JComboBox(); @@ -114,8 +129,8 @@ this.descTabButton = new JButton(); this.sheetTabButton = new JButton(); this.createMonsterButton = new JButton(); - this.expaddButton = new JButton(); - this.expsubtractButton = new JButton(); + this.expaddButton = createSignButton(Sign.Plus); + this.expsubtractButton = createSignButton(Sign.Minus); initComponents(); } @@ -127,8 +142,8 @@ descTabButton.setText("Open Description Tab"); sheetTabButton.setText("Open Character Sheet Tab"); createMonsterButton.setText("Create Monster Character"); - expaddButton.setText("+"); - expsubtractButton.setText("-"); + //expaddButton.setText("+"); + //expsubtractButton.setText("-"); setLayout(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); @@ -174,6 +189,7 @@ */ racePanel.setOpaque(false); classPanel.setOpaque(false); + JPanel expmodPanel = new JPanel(new GridBagLayout()); JPanel levelPanel = new JPanel(); JLabel raceLabel = createLabel("Race:"); JLabel ageLabel = createLabel("Age:"); @@ -196,7 +212,8 @@ Spring.width(ageField))); Spring expSpring = Spring.sum(insetSpring, Spring.width(expLabel)); Spring levelSpring = Spring.sum(insetSpring, Spring.width(nextlevelLabel)); - comboBoxSpring = maxSpring(raceSpring, ageSpring, expSpring, levelSpring); + Spring expmodSpring = Spring.sum(insetSpring, Spring.width(expmodPanel)); + comboBoxSpring = maxSpring(raceSpring, ageSpring, expSpring, levelSpring, expmodSpring); } /* * racePanel @@ -275,26 +292,22 @@ setSpringLayerConstraints(layout, classPanel, classPanelInsets, expmodLabel, nextlevelField, 10); - - - - JPanel panel = new JPanel(new GridBagLayout()); { GridBagConstraints gbc = new GridBagConstraints(); gbc.fill = GridBagConstraints.HORIZONTAL; gbc.weightx = 1.0; - panel.add(expaddButton, gbc); - panel.add(expsubtractButton, gbc); + expmodPanel.add(expaddButton, gbc); + expmodPanel.add(expsubtractButton, gbc); } setSpringLayerConstraints(layout, classPanel, classPanelInsets, comboBoxSpring, - panel, expmodField, expmodLabel); - layout.putConstraint(SpringLayout.EAST, panel, + expmodPanel, expmodField, expmodLabel); + layout.putConstraint(SpringLayout.EAST, expmodPanel, 0, SpringLayout.WEST, expmodField); layout.putConstraint(SpringLayout.SOUTH, expmodField, -classPanelInsets.bottom, SpringLayout.SOUTH, classPanel); - springPanel.add(panel); + springPanel.add(expmodPanel); springPanel.add(racePanel); springPanel.add(raceLabel); springPanel.add(raceComboBox); @@ -373,8 +386,50 @@ private void initLevelPanel(JPanel panel) { + panel.setLayout(new GridBagLayout()); + JLabel addLabel = createLabel("Add Levels:"); + JLabel removeLabel = createLabel("Remove Levels:"); + JFormattedTextField addField = new JFormattedTextField(NumberFormat.getIntegerInstance()); + JFormattedTextField removeField = new JFormattedTextField(NumberFormat.getIntegerInstance()); + JButton addLevelButton = createSignButton(Sign.Plus); + JButton removeLevelButton = createSignButton(Sign.Minus); + JLabel darrowLabel = new JLabel(); + JLabel uarrowLabel = new JLabel(); + + addField.setColumns(5); + removeField.setColumns(5); + + GridBagConstraints gbc1 = new GridBagConstraints(); + GridBagConstraints gbc2 = new GridBagConstraints(); + gbc1.weightx = gbc2.weightx = 0.5; + gbc2.gridwidth = GridBagConstraints.REMAINDER; + panel.add(addLabel, gbc1); + panel.add(removeLabel, gbc2); + panel.add(addField, gbc1); + panel.add(removeField, gbc2); + panel.add(addLevelButton, gbc1); + panel.add(removeLevelButton, gbc2); + panel.add(darrowLabel, gbc1); + panel.add(uarrowLabel, gbc2); + + gbc2.weightx = 0; + gbc2.fill = GridBagConstraints.BOTH; + } + private void initLevelTablePanel(JPanel panel) + { + //panel.set + } + + private static JButton createSignButton(Sign sign) + { + JButton button = new JButton(); + button.setMargin(new Insets(0, 0, 0, 0)); + button.setIcon(new SignIcon(sign)); + return button; + } + private static JLabel createLabel(String text) { JLabel label = new JLabel(text); @@ -678,4 +733,94 @@ } } + + private class ClassLevelTableModel extends AbstractTableModel implements ListDataListener + { + + private GenericListModel<CharacterLevelFacade> levels; + private Map<ClassFacade, Integer> finalLevelMap; + private CharacterFacade character; + + public ClassLevelTableModel(CharacterFacade character) + { + this.character = character; + this.levels = character.getLevels(); + resetLevelMap(); + } + + private void resetLevelMap() + { + finalLevelMap.clear(); + for (int i = levels.getSize() - 1; i >= 0; i--) + { + ClassFacade c = levels.getElementAt(i).getSelectedClass(); + if (!finalLevelMap.containsKey(c)) + { + finalLevelMap.put(c, i); + } + } + } + + public int getRowCount() + { + return levels.getSize() + 1; + } + + public int getColumnCount() + { + return 3; + } + + public Object getValueAt(int rowIndex, int columnIndex) + { + if (rowIndex == levels.getSize()) + { + return null; + } + switch (columnIndex) + { + case 0: + return rowIndex + 1; + case 1: + return levels.getElementAt(rowIndex).getHPGained(); + case 2: + ClassFacade c = levels.getElementAt(rowIndex).getSelectedClass(); + if (finalLevelMap.get(c) == rowIndex) + { + return c.toString() + " (" + character.getClassLevel(c) + ")"; + } + return c.toString(); + default: + return null; + } + } + + public void intervalAdded(ListDataEvent e) + { + Map<ClassFacade, Integer> finalMap = new HashMap<ClassFacade, Integer>(); + for (int i = e.getIndex1(); i >= e.getIndex0(); i--) + { + ClassFacade c = levels.getElementAt(i).getSelectedClass(); + if (!finalMap.containsKey(c)) + { + finalMap.put(c, i); + } + } + finalLevelMap.putAll(finalMap); + fireTableRowsInserted(e.getIndex0(), e.getIndex1()); + } + + public void intervalRemoved(ListDataEvent e) + { + resetLevelMap(); + fireTableRowsDeleted(e.getIndex0(), e.getIndex1()); + } + + public void contentsChanged(ListDataEvent e) + { + resetLevelMap(); + fireTableDataChanged(); + } + + } } Added: sandbox/cdomui/code/src/java/pcgen/gui2/util/SignIcon.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/util/SignIcon.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/util/SignIcon.java 2010-03-27 04:22:10 UTC (rev 11542) @@ -0,0 +1,67 @@ +/* + * SignIcon.java + * Copyright 2010 (C) Connor + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Mar 26, 2010, 5:54:11 PM + */ +package pcgen.gui2.util; + +import java.awt.Color; +import java.awt.Component; +import java.awt.Graphics; +import javax.swing.Icon; + +/** + * + * @author Connor + */ +public class SignIcon implements Icon +{ + + public enum Sign + { + + Plus, Minus; + } + private Sign sign; + + public SignIcon(Sign sign) + { + this.sign = sign; + } + + public void paintIcon(Component c, Graphics g, int x, int y) + { + g.setColor(Color.BLACK); + g.fillRect(x, y + 3, 9, 3); + if (sign == Sign.Plus) + { + g.fillRect(x + 3, y, 3, 9); + } + } + + public int getIconWidth() + { + return 9; + } + + public int getIconHeight() + { + return 9; + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |