From: <cpm...@us...> - 2010-03-25 08:48:46
|
Revision: 11535 http://pcgen.svn.sourceforge.net/pcgen/?rev=11535&view=rev Author: cpmeister Date: 2010-03-25 08:48:40 +0000 (Thu, 25 Mar 2010) Log Message: ----------- SummaryInfoTab update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-24 21:40:59 UTC (rev 11534) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-25 08:48:40 UTC (rev 11535) @@ -22,10 +22,12 @@ import java.awt.Font; import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Hashtable; +import javax.swing.BorderFactory; import javax.swing.ComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; @@ -33,6 +35,7 @@ import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; +import javax.swing.border.TitledBorder; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import pcgen.core.facade.AlignmentFacade; @@ -47,44 +50,97 @@ * * @author Connor */ -public class SummaryInfoTab implements CharacterStateEditable +public class SummaryInfoTab extends JPanel implements CharacterStateEditable { private final JPanel basicsPanel; + private final JPanel todoPanel; + private final JPanel scoresPanel; + private final JPanel racePanel; + private final JPanel classLevelPanel; private final JTextField characterNameField; private final JTextField playerNameField; private final JComboBox genderBox; private final JComboBox handsBox; private final JComboBox alignmentBox; private final JComboBox deityBox; + private final JComboBox raceBox; + private final JComboBox ageBox; private final JTextField tabLabelField; + private final JButton languageTabButton; + private final JButton raceTabButton; + private final JButton classTabButton; + private final JButton descTabButton; + private final JButton sheetTabButton; public SummaryInfoTab() { this.basicsPanel = new JPanel(); + this.todoPanel = new JPanel(); + this.scoresPanel = new JPanel(); + this.racePanel = new JPanel(); + this.classLevelPanel = new JPanel(); this.characterNameField = new JTextField(); this.playerNameField = new JTextField(); this.genderBox = new JComboBox(); this.handsBox = new JComboBox(); this.alignmentBox = new JComboBox(); this.deityBox = new JComboBox(); + this.raceBox = new JComboBox(); + this.ageBox = new JComboBox(); this.tabLabelField = new JTextField(); + this.languageTabButton = new JButton(); + this.raceTabButton = new JButton(); + this.classTabButton = new JButton(); + this.descTabButton = new JButton(); + this.sheetTabButton = new JButton(); initComponents(); } private void initComponents() { - //initBasicsPanel(); + Font titleFont = new Font("Tahoma", Font.BOLD, 14); + basicsPanel.setLayout(new GridBagLayout()); + basicsPanel.setBorder(BorderFactory.createTitledBorder(null, + "Character Basics", + TitledBorder.CENTER, + TitledBorder.DEFAULT_POSITION, + titleFont)); + todoPanel.setBorder(BorderFactory.createTitledBorder(null, + "Things To Be Done", + TitledBorder.CENTER, + TitledBorder.DEFAULT_POSITION, + titleFont)); + scoresPanel.setBorder(BorderFactory.createTitledBorder(null, + "Ability Scores", + TitledBorder.CENTER, + TitledBorder.DEFAULT_POSITION, + titleFont)); + racePanel.setBorder(BorderFactory.createTitledBorder(null, + "Race", + TitledBorder.CENTER, + TitledBorder.DEFAULT_POSITION, + titleFont)); + classLevelPanel.setBorder(BorderFactory.createTitledBorder(null, + "Class & Level", + TitledBorder.CENTER, + TitledBorder.DEFAULT_POSITION, + titleFont)); + initSpringPanels(); } - private void resetBasicsPanel(Hashtable<?, ?> state) + private void initSpringPanels() { + + } + + private void resetBasicsPanel() + { basicsPanel.removeAll(); Font labelFont = new Font("Tahoma", Font.BOLD, 12); GridBagConstraints gbc = new GridBagConstraints(); - JLabel label; { - label = new JLabel("Name:"); + JLabel label = new JLabel("Name:"); label.setFont(labelFont); gbc.anchor = java.awt.GridBagConstraints.WEST; basicsPanel.add(label, gbc); @@ -100,11 +156,34 @@ basicsPanel.add(characterNameField, gbc); } addGridBagLayer(basicsPanel, labelFont, null, "Player:", playerNameField); - addGridBagLayer(basicsPanel, labelFont, null, "Gender:", genderBox); - addGridBagLayer(basicsPanel, labelFont, null, "Handed:", handsBox); - addGridBagLayer(basicsPanel, labelFont, null, "Alignment:", alignmentBox); - addGridBagLayer(basicsPanel, labelFont, null, "Deity:", deityBox); + if (genderBox.getModel().getSize() != 0) + { + addGridBagLayer(basicsPanel, labelFont, null, "Gender:", genderBox); + } + if (handsBox.getModel().getSize() != 0) + { + addGridBagLayer(basicsPanel, labelFont, null, "Handed:", handsBox); + } + if (alignmentBox.getModel().getSize() != 0) + { + addGridBagLayer(basicsPanel, labelFont, null, "Alignment:", alignmentBox); + } + if (deityBox.getModel().getSize() != 0) + { + addGridBagLayer(basicsPanel, labelFont, null, "Deity:", deityBox); + } addGridBagLayer(basicsPanel, labelFont, new Insets(7, 0, 7, 0), "Tab Label:", tabLabelField); + + gbc = new GridBagConstraints(); + gbc.gridwidth = GridBagConstraints.REMAINDER; + gbc.fill = GridBagConstraints.BOTH; + basicsPanel.add(languageTabButton, gbc); + basicsPanel.add(raceTabButton, gbc); + basicsPanel.add(classTabButton, gbc); + basicsPanel.add(descTabButton, gbc); + basicsPanel.add(sheetTabButton, gbc); + + basicsPanel.revalidate(); } private void addGridBagLayer(JPanel panel, Font font, Insets insets, String text, JComponent comp) @@ -237,6 +316,8 @@ handsBox.setModel((ComboBoxModel) state.get(Models.HandsComboBoxModel)); alignmentBox.setModel((ComboBoxModel) state.get(Models.AlignmentComboBoxModel)); deityBox.setModel((ComboBoxModel) state.get(Models.DeityComboBoxModel)); + + resetBasicsPanel(); } private class CharacterNameHandler implements ActionListener, ChangeListener @@ -316,20 +397,25 @@ public void install() { + tabLabelField.setText(character.getTabName()); + tabLabelField.addActionListener(this); + character.addTabNameChangeListener(this); } public void uninstall() { + tabLabelField.removeActionListener(this); + character.removeTabNameChangeListener(this); } public void actionPerformed(ActionEvent e) { - throw new UnsupportedOperationException("Not supported yet."); + character.setTabName(tabLabelField.getText()); } public void stateChanged(ChangeEvent e) { - throw new UnsupportedOperationException("Not supported yet."); + tabLabelField.setText(character.getTabName()); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-25 22:46:20
|
Revision: 11538 http://pcgen.svn.sourceforge.net/pcgen/?rev=11538&view=rev Author: cpmeister Date: 2010-03-25 22:46:14 +0000 (Thu, 25 Mar 2010) Log Message: ----------- SummaryInfoTab update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-25 12:20:58 UTC (rev 11537) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-25 22:46:14 UTC (rev 11538) @@ -35,9 +35,12 @@ import javax.swing.JLabel; import javax.swing.JPanel; 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 org.apache.commons.lang.ArrayUtils; import pcgen.core.facade.AlignmentFacade; import pcgen.core.facade.CharacterFacade; import pcgen.core.facade.DeityFacade; @@ -54,20 +57,23 @@ public class SummaryInfoTab extends JPanel implements CharacterStateEditable { + private static final Font titleFont = new Font("Tahoma", Font.BOLD, 14); + private static final Font labelFont = new Font("Tahoma", Font.BOLD, 12); private final JPanel basicsPanel; private final JPanel todoPanel; private final JPanel scoresPanel; private final JPanel racePanel; - private final JPanel classLevelPanel; + private final JPanel classPanel; private final JTextField characterNameField; private final JTextField playerNameField; - private final JComboBox genderBox; - private final JComboBox handsBox; - private final JComboBox alignmentBox; - private final JComboBox deityBox; - private final JComboBox raceBox; - private final JComboBox ageBox; private final JTextField tabLabelField; + private final JTextField ageField; + private final JComboBox genderComboBox; + private final JComboBox handsComboBox; + private final JComboBox alignmentComboBox; + private final JComboBox deityComboBox; + private final JComboBox raceComboBox; + private final JComboBox ageComboBox; private final JButton languageTabButton; private final JButton raceTabButton; private final JButton classTabButton; @@ -80,16 +86,17 @@ this.todoPanel = new JPanel(); this.scoresPanel = new JPanel(); this.racePanel = new JPanel(); - this.classLevelPanel = new JPanel(); + this.classPanel = new JPanel(); this.characterNameField = new JTextField(); this.playerNameField = new JTextField(); - this.genderBox = new JComboBox(); - this.handsBox = new JComboBox(); - this.alignmentBox = new JComboBox(); - this.deityBox = new JComboBox(); - this.raceBox = new JComboBox(); - this.ageBox = new JComboBox(); + this.genderComboBox = new JComboBox(); + this.handsComboBox = new JComboBox(); + this.alignmentComboBox = new JComboBox(); + this.deityComboBox = new JComboBox(); + this.raceComboBox = new JComboBox(); + this.ageComboBox = new JComboBox(); this.tabLabelField = new JTextField(); + this.ageField = new JTextField(); this.languageTabButton = new JButton(); this.raceTabButton = new JButton(); this.classTabButton = new JButton(); @@ -100,45 +107,124 @@ private void initComponents() { - Font titleFont = new Font("Tahoma", Font.BOLD, 14); basicsPanel.setLayout(new GridBagLayout()); - basicsPanel.setBorder(BorderFactory.createTitledBorder(null, - "Character Basics", - TitledBorder.CENTER, - TitledBorder.DEFAULT_POSITION, - titleFont)); - todoPanel.setBorder(BorderFactory.createTitledBorder(null, - "Things To Be Done", - TitledBorder.CENTER, - TitledBorder.DEFAULT_POSITION, - titleFont)); - scoresPanel.setBorder(BorderFactory.createTitledBorder(null, - "Ability Scores", - TitledBorder.CENTER, - TitledBorder.DEFAULT_POSITION, - titleFont)); - racePanel.setBorder(BorderFactory.createTitledBorder(null, - "Race", - TitledBorder.CENTER, - TitledBorder.DEFAULT_POSITION, - titleFont)); - classLevelPanel.setBorder(BorderFactory.createTitledBorder(null, - "Class & Level", - TitledBorder.CENTER, - TitledBorder.DEFAULT_POSITION, - titleFont)); - initSpringPanels(); + setPanelTitle(basicsPanel, "Character Basics"); + setPanelTitle(todoPanel, "Things To Be Done"); + setPanelTitle(scoresPanel, "Ability Scores"); + setPanelTitle(racePanel, "Race"); + setPanelTitle(classPanel, "Class & Level"); + initRightPanels(); } - private void initSpringPanels() + private void setPanelTitle(JPanel panel, String title) { + panel.setBorder(BorderFactory.createTitledBorder(null, + title, + TitledBorder.CENTER, + TitledBorder.DEFAULT_POSITION, + titleFont)); + } + private void initRightPanels() + { + SpringLayout layout = new SpringLayout(); + JPanel springPanel = new JPanel(layout); + layout.putConstraint(SpringLayout.WEST, racePanel, 0, SpringLayout.WEST, springPanel); + layout.putConstraint(SpringLayout.NORTH, racePanel, 0, SpringLayout.NORTH, springPanel); + layout.putConstraint(SpringLayout.EAST, racePanel, 0, SpringLayout.EAST, springPanel); + /* + * initialize Components + */ + JLabel raceLabel = createLabel("Race:"); + JLabel ageLabel = createLabel("Age:"); + JLabel classLabel = createLabel("Class:"); + JLabel addLabel = createLabel("Add Levels:"); + JLabel removeLabel = createLabel("RemoveLevels"); + JLabel expLabel = createLabel("Current EXP:"); + JLabel nextlevelLabel = createLabel("Next Level:"); + JLabel expmodLabel = createLabel("Add or Subtract From Current EXP:"); + /* + * initialize constrant variables + */ + Insets racePanelInsets = racePanel.getInsets(); + + Spring comboBoxSpring; + { + Spring insetSpring = Spring.constant(racePanelInsets.left); + Spring raceSpring = Spring.sum(insetSpring, Spring.width(raceLabel)); + Spring ageSpring = Spring.sum(insetSpring, Spring.sum(Spring.width(ageLabel), + 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); + } + /* + * raceLabel constraints + */ + layout.putConstraint(SpringLayout.WEST, raceLabel, + racePanelInsets.left, + SpringLayout.WEST, racePanel); + layout.putConstraint(SpringLayout.NORTH, raceLabel, + racePanelInsets.top, + SpringLayout.NORTH, racePanel); + /* + * raceComboBox constraints + */ + layout.putConstraint(SpringLayout.EAST, raceComboBox, + racePanelInsets.right, + SpringLayout.EAST, racePanel); + layout.putConstraint(SpringLayout.NORTH, raceComboBox, + racePanelInsets.top, + SpringLayout.NORTH, racePanel); + layout.putConstraint(SpringLayout.WEST, raceComboBox, + comboBoxSpring, + SpringLayout.WEST, racePanel); + /* + * ageLabel constraints + */ + + layout.putConstraint(SpringLayout.WEST, ageLabel, + racePanelInsets.left, + SpringLayout.WEST, racePanel); + layout.putConstraint(SpringLayout.NORTH, ageLabel, + racePanelInsets.top, + SpringLayout.SOUTH, raceComboBox); + /* + * ageField constraints + */ + layout.putConstraint(SpringLayout.WEST, ageField, + racePanelInsets.left, + SpringLayout.EAST, ageLabel); + layout.putConstraint(SpringLayout.NORTH, ageField, + racePanelInsets.top, + SpringLayout.SOUTH, raceComboBox); } + private static Spring maxSpring(Spring... springs) + { + if (springs.length > 0) + { + Spring spring = springs[0]; + if (springs.length == 1) + { + return spring; + } + springs = (Spring[]) ArrayUtils.remove(springs, 0); + return Spring.max(spring, maxSpring(springs)); + } + throw new IllegalArgumentException(); + } + + private JLabel createLabel(String text) + { + JLabel label = new JLabel(text); + label.setFont(labelFont); + return label; + } + private void resetBasicsPanel() { basicsPanel.removeAll(); - Font labelFont = new Font("Tahoma", Font.BOLD, 12); GridBagConstraints gbc = new GridBagConstraints(); { JLabel label = new JLabel("Name:"); @@ -157,21 +243,21 @@ basicsPanel.add(characterNameField, gbc); } addGridBagLayer(basicsPanel, labelFont, null, "Player:", playerNameField); - if (genderBox.getModel().getSize() != 0) + if (genderComboBox.getModel().getSize() != 0) { - addGridBagLayer(basicsPanel, labelFont, null, "Gender:", genderBox); + addGridBagLayer(basicsPanel, labelFont, null, "Gender:", genderComboBox); } - if (handsBox.getModel().getSize() != 0) + if (handsComboBox.getModel().getSize() != 0) { - addGridBagLayer(basicsPanel, labelFont, null, "Handed:", handsBox); + addGridBagLayer(basicsPanel, labelFont, null, "Handed:", handsComboBox); } - if (alignmentBox.getModel().getSize() != 0) + if (alignmentComboBox.getModel().getSize() != 0) { - addGridBagLayer(basicsPanel, labelFont, null, "Alignment:", alignmentBox); + addGridBagLayer(basicsPanel, labelFont, null, "Alignment:", alignmentComboBox); } - if (deityBox.getModel().getSize() != 0) + if (deityComboBox.getModel().getSize() != 0) { - addGridBagLayer(basicsPanel, labelFont, null, "Deity:", deityBox); + addGridBagLayer(basicsPanel, labelFont, null, "Deity:", deityComboBox); } addGridBagLayer(basicsPanel, labelFont, new Insets(7, 0, 7, 0), "Tab Label:", tabLabelField); @@ -243,7 +329,7 @@ { genderModel.setDelegateModel(new DefaultGenericListModel<SimpleFacade>()); handsModel.setDelegateModel(new DefaultGenericListModel<SimpleFacade>()); - + } } @@ -322,10 +408,10 @@ ((CharacterNameHandler) state.get(Models.CharacterNameHandler)).install(); ((PlayerNameHandler) state.get(Models.PlayerNameHandler)).install(); ((TabNameHandler) state.get(Models.TabNameHandler)).install(); - genderBox.setModel((ComboBoxModel) state.get(Models.GenderComboBoxModel)); - handsBox.setModel((ComboBoxModel) state.get(Models.HandsComboBoxModel)); - alignmentBox.setModel((ComboBoxModel) state.get(Models.AlignmentComboBoxModel)); - deityBox.setModel((ComboBoxModel) state.get(Models.DeityComboBoxModel)); + genderComboBox.setModel((ComboBoxModel) state.get(Models.GenderComboBoxModel)); + handsComboBox.setModel((ComboBoxModel) state.get(Models.HandsComboBoxModel)); + alignmentComboBox.setModel((ComboBoxModel) state.get(Models.AlignmentComboBoxModel)); + deityComboBox.setModel((ComboBoxModel) state.get(Models.DeityComboBoxModel)); resetBasicsPanel(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-26 01:57:13
|
Revision: 11539 http://pcgen.svn.sourceforge.net/pcgen/?rev=11539&view=rev Author: cpmeister Date: 2010-03-26 01:57:06 +0000 (Fri, 26 Mar 2010) Log Message: ----------- SummaryInfoTab update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-25 22:46:14 UTC (rev 11538) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-26 01:57:06 UTC (rev 11539) @@ -68,17 +68,24 @@ private final JTextField playerNameField; private final JTextField tabLabelField; private final JTextField ageField; + private final JTextField expField; + private final JTextField nextlevelField; + private final JTextField expmodField; private final JComboBox genderComboBox; private final JComboBox handsComboBox; private final JComboBox alignmentComboBox; private final JComboBox deityComboBox; private final JComboBox raceComboBox; private final JComboBox ageComboBox; + private final JComboBox classComboBox; private final JButton languageTabButton; private final JButton raceTabButton; private final JButton classTabButton; private final JButton descTabButton; private final JButton sheetTabButton; + private final JButton createMonsterButton; + private final JButton expaddButton; + private final JButton expsubtractButton; public SummaryInfoTab() { @@ -89,12 +96,16 @@ this.classPanel = new JPanel(); this.characterNameField = new JTextField(); this.playerNameField = new JTextField(); + this.expField = new JTextField(); + this.nextlevelField = new JTextField(); + this.expmodField = new JTextField(); this.genderComboBox = new JComboBox(); this.handsComboBox = new JComboBox(); this.alignmentComboBox = new JComboBox(); this.deityComboBox = new JComboBox(); this.raceComboBox = new JComboBox(); this.ageComboBox = new JComboBox(); + this.classComboBox = new JComboBox(); this.tabLabelField = new JTextField(); this.ageField = new JTextField(); this.languageTabButton = new JButton(); @@ -102,6 +113,9 @@ this.classTabButton = new JButton(); this.descTabButton = new JButton(); this.sheetTabButton = new JButton(); + this.createMonsterButton = new JButton(); + this.expaddButton = new JButton(); + this.expsubtractButton = new JButton(); initComponents(); } @@ -129,12 +143,10 @@ { SpringLayout layout = new SpringLayout(); JPanel springPanel = new JPanel(layout); - layout.putConstraint(SpringLayout.WEST, racePanel, 0, SpringLayout.WEST, springPanel); - layout.putConstraint(SpringLayout.NORTH, racePanel, 0, SpringLayout.NORTH, springPanel); - layout.putConstraint(SpringLayout.EAST, racePanel, 0, SpringLayout.EAST, springPanel); /* * initialize Components */ + JPanel levelPanel = new JPanel(); JLabel raceLabel = createLabel("Race:"); JLabel ageLabel = createLabel("Age:"); JLabel classLabel = createLabel("Class:"); @@ -147,7 +159,7 @@ * initialize constrant variables */ Insets racePanelInsets = racePanel.getInsets(); - + Insets classPanelInsets = classPanel.getInsets(); Spring comboBoxSpring; { Spring insetSpring = Spring.constant(racePanelInsets.left); @@ -159,6 +171,21 @@ comboBoxSpring = maxSpring(raceSpring, ageSpring, expSpring, levelSpring); } /* + * racePanel + */ + layout.putConstraint(SpringLayout.WEST, racePanel, + 0, + SpringLayout.WEST, springPanel); + layout.putConstraint(SpringLayout.NORTH, racePanel, + 0, + SpringLayout.NORTH, springPanel); + layout.putConstraint(SpringLayout.EAST, racePanel, + 0, + SpringLayout.EAST, springPanel); + layout.putConstraint(SpringLayout.SOUTH, racePanel, + racePanelInsets.bottom, + SpringLayout.SOUTH, createMonsterButton); + /* * raceLabel constraints */ layout.putConstraint(SpringLayout.WEST, raceLabel, @@ -171,7 +198,7 @@ * raceComboBox constraints */ layout.putConstraint(SpringLayout.EAST, raceComboBox, - racePanelInsets.right, + -racePanelInsets.right, SpringLayout.EAST, racePanel); layout.putConstraint(SpringLayout.NORTH, raceComboBox, racePanelInsets.top, @@ -187,17 +214,179 @@ racePanelInsets.left, SpringLayout.WEST, racePanel); layout.putConstraint(SpringLayout.NORTH, ageLabel, - racePanelInsets.top, + 0, SpringLayout.SOUTH, raceComboBox); /* * ageField constraints */ layout.putConstraint(SpringLayout.WEST, ageField, - racePanelInsets.left, + 0, SpringLayout.EAST, ageLabel); layout.putConstraint(SpringLayout.NORTH, ageField, racePanelInsets.top, SpringLayout.SOUTH, raceComboBox); + /* + * ageComboBox constraints + */ + layout.putConstraint(SpringLayout.EAST, ageComboBox, + -racePanelInsets.right, + SpringLayout.EAST, racePanel); + layout.putConstraint(SpringLayout.NORTH, ageComboBox, + 0, + SpringLayout.SOUTH, raceComboBox); + layout.putConstraint(SpringLayout.WEST, ageComboBox, + comboBoxSpring, + SpringLayout.WEST, racePanel); + /* + * createMonsterButton + */ + layout.putConstraint(SpringLayout.WEST, createMonsterButton, + racePanelInsets.left, + SpringLayout.WEST, racePanel); + layout.putConstraint(SpringLayout.NORTH, createMonsterButton, + 0, + SpringLayout.SOUTH, ageComboBox); + layout.putConstraint(SpringLayout.EAST, createMonsterButton, + -racePanelInsets.right, + SpringLayout.EAST, racePanel); + /* + * classPanel + */ + layout.putConstraint(SpringLayout.WEST, classPanel, + 0, + SpringLayout.WEST, springPanel); + layout.putConstraint(SpringLayout.EAST, classPanel, + 0, + SpringLayout.EAST, springPanel); + layout.putConstraint(SpringLayout.NORTH, classPanel, + 0, + SpringLayout.SOUTH, racePanel); + layout.putConstraint(SpringLayout.SOUTH, classPanel, + 0, + SpringLayout.SOUTH, springPanel); + /* + * classLabel + */ + layout.putConstraint(SpringLayout.WEST, classLabel, + classPanelInsets.left, + SpringLayout.WEST, classPanel); + layout.putConstraint(SpringLayout.NORTH, classLabel, + classPanelInsets.top, + SpringLayout.NORTH, classPanel); + /* + * classComboBox + */ + layout.putConstraint(SpringLayout.WEST, classComboBox, + comboBoxSpring, + SpringLayout.WEST, classPanel); + layout.putConstraint(SpringLayout.NORTH, classComboBox, + classPanelInsets.top, + SpringLayout.NORTH, classPanel); + layout.putConstraint(SpringLayout.EAST, classComboBox, + -classPanelInsets.right, + SpringLayout.EAST, classPanel); + /* + * levelPanel + */ + layout.putConstraint(SpringLayout.NORTH, levelPanel, + 0, + SpringLayout.SOUTH, classComboBox); + layout.putConstraint(SpringLayout.WEST, levelPanel, + classPanelInsets.left, + SpringLayout.WEST, classPanel); + layout.putConstraint(SpringLayout.EAST, levelPanel, + -classPanelInsets.right, + SpringLayout.EAST, classPanel); + /* + * expLabel + */ + layout.putConstraint(SpringLayout.NORTH, expLabel, + 0, + SpringLayout.SOUTH, levelPanel); + layout.putConstraint(SpringLayout.WEST, expLabel, + classPanelInsets.left, + SpringLayout.WEST, classPanel); + /* + * expField + */ + layout.putConstraint(SpringLayout.NORTH, expField, + 0, + SpringLayout.SOUTH, levelPanel); + layout.putConstraint(SpringLayout.WEST, expField, + comboBoxSpring, + SpringLayout.WEST, classPanel); + layout.putConstraint(SpringLayout.EAST, expField, + -classPanelInsets.right, + SpringLayout.EAST, classPanel); + /* + * nextlevelLabel + */ + layout.putConstraint(SpringLayout.NORTH, nextlevelLabel, + 0, + SpringLayout.SOUTH, expField); + layout.putConstraint(SpringLayout.WEST, nextlevelLabel, + classPanelInsets.left, + SpringLayout.WEST, classPanel); + /* + * nextlevelField + */ + layout.putConstraint(SpringLayout.NORTH, nextlevelField, + 0, + SpringLayout.SOUTH, expField); + layout.putConstraint(SpringLayout.WEST, nextlevelField, + comboBoxSpring, + SpringLayout.WEST, classPanel); + layout.putConstraint(SpringLayout.EAST, nextlevelField, + -classPanelInsets.right, + SpringLayout.EAST, classPanel); + /* + * expmodLabel + */ + layout.putConstraint(SpringLayout.NORTH, expmodLabel, + 10, + SpringLayout.SOUTH, nextlevelField); + layout.putConstraint(SpringLayout.WEST, expmodLabel, + classPanelInsets.left, + SpringLayout.WEST, classPanel); + layout.putConstraint(SpringLayout.EAST, expmodLabel, + -classPanelInsets.right, + SpringLayout.EAST, classPanel); + /* + * expaddButton + */ + layout.putConstraint(SpringLayout.NORTH, expaddButton, + 0, + SpringLayout.SOUTH, expmodLabel); + layout.putConstraint(SpringLayout.WEST, expaddButton, + classPanelInsets.left, + SpringLayout.WEST, classPanel); + /* + * expsubtractButton + */ + layout.putConstraint(SpringLayout.NORTH, expsubtractButton, + 0, + SpringLayout.SOUTH, expmodLabel); + layout.putConstraint(SpringLayout.WEST, expsubtractButton, + 0, + SpringLayout.EAST, expaddButton); + layout.putConstraint(SpringLayout.EAST, expsubtractButton, + 0, + SpringLayout.WEST, expmodField); + /* + * expmodField + */ + layout.putConstraint(SpringLayout.NORTH, expmodField, + 0, + SpringLayout.SOUTH, expmodLabel); + layout.putConstraint(SpringLayout.WEST, expmodField, + comboBoxSpring, + SpringLayout.WEST, classPanel); + layout.putConstraint(SpringLayout.EAST, expmodField, + -classPanelInsets.right, + SpringLayout.EAST, classPanel); + layout.putConstraint(SpringLayout.SOUTH, expmodField, + -classPanelInsets.bottom, + SpringLayout.SOUTH, classPanel); } private static Spring maxSpring(Spring... springs) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-26 03:26:06
|
Revision: 11540 http://pcgen.svn.sourceforge.net/pcgen/?rev=11540&view=rev Author: cpmeister Date: 2010-03-26 03:26:00 +0000 (Fri, 26 Mar 2010) Log Message: ----------- SummaryInfoTab update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-26 01:57:06 UTC (rev 11539) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-26 03:26:00 UTC (rev 11540) @@ -121,13 +121,31 @@ private void initComponents() { + setLayout(new GridBagLayout()); + GridBagConstraints gbc = new GridBagConstraints(); + + setPanelTitle(basicsPanel, "Character Basics"); basicsPanel.setLayout(new GridBagLayout()); - setPanelTitle(basicsPanel, "Character Basics"); + gbc.fill = GridBagConstraints.BOTH; + gbc.weightx = 0.5; + add(basicsPanel, gbc); + setPanelTitle(todoPanel, "Things To Be Done"); + gbc.gridy = 1; + gbc.gridheight = GridBagConstraints.REMAINDER; + add(todoPanel, gbc); + setPanelTitle(scoresPanel, "Ability Scores"); + gbc.gridy = GridBagConstraints.RELATIVE; + gbc.weightx = 1.0; + add(scoresPanel, gbc); + + JPanel rightPanel = new JPanel(); setPanelTitle(racePanel, "Race"); setPanelTitle(classPanel, "Class & Level"); - initRightPanels(); + initRightPanel(rightPanel); + gbc.weightx = 0.5; + add(rightPanel, gbc); } private void setPanelTitle(JPanel panel, String title) @@ -139,10 +157,10 @@ titleFont)); } - private void initRightPanels() + private void initRightPanel(JPanel springPanel) { SpringLayout layout = new SpringLayout(); - JPanel springPanel = new JPanel(layout); + springPanel.setLayout(layout); /* * initialize Components */ @@ -151,7 +169,7 @@ JLabel ageLabel = createLabel("Age:"); JLabel classLabel = createLabel("Class:"); JLabel addLabel = createLabel("Add Levels:"); - JLabel removeLabel = createLabel("RemoveLevels"); + JLabel removeLabel = createLabel("Remove Levels"); JLabel expLabel = createLabel("Current EXP:"); JLabel nextlevelLabel = createLabel("Next Level:"); JLabel expmodLabel = createLabel("Add or Subtract From Current EXP:"); @@ -289,7 +307,7 @@ * levelPanel */ layout.putConstraint(SpringLayout.NORTH, levelPanel, - 0, + 10, SpringLayout.SOUTH, classComboBox); layout.putConstraint(SpringLayout.WEST, levelPanel, classPanelInsets.left, @@ -387,6 +405,27 @@ layout.putConstraint(SpringLayout.SOUTH, expmodField, -classPanelInsets.bottom, SpringLayout.SOUTH, classPanel); + + springPanel.add(racePanel); + springPanel.add(raceLabel); + springPanel.add(raceComboBox); + springPanel.add(ageLabel); + springPanel.add(ageField); + springPanel.add(ageComboBox); + springPanel.add(createMonsterButton); + + springPanel.add(classPanel); + springPanel.add(classLabel); + springPanel.add(classComboBox); + springPanel.add(levelPanel); + springPanel.add(expLabel); + springPanel.add(expField); + springPanel.add(nextlevelLabel); + springPanel.add(nextlevelField); + springPanel.add(expmodLabel); + springPanel.add(expaddButton); + springPanel.add(expsubtractButton); + springPanel.add(expmodField); } private static Spring maxSpring(Spring... springs) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-27 07:55:20
|
Revision: 11544 http://pcgen.svn.sourceforge.net/pcgen/?rev=11544&view=rev Author: cpmeister Date: 2010-03-27 07:55:14 +0000 (Sat, 27 Mar 2010) Log Message: ----------- SummaryInfoTab update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-27 07:43:35 UTC (rev 11543) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-27 07:55:14 UTC (rev 11544) @@ -21,6 +21,7 @@ package pcgen.gui2.tabs; import java.awt.Font; +import java.awt.Graphics; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; @@ -37,7 +38,9 @@ import javax.swing.JComponent; import javax.swing.JFormattedTextField; import javax.swing.JLabel; +import javax.swing.JLayeredPane; import javax.swing.JPanel; +import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.Spring; @@ -49,6 +52,7 @@ import javax.swing.event.ListDataListener; import javax.swing.table.AbstractTableModel; import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang.math.NumberUtils; import pcgen.core.facade.AlignmentFacade; import pcgen.core.facade.CharacterFacade; import pcgen.core.facade.CharacterLevelFacade; @@ -417,9 +421,66 @@ } - private void initLevelTablePanel(JPanel panel) + private void initLevelScrollPane(JScrollPane pane) { - //panel.set + JButton addClassButton = createSignButton(Sign.Plus); + JButton removeClassButton = createSignButton(Sign.Minus); + JLabel addLevelLabel = new JLabel("Add Level"); + + JLayeredPane layeredPane = new JLayeredPane(); + layeredPane.add(classLevelTable, NumberUtils.INTEGER_ZERO); + layeredPane.add(addClassButton, NumberUtils.INTEGER_ONE); + layeredPane.add(removeClassButton, NumberUtils.INTEGER_ONE); + layeredPane.add(addLevelLabel, NumberUtils.INTEGER_ONE); + + SpringLayout layout = new SpringLayout(); + layeredPane.setLayout(layout); + layout.putConstraint(SpringLayout.NORTH, layeredPane, + 0, + SpringLayout.NORTH, classLevelTable); + layout.putConstraint(SpringLayout.WEST, layeredPane, + 0, + SpringLayout.WEST, classLevelTable); + layout.putConstraint(SpringLayout.EAST, layeredPane, + 0, + SpringLayout.EAST, classLevelTable); + layout.putConstraint(SpringLayout.SOUTH, layeredPane, + 0, + SpringLayout.SOUTH, classLevelTable); + + int rowheight = classLevelTable.getRowHeight(); + layout.putConstraint(SpringLayout.NORTH, addClassButton, + rowheight, + SpringLayout.SOUTH, classLevelTable); + layout.putConstraint(SpringLayout.SOUTH, addClassButton, + 0, + SpringLayout.SOUTH, classLevelTable); + layout.putConstraint(SpringLayout.EAST, addClassButton, + 0, + SpringLayout.EAST, classLevelTable); + + layout.putConstraint(SpringLayout.EAST, removeClassButton, + 0, + SpringLayout.EAST, classLevelTable); + layout.putConstraint(SpringLayout.NORTH, removeClassButton, + rowheight, + SpringLayout.NORTH, addClassButton); + layout.putConstraint(SpringLayout.SOUTH, removeClassButton, + 0, + SpringLayout.NORTH, addClassButton); + + layout.putConstraint(SpringLayout.NORTH, addLevelLabel, + rowheight, + SpringLayout.SOUTH, classLevelTable); + layout.putConstraint(SpringLayout.SOUTH, addLevelLabel, + 0, + SpringLayout.SOUTH, classLevelTable); + layout.putConstraint(SpringLayout.EAST, addLevelLabel, + 0, + SpringLayout.WEST, addClassButton); + + pane.setColumnHeaderView(classLevelTable.getTableHeader()); + pane.setViewportView(layeredPane); } private static JButton createSignButton(Sign sign) @@ -734,6 +795,23 @@ } + 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 { @@ -746,6 +824,7 @@ this.character = character; this.levels = character.getLevels(); resetLevelMap(); + levels.addListDataListener(this); } private void resetLevelMap() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-28 00:25:03
|
Revision: 11548 http://pcgen.svn.sourceforge.net/pcgen/?rev=11548&view=rev Author: cpmeister Date: 2010-03-28 00:24:56 +0000 (Sun, 28 Mar 2010) Log Message: ----------- SummaryInfoTab update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-27 22:39:00 UTC (rev 11547) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-28 00:24:56 UTC (rev 11548) @@ -20,6 +20,7 @@ */ package pcgen.gui2.tabs; +import java.awt.Component; import java.awt.Font; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; @@ -217,8 +218,7 @@ { Spring insetSpring = Spring.constant(racePanelInsets.left); Spring raceSpring = Spring.sum(insetSpring, Spring.width(raceLabel)); - Spring ageSpring = Spring.sum(insetSpring, Spring.sum(Spring.width(ageLabel), - Spring.width(ageField))); + Spring ageSpring = sumSpring(insetSpring, Spring.width(ageLabel), Spring.width(ageField)); Spring expSpring = Spring.sum(insetSpring, Spring.width(expLabel)); Spring levelSpring = Spring.sum(insetSpring, Spring.width(nextlevelLabel)); Spring expmodSpring = Spring.sum(insetSpring, Spring.width(expmodPanel)); @@ -280,9 +280,9 @@ layout.putConstraint(SpringLayout.NORTH, classPanel, 0, SpringLayout.SOUTH, racePanel); - layout.putConstraint(SpringLayout.SOUTH, classPanel, + layout.putConstraint(SpringLayout.SOUTH, springPanel, 0, - SpringLayout.SOUTH, springPanel); + SpringLayout.SOUTH, classPanel); setSpringLayerConstraints(layout, classPanel, classPanelInsets, comboBoxSpring, classLabel, classComboBox, null); @@ -292,7 +292,9 @@ setSpringLayerConstraints(layout, classPanel, classPanelInsets, levelPanel, classComboBox, 10); - + { + // + } setSpringLayerConstraints(layout, classPanel, classPanelInsets, comboBoxSpring, expLabel, expField, levelPanel); @@ -313,9 +315,9 @@ layout.putConstraint(SpringLayout.EAST, expmodPanel, 0, SpringLayout.WEST, expmodField); - layout.putConstraint(SpringLayout.SOUTH, expmodField, - -classPanelInsets.bottom, - SpringLayout.SOUTH, classPanel); + layout.putConstraint(SpringLayout.SOUTH, classPanel, + classPanelInsets.bottom, + SpringLayout.SOUTH, expmodField); springPanel.add(expmodPanel); springPanel.add(racePanel); springPanel.add(raceLabel); @@ -376,8 +378,78 @@ 0, SpringLayout.SOUTH, above); } + layout.putConstraint(SpringLayout.SOUTH, comp, + new PreferredHeightSpring(comp), + SpringLayout.NORTH, comp); } + private static class PreferredHeightSpring extends Spring + { + + private Component comp; + + public PreferredHeightSpring(Component comp) + { + this.comp = comp; + } + + protected int size = UNSET; + + public int getValue() + { + return size != UNSET ? size : getPreferredValue(); + } + + public void setValue(int size) + { + if (size == UNSET) + { + clear(); + return; + } + this.size = size; + } + + protected void clear() + { + size = UNSET; + } + + @Override + public int getMinimumValue() + { + return comp.getMinimumSize().height; + } + + @Override + public int getPreferredValue() + { + return comp.getPreferredSize().height; + } + + @Override + public int getMaximumValue() + { + return getPreferredValue(); + } + + } + + private static Spring sumSpring(Spring... springs) + { + if (springs.length > 0) + { + Spring spring = springs[0]; + if (springs.length == 1) + { + return spring; + } + springs = (Spring[]) ArrayUtils.remove(springs, 0); + return Spring.sum(spring, maxSpring(springs)); + } + throw new IllegalArgumentException(); + } + private static Spring maxSpring(Spring... springs) { if (springs.length > 0) @@ -422,6 +494,7 @@ panel.add(uarrowLabel, gbc2); gbc2.weightx = 0; + gbc2.weighty = 1; gbc2.fill = GridBagConstraints.BOTH; JScrollPane pane = new JScrollPane(); initLevelScrollPane(pane); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-28 04:54:09
|
Revision: 11550 http://pcgen.svn.sourceforge.net/pcgen/?rev=11550&view=rev Author: cpmeister Date: 2010-03-28 04:54:03 +0000 (Sun, 28 Mar 2010) Log Message: ----------- SummaryInfoTab minor update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-28 03:52:46 UTC (rev 11549) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-28 04:54:03 UTC (rev 11550) @@ -292,9 +292,7 @@ setSpringLayerConstraints(layout, classPanel, classPanelInsets, levelPanel, classComboBox, 10); - { - // - } + setSpringLayerConstraints(layout, classPanel, classPanelInsets, comboBoxSpring, expLabel, expField, levelPanel); @@ -517,6 +515,7 @@ layeredPane.setLayout(layout); JTableHeader tableHeader = classLevelTable.getTableHeader(); + tableHeader.setFont(new Font("Tahoma", Font.PLAIN, 12)); { TableColumnModel columnModel = new DefaultTableColumnModel(); columnModel.setColumnSelectionAllowed(false); @@ -586,19 +585,21 @@ { TableColumn column = new TableColumn(index); column.setHeaderValue(headerValue); + column.setHeaderRenderer(headerRenderer); if (!resizable) { - column.setHeaderRenderer(headerRenderer); column.sizeWidthToFit(); - column.setResizable(resizable); + column.setMaxWidth(column.getMaxWidth() + 10); + column.setPreferredWidth(column.getPreferredWidth() + 10); } + column.setResizable(resizable); return column; } private static JButton createSignButton(Sign sign) { JButton button = new JButton(); - button.setMargin(new Insets(0, 0, 0, 0)); + button.setMargin(new Insets(0, 8, 0, 8)); button.setIcon(new SignIcon(sign)); return button; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-30 18:59:27
|
Revision: 11573 http://pcgen.svn.sourceforge.net/pcgen/?rev=11573&view=rev Author: cpmeister Date: 2010-03-30 18:59:19 +0000 (Tue, 30 Mar 2010) Log Message: ----------- SummaryInfoTab minor update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-30 08:34:52 UTC (rev 11572) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-30 18:59:19 UTC (rev 11573) @@ -48,6 +48,7 @@ import javax.swing.JTextField; import javax.swing.Spring; import javax.swing.SpringLayout; +import javax.swing.SwingConstants; import javax.swing.border.TitledBorder; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -71,6 +72,7 @@ import pcgen.core.facade.GenderFacade; import pcgen.core.facade.RaceFacade; import pcgen.core.facade.SimpleFacade; +import pcgen.core.facade.StatFacade; import pcgen.gui2.tools.CharacterStateEditable; import pcgen.gui2.util.DefaultGenericListModel; import pcgen.gui2.util.DelegatingGenericComboBoxModel; @@ -218,6 +220,12 @@ */ racePanel.setOpaque(false); classPanel.setOpaque(false); + ageField.setHorizontalAlignment(SwingConstants.RIGHT); + expField.setHorizontalAlignment(SwingConstants.RIGHT); + nextlevelField.setHorizontalAlignment(SwingConstants.RIGHT); + nextlevelField.setEnabled(false); + expmodField.setHorizontalAlignment(SwingConstants.RIGHT); + JPanel expmodPanel = new JPanel(new GridBagLayout()); JPanel levelPanel = new JPanel(); JLabel raceLabel = createLabel("Race:"); @@ -492,11 +500,13 @@ JLabel uarrowLabel = new JLabel(); addLevelsButton.setMargin(new Insets(0, 8, 0, 8)); - addLevelsField.setColumns(5); + addLevelsField.setColumns(3); addLevelsField.setValue(1); + addLevelsField.setHorizontalAlignment(SwingConstants.RIGHT); removeLevelsButton.setMargin(new Insets(0, 8, 0, 8)); - removeLevelsField.setColumns(5); + removeLevelsField.setColumns(3); removeLevelsField.setValue(1); + removeLevelsField.setHorizontalAlignment(SwingConstants.RIGHT); GridBagConstraints gbc1 = new GridBagConstraints(); GridBagConstraints gbc2 = new GridBagConstraints(); @@ -594,7 +604,7 @@ 0, SpringLayout.SOUTH, classLevelTable); layout.putConstraint(SpringLayout.EAST, addLevelLabel, - 0, + -3, SpringLayout.WEST, addLevelButton); pane.setColumnHeaderView(tableHeader); @@ -948,7 +958,8 @@ ClassFacade c = (ClassFacade) classComboBox.getSelectedItem(); if (c != null) { - ClassFacade[] classes = new ClassFacade[(Integer) addLevelsField.getValue()]; + Number levels = (Number) addLevelsField.getValue(); + ClassFacade[] classes = new ClassFacade[levels.intValue()]; Arrays.fill(classes, c); character.addCharacterLevels(classes); } @@ -987,7 +998,8 @@ public void actionPerformed(ActionEvent e) { - character.removeCharacterLevels((Integer) removeLevelsField.getValue()); + Number levels = (Number) removeLevelsField.getValue(); + character.removeCharacterLevels(levels.intValue()); } } @@ -1092,9 +1104,53 @@ } - private class ClassLevelTableModel extends AbstractTableModel implements ListDataListener + private class StatTableModel extends AbstractTableModel implements ListDataListener { + private CharacterFacade character; + private GenericListModel<StatFacade> stats; + + public StatTableModel(CharacterFacade character) + { + this.character = character; + this.stats = character.getDataSet().getGameMode().getStats(); + } + + public int getRowCount() + { + return stats.getSize() + 1; + } + + public int getColumnCount() + { + return 5; + } + + public Object getValueAt(int rowIndex, int columnIndex) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void intervalAdded(ListDataEvent e) + { + fireTableRowsInserted(e.getIndex0(), e.getIndex1()); + } + + public void intervalRemoved(ListDataEvent e) + { + fireTableRowsDeleted(e.getIndex0(), e.getIndex1()); + } + + public void contentsChanged(ListDataEvent e) + { + fireTableRowsUpdated(e.getIndex0(), e.getIndex1()); + } + + } + + private static class ClassLevelTableModel extends AbstractTableModel implements ListDataListener + { + private GenericListModel<CharacterLevelFacade> levels; private Map<ClassFacade, Integer> finalLevelMap; private CharacterFacade character; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-05-09 05:38:00
|
Revision: 11772 http://pcgen.svn.sourceforge.net/pcgen/?rev=11772&view=rev Author: cpmeister Date: 2010-05-09 05:37:53 +0000 (Sun, 09 May 2010) Log Message: ----------- SummaryInfoTab's right panel's layout rewriten from scratch (it works this time) Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-09 03:29:36 UTC (rev 11771) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-09 05:37:53 UTC (rev 11772) @@ -20,7 +20,6 @@ */ package pcgen.gui2.tabs; -import java.awt.Component; import java.awt.Font; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; @@ -46,7 +45,6 @@ import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; -import javax.swing.Spring; import javax.swing.SpringLayout; import javax.swing.SwingConstants; import javax.swing.border.TitledBorder; @@ -61,7 +59,6 @@ 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; import pcgen.core.facade.CharacterFacade; @@ -78,7 +75,6 @@ import pcgen.core.facade.util.ListFacade; import pcgen.gui2.tools.CharacterStateEditable; import pcgen.gui2.util.DefaultGenericListModel; -import pcgen.gui2.util.DelegatingGenericComboBoxModel; import pcgen.gui2.util.FacadeComboBoxModel; import pcgen.gui2.util.GenericListModel; import pcgen.gui2.util.SignIcon; @@ -215,10 +211,9 @@ titleFont)); } - private void initRightPanel(JPanel springPanel) + private void initRightPanel(JPanel rightPanel) { - SpringLayout layout = new SpringLayout(); - springPanel.setLayout(layout); + rightPanel.setLayout(new GridBagLayout()); /* * initialize Components */ @@ -244,255 +239,86 @@ */ Insets racePanelInsets = racePanel.getInsets(); Insets classPanelInsets = classPanel.getInsets(); - Spring comboBoxSpring; - { - Spring insetSpring = Spring.constant(racePanelInsets.left); - Spring raceSpring = Spring.sum(insetSpring, Spring.width(raceLabel)); - Spring ageSpring = sumSpring(insetSpring, Spring.width(ageLabel), Spring.width(ageField)); - Spring expSpring = Spring.sum(insetSpring, Spring.width(expLabel)); - Spring levelSpring = Spring.sum(insetSpring, Spring.width(nextlevelLabel)); - Spring expmodSpring = Spring.sum(insetSpring, Spring.width(expmodPanel)); - comboBoxSpring = maxSpring(raceSpring, ageSpring, expSpring, levelSpring, expmodSpring); - } /* * racePanel */ - layout.putConstraint(SpringLayout.WEST, racePanel, - 0, - SpringLayout.WEST, springPanel); - layout.putConstraint(SpringLayout.NORTH, racePanel, - 0, - SpringLayout.NORTH, springPanel); - layout.putConstraint(SpringLayout.EAST, racePanel, - 0, - SpringLayout.EAST, springPanel); - layout.putConstraint(SpringLayout.SOUTH, racePanel, - racePanelInsets.bottom, - SpringLayout.SOUTH, createMonsterButton); - - - setSpringLayerConstraints(layout, racePanel, racePanelInsets, comboBoxSpring, - raceLabel, raceComboBox, null); - layout.putConstraint(SpringLayout.NORTH, raceComboBox, - racePanelInsets.top, - SpringLayout.NORTH, racePanel); - - setSpringLayerConstraints(layout, racePanel, racePanelInsets, comboBoxSpring, - ageLabel, ageComboBox, raceComboBox); - + GridBagConstraints gbc = new GridBagConstraints(); + gbc.fill = GridBagConstraints.BOTH; + gbc.insets = new Insets(racePanelInsets.top, racePanelInsets.left, 0, 0); + gbc.gridwidth = 2; + rightPanel.add(raceLabel, gbc); + gbc.insets = new Insets(racePanelInsets.top, 0, 0, racePanelInsets.right); + gbc.gridwidth = GridBagConstraints.REMAINDER; + rightPanel.add(raceComboBox, gbc); + gbc.insets = new Insets(0, racePanelInsets.left, 0, 0); + gbc.gridwidth = 1; + rightPanel.add(ageLabel, gbc); + gbc.insets.left = 0; + rightPanel.add(ageField, gbc); + gbc.gridwidth = GridBagConstraints.REMAINDER; + gbc.insets.right = racePanelInsets.right; + rightPanel.add(ageComboBox, gbc); + gbc.insets = new Insets(0, racePanelInsets.left, racePanelInsets.bottom, racePanelInsets.right); + rightPanel.add(createMonsterButton, gbc); /* - * ageField constraints - */ - layout.putConstraint(SpringLayout.WEST, ageField, - 0, - SpringLayout.EAST, ageLabel); - layout.putConstraint(SpringLayout.EAST, ageField, - 0, - SpringLayout.WEST, ageComboBox); - layout.putConstraint(SpringLayout.NORTH, ageField, - 0, - SpringLayout.NORTH, ageComboBox); - layout.putConstraint(SpringLayout.SOUTH, ageField, - 0, - SpringLayout.SOUTH, ageComboBox); - - setSpringLayerConstraints(layout, racePanel, racePanelInsets, - createMonsterButton, ageComboBox, 0); - /* * classPanel */ - layout.putConstraint(SpringLayout.WEST, classPanel, - 0, - SpringLayout.WEST, springPanel); - layout.putConstraint(SpringLayout.EAST, classPanel, - 0, - SpringLayout.EAST, springPanel); - layout.putConstraint(SpringLayout.NORTH, classPanel, - 0, - SpringLayout.SOUTH, racePanel); - layout.putConstraint(SpringLayout.SOUTH, springPanel, - 0, - SpringLayout.SOUTH, classPanel); + gbc.gridwidth = 2; + gbc.insets = new Insets(classPanelInsets.top, classPanelInsets.left, 0, 0); + rightPanel.add(classLabel, gbc); + gbc.gridwidth = GridBagConstraints.REMAINDER; + gbc.insets = new Insets(classPanelInsets.top, 0, 0, classPanelInsets.right); + rightPanel.add(classComboBox, gbc); - setSpringLayerConstraints(layout, classPanel, classPanelInsets, comboBoxSpring, - classLabel, classComboBox, null); - layout.putConstraint(SpringLayout.NORTH, classComboBox, - classPanelInsets.top, - SpringLayout.NORTH, classPanel); + gbc.weighty = 1; + gbc.fill = GridBagConstraints.HORIZONTAL; + gbc.anchor = GridBagConstraints.NORTH; + gbc.insets = new Insets(0, classPanelInsets.left, 0, classPanelInsets.right); + rightPanel.add(levelPanel, gbc); - setSpringLayerConstraints(layout, classPanel, classPanelInsets, - levelPanel, classComboBox, 10); + GridBagConstraints leftgbc = new GridBagConstraints(); + leftgbc.insets = new Insets(0, classPanelInsets.left, 0, 0); + leftgbc.gridwidth = 2; + leftgbc.fill = GridBagConstraints.BOTH; - setSpringLayerConstraints(layout, classPanel, classPanelInsets, comboBoxSpring, - expLabel, expField, levelPanel); + GridBagConstraints rightgbc = new GridBagConstraints(); + rightgbc.insets = new Insets(0, 0, 0, classPanelInsets.right); + rightgbc.gridwidth = GridBagConstraints.REMAINDER; + rightgbc.fill = GridBagConstraints.BOTH; - setSpringLayerConstraints(layout, classPanel, classPanelInsets, comboBoxSpring, - nextlevelLabel, nextlevelField, expField); + rightPanel.add(expLabel, leftgbc); + rightPanel.add(expField, rightgbc); + rightPanel.add(nextlevelLabel, leftgbc); + rightPanel.add(nextlevelField, rightgbc); - setSpringLayerConstraints(layout, classPanel, classPanelInsets, - expmodLabel, nextlevelField, 10); + gbc.weighty = 0; + rightPanel.add(expmodLabel, gbc); { - GridBagConstraints gbc = new GridBagConstraints(); - gbc.fill = GridBagConstraints.HORIZONTAL; - gbc.weightx = 1.0; - expmodPanel.add(expaddButton, gbc); - expmodPanel.add(expsubtractButton, gbc); + GridBagConstraints gbc2 = new GridBagConstraints(); + gbc2.fill = GridBagConstraints.HORIZONTAL; + gbc2.weightx = 1.0; + expmodPanel.add(expaddButton, gbc2); + expmodPanel.add(expsubtractButton, gbc2); } - setSpringLayerConstraints(layout, classPanel, classPanelInsets, comboBoxSpring, - expmodPanel, expmodField, expmodLabel); - layout.putConstraint(SpringLayout.EAST, expmodPanel, - 0, - SpringLayout.WEST, expmodField); - layout.putConstraint(SpringLayout.SOUTH, classPanel, - classPanelInsets.bottom, - SpringLayout.SOUTH, expmodField); - springPanel.add(expmodPanel); - springPanel.add(racePanel); - springPanel.add(raceLabel); - springPanel.add(raceComboBox); - springPanel.add(ageLabel); - springPanel.add(ageField); - springPanel.add(ageComboBox); - springPanel.add(createMonsterButton); + leftgbc.insets.bottom = classPanelInsets.bottom; + leftgbc.weightx = 0.3; + rightPanel.add(expmodPanel, leftgbc); + rightgbc.insets.bottom = classPanelInsets.bottom; + rightgbc.weightx = 0.7; + rightPanel.add(expmodField, rightgbc); - springPanel.add(classPanel); - springPanel.add(classLabel); - springPanel.add(classComboBox); - springPanel.add(levelPanel); - springPanel.add(expLabel); - springPanel.add(expField); - springPanel.add(nextlevelLabel); - springPanel.add(nextlevelField); - springPanel.add(expmodLabel); - springPanel.add(expmodField); - } + gbc = new GridBagConstraints(); + gbc.gridx = gbc.gridy = 0; + gbc.gridwidth = GridBagConstraints.REMAINDER; + gbc.gridheight = 3; + gbc.fill = GridBagConstraints.BOTH; + rightPanel.add(racePanel, gbc); - private static void setSpringLayerConstraints(SpringLayout layout, JPanel panel, Insets insets, - JComponent comp, JComponent above, int pad) - { - layout.putConstraint(SpringLayout.NORTH, comp, - pad, - SpringLayout.SOUTH, above); - layout.putConstraint(SpringLayout.WEST, comp, - insets.left, - SpringLayout.WEST, panel); - layout.putConstraint(SpringLayout.EAST, comp, - -insets.right, - SpringLayout.EAST, panel); + gbc.gridy = 3; + gbc.gridheight = GridBagConstraints.REMAINDER; + rightPanel.add(classPanel, gbc); } - private static void setSpringLayerConstraints(SpringLayout layout, JPanel panel, Insets insets, Spring compSpring, - JComponent label, JComponent comp, JComponent above) - { - layout.putConstraint(SpringLayout.WEST, label, - insets.left, - SpringLayout.WEST, panel); - layout.putConstraint(SpringLayout.NORTH, label, - 0, - SpringLayout.NORTH, comp); - layout.putConstraint(SpringLayout.SOUTH, label, - 0, - SpringLayout.SOUTH, comp); - - layout.putConstraint(SpringLayout.WEST, comp, - compSpring, - SpringLayout.WEST, panel); - layout.putConstraint(SpringLayout.EAST, comp, - -insets.right, - SpringLayout.EAST, panel); - if (above != null) - { - layout.putConstraint(SpringLayout.NORTH, comp, - 0, - SpringLayout.SOUTH, above); - } - layout.putConstraint(SpringLayout.SOUTH, comp, - new PreferredHeightSpring(comp), - SpringLayout.NORTH, comp); - } - - private static class PreferredHeightSpring extends Spring - { - - private Component comp; - - public PreferredHeightSpring(Component comp) - { - this.comp = comp; - } - - protected int size = UNSET; - - public int getValue() - { - return size != UNSET ? size : getPreferredValue(); - } - - public void setValue(int size) - { - if (size == UNSET) - { - clear(); - return; - } - this.size = size; - } - - protected void clear() - { - size = UNSET; - } - - @Override - public int getMinimumValue() - { - return comp.getMinimumSize().height; - } - - @Override - public int getPreferredValue() - { - return comp.getPreferredSize().height; - } - - @Override - public int getMaximumValue() - { - return getPreferredValue(); - } - - } - - private static Spring sumSpring(Spring... springs) - { - if (springs.length > 0) - { - Spring spring = springs[0]; - if (springs.length == 1) - { - return spring; - } - springs = (Spring[]) ArrayUtils.remove(springs, 0); - return Spring.sum(spring, maxSpring(springs)); - } - throw new IllegalArgumentException(); - } - - private static Spring maxSpring(Spring... springs) - { - if (springs.length > 0) - { - Spring spring = springs[0]; - if (springs.length == 1) - { - return spring; - } - springs = (Spring[]) ArrayUtils.remove(springs, 0); - return Spring.max(spring, maxSpring(springs)); - } - throw new IllegalArgumentException(); - } - private void initLevelPanel(JPanel panel) { panel.setLayout(new GridBagLayout()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-05-10 03:30:50
|
Revision: 11797 http://pcgen.svn.sourceforge.net/pcgen/?rev=11797&view=rev Author: cpmeister Date: 2010-05-10 03:30:43 +0000 (Mon, 10 May 2010) Log Message: ----------- Stats Table second pass Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-10 02:22:24 UTC (rev 11796) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-10 03:30:43 UTC (rev 11797) @@ -20,6 +20,7 @@ */ package pcgen.gui2.tabs; +import java.awt.Component; import java.awt.Font; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; @@ -44,6 +45,7 @@ import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; +import javax.swing.Spring; import javax.swing.SpringLayout; import javax.swing.SwingConstants; import javax.swing.border.TitledBorder; @@ -90,6 +92,7 @@ private static final Font titleFont = new Font("Tahoma", Font.BOLD, 14); private static final Font labelFont = new Font("Tahoma", Font.BOLD, 12); + private static final int levelTableRowHeight = 18; private final JPanel basicsPanel; private final JPanel todoPanel; private final JPanel scoresPanel; @@ -182,7 +185,7 @@ setPanelTitle(basicsPanel, "Character Basics"); basicsPanel.setLayout(new GridBagLayout()); gbc.fill = GridBagConstraints.BOTH; - gbc.weightx = 0.2; + gbc.weightx = 0.1; add(basicsPanel, gbc); setPanelTitle(todoPanel, "Things To Be Done"); @@ -200,7 +203,7 @@ setPanelTitle(racePanel, "Race"); setPanelTitle(classPanel, "Class & Level"); initRightPanel(rightPanel); - gbc.weightx = .3; + gbc.weightx = .1; gbc.weighty = 1; add(rightPanel, gbc); } @@ -217,6 +220,25 @@ private void initMiddlePanel(JPanel middlePanel) { middlePanel.setLayout(new GridBagLayout()); + + statsTable.setAutoCreateColumnsFromModel(false); + DefaultTableColumnModel columnModel = new DefaultTableColumnModel(); + { + columnModel.addColumn(createTableColumn(0, "Ability", null, true)); + columnModel.addColumn(createTableColumn(1, "Score", null, true)); + String htmlText = "<html><p align=\"center\">Ability<br>Mod</p></html>"; + columnModel.addColumn(createTableColumn(2, htmlText, + new FixedHeaderCellRenderer(htmlText), true)); + columnModel.addColumn(createTableColumn(3, "Editable Score", null, true)); + htmlText = "<html><p align=\"center\">Race<br>Mod</p></html>"; + columnModel.addColumn(createTableColumn(4, htmlText, + new FixedHeaderCellRenderer(htmlText), true)); + htmlText = "<html><p align=\"center\">Misc<br>Mod</p></html>"; + columnModel.addColumn(createTableColumn(5, htmlText, + new FixedHeaderCellRenderer(htmlText), true)); + } + statsTable.setColumnModel(columnModel); + statsTable.setShowVerticalLines(false); GridBagConstraints gbc = new GridBagConstraints(); gbc.gridwidth = GridBagConstraints.REMAINDER; gbc.weightx = 1; @@ -225,6 +247,25 @@ middlePanel.add(new JScrollPane(statsTable), gbc); } + /* + * This class is a hack that gives the TableHeaderUI a dummy component to + * so that it can be used when calculating the height of the JTableHeader. + */ + private static class FixedHeaderCellRenderer extends JLabel implements TableCellRenderer + { + + public FixedHeaderCellRenderer(String text) + { + setText(text); + } + + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) + { + return table.getTableHeader().getDefaultRenderer().getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); + } + + } + private void initRightPanel(JPanel rightPanel) { rightPanel.setLayout(new GridBagLayout()); @@ -407,8 +448,9 @@ classLevelTable.setColumnModel(columnModel); classLevelTable.setAutoCreateColumnsFromModel(false); classLevelTable.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN); - classLevelTable.setCellSelectionEnabled(false); - classLevelTable.setRowHeight(20); + //classLevelTable.setCellSelectionEnabled(false); + classLevelTable.setFocusable(false); + classLevelTable.setRowHeight(levelTableRowHeight); tableHeader.setResizingAllowed(false); tableHeader.setReorderingAllowed(false); } @@ -426,7 +468,9 @@ 0, SpringLayout.SOUTH, classLevelTable); - int rowheight = classLevelTable.getRowHeight(); + //SpringLayout.Constraints constraints = layout.getConstraints(addLevelButton); + //constraints.setHeight(Spring.constant(levelTableRowHeight)); + int rowheight = levelTableRowHeight; layout.putConstraint(SpringLayout.NORTH, addLevelButton, -rowheight, SpringLayout.SOUTH, classLevelTable); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-05-10 23:51:06
|
Revision: 11798 http://pcgen.svn.sourceforge.net/pcgen/?rev=11798&view=rev Author: cpmeister Date: 2010-05-10 23:50:59 +0000 (Mon, 10 May 2010) Log Message: ----------- UI update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-10 03:30:43 UTC (rev 11797) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-10 23:50:59 UTC (rev 11798) @@ -26,27 +26,28 @@ import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.text.NumberFormat; import java.util.Arrays; import java.util.HashMap; import java.util.Hashtable; import java.util.Map; import javax.swing.AbstractAction; +import javax.swing.AbstractCellEditor; import javax.swing.Action; import javax.swing.BorderFactory; +import javax.swing.Box; +import javax.swing.BoxLayout; 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.JLayeredPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; -import javax.swing.Spring; -import javax.swing.SpringLayout; import javax.swing.SwingConstants; import javax.swing.border.TitledBorder; import javax.swing.event.DocumentEvent; @@ -55,11 +56,11 @@ import javax.swing.table.AbstractTableModel; import javax.swing.table.DefaultTableColumnModel; import javax.swing.table.JTableHeader; +import javax.swing.table.TableCellEditor; 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.math.NumberUtils; import pcgen.core.facade.AlignmentFacade; import pcgen.core.facade.CharacterFacade; import pcgen.core.facade.CharacterLevelFacade; @@ -92,7 +93,7 @@ private static final Font titleFont = new Font("Tahoma", Font.BOLD, 14); private static final Font labelFont = new Font("Tahoma", Font.BOLD, 12); - private static final int levelTableRowHeight = 18; + private static final int levelTableRowHeight = 20; private final JPanel basicsPanel; private final JPanel todoPanel; private final JPanel scoresPanel; @@ -124,8 +125,6 @@ private final JButton createMonsterButton; private final JButton expaddButton; private final JButton expsubtractButton; - private final JButton addLevelButton; - private final JButton removeLevelButton; private final JButton addLevelsButton; private final JButton removeLevelsButton; @@ -160,8 +159,6 @@ this.descTabButton = new JButton(); this.sheetTabButton = new JButton(); this.createMonsterButton = new JButton(); - this.addLevelButton = new JButton(); - this.removeLevelButton = new JButton(); this.addLevelsButton = new JButton(); this.removeLevelsButton = new JButton(); this.expaddButton = createSignButton(Sign.Plus); @@ -421,88 +418,26 @@ private void initLevelScrollPane(JScrollPane pane) { - //JButton addClassButton = createSignButton(Sign.Plus); - //JButton removeClassButton = createSignButton(Sign.Minus); - JLabel addLevelLabel = new JLabel("Add Level"); - addLevelButton.setMargin(new Insets(0, 8, 0, 8)); - removeLevelButton.setMargin(new Insets(0, 8, 0, 8)); - JLayeredPane layeredPane = new JLayeredPane(); - layeredPane.add(classLevelTable, NumberUtils.INTEGER_ZERO); - layeredPane.add(addLevelButton, NumberUtils.INTEGER_ONE); - layeredPane.add(removeLevelButton, NumberUtils.INTEGER_ONE); - layeredPane.add(addLevelLabel, NumberUtils.INTEGER_ONE); - - SpringLayout layout = new SpringLayout(); - layeredPane.setLayout(layout); - JTableHeader tableHeader = classLevelTable.getTableHeader(); tableHeader.setFont(new Font("Tahoma", Font.PLAIN, 12)); - { - 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); - classLevelTable.setFocusable(false); - classLevelTable.setRowHeight(levelTableRowHeight); - tableHeader.setResizingAllowed(false); - tableHeader.setReorderingAllowed(false); - } - layout.putConstraint(SpringLayout.NORTH, layeredPane, - 0, - SpringLayout.NORTH, classLevelTable); - layout.putConstraint(SpringLayout.WEST, layeredPane, - 0, - SpringLayout.WEST, classLevelTable); - layout.putConstraint(SpringLayout.EAST, layeredPane, - 0, - SpringLayout.EAST, classLevelTable); - layout.putConstraint(SpringLayout.SOUTH, layeredPane, - 0, - SpringLayout.SOUTH, classLevelTable); + 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.setFocusable(false); + classLevelTable.setRowHeight(levelTableRowHeight); + tableHeader.setResizingAllowed(false); + tableHeader.setReorderingAllowed(false); + classLevelTable.setRowSelectionAllowed(false); - //SpringLayout.Constraints constraints = layout.getConstraints(addLevelButton); - //constraints.setHeight(Spring.constant(levelTableRowHeight)); - int rowheight = levelTableRowHeight; - layout.putConstraint(SpringLayout.NORTH, addLevelButton, - -rowheight, - SpringLayout.SOUTH, classLevelTable); - layout.putConstraint(SpringLayout.SOUTH, addLevelButton, - 0, - SpringLayout.SOUTH, classLevelTable); - layout.putConstraint(SpringLayout.EAST, addLevelButton, - 0, - SpringLayout.EAST, classLevelTable); - - layout.putConstraint(SpringLayout.EAST, removeLevelButton, - 0, - SpringLayout.EAST, classLevelTable); - layout.putConstraint(SpringLayout.NORTH, removeLevelButton, - -rowheight, - SpringLayout.NORTH, addLevelButton); - layout.putConstraint(SpringLayout.SOUTH, removeLevelButton, - 0, - SpringLayout.NORTH, addLevelButton); - - layout.putConstraint(SpringLayout.NORTH, addLevelLabel, - -rowheight, - SpringLayout.SOUTH, classLevelTable); - layout.putConstraint(SpringLayout.SOUTH, addLevelLabel, - 0, - SpringLayout.SOUTH, classLevelTable); - layout.putConstraint(SpringLayout.EAST, addLevelLabel, - -3, - SpringLayout.WEST, addLevelButton); - - pane.setColumnHeaderView(tableHeader); - pane.setViewportView(layeredPane); + pane.setViewportView(classLevelTable); } private static TableColumn createTableColumn(int index, String headerValue, @@ -728,10 +663,8 @@ stateTable.put(Models.DeityComboBoxModel, deityModel); stateTable.put(Models.RaceComboBoxModel, raceModel); stateTable.put(Models.ClassComboBoxModel, classModel); - stateTable.put(Models.LevelTableModel, new ClassLevelTableModel(character)); - stateTable.put(Models.AddLevelAction, new AddLevelAction(character)); + stateTable.put(Models.ClassLevelTableHandler, new ClassLevelTableHandler(character)); stateTable.put(Models.AddLevelsAction, new AddLevelsAction(character)); - stateTable.put(Models.RemoveLevelAction, new RemoveLevelAction(character)); stateTable.put(Models.RemoveLevelsAction, new RemoveLevelsAction(character)); stateTable.put(Models.StatTableModel, new StatTableModel(character)); return stateTable; @@ -749,10 +682,8 @@ DeityComboBoxModel, RaceComboBoxModel, ClassComboBoxModel, - LevelTableModel, - AddLevelAction, + ClassLevelTableHandler, AddLevelsAction, - RemoveLevelAction, RemoveLevelsAction, StatTableModel } @@ -775,40 +706,16 @@ deityComboBox.setModel((ComboBoxModel) state.get(Models.DeityComboBoxModel)); raceComboBox.setModel((ComboBoxModel) state.get(Models.RaceComboBoxModel)); classComboBox.setModel((ComboBoxModel) state.get(Models.ClassComboBoxModel)); - classLevelTable.setModel((TableModel) state.get(Models.LevelTableModel)); - addLevelButton.setAction((Action) state.get(Models.AddLevelAction)); + ClassLevelTableHandler handler = (ClassLevelTableHandler) state.get(Models.ClassLevelTableHandler); + classLevelTable.setModel(handler); + classLevelTable.setDefaultRenderer(Object.class, handler.getRenderer()); + classLevelTable.setDefaultEditor(Object.class, handler.getEditor()); addLevelsButton.setAction((Action) state.get(Models.AddLevelsAction)); - removeLevelButton.setAction((Action) state.get(Models.RemoveLevelAction)); removeLevelsButton.setAction((Action) state.get(Models.RemoveLevelsAction)); statsTable.setModel((TableModel) state.get(Models.StatTableModel)); resetBasicsPanel(); } - private class AddLevelAction extends AbstractAction - { - - private CharacterFacade character; - - public AddLevelAction(CharacterFacade character) - { - this.character = character; - putValue(SMALL_ICON, new SignIcon(Sign.Plus)); - } - - public void actionPerformed(ActionEvent e) - { - ClassFacade c = (ClassFacade) classComboBox.getSelectedItem(); - if (c != null) - { - character.addCharacterLevels(new ClassFacade[] - { - c - }); - } - } - - } - private class AddLevelsAction extends AbstractAction { @@ -834,24 +741,6 @@ } - private class RemoveLevelAction extends AbstractAction - { - - private CharacterFacade character; - - public RemoveLevelAction(CharacterFacade character) - { - this.character = character; - putValue(SMALL_ICON, new SignIcon(Sign.Minus)); - } - - public void actionPerformed(ActionEvent e) - { - character.removeCharacterLevels(1); - } - - } - private class RemoveLevelsAction extends AbstractAction { @@ -1084,14 +973,17 @@ } - private static class ClassLevelTableModel extends AbstractTableModel implements ListListener + private class ClassLevelTableHandler extends AbstractTableModel + implements ListListener { private ListFacade<CharacterLevelFacade> levels; private Map<ClassFacade, Integer> finalLevelMap; private CharacterFacade character; + private Editor editor = new Editor(); + private Renderer renderer = new Renderer(); - public ClassLevelTableModel(CharacterFacade character) + public ClassLevelTableHandler(CharacterFacade character) { this.character = character; this.levels = character.getLevels(); @@ -1100,6 +992,16 @@ levels.addListListener(this); } + public TableCellEditor getEditor() + { + return editor; + } + + public TableCellRenderer getRenderer() + { + return renderer; + } + private void resetLevelMap() { finalLevelMap.clear(); @@ -1124,6 +1026,12 @@ } @Override + public boolean isCellEditable(int rowIndex, int columnIndex) + { + return rowIndex >= levels.getSize() - 1 && columnIndex == 2; + } + + @Override public Class<?> getColumnClass(int columnIndex) { switch (columnIndex) @@ -1162,6 +1070,7 @@ public void elementAdded(ListEvent e) { + editor.cancelCellEditing(); int i = e.getIndex(); ClassFacade c = levels.getElementAt(i).getSelectedClass(); finalLevelMap.put(c, i); @@ -1170,16 +1079,136 @@ public void elementRemoved(ListEvent e) { + editor.cancelCellEditing(); resetLevelMap(); fireTableRowsDeleted(e.getIndex(), e.getIndex()); } public void elementsChanged(ListEvent e) { + editor.cancelCellEditing(); resetLevelMap(); fireTableDataChanged(); } + private class Renderer implements TableCellRenderer + { + + private JPanel cellPanel = new JPanel(); + private JLabel cellLabel = new JLabel(); + private JButton addLevelButton = createSignButton(Sign.Plus); + private JButton removeLevelButton = createSignButton(Sign.Minus); + + public Renderer() + { + cellPanel.setLayout(new BoxLayout(cellPanel, BoxLayout.X_AXIS)); + cellPanel.setOpaque(true); + } + + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) + { + cellPanel.removeAll(); + cellPanel.setBackground(table.getBackground()); + cellPanel.setForeground(table.getForeground()); + cellLabel.setFont(table.getFont()); + + if (row == levels.getSize() - 1) + { + cellLabel.setText(value.toString()); + cellPanel.add(cellLabel); + cellPanel.add(Box.createHorizontalGlue()); + cellPanel.add(removeLevelButton); + } + else if (row == levels.getSize()) + { + cellLabel.setText("Add Level"); + cellPanel.add(Box.createHorizontalGlue()); + cellPanel.add(cellLabel); + cellPanel.add(Box.createHorizontalStrut(3)); + cellPanel.add(addLevelButton); + } + else + { + cellLabel.setText(value.toString()); + cellPanel.add(cellLabel); + } + return cellPanel; + } + + } + + private class Editor extends AbstractCellEditor + implements TableCellEditor, ActionListener + { + + private JPanel cellPanel = new JPanel(); + private JLabel cellLabel = new JLabel(); + private JButton addLevelButton = createSignButton(Sign.Plus); + private JButton removeLevelButton = createSignButton(Sign.Minus); + + public Editor() + { + cellPanel.setLayout(new BoxLayout(cellPanel, BoxLayout.X_AXIS)); + cellPanel.setOpaque(true); + addLevelButton.setActionCommand("ADD"); + removeLevelButton.setActionCommand("REMOVE"); + addLevelButton.addActionListener(this); + removeLevelButton.addActionListener(this); + } + + public Object getCellEditorValue() + { + return null; + } + + public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) + { + cellPanel.removeAll(); + cellPanel.setBackground(table.getBackground()); + cellPanel.setForeground(table.getForeground()); + cellLabel.setFont(table.getFont()); + + if (row == levels.getSize()) + { + cellLabel.setText("Add Level"); + cellPanel.add(Box.createHorizontalGlue()); + cellPanel.add(cellLabel); + cellPanel.add(Box.createHorizontalStrut(3)); + cellPanel.add(addLevelButton); + } + else + { + cellLabel.setText(value.toString()); + cellPanel.add(cellLabel); + cellPanel.add(Box.createHorizontalGlue()); + cellPanel.add(removeLevelButton); + } + return cellPanel; + } + + public void actionPerformed(ActionEvent e) + { + String command = e.getActionCommand(); + if (command.equals("ADD")) + { + ClassFacade c = (ClassFacade) classComboBox.getSelectedItem(); + if (c != null) + { + character.addCharacterLevels(new ClassFacade[] + { + c + }); + } + } + else + { + character.removeCharacterLevels(1); + } + cancelCellEditing(); + } + + } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-05-23 00:06:05
|
Revision: 11943 http://pcgen.svn.sourceforge.net/pcgen/?rev=11943&view=rev Author: cpmeister Date: 2010-05-23 00:05:59 +0000 (Sun, 23 May 2010) Log Message: ----------- Summary Tab update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-22 23:31:22 UTC (rev 11942) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-23 00:05:59 UTC (rev 11943) @@ -28,8 +28,8 @@ import java.awt.event.ActionEvent; import java.io.BufferedWriter; import java.io.File; +import java.io.StringReader; import java.io.StringWriter; -import java.net.MalformedURLException; import java.text.NumberFormat; import java.util.Arrays; import java.util.Hashtable; @@ -49,10 +49,12 @@ import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.SwingConstants; +import javax.swing.SwingUtilities; import javax.swing.border.TitledBorder; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.event.ListDataEvent; +import javax.swing.text.EditorKit; import javax.swing.text.html.HTMLDocument; import pcgen.core.facade.AlignmentFacade; @@ -266,14 +268,15 @@ try { doc.setBase(templateFile.getParentFile().toURL()); + EditorKit kit = infoHtmlPanel.getEditorKit(); + StringReader r = new StringReader(out.toString()); + kit.read(r, doc, 0); infoHtmlPanel.setDocument(doc); - infoHtmlPanel.setText(out.toString()); } - catch (MalformedURLException e) + catch (Exception e) { Logging.errorPrint("Could not get parent of load template file " + "for info panel.", e); } - } private void initRightPanel(JPanel rightPanel) @@ -773,7 +776,15 @@ public void install() { - refreshInfoPanel(currentInfoTemplateFile, character); + SwingUtilities.invokeLater(new Runnable() + { + + public void run() + { + refreshInfoPanel(currentInfoTemplateFile, character); + } + + }); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-05-23 01:58:59
|
Revision: 11945 http://pcgen.svn.sourceforge.net/pcgen/?rev=11945&view=rev Author: cpmeister Date: 2010-05-23 01:58:52 +0000 (Sun, 23 May 2010) Log Message: ----------- Summary Tab speed experiment Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-23 00:15:17 UTC (rev 11944) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-23 01:58:52 UTC (rev 11945) @@ -28,6 +28,9 @@ import java.awt.event.ActionEvent; import java.io.BufferedWriter; import java.io.File; +import java.io.IOException; +import java.io.PipedReader; +import java.io.PipedWriter; import java.io.StringReader; import java.io.StringWriter; import java.text.NumberFormat; @@ -49,11 +52,11 @@ import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.SwingConstants; -import javax.swing.SwingUtilities; import javax.swing.border.TitledBorder; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.event.ListDataEvent; +import javax.swing.text.BadLocationException; import javax.swing.text.EditorKit; import javax.swing.text.html.HTMLDocument; @@ -76,6 +79,7 @@ import pcgen.gui2.util.FacadeComboBoxModel; import pcgen.gui2.util.SignIcon; import pcgen.gui2.util.SignIcon.Sign; +import pcgen.gui2.util.SwingWorker; import pcgen.gui2.util.event.ListDataAdapter; import pcgen.io.ExportHandler; import pcgen.util.Logging; @@ -239,7 +243,7 @@ private void initLowerMiddlePanel() { infoHtmlPanel.setOpaque(false); - + infoHtmlPanel.setContentType("text/html"); //refreshInfoPanel(currentInfoTemplateFile, null); } @@ -256,7 +260,7 @@ { return; } - +// File templateFile = new File(infoTemplateFile); ExportHandler theHandler = new ExportHandler(templateFile); final StringWriter out = new StringWriter(); @@ -776,15 +780,67 @@ public void install() { - SwingUtilities.invokeLater(new Runnable() + new Thread(new InfoPaneRefresher()).start(); +// SwingUtilities.invokeLater(new Runnable(){ +// +// public void run() +// { +// refreshInfoPanel(currentInfoTemplateFile, character); +// } +// +// }); + } + + private class InfoPaneRefresher extends SwingWorker<HTMLDocument> implements Runnable + { + + private File templateFile = new File(currentInfoTemplateFile); + private PipedReader reader = new PipedReader(); + + public void run() { + ExportHandler theHandler = new ExportHandler(templateFile); + try + { + PipedWriter writer = new PipedWriter(reader); + start(); + character.export(theHandler, new BufferedWriter(writer, 1)); + writer.close(); + } + catch (IOException ex) + { + Logging.errorPrint("Could not get parent of load template file " + "for info panel.", ex); + } + } - public void run() + @Override + public HTMLDocument construct() + { + EditorKit kit = infoHtmlPanel.getEditorKit(); + HTMLDocument doc = new HTMLDocument(); + try { - refreshInfoPanel(currentInfoTemplateFile, character); + doc.setBase(templateFile.getParentFile().toURL()); + kit.read(reader, doc, 0); + reader.close(); } + catch (IOException ex) + { + Logging.errorPrint("Could not get parent of load template file " + "for info panel.", ex); + } + catch (BadLocationException ex) + { + Logging.errorPrint("Could not get parent of load template file " + "for info panel.", ex); + } + return doc; + } - }); + @Override + public void finished() + { + infoHtmlPanel.setDocument(getValue()); + } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-05-23 02:04:13
|
Revision: 11946 http://pcgen.svn.sourceforge.net/pcgen/?rev=11946&view=rev Author: cpmeister Date: 2010-05-23 02:04:07 +0000 (Sun, 23 May 2010) Log Message: ----------- Summary Tab speed experiment Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-23 01:58:52 UTC (rev 11945) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-23 02:04:07 UTC (rev 11946) @@ -699,6 +699,7 @@ ((TabNameHandler) state.get(Models.TabNameHandler)).uninstall(); ((LanguageTableModel) state.get(Models.LanguageTableModel)).uninstall(); ((ClassLevelTableModel) state.get(Models.ClassLevelTableModel)).uninstall(); + ((InfoPaneHandler) state.get(Models.InfoPaneModel)).uninstall(); } public void restoreState(Hashtable<?, ?> state) @@ -771,6 +772,7 @@ private String currentInfoTemplateFile; private CharacterFacade character; + private boolean installed = false; public InfoPaneHandler(CharacterFacade character) { @@ -780,6 +782,7 @@ public void install() { + installed = true; new Thread(new InfoPaneRefresher()).start(); // SwingUtilities.invokeLater(new Runnable(){ // @@ -791,6 +794,11 @@ // }); } + public void uninstall() + { + installed = false; + } + private class InfoPaneRefresher extends SwingWorker<HTMLDocument> implements Runnable { @@ -809,7 +817,8 @@ } catch (IOException ex) { - Logging.errorPrint("Could not get parent of load template file " + "for info panel.", ex); + Logging.errorPrint("Could not get parent of load template file " + + "for info panel.", ex); } } @@ -826,11 +835,13 @@ } catch (IOException ex) { - Logging.errorPrint("Could not get parent of load template file " + "for info panel.", ex); + Logging.errorPrint("Could not get parent of load template file " + + "for info panel.", ex); } catch (BadLocationException ex) { - Logging.errorPrint("Could not get parent of load template file " + "for info panel.", ex); + Logging.errorPrint("Could not get parent of load template file " + + "for info panel.", ex); } return doc; } @@ -838,7 +849,10 @@ @Override public void finished() { - infoHtmlPanel.setDocument(getValue()); + if (installed) + { + infoHtmlPanel.setDocument(getValue()); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-05-23 03:41:17
|
Revision: 11949 http://pcgen.svn.sourceforge.net/pcgen/?rev=11949&view=rev Author: cpmeister Date: 2010-05-23 03:41:10 +0000 (Sun, 23 May 2010) Log Message: ----------- Summary Tab UI update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-23 02:32:29 UTC (rev 11948) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-23 03:41:10 UTC (rev 11949) @@ -20,7 +20,8 @@ */ package pcgen.gui2.tabs; -import java.awt.Dimension; +import java.awt.BorderLayout; +import java.awt.Color; import java.awt.Font; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; @@ -97,7 +98,6 @@ private final JPanel basicsPanel; private final JPanel todoPanel; private final JPanel scoresPanel; - private final JPanel infoPanel; private final JPanel racePanel; private final JPanel classPanel; private final JTextField characterNameField; @@ -131,7 +131,6 @@ this.basicsPanel = new JPanel(); this.todoPanel = new JPanel(); this.scoresPanel = new JPanel(); - this.infoPanel = new JPanel(); this.racePanel = new JPanel(); this.classPanel = new JPanel(); this.characterNameField = new JTextField(); @@ -176,42 +175,24 @@ basicsPanel.setLayout(new GridBagLayout()); gbc.fill = GridBagConstraints.BOTH; gbc.weightx = 0.1; - gbc.weighty = .4; - gbc.gridheight = 2; + gbc.weighty = .7; add(basicsPanel, gbc); setPanelTitle(todoPanel, "Things To Be Done"); - gbc.gridy = 2; + gbc.gridy = 1; gbc.gridheight = GridBagConstraints.REMAINDER; add(todoPanel, gbc); setPanelTitle(scoresPanel, "Ability Scores"); initMiddlePanel(scoresPanel); gbc.gridy = GridBagConstraints.RELATIVE; - gbc.gridheight = 1; gbc.weightx = 1; - gbc.weighty = .3; add(scoresPanel, gbc); - setPanelTitle(infoHtmlPanel, ""); - initLowerMiddlePanel(); - gbc.weighty = .8; - gbc.gridy = 1; - gbc.gridheight = GridBagConstraints.REMAINDER; - // By default the minimum size is tiny, so make it a more realistic value, helping the layout - Dimension size = infoHtmlPanel.getMinimumSize(); - if (size.height < 150) - { - size.height = 150; - } - infoHtmlPanel.setMinimumSize(size); - add(infoHtmlPanel, gbc); - JPanel rightPanel = new JPanel(); setPanelTitle(racePanel, "Race"); setPanelTitle(classPanel, "Class & Level"); initRightPanel(rightPanel); - gbc.gridy = GridBagConstraints.RELATIVE; gbc.weightx = .1; gbc.weighty = 1; add(rightPanel, gbc); @@ -230,21 +211,28 @@ { middlePanel.setLayout(new GridBagLayout()); StatTableModel.initializeTable(statsTable); + //TODO: make this update during calls to updateUI() + statsTable.setBackground(middlePanel.getBackground()); GridBagConstraints gbc = new GridBagConstraints(); gbc.gridwidth = GridBagConstraints.REMAINDER; - //gbc.weightx = 1; + gbc.weighty = 1; - gbc.fill = GridBagConstraints.BOTH; + gbc.fill = GridBagConstraints.VERTICAL; gbc.ipadx = 370; - middlePanel.add(new JScrollPane(statsTable), gbc); - } + JScrollPane pane = new JScrollPane(statsTable); + pane.setBorder(BorderFactory.createEmptyBorder()); + middlePanel.add(pane, gbc); - private void initLowerMiddlePanel() - { infoHtmlPanel.setOpaque(false); infoHtmlPanel.setContentType("text/html"); - //refreshInfoPanel(currentInfoTemplateFile, null); + gbc = new GridBagConstraints(); + gbc.weightx = 1; + gbc.weighty = 1; + gbc.fill = GridBagConstraints.BOTH; + pane = new JScrollPane(infoHtmlPanel); + pane.setBorder(BorderFactory.createEmptyBorder()); + middlePanel.add(pane, gbc); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-05-24 18:41:09
|
Revision: 11963 http://pcgen.svn.sourceforge.net/pcgen/?rev=11963&view=rev Author: cpmeister Date: 2010-05-24 18:41:03 +0000 (Mon, 24 May 2010) Log Message: ----------- Fixed memory leak Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-24 12:48:16 UTC (rev 11962) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-24 18:41:03 UTC (rev 11963) @@ -731,6 +731,7 @@ public void uninstall() { characterNameField.getDocument().removeDocumentListener(this); + character.getNameRef().removeReferenceListener(this); } public void actionPerformed(ActionEvent e) @@ -786,6 +787,7 @@ public void uninstall() { playerNameField.getDocument().removeDocumentListener(this); + character.getPlayersNameRef().removeReferenceListener(this); } public void insertUpdate(DocumentEvent e) @@ -833,7 +835,7 @@ public void uninstall() { tabLabelField.getDocument().removeDocumentListener(this); - //character.getTabNameRef().removeReferenceListener(this); + character.getTabNameRef().removeReferenceListener(this); } public void insertUpdate(DocumentEvent e) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-05-30 06:19:15
|
Revision: 12014 http://pcgen.svn.sourceforge.net/pcgen/?rev=12014&view=rev Author: cpmeister Date: 2010-05-30 06:19:09 +0000 (Sun, 30 May 2010) Log Message: ----------- Added hack to get class combo box to render selected classes correctly Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-30 04:13:45 UTC (rev 12013) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-05-30 06:19:09 UTC (rev 12014) @@ -71,6 +71,7 @@ import pcgen.gui2.util.FacadeListModel; import pcgen.gui2.util.SignIcon; import pcgen.gui2.util.SignIcon.Sign; +import pcgen.gui2.util.SimpleTextIcon; /** * @@ -482,7 +483,8 @@ } }; - handsModel = new CharacterComboBoxModel<SimpleFacade>(){ + handsModel = new CharacterComboBoxModel<SimpleFacade>() + { public void setSelectedItem(Object anItem) { @@ -495,11 +497,12 @@ public void setSelectedItem(Object anItem) { - character.setAlignment((AlignmentFacade)anItem); + character.setAlignment((AlignmentFacade) anItem); } }; - deityModel = new CharacterComboBoxModel<DeityFacade>(){ + deityModel = new CharacterComboBoxModel<DeityFacade>() + { public void setSelectedItem(Object anItem) { @@ -507,11 +510,12 @@ } }; - raceModel = new CharacterComboBoxModel<RaceFacade>(){ + raceModel = new CharacterComboBoxModel<RaceFacade>() + { public void setSelectedItem(Object anItem) { - character.setRace((RaceFacade)anItem); + character.setRace((RaceFacade) anItem); } }; @@ -679,7 +683,15 @@ super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); if (value instanceof ClassFacade && !character.isQualifiedFor((ClassFacade) value)) { - setForeground(UIPropertyContext.getNotQualifiedColor()); + if (index == -1) + {// this is a hack to prevent the combobox from overwriting the text color + setText(""); + setIcon(new SimpleTextIcon(list, value.toString(), UIPropertyContext.getNotQualifiedColor())); + } + else + { + setForeground(UIPropertyContext.getNotQualifiedColor()); + } } return this; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-06-16 02:48:27
|
Revision: 12167 http://pcgen.svn.sourceforge.net/pcgen/?rev=12167&view=rev Author: cpmeister Date: 2010-06-16 02:48:21 +0000 (Wed, 16 Jun 2010) Log Message: ----------- code cleanup Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-06-16 02:43:43 UTC (rev 12166) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-06-16 02:48:21 UTC (rev 12167) @@ -162,8 +162,8 @@ this.createMonsterButton = new JButton(); this.addLevelsButton = new JButton(); this.removeLevelsButton = new JButton(); - this.expaddButton = createSignButton(Sign.Plus); - this.expsubtractButton = createSignButton(Sign.Minus); + this.expaddButton = new JButton(); + this.expsubtractButton = new JButton(); this.infoPane = new JEditorPane(); this.statTotalLabel = new JLabel(); this.statTotal = new JLabel(); @@ -232,8 +232,6 @@ "body { font-family: " + textFont.getFamily() + "; " + "font-size: " + textFont.getSize() + "pt; }"; ((HTMLDocument) todoPane.getDocument()).getStyleSheet().addRule( bodyRule); - StringBuffer todoText = new StringBuffer("<html><body></body></html>"); //$NON-NLS-1$ - todoPane.setText(todoText.toString()); todoPane.setEditable(false); JScrollPane scroll = new JScrollPane(todoPane); @@ -300,6 +298,9 @@ raceComboBox.setRenderer(new ComboBoxRenderer()); classComboBox.setPrototypeDisplayValue("PrototypeDisplayValue"); + expaddButton.setMargin(new Insets(0, 8, 0, 8)); + expsubtractButton.setMargin(new Insets(0, 8, 0, 8)); + JPanel expmodPanel = new JPanel(new GridBagLayout()); JPanel levelPanel = new JPanel(); JLabel raceLabel = createLabel("Race:"); @@ -438,14 +439,6 @@ panel.add(new JScrollPane(classLevelTable), gbc2); } - private static JButton createSignButton(Sign sign) - { - JButton button = new JButton(); - button.setMargin(new Insets(0, 8, 0, 8)); - button.setIcon(new SignIcon(sign)); - return button; - } - private static JLabel createLabel(String text) { JLabel label = new JLabel(text); @@ -1364,7 +1357,6 @@ public TodoListHandler(CharacterFacade character) { this.character = character; - install(); } /** @@ -1433,7 +1425,6 @@ } todoText.append("</body></html>"); //$NON-NLS-1$ todoPane.setText(todoText.toString()); - todoPane.setEditable(false); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-06-16 04:56:17
|
Revision: 12172 http://pcgen.svn.sourceforge.net/pcgen/?rev=12172&view=rev Author: cpmeister Date: 2010-06-16 04:56:10 +0000 (Wed, 16 Jun 2010) Log Message: ----------- code refactoring Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-06-16 03:33:01 UTC (rev 12171) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-06-16 04:56:10 UTC (rev 12172) @@ -109,7 +109,7 @@ private final JTextField tabLabelField; private final JFormattedTextField ageField; private final JFormattedTextField expField; - private final JTextField nextlevelField; + private final JFormattedTextField nextlevelField; private final JFormattedTextField expmodField; private final JFormattedTextField addLevelsField; private final JFormattedTextField removeLevelsField; @@ -143,7 +143,7 @@ this.characterNameField = new JTextField(); this.playerNameField = new JTextField(); this.expField = new JFormattedTextField(NumberFormat.getIntegerInstance()); - this.nextlevelField = new JTextField(); + this.nextlevelField = new JFormattedTextField(NumberFormat.getIntegerInstance()); this.expmodField = new JFormattedTextField(NumberFormat.getIntegerInstance()); this.addLevelsField = new JFormattedTextField(NumberFormat.getIntegerInstance()); this.removeLevelsField = new JFormattedTextField(NumberFormat.getIntegerInstance()); @@ -300,7 +300,7 @@ expaddButton.setMargin(new Insets(0, 8, 0, 8)); expsubtractButton.setMargin(new Insets(0, 8, 0, 8)); - + JPanel expmodPanel = new JPanel(new GridBagLayout()); JPanel levelPanel = new JPanel(); JLabel raceLabel = createLabel("Race:"); @@ -634,10 +634,91 @@ raceRef.addReferenceListener(raceListener); raceModel.setReference(raceRef); + //Manages the character name text field + TextFieldHandler charNameHandler = new TextFieldHandler(characterNameField, character.getNameRef()) + { + + @Override + protected void textChanged(String text) + { + character.setName(text); + } + + }; + + //Manages the player name text field. + TextFieldHandler playerNameHandler = new TextFieldHandler(playerNameField, character.getPlayersNameRef()) + { + + @Override + protected void textChanged(String text) + { + character.setPlayersName(text); + } + + }; + //Manages the tab name text field. + TextFieldHandler tabNameHandler = new TextFieldHandler(tabLabelField, character.getTabNameRef()) + { + + @Override + protected void textChanged(String text) + { + character.setTabName(text); + } + + }; + + /** + * Handler for the Age field. This listens for and + * processes both changes to the value from the character and + * modifications to the field made by the user. + */ + FormattedFieldHandler ageHandler = new FormattedFieldHandler(ageField, character.getAgeRef()) + { + + @Override + protected void valueChanged(int value) + { + character.setAge(value); + } + + }; + + /** + * Handler for the Current Experience field. This listens for and + * processes both changes to the value from the character and + * modifications to the field made by the user. + */ + FormattedFieldHandler expHandler = new FormattedFieldHandler(expField, character.getXPRef()) + { + + @Override + protected void valueChanged(int value) + { + character.setXP(value); + } + + }; + + /** + * Handler for the Next Level field. This is a read-only field so the + * handler only listens for changes to the value from the character. + */ + FormattedFieldHandler nextLevelHandler = new FormattedFieldHandler(nextlevelField, character.getXPForNextLevelRef()) + { + + @Override + protected void valueChanged(int value) + { + //This will never be called + } + + }; Hashtable<Object, Object> stateTable = new Hashtable<Object, Object>(); - stateTable.put(Models.CharacterNameHandler, new CharacterNameHandler(character)); - stateTable.put(Models.PlayerNameHandler, new PlayerNameHandler(character)); - stateTable.put(Models.TabNameHandler, new TabNameHandler(character)); + stateTable.put(Models.CharacterNameHandler, charNameHandler); + stateTable.put(Models.PlayerNameHandler, playerNameHandler); + stateTable.put(Models.TabNameHandler, tabNameHandler); stateTable.put(Models.GenderComboBoxModel, genderModel); stateTable.put(Models.HandsComboBoxModel, handsModel); stateTable.put(Models.AlignmentComboBoxModel, alignmentModel); @@ -652,9 +733,9 @@ stateTable.put(Models.LanguageTableModel, new LanguageTableModel(character)); stateTable.put(Models.InfoPaneHandler, new InfoPaneHandler(character)); stateTable.put(Models.ClassComboBoxRenderer, new ClassBoxRenderer(character)); - stateTable.put(Models.AgeHandler, new AgeHandler(character)); - stateTable.put(Models.ExpHandler, new ExpHandler(character)); - stateTable.put(Models.NextLevelHandler, new NextLevelHandler(character)); + stateTable.put(Models.AgeHandler, ageHandler); + stateTable.put(Models.ExpHandler, expHandler); + stateTable.put(Models.NextLevelHandler, nextLevelHandler); stateTable.put(Models.ExpAddAction, new ExpAddAction(character)); stateTable.put(Models.ExpSubtractAction, new ExpSubtractAction(character)); stateTable.put(Models.StatTotalLabelHandler, statTotalLabelHandler); @@ -711,16 +792,16 @@ public void storeState(Hashtable<Object, Object> state) { - ((CharacterNameHandler) state.get(Models.CharacterNameHandler)).uninstall(); - ((PlayerNameHandler) state.get(Models.PlayerNameHandler)).uninstall(); - ((TabNameHandler) state.get(Models.TabNameHandler)).uninstall(); + ((TextFieldHandler) state.get(Models.CharacterNameHandler)).uninstall(); + ((TextFieldHandler) state.get(Models.PlayerNameHandler)).uninstall(); + ((TextFieldHandler) state.get(Models.TabNameHandler)).uninstall(); ((LanguageTableModel) state.get(Models.LanguageTableModel)).uninstall(); ((ClassLevelTableModel) state.get(Models.ClassLevelTableModel)).uninstall(); ((InfoPaneHandler) state.get(Models.InfoPaneHandler)).uninstall(); ((StatTableModel) state.get(Models.StatTableModel)).uninstall(); - ((AgeHandler) state.get(Models.AgeHandler)).uninstall(); - ((ExpHandler) state.get(Models.ExpHandler)).uninstall(); - ((NextLevelHandler) state.get(Models.NextLevelHandler)).uninstall(); + ((FormattedFieldHandler) state.get(Models.AgeHandler)).uninstall(); + ((FormattedFieldHandler) state.get(Models.ExpHandler)).uninstall(); + ((FormattedFieldHandler) state.get(Models.NextLevelHandler)).uninstall(); ((LabelHandler) state.get(Models.StatTotalLabelHandler)).uninstall(); ((LabelHandler) state.get(Models.StatTotalHandler)).uninstall(); ((TodoListHandler) state.get(Models.TodoListHandler)).uninstall(); @@ -728,16 +809,16 @@ public void restoreState(Hashtable<?, ?> state) { - ((CharacterNameHandler) state.get(Models.CharacterNameHandler)).install(); - ((PlayerNameHandler) state.get(Models.PlayerNameHandler)).install(); - ((TabNameHandler) state.get(Models.TabNameHandler)).install(); + ((TextFieldHandler) state.get(Models.CharacterNameHandler)).install(); + ((TextFieldHandler) state.get(Models.PlayerNameHandler)).install(); + ((TextFieldHandler) state.get(Models.TabNameHandler)).install(); ((InfoPaneHandler) state.get(Models.InfoPaneHandler)).install(infoPane); ((LanguageTableModel) state.get(Models.LanguageTableModel)).install(languageTable); ((StatTableModel) state.get(Models.StatTableModel)).install(statsTable); ((ClassLevelTableModel) state.get(Models.ClassLevelTableModel)).install(classLevelTable, classComboBox); - ((AgeHandler) state.get(Models.AgeHandler)).install(); - ((ExpHandler) state.get(Models.ExpHandler)).install(); - ((NextLevelHandler) state.get(Models.NextLevelHandler)).install(); + ((FormattedFieldHandler) state.get(Models.AgeHandler)).install(); + ((FormattedFieldHandler) state.get(Models.ExpHandler)).install(); + ((FormattedFieldHandler) state.get(Models.NextLevelHandler)).install(); ((LabelHandler) state.get(Models.StatTotalLabelHandler)).install(); ((LabelHandler) state.get(Models.StatTotalHandler)).install(); ((TodoListHandler) state.get(Models.TodoListHandler)).install(); @@ -760,6 +841,7 @@ private static class ComboBoxRenderer extends DefaultListCellRenderer { + @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); @@ -785,6 +867,7 @@ this.character = character; } + @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); @@ -888,343 +971,121 @@ } - private class CharacterNameHandler implements DocumentListener, ReferenceListener<String> + private static abstract class TextFieldHandler + implements DocumentListener, ReferenceListener<String> { - private CharacterFacade character; + private JTextField textField; + private ReferenceFacade<String> ref; - public CharacterNameHandler(CharacterFacade character) + public TextFieldHandler(JTextField textField, ReferenceFacade<String> ref) { - this.character = character; + this.textField = textField; + this.ref = ref; } + /** + * Attach the handler to the screen field. e.g. When the character is + * made active. + */ public void install() { - characterNameField.setText(character.getNameRef().getReference()); - characterNameField.getDocument().addDocumentListener(this); - character.getNameRef().addReferenceListener(this); + textField.setText(ref.getReference()); + textField.getDocument().addDocumentListener(this); + ref.addReferenceListener(this); } + /** + * Detach the handler from the on screen field. e.g. when the + * character is no longer being displayed. + */ public void uninstall() { - characterNameField.getDocument().removeDocumentListener(this); - character.getNameRef().removeReferenceListener(this); + textField.getDocument().removeDocumentListener(this); + ref.removeReferenceListener(this); } - public void actionPerformed(ActionEvent e) - { - character.setName(characterNameField.getText()); - } - - public void insertUpdate(DocumentEvent e) - { - character.setName(characterNameField.getText()); - } - - public void removeUpdate(DocumentEvent e) - { - character.setName(characterNameField.getText()); - } - - public void changedUpdate(DocumentEvent e) - { - character.setName(characterNameField.getText()); - } - public void referenceChanged(ReferenceEvent<String> e) { - if (!characterNameField.getText().equals(e.getNewReference())) + if (!textField.getText().equals(e.getNewReference())) { - characterNameField.setText(e.getNewReference()); + textField.setText(e.getNewReference()); } } - } + protected abstract void textChanged(String text); - /** - * Manages the player name text field. - */ - private class PlayerNameHandler implements DocumentListener, ReferenceListener<String> - { - - private CharacterFacade character; - - public PlayerNameHandler(CharacterFacade character) - { - this.character = character; - } - - public void install() - { - playerNameField.setText(character.getPlayersNameRef().getReference()); - playerNameField.getDocument().addDocumentListener(this); - character.getPlayersNameRef().addReferenceListener(this); - } - - public void uninstall() - { - playerNameField.getDocument().removeDocumentListener(this); - character.getPlayersNameRef().removeReferenceListener(this); - } - public void insertUpdate(DocumentEvent e) { - character.setPlayersName(playerNameField.getText()); + textChanged(textField.getText()); } public void removeUpdate(DocumentEvent e) { - character.setPlayersName(playerNameField.getText()); + textChanged(textField.getText()); } public void changedUpdate(DocumentEvent e) { - character.setPlayersName(playerNameField.getText()); + textChanged(textField.getText()); } - public void referenceChanged(ReferenceEvent<String> e) - { - if (!playerNameField.getText().equals(e.getNewReference())) - { - playerNameField.setText(e.getNewReference()); - } - } - } - private class TabNameHandler implements DocumentListener, ReferenceListener<String> + private static abstract class FormattedFieldHandler + implements PropertyChangeListener, ReferenceListener<Integer> { - private CharacterFacade character; + private JFormattedTextField field; + private ReferenceFacade<Integer> ref; - public TabNameHandler(CharacterFacade character) + public FormattedFieldHandler(JFormattedTextField field, ReferenceFacade<Integer> ref) { - this.character = character; + this.field = field; + this.ref = ref; } - public void install() - { - tabLabelField.setText(character.getTabNameRef().getReference()); - tabLabelField.getDocument().addDocumentListener(this); - character.getTabNameRef().addReferenceListener(this); - } - - public void uninstall() - { - tabLabelField.getDocument().removeDocumentListener(this); - character.getTabNameRef().removeReferenceListener(this); - } - - public void insertUpdate(DocumentEvent e) - { - character.setTabName(tabLabelField.getText()); - } - - public void removeUpdate(DocumentEvent e) - { - character.setTabName(tabLabelField.getText()); - } - - public void changedUpdate(DocumentEvent e) - { - character.setTabName(tabLabelField.getText()); - } - - public void referenceChanged(ReferenceEvent<String> e) - { - if (!tabLabelField.getText().equals(e.getNewReference())) - { - tabLabelField.setText(e.getNewReference()); - } - } - - } - - /** - * Handler for the Age field. This listens for and - * processes both changes to the value from the character and - * modifications to the field made by the user. - */ - private class AgeHandler implements PropertyChangeListener, ReferenceListener<Integer> - { - - private CharacterFacade character; - /** - * Create a new handler for the Age field for a character. - * @param character The character that we are managing - */ - public AgeHandler(CharacterFacade character) - { - this.character = character; - } - - /** * Attach the handler to the screen field. e.g. When the character is - * made active. + * made active. */ public void install() { - ageField.setValue(character.getAgeRef().getReference()); - ageField.addPropertyChangeListener(this); - character.getAgeRef().addReferenceListener(this); + field.setValue(ref.getReference()); + field.addPropertyChangeListener(this); + ref.addReferenceListener(this); } /** - * Detach the handler from the on screen field. e.g. when the - * character is no longer being displayed. + * Detach the handler from the on screen field. e.g. when the + * character is no longer being displayed. */ public void uninstall() { - ageField.removePropertyChangeListener(this); - character.getAgeRef().removeReferenceListener(this); + field.removePropertyChangeListener(this); + ref.removeReferenceListener(this); } - /* (non-Javadoc) - * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent) - */ - public void propertyChange(PropertyChangeEvent evt) - { - int value = ((Number) ageField.getValue()).intValue(); - character.setAge(value); - } - - /* (non-Javadoc) - * @see pcgen.core.facade.event.ReferenceListener#referenceChanged(pcgen.core.facade.event.ReferenceEvent) - */ public void referenceChanged(ReferenceEvent<Integer> e) { int newVal = e.getNewReference(); - int oldVal = ((Number) ageField.getValue()).intValue(); + int oldVal = ((Number) field.getValue()).intValue(); if (oldVal != newVal) { - ageField.setValue(newVal); + field.setValue(newVal); } } - } + protected abstract void valueChanged(int value); - /** - * Handler for the Current Experience field. This listens for and - * processes both changes to the value from the character and - * modifications to the field made by the user. - */ - private class ExpHandler implements PropertyChangeListener, ReferenceListener<Integer> - { - - private CharacterFacade character; - - /** - * Create a new handler for the Current Experience points field for a - * character. - * @param character The character that we are managing - */ - public ExpHandler(CharacterFacade character) - { - this.character = character; - } - - /** - * Attach the handler to the screen field. e.g. When the character is - * made active. - */ - public void install() - { - expField.setValue(character.getXPRef().getReference()); - expField.addPropertyChangeListener(this); - character.getXPRef().addReferenceListener(this); - } - - /** - * Detach the handler from the on screen field. e.g. when the - * character is no longer being displayed. - */ - public void uninstall() - { - expField.removePropertyChangeListener(this); - character.getXPRef().removeReferenceListener(this); - } - - /* (non-Javadoc) - * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent) - */ public void propertyChange(PropertyChangeEvent evt) { - int value = ((Number) expField.getValue()).intValue(); - character.setXP(value); + valueChanged(((Number) field.getValue()).intValue()); } - /* (non-Javadoc) - * @see pcgen.core.facade.event.ReferenceListener#referenceChanged(pcgen.core.facade.event.ReferenceEvent) - */ - public void referenceChanged(ReferenceEvent<Integer> e) - { - int newVal = e.getNewReference(); - int oldVal = ((Number) expField.getValue()).intValue(); - if (oldVal != newVal) - { - expField.setValue(newVal); - } - } - } /** - * Handler for the Next Level field. This is a read-only field so the - * handler only listens for changes to the value from the character. - */ - private class NextLevelHandler implements ReferenceListener<Integer> - { - - private CharacterFacade character; - private NumberFormat nf = NumberFormat.getIntegerInstance(); - - /** - * Create a new handler for the Current Experience points field for a - * character. - * @param character The character that we are managing - */ - public NextLevelHandler(CharacterFacade character) - { - this.character = character; - } - - /** - * Attach the handler to the screen field. e.g. When the character is - * made active. - */ - public void install() - { - nextlevelField.setText(nf.format(character.getXPForNextLevelRef().getReference())); - character.getXPForNextLevelRef().addReferenceListener(this); - } - - /** - * Detach the handler from the on screen field. e.g. when the - * character is no longer being displayed. - */ - public void uninstall() - { - character.getXPForNextLevelRef().removeReferenceListener(this); - } - - /* (non-Javadoc) - * @see pcgen.core.facade.event.ReferenceListener#referenceChanged(pcgen.core.facade.event.ReferenceEvent) - */ - public void referenceChanged(ReferenceEvent<Integer> e) - { - int newVal = e.getNewReference(); - String newFmtVal = nf.format(newVal); - String oldVal = nextlevelField.getText(); - if (!oldVal.equals(newFmtVal)) - { - nextlevelField.setText(newFmtVal); - } - } - - } - - /** * Handler for actions from the add experience button. Also defines * the appearance of the button. */ @@ -1421,7 +1282,7 @@ { todoText.append(item.getMessageKey()); } - todoText.append("<br>"); //$NON-NLS-1$ + todoText.append("<br>"); //$NON-NLS-1$ } todoText.append("</body></html>"); //$NON-NLS-1$ todoPane.setText(todoText.toString()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-06-16 05:00:41
|
Revision: 12173 http://pcgen.svn.sourceforge.net/pcgen/?rev=12173&view=rev Author: cpmeister Date: 2010-06-16 05:00:35 +0000 (Wed, 16 Jun 2010) Log Message: ----------- bug fix Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-06-16 04:56:10 UTC (rev 12172) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-06-16 05:00:35 UTC (rev 12173) @@ -1102,7 +1102,12 @@ public void actionPerformed(ActionEvent e) { - int modVal = ((Number) expmodField.getValue()).intValue(); + Object value = expmodField.getValue(); + if (value == null) + { + return; + } + int modVal = ((Number) value).intValue(); character.adjustXP(modVal); } @@ -1125,7 +1130,12 @@ public void actionPerformed(ActionEvent e) { - int modVal = ((Number) expmodField.getValue()).intValue(); + Object value = expmodField.getValue(); + if (value == null) + { + return; + } + int modVal = ((Number) value).intValue(); character.adjustXP(modVal * -1); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2011-02-17 03:36:36
|
Revision: 14582 http://pcgen.svn.sourceforge.net/pcgen/?rev=14582&view=rev Author: cpmeister Date: 2011-02-17 03:36:30 +0000 (Thu, 17 Feb 2011) Log Message: ----------- Summary Tab now displays prereq colors for race and deities Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2011-02-17 03:01:04 UTC (rev 14581) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2011-02-17 03:36:30 UTC (rev 14582) @@ -70,6 +70,7 @@ import pcgen.core.facade.DataSetFacade; import pcgen.core.facade.DeityFacade; import pcgen.core.facade.GenderFacade; +import pcgen.core.facade.InfoFacade; import pcgen.core.facade.RaceFacade; import pcgen.core.facade.ReferenceFacade; import pcgen.core.facade.SimpleFacade; @@ -762,6 +763,7 @@ stateTable.put(Models.LanguageTableModel, new LanguageTableModel(character)); stateTable.put(Models.InfoPaneHandler, new InfoPaneHandler(character)); stateTable.put(Models.ClassComboBoxRenderer, new ClassBoxRenderer(character)); + stateTable.put(Models.InfoComboBoxRenderer, new InfoBoxRenderer(character)); stateTable.put(Models.AgeHandler, ageHandler); stateTable.put(Models.ExpHandler, expHandler); stateTable.put(Models.NextLevelHandler, nextLevelHandler); @@ -790,8 +792,8 @@ HandsComboBoxModel, AlignmentComboBoxModel, DeityComboBoxModel, + InfoComboBoxRenderer, RaceComboBoxModel, - RaceComboBoxRenderer, ClassComboBoxModel, ClassComboBoxRenderer, ClassLevelTableModel, @@ -857,7 +859,9 @@ handsComboBox.setModel((ComboBoxModel) state.get(Models.HandsComboBoxModel)); alignmentComboBox.setModel((ComboBoxModel) state.get(Models.AlignmentComboBoxModel)); deityComboBox.setModel((ComboBoxModel) state.get(Models.DeityComboBoxModel)); + deityComboBox.setRenderer((ListCellRenderer) state.get(Models.InfoComboBoxRenderer)); raceComboBox.setModel((ComboBoxModel) state.get(Models.RaceComboBoxModel)); + raceComboBox.setRenderer((ListCellRenderer) state.get(Models.InfoComboBoxRenderer)); ageComboBox.setModel((ComboBoxModel) state.get(Models.AgeCatComboBoxModel)); classComboBox.setModel((ComboBoxModel) state.get(Models.ClassComboBoxModel)); classComboBox.setRenderer((ListCellRenderer) state.get(Models.ClassComboBoxRenderer)); @@ -895,6 +899,37 @@ } + private class InfoBoxRenderer extends ComboBoxRenderer + { + + private CharacterFacade character; + + public InfoBoxRenderer(CharacterFacade character) + { + this.character = character; + } + + @Override + public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) + { + super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + if (value instanceof InfoFacade && !character.isQualifiedFor((InfoFacade) value)) + { + if (index == -1) + {// this is a hack to prevent the combobox from overwriting the text color + setText(""); + setIcon(new SimpleTextIcon(list, value.toString(), UIPropertyContext.getNotQualifiedColor())); + } + else + { + setForeground(UIPropertyContext.getNotQualifiedColor()); + } + } + return this; + } + + } + private class ClassBoxRenderer extends ComboBoxRenderer { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |