Check-ins for 3.2

All the below were checked in to pgeerkens-3.2 from revision 7831:

#7836: AutoExecGKC implementation automatically runs a GKC on game-start-up
#7837: Send-To-Named-Location extension to SendToLocation allows a piece to be sent to a named map/board location, instead of just to x,y coords. Modified wiki-page included
#7838: Adjustable-speed scroll pane fix - if GameModule not available yet, use default speed instead of throwing exception.
#7839: documentation for AutoExecGKC
#7841: make ColorConfigurer more flexible by enabling read of string like 0xFFFFFFFF (as a-r-g-b). (Not needed by anything else.)
#7842:Everything else I have been working on, unfortunately all wrapped up together:
[list]Hex-grid numbering for oblique & irregular grids
Hex-grid shearer enables 2-fixed-point shear of grid to match scanner twist
Attribute & AbstractAttributeLIstConfigurable to simpify UI coding
Calculate hex-grid catch-buckets, for center-and-edges and for center-and-vertices, as internal hex-grids, so using the same affine-transformation calculations as the parent grid.
[/list:u]

Thus spake pgeerkens:

All the below were checked in to pgeerkens-3.2 from revision 7831:

#7838: Adjustable-speed scroll pane fix - if GameModule not available
yet, use default speed instead of throwing exception.

This one is already in 3.1@7811 and trunk@7814. I think that’s the
only one I’ll clear off this evening. More tomorrow.


J.

Thus spake pgeerkens:

#7841: make ColorConfigurer more flexible by enabling read of string
like 0xFFFFFFFF (as a-r-g-b). (Not needed by anything else.)

Merged to trunk@7847.


J.

Thus spake pgeerkens:

#7837: Send-To-Named-Location extension to SendToLocation allows a
piece to be sent to a named map/board location, instead of just to x,y
coords. Modified wiki-page included

Merged to trunk@7891.

The table in SendToLocation.htm which contains the images is not right,
btw. I don’t see any images at all when I bring up the page. That should
be fixed.


J.

Hmm! I cannot reproduce this problem, and the relative URLs to find the images look to be propely constructed. Can you describe how you are accessing the page, as I must be doing something different.

Just so you know what I have done:

  1. the wiki page on the web works fine for me;
  2. when I go to the build environment and double-click SendToLocation.htm the page comes up properly;
  3. the tags in the HTML source are correctly specified as relative urls to the image sub-directory of where-ever the page is; and
  4. the images are checked-in to the trunk.

Without more details on how you generated a page with no images, I am out of ideas on what to look for.

Thus spake pgeerkens:

Hmm! I cannot reproduce this problem, and the relative URLs to find the
images look to be propely constructed. Can you describe how you are
accessing the page, as I must be doing something different.

It’s not an issue with the paths being bad, it’s that the HTML isn’t
valid. Run the page through validator.w3.org/check and you’ll see
what I mean.


J.

I have tidied up the HTML to eliminate all warnings reported by Eclipse, and improve the block indentation (svn 7893 in pgeerkens-3.2). However your HTML Validator still reports the same error - I believe it is buggy and cannot handle nested tables. Eclipse is happy with the HTML; it displays fine; all necessary tags are closed to the satisfaction of both Eclipseand my eyeball. If you still believe there is a problem I will need mor einformation again.

Thus spake pgeerkens:

I have tidied up the HTML to eliminate all warnings reported by Eclipse,
and improve the block indentation (svn 7893 in pgeerkens-3.2). However
your HTML Validator still reports the same error - I believe it is buggy
and cannot handle nested tables.

No, I’m sure the W3C’s validator works. Your last edit changed the
nesting, which made the HTML valid.

The problem was that the images had extension “.PNG”, while the URLs
in the HTML gave them as “.png”. I’ve fixed this in the trunk. You must
be working on a system with a case-insensitive filesystem in order not
to have had the same problem I did.


J.

Yes, I am on Windows. :slight_smile: It has been so long since I worked on Unix I never even thought to look at case of file extensions. Thank you for tracking that down; I will be more mindful in future.

However, there might be a caching issue on W3C’s validator. Try as I might, I could not get the original error to disappear, until just now when I tried again. I will also make better use of Eclipse’s HTML editor in future; I think I just used Notepad the first time around.

Thus spake pgeerkens:

However, there might be a caching issue on W3C’s validator. Try as I
might, I could not get the original error to disappear, until just now
when I tried again. I will also make better use of Eclipse’s HTML editor
in future; I think I just used Notepad the first time around.

It could be your ISP; I didn’t get that problem myself.

The HTML in the ref guide is in a bad state, both in terms of being
valid HTML and aesthetically. I think for V4 we’ll want to keep whatever
HTML docs we create valid at every check-in so that this doesn’t happen
again. (I would not be surprised if a lot of the existing HTML docs were
never valid at any point.)


J.

Sounds fine to me; I am a firm believer in writing code with no warnings…

The build [VASSAL-3.2.0-svn7890-windows.exe] is setting off my malware detection software.

Any comment?

Flaney

Thus spake Flaney:

The build [VASSAL-3.2.0-svn7890-windows.exe] is setting off my malware
detection software.

Any comment?

Your malware detection software is wrong. What is it that you’re using?


J.

I am using Malwarebytes’ Anti-Malware portable apps. I also got a yahoo download message indicating the file had a virus (I uploaded to yahoo mail so that I could download at work during lunch: vassalengine.org block by employer).

flaney

Thus spake Flaney:

I am using Malwarebytes’ Anti-Malware portable apps. I also got a yahoo
download message indicating the file had a virus (I uploaded to yahoo
mail so that I could download at work during lunch: vassalengine.org
block by employer).

I don’t know what to tell you other than that they’re mistaken.


J.

Thus spake pgeerkens:

#7836: __AutoExecGKC __implementation automatically runs a GKC on
game-start-up

I get an NPE when I try adding an AutoExecGKC with this changeset
applied to trunk@7898:

va.lang.NullPointerException: null
at VASSAL.counters.GlobalCommand.setKeyStroke(GlobalCommand.java:55) ~[classes/:na]
at VASSAL.build.module.map.MassKeyCommand.setAttribute(MassKeyCommand.java:464) ~[classes/:na]
at VASSAL.build.module.AutoExecGKC.setAttribute(AutoExecGKC.java:120) ~[classes/:na]
at VASSAL.configure.AutoConfigurer.propertyChange(AutoConfigurer.java:200) ~[classes/:na]
at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:298) ~[na:1.6.0_22]
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:291) ~[na:1.6.0_22]
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:229) ~[na:1.6.0_22]
at VASSAL.configure.Configurer.setValue(Configurer.java:104) ~[classes/:na]
at VASSAL.configure.HotKeyConfigurer.setValue(HotKeyConfigurer.java:49) ~[classes/:na]
at VASSAL.configure.HotKeyConfigurer.setValue(HotKeyConfigurer.java:65) ~[classes/:na]
at VASSAL.configure.AutoConfigurer.(AutoConfigurer.java:87) ~[classes/:na]
at VASSAL.build.AbstractConfigurable.getConfigurer(AbstractConfigurable.java:173) ~[classes/:na]
at VASSAL.configure.ConfigureTree$7.actionPerformed(ConfigureTree.java:535) ~[classes/:na]
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012) ~[na:1.6.0_22]
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335) ~[na:1.6.0_22]
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404) ~[na:1.6.0_22]
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) ~[na:1.6.0_22]
at javax.swing.AbstractButton.doClick(AbstractButton.java:374) ~[na:1.6.0_22]
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:829) ~[na:1.6.0_22]
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:873) ~[na:1.6.0_22]
at java.awt.Component.processMouseEvent(Component.java:6268) ~[na:1.6.0_22]
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) ~[na:1.6.0_22]
at java.awt.Component.processEvent(Component.java:6033) ~[na:1.6.0_22]
at java.awt.Container.processEvent(Container.java:2045) ~[na:1.6.0_22]
at java.awt.Component.dispatchEventImpl(Component.java:4629) ~[na:1.6.0_22]
at java.awt.Container.dispatchEventImpl(Container.java:2103) ~[na:1.6.0_22]
at java.awt.Component.dispatchEvent(Component.java:4455) ~[na:1.6.0_22]
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633) ~[na:1.6.0_22]
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297) ~[na:1.6.0_22]
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227) ~[na:1.6.0_22]
at java.awt.Container.dispatchEventImpl(Container.java:2089) ~[na:1.6.0_22]
at java.awt.Window.dispatchEventImpl(Window.java:2517) ~[na:1.6.0_22]
at java.awt.Component.dispatchEvent(Component.java:4455) ~[na:1.6.0_22]
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:649) ~[na:1.6.0_22]
at java.awt.EventQueue.access$000(EventQueue.java:96) ~[na:1.6.0_22]
at java.awt.EventQueue$1.run(EventQueue.java:608) ~[na:1.6.0_22]
at java.awt.EventQueue$1.run(EventQueue.java:606) ~[na:1.6.0_22]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.6.0_22]
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) ~[na:1.6.0_22]
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116) ~[na:1.6.0_22]
at java.awt.EventQueue$2.run(EventQueue.java:622) ~[na:1.6.0_22]
at java.awt.EventQueue$2.run(EventQueue.java:620) ~[na:1.6.0_22]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.6.0_22]
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) ~[na:1.6.0_22]
at java.awt.EventQueue.dispatchEvent(EventQueue.java:619) ~[na:1.6.0_22]
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) [na:1.6.0_22]
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) [na:1.6.0_22]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190) [na:1.6.0_22]
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185) [na:1.6.0_22]
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177) [na:1.6.0_22]
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138) [na:1.6.0_22]
23:20:46.885 [AWT-EventQueue-0] INFO VASSAL.build.GameModule - Exiting
23:20:47.266 [IPC receiver for 831667365] ERROR VASSAL.tools.ipc.IPCMessageReceiver -
java.io.EOFException: null
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2570) ~[na:1.6.0_22]
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1314) ~[na:1.6.0_22]
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368) ~[na:1.6.0_22]
at VASSAL.tools.ipc.IPCMessageReceiver.run(IPCMessageReceiver.java:34) ~[classes/:na]
at java.lang.Thread.run(Thread.java:679) [na:1.6.0_22]

#7839: documentation for AutoExecGKC

Lowercase the extension of the image you added. :slight_smile:

Also, I think a better name for this might be StartupGlobalKeyCommand.


J.

I’m looking at this now.

Once I fix the error, you can rename as you wish - but there are a half dozen module developers who are already using it under the current name.

Once it is merged they can remove the custom class and use it instead. A
custom class is not needed in a module once it becomes part of the core so
renaming it for core should not be an issue

-----Original Message-----
From: messages-bounces@vassalengine.org
[mailto:messages-bounces@vassalengine.org] On Behalf Of pgeerkens
Sent: Tuesday, October 11, 2011 5:38 PM
To: messages@vassalengine.org
Subject: [messages] [Developers] Re: Check-ins for 3.2

I’m looking at this now.

Once I fix the error, you can rename as you wish - but there are a half
dozen module developers who are already using it under the current name.


Read this topic online here:
https://forum.vassalengine.org/t/check-ins-for-3-2/4306/18

Is it legal for
getAttributeValueString()
to return null instead of “”?

That is what is causing the problem.