November 9th, 2008, 05:17 PM
Only problem is I never found a free Java library for reading from an Access db. I can look around some more if you like.
Progress update on what I've been working on. I haven't really gotten anywhere on the windows yet. I spent all weekend trying to get the "column window" setup correct with Java Swing. This is deceptively difficult because of the auto-resizing stuff that the different layouts do. I need to get a layout that has a fixed height per row, aligns to the top-left of the window, and has a verticle scroll-bar when the columns get too tall to fit in the window. It looks like I will have to use a Jpanel with the GridBagLayout, stuck inside a JScrollPane. A JTable would be easier, but I don't think we can use that because we need to put more than just text into the grid (buttons, checkboxes, etc). I just need to figure out how to get the rows to have a fixed width, and then I'll have it.
I'll keep working on trying to get the Swing components set up correctly. When I get this part figured out, it won't take long to create the actual windows, since most of them will use the same layout.
November 9th, 2008, 06:22 PM
Ok, I think I have it working now. I uploaded a screenshot, let me know what you think:
Also, I can easily adjust the color or brightness of the background image and the row shading, as well as the text, so if you have any suggestions related to that, let me know
Last edited by paulscode; November 9th, 2008 at 06:42 PM.
November 9th, 2008, 07:18 PM
Cool! It looks like you got the math working. Very cool!
Here is some criticism - don't take it wrong - you don't need to fix stuff that works.
I am not sure what the checkboxes on the left are for. If you have the skill/subskill, it should simply show up. If you don't have a skill, it would not be in the characterskills table, and thus would not be there. Skill/subskill indenting is clear. Good job!
The skills need to be as compact (tight together) as possible since there will be a lot of them. I like the idea of a brighter and darker rows, but lets put data in both. I assume this is just a preliminary example. Less indenting of the skills/subskills, put the numbers closer to the text, make the numbers right justified. We will likely want all the Talent BasesSkills/Subskills in 2-4 columns rather than 1 long one (it that is possible). The only number that the user can change is the base score. All the others on this page are calculations (which I think you already understand).
Did the numbers come from the db or are they hard-coded at this time?
I like the image in the background!
The colors are pretty, but too bright. We need them to be very light. They should help the person reading the data, but not specifically draw their attention. Is this something you want to do as a "skin" (i.e. give people several colors to choose from)? Definitely a very low priority.
All that being said, it looks awesome!
November 10th, 2008, 05:55 AM
All your suggestions are doable, no problem. How many letters can the names for talents, skills, and subskills get? (I could probably look at the database for this) This will determine if I need to use a smaller font, since we will have multiple Talent columns.
For now, this data is hardcoded, but it will be no problem to actually pull it from the database (the MySQL library is very intuitive for reading and writing data). I will probably select all from the talents table to get possible talent ids, then use the talent id's in the character's skill data to determine what talents the character has and where to place the skill.
As for the checkboxes, won't there need to be a way to delete skills and subskills from a character? My idea was to allow the user to checkbox several to delete at once (kind of like some email programs do). Let me know what you had in mind for deleting skills and subskills.
Also, I assume there will need to be a "Remove" button, and some type of buttons for "Add skill" and "Add subskill", correct? How should those be situated on the page?
November 10th, 2008, 03:44 PM
I was thinking of perhaps putting this information into a tree instead of an indented list the way it is now. Limitation would be that there could only be text on the line (no buttons and checkboxes). It may be possible to let the user select rows, which would solve that problem (place the buttons outside of the tree, to affect whatever the user selected). The benefit of having a tree would be that the branches could be closed so the thing is not so long, and the user could open or close them as needed to read the sub-branches. I'll look into this (not sure how doable it is yet).
November 10th, 2008, 08:16 PM
The tree idea sounds very good. Very visual.
There needs to be some mechanism to add and update skills and subskills. These would never be removed or reduced except during a maint period. Once establish, a skill would never be lost. However, if the user entered a value by mistake, there would need to be a way to fix this (i.e. delete). The only limitation I might want is that you could not delete a skill that has sub-skills (just as a safety feature).
Would it mess with you if I changed column names slightly? Structure would be the same, but in going with the multiple db concept, I would like to rename columns called "name". If this is a problem, I will take another path.
November 11th, 2008, 07:46 AM
No problem, just send me the updates when you finish.
I didn't quite understand what you mean by a "maint period". From what you are saying, though, it sounds like once you create a character, it cannot be edited later? I suppose the "view character" window needs to be different than the "create character" window?
Assuming that the window I am working on now is the "view character" window, then it should not have any buttons for editing the character, is that correct?
The other thing I didn't understand is when you mentioned adding skills/subskills but not removing them. I assume you are talking about during play time, since we are looking at the "view character" window? Could you explain this part in a little more detail? I need to know what all in the way of Swing components needs to be on this window, and for that I need to know everything that the user will be able to do when he/she is at this window.
November 11th, 2008, 08:24 PM
No, the character should always be able to be updated. Poor choice of words on my part. Since this is just for the GM, I guess everything could be in maint mode. Optimally, it would be nice to default to an INQ mode (for safety), then click a button or something to go to maint mode. However, at this stage, INQ mode is not required.
In MY programming world, I can make a single window an INQ and MAINT based on a toggle. This means a single window may have more underlying code, but it is all in one place. I am not sure if this is the right way to go with this project or not. Your call.
During playing, we would never want to change a character, i.e. view. When I wrote about not removing them, I meant that a skill would never be lost (removed) once it was "part of the character". However, there would need to be a mechanism to remove a skill during maint in case you mistakenly chose the wrong one.
As I am envisioning this, there is a maint mode for everything. Potentially, there is an INQ mode for the character. Once this stuff is all entered and a combat in started, the GM would use a combat set of windows that would read the characters and equipment info to perform the combat results. During combat, the character would not be updated with the exception of the effects of the combat. All that would be required of the characters from the combat window is the list of characters and the attacks available to each character (character's firearms, hand to hand, melee weapons).
If I have not answered your questions, I will be happy to try again. Thanks.
November 12th, 2008, 06:39 AM
I got you now. I'll probably place the buttons on the page and later when we get around to programming the maint/inq stuff, we can simply enable/disable them depending on which mode the program is in.
As an update, I haven't got the tree view working yet, but I'll keep tinkering with this for a while. If I can't get it to work, I may have to just stick with the list/checkboxes setup.
November 13th, 2008, 06:59 AM
Sounds good. Let me know what I can do to help.
November 13th, 2008, 06:11 PM
Ok, I got the jTrees working the way I want them to. Here's a current screen shot:
As you can see, to fit the 30 character maximum size for subskill name, it looks like only two columns will fit on the window. This should be fine, though, given that the tree nodes can colapse to make things less cluttered. I also used a fixed-width font so that things won't get out of wack if the user comes up with a name that has a ton of W's in it.
Let me know if you like how this looks. Also, I can change the icon used for "leaf" and "branch" in the tree (right now it looks like files and folders), so let me know if you have any suggestions for that.
November 13th, 2008, 07:17 PM
Awesome!!!!! You rock!
As far as the images (files & folders) go, I do not have any thoughts at the moment, but will think about it. I assume this is an easy thing to change at a later date.
The only think I would like is if you could get the numbers closers to the text (just to make it easier to read at a glance). Other than that, it looks GREAT!!! Maybe make the Talent Bases bold and subskills italic (again, just for ease of reading).
I am taking tomorrow off for vacation (watching the kids while the wife has a teaching gig), so I will work on the tables. I also found some Access/Java stuff that might be helpful.
Again, great work!
November 13th, 2008, 07:38 PM
The reason the numbers are that distance is because the maximum length for subskill names is 30 characters long (I just went off the database for that). I could move the numbers closer if you wanted to limit the name lengths to some other number fewer than 30 characters. Just depends on what kind of names subskills are likely to have. I could also trim a little bit from the left side of the "Base" and "Adj" columns if I know the maximum number of digits that these numbers can be. I believe I used 8 digits for this screen shot.
I'll look into changing fonts on a per-row basis. Currently I only know how to set the font for the entire tree, but I'll see if it is possible to use different fonts throughout the tree. Believe it or not, the font used in the above screenshot is actually bold. It doesn't really look like it since it has been resized down quite small to make room for two columns of data on the page. If this looks bad to you, then I should be able to use a slightly larger font size if you decide to limit the names to something shorter than 30 characters.
As for the icons, yes that is something that can be easily changed out at a later date. Certainly not anything high-priority at this point in the game.
November 13th, 2008, 09:26 PM
The game uses a percentage system (try to roll under the %), but skills can be over 100% with other factors adding/removing to that skill (though a roll of exactly 100 is always a failure no mater how good you are). However, they would never exceed 3 digits. Adjust space as you think it would work best. I assume that can also be adjusted easily if we need to.
What can I do to help you? What do I need to describe next?
November 13th, 2008, 11:51 PM
Ok, that will let me trim off 4 spaces from the left of the Base column (since the column title "Base" is 4 characters long, and the number will never be larger than 3 characters long, I can use 4 for the maximum character length of this column instead of 8). This helped a little with the distance between the names and the numbers:
So, do you think I should I leave the SubSkills maximum name length at 30 characters long, or is this still too much space?