<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://159.203.101.162/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Connor+Petty</id>
	<title>PCGen Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://159.203.101.162/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Connor+Petty"/>
	<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php/Special:Contributions/Connor_Petty"/>
	<updated>2026-04-25T23:02:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=Basic_Developer_Setup&amp;diff=2835</id>
		<title>Basic Developer Setup</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=Basic_Developer_Setup&amp;diff=2835"/>
		<updated>2011-02-26T01:13:21Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Setting up with Netbeans (without the maven plugin) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
# Get a JAVA IDE of your choice (most people use Eclipse; some prefer IDEA). There are already project files in Subversion for several IDEs. (Although /bin/vi works just fine for some of us crusty old-timers, and Emacs for those sorts who are the GNU elite.)&lt;br /&gt;
# Get a Subversion client and set it up (most people use Eclipse integration; ditto for IDEA - see below for instructions for these though), see the [[Subversion Setup]] for details (you can view this via the web access to SVN).&lt;br /&gt;
# [[James Dempsey]] is the official Help New Code Monkeys guy, feel free to bug him lots! (But try the lists first, please.)&lt;br /&gt;
&lt;br /&gt;
=Participating in PCGen=&lt;br /&gt;
&lt;br /&gt;
# Play nice. Use common sense. We're all here because we enjoy it and want to participate in this project. Challenging ideas is ok (all of us will not always agree on a specific point), but don't attack people (no flames!)&lt;br /&gt;
# Make sure to run the unit tests (given that I can't get PCGen to build in ant without running them, this probably won't be hard!) and only check in when they all pass. Having said that, I suspect we've all broken the code at least once, so *don't stress* about it if it happens. Just participate in fixing it or get help from someone who can (if you really have no idea what's broken).&lt;br /&gt;
# If you're changing LST Token syntax (from our data files) then you need to get permission from the Data monkeys. You will find them on the PCGen_experimental Yahoo! group and you can also read their [[LST Syntax FREQ]] Usually, items in the issue tracking system as feature requests are already vetted by the _experimental folks, but if it's pretty old or very complicated, a double check doesn't hurt.&lt;br /&gt;
# Try to change as little of the formatting in the code as possible. Others may look at your check-in (to ensure it isn't interacting with other items we are working on that aren't checked in yet), and if the check-in is mostly formatting change, one loses the content. If there are formatting changes to be made, they should be done in a separate check-in. It is preferable to ask permission on significant formatting changes, since they make merging very difficult, and if one of us has a large project we are working on, it can become really hard to keep up and make sure we are actually doing useful work rather than formatting changes.&lt;br /&gt;
# Given the formatting comment above as more important, there are [[Coding Standards]] (for braces and the like).&lt;br /&gt;
# No major feature changes in a beta cycle - that's what the Alphas are for. Betas fix bugs for releases.&lt;br /&gt;
# You won't always know everything that is happening... but knowing where not to be is useful. Generally, in cases where someone is the major owner of an in-process change, it is best to check with that individual if you intend to propose/make major changes in code they are actively changing. When large check-ins are involved as components develop, parallel changes can be hard to deal with.&lt;br /&gt;
&lt;br /&gt;
=Setting up with Eclipse=&lt;br /&gt;
&lt;br /&gt;
# Install the subclipse extension found [http://subclipse.tigris.org/ here] or follow the instructions [http://subclipse.tigris.org/install.html here]&lt;br /&gt;
# Switch to the SVN Exploring Perspective (e.g. via the menu item Window &amp;gt; Open Perspective &amp;gt; Other... )&lt;br /&gt;
# Create a new Repository Location for ''https://pcgen.svn.sourceforge.net/svnroot/pcgen''&lt;br /&gt;
# Drill down to Trunk/pcgen and right click and select Checkout...&lt;br /&gt;
# Fill in the project details and wait while it downloads all of the source.&lt;br /&gt;
# Build the application '''using ant''' as this will create the '''code/build/src''' folder. (See Eclipse section in [[Building PCGen]])&lt;br /&gt;
# Refresh the project (right click on the project and select Refresh)&lt;br /&gt;
# Now your project should have no red ink and you can create a Run entry for the class pcgen.gui.pcGenGUI (Again see Eclipse Running section in [[Building PCGen]])&lt;br /&gt;
&lt;br /&gt;
Any questions, don't hesitate to ask!&lt;br /&gt;
&lt;br /&gt;
=Setting up with Netbeans (without the maven plugin)=&lt;br /&gt;
# Install the netbeans subversion plugin&lt;br /&gt;
# Checkout the Trunk/pcgen branch and if it asks to scan for projects select No.&lt;br /&gt;
# Go to menu and create a new java free form project. For the locations select the directory you just checked out and netbeans should fill the rest of the information for you.&lt;br /&gt;
# Compile the project&lt;br /&gt;
# Close netbeans&lt;br /&gt;
# replace the project.xml file in the nbproject dir with this file:[https://pcgen.svn.sourceforge.net/svnroot/pcgen/Trunk/IDE/project.xml project.xml]&lt;br /&gt;
# download the [https://pcgen.svn.sourceforge.net/svnroot/pcgen/Trunk/IDE/license-pcgen.txt license file]&lt;br /&gt;
# Reopen netbeans, go to Tools-&amp;gt;Templates and add the license file to the Licenses category.&lt;br /&gt;
# Now your are ready to go!&lt;br /&gt;
&lt;br /&gt;
=Tools and IDE Plugins=&lt;br /&gt;
&lt;br /&gt;
Outside of Eclipse if you want to do independent testing and code coverage, Emma: http://emma.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
==Eclipse==&lt;br /&gt;
&lt;br /&gt;
* [http://pmd.sourceforge.net/ PMD]&lt;br /&gt;
* [http://findbugs.sourceforge.net/ FindBugs]&lt;br /&gt;
* [http://checkstyle.sourceforge.net/ Checkstyle]&lt;br /&gt;
* [http://sourceforge.net/projects/metrics Metrics]&lt;br /&gt;
* [http://www.eclipse.org/tptp/ Eclipse TPTP] (note: gets memory hungry)&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=Basic_Developer_Setup&amp;diff=2834</id>
		<title>Basic Developer Setup</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=Basic_Developer_Setup&amp;diff=2834"/>
		<updated>2011-02-26T00:55:33Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Setting up with Netbeans (without the maven plugin) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
# Get a JAVA IDE of your choice (most people use Eclipse; some prefer IDEA). There are already project files in Subversion for several IDEs. (Although /bin/vi works just fine for some of us crusty old-timers, and Emacs for those sorts who are the GNU elite.)&lt;br /&gt;
# Get a Subversion client and set it up (most people use Eclipse integration; ditto for IDEA - see below for instructions for these though), see the [[Subversion Setup]] for details (you can view this via the web access to SVN).&lt;br /&gt;
# [[James Dempsey]] is the official Help New Code Monkeys guy, feel free to bug him lots! (But try the lists first, please.)&lt;br /&gt;
&lt;br /&gt;
=Participating in PCGen=&lt;br /&gt;
&lt;br /&gt;
# Play nice. Use common sense. We're all here because we enjoy it and want to participate in this project. Challenging ideas is ok (all of us will not always agree on a specific point), but don't attack people (no flames!)&lt;br /&gt;
# Make sure to run the unit tests (given that I can't get PCGen to build in ant without running them, this probably won't be hard!) and only check in when they all pass. Having said that, I suspect we've all broken the code at least once, so *don't stress* about it if it happens. Just participate in fixing it or get help from someone who can (if you really have no idea what's broken).&lt;br /&gt;
# If you're changing LST Token syntax (from our data files) then you need to get permission from the Data monkeys. You will find them on the PCGen_experimental Yahoo! group and you can also read their [[LST Syntax FREQ]] Usually, items in the issue tracking system as feature requests are already vetted by the _experimental folks, but if it's pretty old or very complicated, a double check doesn't hurt.&lt;br /&gt;
# Try to change as little of the formatting in the code as possible. Others may look at your check-in (to ensure it isn't interacting with other items we are working on that aren't checked in yet), and if the check-in is mostly formatting change, one loses the content. If there are formatting changes to be made, they should be done in a separate check-in. It is preferable to ask permission on significant formatting changes, since they make merging very difficult, and if one of us has a large project we are working on, it can become really hard to keep up and make sure we are actually doing useful work rather than formatting changes.&lt;br /&gt;
# Given the formatting comment above as more important, there are [[Coding Standards]] (for braces and the like).&lt;br /&gt;
# No major feature changes in a beta cycle - that's what the Alphas are for. Betas fix bugs for releases.&lt;br /&gt;
# You won't always know everything that is happening... but knowing where not to be is useful. Generally, in cases where someone is the major owner of an in-process change, it is best to check with that individual if you intend to propose/make major changes in code they are actively changing. When large check-ins are involved as components develop, parallel changes can be hard to deal with.&lt;br /&gt;
&lt;br /&gt;
=Setting up with Eclipse=&lt;br /&gt;
&lt;br /&gt;
# Install the subclipse extension found [http://subclipse.tigris.org/ here] or follow the instructions [http://subclipse.tigris.org/install.html here]&lt;br /&gt;
# Switch to the SVN Exploring Perspective (e.g. via the menu item Window &amp;gt; Open Perspective &amp;gt; Other... )&lt;br /&gt;
# Create a new Repository Location for ''https://pcgen.svn.sourceforge.net/svnroot/pcgen''&lt;br /&gt;
# Drill down to Trunk/pcgen and right click and select Checkout...&lt;br /&gt;
# Fill in the project details and wait while it downloads all of the source.&lt;br /&gt;
# Build the application '''using ant''' as this will create the '''code/build/src''' folder. (See Eclipse section in [[Building PCGen]])&lt;br /&gt;
# Refresh the project (right click on the project and select Refresh)&lt;br /&gt;
# Now your project should have no red ink and you can create a Run entry for the class pcgen.gui.pcGenGUI (Again see Eclipse Running section in [[Building PCGen]])&lt;br /&gt;
&lt;br /&gt;
Any questions, don't hesitate to ask!&lt;br /&gt;
&lt;br /&gt;
=Setting up with Netbeans (without the maven plugin)=&lt;br /&gt;
# Install the netbeans subversion plugin&lt;br /&gt;
# Checkout the Trunk/pcgen branch and if it asks to scan for projects select No.&lt;br /&gt;
# Go to menu and create a new java free form project. For the locations select the directory you just checked out and netbeans should fill the rest of the information for you.&lt;br /&gt;
# Compile the project&lt;br /&gt;
# Close netbeans and replace the project.xml file in the nbproject dir with this file:[https://pcgen.svn.sourceforge.net/svnroot/pcgen/Trunk/IDE/project.xml project.xml]&lt;br /&gt;
# Reopen netbeans and you are ready to go.&lt;br /&gt;
&lt;br /&gt;
=Tools and IDE Plugins=&lt;br /&gt;
&lt;br /&gt;
Outside of Eclipse if you want to do independent testing and code coverage, Emma: http://emma.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
==Eclipse==&lt;br /&gt;
&lt;br /&gt;
* [http://pmd.sourceforge.net/ PMD]&lt;br /&gt;
* [http://findbugs.sourceforge.net/ FindBugs]&lt;br /&gt;
* [http://checkstyle.sourceforge.net/ Checkstyle]&lt;br /&gt;
* [http://sourceforge.net/projects/metrics Metrics]&lt;br /&gt;
* [http://www.eclipse.org/tptp/ Eclipse TPTP] (note: gets memory hungry)&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=Basic_Developer_Setup&amp;diff=2833</id>
		<title>Basic Developer Setup</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=Basic_Developer_Setup&amp;diff=2833"/>
		<updated>2011-02-26T00:44:23Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Setting up with Netbeans (without the maven plugin) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
# Get a JAVA IDE of your choice (most people use Eclipse; some prefer IDEA). There are already project files in Subversion for several IDEs. (Although /bin/vi works just fine for some of us crusty old-timers, and Emacs for those sorts who are the GNU elite.)&lt;br /&gt;
# Get a Subversion client and set it up (most people use Eclipse integration; ditto for IDEA - see below for instructions for these though), see the [[Subversion Setup]] for details (you can view this via the web access to SVN).&lt;br /&gt;
# [[James Dempsey]] is the official Help New Code Monkeys guy, feel free to bug him lots! (But try the lists first, please.)&lt;br /&gt;
&lt;br /&gt;
=Participating in PCGen=&lt;br /&gt;
&lt;br /&gt;
# Play nice. Use common sense. We're all here because we enjoy it and want to participate in this project. Challenging ideas is ok (all of us will not always agree on a specific point), but don't attack people (no flames!)&lt;br /&gt;
# Make sure to run the unit tests (given that I can't get PCGen to build in ant without running them, this probably won't be hard!) and only check in when they all pass. Having said that, I suspect we've all broken the code at least once, so *don't stress* about it if it happens. Just participate in fixing it or get help from someone who can (if you really have no idea what's broken).&lt;br /&gt;
# If you're changing LST Token syntax (from our data files) then you need to get permission from the Data monkeys. You will find them on the PCGen_experimental Yahoo! group and you can also read their [[LST Syntax FREQ]] Usually, items in the issue tracking system as feature requests are already vetted by the _experimental folks, but if it's pretty old or very complicated, a double check doesn't hurt.&lt;br /&gt;
# Try to change as little of the formatting in the code as possible. Others may look at your check-in (to ensure it isn't interacting with other items we are working on that aren't checked in yet), and if the check-in is mostly formatting change, one loses the content. If there are formatting changes to be made, they should be done in a separate check-in. It is preferable to ask permission on significant formatting changes, since they make merging very difficult, and if one of us has a large project we are working on, it can become really hard to keep up and make sure we are actually doing useful work rather than formatting changes.&lt;br /&gt;
# Given the formatting comment above as more important, there are [[Coding Standards]] (for braces and the like).&lt;br /&gt;
# No major feature changes in a beta cycle - that's what the Alphas are for. Betas fix bugs for releases.&lt;br /&gt;
# You won't always know everything that is happening... but knowing where not to be is useful. Generally, in cases where someone is the major owner of an in-process change, it is best to check with that individual if you intend to propose/make major changes in code they are actively changing. When large check-ins are involved as components develop, parallel changes can be hard to deal with.&lt;br /&gt;
&lt;br /&gt;
=Setting up with Eclipse=&lt;br /&gt;
&lt;br /&gt;
# Install the subclipse extension found [http://subclipse.tigris.org/ here] or follow the instructions [http://subclipse.tigris.org/install.html here]&lt;br /&gt;
# Switch to the SVN Exploring Perspective (e.g. via the menu item Window &amp;gt; Open Perspective &amp;gt; Other... )&lt;br /&gt;
# Create a new Repository Location for ''https://pcgen.svn.sourceforge.net/svnroot/pcgen''&lt;br /&gt;
# Drill down to Trunk/pcgen and right click and select Checkout...&lt;br /&gt;
# Fill in the project details and wait while it downloads all of the source.&lt;br /&gt;
# Build the application '''using ant''' as this will create the '''code/build/src''' folder. (See Eclipse section in [[Building PCGen]])&lt;br /&gt;
# Refresh the project (right click on the project and select Refresh)&lt;br /&gt;
# Now your project should have no red ink and you can create a Run entry for the class pcgen.gui.pcGenGUI (Again see Eclipse Running section in [[Building PCGen]])&lt;br /&gt;
&lt;br /&gt;
Any questions, don't hesitate to ask!&lt;br /&gt;
&lt;br /&gt;
=Setting up with Netbeans (without the maven plugin)=&lt;br /&gt;
# Install the netbeans subversion plugin&lt;br /&gt;
# Checkout the Trunk/pcgen branch and if it asks to scan for projects select No.&lt;br /&gt;
# Go to menu and create a new java free form project. For the locations select the directory you just checked out and netbeans should fill the rest of the information for you.&lt;br /&gt;
# Compile the project&lt;br /&gt;
# Close netbeans and replace the project.xml file in the nbproject dir with this file:&lt;br /&gt;
# Reopen netbeans and you are ready to go.&lt;br /&gt;
&lt;br /&gt;
=Tools and IDE Plugins=&lt;br /&gt;
&lt;br /&gt;
Outside of Eclipse if you want to do independent testing and code coverage, Emma: http://emma.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
==Eclipse==&lt;br /&gt;
&lt;br /&gt;
* [http://pmd.sourceforge.net/ PMD]&lt;br /&gt;
* [http://findbugs.sourceforge.net/ FindBugs]&lt;br /&gt;
* [http://checkstyle.sourceforge.net/ Checkstyle]&lt;br /&gt;
* [http://sourceforge.net/projects/metrics Metrics]&lt;br /&gt;
* [http://www.eclipse.org/tptp/ Eclipse TPTP] (note: gets memory hungry)&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=Basic_Developer_Setup&amp;diff=2832</id>
		<title>Basic Developer Setup</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=Basic_Developer_Setup&amp;diff=2832"/>
		<updated>2011-02-26T00:15:41Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
# Get a JAVA IDE of your choice (most people use Eclipse; some prefer IDEA). There are already project files in Subversion for several IDEs. (Although /bin/vi works just fine for some of us crusty old-timers, and Emacs for those sorts who are the GNU elite.)&lt;br /&gt;
# Get a Subversion client and set it up (most people use Eclipse integration; ditto for IDEA - see below for instructions for these though), see the [[Subversion Setup]] for details (you can view this via the web access to SVN).&lt;br /&gt;
# [[James Dempsey]] is the official Help New Code Monkeys guy, feel free to bug him lots! (But try the lists first, please.)&lt;br /&gt;
&lt;br /&gt;
=Participating in PCGen=&lt;br /&gt;
&lt;br /&gt;
# Play nice. Use common sense. We're all here because we enjoy it and want to participate in this project. Challenging ideas is ok (all of us will not always agree on a specific point), but don't attack people (no flames!)&lt;br /&gt;
# Make sure to run the unit tests (given that I can't get PCGen to build in ant without running them, this probably won't be hard!) and only check in when they all pass. Having said that, I suspect we've all broken the code at least once, so *don't stress* about it if it happens. Just participate in fixing it or get help from someone who can (if you really have no idea what's broken).&lt;br /&gt;
# If you're changing LST Token syntax (from our data files) then you need to get permission from the Data monkeys. You will find them on the PCGen_experimental Yahoo! group and you can also read their [[LST Syntax FREQ]] Usually, items in the issue tracking system as feature requests are already vetted by the _experimental folks, but if it's pretty old or very complicated, a double check doesn't hurt.&lt;br /&gt;
# Try to change as little of the formatting in the code as possible. Others may look at your check-in (to ensure it isn't interacting with other items we are working on that aren't checked in yet), and if the check-in is mostly formatting change, one loses the content. If there are formatting changes to be made, they should be done in a separate check-in. It is preferable to ask permission on significant formatting changes, since they make merging very difficult, and if one of us has a large project we are working on, it can become really hard to keep up and make sure we are actually doing useful work rather than formatting changes.&lt;br /&gt;
# Given the formatting comment above as more important, there are [[Coding Standards]] (for braces and the like).&lt;br /&gt;
# No major feature changes in a beta cycle - that's what the Alphas are for. Betas fix bugs for releases.&lt;br /&gt;
# You won't always know everything that is happening... but knowing where not to be is useful. Generally, in cases where someone is the major owner of an in-process change, it is best to check with that individual if you intend to propose/make major changes in code they are actively changing. When large check-ins are involved as components develop, parallel changes can be hard to deal with.&lt;br /&gt;
&lt;br /&gt;
=Setting up with Eclipse=&lt;br /&gt;
&lt;br /&gt;
# Install the subclipse extension found [http://subclipse.tigris.org/ here] or follow the instructions [http://subclipse.tigris.org/install.html here]&lt;br /&gt;
# Switch to the SVN Exploring Perspective (e.g. via the menu item Window &amp;gt; Open Perspective &amp;gt; Other... )&lt;br /&gt;
# Create a new Repository Location for ''https://pcgen.svn.sourceforge.net/svnroot/pcgen''&lt;br /&gt;
# Drill down to Trunk/pcgen and right click and select Checkout...&lt;br /&gt;
# Fill in the project details and wait while it downloads all of the source.&lt;br /&gt;
# Build the application '''using ant''' as this will create the '''code/build/src''' folder. (See Eclipse section in [[Building PCGen]])&lt;br /&gt;
# Refresh the project (right click on the project and select Refresh)&lt;br /&gt;
# Now your project should have no red ink and you can create a Run entry for the class pcgen.gui.pcGenGUI (Again see Eclipse Running section in [[Building PCGen]])&lt;br /&gt;
&lt;br /&gt;
Any questions, don't hesitate to ask!&lt;br /&gt;
&lt;br /&gt;
=Setting up with Netbeans (without the maven plugin)=&lt;br /&gt;
# Install the netbeans subversion plugin&lt;br /&gt;
# Checkout the Trunk/pcgen branch and if it asks to scan for projects select No.&lt;br /&gt;
# Go to menu and create a new java free form project. For the locations select the directory you just checked out and netbeans should fill the rest of the information for you.&lt;br /&gt;
# Go to project options and do the following&lt;br /&gt;
## under Java Sources&lt;br /&gt;
### add code/src/java to source package folders&lt;br /&gt;
### add code/src/test, code/src/itest, code/src/testcommon, and code/src/utest to the test package folders&lt;br /&gt;
## under Java Sources Classpath&lt;br /&gt;
### for the code/src/java package add the following: lib/jdom.jar, lib/lnf/skinlf.jar, lib/jep/jep-(ver).jar, lib/fop/fop.jar, lib/cobra/cobra.jar, lib/apache/commons-lang-(ver).jar, lib/MRJ141Stubs.jar, lib/spring/spring-beans-(ver).jar, lib/spring/spring-cor-(ver).jar&lt;br /&gt;
&lt;br /&gt;
=Tools and IDE Plugins=&lt;br /&gt;
&lt;br /&gt;
Outside of Eclipse if you want to do independent testing and code coverage, Emma: http://emma.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
==Eclipse==&lt;br /&gt;
&lt;br /&gt;
* [http://pmd.sourceforge.net/ PMD]&lt;br /&gt;
* [http://findbugs.sourceforge.net/ FindBugs]&lt;br /&gt;
* [http://checkstyle.sourceforge.net/ Checkstyle]&lt;br /&gt;
* [http://sourceforge.net/projects/metrics Metrics]&lt;br /&gt;
* [http://www.eclipse.org/tptp/ Eclipse TPTP] (note: gets memory hungry)&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2453</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2453"/>
		<updated>2010-07-15T03:03:46Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
This is a shared list of items noted during development and testing of the CDOM UI demo. This page is part of the [[UI_Overhaul]] project.&lt;br /&gt;
&lt;br /&gt;
==Things to be done - [[Summary#Minimilist_Enhancement_0.2|Summary Tab]]==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Add/remove languages - implement LanguageTableModel.Editor.actionPerformed() - Connor&lt;br /&gt;
* Il8n of summary screen&lt;br /&gt;
* Add Generate Rolls button - James&lt;br /&gt;
* Add Edit HP button - Connor&lt;br /&gt;
* Implement Create Monster Character button&lt;br /&gt;
* Stats do not refresh when age category changes - James&lt;br /&gt;
* Redesign name generator dialog&lt;br /&gt;
&lt;br /&gt;
==Things to be done - Other==&lt;br /&gt;
&lt;br /&gt;
* Implement preferences dialog&lt;br /&gt;
* Implement way to add feats to character&lt;br /&gt;
* Implement ablity facade handling in character mock&lt;br /&gt;
* Implement filters in Classes tab&lt;br /&gt;
* Implement filters in Feats and Abilities&lt;br /&gt;
* Implement chooser architecture&lt;br /&gt;
* Handle command line arguments in pcgen.system.Main&lt;br /&gt;
* Reimplement Console dialog to conform to the new UI&lt;br /&gt;
* Loading Sources status bar message hangs around after load finished&lt;br /&gt;
* Implement support for parties&lt;br /&gt;
* Look at adding old name generators to GMGen name generator&lt;br /&gt;
* Persist class columns selection across character switched (add a column to the classes table and switch PCs you lose the column)&lt;br /&gt;
* Fix concurrency errors in the core that arise from the Summary Tab's Info pane&lt;br /&gt;
* Split type tree for skills&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Implement player name in character mock&lt;br /&gt;
* Implement handed support in character mock&lt;br /&gt;
* Quick sources - double click to load source&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin)&lt;br /&gt;
* Tab name should be blank and name used until the user chooses to enter something&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Characters now get saved&lt;br /&gt;
* Link up languages in character mock&lt;br /&gt;
* Implement isAutomatic in CharacterMock&lt;br /&gt;
* Allow the debug console to be opened.&lt;br /&gt;
* Implement HP in CharacterLevelsFacadeImpl&lt;br /&gt;
* Implement experience handling&lt;br /&gt;
* Configure single download from autobuild&lt;br /&gt;
* Implement age handling&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* Implement point buy system for stats&lt;br /&gt;
* Implement non editable fields in scores table&lt;br /&gt;
* Implement TODOs in CharacterFacade (String only no links)&lt;br /&gt;
* Implement &amp;quot;Things To Be Done&amp;quot; panel&lt;br /&gt;
* Implement Random button on summary tab - link to GMGen name generator&lt;br /&gt;
* Add accept button to name generator&lt;br /&gt;
* Add guidance text to bottom buttons in name generator&lt;br /&gt;
* Disabled HP and stat increase dialogs on level up (due to no HP dialog defined so level up fails. )&lt;br /&gt;
* Implement new level up dialog. Single dialog for each level up action no matter how many levels added. Show info on hp, skills added etc.&lt;br /&gt;
* Remove use of GenericListModel and replace it with use of ListFacade&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2444</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2444"/>
		<updated>2010-07-15T01:05:53Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Things to be done - Summary Tab */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
This is a shared list of items noted during development and testing of the CDOM UI demo. This page is part of the [[UI_Overhaul]] project.&lt;br /&gt;
&lt;br /&gt;
==Things to be done - [[Summary#Minimilist_Enhancement_0.2|Summary Tab]]==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Add/remove languages - implement LanguageTableModel.Editor.actionPerformed() - Connor&lt;br /&gt;
* Il8n of summary screen&lt;br /&gt;
* Add Generate Rolls button - James&lt;br /&gt;
* Add Edit HP button - Connor&lt;br /&gt;
* Implement Create Monster Character button&lt;br /&gt;
* Stats do not refresh when age category changes - James&lt;br /&gt;
* Redesign name generator dialog&lt;br /&gt;
&lt;br /&gt;
==Things to be done - Other==&lt;br /&gt;
&lt;br /&gt;
* Implement preferences dialog&lt;br /&gt;
* Implement way to add feats to character&lt;br /&gt;
* Implement ablity facade handling in character mock&lt;br /&gt;
* Implement filters in Classes tab&lt;br /&gt;
* Implement filters in Feats and Abilities&lt;br /&gt;
* Implement chooser architecture&lt;br /&gt;
* Handle command line arguments in pcgen.system.Main&lt;br /&gt;
* Reimplement Console dialog to conform to the new UI&lt;br /&gt;
* Loading Sources status bar message hangs around after load finished&lt;br /&gt;
* Remove use of GenericListModel and replace it with use of ListFacade&lt;br /&gt;
* Implement support for parties&lt;br /&gt;
* Look at adding old name generators to GMGen name generator&lt;br /&gt;
* Persist class columns selection across character switched (add a column to the classes table and switch PCs you lose the column)&lt;br /&gt;
* Fix concurrency errors in the core that arise from the Summary Tab's Info pane&lt;br /&gt;
* Split type tree for skills&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Implement player name in character mock&lt;br /&gt;
* Implement handed support in character mock&lt;br /&gt;
* Quick sources - double click to load source&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin)&lt;br /&gt;
* Tab name should be blank and name used until the user chooses to enter something&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Characters now get saved&lt;br /&gt;
* Link up languages in character mock&lt;br /&gt;
* Implement isAutomatic in CharacterMock&lt;br /&gt;
* Allow the debug console to be opened.&lt;br /&gt;
* Implement HP in CharacterLevelsFacadeImpl&lt;br /&gt;
* Implement experience handling&lt;br /&gt;
* Configure single download from autobuild&lt;br /&gt;
* Implement age handling&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* Implement point buy system for stats&lt;br /&gt;
* Implement non editable fields in scores table&lt;br /&gt;
* Implement TODOs in CharacterFacade (String only no links)&lt;br /&gt;
* Implement &amp;quot;Things To Be Done&amp;quot; panel&lt;br /&gt;
* Implement Random button on summary tab - link to GMGen name generator&lt;br /&gt;
* Add accept button to name generator&lt;br /&gt;
* Add guidance text to bottom buttons in name generator&lt;br /&gt;
* Disabled HP and stat increase dialogs on level up (due to no HP dialog defined so level up fails. )&lt;br /&gt;
* Implement new level up dialog. Single dialog for each level up action no matter how many levels added. Show info on hp, skills added etc.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2425</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2425"/>
		<updated>2010-07-09T04:10:03Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
This is a shared list of items noted during development and testing of the CDOM UI demo. This page is part of the [[UI_Overhaul]] project.&lt;br /&gt;
&lt;br /&gt;
==Things to be done - [[Summary#Minimilist_Enhancement_0.2|Summary Tab]]==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Add/remove languages - implement LanguageTableModel.Editor.actionPerformed()&lt;br /&gt;
* Il8n of summary screen&lt;br /&gt;
* Add Generate Rolls button&lt;br /&gt;
* Add Edit HP button&lt;br /&gt;
* Implement Create Monster Character button&lt;br /&gt;
* Stats do not refresh when age category changes&lt;br /&gt;
* Redesign name generator dialog&lt;br /&gt;
&lt;br /&gt;
==Things to be done - Other==&lt;br /&gt;
&lt;br /&gt;
* Implement preferences dialog&lt;br /&gt;
* Implement way to add feats to character&lt;br /&gt;
* Implement ablity facade handling in character mock&lt;br /&gt;
* Implement filters in Classes tab&lt;br /&gt;
* Implement filters in Feats and Abilities&lt;br /&gt;
* Implement chooser architecture&lt;br /&gt;
* Handle command line arguments in pcgen.system.Main&lt;br /&gt;
* Reimplement Console dialog to conform to the new UI&lt;br /&gt;
* Loading Sources status bar message hangs around after load finished&lt;br /&gt;
* Remove use of GenericListModel and replace it with use of ListFacade&lt;br /&gt;
* Implement support for parties&lt;br /&gt;
* Look at adding old name generators to GMGen name generator&lt;br /&gt;
* Persist class columns selection across character switched (add a column to the classes table and switch PCs you lose the column)&lt;br /&gt;
* Fix concurrency errors in the core that arise from the Summary Tab's Info pane&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Implement player name in character mock&lt;br /&gt;
* Implement handed support in character mock&lt;br /&gt;
* Quick sources - double click to load source&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin)&lt;br /&gt;
* Tab name should be blank and name used until the user chooses to enter something&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Characters now get saved&lt;br /&gt;
* Link up languages in character mock&lt;br /&gt;
* Implement isAutomatic in CharacterMock&lt;br /&gt;
* Allow the debug console to be opened.&lt;br /&gt;
* Implement HP in CharacterLevelsFacadeImpl&lt;br /&gt;
* Implement experience handling&lt;br /&gt;
* Configure single download from autobuild&lt;br /&gt;
* Implement age handling&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* Implement point buy system for stats&lt;br /&gt;
* Implement non editable fields in scores table&lt;br /&gt;
* Implement TODOs in CharacterFacade (String only no links)&lt;br /&gt;
* Implement &amp;quot;Things To Be Done&amp;quot; panel&lt;br /&gt;
* Implement Random button on summary tab - link to GMGen name generator&lt;br /&gt;
* Add accept button to name generator&lt;br /&gt;
* Add guidance text to bottom buttons in name generator&lt;br /&gt;
* Disabled HP and stat increase dialogs on level up (due to no HP dialog defined so level up fails. )&lt;br /&gt;
* Implement new level up dialog. Single dialog for each level up action no matter how many levels added. Show info on hp, skills added etc.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2394</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2394"/>
		<updated>2010-07-06T00:14:27Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Things to be done - Summary Tab */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a shared list of items noted during development and testing of the CDOM UI demo. This page is part of the [[UI_Overhaul]] project.&lt;br /&gt;
&lt;br /&gt;
==Things to be done - [[Summary#Minimilist_Enhancement_0.2|Summary Tab]]==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Add/remove languages - implement LanguageTableModel.Editor.actionPerformed()&lt;br /&gt;
* Il8n of summary screen&lt;br /&gt;
* Implement new level up dialog. Single dialog for each level up action no matter how many levels added. Show info on hp, skills added etc. - '''Connor'''&lt;br /&gt;
* Add Generate Rolls button&lt;br /&gt;
* Add Edit HP button&lt;br /&gt;
* Implement Create Monster Character button&lt;br /&gt;
* Stats do not refresh when age category changes&lt;br /&gt;
* Redesign name generator dialog&lt;br /&gt;
&lt;br /&gt;
==Things to be done - Other==&lt;br /&gt;
&lt;br /&gt;
* Implement preferences dialog&lt;br /&gt;
* Implement way to add feats to character&lt;br /&gt;
* Implement ablity facade handling in character mock&lt;br /&gt;
* Implement filters in Classes tab&lt;br /&gt;
* Implement filters in Feats and Abilities&lt;br /&gt;
* Implement chooser architecture&lt;br /&gt;
* Handle command line arguments in pcgen.system.Main&lt;br /&gt;
* Reimplement Console dialog to conform to the new UI&lt;br /&gt;
* Loading Sources status bar message hangs around after load finished&lt;br /&gt;
* Remove use of GenericListModel and replace it with use of ListFacade&lt;br /&gt;
* Implement support for parties&lt;br /&gt;
* Look at adding old name generators to GMGen name generator&lt;br /&gt;
* Persist class columns selection across character switched (add a column to the classes table and switch PCs you lose the column)&lt;br /&gt;
* Fix concurrency errors in the core that arise from the Summary Tab's Info pane&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Implement player name in character mock&lt;br /&gt;
* Implement handed support in character mock&lt;br /&gt;
* Quick sources - double click to load source&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin)&lt;br /&gt;
* Tab name should be blank and name used until the user chooses to enter something&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Characters now get saved&lt;br /&gt;
* Link up languages in character mock&lt;br /&gt;
* Implement isAutomatic in CharacterMock&lt;br /&gt;
* Allow the debug console to be opened.&lt;br /&gt;
* Implement HP in CharacterLevelsFacadeImpl&lt;br /&gt;
* Implement experience handling&lt;br /&gt;
* Configure single download from autobuild&lt;br /&gt;
* Implement age handling&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* Implement point buy system for stats&lt;br /&gt;
* Implement non editable fields in scores table&lt;br /&gt;
* Implement TODOs in CharacterFacade (String only no links)&lt;br /&gt;
* Implement &amp;quot;Things To Be Done&amp;quot; panel&lt;br /&gt;
* Implement Random button on summary tab - link to GMGen name generator&lt;br /&gt;
* Add accept button to name generator&lt;br /&gt;
* Add guidance text to bottom buttons in name generator&lt;br /&gt;
* Disabled HP and stat increase dialogs on level up (due to no HP dialog defined so level up fails. )&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2393</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2393"/>
		<updated>2010-07-04T23:47:00Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Things to be done - Summary Tab */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a shared list of items noted during development and testing of the CDOM UI demo. This page is part of the [[UI_Overhaul]] project.&lt;br /&gt;
&lt;br /&gt;
==Things to be done - [[Summary#Minimilist_Enhancement_0.2|Summary Tab]]==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Add/remove languages - implement LanguageTableModel.Editor.actionPerformed()&lt;br /&gt;
* Il8n of summary screen&lt;br /&gt;
* Implement new level up dialog. Single dialog for each level up action no matter how many levels added. Show info on hp, skills added etc. - '''Connor'''&lt;br /&gt;
* Add Generate Rolls button&lt;br /&gt;
* Add Edit HP button&lt;br /&gt;
* Implement Create Monster Character button&lt;br /&gt;
* Stats do not refresh when age category changes&lt;br /&gt;
&lt;br /&gt;
==Things to be done - Other==&lt;br /&gt;
&lt;br /&gt;
* Implement preferences dialog&lt;br /&gt;
* Implement way to add feats to character&lt;br /&gt;
* Implement ablity facade handling in character mock&lt;br /&gt;
* Implement filters in Classes tab&lt;br /&gt;
* Implement filters in Feats and Abilities&lt;br /&gt;
* Implement chooser architecture&lt;br /&gt;
* Handle command line arguments in pcgen.system.Main&lt;br /&gt;
* Reimplement Console dialog to conform to the new UI&lt;br /&gt;
* Loading Sources status bar message hangs around after load finished&lt;br /&gt;
* Remove use of GenericListModel and replace it with use of ListFacade&lt;br /&gt;
* Implement support for parties&lt;br /&gt;
* Look at adding old name generators to GMGen name generator&lt;br /&gt;
* Persist class columns selection across character switched (add a column to the classes table and switch PCs you lose the column)&lt;br /&gt;
* Fix concurrency errors in the core that arise from the Summary Tab's Info pane&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Implement player name in character mock&lt;br /&gt;
* Implement handed support in character mock&lt;br /&gt;
* Quick sources - double click to load source&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin)&lt;br /&gt;
* Tab name should be blank and name used until the user chooses to enter something&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Characters now get saved&lt;br /&gt;
* Link up languages in character mock&lt;br /&gt;
* Implement isAutomatic in CharacterMock&lt;br /&gt;
* Allow the debug console to be opened.&lt;br /&gt;
* Implement HP in CharacterLevelsFacadeImpl&lt;br /&gt;
* Implement experience handling&lt;br /&gt;
* Configure single download from autobuild&lt;br /&gt;
* Implement age handling&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* Implement point buy system for stats&lt;br /&gt;
* Implement non editable fields in scores table&lt;br /&gt;
* Implement TODOs in CharacterFacade (String only no links)&lt;br /&gt;
* Implement &amp;quot;Things To Be Done&amp;quot; panel&lt;br /&gt;
* Implement Random button on summary tab - link to GMGen name generator&lt;br /&gt;
* Add accept button to name generator&lt;br /&gt;
* Add guidance text to bottom buttons in name generator&lt;br /&gt;
* Disabled HP and stat increase dialogs on level up (due to no HP dialog defined so level up fails. )&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2366</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2366"/>
		<updated>2010-06-27T08:20:38Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a shared list of items noted during development and testing of the CDOM UI demo. This page is part of the [[UI_Overhaul]] project.&lt;br /&gt;
&lt;br /&gt;
==Things to be done - [[Summary#Minimilist_Enhancement_0.2|Summary Tab]]==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Add/remove languages - implement LanguageTableModel.Editor.actionPerformed()&lt;br /&gt;
* Il8n of summary screen&lt;br /&gt;
* Implement new level up dialog. Single dialog for each level up action no matter how many levels added. Show info on hp, skills added etc. - '''Connor'''&lt;br /&gt;
* Add Generate Rolls button&lt;br /&gt;
* Add Edit HP button&lt;br /&gt;
* Implement Create Monster Character button&lt;br /&gt;
&lt;br /&gt;
==Things to be done - Other==&lt;br /&gt;
&lt;br /&gt;
* Implement preferences dialog&lt;br /&gt;
* Implement way to add feats to character&lt;br /&gt;
* Implement ablity facade handling in character mock&lt;br /&gt;
* Implement filters in Classes tab&lt;br /&gt;
* Implement filters in Feats and Abilities&lt;br /&gt;
* Implement chooser architecture&lt;br /&gt;
* Handle command line arguments in pcgen.system.Main&lt;br /&gt;
* Reimplement Console dialog to conform to the new UI&lt;br /&gt;
* Loading Sources status bar message hangs around after load finished&lt;br /&gt;
* Remove use of GenericListModel and replace it with use of ListFacade&lt;br /&gt;
* Implement support for parties&lt;br /&gt;
* Look at adding old name generators to GMGen name generator&lt;br /&gt;
* Persist class columns selection across character switched (add a column to the classes table and switch PCs you lose the column)&lt;br /&gt;
* Fix concurrency errors in the core that arise from the Summary Tab's Info pane&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Implement player name in character mock&lt;br /&gt;
* Implement handed support in character mock&lt;br /&gt;
* Quick sources - double click to load source&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin)&lt;br /&gt;
* Tab name should be blank and name used until the user chooses to enter something&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Characters now get saved&lt;br /&gt;
* Link up languages in character mock&lt;br /&gt;
* Implement isAutomatic in CharacterMock&lt;br /&gt;
* Allow the debug console to be opened.&lt;br /&gt;
* Implement HP in CharacterLevelsFacadeImpl&lt;br /&gt;
* Implement experience handling&lt;br /&gt;
* Configure single download from autobuild&lt;br /&gt;
* Implement age handling&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* Implement point buy system for stats&lt;br /&gt;
* Implement non editable fields in scores table&lt;br /&gt;
* Implement TODOs in CharacterFacade (String only no links)&lt;br /&gt;
* Implement &amp;quot;Things To Be Done&amp;quot; panel&lt;br /&gt;
* Implement Random button on summary tab - link to GMGen name generator&lt;br /&gt;
* Add accept button to name generator&lt;br /&gt;
* Add guidance text to bottom buttons in name generator&lt;br /&gt;
* Disabled HP and stat increase dialogs on level up (due to no HP dialog defined so level up fails. )&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=2340</id>
		<title>UI Overhaul</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=2340"/>
		<updated>2010-06-14T04:03:51Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Design Specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
PCGen is undertaking a UI overhaul, details below, .  It is being lead by [[Connor Petty]], [[James Dempsey]] and [[Tom Parker]] on the Code side and [[John Carimando]] and [[Kerry Kenneally]] on the Look and Feel side.&lt;br /&gt;
&lt;br /&gt;
==Other useful links==&lt;br /&gt;
* [[Old UI Overhaul Page]]&lt;br /&gt;
* '''Please give feedback here: [[Talk:UI_Overhaul]]'''&lt;br /&gt;
&lt;br /&gt;
=Overall Approach=&lt;br /&gt;
&lt;br /&gt;
# We feel that PCGen doesn't need a radical overhaul, it just needs lots of tweaks to the existing design to make it really feel like a RPG app.&lt;br /&gt;
# We feel that the UI overhaul from a design perspective can be done in lots and lots of small changes, hopefully making it easier for developers to tackle items as well as minimising the impact to end users.  They have a fairly long list of small changes to make, which will be detailed in this wiki over time.&lt;br /&gt;
# The designers will run any possible designs past the developers first as they're not 100% aware of the limitations of Swing and they want to make sure that their designs aren't too time consuming or too difficult to implement.  This will probably be in the format of screenshots and/or text.&lt;br /&gt;
# Once a rough design is agreed upon between the developers and the designers then the idea is to throw it to the community for discussion (wiki/polls etc where appropriate).  The idea is to give the users a solid idea to discuss around as opposed to a free-for-all.  The design is then finalised once the community has had its say.&lt;br /&gt;
# Developers can pick up on the various small feature requests and develop them on trunk and/or on cdomui branch as appropriate.  These changes can be applied over the course of 6.0/6.2 and beyond, we realise that we already have enough on our plates for 6.0!&lt;br /&gt;
&lt;br /&gt;
=Global Changes=&lt;br /&gt;
&lt;br /&gt;
* [[Sort Dropdowns]]&lt;br /&gt;
* [[Logo]]&lt;br /&gt;
&lt;br /&gt;
=Tabs=&lt;br /&gt;
&lt;br /&gt;
* [[Summary]]&lt;br /&gt;
* TBA&lt;br /&gt;
&lt;br /&gt;
=Demo=&lt;br /&gt;
&lt;br /&gt;
You can now give the new user interface a go on your own PC. As part of the autobuild of the CDOM UI branch, we are now creating a downloadable program. Go to [http://www.pcgen-test.org/cdomui/download.html CDOM UI Autobuild] to download the files. To run it you will need the following:&lt;br /&gt;
* [http://www.pcgen-test.org/cdomui/downloads/pcgen-1.0-SNAPSHOT-libraries.zip Libraries archive] - only needs to be downloaded once&lt;br /&gt;
* [http://www.pcgen-test.org/cdomui/downloads/pcgen-1.0-SNAPSHOT-program.zip Program archive] - The PCGen program as updated with the latest UI work, download this regularly to try out our latest work.&lt;br /&gt;
* A source of data - copy the data, outputsheets, preview and system folders from your 5.16.2 or later install of pcgen or grab the data download from the [http://www.pcgen-test.org/autobuilds/downloads/pcgen-5.17.0-data.zip main autobuild] .&lt;br /&gt;
Note: To get the above files you will need to be logged into Hudson. A more widely accessible distribution channel will be set up shortly.&lt;br /&gt;
&lt;br /&gt;
==Demo Status==&lt;br /&gt;
* 2010-05-10: Characters can be created, but not loaded or saved.&lt;br /&gt;
* 2010-05-06: Sources can now be loaded, but characters are currently not accessible.&lt;br /&gt;
* 2010-05-01: New downloadable demo added to CI process.&lt;br /&gt;
* 2010-04-30: Revised load sources page added. Sources cannot be loaded and characters are not currently accessible.&lt;br /&gt;
&lt;br /&gt;
=Code Details=&lt;br /&gt;
&lt;br /&gt;
==New Utilities==&lt;br /&gt;
&lt;br /&gt;
* JTreeViewTable&lt;br /&gt;
:This class is an improvement upon JTreeTable that uses a JTreeViewModel instead of a TreeTableModel to display the data in a JTreeTable. Use of the JTreeViewTable is preferred over use of the JTreeTablePane&lt;br /&gt;
&lt;br /&gt;
* ListFacade&lt;br /&gt;
:This is a new type of list format for which its interface contains read only methods. This is used in much of the facade layer due to since listeners can be attached to it to monitor changes to the list. The ListFacade has one of 3 types of change events: Element Added, Element Removed, and Contents Changed. The Element Added/Removed events contain not only the element that was added or removed from the list but also the index at which the event occurred. The Contents Changed event tells the listener that more than one of the elements in the list has been changed and the whole list should be considered changed.&lt;br /&gt;
&lt;br /&gt;
==Design Specification==&lt;br /&gt;
&lt;br /&gt;
The most important design aspect of the new UI is that it will have an inherent separation from the core by having all of the data accessible through facades. This means that the UI will never know the implementation of the underlying data.&lt;br /&gt;
&lt;br /&gt;
*Facade Implementation&lt;br /&gt;
:Facades are expected to override their toString() method because they are going to be displayed directly in the UI.&lt;br /&gt;
:The ListFacades that are returned from methods are expected to be the same instances each time that method is called. Also, any changes to the underlying data must be reflected with changes in the ListFacade.&lt;br /&gt;
&lt;br /&gt;
*Swing Components&lt;br /&gt;
:Any class that extends a swing component is expected to have a null constructor&lt;br /&gt;
&lt;br /&gt;
*CharacterInfo Tabs&lt;br /&gt;
:All of the data on these tabs must be loaded and saved to a hashtable. The reason for this is that all of the models that are used to display information should not need to be recreated each time that tab is selected. If the tab reuses the models then the amount of time between tab switching would become milliseconds instead of seconds. The models themselves are expected to listen to changes from the ListFacade that they associate with and update themselves accordingly.&lt;br /&gt;
&lt;br /&gt;
==Things to be done==&lt;br /&gt;
See [[UI_TODO_LIST]] for a shared memory of things to be done.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2303</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2303"/>
		<updated>2010-06-02T19:11:52Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Things to be done - Other */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a shared list of items noted during development and testing of the CDOM UI demo.&lt;br /&gt;
&lt;br /&gt;
==Things to be done - Summary Tab==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* PCStat - toString() is currently not usable by UI&lt;br /&gt;
* Implement TODOs in CharacterManager&lt;br /&gt;
* Implement &amp;quot;Things To Be Done&amp;quot; panel&lt;br /&gt;
* Remove use of GenericListModel and replace it with use of ListFacade&lt;br /&gt;
* Implement exp handling&lt;br /&gt;
* Implement point buy system for stats&lt;br /&gt;
* Implement Random button on summary tab&lt;br /&gt;
* Implement HP in Character Mock&lt;br /&gt;
* Implement support for parties&lt;br /&gt;
* Add/remove languages - implement LanguageTableModel.Editor.actionPerformed()&lt;br /&gt;
&lt;br /&gt;
==Things to be done - Other==&lt;br /&gt;
&lt;br /&gt;
* Implement preferences dialog&lt;br /&gt;
* Implement way to add feats to character&lt;br /&gt;
* Implement ablity facade handling in character mock&lt;br /&gt;
* Implement filters in Classes tab&lt;br /&gt;
* Implement filters in Feats and Abilities&lt;br /&gt;
* Implement chooser architecture&lt;br /&gt;
* Handle command line arguments in pcgen.system.Main&lt;br /&gt;
* Reimplement Console dialog to conform to the new UI&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Implement player name in character mock&lt;br /&gt;
* Implement handed support in character mock&lt;br /&gt;
* Quick sources - double click to load source&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin)&lt;br /&gt;
* Tab name should be blank and name used until the user chooses to enter something&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Characters now get saved&lt;br /&gt;
* Link up languages in character mock&lt;br /&gt;
* Implement isAutomatic in CharacterMock&lt;br /&gt;
* Allow the debug console to be opened.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2302</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2302"/>
		<updated>2010-06-02T18:57:51Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Things to be done - Other */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a shared list of items noted during development and testing of the CDOM UI demo.&lt;br /&gt;
&lt;br /&gt;
==Things to be done - Summary Tab==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* PCStat - toString() is currently not usable by UI&lt;br /&gt;
* Implement TODOs in CharacterManager&lt;br /&gt;
* Implement &amp;quot;Things To Be Done&amp;quot; panel&lt;br /&gt;
* Remove use of GenericListModel and replace it with use of ListFacade&lt;br /&gt;
* Implement exp handling&lt;br /&gt;
* Implement point buy system for stats&lt;br /&gt;
* Implement Random button on summary tab&lt;br /&gt;
* Implement HP in Character Mock&lt;br /&gt;
* Implement support for parties&lt;br /&gt;
* Add/remove languages - implement LanguageTableModel.Editor.actionPerformed()&lt;br /&gt;
&lt;br /&gt;
==Things to be done - Other==&lt;br /&gt;
&lt;br /&gt;
* Implement preferences dialog&lt;br /&gt;
* Implement way to add feats to character&lt;br /&gt;
* Implement ablity facade handling in character mock&lt;br /&gt;
* Implement filters in Classes tab&lt;br /&gt;
* Implement filters in Feats and Abilities&lt;br /&gt;
* Implement chooser architecture&lt;br /&gt;
* Handle command line arguments in pcgen.system.Main&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Implement player name in character mock&lt;br /&gt;
* Implement handed support in character mock&lt;br /&gt;
* Quick sources - double click to load source&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin)&lt;br /&gt;
* Tab name should be blank and name used until the user chooses to enter something&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Characters now get saved&lt;br /&gt;
* Link up languages in character mock&lt;br /&gt;
* Implement isAutomatic in CharacterMock&lt;br /&gt;
* Allow the debug console to be opened.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2299</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2299"/>
		<updated>2010-06-02T04:40:10Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a shared list of items noted during development and testing of the CDOM UI demo.&lt;br /&gt;
&lt;br /&gt;
==Things to be done - Summary Tab==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* PCStat - toString() is currently not usable by UI&lt;br /&gt;
* Implement TODOs in CharacterManager&lt;br /&gt;
* Implement &amp;quot;Things To Be Done&amp;quot; panel&lt;br /&gt;
* Remove use of GenericListModel and replace it with use of ListFacade&lt;br /&gt;
* Implement exp handling&lt;br /&gt;
* Implement point buy system for stats&lt;br /&gt;
* Implement Random button on summary tab&lt;br /&gt;
* Implement HP in Character Mock&lt;br /&gt;
* Implement support for parties&lt;br /&gt;
* Implement isAutomatic in CharacterMock&lt;br /&gt;
* Add/remove languages - implement LanguageTableModel.Editor.actionPerformed()&lt;br /&gt;
&lt;br /&gt;
==Things to be done - Other==&lt;br /&gt;
&lt;br /&gt;
* Implement preferences dialog&lt;br /&gt;
* Implement way to add feats to character&lt;br /&gt;
* Implement ablity facade handling in character mock&lt;br /&gt;
* Implement filters in Classes tab&lt;br /&gt;
* Implement filters in Feats and Abilities&lt;br /&gt;
* Implement chooser architecture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Implement player name in character mock&lt;br /&gt;
* Implement handed support in character mock&lt;br /&gt;
* Quick sources - double click to load source&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin)&lt;br /&gt;
* Tab name should be blank and name used until the user chooses to enter something&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Characters now get saved&lt;br /&gt;
* Link up languages in character mock&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2298</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2298"/>
		<updated>2010-06-02T04:36:17Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Things to be done - Summary Tab */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a shared list of items noted during development and testing of the CDOM UI demo.&lt;br /&gt;
&lt;br /&gt;
==Things to be done - Summary Tab==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* PCStat - toString() is currently not usable by UI&lt;br /&gt;
* Implement TODOs in CharacterManager&lt;br /&gt;
* Implement &amp;quot;Things To Be Done&amp;quot; panel&lt;br /&gt;
* Remove use of GenericListModel and replace it with use of ListFacade&lt;br /&gt;
* Implement exp handling&lt;br /&gt;
* Implement point buy system for stats&lt;br /&gt;
* Implement Random button on summary tab&lt;br /&gt;
* Implement HP in Character Mock&lt;br /&gt;
* Implement support for parties&lt;br /&gt;
* Implement isAutomatic in CharacterMock&lt;br /&gt;
* Add/remove languages&lt;br /&gt;
&lt;br /&gt;
==Things to be done - Other==&lt;br /&gt;
&lt;br /&gt;
* Implement preferences dialog&lt;br /&gt;
* Implement way to add feats to character&lt;br /&gt;
* Implement ablity facade handling in character mock&lt;br /&gt;
* Implement filters in Classes tab&lt;br /&gt;
* Implement filters in Feats and Abilities&lt;br /&gt;
* Implement chooser architecture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Implement player name in character mock&lt;br /&gt;
* Implement handed support in character mock&lt;br /&gt;
* Quick sources - double click to load source&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin)&lt;br /&gt;
* Tab name should be blank and name used until the user chooses to enter something&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Characters now get saved&lt;br /&gt;
* Link up languages in character mock&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2295</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2295"/>
		<updated>2010-05-30T22:48:59Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Things to be done */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a shared list of items noted during development and testing of the CDOM UI demo.&lt;br /&gt;
&lt;br /&gt;
==Things to be done==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* Editable scores - recalc of variables after changes&lt;br /&gt;
* PCStat - toString() is currently not usable by UI&lt;br /&gt;
* Implement TODOs in CharacterManager&lt;br /&gt;
* Implement &amp;quot;Things To Be Done&amp;quot; panel&lt;br /&gt;
* Remove use of GenericListModel and replace it with use of ListFacade&lt;br /&gt;
* Implement preferences dialog&lt;br /&gt;
* Implement exp handling&lt;br /&gt;
* Implement way to add feats to character&lt;br /&gt;
* Implement ablity facade handling in character mock&lt;br /&gt;
* Implement point buy system for stats&lt;br /&gt;
* Implement filters in Classes tab&lt;br /&gt;
* Implement filters in Feats and Abilities&lt;br /&gt;
* Implement Random button on summary tab&lt;br /&gt;
* Implement chooser architecture&lt;br /&gt;
* Implement HP in Character Mock&lt;br /&gt;
* Implement support for parties&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Implement player name in character mock&lt;br /&gt;
* Implement handed support in character mock&lt;br /&gt;
* Quick sources - double click to load source&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin)&lt;br /&gt;
* Tab name should be blank and name used until the user chooses to enter something&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2294</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2294"/>
		<updated>2010-05-30T22:44:23Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a shared list of items noted during development and testing of the CDOM UI demo.&lt;br /&gt;
&lt;br /&gt;
==Things to be done==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* Editable scores - recalc of variables after changes&lt;br /&gt;
* PCStat - toString() is currently not usable by UI&lt;br /&gt;
* Implement TODOs in CharacterManager&lt;br /&gt;
* Implement &amp;quot;Things To Be Done&amp;quot; panel&lt;br /&gt;
* Remove use of GenericListModel and replace it with use of ListFacade&lt;br /&gt;
* Implement preferences dialog&lt;br /&gt;
* Implement exp handling&lt;br /&gt;
* Implement way to add feats to character&lt;br /&gt;
* Implement ablity facade handling in character mock&lt;br /&gt;
* Implement point buy system for stats&lt;br /&gt;
* Implement filters in Classes tab&lt;br /&gt;
* Implement filters in Feats and Abilities&lt;br /&gt;
* Implement Random button on summary tab&lt;br /&gt;
* Implement chooser architecture&lt;br /&gt;
* Implement HP in Character Mock&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Implement player name in character mock&lt;br /&gt;
* Implement handed support in character mock&lt;br /&gt;
* Quick sources - double click to load source&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin)&lt;br /&gt;
* Tab name should be blank and name used until the user chooses to enter something&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2286</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2286"/>
		<updated>2010-05-26T23:06:04Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a shared list of items noted during development and testing of the CDOM UI demo.&lt;br /&gt;
&lt;br /&gt;
==Things to be done==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin) - '''James'''&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* Editable scores - recalc of variables after changes&lt;br /&gt;
* PCStat - toString() is currently not usable by UI&lt;br /&gt;
* Implement TODOs in CharacterManager&lt;br /&gt;
* Remove use of GenericListModel and replace it with use of ListFacade&lt;br /&gt;
* Implement preferences dialog&lt;br /&gt;
* Implement exp handling&lt;br /&gt;
* Implement way to add feats to character&lt;br /&gt;
* Implement ablity facade handling in character mock&lt;br /&gt;
* Implement point buy system for stats&lt;br /&gt;
* Implement filters in Classes tab&lt;br /&gt;
* Implement filters in Feats and Abilities&lt;br /&gt;
* Implement Random button on summary tab&lt;br /&gt;
* Implement chooser architecture&lt;br /&gt;
* Implement &amp;quot;Things To Be Done&amp;quot; panel&lt;br /&gt;
* Implement HP in Character Mock&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Implement player name in character mock&lt;br /&gt;
* Implement handed support in character mock&lt;br /&gt;
* Quick sources - double click to load source&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2280</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2280"/>
		<updated>2010-05-24T21:34:54Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Things to be done */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a shared list of items noted during development and testing of the CDOM UI demo.&lt;br /&gt;
&lt;br /&gt;
==Things to be done==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin) - '''James'''&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* Editable scores - recalc of variables after changes&lt;br /&gt;
* Quick sources - double click to load source&lt;br /&gt;
* PCStat - toString() is currently not usable by UI&lt;br /&gt;
* Implement TODOs in CharacterManager&lt;br /&gt;
* Remove use of GenericListModel and replace it with use of ListFacade&lt;br /&gt;
* Implement preferences dialog&lt;br /&gt;
* Implement exp handling&lt;br /&gt;
* Implement way to add feats to character&lt;br /&gt;
* Implement ablity facade handling in character mock&lt;br /&gt;
* Implement point buy system for stats&lt;br /&gt;
* Implement filters in Classes tab&lt;br /&gt;
* Implement filters in Feats and Abilities&lt;br /&gt;
* Implement Random button on summary tab&lt;br /&gt;
* Implement chooser architecture&lt;br /&gt;
* Implement &amp;quot;Things To Be Done&amp;quot; panel&lt;br /&gt;
* Implement HP in Character Mock&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Implement player name in character mock&lt;br /&gt;
* Implement handed support in character mock&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2276</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2276"/>
		<updated>2010-05-23T21:39:56Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a shared list of items noted during development and testing of the CDOM UI demo.&lt;br /&gt;
&lt;br /&gt;
==Things to be done==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin)&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* Editable scores - recalc of variables after changes&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Quick sources - double click to load source&lt;br /&gt;
* PCStat - toString() is currently not usable by UI&lt;br /&gt;
* Implement TODOs in CharacterManager&lt;br /&gt;
* Remove use of GenericListModel and replace it with use of ListFacade&lt;br /&gt;
* Implement preferences dialog&lt;br /&gt;
* Implement exp handling&lt;br /&gt;
* Implement way to add feats to character&lt;br /&gt;
* Implement ablity facade handling in character mock&lt;br /&gt;
* Implement point buy system for stats&lt;br /&gt;
* Implement player name in character mock&lt;br /&gt;
* Implement filters in Classes tab&lt;br /&gt;
* Implement filters in Feats and Abilities&lt;br /&gt;
* Implement Random button on summary tab&lt;br /&gt;
* Implement chooser architecture&lt;br /&gt;
* Implement &amp;quot;Things To Be Done&amp;quot; panel&lt;br /&gt;
* Implement handed support in character mock&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2275</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2275"/>
		<updated>2010-05-23T21:19:48Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a shared list of items noted during development and testing of the CDOM UI demo.&lt;br /&gt;
&lt;br /&gt;
==Things to be done==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin)&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* Editable scores - recalc of variables after changes&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Quick sources - double click to load source&lt;br /&gt;
* PCStat - toString() is currently not usable by UI&lt;br /&gt;
* Implement TODOs in CharacterManager&lt;br /&gt;
* Remove use of GenericListModel and replace it with use of ListFacade&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2274</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2274"/>
		<updated>2010-05-23T20:57:31Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Things to be done */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a shared list of items noted during development and testing of the CDOM UI demo.&lt;br /&gt;
&lt;br /&gt;
==Things to be done==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin)&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* Editable scores - recalc of variables after changes&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Quick sources - double click to load source&lt;br /&gt;
* PCStat - toString() is currently not usable by UI&lt;br /&gt;
* Implement TODOs in CharacterManager&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2273</id>
		<title>UI TODO LIST</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_TODO_LIST&amp;diff=2273"/>
		<updated>2010-05-23T05:29:50Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Things to be done */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a shared list of items noted during development and testing of the CDOM UI demo.&lt;br /&gt;
&lt;br /&gt;
==Things to be done==&lt;br /&gt;
&lt;br /&gt;
* Editable Score - Tab order&lt;br /&gt;
* Editable Score - Tab doesn't save entered score&lt;br /&gt;
* Save As - Should add .pcg by default&lt;br /&gt;
* Alignment - Handle ex classes (ie. non LG becomes ex-Paladin)&lt;br /&gt;
* Editable scores - Checking for bounds, locked stats and pool points&lt;br /&gt;
* Editable scores - recalc of variables after changes&lt;br /&gt;
* Info Panel - listen for changes&lt;br /&gt;
* Quick sources - double click to load source&lt;br /&gt;
* PCStat - toString() is currently not usable by UI&lt;br /&gt;
&lt;br /&gt;
==Completed==&lt;br /&gt;
&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=2260</id>
		<title>UI Overhaul</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=2260"/>
		<updated>2010-05-20T21:26:36Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* New Utilities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
PCGen is undertaking a UI overhaul, details below, .  It is being lead by [[Connor Petty]], [[James Dempsey]] and [[Tom Parker]] on the Code side and [[John Carimando]] and [[Kerry Kenneally]] on the Look and Feel side.&lt;br /&gt;
&lt;br /&gt;
==Other useful links==&lt;br /&gt;
* [[Old UI Overhaul Page]]&lt;br /&gt;
* '''Please give feedback here: [[Talk:UI_Overhaul]]'''&lt;br /&gt;
&lt;br /&gt;
=Overall Approach=&lt;br /&gt;
&lt;br /&gt;
# We feel that PCGen doesn't need a radical overhaul, it just needs lots of tweaks to the existing design to make it really feel like a RPG app.&lt;br /&gt;
# We feel that the UI overhaul from a design perspective can be done in lots and lots of small changes, hopefully making it easier for developers to tackle items as well as minimising the impact to end users.  They have a fairly long list of small changes to make, which will be detailed in this wiki over time.&lt;br /&gt;
# The designers will run any possible designs past the developers first as they're not 100% aware of the limitations of Swing and they want to make sure that their designs aren't too time consuming or too difficult to implement.  This will probably be in the format of screenshots and/or text.&lt;br /&gt;
# Once a rough design is agreed upon between the developers and the designers then the idea is to throw it to the community for discussion (wiki/polls etc where appropriate).  The idea is to give the users a solid idea to discuss around as opposed to a free-for-all.  The design is then finalised once the community has had its say.&lt;br /&gt;
# Developers can pick up on the various small feature requests and develop them on trunk and/or on cdomui branch as appropriate.  These changes can be applied over the course of 6.0/6.2 and beyond, we realise that we already have enough on our plates for 6.0!&lt;br /&gt;
&lt;br /&gt;
=Global Changes=&lt;br /&gt;
&lt;br /&gt;
* [[Sort Dropdowns]]&lt;br /&gt;
* [[Logo]]&lt;br /&gt;
&lt;br /&gt;
=Tabs=&lt;br /&gt;
&lt;br /&gt;
* [[Summary]]&lt;br /&gt;
* TBA&lt;br /&gt;
&lt;br /&gt;
=Demo=&lt;br /&gt;
&lt;br /&gt;
You can now give the new user interface a go on your own PC. As part of the autobuild of the CDOM UI branch, we are now creating a downloadable program. Go to [http://www.pcgen-test.org/cdomui/download.html|CDOM UI Autobuild] to download the files. To run it you will need the following:&lt;br /&gt;
* [http://www.pcgen-test.org/cdomui/downloads/pcgen-1.0-SNAPSHOT-libraries.zip Libraries archive] - only needs to be downloaded once&lt;br /&gt;
* [http://www.pcgen-test.org/cdomui/downloads/pcgen-1.0-SNAPSHOT-program.zip Program archive] - The PCGen program as updated with the latest UI work, download this regularly to try out our latest work.&lt;br /&gt;
* A source of data - copy the data, outputsheets, preview and system folders from your 5.16.2 or later install of pcgen or grab the data download from the [http://www.pcgen-test.org/autobuilds/downloads/pcgen-5.17.0-data.zip main autobuild] .&lt;br /&gt;
Note: To get the above files you will need to be logged into Hudson. A more widely accessible distribution channel will be set up shortly.&lt;br /&gt;
&lt;br /&gt;
==Demo Status==&lt;br /&gt;
* 2010-05-10: Characters can be created, but not loaded or saved.&lt;br /&gt;
* 2010-05-06: Sources can now be loaded, but characters are currently not accessible.&lt;br /&gt;
* 2010-05-01: New downloadable demo added to CI process.&lt;br /&gt;
* 2010-04-30: Revised load sources page added. Sources cannot be loaded and characters are not currently accessible.&lt;br /&gt;
&lt;br /&gt;
=Code Details=&lt;br /&gt;
&lt;br /&gt;
==New Utilities==&lt;br /&gt;
&lt;br /&gt;
* JTreeViewTable&lt;br /&gt;
:This class is an improvement upon JTreeTable that uses a JTreeViewModel instead of a TreeTableModel to display the data in a JTreeTable. Use of the JTreeViewTable is preferred over use of the JTreeTablePane&lt;br /&gt;
&lt;br /&gt;
* ListFacade&lt;br /&gt;
:This is a new type of list format for which its interface contains read only methods. This is used in much of the facade layer due to since listeners can be attached to it to monitor changes to the list. The ListFacade has one of 3 types of change events: Element Added, Element Removed, and Contents Changed. The Element Added/Removed events contain not only the element that was added or removed from the list but also the index at which the event occurred. The Contents Changed event tells the listener that more than one of the elements in the list has been changed and the whole list should be considered changed.&lt;br /&gt;
&lt;br /&gt;
==Design Specification==&lt;br /&gt;
&lt;br /&gt;
The most important design aspect of the new UI is that it will have an inherent separation from the core by having all of the data accessible through facades. This means that the UI will never know the implementation of the underlying data.&lt;br /&gt;
&lt;br /&gt;
*Facade Implementation&lt;br /&gt;
:Facades are expected to override their toString() method because they are going to be displayed directly in the UI.&lt;br /&gt;
:The GenericListModels that are returned from methods are expected to be the same instances each time that method is called. Also, any changes to the underlying data must be reflected with changes in the GenericListModel.&lt;br /&gt;
&lt;br /&gt;
*Swing Components&lt;br /&gt;
:Any class that extends a swing component is expected to have a null constructor&lt;br /&gt;
&lt;br /&gt;
*CharacterInfo Tabs&lt;br /&gt;
:All of the data on these tabs must be loaded and saved to a hashtable. The reason for this is that all of the models that are used to display information should not need to be recreated each time that tab is selected. If the tab reuses the models then the amount of time between tab switching would become milliseconds instead of seconds. The models themselves are expected to listen to changes from the GenericListModel that they associate with and update themselves accordingly.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=2254</id>
		<title>UI Overhaul</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=2254"/>
		<updated>2010-05-17T03:48:15Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
PCGen is undertaking a UI overhaul, details below, .  It is being lead by [[Connor Petty]], [[James Dempsey]] and [[Tom Parker]] on the Code side and [[John Carimando]] and [[Kerry Kenneally]] on the Look and Feel side.&lt;br /&gt;
&lt;br /&gt;
==Other useful links==&lt;br /&gt;
* [[Old UI Overhaul Page]]&lt;br /&gt;
* '''Please give feedback here: [[Talk:UI_Overhaul]]'''&lt;br /&gt;
&lt;br /&gt;
=Overall Approach=&lt;br /&gt;
&lt;br /&gt;
# We feel that PCGen doesn't need a radical overhaul, it just needs lots of tweaks to the existing design to make it really feel like a RPG app.&lt;br /&gt;
# We feel that the UI overhaul from a design perspective can be done in lots and lots of small changes, hopefully making it easier for developers to tackle items as well as minimising the impact to end users.  They have a fairly long list of small changes to make, which will be detailed in this wiki over time.&lt;br /&gt;
# The designers will run any possible designs past the developers first as they're not 100% aware of the limitations of Swing and they want to make sure that their designs aren't too time consuming or too difficult to implement.  This will probably be in the format of screenshots and/or text.&lt;br /&gt;
# Once a rough design is agreed upon between the developers and the designers then the idea is to throw it to the community for discussion (wiki/polls etc where appropriate).  The idea is to give the users a solid idea to discuss around as opposed to a free-for-all.  The design is then finalised once the community has had its say.&lt;br /&gt;
# Developers can pick up on the various small feature requests and develop them on trunk and/or on cdomui branch as appropriate.  These changes can be applied over the course of 6.0/6.2 and beyond, we realise that we already have enough on our plates for 6.0!&lt;br /&gt;
&lt;br /&gt;
=Global Changes=&lt;br /&gt;
&lt;br /&gt;
* [[Sort Dropdowns]]&lt;br /&gt;
* [[Logo]]&lt;br /&gt;
&lt;br /&gt;
=Tabs=&lt;br /&gt;
&lt;br /&gt;
* [[Summary]]&lt;br /&gt;
* TBA&lt;br /&gt;
&lt;br /&gt;
=Demo=&lt;br /&gt;
&lt;br /&gt;
You can now give the new user interface a go on your own PC. As part of the autobuild of the CDOM UI branch, we are now creating a downloadable program. Go to [http://www.pcgen-test.org/cdomui/download.html|CDOM UI Autobuild] to download the files. To run it you will need the following:&lt;br /&gt;
* [http://www.pcgen-test.org/cdomui/downloads/pcgen-1.0-SNAPSHOT-libraries.zip Libraries archive] - only needs to be downloaded once&lt;br /&gt;
* [http://www.pcgen-test.org/cdomui/downloads/pcgen-1.0-SNAPSHOT-program.zip Program archive] - The PCGen program as updated with the latest UI work, download this regularly to try out our latest work.&lt;br /&gt;
* A source of data - copy the data, outputsheets, preview and system folders from your 5.16.2 or later install of pcgen or grab the data download from the [http://www.pcgen-test.org/autobuilds/downloads/pcgen-5.17.0-data.zip main autobuild] .&lt;br /&gt;
Note: To get the above files you will need to be logged into Hudson. A more widely accessible distribution channel will be set up shortly.&lt;br /&gt;
&lt;br /&gt;
==Demo Status==&lt;br /&gt;
* 2010-05-10: Characters can be created, but not loaded or saved.&lt;br /&gt;
* 2010-05-06: Sources can now be loaded, but characters are currently not accessible.&lt;br /&gt;
* 2010-05-01: New downloadable demo added to CI process.&lt;br /&gt;
* 2010-04-30: Revised load sources page added. Sources cannot be loaded and characters are not currently accessible.&lt;br /&gt;
&lt;br /&gt;
=Code Details=&lt;br /&gt;
&lt;br /&gt;
==New Utilities==&lt;br /&gt;
&lt;br /&gt;
* JTreeViewPane&lt;br /&gt;
:This class is an improvement upon JTreeTable that uses a JTreeViewModels instead of a TreeTableModel to display the data in a JTreeTable. Use of the JTreeViewPane is preferred over use of the JTreeTablePane&lt;br /&gt;
* GenericListModel&lt;br /&gt;
:This is a simple extension of a ListModel that supports Generics. This implementations of this class use GenericListDataEvents to propagate changes in the list. GenericListDataEvents the set of Data that was affected during the change; when data is added, it includes the added data, when data is removed or changed, it includes the removed data.&lt;br /&gt;
&lt;br /&gt;
==Design Specification==&lt;br /&gt;
&lt;br /&gt;
The most important design aspect of the new UI is that it will have an inherent separation from the core by having all of the data accessible through facades. This means that the UI will never know the implementation of the underlying data.&lt;br /&gt;
&lt;br /&gt;
*Facade Implementation&lt;br /&gt;
:Facades are expected to override their toString() method because they are going to be displayed directly in the UI.&lt;br /&gt;
:The GenericListModels that are returned from methods are expected to be the same instances each time that method is called. Also, any changes to the underlying data must be reflected with changes in the GenericListModel.&lt;br /&gt;
&lt;br /&gt;
*Swing Components&lt;br /&gt;
:Any class that extends a swing component is expected to have a null constructor&lt;br /&gt;
&lt;br /&gt;
*CharacterInfo Tabs&lt;br /&gt;
:All of the data on these tabs must be loaded and saved to a hashtable. The reason for this is that all of the models that are used to display information should not need to be recreated each time that tab is selected. If the tab reuses the models then the amount of time between tab switching would become milliseconds instead of seconds. The models themselves are expected to listen to changes from the GenericListModel that they associate with and update themselves accordingly.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=2253</id>
		<title>UI Overhaul</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=2253"/>
		<updated>2010-05-17T03:46:41Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
PCGen is undertaking a UI overhaul, details below, .  It is being lead by [[Connor Petty]], [[James Dempsey]] and [[Tom Parker]] on the Code side and [[John Carimando]] and [[Kerry Kenneally]] on the Look and Feel side.&lt;br /&gt;
&lt;br /&gt;
==Other useful links==&lt;br /&gt;
* [[Old UI Overhaul Page]]&lt;br /&gt;
* '''Please give feedback here: [[Talk:UI_Overhaul]]'''&lt;br /&gt;
&lt;br /&gt;
=Overall Approach=&lt;br /&gt;
&lt;br /&gt;
# We feel that PCGen doesn't need a radical overhaul, it just needs lots of tweaks to the existing design to make it really feel like a RPG app.&lt;br /&gt;
# We feel that the UI overhaul from a design perspective can be done in lots and lots of small changes, hopefully making it easier for developers to tackle items as well as minimising the impact to end users.  They have a fairly long list of small changes to make, which will be detailed in this wiki over time.&lt;br /&gt;
# The designers will run any possible designs past the developers first as they're not 100% aware of the limitations of Swing and they want to make sure that their designs aren't too time consuming or too difficult to implement.  This will probably be in the format of screenshots and/or text.&lt;br /&gt;
# Once a rough design is agreed upon between the developers and the designers then the idea is to throw it to the community for discussion (wiki/polls etc where appropriate).  The idea is to give the users a solid idea to discuss around as opposed to a free-for-all.  The design is then finalised once the community has had its say.&lt;br /&gt;
# Developers can pick up on the various small feature requests and develop them on trunk and/or on cdomui branch as appropriate.  These changes can be applied over the course of 6.0/6.2 and beyond, we realise that we already have enough on our plates for 6.0!&lt;br /&gt;
&lt;br /&gt;
=Global Changes=&lt;br /&gt;
&lt;br /&gt;
* [[Sort Dropdowns]]&lt;br /&gt;
* [[Logo]]&lt;br /&gt;
&lt;br /&gt;
=Tabs=&lt;br /&gt;
&lt;br /&gt;
* [[Summary]]&lt;br /&gt;
* TBA&lt;br /&gt;
&lt;br /&gt;
=Demo=&lt;br /&gt;
&lt;br /&gt;
You can now give the new user interface a go on your own PC. As part of the autobuild of the CDOM UI branch, we are now creating a downloadable program. Go to [http://www.pcgen-test.org/cdomui/download.html|CDOM UI Autobuild] to download the files. To run it you will need the following:&lt;br /&gt;
* [http://www.pcgen-test.org/cdomui/downloads/pcgen-1.0-SNAPSHOT-libraries.zip Libraries archive] - only needs to be downloaded once&lt;br /&gt;
* [http://www.pcgen-test.org/cdomui/downloads/pcgen-1.0-SNAPSHOT-program.zip Program archive] - The PCGen program as updated with the latest UI work, download this regularly to try out our latest work.&lt;br /&gt;
* A source of data - copy the data, outputsheets, preview and system folders from your 5.16.2 or later install of pcgen or grab the data download from the [http://www.pcgen-test.org/autobuilds/downloads/pcgen-5.17.0-data.zip main autobuild] .&lt;br /&gt;
Note: To get the above files you will need to be logged into Hudson. A more widely accessible distribution channel will be set up shortly.&lt;br /&gt;
&lt;br /&gt;
==Demo Status==&lt;br /&gt;
* 2010-05-10: Sources and characters are now accessible.&lt;br /&gt;
* 2010-05-06: Sources can now be loaded, but characters are currently not accessible.&lt;br /&gt;
* 2010-05-01: New downloadable demo added to CI process.&lt;br /&gt;
* 2010-04-30: Revised load sources page added. Sources cannot be loaded and characters are not currently accessible.&lt;br /&gt;
&lt;br /&gt;
=Code Details=&lt;br /&gt;
&lt;br /&gt;
==New Utilities==&lt;br /&gt;
&lt;br /&gt;
* JTreeViewPane&lt;br /&gt;
:This class is an improvement upon JTreeTable that uses a JTreeViewModels instead of a TreeTableModel to display the data in a JTreeTable. Use of the JTreeViewPane is preferred over use of the JTreeTablePane&lt;br /&gt;
* GenericListModel&lt;br /&gt;
:This is a simple extension of a ListModel that supports Generics. This implementations of this class use GenericListDataEvents to propagate changes in the list. GenericListDataEvents the set of Data that was affected during the change; when data is added, it includes the added data, when data is removed or changed, it includes the removed data.&lt;br /&gt;
&lt;br /&gt;
==Design Specification==&lt;br /&gt;
&lt;br /&gt;
The most important design aspect of the new UI is that it will have an inherent separation from the core by having all of the data accessible through facades. This means that the UI will never know the implementation of the underlying data.&lt;br /&gt;
&lt;br /&gt;
*Facade Implementation&lt;br /&gt;
:Facades are expected to override their toString() method because they are going to be displayed directly in the UI.&lt;br /&gt;
:The GenericListModels that are returned from methods are expected to be the same instances each time that method is called. Also, any changes to the underlying data must be reflected with changes in the GenericListModel.&lt;br /&gt;
&lt;br /&gt;
*Swing Components&lt;br /&gt;
:Any class that extends a swing component is expected to have a null constructor&lt;br /&gt;
&lt;br /&gt;
*CharacterInfo Tabs&lt;br /&gt;
:All of the data on these tabs must be loaded and saved to a hashtable. The reason for this is that all of the models that are used to display information should not need to be recreated each time that tab is selected. If the tab reuses the models then the amount of time between tab switching would become milliseconds instead of seconds. The models themselves are expected to listen to changes from the GenericListModel that they associate with and update themselves accordingly.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=2222</id>
		<title>UI Overhaul</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=2222"/>
		<updated>2010-05-06T16:37:22Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
PCGen is undertaking a UI overhaul, details below, .  It is being lead by [[Connor Petty]], [[James Dempsey]] and [[Tom Parker]] on the Code side and [[John Carimando]] and [[Kerry Kenneally]] on the Look and Feel side.&lt;br /&gt;
&lt;br /&gt;
==Other useful links==&lt;br /&gt;
* [[Old UI Overhaul Page]]&lt;br /&gt;
* '''Please give feedback here: [[Talk:UI_Overhaul]]'''&lt;br /&gt;
&lt;br /&gt;
=Overall Approach=&lt;br /&gt;
&lt;br /&gt;
# We feel that PCGen doesn't need a radical overhaul, it just needs lots of tweaks to the existing design to make it really feel like a RPG app.&lt;br /&gt;
# We feel that the UI overhaul from a design perspective can be done in lots and lots of small changes, hopefully making it easier for developers to tackle items as well as minimising the impact to end users.  They have a fairly long list of small changes to make, which will be detailed in this wiki over time.&lt;br /&gt;
# The designers will run any possible designs past the developers first as they're not 100% aware of the limitations of Swing and they want to make sure that their designs aren't too time consuming or too difficult to implement.  This will probably be in the format of screenshots and/or text.&lt;br /&gt;
# Once a rough design is agreed upon between the developers and the designers then the idea is to throw it to the community for discussion (wiki/polls etc where appropriate).  The idea is to give the users a solid idea to discuss around as opposed to a free-for-all.  The design is then finalised once the community has had its say.&lt;br /&gt;
# Developers can pick up on the various small feature requests and develop them on trunk and/or on cdomui branch as appropriate.  These changes can be applied over the course of 6.0/6.2 and beyond, we realise that we already have enough on our plates for 6.0!&lt;br /&gt;
&lt;br /&gt;
=Global Changes=&lt;br /&gt;
&lt;br /&gt;
* [[Sort Dropdowns]]&lt;br /&gt;
* [[Logo]]&lt;br /&gt;
&lt;br /&gt;
=Tabs=&lt;br /&gt;
&lt;br /&gt;
* [[Summary]]&lt;br /&gt;
* TBA&lt;br /&gt;
&lt;br /&gt;
=Demo=&lt;br /&gt;
&lt;br /&gt;
You can now give the new user interface a go on your own PC. As part of the autobuild of the CDOM UI branch, we are now creating a downloadable program. To run it you will need the following:&lt;br /&gt;
* [http://ci.pcgen.org/hudson/job/PCGen%20CDOM%20UI/ws/cdomui/target/pcgen-1.0-SNAPSHOT-libraries.zip Libraries archive] - only needs to be downloaded once&lt;br /&gt;
* [http://ci.pcgen.org/hudson/job/PCGen%20CDOM%20UI/ws/cdomui/target/pcgen-1.0-SNAPSHOT-program.zip Program archive] - The PCGen program as updated with the latest UI work, downalod this regularly to try out our latest work.&lt;br /&gt;
* A source of data - copy the data, outputsheets, preview and system folders from your 5.16.2 or later install of pcgen&lt;br /&gt;
Note: To get the above files you will need to be logged into Hudson. A more widely accessible distribution channel will be set up shortly.&lt;br /&gt;
&lt;br /&gt;
==Demo Status==&lt;br /&gt;
* 2010-05-06: Sources can now be loaded, but characters are currently not accessible.&lt;br /&gt;
* 2010-05-01: New downloadable demo added to CI process.&lt;br /&gt;
* 2010-04-30: Revised load sources page added. Sources cannot be loaded and characters are not currently accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Code Details=&lt;br /&gt;
&lt;br /&gt;
==New Utilities==&lt;br /&gt;
&lt;br /&gt;
* JTreeViewPane&lt;br /&gt;
:This class is an improvement upon JTreeTable that uses a JTreeViewModels instead of a TreeTableModel to display the data in a JTreeTable. Use of the JTreeViewPane is preferred over use of the JTreeTablePane&lt;br /&gt;
* GenericListModel&lt;br /&gt;
:This is a simple extension of a ListModel that supports Generics. This implementations of this class use GenericListDataEvents to propagate changes in the list. GenericListDataEvents the set of Data that was affected during the change; when data is added, it includes the added data, when data is removed or changed, it includes the removed data.&lt;br /&gt;
&lt;br /&gt;
==Design Specification==&lt;br /&gt;
&lt;br /&gt;
The most important design aspect of the new UI is that it will have an inherent separation from the core by having all of the data accessible through facades. This means that the UI will never know the implementation of the underlying data.&lt;br /&gt;
&lt;br /&gt;
*Facade Implementation&lt;br /&gt;
:Facades are expected to override their toString() method because they are going to be displayed directly in the UI.&lt;br /&gt;
:The GenericListModels that are returned from methods are expected to be the same instances each time that method is called. Also, any changes to the underlying data must be reflected with changes in the GenericListModel.&lt;br /&gt;
&lt;br /&gt;
*Swing Components&lt;br /&gt;
:Any class that extends a swing component is expected to have a null constructor&lt;br /&gt;
&lt;br /&gt;
*CharacterInfo Tabs&lt;br /&gt;
:All of the data on these tabs must be loaded and saved to a hashtable. The reason for this is that all of the models that are used to display information should not need to be recreated each time that tab is selected. If the tab reuses the models then the amount of time between tab switching would become milliseconds instead of seconds. The models themselves are expected to listen to changes from the GenericListModel that they associate with and update themselves accordingly.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=2221</id>
		<title>UI Overhaul</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=2221"/>
		<updated>2010-05-06T16:35:14Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
PCGen is undertaking a UI overhaul, details below, .  It is being lead by [[Connor Petty]], [[James Dempsey begin_of_the_skype_highlighting     end_of_the_skype_highlighting begin_of_the_skype_highlighting     end_of_the_skype_highlighting begin_of_the_skype_highlighting     end_of_the_skype_highlighting]] and [[Tom Parker]] on the Code side and [[John Carimando]] and [[Kerry Kenneally]] on the Look and Feel side.&lt;br /&gt;
&lt;br /&gt;
==Other useful links==&lt;br /&gt;
* [[Old UI Overhaul Page]]&lt;br /&gt;
* '''Please give feedback here: [[Talk:UI_Overhaul]]'''&lt;br /&gt;
&lt;br /&gt;
=Overall Approach=&lt;br /&gt;
&lt;br /&gt;
# We feel that PCGen doesn't need a radical overhaul, it just needs lots of tweaks to the existing design to make it really feel like a RPG app.&lt;br /&gt;
# We feel that the UI overhaul from a design perspective can be done in lots and lots of small changes, hopefully making it easier for developers to tackle items as well as minimising the impact to end users.  They have a fairly long list of small changes to make, which will be detailed in this wiki over time.&lt;br /&gt;
# The designers will run any possible designs past the developers first as they're not 100% aware of the limitations of Swing and they want to make sure that their designs aren't too time consuming or too difficult to implement.  This will probably be in the format of screenshots and/or text.&lt;br /&gt;
# Once a rough design is agreed upon between the developers and the designers then the idea is to throw it to the community for discussion (wiki/polls etc where appropriate).  The idea is to give the users a solid idea to discuss around as opposed to a free-for-all.  The design is then finalised once the community has had its say.&lt;br /&gt;
# Developers can pick up on the various small feature requests and develop them on trunk and/or on cdomui branch as appropriate.  These changes can be applied over the course of 6.0/6.2 and beyond, we realise that we already have enough on our plates for 6.0!&lt;br /&gt;
&lt;br /&gt;
=Global Changes=&lt;br /&gt;
&lt;br /&gt;
* [[Sort Dropdowns]]&lt;br /&gt;
* [[Logo]]&lt;br /&gt;
&lt;br /&gt;
=Tabs=&lt;br /&gt;
&lt;br /&gt;
* [[Summary]]&lt;br /&gt;
* TBA&lt;br /&gt;
&lt;br /&gt;
=Demo=&lt;br /&gt;
&lt;br /&gt;
You can now give the new user interface a go on your own PC. As part of the autobuild of the CDOM UI branch, we are now creating a downloadable program. To run it you will need the following:&lt;br /&gt;
* [http://ci.pcgen.org/hudson/job/PCGen%20CDOM%20UI/ws/cdomui/target/pcgen-1.0-SNAPSHOT-libraries.zip Libraries archive] - only needs to be downloaded once&lt;br /&gt;
* [http://ci.pcgen.org/hudson/job/PCGen%20CDOM%20UI/ws/cdomui/target/pcgen-1.0-SNAPSHOT-program.zip Program archive] - The PCGen program as updated with the latest UI work, downalod this regularly to try out our latest work.&lt;br /&gt;
* A source of data - copy the data, outputsheets, preview and system folders from your 5.16.2 or later install of pcgen&lt;br /&gt;
Note: To get the above files you will need to be logged into Hudson. A more widely accessible distribution channel will be set up shortly.&lt;br /&gt;
&lt;br /&gt;
==Demo Status==&lt;br /&gt;
* 2010-05-06: Sources can now be loaded, but characters are currently not accessible.&lt;br /&gt;
* 2010-05-01: New downloadable demo added to CI process.&lt;br /&gt;
* 2010-04-30: Revised load sources page added. Sources cannot be loaded and characters are not currently accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Code Details=&lt;br /&gt;
&lt;br /&gt;
==New Utilities==&lt;br /&gt;
&lt;br /&gt;
* JTreeViewPane&lt;br /&gt;
:This class is an improvement upon JTreeTable that uses a JTreeViewModels instead of a TreeTableModel to display the data in a JTreeTable. Use of the JTreeViewPane is preferred over use of the JTreeTablePane&lt;br /&gt;
* GenericListModel&lt;br /&gt;
:This is a simple extension of a ListModel that supports Generics. This implementations of this class use GenericListDataEvents to propagate changes in the list. GenericListDataEvents the set of Data that was affected during the change; when data is added, it includes the added data, when data is removed or changed, it includes the removed data.&lt;br /&gt;
&lt;br /&gt;
==Design Specification==&lt;br /&gt;
&lt;br /&gt;
The most important design aspect of the new UI is that it will have an inherent separation from the core by having all of the data accessible through facades. This means that the UI will never know the implementation of the underlying data.&lt;br /&gt;
&lt;br /&gt;
*Facade Implementation&lt;br /&gt;
:Facades are expected to override their toString() method because they are going to be displayed directly in the UI.&lt;br /&gt;
:The GenericListModels that are returned from methods are expected to be the same instances each time that method is called. Also, any changes to the underlying data must be reflected with changes in the GenericListModel.&lt;br /&gt;
&lt;br /&gt;
*Swing Components&lt;br /&gt;
:Any class that extends a swing component is expected to have a null constructor&lt;br /&gt;
&lt;br /&gt;
*CharacterInfo Tabs&lt;br /&gt;
:All of the data on these tabs must be loaded and saved to a hashtable. The reason for this is that all of the models that are used to display information should not need to be recreated each time that tab is selected. If the tab reuses the models then the amount of time between tab switching would become milliseconds instead of seconds. The models themselves are expected to listen to changes from the GenericListModel that they associate with and update themselves accordingly.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=2220</id>
		<title>UI Overhaul</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=2220"/>
		<updated>2010-05-06T16:33:59Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
PCGen is undertaking a UI overhaul, details below, .  It is being lead by [[Connor Petty]], [[James Dempsey begin_of_the_skype_highlighting     end_of_the_skype_highlighting]] and [[Tom Parker]] on the Code side and [[John Carimando]] and [[Kerry Kenneally]] on the Look and Feel side.&lt;br /&gt;
&lt;br /&gt;
==Other useful links==&lt;br /&gt;
* [[Old UI Overhaul Page]]&lt;br /&gt;
* '''Please give feedback here: [[Talk:UI_Overhaul]]'''&lt;br /&gt;
&lt;br /&gt;
=Overall Approach=&lt;br /&gt;
&lt;br /&gt;
# We feel that PCGen doesn't need a radical overhaul, it just needs lots of tweaks to the existing design to make it really feel like a RPG app.&lt;br /&gt;
# We feel that the UI overhaul from a design perspective can be done in lots and lots of small changes, hopefully making it easier for developers to tackle items as well as minimising the impact to end users.  They have a fairly long list of small changes to make, which will be detailed in this wiki over time.&lt;br /&gt;
# The designers will run any possible designs past the developers first as they're not 100% aware of the limitations of Swing and they want to make sure that their designs aren't too time consuming or too difficult to implement.  This will probably be in the format of screenshots and/or text.&lt;br /&gt;
# Once a rough design is agreed upon between the developers and the designers then the idea is to throw it to the community for discussion (wiki/polls etc where appropriate).  The idea is to give the users a solid idea to discuss around as opposed to a free-for-all.  The design is then finalised once the community has had its say.&lt;br /&gt;
# Developers can pick up on the various small feature requests and develop them on trunk and/or on cdomui branch as appropriate.  These changes can be applied over the course of 6.0/6.2 and beyond, we realise that we already have enough on our plates for 6.0!&lt;br /&gt;
&lt;br /&gt;
=Global Changes=&lt;br /&gt;
&lt;br /&gt;
* [[Sort Dropdowns]]&lt;br /&gt;
* [[Logo]]&lt;br /&gt;
&lt;br /&gt;
=Tabs=&lt;br /&gt;
&lt;br /&gt;
* [[Summary]]&lt;br /&gt;
* TBA&lt;br /&gt;
&lt;br /&gt;
=Demo=&lt;br /&gt;
&lt;br /&gt;
You can now give the new user interface a go on your own PC. As part of the autobuild of the CDOM UI branch, we are now creating a downloadable program. To run it you will need the following:&lt;br /&gt;
* [http://ci.pcgen.org/hudson/job/PCGen%20CDOM%20UI/ws/cdomui/target/pcgen-1.0-SNAPSHOT-libraries.zip Libraries archive] - only needs to be downloaded once&lt;br /&gt;
* [http://ci.pcgen.org/hudson/job/PCGen%20CDOM%20UI/ws/cdomui/target/pcgen-1.0-SNAPSHOT-program.zip Program archive] - The PCGen program as updated with the latest UI work, downalod this regularly to try out our latest work.&lt;br /&gt;
* A source of data - copy the data, outputsheets, preview and system folders from your 5.16.2 or later install of pcgen&lt;br /&gt;
Note: To get the above files you will need to be logged into Hudson. A more widely accessible distribution channel will be set up shortly.&lt;br /&gt;
&lt;br /&gt;
==Demo Status==&lt;br /&gt;
2010-05-06: Sources can now be loaded, but characters are currently not accessible.&lt;br /&gt;
2010-05-01: New downloadable demo added to CI process.&lt;br /&gt;
2010-04-30: Revised load sources page added. Sources cannot be loaded and characters are not currently accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Code Details=&lt;br /&gt;
&lt;br /&gt;
==New Utilities==&lt;br /&gt;
&lt;br /&gt;
* JTreeViewPane&lt;br /&gt;
:This class is an improvement upon JTreeTable that uses a JTreeViewModels instead of a TreeTableModel to display the data in a JTreeTable. Use of the JTreeViewPane is preferred over use of the JTreeTablePane&lt;br /&gt;
* GenericListModel&lt;br /&gt;
:This is a simple extension of a ListModel that supports Generics. This implementations of this class use GenericListDataEvents to propagate changes in the list. GenericListDataEvents the set of Data that was affected during the change; when data is added, it includes the added data, when data is removed or changed, it includes the removed data.&lt;br /&gt;
&lt;br /&gt;
==Design Specification==&lt;br /&gt;
&lt;br /&gt;
The most important design aspect of the new UI is that it will have an inherent separation from the core by having all of the data accessible through facades. This means that the UI will never know the implementation of the underlying data.&lt;br /&gt;
&lt;br /&gt;
*Facade Implementation&lt;br /&gt;
:Facades are expected to override their toString() method because they are going to be displayed directly in the UI.&lt;br /&gt;
:The GenericListModels that are returned from methods are expected to be the same instances each time that method is called. Also, any changes to the underlying data must be reflected with changes in the GenericListModel.&lt;br /&gt;
&lt;br /&gt;
*Swing Components&lt;br /&gt;
:Any class that extends a swing component is expected to have a null constructor&lt;br /&gt;
&lt;br /&gt;
*CharacterInfo Tabs&lt;br /&gt;
:All of the data on these tabs must be loaded and saved to a hashtable. The reason for this is that all of the models that are used to display information should not need to be recreated each time that tab is selected. If the tab reuses the models then the amount of time between tab switching would become milliseconds instead of seconds. The models themselves are expected to listen to changes from the GenericListModel that they associate with and update themselves accordingly.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=System_Configuration_File&amp;diff=2125</id>
		<title>System Configuration File</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=System_Configuration_File&amp;diff=2125"/>
		<updated>2010-03-22T18:57:46Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: Created page with '=Properties= * settingsPath - This contains the directory in which the settings files for PCGen are kept. This can be set to: ** user - the users application settings directory i...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Properties=&lt;br /&gt;
* settingsPath - This contains the directory in which the settings files for PCGen are kept. This can be set to:&lt;br /&gt;
** user - the users application settings directory in a folder called &amp;quot;.pcgen&amp;quot;&lt;br /&gt;
** pcgen - where PCGen was installed&lt;br /&gt;
** mac_user - for mac users only, this is the mac applications settings directory&lt;br /&gt;
** any valid path to a directory. This is custom set by the user during install&lt;br /&gt;
* systemsPath - the folder containing PCGen systems files and folders&lt;br /&gt;
* osPath - the folder containing PCGen output sheets&lt;br /&gt;
* pluginsPath - the folder containing PCGen plugins&lt;br /&gt;
* docsPath -&lt;br /&gt;
* vendordataPath -&lt;br /&gt;
* previewPath -&lt;br /&gt;
* pccFilesPath -&lt;br /&gt;
* language - the language key used to configure the locale pcgen will run under&lt;br /&gt;
* country - the country key used to configure the locale pcgen will run under&lt;br /&gt;
Other properties may also exist, and although they are needed during pcgen's startup, they are not important enough to mention.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=Startup_System&amp;diff=2124</id>
		<title>Startup System</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=Startup_System&amp;diff=2124"/>
		<updated>2010-03-22T18:19:05Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Startup Order(Normal)=&lt;br /&gt;
# Load configuration properties from [[System Configuration File|config.ini]]&lt;br /&gt;
# Override configuration properties with command line arguments (if any) or system set properties (ie through System.getProperty())&lt;br /&gt;
# Configure UI&lt;br /&gt;
## Set default locale&lt;br /&gt;
## Load Internationalization Properties File. This is done to enable error messages after this point to be multilingual.&lt;br /&gt;
## Load and initialize Look and Feel&lt;br /&gt;
# Load the settings files from the settings directory&lt;br /&gt;
# Load Plugins. This may be accompanied by a splash screen if the user has enabled it.&lt;br /&gt;
# Initialize Game Modes&lt;br /&gt;
## Initialize PersistenceManager&lt;br /&gt;
## Load most recently used game mode. Also maybe be accompanied with a splash screen.&lt;br /&gt;
# Initialize and Display PCGenFrame&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=Startup_System&amp;diff=2123</id>
		<title>Startup System</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=Startup_System&amp;diff=2123"/>
		<updated>2010-03-22T18:16:09Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: Created page with '=Startup Order(Normal)= # Load configuration properties from config.ini # Override configuration properties with command line arguments (if any) or system set properties (ie thro...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Startup Order(Normal)=&lt;br /&gt;
# Load configuration properties from config.ini&lt;br /&gt;
# Override configuration properties with command line arguments (if any) or system set properties (ie through System.getProperty())&lt;br /&gt;
# Configure UI&lt;br /&gt;
## Set default locale&lt;br /&gt;
## Load Internationalization Properties File. This is done to enable error messages after this point to be multilingual.&lt;br /&gt;
## Load and initialize Look and Feel&lt;br /&gt;
# Load the settings files from the settings directory&lt;br /&gt;
# Load Plugins. This may be accompanied by a splash screen if the user has enabled it.&lt;br /&gt;
# Initialize Game Modes&lt;br /&gt;
## Initialize PersistenceManager&lt;br /&gt;
## Load most recently used game mode. Also maybe be accompanied with a splash screen.&lt;br /&gt;
# Initialize and Display PCGenFrame&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=Architecture&amp;diff=2122</id>
		<title>Architecture</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=Architecture&amp;diff=2122"/>
		<updated>2010-03-22T17:41:18Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
=Introduction=&lt;br /&gt;
Welcome to the Wiki section for the Architecture team!&lt;br /&gt;
&lt;br /&gt;
=Mission Statement=&lt;br /&gt;
To guide PCGen through the re-architecting process, moving PCGen to a more robust and flexible architecture while improving both maintainability and expandability of the PCGen code base as the RPG community grows and the industry changes.&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
&lt;br /&gt;
* Key [[Design Concepts for PCGen]]&lt;br /&gt;
&lt;br /&gt;
* Systems within PCGen [[Image:Overall_system_figure.png|frame|Block diagram of proposed CDOM structure]]&lt;br /&gt;
** Load UI: The &amp;lt;i&amp;gt;Load UI&amp;lt;/i&amp;gt; is responsible for presenting the user with the options of game systems and components available to be loaded.  The LoadUI triggers a call to the &amp;lt;i&amp;gt;Rules Persistence&amp;lt;/i&amp;gt; system when the user requests for specific data to be loaded, and to the &amp;lt;i&amp;gt;Character Persistence&amp;lt;/i&amp;gt; system when the user requests for a Player Character to be loaded.. &lt;br /&gt;
** Editor UI: The &amp;lt;i&amp;gt;Editor UI&amp;lt;/i&amp;gt; is responsible for presenting the user with the contents of the &amp;lt;i&amp;gt;Rules Data Store&amp;lt;/i&amp;gt;.  It communicates requests to change the contents of the &amp;lt;i&amp;gt;Rules Data Store&amp;lt;/i&amp;gt; to the &amp;lt;i&amp;gt;Rules Editor&amp;lt;/i&amp;gt; system. &lt;br /&gt;
** Player Character UI: The &amp;lt;i&amp;gt;Player Character UI&amp;lt;/i&amp;gt; is responsible for presenting the user with the contents of the PC, including all of the PC's characteristics.  Requests to modify a PC are sent to the &amp;lt;i&amp;gt;Character Editor&amp;lt;/i&amp;gt; system for action. &lt;br /&gt;
** [[Startup System]]: The &amp;lt;i&amp;gt;Startup System&amp;lt;/i&amp;gt; is responsible for the activities required to load PCGen to the state where a user can select an option from the &amp;lt;i&amp;gt;Load UI&amp;lt;/i&amp;gt;. This includes discovery of Plugins. &lt;br /&gt;
** [[Rules Persistence System|Rules Persistence]]: The &amp;lt;i&amp;gt;Rules Persistence&amp;lt;/i&amp;gt; system is responsible for loading game system and component data from the data file format and saving it back into that data file format. &lt;br /&gt;
*** [[Arch. Discuss of Plugin System|The Persistence Plugin System]]&lt;br /&gt;
*** [[Load Commit Subsystem]]&lt;br /&gt;
** Rules Editor: The &amp;lt;i&amp;gt;Rules Editor&amp;lt;/i&amp;gt; system is responsible for providing the capability to modify the &amp;lt;i&amp;gt;Rules Data Store&amp;lt;/i&amp;gt;.  This includes modifying existing items and inserting new items into the &amp;lt;i&amp;gt;Rules Data Store&amp;lt;/i&amp;gt;. &lt;br /&gt;
** Character Editor: The &amp;lt;i&amp;gt;Character Editor&amp;lt;/i&amp;gt; system is responsible for providing the capability to modify the PC.  Changes to the PC are communicated to the &amp;lt;i&amp;gt;Event Controller&amp;lt;/i&amp;gt; as well as written into the &amp;lt;i&amp;gt;Character Data Store&amp;lt;/i&amp;gt;. &lt;br /&gt;
** Character Persistence: The &amp;lt;i&amp;gt;Character Persistence&amp;lt;/i&amp;gt; system is responsible for loading and saving PCs into the specified file format. The &amp;lt;i&amp;gt;Character Persistence&amp;lt;/i&amp;gt; system is also responsible for creating and initializing a new Player Character.  &lt;br /&gt;
** Character Output: The &amp;lt;i&amp;gt;Character Output&amp;lt;/i&amp;gt; system is responsible for resolving the active objects on a PC, searching those objects to find specific information, and preparing that information for consumption by any of the systems that desire PC information. &lt;br /&gt;
** [[Rules Data Store]]: The &amp;lt;i&amp;gt;Rules Data Store&amp;lt;/i&amp;gt; is the internal data structure used to store the game system and component information. &lt;br /&gt;
** Event Controller: The &amp;lt;i&amp;gt;Event Controller&amp;lt;/i&amp;gt; acts as a hub to communicate events (typically triggered by changes to a PC) to the UI and to any loaded Plugins.  &lt;br /&gt;
** Character Data Store: The &amp;lt;i&amp;gt;Character Data Store&amp;lt;/i&amp;gt; is the internal data structure used to store the PC. &lt;br /&gt;
&lt;br /&gt;
* [[Explanation of the Code Base|Code Base]] - Key Concepts&lt;br /&gt;
** [[Key Terms]]&lt;br /&gt;
** [[Graph Theory]]&lt;br /&gt;
** [[Tags and Tokens]]&lt;br /&gt;
** [[CDOM References Concept Document]]&lt;br /&gt;
** [[CDOM Primitive Choice Set Concept Document]]&lt;br /&gt;
** [[CDOM Choice Actors Concept Document]]&lt;br /&gt;
&lt;br /&gt;
* Walkthroughs&lt;br /&gt;
** [[User Selection Walkthrough]]&lt;br /&gt;
&lt;br /&gt;
* Rules Data Store Concepts&lt;br /&gt;
** [[Ability Category|Ability Categories]]&lt;br /&gt;
&lt;br /&gt;
=Open Sub Projects=&lt;br /&gt;
&lt;br /&gt;
* [[Architecture Changes 5.17]]&lt;br /&gt;
* [[CDOM]]&lt;br /&gt;
* [[Internationalization]]&lt;br /&gt;
* [[Formula Parser-JEP removal]]&lt;br /&gt;
* [[Tom's Arch &amp;quot;TO DO&amp;quot; List]]&lt;br /&gt;
* [[Character Data Store]]&lt;br /&gt;
&lt;br /&gt;
=Past Projects=&lt;br /&gt;
&lt;br /&gt;
* [[PObject - The Refactoring]]&lt;br /&gt;
* [[Rebuild of the Token/Loader System]]&lt;br /&gt;
&lt;br /&gt;
=Active Team Members=&lt;br /&gt;
&lt;br /&gt;
===[[Explanation of Teams#Silverback|Silverback]]===&lt;br /&gt;
* [[Tom Parker]]&lt;br /&gt;
&lt;br /&gt;
===[[Explanation of Teams#Second|2nd]]===&lt;br /&gt;
* TBA&lt;br /&gt;
&lt;br /&gt;
===[[Explanation of Teams#Lemur|Lemur]]===&lt;br /&gt;
* [[Connor Petty]]&lt;br /&gt;
* [[James Dempsey]]&lt;br /&gt;
&lt;br /&gt;
=Inactive Team Members=&lt;br /&gt;
&lt;br /&gt;
===[[Explanation_of_Teams#2nd|2nd]]===&lt;br /&gt;
* Devon Jones&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=Talk:Users&amp;diff=1938</id>
		<title>Talk:Users</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=Talk:Users&amp;diff=1938"/>
		<updated>2009-12-20T23:05:50Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: moved Talk:Users to Talk:UI Overhaul:&amp;amp;#32;UI discussion is better suited for UI overhaul talk page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Talk:UI Overhaul]]&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=Talk:UI_Overhaul&amp;diff=1937</id>
		<title>Talk:UI Overhaul</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=Talk:UI_Overhaul&amp;diff=1937"/>
		<updated>2009-12-20T23:05:49Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: moved Talk:Users to Talk:UI Overhaul:&amp;amp;#32;UI discussion is better suited for UI overhaul talk page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=PCGen UI Discussion=&lt;br /&gt;
&lt;br /&gt;
''Using PCGen 5.16.2 (RC3) for reference.''&lt;br /&gt;
&lt;br /&gt;
==Key Concepts==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Set up groups of information in columns and have the user work from left to right.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Consider the user as making a character in D&amp;amp;D 3.5.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;There is a bit of a learning curve that goes into using it.  Ease of use for the starting user should not be our only concern, we can find a layout that can be intuitive to the new user as well as the experienced one.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;My feeling is that this will not be an easy feat to improve the look and feel of the entire program in one go, it maybe best to tackle this in small chunks, that way we can experiment and expose any Swing constraints in minimal doses.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Once you actually enter the program it loses it’s ‘gaming’ look and becomes a very mundane text heavy program.  It lacks a certain zest and it’s true identity.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When I googled “What is PCGen?”, it came up with the following; “PCGen is a character creation and role-playing game playing aid program for d20 System-based games, such as Dungeons &amp;amp; Dragons”.  So the overall look could be freshened up, it should look like it generates characters and have a role playing feel about it.  Making a character should be a fun and creative task.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===General discussion===&lt;br /&gt;
One thing I suggest is putting similar information and ideas in the same area. This is done in large part to the Tabs along the top. Then it seems that the information within those tabs are scattered throughout the panels. This is most apparent in the Summary and Feats &amp;amp; Abilities Tabs. Where the order of what you need to do to start making your character is not apparent. You have the character name up top with important inputs like Alignment, Race and Class. Then you have the Level Input right under it. This is problematic because, in PCGen, you need to stat out your character before you give it a class or level and the Stat block is under all that info. This layout makes it seem you do all that first, then you do your stats, because most users read from left to right, top to bottom.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
[[File:Summary-screen-03.gif|200px|thumb|left|Summary Tab B]]&lt;br /&gt;
12/13/2009 - I took the layout a step further by also grouping the inputs with a holding shape, similar to already exists in PCGen. Now there are three distinct parts to this tab: Character Basics, Statistics, and Class &amp;amp; Level. If possible, I would also include a button in the Character Basics and Class &amp;amp; Level sections that would jump the user to the Description and Class tabs respectively.&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
[[File:Summary-screen-02.gif|200px|thumb|left|Summary Tab A]]&lt;br /&gt;
12/13/2009 - This time around I used Andrew's suggestion and moved the XP over to where the Class is selected. While working on this it gave me an idea to balance out the columns better. I still wanted the character and class info to be separate and wanted the user to work from left to right in the order of, character info, stats, then class.&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
[[File:Summary-screen.gif|200px|thumb|left|OLD - Summary Tab]]&lt;br /&gt;
12/10/2009 - The the Summary recreation I moved all the basic character and player info to a column on the left. This would be the info you set first. Like a newspaper, the user would read the first column from top to bottom and then go to the next column. The stat block and related info would be here. The block itself doesn't have to be as large as it is in the current version of PCGen, most stats are 2 digits, and even in my example there is more then enough room to make it larger. Once the stats are set, the user would go to the last column, XP and adding levels to classes.&lt;br /&gt;
&lt;br /&gt;
[Andrew's Comment - I'd like the Info Panel moved to the right column, and bring the Add/Remove Class Level and the Class Display to the left column. As shown the Class is on the opposite side of where you'd click to add it. Seems awkward.]&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
[[File:Feats-abilities-screen.gif|200px|thumb|left|Feats &amp;amp; Abilities Tab]]&lt;br /&gt;
12/10/2009 - In addition to layout, some tabs have large areas of unused or misused space. For example, Feats &amp;amp; Abilities Tab. These sets of Tabs have similar info for the user to parse. On the bottom right of the original layout there is a whole forth of space for a drop down and an input box. Since these two items affect the left-most list, I moved them to the top of the list of feats (or abilities) on the left. I then moved the Feat Info box to the right bottom, and right above the user chosen feat list. This way there is more room for the left most list, which usually hold lots of information. The right side still contains the user chosen feat list, which is typically a smaller list (depending of class and level) and can stand to be a smaller pane to share space with the Feat Info pane.&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PCGen Section==&lt;br /&gt;
&lt;br /&gt;
===Overall UI===&lt;br /&gt;
&amp;amp;#8226;	I think the PCGen look and feel from pcgen.sf.net is a good start and could be applied as the default to the PCGen application.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; Overall the screens could do with consistent headings, intuitive workflow (I understand a new character wizard will be worked on later), attractive and functional icons, more space around crowded elements.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; Space is at a premium with the amazing amount of detail you can drill down to, but there needs to be more padding and spacing in order for the eye to process this abundance of info.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226;	Generic defaults need be consistent and set, ie. certain default columns.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; Colours for disabled/enabled/current items need to be defined better, ie. Under the ‘Feats &amp;amp; Abilities’ tab, and Feats tab the red text is too overbearing, it actually advances to the eye, instead of receding. This should be changed to be a dulled out grey by default.  Maybe a key could be provided that define what the colours mean.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; the arrow buttons ( [&amp;gt;] and [&amp;lt;] ) at the bottom of most of the UI could use more description (some text or an icon)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; more descriptive icons next to tab labels&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; use less words for button descriptions. (ex: &amp;quot;Generate Random Name&amp;quot; to &amp;quot;Random Name&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; different panel entries should have containing shapes. (ex: Class tab, HP button stands out, but the more important thing is the number next to it. Same with the saves underneath, the wrong things stand out.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; by default lets hide any columns that give info that doesn't impact the task at hand. (ex: source column in the skill list, nice to know, but unnecessary for making a character)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; Sorting drop down options should have clearer descriptions overall&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Splash screen===&lt;br /&gt;
&amp;amp;#8226; Initial entry into the program is good, love the PCGen themed splash page, following that is the potential for prettifying the next screen with options on where to link next. [[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Preferences===&lt;br /&gt;
&amp;amp;#8226; right side panel has no scrolling ability&lt;br /&gt;
&lt;br /&gt;
===Top Menu===&lt;br /&gt;
&amp;amp;#8226; Game Mode/Campaign should be its own drop down menu&lt;br /&gt;
&lt;br /&gt;
===Source Materials===&lt;br /&gt;
&amp;amp;#8226; &amp;quot;available&amp;quot; options drop down descriptions could be simpler. &amp;quot;tree view&amp;quot; &amp;gt; Comp/Fmt/Setting, &amp;quot;full list&amp;quot; &amp;gt; Name only, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; Company/Setting and Comp/Fmt/Setting are too similar and don't change the list organization much, consider merging&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; there doesn't seem to be a need to have the right side of the source materials tab to have a list filter, it sould have a list of the books and whether they are loaded or unloaded.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; the buttons on the bottom right (load, unload all, remove all, etc.) should be in the same pane as the chosen source materials (top right side), perhaps replacing the list filer drop down&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; give more room to the source material descriptions&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Summary===&lt;br /&gt;
&amp;amp;#8226; should be renamed, perhaps Character or Statistics. This tab doesn't summarize all of the character's abilities.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; consider moving character name (and its random button), player name, alignment, race, create monster/add kit, lang, weap prof &amp;amp; SA, and the race/class info, to the left and ordered into a column.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; consider moving Levels to add/remove, character classes table, the XP input box (from the Classes tab), and things to be done, to the right and ordered into a column.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; the stats take up too much room, most stats are 2 digits, so the fields don't have to be as wide as they are.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; consider moving the numbered stats, the HP button, stat and mod totals, and the statistics box, in the center&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; by making the statistic box larger, you are able to show more information perhaps graphically (ex: including WEIGHT ALLOWANCE, bonus spells from stats, spells per day, etc.)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; in the Stat cells, the final total should be nearest to the stat description themselves. That total is the number that the user is going to want to see quickly.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Race===&lt;br /&gt;
&amp;amp;#8226; It should be considered to remove this tab altogether since this tab is used only once during character creation. A better move would to have it as a popup from the summary tab instead.--[[User:Connor Petty|Connor Petty]] 07:28, 20 December 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Class===&lt;br /&gt;
&amp;amp;#8226; Give the list of races a 2/3rds of the tab&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; place the XP pane, the current class pane, and the class info pane on the right third of the tab.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skill===&lt;br /&gt;
&amp;amp;#8226; consider color coding the column text. (ex. bold black for the final total of skill ranks, red no and green yes for class/CC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; consider light lines to separate skills on the chosen character skills.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; consider moving Ranks before Total. The more important info is the actual ranks. Becomes clearer with information that have colors and/or are bold.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; &amp;quot;display by&amp;quot; options drop down descriptions could be simpler. &amp;quot;class tree view&amp;quot; &amp;gt; Cost/Name, &amp;quot;stat tree view&amp;quot; &amp;gt; KeyStat/Name, &amp;quot;List View&amp;quot; &amp;gt; Name, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; consider simplifing the display by combining the two skill treetables into one. A view achieved by either could then be done through the use of special filters. --[[User:Connor Petty|Connor Petty]] 07:36, 20 December 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Feats &amp;amp; Abilities (using Feats as an example)===&lt;br /&gt;
&amp;amp;#8226; consider moving the Feats filter (located on the bottom right pane), the Feats remaining, and the available Feats list to the left half of the tab.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; move the selected feats and Feat Info to the right half of the tab.&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=Talk:UI_Overhaul&amp;diff=1936</id>
		<title>Talk:UI Overhaul</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=Talk:UI_Overhaul&amp;diff=1936"/>
		<updated>2009-12-20T07:36:42Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Skill */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=PCGen UI Discussion=&lt;br /&gt;
&lt;br /&gt;
''Using PCGen 5.16.2 (RC3) for reference.''&lt;br /&gt;
&lt;br /&gt;
==Key Concepts==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Set up groups of information in columns and have the user work from left to right.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Consider the user as making a character in D&amp;amp;D 3.5.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;There is a bit of a learning curve that goes into using it.  Ease of use for the starting user should not be our only concern, we can find a layout that can be intuitive to the new user as well as the experienced one.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;My feeling is that this will not be an easy feat to improve the look and feel of the entire program in one go, it maybe best to tackle this in small chunks, that way we can experiment and expose any Swing constraints in minimal doses.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Once you actually enter the program it loses it’s ‘gaming’ look and becomes a very mundane text heavy program.  It lacks a certain zest and it’s true identity.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When I googled “What is PCGen?”, it came up with the following; “PCGen is a character creation and role-playing game playing aid program for d20 System-based games, such as Dungeons &amp;amp; Dragons”.  So the overall look could be freshened up, it should look like it generates characters and have a role playing feel about it.  Making a character should be a fun and creative task.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===General discussion===&lt;br /&gt;
One thing I suggest is putting similar information and ideas in the same area. This is done in large part to the Tabs along the top. Then it seems that the information within those tabs are scattered throughout the panels. This is most apparent in the Summary and Feats &amp;amp; Abilities Tabs. Where the order of what you need to do to start making your character is not apparent. You have the character name up top with important inputs like Alignment, Race and Class. Then you have the Level Input right under it. This is problematic because, in PCGen, you need to stat out your character before you give it a class or level and the Stat block is under all that info. This layout makes it seem you do all that first, then you do your stats, because most users read from left to right, top to bottom.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
[[File:Summary-screen-03.gif|200px|thumb|left|Summary Tab B]]&lt;br /&gt;
12/13/2009 - I took the layout a step further by also grouping the inputs with a holding shape, similar to already exists in PCGen. Now there are three distinct parts to this tab: Character Basics, Statistics, and Class &amp;amp; Level. If possible, I would also include a button in the Character Basics and Class &amp;amp; Level sections that would jump the user to the Description and Class tabs respectively.&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
[[File:Summary-screen-02.gif|200px|thumb|left|Summary Tab A]]&lt;br /&gt;
12/13/2009 - This time around I used Andrew's suggestion and moved the XP over to where the Class is selected. While working on this it gave me an idea to balance out the columns better. I still wanted the character and class info to be separate and wanted the user to work from left to right in the order of, character info, stats, then class.&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
[[File:Summary-screen.gif|200px|thumb|left|OLD - Summary Tab]]&lt;br /&gt;
12/10/2009 - The the Summary recreation I moved all the basic character and player info to a column on the left. This would be the info you set first. Like a newspaper, the user would read the first column from top to bottom and then go to the next column. The stat block and related info would be here. The block itself doesn't have to be as large as it is in the current version of PCGen, most stats are 2 digits, and even in my example there is more then enough room to make it larger. Once the stats are set, the user would go to the last column, XP and adding levels to classes.&lt;br /&gt;
&lt;br /&gt;
[Andrew's Comment - I'd like the Info Panel moved to the right column, and bring the Add/Remove Class Level and the Class Display to the left column. As shown the Class is on the opposite side of where you'd click to add it. Seems awkward.]&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
[[File:Feats-abilities-screen.gif|200px|thumb|left|Feats &amp;amp; Abilities Tab]]&lt;br /&gt;
12/10/2009 - In addition to layout, some tabs have large areas of unused or misused space. For example, Feats &amp;amp; Abilities Tab. These sets of Tabs have similar info for the user to parse. On the bottom right of the original layout there is a whole forth of space for a drop down and an input box. Since these two items affect the left-most list, I moved them to the top of the list of feats (or abilities) on the left. I then moved the Feat Info box to the right bottom, and right above the user chosen feat list. This way there is more room for the left most list, which usually hold lots of information. The right side still contains the user chosen feat list, which is typically a smaller list (depending of class and level) and can stand to be a smaller pane to share space with the Feat Info pane.&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PCGen Section==&lt;br /&gt;
&lt;br /&gt;
===Overall UI===&lt;br /&gt;
&amp;amp;#8226;	I think the PCGen look and feel from pcgen.sf.net is a good start and could be applied as the default to the PCGen application.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; Overall the screens could do with consistent headings, intuitive workflow (I understand a new character wizard will be worked on later), attractive and functional icons, more space around crowded elements.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; Space is at a premium with the amazing amount of detail you can drill down to, but there needs to be more padding and spacing in order for the eye to process this abundance of info.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226;	Generic defaults need be consistent and set, ie. certain default columns.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; Colours for disabled/enabled/current items need to be defined better, ie. Under the ‘Feats &amp;amp; Abilities’ tab, and Feats tab the red text is too overbearing, it actually advances to the eye, instead of receding. This should be changed to be a dulled out grey by default.  Maybe a key could be provided that define what the colours mean.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; the arrow buttons ( [&amp;gt;] and [&amp;lt;] ) at the bottom of most of the UI could use more description (some text or an icon)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; more descriptive icons next to tab labels&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; use less words for button descriptions. (ex: &amp;quot;Generate Random Name&amp;quot; to &amp;quot;Random Name&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; different panel entries should have containing shapes. (ex: Class tab, HP button stands out, but the more important thing is the number next to it. Same with the saves underneath, the wrong things stand out.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; by default lets hide any columns that give info that doesn't impact the task at hand. (ex: source column in the skill list, nice to know, but unnecessary for making a character)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; Sorting drop down options should have clearer descriptions overall&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Splash screen===&lt;br /&gt;
&amp;amp;#8226; Initial entry into the program is good, love the PCGen themed splash page, following that is the potential for prettifying the next screen with options on where to link next. [[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Preferences===&lt;br /&gt;
&amp;amp;#8226; right side panel has no scrolling ability&lt;br /&gt;
&lt;br /&gt;
===Top Menu===&lt;br /&gt;
&amp;amp;#8226; Game Mode/Campaign should be its own drop down menu&lt;br /&gt;
&lt;br /&gt;
===Source Materials===&lt;br /&gt;
&amp;amp;#8226; &amp;quot;available&amp;quot; options drop down descriptions could be simpler. &amp;quot;tree view&amp;quot; &amp;gt; Comp/Fmt/Setting, &amp;quot;full list&amp;quot; &amp;gt; Name only, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; Company/Setting and Comp/Fmt/Setting are too similar and don't change the list organization much, consider merging&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; there doesn't seem to be a need to have the right side of the source materials tab to have a list filter, it sould have a list of the books and whether they are loaded or unloaded.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; the buttons on the bottom right (load, unload all, remove all, etc.) should be in the same pane as the chosen source materials (top right side), perhaps replacing the list filer drop down&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; give more room to the source material descriptions&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Summary===&lt;br /&gt;
&amp;amp;#8226; should be renamed, perhaps Character or Statistics. This tab doesn't summarize all of the character's abilities.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; consider moving character name (and its random button), player name, alignment, race, create monster/add kit, lang, weap prof &amp;amp; SA, and the race/class info, to the left and ordered into a column.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; consider moving Levels to add/remove, character classes table, the XP input box (from the Classes tab), and things to be done, to the right and ordered into a column.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; the stats take up too much room, most stats are 2 digits, so the fields don't have to be as wide as they are.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; consider moving the numbered stats, the HP button, stat and mod totals, and the statistics box, in the center&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; by making the statistic box larger, you are able to show more information perhaps graphically (ex: including WEIGHT ALLOWANCE, bonus spells from stats, spells per day, etc.)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; in the Stat cells, the final total should be nearest to the stat description themselves. That total is the number that the user is going to want to see quickly.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Race===&lt;br /&gt;
&amp;amp;#8226; It should be considered to remove this tab altogether since this tab is used only once during character creation. A better move would to have it as a popup from the summary tab instead.--[[User:Connor Petty|Connor Petty]] 07:28, 20 December 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Class===&lt;br /&gt;
&amp;amp;#8226; Give the list of races a 2/3rds of the tab&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; place the XP pane, the current class pane, and the class info pane on the right third of the tab.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skill===&lt;br /&gt;
&amp;amp;#8226; consider color coding the column text. (ex. bold black for the final total of skill ranks, red no and green yes for class/CC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; consider light lines to separate skills on the chosen character skills.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; consider moving Ranks before Total. The more important info is the actual ranks. Becomes clearer with information that have colors and/or are bold.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; &amp;quot;display by&amp;quot; options drop down descriptions could be simpler. &amp;quot;class tree view&amp;quot; &amp;gt; Cost/Name, &amp;quot;stat tree view&amp;quot; &amp;gt; KeyStat/Name, &amp;quot;List View&amp;quot; &amp;gt; Name, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; consider simplifing the display by combining the two skill treetables into one. A view achieved by either could then be done through the use of special filters. --[[User:Connor Petty|Connor Petty]] 07:36, 20 December 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Feats &amp;amp; Abilities (using Feats as an example)===&lt;br /&gt;
&amp;amp;#8226; consider moving the Feats filter (located on the bottom right pane), the Feats remaining, and the available Feats list to the left half of the tab.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; move the selected feats and Feat Info to the right half of the tab.&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=Talk:UI_Overhaul&amp;diff=1935</id>
		<title>Talk:UI Overhaul</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=Talk:UI_Overhaul&amp;diff=1935"/>
		<updated>2009-12-20T07:28:48Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=PCGen UI Discussion=&lt;br /&gt;
&lt;br /&gt;
''Using PCGen 5.16.2 (RC3) for reference.''&lt;br /&gt;
&lt;br /&gt;
==Key Concepts==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Set up groups of information in columns and have the user work from left to right.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Consider the user as making a character in D&amp;amp;D 3.5.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;There is a bit of a learning curve that goes into using it.  Ease of use for the starting user should not be our only concern, we can find a layout that can be intuitive to the new user as well as the experienced one.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;My feeling is that this will not be an easy feat to improve the look and feel of the entire program in one go, it maybe best to tackle this in small chunks, that way we can experiment and expose any Swing constraints in minimal doses.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Once you actually enter the program it loses it’s ‘gaming’ look and becomes a very mundane text heavy program.  It lacks a certain zest and it’s true identity.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When I googled “What is PCGen?”, it came up with the following; “PCGen is a character creation and role-playing game playing aid program for d20 System-based games, such as Dungeons &amp;amp; Dragons”.  So the overall look could be freshened up, it should look like it generates characters and have a role playing feel about it.  Making a character should be a fun and creative task.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===General discussion===&lt;br /&gt;
One thing I suggest is putting similar information and ideas in the same area. This is done in large part to the Tabs along the top. Then it seems that the information within those tabs are scattered throughout the panels. This is most apparent in the Summary and Feats &amp;amp; Abilities Tabs. Where the order of what you need to do to start making your character is not apparent. You have the character name up top with important inputs like Alignment, Race and Class. Then you have the Level Input right under it. This is problematic because, in PCGen, you need to stat out your character before you give it a class or level and the Stat block is under all that info. This layout makes it seem you do all that first, then you do your stats, because most users read from left to right, top to bottom.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
[[File:Summary-screen-03.gif|200px|thumb|left|Summary Tab B]]&lt;br /&gt;
12/13/2009 - I took the layout a step further by also grouping the inputs with a holding shape, similar to already exists in PCGen. Now there are three distinct parts to this tab: Character Basics, Statistics, and Class &amp;amp; Level. If possible, I would also include a button in the Character Basics and Class &amp;amp; Level sections that would jump the user to the Description and Class tabs respectively.&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
[[File:Summary-screen-02.gif|200px|thumb|left|Summary Tab A]]&lt;br /&gt;
12/13/2009 - This time around I used Andrew's suggestion and moved the XP over to where the Class is selected. While working on this it gave me an idea to balance out the columns better. I still wanted the character and class info to be separate and wanted the user to work from left to right in the order of, character info, stats, then class.&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
[[File:Summary-screen.gif|200px|thumb|left|OLD - Summary Tab]]&lt;br /&gt;
12/10/2009 - The the Summary recreation I moved all the basic character and player info to a column on the left. This would be the info you set first. Like a newspaper, the user would read the first column from top to bottom and then go to the next column. The stat block and related info would be here. The block itself doesn't have to be as large as it is in the current version of PCGen, most stats are 2 digits, and even in my example there is more then enough room to make it larger. Once the stats are set, the user would go to the last column, XP and adding levels to classes.&lt;br /&gt;
&lt;br /&gt;
[Andrew's Comment - I'd like the Info Panel moved to the right column, and bring the Add/Remove Class Level and the Class Display to the left column. As shown the Class is on the opposite side of where you'd click to add it. Seems awkward.]&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
[[File:Feats-abilities-screen.gif|200px|thumb|left|Feats &amp;amp; Abilities Tab]]&lt;br /&gt;
12/10/2009 - In addition to layout, some tabs have large areas of unused or misused space. For example, Feats &amp;amp; Abilities Tab. These sets of Tabs have similar info for the user to parse. On the bottom right of the original layout there is a whole forth of space for a drop down and an input box. Since these two items affect the left-most list, I moved them to the top of the list of feats (or abilities) on the left. I then moved the Feat Info box to the right bottom, and right above the user chosen feat list. This way there is more room for the left most list, which usually hold lots of information. The right side still contains the user chosen feat list, which is typically a smaller list (depending of class and level) and can stand to be a smaller pane to share space with the Feat Info pane.&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PCGen Section==&lt;br /&gt;
&lt;br /&gt;
===Overall UI===&lt;br /&gt;
&amp;amp;#8226;	I think the PCGen look and feel from pcgen.sf.net is a good start and could be applied as the default to the PCGen application.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; Overall the screens could do with consistent headings, intuitive workflow (I understand a new character wizard will be worked on later), attractive and functional icons, more space around crowded elements.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; Space is at a premium with the amazing amount of detail you can drill down to, but there needs to be more padding and spacing in order for the eye to process this abundance of info.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226;	Generic defaults need be consistent and set, ie. certain default columns.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; Colours for disabled/enabled/current items need to be defined better, ie. Under the ‘Feats &amp;amp; Abilities’ tab, and Feats tab the red text is too overbearing, it actually advances to the eye, instead of receding. This should be changed to be a dulled out grey by default.  Maybe a key could be provided that define what the colours mean.[[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; the arrow buttons ( [&amp;gt;] and [&amp;lt;] ) at the bottom of most of the UI could use more description (some text or an icon)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; more descriptive icons next to tab labels&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; use less words for button descriptions. (ex: &amp;quot;Generate Random Name&amp;quot; to &amp;quot;Random Name&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; different panel entries should have containing shapes. (ex: Class tab, HP button stands out, but the more important thing is the number next to it. Same with the saves underneath, the wrong things stand out.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; by default lets hide any columns that give info that doesn't impact the task at hand. (ex: source column in the skill list, nice to know, but unnecessary for making a character)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; Sorting drop down options should have clearer descriptions overall&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Splash screen===&lt;br /&gt;
&amp;amp;#8226; Initial entry into the program is good, love the PCGen themed splash page, following that is the potential for prettifying the next screen with options on where to link next. [[User:Karianna|karianna]] 14:11, 14 December 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Preferences===&lt;br /&gt;
&amp;amp;#8226; right side panel has no scrolling ability&lt;br /&gt;
&lt;br /&gt;
===Top Menu===&lt;br /&gt;
&amp;amp;#8226; Game Mode/Campaign should be its own drop down menu&lt;br /&gt;
&lt;br /&gt;
===Source Materials===&lt;br /&gt;
&amp;amp;#8226; &amp;quot;available&amp;quot; options drop down descriptions could be simpler. &amp;quot;tree view&amp;quot; &amp;gt; Comp/Fmt/Setting, &amp;quot;full list&amp;quot; &amp;gt; Name only, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; Company/Setting and Comp/Fmt/Setting are too similar and don't change the list organization much, consider merging&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; there doesn't seem to be a need to have the right side of the source materials tab to have a list filter, it sould have a list of the books and whether they are loaded or unloaded.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; the buttons on the bottom right (load, unload all, remove all, etc.) should be in the same pane as the chosen source materials (top right side), perhaps replacing the list filer drop down&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; give more room to the source material descriptions&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Summary===&lt;br /&gt;
&amp;amp;#8226; should be renamed, perhaps Character or Statistics. This tab doesn't summarize all of the character's abilities.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; consider moving character name (and its random button), player name, alignment, race, create monster/add kit, lang, weap prof &amp;amp; SA, and the race/class info, to the left and ordered into a column.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; consider moving Levels to add/remove, character classes table, the XP input box (from the Classes tab), and things to be done, to the right and ordered into a column.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; the stats take up too much room, most stats are 2 digits, so the fields don't have to be as wide as they are.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; consider moving the numbered stats, the HP button, stat and mod totals, and the statistics box, in the center&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; by making the statistic box larger, you are able to show more information perhaps graphically (ex: including WEIGHT ALLOWANCE, bonus spells from stats, spells per day, etc.)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; in the Stat cells, the final total should be nearest to the stat description themselves. That total is the number that the user is going to want to see quickly.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Race===&lt;br /&gt;
&amp;amp;#8226; It should be considered to remove this tab altogether since this tab is used only once during character creation. A better move would to have it as a popup from the summary tab instead.--[[User:Connor Petty|Connor Petty]] 07:28, 20 December 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Class===&lt;br /&gt;
&amp;amp;#8226; Give the list of races a 2/3rds of the tab&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; place the XP pane, the current class pane, and the class info pane on the right third of the tab.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skill===&lt;br /&gt;
&amp;amp;#8226; consider color coding the column text. (ex. bold black for the final total of skill ranks, red no and green yes for class/CC)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; consider light lines to separate skills on the chosen character skills.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; consider moving Ranks before Total. The more important info is the actual ranks. Becomes clearer with information that have colors and/or are bold.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; &amp;quot;display by&amp;quot; options drop down descriptions could be simpler. &amp;quot;class tree view&amp;quot; &amp;gt; Cost/Name, &amp;quot;stat tree view&amp;quot; &amp;gt; KeyStat/Name, &amp;quot;List View&amp;quot; &amp;gt; Name, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Feats &amp;amp; Abilities (using Feats as an example)===&lt;br /&gt;
&amp;amp;#8226; consider moving the Feats filter (located on the bottom right pane), the Feats remaining, and the available Feats list to the left half of the tab.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#8226; move the selected feats and Feat Info to the right half of the tab.&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=Coding_Standards&amp;diff=1856</id>
		<title>Coding Standards</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=Coding_Standards&amp;diff=1856"/>
		<updated>2009-10-21T17:36:14Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Code Warnings and Errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Releases typically happen every second Sunday Canberra, Australia (UTC+11) time. There may be code freezes on release days, but these will be announced in advance on the developers and experimental lists. There are 2 taboos:&lt;br /&gt;
&lt;br /&gt;
# Checking in code that breaks the build.&lt;br /&gt;
# Checking in code that obviously wasn't tested.&lt;br /&gt;
&lt;br /&gt;
We have a couple of code monkeys who make sweeps through the code to make sure it's all in the proper format, and we have others who go through looking to optimize code. Everyone has their role and things have gone very smoothly. If you are not certain about something, ask! Nobody is here to bite your head off (unless they are role-playing a troll). Try the developer's mailing list or any of the Yahoo! Groups or the Silverbacks.&lt;br /&gt;
&lt;br /&gt;
=Code Style=&lt;br /&gt;
&lt;br /&gt;
Coding styles can be assisted by your IDE, see the standards folder in the SVN repository.&lt;br /&gt;
&lt;br /&gt;
* For Eclipse you can use [http://pcgen.svn.sourceforge.net/viewvc/*checkout*/pcgen/Trunk/pcgen/code/standards/eclipse32_pcgen.xml 3.2 Formatter Rules]&lt;br /&gt;
&lt;br /&gt;
Voting for the code conventions is currently restricted to active code monkeys (have checked in in the last 6 months), the current votes (and therefore standard) is below.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! Rule !! For !! Against&lt;br /&gt;
|-&lt;br /&gt;
| Use Tabs || 4 || 4&lt;br /&gt;
|-&lt;br /&gt;
| Use Spaces || 4 || 4&lt;br /&gt;
|-&lt;br /&gt;
| Have braces around 1 line control statements || 8 || 0&lt;br /&gt;
|-&lt;br /&gt;
| Open and close braces on their own line || 5 || 3&lt;br /&gt;
|-&lt;br /&gt;
| 1 space padding inside parenthesis when calling a method || 0 || 8&lt;br /&gt;
|-&lt;br /&gt;
| 1 space padding inside parenthesis when declaring a method || 0 || 8&lt;br /&gt;
|-&lt;br /&gt;
| Space after a comma || 8 || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Who Has Voted''' (simply link in your name when you have done so)&lt;br /&gt;
# [[Martijn Verburg]]&lt;br /&gt;
# Aaron Divinsky&lt;br /&gt;
# [[Andrew Wilson]]&lt;br /&gt;
# Brian (telechus)&lt;br /&gt;
# [[Devon Jones]]&lt;br /&gt;
# [[Greg Bingleman]]&lt;br /&gt;
# [[James Dempsey]]&lt;br /&gt;
# [[Jonas Karlson]]&lt;br /&gt;
# Stefan Radermacher&lt;br /&gt;
# [[Tir Gwaith]]&lt;br /&gt;
# [[Tod Milam]]&lt;br /&gt;
&lt;br /&gt;
=Code Warnings and Errors=&lt;br /&gt;
&lt;br /&gt;
Code Warnings and Errors may vary by tool.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! Rule !! Eclipse 3.5 !! IDEA !! NetBeans !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Non-static Access to a static member || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Indirect access to a static member || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unqualified access to an instance field || Y || ? || Probably Y || Referencing instance fields with ''this'' keyword&lt;br /&gt;
|-&lt;br /&gt;
| Undocumented Empty block || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Access to a non-accessible member of an enclosing type || Y || ? || Probably Y || - &lt;br /&gt;
|-&lt;br /&gt;
| Method with a constructor name || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter Assignment || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Non-externalized Strings (missing/unused $NON-NLS$tag) || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Serializable class without serialVersionUID || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Assignment has no effect (''x = x;'') || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Possible accidental boolean assignment ''if (a = b)'' || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| ''finally'' does not complete normally || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Empty Statement || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Using a char array in String concatenation || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Hidden catch block || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Inexact type match for vararg arguments || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Boxing and unboxing conversions || Y || ? || ? || Basically wants you to explicitly box and unbox basic types&lt;br /&gt;
|-&lt;br /&gt;
| Enum type constant not covered in switch statement || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| switch case falls through || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Null pointer access || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Potential null pointer access || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Comparing identical values ('x' == 'x') || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing synchronized modifier on inherited method || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Class overrides equals() but not hashCode() || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Dead code (e.g. 'if (false)') || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Field declaration hides another field or variable || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Local declaration hides another field or variable (General) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Local declaration hides another field or variable (Constructors and Gettors/Setters) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Type parameter hides another type || Y || ? || Probably Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Method does not override package visible method || Y || ? || Probably Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Interface method conflicts with protected method in Object || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Deprecated API || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Deprecated API (signal use of deprecated api inside deprecated code) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Deprecated API (signal overriding or implementing method) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Forbidden Reference (access rules) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Discouraged Reference (access rules) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Local variable is never read || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (non overriding methods) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (overriding methods) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (even if documented with @param tag) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused import || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused local or private member || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused method || ? || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unreachable statement || ? || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| .equals on Array || ? || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| .equals on Incompatible Types || ? || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Comparing Strings using == or != || ? || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Synchronization on non-final field || ? || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Redundant null check || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary else || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary cast or instanceof || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (non overriding methods) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (overriding methods) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (ignore exceptions declared with @throws or @exception) || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (ignore Exception and Throwable) || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused break/continue label || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Redundant super interface || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Unchecked generic type operation (JDK1.5) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Usage of a raw type (JDK1.5) || Y || ? || Y || i.e. Using List instead of List&amp;lt;String&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generic type parameter declared with a final type bound (JDK1.5) || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing Override annotation || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing Deprecated annotation || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Annotation is used as a super interface || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unhandled token in SupressWarnings token || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused SupressWarnings token || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Enable SupressWarnings annotations || Y || ? || Y || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Standard 2004-Present==&lt;br /&gt;
Coding warnings and errors can be highlighted for correction by your IDE, see the standards folder in the SVN repository.&lt;br /&gt;
&lt;br /&gt;
Voting for the code warnings is currently restricted to active code monkeys (have checked in in the last 6 months), the current votes (and therefore standard) is below.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! Rule !! For !! Against !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Non-static Access to a static member || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Indirect access to a static member || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unqualified access to an instance field || 0 || 3 || Referencing instance fields with ''this'' keyword&lt;br /&gt;
|-&lt;br /&gt;
| Undocumented Empty block || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Access to a non-accessible member of an enclosing type || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Method with a constructor name || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter Assignment || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Non-externalized Strings (missing/unused $NON-NLS$tag) || 2 || 1 || Basically [[Internationalization]] will need this&lt;br /&gt;
|-&lt;br /&gt;
| Serializable class without serialVersionUID || 0 || 3 || -&lt;br /&gt;
|-&lt;br /&gt;
| Assignment has no effect (''x = x;'') || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Possible accidental boolean assignment ''if (a = b)'' || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| ''finally'' does not complete normally || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Empty Statement || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Using a char array in String concatenation || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Hidden catch block || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Boxing and unboxing conversions || 0 || 3 || Basically wants you to explicitly box and unbox basic types&lt;br /&gt;
|-&lt;br /&gt;
| Inexact type match for vararg arguments || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Enum type constant not covered in switch statement || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| switch case falls through || 1 || 2 || -&lt;br /&gt;
|-&lt;br /&gt;
| Null reference || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Field declaration hides another field or variable || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Local declaration hides another field or variable (General) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Local declaration hides another field or variable (Constructors and Gettors/Setters) || 1 || 2 || -&lt;br /&gt;
|-&lt;br /&gt;
| Type parameter hides another type || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Method overridden but not package visible || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Interface method conflicts with protected method in Object || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Deprecated API || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Forbidden Reference (access rules) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Discouraged Reference (access rules) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Local variable is never read || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (non overriding methods) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (overriding methods) || 0 || 3 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused import || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused local or private member || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary cast or instanceof || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary else || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (non overriding methods) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (overriding methods) || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused break/continue label || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unchecked generic type operation (JDK1.5) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Usage of a raw type (JDK1.5) || 3 || 0 || i.e. Using List instead of List&amp;lt;String&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generic type parameter declared with a final type bound (JDK1.5) || 0 || 3 || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing Override annotation || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing Deprecated annotation || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Annotation is used as a super interface || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unhandled token in SupressWarnings token || 3 || 0 || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Who Has Voted''' (simply link in your name when you have done so)&lt;br /&gt;
# [[Martijn Verburg]]&lt;br /&gt;
# Aaron Divinsky&lt;br /&gt;
# [[Andrew Wilson]]&lt;br /&gt;
# Brian (telechus)&lt;br /&gt;
# Devon Jones&lt;br /&gt;
# Greg Bingleman&lt;br /&gt;
# [[James Dempsey]]&lt;br /&gt;
# Jonas Karlson&lt;br /&gt;
# Stefan Radermacher&lt;br /&gt;
# Tir Gwaith&lt;br /&gt;
# Tod Milam&lt;br /&gt;
&lt;br /&gt;
=General Coding guidelines=&lt;br /&gt;
&lt;br /&gt;
# Arguments should have meaningful names, even if that makes them really long. variables that are temporary and throwaway you can name something inane - I like to name temporary strings aString for lack of any additional creative effort on my part :) (But for some of us, plain old s is just fine.) You will see aPC almost everywhere for PlayerCharacter instances, regardless of other conventions.&lt;br /&gt;
# Name arguments to methods something reasonable so IDE's that display the argument names can give a guide as to what is expected. If the method is something like setVision(String arg) it's pretty clear what's expected, but for methods which take multiple arguments it's especially important to name the arguments well.&lt;br /&gt;
# Always keep optimization in mind. Avoid creating unnecessary variables. But don't go your of your way to optimize if it clouds the meaning of the code or makes it harder to maintain. When in doubt, correctness trumps performance.&lt;br /&gt;
# Keep scope in mind — if a variable or method can be made private, protected or final, do so. If you're not sure what the difference is in these, don't be afraid to ask. This gets into the minutest of Java and we're glad to educate you so we can all make the best code possible.&lt;br /&gt;
# Write unit tests for new code, see [[Unit Testing]].&lt;br /&gt;
# Add comments and Javadoc.&lt;br /&gt;
# If you change the syntax of a lst tag or output sheet token or modify the GUI or anything else that needs to be reflected in the Documentation, post a note here with Doc Monkeys! in the title so it gets their attention. If you can type up your notes so it fits with the format used in the actual documentation, the Doc Monkeys will love you. If you're not able to do that, give them at least something to work with and they'll make the rest up. :)&lt;br /&gt;
# Be friendly and courteous. If someone checks in code that annoys you — e-mail them. If you can't reach them or get no response, e-mail me. Slamming here shouldn't be necessary.&lt;br /&gt;
# Don't break the build. I've broken the build myself, so I don't hold it against anyone if they break it (though I don't expect anyone to make a habit of it!). Running ''ant complete'' pretty much saves you from this embarrassment.&lt;br /&gt;
# Make sure the JUnit tests pass before checking in your code. Running ''ant test'' is the answer here. (The &amp;quot;complete&amp;quot; target for ant includes &amp;quot;test&amp;quot;, by the way.) Keep an eye on the autobuilds. If the software is presently failing for the auto-builds, it might be a good time to focus on build-fixing changes.&lt;br /&gt;
&lt;br /&gt;
Remember we're all doing this for fun and because we want to produce something that can support character creation/maintenance for all our favorite books (and our own creations!).&lt;br /&gt;
&lt;br /&gt;
If anyone wants to tackle a bug or feature but doesn't know where the code they should focus on is located, feel free to ask. I'm more than happy to point out where I think the related code would be located if that means its another bug or feature I don't have to worry about! PCGen has a fairly large code base so new developers will need some time to get used to how everything is organized. I don't mind helping to speed that process along, and I'm sure others would be willing to answer questions if they're posted here as well.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=Coding_Standards&amp;diff=1855</id>
		<title>Coding Standards</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=Coding_Standards&amp;diff=1855"/>
		<updated>2009-10-21T17:27:01Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Code Warnings and Errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Releases typically happen every second Sunday Canberra, Australia (UTC+11) time. There may be code freezes on release days, but these will be announced in advance on the developers and experimental lists. There are 2 taboos:&lt;br /&gt;
&lt;br /&gt;
# Checking in code that breaks the build.&lt;br /&gt;
# Checking in code that obviously wasn't tested.&lt;br /&gt;
&lt;br /&gt;
We have a couple of code monkeys who make sweeps through the code to make sure it's all in the proper format, and we have others who go through looking to optimize code. Everyone has their role and things have gone very smoothly. If you are not certain about something, ask! Nobody is here to bite your head off (unless they are role-playing a troll). Try the developer's mailing list or any of the Yahoo! Groups or the Silverbacks.&lt;br /&gt;
&lt;br /&gt;
=Code Style=&lt;br /&gt;
&lt;br /&gt;
Coding styles can be assisted by your IDE, see the standards folder in the SVN repository.&lt;br /&gt;
&lt;br /&gt;
* For Eclipse you can use [http://pcgen.svn.sourceforge.net/viewvc/*checkout*/pcgen/Trunk/pcgen/code/standards/eclipse32_pcgen.xml 3.2 Formatter Rules]&lt;br /&gt;
&lt;br /&gt;
Voting for the code conventions is currently restricted to active code monkeys (have checked in in the last 6 months), the current votes (and therefore standard) is below.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! Rule !! For !! Against&lt;br /&gt;
|-&lt;br /&gt;
| Use Tabs || 4 || 4&lt;br /&gt;
|-&lt;br /&gt;
| Use Spaces || 4 || 4&lt;br /&gt;
|-&lt;br /&gt;
| Have braces around 1 line control statements || 8 || 0&lt;br /&gt;
|-&lt;br /&gt;
| Open and close braces on their own line || 5 || 3&lt;br /&gt;
|-&lt;br /&gt;
| 1 space padding inside parenthesis when calling a method || 0 || 8&lt;br /&gt;
|-&lt;br /&gt;
| 1 space padding inside parenthesis when declaring a method || 0 || 8&lt;br /&gt;
|-&lt;br /&gt;
| Space after a comma || 8 || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Who Has Voted''' (simply link in your name when you have done so)&lt;br /&gt;
# [[Martijn Verburg]]&lt;br /&gt;
# Aaron Divinsky&lt;br /&gt;
# [[Andrew Wilson]]&lt;br /&gt;
# Brian (telechus)&lt;br /&gt;
# [[Devon Jones]]&lt;br /&gt;
# [[Greg Bingleman]]&lt;br /&gt;
# [[James Dempsey]]&lt;br /&gt;
# [[Jonas Karlson]]&lt;br /&gt;
# Stefan Radermacher&lt;br /&gt;
# [[Tir Gwaith]]&lt;br /&gt;
# [[Tod Milam]]&lt;br /&gt;
&lt;br /&gt;
=Code Warnings and Errors=&lt;br /&gt;
&lt;br /&gt;
Code Warnings and Errors may vary by tool.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! Rule !! Eclipse 3.5 !! IDEA !! NetBeans !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Non-static Access to a static member || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Indirect access to a static member || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unqualified access to an instance field || Y || ? || Probably Y || Referencing instance fields with ''this'' keyword&lt;br /&gt;
|-&lt;br /&gt;
| Undocumented Empty block || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Access to a non-accessible member of an enclosing type || Y || ? || Probably Y || - &lt;br /&gt;
|-&lt;br /&gt;
| Method with a constructor name || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter Assignment || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Non-externalized Strings (missing/unused $NON-NLS$tag) || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Serializable class without serialVersionUID || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Assignment has no effect (''x = x;'') || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Possible accidental boolean assignment ''if (a = b)'' || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| ''finally'' does not complete normally || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Empty Statement || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Using a char array in String concatenation || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Hidden catch block || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Inexact type match for vararg arguments || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Boxing and unboxing conversions || Y || ? || ? || Basically wants you to explicitly box and unbox basic types&lt;br /&gt;
|-&lt;br /&gt;
| Enum type constant not covered in switch statement || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| switch case falls through || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Null pointer access || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Potential null pointer access || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Comparing identical values ('x' == 'x') || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing synchronized modifier on inherited method || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Class overrides equals() but not hashCode() || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Dead code (e.g. 'if (false)') || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Field declaration hides another field or variable || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Local declaration hides another field or variable (General) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Local declaration hides another field or variable (Constructors and Gettors/Setters) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Type parameter hides another type || Y || ? || Probably Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Method does not override package visible method || Y || ? || Probably Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Interface method conflicts with protected method in Object || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Deprecated API || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Deprecated API (signal use of deprecated api inside deprecated code) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Deprecated API (signal overriding or implementing method) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Forbidden Reference (access rules) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Discouraged Reference (access rules) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Local variable is never read || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (non overriding methods) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (overriding methods) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (even if documented with @param tag) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused import || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused local or private member || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused method || ? || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unreachable statement || ? || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Redundant null check || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary else || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary cast or instanceof || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (non overriding methods) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (overriding methods) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (ignore exceptions declared with @throws or @exception) || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (ignore Exception and Throwable) || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused break/continue label || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Redundant super interface || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Unchecked generic type operation (JDK1.5) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Usage of a raw type (JDK1.5) || Y || ? || Y || i.e. Using List instead of List&amp;lt;String&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generic type parameter declared with a final type bound (JDK1.5) || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing Override annotation || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing Deprecated annotation || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Annotation is used as a super interface || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unhandled token in SupressWarnings token || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused SupressWarnings token || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Enable SupressWarnings annotations || Y || ? || Y || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Standard 2004-Present==&lt;br /&gt;
Coding warnings and errors can be highlighted for correction by your IDE, see the standards folder in the SVN repository.&lt;br /&gt;
&lt;br /&gt;
Voting for the code warnings is currently restricted to active code monkeys (have checked in in the last 6 months), the current votes (and therefore standard) is below.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! Rule !! For !! Against !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Non-static Access to a static member || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Indirect access to a static member || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unqualified access to an instance field || 0 || 3 || Referencing instance fields with ''this'' keyword&lt;br /&gt;
|-&lt;br /&gt;
| Undocumented Empty block || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Access to a non-accessible member of an enclosing type || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Method with a constructor name || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter Assignment || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Non-externalized Strings (missing/unused $NON-NLS$tag) || 2 || 1 || Basically [[Internationalization]] will need this&lt;br /&gt;
|-&lt;br /&gt;
| Serializable class without serialVersionUID || 0 || 3 || -&lt;br /&gt;
|-&lt;br /&gt;
| Assignment has no effect (''x = x;'') || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Possible accidental boolean assignment ''if (a = b)'' || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| ''finally'' does not complete normally || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Empty Statement || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Using a char array in String concatenation || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Hidden catch block || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Boxing and unboxing conversions || 0 || 3 || Basically wants you to explicitly box and unbox basic types&lt;br /&gt;
|-&lt;br /&gt;
| Inexact type match for vararg arguments || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Enum type constant not covered in switch statement || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| switch case falls through || 1 || 2 || -&lt;br /&gt;
|-&lt;br /&gt;
| Null reference || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Field declaration hides another field or variable || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Local declaration hides another field or variable (General) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Local declaration hides another field or variable (Constructors and Gettors/Setters) || 1 || 2 || -&lt;br /&gt;
|-&lt;br /&gt;
| Type parameter hides another type || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Method overridden but not package visible || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Interface method conflicts with protected method in Object || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Deprecated API || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Forbidden Reference (access rules) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Discouraged Reference (access rules) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Local variable is never read || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (non overriding methods) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (overriding methods) || 0 || 3 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused import || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused local or private member || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary cast or instanceof || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary else || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (non overriding methods) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (overriding methods) || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused break/continue label || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unchecked generic type operation (JDK1.5) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Usage of a raw type (JDK1.5) || 3 || 0 || i.e. Using List instead of List&amp;lt;String&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generic type parameter declared with a final type bound (JDK1.5) || 0 || 3 || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing Override annotation || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing Deprecated annotation || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Annotation is used as a super interface || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unhandled token in SupressWarnings token || 3 || 0 || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Who Has Voted''' (simply link in your name when you have done so)&lt;br /&gt;
# [[Martijn Verburg]]&lt;br /&gt;
# Aaron Divinsky&lt;br /&gt;
# [[Andrew Wilson]]&lt;br /&gt;
# Brian (telechus)&lt;br /&gt;
# Devon Jones&lt;br /&gt;
# Greg Bingleman&lt;br /&gt;
# [[James Dempsey]]&lt;br /&gt;
# Jonas Karlson&lt;br /&gt;
# Stefan Radermacher&lt;br /&gt;
# Tir Gwaith&lt;br /&gt;
# Tod Milam&lt;br /&gt;
&lt;br /&gt;
=General Coding guidelines=&lt;br /&gt;
&lt;br /&gt;
# Arguments should have meaningful names, even if that makes them really long. variables that are temporary and throwaway you can name something inane - I like to name temporary strings aString for lack of any additional creative effort on my part :) (But for some of us, plain old s is just fine.) You will see aPC almost everywhere for PlayerCharacter instances, regardless of other conventions.&lt;br /&gt;
# Name arguments to methods something reasonable so IDE's that display the argument names can give a guide as to what is expected. If the method is something like setVision(String arg) it's pretty clear what's expected, but for methods which take multiple arguments it's especially important to name the arguments well.&lt;br /&gt;
# Always keep optimization in mind. Avoid creating unnecessary variables. But don't go your of your way to optimize if it clouds the meaning of the code or makes it harder to maintain. When in doubt, correctness trumps performance.&lt;br /&gt;
# Keep scope in mind — if a variable or method can be made private, protected or final, do so. If you're not sure what the difference is in these, don't be afraid to ask. This gets into the minutest of Java and we're glad to educate you so we can all make the best code possible.&lt;br /&gt;
# Write unit tests for new code, see [[Unit Testing]].&lt;br /&gt;
# Add comments and Javadoc.&lt;br /&gt;
# If you change the syntax of a lst tag or output sheet token or modify the GUI or anything else that needs to be reflected in the Documentation, post a note here with Doc Monkeys! in the title so it gets their attention. If you can type up your notes so it fits with the format used in the actual documentation, the Doc Monkeys will love you. If you're not able to do that, give them at least something to work with and they'll make the rest up. :)&lt;br /&gt;
# Be friendly and courteous. If someone checks in code that annoys you — e-mail them. If you can't reach them or get no response, e-mail me. Slamming here shouldn't be necessary.&lt;br /&gt;
# Don't break the build. I've broken the build myself, so I don't hold it against anyone if they break it (though I don't expect anyone to make a habit of it!). Running ''ant complete'' pretty much saves you from this embarrassment.&lt;br /&gt;
# Make sure the JUnit tests pass before checking in your code. Running ''ant test'' is the answer here. (The &amp;quot;complete&amp;quot; target for ant includes &amp;quot;test&amp;quot;, by the way.) Keep an eye on the autobuilds. If the software is presently failing for the auto-builds, it might be a good time to focus on build-fixing changes.&lt;br /&gt;
&lt;br /&gt;
Remember we're all doing this for fun and because we want to produce something that can support character creation/maintenance for all our favorite books (and our own creations!).&lt;br /&gt;
&lt;br /&gt;
If anyone wants to tackle a bug or feature but doesn't know where the code they should focus on is located, feel free to ask. I'm more than happy to point out where I think the related code would be located if that means its another bug or feature I don't have to worry about! PCGen has a fairly large code base so new developers will need some time to get used to how everything is organized. I don't mind helping to speed that process along, and I'm sure others would be willing to answer questions if they're posted here as well.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=Coding_Standards&amp;diff=1854</id>
		<title>Coding Standards</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=Coding_Standards&amp;diff=1854"/>
		<updated>2009-10-21T17:23:49Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: /* Code Warnings and Errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Releases typically happen every second Sunday Canberra, Australia (UTC+11) time. There may be code freezes on release days, but these will be announced in advance on the developers and experimental lists. There are 2 taboos:&lt;br /&gt;
&lt;br /&gt;
# Checking in code that breaks the build.&lt;br /&gt;
# Checking in code that obviously wasn't tested.&lt;br /&gt;
&lt;br /&gt;
We have a couple of code monkeys who make sweeps through the code to make sure it's all in the proper format, and we have others who go through looking to optimize code. Everyone has their role and things have gone very smoothly. If you are not certain about something, ask! Nobody is here to bite your head off (unless they are role-playing a troll). Try the developer's mailing list or any of the Yahoo! Groups or the Silverbacks.&lt;br /&gt;
&lt;br /&gt;
=Code Style=&lt;br /&gt;
&lt;br /&gt;
Coding styles can be assisted by your IDE, see the standards folder in the SVN repository.&lt;br /&gt;
&lt;br /&gt;
* For Eclipse you can use [http://pcgen.svn.sourceforge.net/viewvc/*checkout*/pcgen/Trunk/pcgen/code/standards/eclipse32_pcgen.xml 3.2 Formatter Rules]&lt;br /&gt;
&lt;br /&gt;
Voting for the code conventions is currently restricted to active code monkeys (have checked in in the last 6 months), the current votes (and therefore standard) is below.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! Rule !! For !! Against&lt;br /&gt;
|-&lt;br /&gt;
| Use Tabs || 4 || 4&lt;br /&gt;
|-&lt;br /&gt;
| Use Spaces || 4 || 4&lt;br /&gt;
|-&lt;br /&gt;
| Have braces around 1 line control statements || 8 || 0&lt;br /&gt;
|-&lt;br /&gt;
| Open and close braces on their own line || 5 || 3&lt;br /&gt;
|-&lt;br /&gt;
| 1 space padding inside parenthesis when calling a method || 0 || 8&lt;br /&gt;
|-&lt;br /&gt;
| 1 space padding inside parenthesis when declaring a method || 0 || 8&lt;br /&gt;
|-&lt;br /&gt;
| Space after a comma || 8 || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Who Has Voted''' (simply link in your name when you have done so)&lt;br /&gt;
# [[Martijn Verburg]]&lt;br /&gt;
# Aaron Divinsky&lt;br /&gt;
# [[Andrew Wilson]]&lt;br /&gt;
# Brian (telechus)&lt;br /&gt;
# [[Devon Jones]]&lt;br /&gt;
# [[Greg Bingleman]]&lt;br /&gt;
# [[James Dempsey]]&lt;br /&gt;
# [[Jonas Karlson]]&lt;br /&gt;
# Stefan Radermacher&lt;br /&gt;
# [[Tir Gwaith]]&lt;br /&gt;
# [[Tod Milam]]&lt;br /&gt;
&lt;br /&gt;
=Code Warnings and Errors=&lt;br /&gt;
&lt;br /&gt;
Code Warnings and Errors may vary by tool.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! Rule !! Eclipse 3.5 !! IDEA !! NetBeans !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Non-static Access to a static member || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Indirect access to a static member || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unqualified access to an instance field || Y || ? || Probably Y || Referencing instance fields with ''this'' keyword&lt;br /&gt;
|-&lt;br /&gt;
| Undocumented Empty block || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Access to a non-accessible member of an enclosing type || Y || ? || Probably Y || - &lt;br /&gt;
|-&lt;br /&gt;
| Method with a constructor name || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter Assignment || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Non-externalized Strings (missing/unused $NON-NLS$tag) || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Serializable class without serialVersionUID || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Assignment has no effect (''x = x;'') || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Possible accidental boolean assignment ''if (a = b)'' || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| ''finally'' does not complete normally || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Empty Statement || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Using a char array in String concatenation || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Hidden catch block || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Inexact type match for vararg arguments || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Boxing and unboxing conversions || Y || ? || ? || Basically wants you to explicitly box and unbox basic types&lt;br /&gt;
|-&lt;br /&gt;
| Enum type constant not covered in switch statement || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| switch case falls through || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Null pointer access || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Potential null pointer access || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Comparing identical values ('x' == 'x') || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing synchronized modifier on inherited method || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Class overrides equals() but not hashCode() || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Dead code (e.g. 'if (false)') || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Field declaration hides another field or variable || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Local declaration hides another field or variable (General) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Local declaration hides another field or variable (Constructors and Gettors/Setters) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Type parameter hides another type || Y || ? || Probably Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Method does not override package visible method || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Interface method conflicts with protected method in Object || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Deprecated API || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Deprecated API (signal use of deprecated api inside deprecated code) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Deprecated API (signal overriding or implementing method) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Forbidden Reference (access rules) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Discouraged Reference (access rules) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Local variable is never read || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (non overriding methods) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (overriding methods) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (even if documented with @param tag) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused import || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused local or private member || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused method || ? || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unreachable statement || ? || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Redundant null check || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary else || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary cast or instanceof || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (non overriding methods) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (overriding methods) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (ignore exceptions declared with @throws or @exception) || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (ignore Exception and Throwable) || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused break/continue label || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Redundant super interface || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Unchecked generic type operation (JDK1.5) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Usage of a raw type (JDK1.5) || Y || ? || Y || i.e. Using List instead of List&amp;lt;String&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generic type parameter declared with a final type bound (JDK1.5) || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing Override annotation || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing Deprecated annotation || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Annotation is used as a super interface || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unhandled token in SupressWarnings token || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused SupressWarnings token || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Enable SupressWarnings annotations || Y || ? || Y || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Standard 2004-Present==&lt;br /&gt;
Coding warnings and errors can be highlighted for correction by your IDE, see the standards folder in the SVN repository.&lt;br /&gt;
&lt;br /&gt;
Voting for the code warnings is currently restricted to active code monkeys (have checked in in the last 6 months), the current votes (and therefore standard) is below.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! Rule !! For !! Against !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Non-static Access to a static member || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Indirect access to a static member || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unqualified access to an instance field || 0 || 3 || Referencing instance fields with ''this'' keyword&lt;br /&gt;
|-&lt;br /&gt;
| Undocumented Empty block || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Access to a non-accessible member of an enclosing type || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Method with a constructor name || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter Assignment || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Non-externalized Strings (missing/unused $NON-NLS$tag) || 2 || 1 || Basically [[Internationalization]] will need this&lt;br /&gt;
|-&lt;br /&gt;
| Serializable class without serialVersionUID || 0 || 3 || -&lt;br /&gt;
|-&lt;br /&gt;
| Assignment has no effect (''x = x;'') || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Possible accidental boolean assignment ''if (a = b)'' || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| ''finally'' does not complete normally || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Empty Statement || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Using a char array in String concatenation || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Hidden catch block || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Boxing and unboxing conversions || 0 || 3 || Basically wants you to explicitly box and unbox basic types&lt;br /&gt;
|-&lt;br /&gt;
| Inexact type match for vararg arguments || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Enum type constant not covered in switch statement || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| switch case falls through || 1 || 2 || -&lt;br /&gt;
|-&lt;br /&gt;
| Null reference || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Field declaration hides another field or variable || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Local declaration hides another field or variable (General) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Local declaration hides another field or variable (Constructors and Gettors/Setters) || 1 || 2 || -&lt;br /&gt;
|-&lt;br /&gt;
| Type parameter hides another type || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Method overridden but not package visible || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Interface method conflicts with protected method in Object || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Deprecated API || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Forbidden Reference (access rules) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Discouraged Reference (access rules) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Local variable is never read || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (non overriding methods) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (overriding methods) || 0 || 3 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused import || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused local or private member || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary cast or instanceof || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary else || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (non overriding methods) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (overriding methods) || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused break/continue label || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unchecked generic type operation (JDK1.5) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Usage of a raw type (JDK1.5) || 3 || 0 || i.e. Using List instead of List&amp;lt;String&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generic type parameter declared with a final type bound (JDK1.5) || 0 || 3 || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing Override annotation || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing Deprecated annotation || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Annotation is used as a super interface || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unhandled token in SupressWarnings token || 3 || 0 || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Who Has Voted''' (simply link in your name when you have done so)&lt;br /&gt;
# [[Martijn Verburg]]&lt;br /&gt;
# Aaron Divinsky&lt;br /&gt;
# [[Andrew Wilson]]&lt;br /&gt;
# Brian (telechus)&lt;br /&gt;
# Devon Jones&lt;br /&gt;
# Greg Bingleman&lt;br /&gt;
# [[James Dempsey]]&lt;br /&gt;
# Jonas Karlson&lt;br /&gt;
# Stefan Radermacher&lt;br /&gt;
# Tir Gwaith&lt;br /&gt;
# Tod Milam&lt;br /&gt;
&lt;br /&gt;
=General Coding guidelines=&lt;br /&gt;
&lt;br /&gt;
# Arguments should have meaningful names, even if that makes them really long. variables that are temporary and throwaway you can name something inane - I like to name temporary strings aString for lack of any additional creative effort on my part :) (But for some of us, plain old s is just fine.) You will see aPC almost everywhere for PlayerCharacter instances, regardless of other conventions.&lt;br /&gt;
# Name arguments to methods something reasonable so IDE's that display the argument names can give a guide as to what is expected. If the method is something like setVision(String arg) it's pretty clear what's expected, but for methods which take multiple arguments it's especially important to name the arguments well.&lt;br /&gt;
# Always keep optimization in mind. Avoid creating unnecessary variables. But don't go your of your way to optimize if it clouds the meaning of the code or makes it harder to maintain. When in doubt, correctness trumps performance.&lt;br /&gt;
# Keep scope in mind — if a variable or method can be made private, protected or final, do so. If you're not sure what the difference is in these, don't be afraid to ask. This gets into the minutest of Java and we're glad to educate you so we can all make the best code possible.&lt;br /&gt;
# Write unit tests for new code, see [[Unit Testing]].&lt;br /&gt;
# Add comments and Javadoc.&lt;br /&gt;
# If you change the syntax of a lst tag or output sheet token or modify the GUI or anything else that needs to be reflected in the Documentation, post a note here with Doc Monkeys! in the title so it gets their attention. If you can type up your notes so it fits with the format used in the actual documentation, the Doc Monkeys will love you. If you're not able to do that, give them at least something to work with and they'll make the rest up. :)&lt;br /&gt;
# Be friendly and courteous. If someone checks in code that annoys you — e-mail them. If you can't reach them or get no response, e-mail me. Slamming here shouldn't be necessary.&lt;br /&gt;
# Don't break the build. I've broken the build myself, so I don't hold it against anyone if they break it (though I don't expect anyone to make a habit of it!). Running ''ant complete'' pretty much saves you from this embarrassment.&lt;br /&gt;
# Make sure the JUnit tests pass before checking in your code. Running ''ant test'' is the answer here. (The &amp;quot;complete&amp;quot; target for ant includes &amp;quot;test&amp;quot;, by the way.) Keep an eye on the autobuilds. If the software is presently failing for the auto-builds, it might be a good time to focus on build-fixing changes.&lt;br /&gt;
&lt;br /&gt;
Remember we're all doing this for fun and because we want to produce something that can support character creation/maintenance for all our favorite books (and our own creations!).&lt;br /&gt;
&lt;br /&gt;
If anyone wants to tackle a bug or feature but doesn't know where the code they should focus on is located, feel free to ask. I'm more than happy to point out where I think the related code would be located if that means its another bug or feature I don't have to worry about! PCGen has a fairly large code base so new developers will need some time to get used to how everything is organized. I don't mind helping to speed that process along, and I'm sure others would be willing to answer questions if they're posted here as well.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=Coding_Standards&amp;diff=1853</id>
		<title>Coding Standards</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=Coding_Standards&amp;diff=1853"/>
		<updated>2009-10-21T17:23:03Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Releases typically happen every second Sunday Canberra, Australia (UTC+11) time. There may be code freezes on release days, but these will be announced in advance on the developers and experimental lists. There are 2 taboos:&lt;br /&gt;
&lt;br /&gt;
# Checking in code that breaks the build.&lt;br /&gt;
# Checking in code that obviously wasn't tested.&lt;br /&gt;
&lt;br /&gt;
We have a couple of code monkeys who make sweeps through the code to make sure it's all in the proper format, and we have others who go through looking to optimize code. Everyone has their role and things have gone very smoothly. If you are not certain about something, ask! Nobody is here to bite your head off (unless they are role-playing a troll). Try the developer's mailing list or any of the Yahoo! Groups or the Silverbacks.&lt;br /&gt;
&lt;br /&gt;
=Code Style=&lt;br /&gt;
&lt;br /&gt;
Coding styles can be assisted by your IDE, see the standards folder in the SVN repository.&lt;br /&gt;
&lt;br /&gt;
* For Eclipse you can use [http://pcgen.svn.sourceforge.net/viewvc/*checkout*/pcgen/Trunk/pcgen/code/standards/eclipse32_pcgen.xml 3.2 Formatter Rules]&lt;br /&gt;
&lt;br /&gt;
Voting for the code conventions is currently restricted to active code monkeys (have checked in in the last 6 months), the current votes (and therefore standard) is below.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! Rule !! For !! Against&lt;br /&gt;
|-&lt;br /&gt;
| Use Tabs || 4 || 4&lt;br /&gt;
|-&lt;br /&gt;
| Use Spaces || 4 || 4&lt;br /&gt;
|-&lt;br /&gt;
| Have braces around 1 line control statements || 8 || 0&lt;br /&gt;
|-&lt;br /&gt;
| Open and close braces on their own line || 5 || 3&lt;br /&gt;
|-&lt;br /&gt;
| 1 space padding inside parenthesis when calling a method || 0 || 8&lt;br /&gt;
|-&lt;br /&gt;
| 1 space padding inside parenthesis when declaring a method || 0 || 8&lt;br /&gt;
|-&lt;br /&gt;
| Space after a comma || 8 || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Who Has Voted''' (simply link in your name when you have done so)&lt;br /&gt;
# [[Martijn Verburg]]&lt;br /&gt;
# Aaron Divinsky&lt;br /&gt;
# [[Andrew Wilson]]&lt;br /&gt;
# Brian (telechus)&lt;br /&gt;
# [[Devon Jones]]&lt;br /&gt;
# [[Greg Bingleman]]&lt;br /&gt;
# [[James Dempsey]]&lt;br /&gt;
# [[Jonas Karlson]]&lt;br /&gt;
# Stefan Radermacher&lt;br /&gt;
# [[Tir Gwaith]]&lt;br /&gt;
# [[Tod Milam]]&lt;br /&gt;
&lt;br /&gt;
=Code Warnings and Errors=&lt;br /&gt;
&lt;br /&gt;
Code Warnings and Errors may vary by tool.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! Rule !! Eclipse 3.5 !! IDEA !! NetBeans !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Non-static Access to a static member || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Indirect access to a static member || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unqualified access to an instance field || Y || ? || Probably Y || Referencing instance fields with ''this'' keyword&lt;br /&gt;
|-&lt;br /&gt;
| Undocumented Empty block || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Access to a non-accessible member of an enclosing type || Y || ? || Probably Y || - &lt;br /&gt;
|-&lt;br /&gt;
| Method with a constructor name || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter Assignment || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Non-externalized Strings (missing/unused $NON-NLS$tag) || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Serializable class without serialVersionUID || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Assignment has no effect (''x = x;'') || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Possible accidental boolean assignment ''if (a = b)'' || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| ''finally'' does not complete normally || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Empty Statement || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Using a char array in String concatenation || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Hidden catch block || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Inexact type match for vararg arguments || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Boxing and unboxing conversions || Y || ? || ? || Basically wants you to explicitly box and unbox basic types&lt;br /&gt;
|-&lt;br /&gt;
| Enum type constant not covered in switch statement || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| switch case falls through || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Null pointer access || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Potential null pointer access || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Comparing identical values ('x' == 'x') || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing synchronized modifier on inherited method || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Class overrides equals() but not hashCode() || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Dead code (e.g. 'if (false)') || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Field declaration hides another field or variable || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Local declaration hides another field or variable (General) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Local declaration hides another field or variable (Constructors and Gettors/Setters) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Type parameter hides another type || Y || ? || Probably Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Method does not override package visible method || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Interface method conflicts with protected method in Object || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Deprecated API || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Deprecated API (signal use of deprecated api inside deprecated code) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Deprecated API (signal overriding or implementing method) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Forbidden Reference (access rules) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Discouraged Reference (access rules) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Local variable is never read || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (non overriding methods) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (overriding methods) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (even if documented with @param tag) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused import || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused local or private member || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused method || ? || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unreachable statement || ? || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Redundant null check || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary else || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary cast or instanceof || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (non overriding methods) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (overriding methods) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (ignore exceptions declared with @throws or @exception) || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (ignore Exception and Throwable) || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused break/continue label || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Redundant super interface || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Unchecked generic type operation (JDK1.5) || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Usage of a raw type (JDK1.5) || Y || ? || Y || i.e. Using List instead of List&amp;lt;String&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generic type parameter declared with a final type bound (JDK1.5) || Y || ? || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing Override annotation || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing Deprecated annotation || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Annotation is used as a super interface || Y || ? || Y || -&lt;br /&gt;
|-&lt;br /&gt;
| Unhandled token in SupressWarnings token || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused SupressWarnings token || Y || ? || N || -&lt;br /&gt;
|-&lt;br /&gt;
| Enable SupressWarnings annotations || Y || ? || Y || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Standard 2004-Present==&lt;br /&gt;
Coding warnings and errors can be highlighted for correction by your IDE, see the standards folder in the SVN repository.&lt;br /&gt;
&lt;br /&gt;
Voting for the code warnings is currently restricted to active code monkeys (have checked in in the last 6 months), the current votes (and therefore standard) is below.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! Rule !! For !! Against !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Non-static Access to a static member || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Indirect access to a static member || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unqualified access to an instance field || 0 || 3 || Referencing instance fields with ''this'' keyword&lt;br /&gt;
|-&lt;br /&gt;
| Undocumented Empty block || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Access to a non-accessible member of an enclosing type || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Method with a constructor name || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter Assignment || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Non-externalized Strings (missing/unused $NON-NLS$tag) || 2 || 1 || Basically [[Internationalization]] will need this&lt;br /&gt;
|-&lt;br /&gt;
| Serializable class without serialVersionUID || 0 || 3 || -&lt;br /&gt;
|-&lt;br /&gt;
| Assignment has no effect (''x = x;'') || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Possible accidental boolean assignment ''if (a = b)'' || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| ''finally'' does not complete normally || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Empty Statement || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Using a char array in String concatenation || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Hidden catch block || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Boxing and unboxing conversions || 0 || 3 || Basically wants you to explicitly box and unbox basic types&lt;br /&gt;
|-&lt;br /&gt;
| Inexact type match for vararg arguments || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Enum type constant not covered in switch statement || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| switch case falls through || 1 || 2 || -&lt;br /&gt;
|-&lt;br /&gt;
| Null reference || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Field declaration hides another field or variable || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Local declaration hides another field or variable (General) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Local declaration hides another field or variable (Constructors and Gettors/Setters) || 1 || 2 || -&lt;br /&gt;
|-&lt;br /&gt;
| Type parameter hides another type || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Method overridden but not package visible || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Interface method conflicts with protected method in Object || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Deprecated API || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Forbidden Reference (access rules) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Discouraged Reference (access rules) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Local variable is never read || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (non overriding methods) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Parameter is never read (overriding methods) || 0 || 3 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused import || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused local or private member || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary cast or instanceof || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary else || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (non overriding methods) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unnecessary declaration of thrown checked exception (overriding methods) || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unused break/continue label || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unchecked generic type operation (JDK1.5) || 3 || 0 || -&lt;br /&gt;
|-&lt;br /&gt;
| Usage of a raw type (JDK1.5) || 3 || 0 || i.e. Using List instead of List&amp;lt;String&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generic type parameter declared with a final type bound (JDK1.5) || 0 || 3 || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing Override annotation || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Missing Deprecated annotation || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Annotation is used as a super interface || 2 || 1 || -&lt;br /&gt;
|-&lt;br /&gt;
| Unhandled token in SupressWarnings token || 3 || 0 || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Who Has Voted''' (simply link in your name when you have done so)&lt;br /&gt;
# [[Martijn Verburg]]&lt;br /&gt;
# Aaron Divinsky&lt;br /&gt;
# [[Andrew Wilson]]&lt;br /&gt;
# Brian (telechus)&lt;br /&gt;
# Devon Jones&lt;br /&gt;
# Greg Bingleman&lt;br /&gt;
# [[James Dempsey]]&lt;br /&gt;
# Jonas Karlson&lt;br /&gt;
# Stefan Radermacher&lt;br /&gt;
# Tir Gwaith&lt;br /&gt;
# Tod Milam&lt;br /&gt;
&lt;br /&gt;
=General Coding guidelines=&lt;br /&gt;
&lt;br /&gt;
# Arguments should have meaningful names, even if that makes them really long. variables that are temporary and throwaway you can name something inane - I like to name temporary strings aString for lack of any additional creative effort on my part :) (But for some of us, plain old s is just fine.) You will see aPC almost everywhere for PlayerCharacter instances, regardless of other conventions.&lt;br /&gt;
# Name arguments to methods something reasonable so IDE's that display the argument names can give a guide as to what is expected. If the method is something like setVision(String arg) it's pretty clear what's expected, but for methods which take multiple arguments it's especially important to name the arguments well.&lt;br /&gt;
# Always keep optimization in mind. Avoid creating unnecessary variables. But don't go your of your way to optimize if it clouds the meaning of the code or makes it harder to maintain. When in doubt, correctness trumps performance.&lt;br /&gt;
# Keep scope in mind — if a variable or method can be made private, protected or final, do so. If you're not sure what the difference is in these, don't be afraid to ask. This gets into the minutest of Java and we're glad to educate you so we can all make the best code possible.&lt;br /&gt;
# Write unit tests for new code, see [[Unit Testing]].&lt;br /&gt;
# Add comments and Javadoc.&lt;br /&gt;
# If you change the syntax of a lst tag or output sheet token or modify the GUI or anything else that needs to be reflected in the Documentation, post a note here with Doc Monkeys! in the title so it gets their attention. If you can type up your notes so it fits with the format used in the actual documentation, the Doc Monkeys will love you. If you're not able to do that, give them at least something to work with and they'll make the rest up. :)&lt;br /&gt;
# Be friendly and courteous. If someone checks in code that annoys you — e-mail them. If you can't reach them or get no response, e-mail me. Slamming here shouldn't be necessary.&lt;br /&gt;
# Don't break the build. I've broken the build myself, so I don't hold it against anyone if they break it (though I don't expect anyone to make a habit of it!). Running ''ant complete'' pretty much saves you from this embarrassment.&lt;br /&gt;
# Make sure the JUnit tests pass before checking in your code. Running ''ant test'' is the answer here. (The &amp;quot;complete&amp;quot; target for ant includes &amp;quot;test&amp;quot;, by the way.) Keep an eye on the autobuilds. If the software is presently failing for the auto-builds, it might be a good time to focus on build-fixing changes.&lt;br /&gt;
&lt;br /&gt;
Remember we're all doing this for fun and because we want to produce something that can support character creation/maintenance for all our favorite books (and our own creations!).&lt;br /&gt;
&lt;br /&gt;
If anyone wants to tackle a bug or feature but doesn't know where the code they should focus on is located, feel free to ask. I'm more than happy to point out where I think the related code would be located if that means its another bug or feature I don't have to worry about! PCGen has a fairly large code base so new developers will need some time to get used to how everything is organized. I don't mind helping to speed that process along, and I'm sure others would be willing to answer questions if they're posted here as well.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=Developers_Meeting&amp;diff=1292</id>
		<title>Developers Meeting</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=Developers_Meeting&amp;diff=1292"/>
		<updated>2009-03-02T00:01:09Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It would be good to get a meeting of the Code Monkeys going. Please fill in your available times below:&lt;br /&gt;
&lt;br /&gt;
=Timezones=&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! Current Timezone !! Offset from GMT/UTC&lt;br /&gt;
|-&lt;br /&gt;
| [[Tom Parker]] || EDT || -4&lt;br /&gt;
|-&lt;br /&gt;
| [[James Dempsey]] || AEDT || +11&lt;br /&gt;
|-&lt;br /&gt;
| [[Connor Petty]] || PDT || -7&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Wilson || GMT (currently BST) || +0 (currently +1)&lt;br /&gt;
|-&lt;br /&gt;
| [[Martijn Verburg]] || GMT (currently BST) || +0 (currently +1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Availability=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! Mon !! Tue !! Wed !! Thu !! Fri !! Sat !! Sun&lt;br /&gt;
|-&lt;br /&gt;
| [[James Dempsey]] || 6pm-11pm AEDT || 6pm-11pm AEDT|| 6pm-11pm AEDT|| 6pm-11pm AEDT||6pm-11pm AEDT  || 7am-11pm AEDT|| 7am-4pm AEDT&lt;br /&gt;
|-&lt;br /&gt;
| [[James Dempsey]] || 12am-5am UTC || 7am-12pm UTC || 7am-12pm UTC || 7am-12pm UTC || 7am-12pm UTC || 7am-12pm UTC 8pm-12am UTC || 12am-12pm UTC 8pm-12am UTC&lt;br /&gt;
|-&lt;br /&gt;
| [[Tom Parker]] || 12am-3am UTC 10pm-12am UTC || 12am-3am UTC ''10pm-12am UTC'' || ''12am-3am UTC'' || none || 1am-3am UTC  10pm-12am UTC || 12am-1am UTC ''1am-3am UTC'' 11am-2pm UTC ''2pm-9pm UTC'' 9pm-12am UTC || 12am-3am UTC 11am-3pm UTC ''3pm-7pm UTC'' 7pm-12am UTC &lt;br /&gt;
|-&lt;br /&gt;
| [[Connor Petty]] || 7pm-9pm UTC 11pm-8am UTC || 5pm-9pm UTC || 7pm-9pm UTC 11pm-8am UTC || 7pm-9pm UTC 11pm-8am UTC || 7pm-9pm UTC 11pm-8am UTC || 7pm-10am UTC || 7pm-8am UTC&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Wilson (nuance) || none || ''8pm–1am'' || none || none || 7pm-12am UTC || 12am-3am UTC 9am-12am UTC || 12am-3am UTC 1pm-12am UTC &lt;br /&gt;
|-&lt;br /&gt;
| [[Martijn Verburg]] || ''8pm-11pm GMT'' || ''6pm-11pm GMT'' || none || ''6pm-11pm GMT'' || ''6pm-11pm GMT'' || none || none&lt;br /&gt;
|-&lt;br /&gt;
| Common Time (James + Tom) || 12am-3am UTC || none || none || none || none || 11am-12pm UTC ''8pm-9pm UTC'' 9pm-12am UTC || 12am-3am UTC 11am-12pm UTC 8pm-12am UTC &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
PST is GMT -8&amp;lt;br&amp;gt;&lt;br /&gt;
MST is GMT -7&amp;lt;br&amp;gt;&lt;br /&gt;
EST is GMT -5&lt;br /&gt;
&lt;br /&gt;
''italicized items'' are limited availability: means availability needs to be negotiated based on other periodic activities&lt;br /&gt;
&lt;br /&gt;
[http://www.timeanddate.com/worldclock/meetingtime.html?year=2008&amp;amp;month=10&amp;amp;day=25&amp;amp;p1=57&amp;amp;p2=179&amp;amp;p3=37&amp;amp;p4=-1 Time comparison]&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=Developers_Meeting&amp;diff=1291</id>
		<title>Developers Meeting</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=Developers_Meeting&amp;diff=1291"/>
		<updated>2009-03-01T23:54:24Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It would be good to get a meeting of the Code Monkeys going. Please fill in your available times below:&lt;br /&gt;
&lt;br /&gt;
=Timezones=&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! Current Timezone !! Offset from GMT/UTC&lt;br /&gt;
|-&lt;br /&gt;
| [[Tom Parker]] || EDT || -4&lt;br /&gt;
|-&lt;br /&gt;
| [[James Dempsey]] || AEDT || +11&lt;br /&gt;
|-&lt;br /&gt;
| [[Connor Petty]] || PDT || -7&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Wilson || GMT (currently BST) || +0 (currently +1)&lt;br /&gt;
|-&lt;br /&gt;
| [[Martijn Verburg]] || GMT (currently BST) || +0 (currently +1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Availability=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! Mon !! Tue !! Wed !! Thu !! Fri !! Sat !! Sun&lt;br /&gt;
|-&lt;br /&gt;
| [[James Dempsey]] || 6pm-11pm AEDT || 6pm-11pm AEDT|| 6pm-11pm AEDT|| 6pm-11pm AEDT||6pm-11pm AEDT  || 7am-11pm AEDT|| 7am-4pm AEDT&lt;br /&gt;
|-&lt;br /&gt;
| [[James Dempsey]] || 12am-5am UTC || 7am-12pm UTC || 7am-12pm UTC || 7am-12pm UTC || 7am-12pm UTC || 7am-12pm UTC 8pm-12am UTC || 12am-12pm UTC 8pm-12am UTC&lt;br /&gt;
|-&lt;br /&gt;
| [[Tom Parker]] || 12am-3am UTC 10pm-12am UTC || 12am-3am UTC ''10pm-12am UTC'' || ''12am-3am UTC'' || none || 1am-3am UTC  10pm-12am UTC || 12am-1am UTC ''1am-3am UTC'' 11am-2pm UTC ''2pm-9pm UTC'' 9pm-12am UTC || 12am-3am UTC 11am-3pm UTC ''3pm-7pm UTC'' 7pm-12am UTC &lt;br /&gt;
|-&lt;br /&gt;
| [[Connor Petty]] || 5am-7am UTC 9am-6pm UTC || 3am-7am UTC || 5am-7am UTC 9am-6pm UTC || 5am-7am UTC 9am-6pm UTC || 5am-7am UTC 9am-6pm UTC || 5am-8pm UTC || 5am-6pm UTC&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Wilson (nuance) || none || ''8pm–1am'' || none || none || 7pm-12am UTC || 12am-3am UTC 9am-12am UTC || 12am-3am UTC 1pm-12am UTC &lt;br /&gt;
|-&lt;br /&gt;
| [[Martijn Verburg]] || ''8pm-11pm GMT'' || ''6pm-11pm GMT'' || none || ''6pm-11pm GMT'' || ''6pm-11pm GMT'' || none || none&lt;br /&gt;
|-&lt;br /&gt;
| Common Time (James + Tom) || 12am-3am UTC || none || none || none || none || 11am-12pm UTC ''8pm-9pm UTC'' 9pm-12am UTC || 12am-3am UTC 11am-12pm UTC 8pm-12am UTC &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
PST is GMT -8&amp;lt;br&amp;gt;&lt;br /&gt;
MST is GMT -7&amp;lt;br&amp;gt;&lt;br /&gt;
EST is GMT -5&lt;br /&gt;
&lt;br /&gt;
''italicized items'' are limited availability: means availability needs to be negotiated based on other periodic activities&lt;br /&gt;
&lt;br /&gt;
[http://www.timeanddate.com/worldclock/meetingtime.html?year=2008&amp;amp;month=10&amp;amp;day=25&amp;amp;p1=57&amp;amp;p2=179&amp;amp;p3=37&amp;amp;p4=-1 Time comparison]&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=1282</id>
		<title>UI Overhaul</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=1282"/>
		<updated>2009-02-14T04:15:35Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
PCGen is undertaking a UI overhaul, details below&lt;br /&gt;
&lt;br /&gt;
=Progress=&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! UI Component !! Completion Status&lt;br /&gt;
|-&lt;br /&gt;
| CoreUIFrame || 10%&lt;br /&gt;
|-&lt;br /&gt;
| SourcesChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| RaceChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh4.ggpht.com/_uesxozKl5ec/SJJKYF_dORI/AAAAAAAAAJM/fo_3MHUAdDg/ClassTab.JPG ClassInfoTab] || 70%&lt;br /&gt;
|-&lt;br /&gt;
| AbilitiesInfoTab || 100%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh6.ggpht.com/_uesxozKl5ec/SZZEn5NcIfI/AAAAAAAAANc/iYJfz9W460w/AbilityTab.JPG AbilityChooserTab] || 90%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh6.ggpht.com/_uesxozKl5ec/SJJD21r43hI/AAAAAAAAAJE/g8KbST911SA/SkillsTab.JPG SkillsInfoTab] || 90%&lt;br /&gt;
|-&lt;br /&gt;
| DomainChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| SpellsInfoTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| InventoryTab || 20%&lt;br /&gt;
|-&lt;br /&gt;
| BioTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| ^ CharacterSheetTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| ^ PreviewTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| PreferencesDialog || 0%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh6.ggpht.com/_uesxozKl5ec/SIkXpIk4CHI/AAAAAAAAAI8/Yko7dI0kXpY/CharacterCreationDialog.JPG CharacterCreationDialog] || 90%&lt;br /&gt;
|}&lt;br /&gt;
^ These components will not change but will merely be updated to conform to the the new UI standards.&lt;br /&gt;
&lt;br /&gt;
=New Utilities=&lt;br /&gt;
* JTreeViewPane&lt;br /&gt;
:This class is an improvement upon JTreeTable that uses a JTreeViewModels instead of a TreeTableModel to display the data in a JTreeTable. Use of the JTreeViewPane is preferred over use of the JTreeTablePane&lt;br /&gt;
* GenericListModel&lt;br /&gt;
:This is a simple extension of a ListModel that supports Generics. This implementations of this class use GenericListDataEvents to propagate changes in the list. GenericListDataEvents the set of Data that was affected during the change; when data is added, it includes the added data, when data is removed or changed, it includes the removed data.&lt;br /&gt;
=Design Specification=&lt;br /&gt;
The most important design aspect of the new UI is that it will have an inherent separation from the core by having all of the data accessible through facades. This means that the UI will never know the implementation of the underlying data.&lt;br /&gt;
*Facade Implementation&lt;br /&gt;
:Facades are expected to override their toString() method because they are going to be displayed directly in the UI.&lt;br /&gt;
:The GenericListModels that are returned from methods are expected to be the same instances each time that method is called. Also, any changes to the underlying data must be reflected with changes in the GenericListModel.&lt;br /&gt;
*Swing Components&lt;br /&gt;
:Any class that extends a swing component is expected to have a null constructor&lt;br /&gt;
*CharacterInfo Tabs&lt;br /&gt;
:All of the data on these tabs must be loaded and saved to a hashtable. The reason for this is that all of the models that are used to display information should not need to be recreated each time that tab is selected. If the tab reuses the models then the amount of time between tab switching would become milliseconds instead of seconds. The models themselves are expected to listen to changes from the GenericListModel that they associate with and update themselves accordingly.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=1281</id>
		<title>UI Overhaul</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=1281"/>
		<updated>2009-02-14T04:09:46Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
PCGen is undertaking a UI overhaul, details below&lt;br /&gt;
&lt;br /&gt;
=Progress=&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! UI Component !! Completion Status&lt;br /&gt;
|-&lt;br /&gt;
| CoreUIFrame || 10%&lt;br /&gt;
|-&lt;br /&gt;
| SourcesChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| RaceChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh4.ggpht.com/_uesxozKl5ec/SJJKYF_dORI/AAAAAAAAAJM/fo_3MHUAdDg/s800/ClassTab.JPG ClassInfoTab] || 70%&lt;br /&gt;
|-&lt;br /&gt;
| AbilitiesInfoTab || 100%&lt;br /&gt;
|-&lt;br /&gt;
| AbilityChooserTab || 90%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh6.ggpht.com/_uesxozKl5ec/SJJD21r43hI/AAAAAAAAAJE/g8KbST911SA/s800/SkillsTab.JPG SkillsInfoTab] || 90%&lt;br /&gt;
|-&lt;br /&gt;
| DomainChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| SpellsInfoTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| InventoryTab || 20%&lt;br /&gt;
|-&lt;br /&gt;
| BioTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| ^ CharacterSheetTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| ^ PreviewTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| PreferencesDialog || 0%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh6.ggpht.com/mistercpp2000/SIkXpIk4CHI/AAAAAAAAAI8/YhjhZKQWonI/s800/CharacterCreationDialog.JPG CharacterCreationDialog] || 90%&lt;br /&gt;
|}&lt;br /&gt;
^ These components will not change but will merely be updated to conform to the the new UI standards.&lt;br /&gt;
&lt;br /&gt;
=New Utilities=&lt;br /&gt;
* JTreeViewPane&lt;br /&gt;
:This class is an improvement upon JTreeTable that uses a JTreeViewModels instead of a TreeTableModel to display the data in a JTreeTable. Use of the JTreeViewPane is preferred over use of the JTreeTablePane&lt;br /&gt;
* GenericListModel&lt;br /&gt;
:This is a simple extension of a ListModel that supports Generics. This implementations of this class use GenericListDataEvents to propagate changes in the list. GenericListDataEvents the set of Data that was affected during the change; when data is added, it includes the added data, when data is removed or changed, it includes the removed data.&lt;br /&gt;
=Design Specification=&lt;br /&gt;
The most important design aspect of the new UI is that it will have an inherent separation from the core by having all of the data accessible through facades. This means that the UI will never know the implementation of the underlying data.&lt;br /&gt;
*Facade Implementation&lt;br /&gt;
:Facades are expected to override their toString() method because they are going to be displayed directly in the UI.&lt;br /&gt;
:The GenericListModels that are returned from methods are expected to be the same instances each time that method is called. Also, any changes to the underlying data must be reflected with changes in the GenericListModel.&lt;br /&gt;
*Swing Components&lt;br /&gt;
:Any class that extends a swing component is expected to have a null constructor&lt;br /&gt;
*CharacterInfo Tabs&lt;br /&gt;
:All of the data on these tabs must be loaded and saved to a hashtable. The reason for this is that all of the models that are used to display information should not need to be recreated each time that tab is selected. If the tab reuses the models then the amount of time between tab switching would become milliseconds instead of seconds. The models themselves are expected to listen to changes from the GenericListModel that they associate with and update themselves accordingly.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=1280</id>
		<title>UI Overhaul</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=1280"/>
		<updated>2009-02-14T04:05:33Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
PCGen is undertaking a UI overhaul, details below&lt;br /&gt;
&lt;br /&gt;
=Progress=&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! UI Component !! Completion Status&lt;br /&gt;
|-&lt;br /&gt;
| CoreUIFrame || 10%&lt;br /&gt;
|-&lt;br /&gt;
| SourcesChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| RaceChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh4.ggpht.com/_uesxozKl5ec/SJJKYF_dORI/AAAAAAAAAJM/fo_3MHUAdDg/s800/ClassTab.JPG ClassInfoTab] || 70%&lt;br /&gt;
|-&lt;br /&gt;
| AbilitiesInfoTab || 100%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh3.ggpht.com/_uesxozKl5ec/SZZBj7kdNDI/AAAAAAAAANQ/_Z3FHuRF5tg/AbilityTab.JPG AbilityChooserTab] || 90%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh6.ggpht.com/_uesxozKl5ec/SJJD21r43hI/AAAAAAAAAJE/g8KbST911SA/s800/SkillsTab.JPG SkillsInfoTab] || 90%&lt;br /&gt;
|-&lt;br /&gt;
| DomainChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| SpellsInfoTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| InventoryTab || 20%&lt;br /&gt;
|-&lt;br /&gt;
| BioTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| ^ CharacterSheetTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| ^ PreviewTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| PreferencesDialog || 0%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh6.ggpht.com/mistercpp2000/SIkXpIk4CHI/AAAAAAAAAI8/YhjhZKQWonI/s800/CharacterCreationDialog.JPG CharacterCreationDialog] || 90%&lt;br /&gt;
|}&lt;br /&gt;
^ These components will not change but will merely be updated to conform to the the new UI standards.&lt;br /&gt;
&lt;br /&gt;
=New Utilities=&lt;br /&gt;
* JTreeViewPane&lt;br /&gt;
:This class is an improvement upon JTreeTable that uses a JTreeViewModels instead of a TreeTableModel to display the data in a JTreeTable. Use of the JTreeViewPane is preferred over use of the JTreeTablePane&lt;br /&gt;
* GenericListModel&lt;br /&gt;
:This is a simple extension of a ListModel that supports Generics. This implementations of this class use GenericListDataEvents to propagate changes in the list. GenericListDataEvents the set of Data that was affected during the change; when data is added, it includes the added data, when data is removed or changed, it includes the removed data.&lt;br /&gt;
=Design Specification=&lt;br /&gt;
The most important design aspect of the new UI is that it will have an inherent separation from the core by having all of the data accessible through facades. This means that the UI will never know the implementation of the underlying data.&lt;br /&gt;
*Facade Implementation&lt;br /&gt;
:Facades are expected to override their toString() method because they are going to be displayed directly in the UI.&lt;br /&gt;
:The GenericListModels that are returned from methods are expected to be the same instances each time that method is called. Also, any changes to the underlying data must be reflected with changes in the GenericListModel.&lt;br /&gt;
*Swing Components&lt;br /&gt;
:Any class that extends a swing component is expected to have a null constructor&lt;br /&gt;
*CharacterInfo Tabs&lt;br /&gt;
:All of the data on these tabs must be loaded and saved to a hashtable. The reason for this is that all of the models that are used to display information should not need to be recreated each time that tab is selected. If the tab reuses the models then the amount of time between tab switching would become milliseconds instead of seconds. The models themselves are expected to listen to changes from the GenericListModel that they associate with and update themselves accordingly.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=1258</id>
		<title>UI Overhaul</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=1258"/>
		<updated>2009-02-01T06:38:59Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
PCGen is undertaking a UI overhaul, details below&lt;br /&gt;
&lt;br /&gt;
=Progress=&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! UI Component !! Completion Status&lt;br /&gt;
|-&lt;br /&gt;
| CoreUIFrame || 10%&lt;br /&gt;
|-&lt;br /&gt;
| SourcesChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| RaceChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh4.ggpht.com/_uesxozKl5ec/SJJKYF_dORI/AAAAAAAAAJM/fo_3MHUAdDg/s800/ClassTab.JPG ClassInfoTab] || 70%&lt;br /&gt;
|-&lt;br /&gt;
| AbilitiesInfoTab || 100%&lt;br /&gt;
|-&lt;br /&gt;
| AbilityChooserTab || 90%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh6.ggpht.com/_uesxozKl5ec/SJJD21r43hI/AAAAAAAAAJE/g8KbST911SA/s800/SkillsTab.JPG SkillsInfoTab] || 90%&lt;br /&gt;
|-&lt;br /&gt;
| DomainChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| SpellsInfoTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| InventoryTab || 20%&lt;br /&gt;
|-&lt;br /&gt;
| BioTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| ^ CharacterSheetTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| ^ PreviewTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| PreferencesDialog || 0%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh6.ggpht.com/mistercpp2000/SIkXpIk4CHI/AAAAAAAAAI8/YhjhZKQWonI/s800/CharacterCreationDialog.JPG CharacterCreationDialog] || 90%&lt;br /&gt;
|}&lt;br /&gt;
^ These components will not change but will merely be updated to conform to the the new UI standards.&lt;br /&gt;
&lt;br /&gt;
=New Utilities=&lt;br /&gt;
* JTreeViewPane&lt;br /&gt;
:This class is an improvement upon JTreeTable that uses a JTreeViewModels instead of a TreeTableModel to display the data in a JTreeTable. Use of the JTreeViewPane is preferred over use of the JTreeTablePane&lt;br /&gt;
* GenericListModel&lt;br /&gt;
:This is a simple extension of a ListModel that supports Generics. This implementations of this class use GenericListDataEvents to propagate changes in the list. GenericListDataEvents the set of Data that was affected during the change; when data is added, it includes the added data, when data is removed or changed, it includes the removed data.&lt;br /&gt;
=Design Specification=&lt;br /&gt;
The most important design aspect of the new UI is that it will have an inherent separation from the core by having all of the data accessible through facades. This means that the UI will never know the implementation of the underlying data.&lt;br /&gt;
*Facade Implementation&lt;br /&gt;
:Facades are expected to override their toString() method because they are going to be displayed directly in the UI.&lt;br /&gt;
:The GenericListModels that are returned from methods are expected to be the same instances each time that method is called. Also, any changes to the underlying data must be reflected with changes in the GenericListModel.&lt;br /&gt;
*Swing Components&lt;br /&gt;
:Any class that extends a swing component is expected to have a null constructor&lt;br /&gt;
*CharacterInfo Tabs&lt;br /&gt;
:All of the data on these tabs must be loaded and saved to a hashtable. The reason for this is that all of the models that are used to display information should not need to be recreated each time that tab is selected. If the tab reuses the models then the amount of time between tab switching would become milliseconds instead of seconds. The models themselves are expected to listen to changes from the GenericListModel that they associate with and update themselves accordingly.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=1242</id>
		<title>UI Overhaul</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=1242"/>
		<updated>2009-01-06T03:01:15Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
PCGen is undertaking a UI overhaul, details below&lt;br /&gt;
&lt;br /&gt;
=Progress=&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! UI Component !! Completion Status&lt;br /&gt;
|-&lt;br /&gt;
| CoreUIFrame || 10%&lt;br /&gt;
|-&lt;br /&gt;
| SourcesChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| RaceChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh4.ggpht.com/_uesxozKl5ec/SJJKYF_dORI/AAAAAAAAAJM/fo_3MHUAdDg/s800/ClassTab.JPG ClassInfoTab] || 70%&lt;br /&gt;
|-&lt;br /&gt;
| AbilitiesInfoTab || 100%&lt;br /&gt;
|-&lt;br /&gt;
| AbilityChooserTab || 90%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh6.ggpht.com/_uesxozKl5ec/SJJD21r43hI/AAAAAAAAAJE/g8KbST911SA/s800/SkillsTab.JPG SkillsInfoTab] || 90%&lt;br /&gt;
|-&lt;br /&gt;
| DomainChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| SpellsInfoTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| InventoryTab || 20%&lt;br /&gt;
|-&lt;br /&gt;
| BioTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| ^ CharacterSheetTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| ^ PreviewTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| PreferencesDialog || 0%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh6.ggpht.com/mistercpp2000/SIkXpIk4CHI/AAAAAAAAAI8/YhjhZKQWonI/s800/CharacterCreationDialog.JPG CharacterCreationDialog] || 90%&lt;br /&gt;
|}&lt;br /&gt;
^ These components will not change but will merely be updated to conform to the the new UI standards.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=1241</id>
		<title>UI Overhaul</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=UI_Overhaul&amp;diff=1241"/>
		<updated>2009-01-06T02:59:02Z</updated>

		<summary type="html">&lt;p&gt;Connor Petty: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
PCGen is undertaking a UI overhaul, details below&lt;br /&gt;
&lt;br /&gt;
=Progress=&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
! UI Component !! Completion Status&lt;br /&gt;
|-&lt;br /&gt;
| CoreUIFrame || 10%&lt;br /&gt;
|-&lt;br /&gt;
| SourcesChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| RaceChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh4.ggpht.com/_uesxozKl5ec/SJJKYF_dORI/AAAAAAAAAJM/fo_3MHUAdDg/s800/ClassTab.JPG ClassInfoTab] || 70%&lt;br /&gt;
|-&lt;br /&gt;
| AbilitiesInfoTab || 100%&lt;br /&gt;
|-&lt;br /&gt;
| AbilityChooserTab || 90%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh6.ggpht.com/_uesxozKl5ec/SJJD21r43hI/AAAAAAAAAJE/g8KbST911SA/s800/SkillsTab.JPG SkillsInfoTab] || 90%&lt;br /&gt;
|-&lt;br /&gt;
| DomainChooser || 0%&lt;br /&gt;
|-&lt;br /&gt;
| SpellsInfoTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| InventoryTab || 20%&lt;br /&gt;
|-&lt;br /&gt;
| BioTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| ^ CharacterSheetTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| ^ PreviewTab || 0%&lt;br /&gt;
|-&lt;br /&gt;
| PreferencesDialog || 0%&lt;br /&gt;
|-&lt;br /&gt;
| [http://lh6.ggpht.com/mistercpp2000/SIkXpIk4CHI/AAAAAAAAAI8/YhjhZKQWonI/s800/CharacterCreationDialog.JPG CharacterCreationDialog] || 10%&lt;br /&gt;
|}&lt;br /&gt;
^ These components will not change but will merely be updated to conform to the the new UI standards.&lt;/div&gt;</summary>
		<author><name>Connor Petty</name></author>
		
	</entry>
</feed>