Okay, I 'grep'ed the sources carefully and could not find any other place were it may come to problems. I've tested the styling stuff quiet intensively now and I feel pretty sure about this patches. If no one disapproves I will commit them tomorrow.
- Sascha Larry Becker schrieb: > Works great and has no side effects that I have found. > > Larry > > On 6/5/07, Sascha L. Teichmann <[EMAIL PROTECTED]> wrote: >> The NPE comes from BasicStylePanel#findEquivalentItem() >> Therefore it would vote for make this one more bullet proof. >> >> See my new patch. I would leave BasicStyle#getFillPattern() >> untouched. >> >> >> Larry Becker schrieb: >>> It seem to work when I modify getFillPattern in BasicStyle to include >>> the check for null and then initialize the fillPattern as before. >>> >>> public Paint getFillPattern() { >>> if (fillPattern == null) { >>> fillPattern = WKTFillPattern.createDiagonalStripePattern(4, >>> 2, false, true); >>> } >>> return fillPattern; >>> } >>> >>> The only side effect is that initially in the Change Styles Rendering >>> Tab, the Fill pattern is 0 grey. However when you check the Fill >>> pattern check box, it turns solid black and works correctly so I don't >>> see this as an issue. >>> >>> regards, >>> Larry >>> >>> On 6/5/07, Larry Becker <[EMAIL PROTECTED]> wrote: >>>> Sascha, >>>> >>>> I implemented your changes in SkyJUMP to BasicStyle and >>>> BasicStylePanel. It worked when I opened a task with colour theming >>>> already set up, but when I tried to add a new layer and chose Change >>>> Styles, I got: >>>> >>>> java.lang.NullPointerException >>>> at >>>> com.vividsolutions.jump.workbench.ui.style.BasicStylePanel.findEquivalentItem(BasicStylePanel.java:483) >>>> at >>>> com.vividsolutions.jump.workbench.ui.style.BasicStylePanel.setBasicStyle(BasicStylePanel.java:459) >>>> at >>>> com.vividsolutions.jump.workbench.ui.style.RenderingStylePanel.<init>(RenderingStylePanel.java:189) >>>> at >>>> com.vividsolutions.jump.workbench.ui.style.ChangeStylesPlugIn.execute(ChangeStylesPlugIn.java:87) >>>> >>>> regards, >>>> Larry >>>> >>>> On 6/5/07, Paul Austin <[EMAIL PROTECTED]> wrote: >>>>> Sascha, >>>>> >>>>> In your comments you said you added an if statement but used the ?: >>>>> operator, I think in this case a proper if {} else {} statement would be >>>>> much more readable. I think that the ?: operator should be used >>>>> minimally, for example if you were generating HTML and wanted to >>>>> optionally include an attribute on a tag. >>>>> >>>>> + fill = fill == null >>>>> + ? fillPatternComboBox.getItemAt(0) >>>>> + : findEquivalentItem(fill, fillPatternComboBox); >>>>> >>>>> BTW does this improvement only improve speed if you have a themed layer >>>>> or will it speed up all layers? >>>>> >>>>> Paul >>>>> >>>>> ------------------------------------------------------------------------- >>>>> This SF.net email is sponsored by DB2 Express >>>>> Download DB2 Express C - the FREE version of DB2 express and take >>>>> control of your XML. No limits. Just data. Click to get it now. >>>>> http://sourceforge.net/powerbar/db2/ >>>>> _______________________________________________ >>>>> Jump-pilot-devel mailing list >>>>> Jump-pilot-devel@lists.sourceforge.net >>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >>>>> >>>> -- >>>> http://amusingprogrammer.blogspot.com/ >>>> >>> >> Index: src/com/vividsolutions/jump/workbench/ui/style/BasicStylePanel.java >> =================================================================== >> RCS file: >> /cvsroot/jump-pilot/openjump/src/com/vividsolutions/jump/workbench/ui/style/BasicStylePanel.java,v >> retrieving revision 1.4 >> diff -u -r1.4 BasicStylePanel.java >> --- src/com/vividsolutions/jump/workbench/ui/style/BasicStylePanel.java 13 >> May 2007 13:24:55 -0000 1.4 >> +++ src/com/vividsolutions/jump/workbench/ui/style/BasicStylePanel.java 5 >> Jun 2007 17:57:16 -0000 >> @@ -457,8 +457,12 @@ >> //Because fillPatternComboBox is not editable, we must use >> findEquivalentItem, >> //otherwise the combobox gets confused and a stack overflow occurs >> //if the two items are equal but not == . [Jon Aquino] >> - fillPatternComboBox.setSelectedItem(findEquivalentItem( >> - basicStyle.getFillPattern(), fillPatternComboBox)); >> + >> + Object fill = >> findEquivalentItem(basicStyle.getFillPattern(), fillPatternComboBox); >> + >> + if (fill != null) >> + >> fillPatternComboBox.setSelectedItem(fill); >> + >> updateControls(); >> } >> >> @@ -477,6 +481,16 @@ >> } >> >> private Object findEquivalentItem(Object item, JComboBox comboBox) { >> + >> + if (comboBox == null) >> + return null; >> + >> + if (item == null) { >> + return comboBox.getItemCount() > 0 >> + ? comboBox.getItemAt(0) >> + : null; >> + } >> + >> for (int i = 0; i < comboBox.getItemCount(); i++) { >> if (item.equals(comboBox.getItemAt(i))) { >> return comboBox.getItemAt(i); >> >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by DB2 Express >> Download DB2 Express C - the FREE version of DB2 express and take >> control of your XML. No limits. Just data. Click to get it now. >> http://sourceforge.net/powerbar/db2/ >> _______________________________________________ >> Jump-pilot-devel mailing list >> Jump-pilot-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >> >> > > ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel