= Development Guidelines = == How your code should look like == * make sure the code is Java 1.6 compatible * make sure there is no trailing white space * don't use multiple consecutive empty lines * JOSM uses 4 characters indentation and no tab stops * Document your code '''thoroughly'''. Many people will thank you :) === Configuring Eclipse === [[Image(ss4.jpg)]] [[Image(ss1.png)]] [[Image(ss2.png)]] [[Image(ss3.png)]] == Internationalization == * make sure you use use {{{tr(...)}}} for all localized strings {{{ import import static org.openstreetmap.josm.tools.I18n.tr; // use tr(...) for exception messages // throw new Exception(tr("error message always in tr()")); // use tr(...) for labels, title, tooltip texts and the like // new JLabel(tr("Label always in tr()")); // etc. }}} * never assemble localized messages with {{{+}}}. Use format placeholders instead. '''DONT''' {{{new JLabel(tr("My Label " + labelId));}}} '''DO''' {{{new JLabel(tr("My Label {0}",labelId));}}} Only exception: {{{+}}} can be used to break long lines of non-variable texts. * When using apostrophe, the following rules apply: For all {{{tr}}} the apostrophe is special. (Like backslash in C)[[BR]] It needs to be escaped by another apostrophe: {{{new JButton(tr("Don''t press me more than {0} times!", n))}}}