[DebianGIS-dev] r1885 - packages/josm/trunk/debian/patches

gmascellani-guest at alioth.debian.org gmascellani-guest at alioth.debian.org
Sun Feb 15 17:48:25 UTC 2009


Author: gmascellani-guest
Date: 2009-02-15 17:48:25 +0000 (Sun, 15 Feb 2009)
New Revision: 1885

Modified:
   packages/josm/trunk/debian/patches/20_bts.dpatch
   packages/josm/trunk/debian/patches/40_elemstyles.dpatch
Log:
Hope this is the last...


Modified: packages/josm/trunk/debian/patches/20_bts.dpatch
===================================================================
--- packages/josm/trunk/debian/patches/20_bts.dpatch	2009-02-15 17:34:34 UTC (rev 1884)
+++ packages/josm/trunk/debian/patches/20_bts.dpatch	2009-02-15 17:48:25 UTC (rev 1885)
@@ -5,90 +5,393 @@
 ## DP: Pattern match debian version in about dialog.
 
 @DPATCH@
-diff -urNad josm-0.0.svn1137~/src/org/openstreetmap/josm/actions/AboutAction.java josm-0.0.svn1137/src/org/openstreetmap/josm/actions/AboutAction.java
---- josm-0.0.svn1137~/src/org/openstreetmap/josm/actions/AboutAction.java	2008-12-25 12:19:43.000000000 +0100
-+++ josm-0.0.svn1137/src/org/openstreetmap/josm/actions/AboutAction.java	2008-12-25 12:20:52.000000000 +0100
-@@ -12,6 +12,7 @@
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
-+import java.net.MalformedURLException;
- import java.net.URL;
- import java.util.Map.Entry;
- import java.util.regex.Matcher;
-@@ -46,19 +47,31 @@
+diff -urNad trunk~/src/org/openstreetmap/josm/actions/AboutAction.java trunk/src/org/openstreetmap/josm/actions/AboutAction.java
+--- trunk~/src/org/openstreetmap/josm/actions/AboutAction.java	2009-01-23 22:22:10.000000000 +0100
++++ trunk/src/org/openstreetmap/josm/actions/AboutAction.java	2009-02-15 18:45:19.000000000 +0100
+@@ -47,6 +47,7 @@
  public class AboutAction extends JosmAction {
  
- 	public static final String version;
+     private static final String version;
 +	public static final String debianRelease;
  
- 	private final static JTextArea revision;
- 	private static String time;
+     private final static JTextArea revision;
+     private static String time;
+@@ -67,6 +68,10 @@
+         Matcher match = versionPattern.matcher(revision.getText());
+         version = match.matches() ? match.group(1) : tr("UNKNOWN");
  
- 	static {
- 		URL u = Main.class.getResource("/REVISION");
--		if(u == null) u = Main.class.getResource("/META-INF/MANIFEST.MF");
++		Pattern debianReleasePattern = Pattern.compile(".*?(?:Debian-Release): ([^\n]*).*", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
++		match = debianReleasePattern.matcher(revision.getText());
++		debianRelease = match.matches() ? match.group(1) : tr("UNKNOWN");
++
+         Pattern timePattern = Pattern.compile(".*?(?:Last Changed Date|Main-Date): ([^\n]*).*", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
+         match = timePattern.matcher(revision.getText());
+         time = match.matches() ? match.group(1) : tr("UNKNOWN");
+@@ -124,6 +129,8 @@
+         info.add(GBC.glue(0,10), GBC.eol());
+         info.add(new JLabel(tr("Version {0}",version)), GBC.eol().fill(GBC.HORIZONTAL).insets(10,0,0,0));
+         info.add(GBC.glue(0,5), GBC.eol());
++        info.add(new JLabel(tr("Debian release: {0}",debianRelease)), GBC.eol().fill(GBC.HORIZONTAL).insets(10,0,0,0));
++        info.add(GBC.glue(0,5), GBC.eol());
+         info.add(new JLabel(tr("Last change at {0}",time)), GBC.eol().fill(GBC.HORIZONTAL).insets(10,0,0,0));
+         info.add(GBC.glue(0,5), GBC.eol());
+         info.add(new JLabel(tr("Java Version {0}",System.getProperty("java.version"))), GBC.eol().fill(GBC.HORIZONTAL).insets(10,0,0,0));
+@@ -131,7 +138,7 @@
+         info.add(new JLabel(tr("Homepage")), GBC.std().insets(10,0,10,0));
+         info.add(new UrlLabel("http://josm.openstreetmap.de"), GBC.eol().fill(GBC.HORIZONTAL));
+         info.add(new JLabel(tr("Bug Reports")), GBC.std().insets(10,0,10,0));
+-        info.add(new UrlLabel("http://josm.openstreetmap.de/newticket"), GBC.eol().fill(GBC.HORIZONTAL));
++		info.add(new UrlLabel("http://bugs.debian.org"), GBC.eol().fill(GBC.HORIZONTAL));
+         info.add(new JLabel(tr("News about JOSM")), GBC.std().insets(10,0,10,0));
+         info.add(new UrlLabel("http://www.opengeodata.org/?cat=17"), GBC.eol().fill(GBC.HORIZONTAL));
+ 
+diff -urNad trunk~/src/org/openstreetmap/josm/actions/AboutAction.java~ trunk/src/org/openstreetmap/josm/actions/AboutAction.java~
+--- trunk~/src/org/openstreetmap/josm/actions/AboutAction.java~	1970-01-01 01:00:00.000000000 +0100
++++ trunk/src/org/openstreetmap/josm/actions/AboutAction.java~	2009-02-15 18:42:48.000000000 +0100
+@@ -0,0 +1,210 @@
++//License: GPL. Copyright 2007 by Immanuel Scholz and others
++package org.openstreetmap.josm.actions;
++
++import static org.openstreetmap.josm.tools.I18n.tr;
++
++import java.awt.Dimension;
++import java.awt.Font;
++import java.awt.GridBagLayout;
++import java.awt.event.ActionEvent;
++import java.awt.event.KeyEvent;
++import java.io.BufferedReader;
++import java.io.IOException;
++import java.io.InputStream;
++import java.io.InputStreamReader;
++import java.net.MalformedURLException;
++import java.net.URL;
++import java.util.regex.Matcher;
++import java.util.regex.Pattern;
++
++import javax.swing.BorderFactory;
++import javax.swing.JLabel;
++import javax.swing.JOptionPane;
++import javax.swing.JPanel;
++import javax.swing.JScrollPane;
++import javax.swing.JTabbedPane;
++import javax.swing.JTextArea;
++
++import org.openstreetmap.josm.Main;
++import org.openstreetmap.josm.plugins.PluginHandler;
++import org.openstreetmap.josm.tools.GBC;
++import org.openstreetmap.josm.tools.ImageProvider;
++import org.openstreetmap.josm.tools.UrlLabel;
++import org.openstreetmap.josm.tools.Shortcut;
++
++/**
++ * Nice about screen. I guess every application need one these days.. *sigh*
++ *
++ * The REVISION resource is read and if present, it shows the revision
++ * information of the jar-file.
++ *
++ * @author imi
++ */
++/**
++ * @author Stephan
++ *
++ */
++public class AboutAction extends JosmAction {
++
++    private static final String version;
++	public static final String debianRelease;
++
++    private final static JTextArea revision;
++    private static String time;
++
++    static {
++        URL u = Main.class.getResource("/REVISION");
 +        if(u == null) {
 +            try {
-+                u = new URL("jar:" + Main.class.getProtectionDomain().getCodeSource().getLocation().toString() 
++                u = new URL("jar:" + Main.class.getProtectionDomain().getCodeSource().getLocation().toString()
 +                        + "!/META-INF/MANIFEST.MF");
 +            } catch (MalformedURLException e) {
 +                e.printStackTrace();
 +            }
 +        }
- 		revision = loadFile(u);
- 
--		Pattern versionPattern = Pattern.compile(".*?(?:Revision|Main-Version): ([0-9]*).*", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
-+		Pattern versionPattern = Pattern.compile(".*?(?:Revision|Main-Version): ([0-9]*(?: SVN)?).*", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
- 		Matcher match = versionPattern.matcher(revision.getText());
- 		version = match.matches() ? match.group(1) : tr("UNKNOWN");
- 
++        revision = loadFile(u);
++
++        Pattern versionPattern = Pattern.compile(".*?(?:Revision|Main-Version): ([0-9]*(?: SVN)?).*", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
++        Matcher match = versionPattern.matcher(revision.getText());
++        version = match.matches() ? match.group(1) : tr("UNKNOWN");
++
 +		Pattern debianReleasePattern = Pattern.compile(".*?(?:Debian-Release): ([^\n]*).*", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
 +		match = debianReleasePattern.matcher(revision.getText());
 +		debianRelease = match.matches() ? match.group(1) : tr("UNKNOWN");
 +
- 		Pattern timePattern = Pattern.compile(".*?(?:Last Changed Date|Main-Date): ([^\n]*).*", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
- 		match = timePattern.matcher(revision.getText());
- 		time = match.matches() ? match.group(1) : tr("UNKNOWN");
-@@ -80,13 +93,14 @@
++        Pattern timePattern = Pattern.compile(".*?(?:Last Changed Date|Main-Date): ([^\n]*).*", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
++        match = timePattern.matcher(revision.getText());
++        time = match.matches() ? match.group(1) : tr("UNKNOWN");
++    }
++
++    /**
++     * Return string describing version.
++     * Note that the strinc contains the version number plus an optional suffix of " SVN" to indicate an unofficial development build.
++     * @return version string
++     */
++    static public String getVersionString() {
++        return version;
++    }
++
++    static public String getTextBlock() {
++        return revision.getText();
++    }
++
++    /**
++     * Return the number part of the version string.
++     * @return integer part of version number or Integer.MAX_VALUE if not available
++     */
++    public static int getVersionNumber() {
++        int myVersion=Integer.MAX_VALUE;
++        try {
++            myVersion = Integer.parseInt(version.split(" ")[0]);
++        } catch (NumberFormatException e) {
++            e.printStackTrace();
++        }
++        return myVersion;
++    }
++
++    /**
++     * check whether the version is a development build out of SVN.
++     * @return true if it is a SVN unofficial build
++     */
++    public static boolean isDevelopmentVersion() {
++        return version.endsWith(" SVN") || version.equals(tr("UNKNOWN"));
++    }
++
++    public AboutAction() {
++        super(tr("About"), "about", tr("Display the about screen."), Shortcut.registerShortcut("system:about", tr("About"), KeyEvent.VK_F1, Shortcut.GROUP_DIRECT, Shortcut.SHIFT_DEFAULT), true);
++    }
++
++    public void actionPerformed(ActionEvent e) {
++        JTabbedPane about = new JTabbedPane();
++
++        JTextArea readme = loadFile(Main.class.getResource("/README"));
++        JTextArea contribution = loadFile(Main.class.getResource("/CONTRIBUTION"));
++
++        JPanel info = new JPanel(new GridBagLayout());
++        JLabel caption = new JLabel("JOSM - " + tr("Java OpenStreetMap Editor"));
++        caption.setFont(new Font("Helvetica", Font.BOLD, 20));
++        info.add(caption, GBC.eol().fill(GBC.HORIZONTAL).insets(10,0,0,0));
++        info.add(GBC.glue(0,10), GBC.eol());
++        info.add(new JLabel(tr("Version {0}",version)), GBC.eol().fill(GBC.HORIZONTAL).insets(10,0,0,0));
++        info.add(GBC.glue(0,5), GBC.eol());
++        info.add(new JLabel(tr("Last change at {0}",time)), GBC.eol().fill(GBC.HORIZONTAL).insets(10,0,0,0));
++        info.add(GBC.glue(0,5), GBC.eol());
++        info.add(new JLabel(tr("Java Version {0}",System.getProperty("java.version"))), GBC.eol().fill(GBC.HORIZONTAL).insets(10,0,0,0));
++        info.add(GBC.glue(0,10), GBC.eol());
++        info.add(new JLabel(tr("Homepage")), GBC.std().insets(10,0,10,0));
++        info.add(new UrlLabel("http://josm.openstreetmap.de"), GBC.eol().fill(GBC.HORIZONTAL));
++        info.add(new JLabel(tr("Bug Reports")), GBC.std().insets(10,0,10,0));
++        info.add(new UrlLabel("http://josm.openstreetmap.de/newticket"), GBC.eol().fill(GBC.HORIZONTAL));
++        info.add(new JLabel(tr("News about JOSM")), GBC.std().insets(10,0,10,0));
++        info.add(new UrlLabel("http://www.opengeodata.org/?cat=17"), GBC.eol().fill(GBC.HORIZONTAL));
++
++        about.addTab(tr("Info"), info);
++        about.addTab(tr("Readme"), createScrollPane(readme));
++        about.addTab(tr("Revision"), createScrollPane(revision));
++        about.addTab(tr("Contribution"), createScrollPane(contribution));
++        about.addTab(tr("Plugins"), new JScrollPane(PluginHandler.getInfoPanel()));
++
++        about.setPreferredSize(new Dimension(500,300));
++
++        JOptionPane.showMessageDialog(Main.parent, about, tr("About JOSM..."),
++        JOptionPane.INFORMATION_MESSAGE, ImageProvider.get("logo"));
++    }
++
++    private JScrollPane createScrollPane(JTextArea area) {
++        area.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
++        area.setOpaque(false);
++        JScrollPane sp = new JScrollPane(area);
++        sp.setBorder(null);
++        sp.setOpaque(false);
++        return sp;
++    }
++
++    /**
++     * Retrieve the latest JOSM version from the JOSM homepage.
++     * @return An string with the latest version or "UNKNOWN" in case
++     *      of problems (e.g. no internet connection).
++     */
++    public static String checkLatestVersion() {
++        String latest;
++        try {
++            InputStream s = new URL("http://josm.openstreetmap.de/current").openStream();
++            latest = new BufferedReader(new InputStreamReader(s)).readLine();
++            s.close();
++        } catch (IOException x) {
++            x.printStackTrace();
++            return tr("UNKNOWN");
++        }
++        return latest;
++    }
++
++    /**
++     * Load the specified resource into an TextArea and return it.
++     * @param resource The resource url to load
++     * @return  An read-only text area with the content of "resource"
++     */
++    private static JTextArea loadFile(URL resource) {
++        JTextArea area = new JTextArea(tr("File could not be found."));
++        area.setEditable(false);
++        Font font = Font.getFont("monospaced");
++        if (font != null)
++            area.setFont(font);
++        if (resource == null)
++            return area;
++        BufferedReader in;
++        try {
++            in = new BufferedReader(new InputStreamReader(resource.openStream()));
++            StringBuilder sb = new StringBuilder();
++            for (String line = in.readLine(); line != null; line = in.readLine()) {
++                sb.append(line);
++                sb.append('\n');
++            }
++            area.setText(sb.toString());
++            area.setCaretPosition(0);
++        } catch (IOException e) {
++            e.printStackTrace();
++        }
++        return area;
++    }
++}
+diff -urNad trunk~/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java trunk/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java
+--- trunk~/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java	2009-01-23 22:22:10.000000000 +0100
++++ trunk/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java	2009-02-15 18:39:14.000000000 +0100
+@@ -58,8 +58,8 @@
  
- 		JPanel info = new JPanel(new GridBagLayout());
- 		info.add(new JLabel(tr("Java OpenStreetMap Editor Version {0}",version)), GBC.eol().fill(GBC.HORIZONTAL));
-+		info.add(new JLabel(tr("Debian release: {0}",debianRelease)), GBC.eol().fill(GBC.HORIZONTAL));
- 		info.add(new JLabel(tr("last change at {0}",time)), GBC.eol().fill(GBC.HORIZONTAL));
- 		info.add(new JLabel(tr("Java Version {0}",System.getProperty("java.version"))), GBC.eol().fill(GBC.HORIZONTAL));
- 		info.add(GBC.glue(0,10), GBC.eol());
- 		info.add(new JLabel(tr("Homepage")), GBC.std().insets(0,0,10,0));
- 		info.add(new UrlLabel("http://josm.openstreetmap.de"), GBC.eol().fill(GBC.HORIZONTAL));
- 		info.add(new JLabel(tr("Bug Reports")), GBC.std().insets(0,0,10,0));
--		info.add(new UrlLabel("http://josm.openstreetmap.de/newticket"), GBC.eol().fill(GBC.HORIZONTAL));
-+		info.add(new UrlLabel("http://bugs.debian.org"), GBC.eol().fill(GBC.HORIZONTAL));
- 		info.add(new JLabel(tr("News about JOSM")), GBC.std().insets(0,0,10,0));
- 		info.add(new UrlLabel("http://www.opengeodata.org/?cat=17"), GBC.eol().fill(GBC.HORIZONTAL));
+             Object[] options = new String[]{tr("Do nothing"), tr("Report Bug")};
+             int answer = JOptionPane.showOptionDialog(Main.parent, tr("An unexpected exception occurred.\n\n" +
+-            "This is always a coding error. If you are running the latest\n" +
+-            "version of JOSM, please consider being kind and file a bug report."),
++                    "Please consider being kind and file a bug report.\n" +
++                    "See http://bugs.debian.org for a guide how to do this."),
+             tr("Unexpected Exception"), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE,
+             null, options, options[0]);
+             if (answer == 1) {
+@@ -73,10 +73,10 @@
+                     text += "\n" + stack.getBuffer().toString();
  
-diff -urNad josm-0.0.svn1137~/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java josm-0.0.svn1137/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java
---- josm-0.0.svn1137~/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java	2008-12-25 12:19:43.000000000 +0100
-+++ josm-0.0.svn1137/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java	2008-12-25 12:20:36.000000000 +0100
-@@ -91,8 +91,8 @@
- 
- 			Object[] options = new String[]{tr("Do nothing"), tr("Report Bug")};
- 			int answer = JOptionPane.showOptionDialog(Main.parent, tr("An unexpected exception occurred.\n\n" +
--			"This is always a coding error. If you are running the latest\n" +
--			"version of JOSM, please consider being kind and file a bug report."),
+                     JPanel p = new JPanel(new GridBagLayout());
+-                    p.add(new JLabel("<html>" + tr("Please report a ticket at {0}","http://josm.openstreetmap.de/newticket") +
+-                    "<br>" + tr("Include your steps to get to the error (as detailed as possible)!") +
++					p.add(new JLabel("<html>" + tr("Please report a bug against josm.") +
++					"<br>" + tr("Include your steps to get to the error (as detailed as possible)!") +
+                     "<br>" + tr("Try updating to the newest version of JOSM and all plugins before reporting a bug.") +
+-                    "<br>" + tr("Be sure to include the following information:") + "</html>"), GBC.eol());
++					"<br>" + tr("Be sure to include the following information:") + "</html>"), GBC.eol());
+                     try {
+                         Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(text), new ClipboardOwner(){
+                             public void lostOwnership(Clipboard clipboard, Transferable contents) {}
+diff -urNad trunk~/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java~ trunk/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java~
+--- trunk~/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java~	1970-01-01 01:00:00.000000000 +0100
++++ trunk/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java~	2009-02-15 18:38:59.000000000 +0100
+@@ -0,0 +1,104 @@
++// License: GPL. Copyright 2007 by Immanuel Scholz and others
++package org.openstreetmap.josm.tools;
++
++import static org.openstreetmap.josm.tools.I18n.tr;
++
++import java.awt.GridBagLayout;
++import java.awt.Toolkit;
++import java.awt.datatransfer.Clipboard;
++import java.awt.datatransfer.ClipboardOwner;
++import java.awt.datatransfer.StringSelection;
++import java.awt.datatransfer.Transferable;
++import java.io.BufferedReader;
++import java.io.File;
++import java.io.InputStreamReader;
++import java.io.PrintWriter;
++import java.io.StringWriter;
++import java.net.URL;
++import java.text.DateFormat;
++import java.text.SimpleDateFormat;
++import java.util.Arrays;
++import java.util.Date;
++import java.util.LinkedList;
++
++import javax.swing.JLabel;
++import javax.swing.JOptionPane;
++import javax.swing.JPanel;
++import javax.swing.JScrollPane;
++import javax.swing.JTextArea;
++
++import org.openstreetmap.josm.Main;
++import org.openstreetmap.josm.actions.AboutAction;
++import org.openstreetmap.josm.plugins.PluginHandler;
++
++/**
++ * An exception handler that asks the user to send a bug report.
++ *
++ * @author imi
++ */
++public final class BugReportExceptionHandler implements Thread.UncaughtExceptionHandler {
++
++    public void uncaughtException(Thread t, Throwable e) {
++        handleException(e);
++    }
++    public static void handleException(Throwable e) {
++        e.printStackTrace();
++        if (Main.parent != null) {
++            if (e instanceof OutOfMemoryError) {
++                // do not translate the string, as translation may raise an exception
++                JOptionPane.showMessageDialog(Main.parent, "JOSM is out of memory. " +
++                        "Strange things may happen.\nPlease restart JOSM with the -Xmx###M option,\n" +
++                        "where ### is the the number of MB assigned to JOSM (e.g. 256).\n" +
++                        "Currently, " + Runtime.getRuntime().maxMemory()/1024/1024 + " MB are available to JOSM.");
++                return;
++            }
++
++            if(PluginHandler.checkException(e))
++                return;
++
++            Object[] options = new String[]{tr("Do nothing"), tr("Report Bug")};
++            int answer = JOptionPane.showOptionDialog(Main.parent, tr("An unexpected exception occurred.\n\n" +
 +                    "Please consider being kind and file a bug report.\n" +
 +                    "See http://bugs.debian.org for a guide how to do this."),
- 			tr("Unexpected Exception"), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE,
- 			null, options, options[0]);
- 			if (answer == 1) {
-@@ -124,9 +124,9 @@
- 					sb.append("\n"+stack.getBuffer().toString());
- 
- 					JPanel p = new JPanel(new GridBagLayout());
--					p.add(new JLabel(tr("<html>Please report a ticket at {0}<br>" +
-+					p.add(new JLabel(tr("<html>Please report a bug against josm.<br>" +
- 					"Include your steps to get to the error (as detailed as possible)!<br>" +
--					"Be sure to include the following information:</html>", "http://josm.openstreetmap.de/newticket")), GBC.eol());
-+					"Be sure to include the following information:</html>")), GBC.eol());
- 					try {
- 						Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(sb.toString()), new ClipboardOwner(){
- 							public void lostOwnership(Clipboard clipboard, Transferable contents) {}
++            tr("Unexpected Exception"), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE,
++            null, options, options[0]);
++            if (answer == 1) {
++                try {
++                    StringWriter stack = new StringWriter();
++                    e.printStackTrace(new PrintWriter(stack));
++
++                    String text = AboutAction.getTextBlock();
++                    text += "Java version: " + System.getProperty("java.version")+"\n";
++                    text += PluginHandler.getBugReportText();
++                    text += "\n" + stack.getBuffer().toString();
++
++                    JPanel p = new JPanel(new GridBagLayout());
++                    p.add(new JLabel("<html>" + tr("Please report a ticket at {0}","http://josm.openstreetmap.de/newticket") +
++                    "<br>" + tr("Include your steps to get to the error (as detailed as possible)!") +
++                    "<br>" + tr("Try updating to the newest version of JOSM and all plugins before reporting a bug.") +
++                    "<br>" + tr("Be sure to include the following information:") + "</html>"), GBC.eol());
++					p.add(new JLabel("<html>" + tr("Please report a bug against josm.") +
++					"<br>" + tr("Include your steps to get to the error (as detailed as possible)!") +
++                    "<br>" + tr("Try updating to the newest version of JOSM and all plugins before reporting a bug.") +
++					"<br>" + tr("Be sure to include the following information:") + "</html>"), GBC.eol());
++                    try {
++                        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(text), new ClipboardOwner(){
++                            public void lostOwnership(Clipboard clipboard, Transferable contents) {}
++                        });
++                        p.add(new JLabel(tr("(The text has already been copied to your clipboard.)")), GBC.eop());
++                    }
++                    catch (RuntimeException x) {}
++
++                    JTextArea info = new JTextArea(text, 20, 60);
++                    info.setCaretPosition(0);
++                    info.setEditable(false);
++                    p.add(new JScrollPane(info), GBC.eop());
++
++                    JOptionPane.showMessageDialog(Main.parent, p);
++                } catch (Exception e1) {
++                    e1.printStackTrace();
++                }
++            }
++        }
++    }
++}

Modified: packages/josm/trunk/debian/patches/40_elemstyles.dpatch
===================================================================
--- packages/josm/trunk/debian/patches/40_elemstyles.dpatch	2009-02-15 17:34:34 UTC (rev 1884)
+++ packages/josm/trunk/debian/patches/40_elemstyles.dpatch	2009-02-15 17:48:25 UTC (rev 1885)
@@ -6,19 +6,111 @@
 ## DP: Point josm to the correct directory so that the icons are found.
 
 @DPATCH@
-diff -urNad josm-0.0.svn1137~/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java josm-0.0.svn1137/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
---- josm-0.0.svn1137~/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	2008-12-23 14:32:23.000000000 +0100
-+++ josm-0.0.svn1137/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	2008-12-23 14:33:09.000000000 +0100
-@@ -49,7 +49,11 @@
+diff -urNad trunk~/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
+--- trunk~/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	2009-01-11 12:00:48.000000000 +0100
++++ trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	2009-02-15 18:47:34.000000000 +0100
+@@ -51,7 +51,11 @@
+         String[] a = null;
  
- 	public static void readFromPreferences() {
- 		/* don't prefix icon path, as it should be generic */
--		String internalicon = "resource://images/styles/standard/;resource://images/styles/";
-+		//String internalicon = "resource://images/styles/standard/;resource://images/styles/";
+         /* don't prefix icon path, as it should be generic */
+-        String internalicon = "resource://images/styles/standard/;resource://images/styles/";
++        //String internalicon = "resource://images/styles/standard/;resource://images/styles/";
 +		String internalicon = "/usr/share/icons/openstreetmap/classic.small;";
 +		internalicon += "/usr/share/icons/openstreetmap/square.small;";
 +		internalicon += "/usr/share/icons/openstreetmap/classic.big;";
 +		internalicon += "/usr/share/icons/openstreetmap/square.big";
- 		String internalfile = "standard=resource://styles/standard/elemstyles.xml";
+         String internalfile = "resource://styles/standard/elemstyles.xml";
  
- 		iconDirs = Main.pref.get("mappaint.iconpaths");
+         iconDirs = Main.pref.get("mappaint.icon.sources");
+diff -urNad trunk~/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java~ trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java~
+--- trunk~/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java~	1970-01-01 01:00:00.000000000 +0100
++++ trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java~	2009-02-15 18:46:08.000000000 +0100
+@@ -0,0 +1,88 @@
++package org.openstreetmap.josm.gui.mappaint;
++
++import java.util.LinkedList;
++import java.util.List;
++
++import javax.swing.ImageIcon;
++
++import org.openstreetmap.josm.Main;
++import org.openstreetmap.josm.gui.mappaint.ElemStyles;
++import org.openstreetmap.josm.io.MirroredInputStream;
++import org.openstreetmap.josm.tools.ImageProvider;
++import org.xml.sax.InputSource;
++import org.xml.sax.XMLReader;
++import org.xml.sax.helpers.XMLReaderFactory;
++
++public class MapPaintStyles {
++
++    private static ElemStyles styles = new ElemStyles();
++    private static String iconDirs;
++
++    public static ElemStyles getStyles()
++    {
++        return styles;
++    }
++
++    public static ImageIcon getIcon(String name, String styleName)
++    {
++        List<String> dirs = new LinkedList<String>();
++        for(String fileset : iconDirs.split(";"))
++        {
++            String[] a;
++            if(fileset.indexOf("=") >= 0)
++                a = fileset.split("=", 2);
++            else
++                a = new String[] {"", fileset};
++
++            /* non-prefixed path is generic path, always take it */
++            if(a[0].length() == 0 || styleName.equals(a[0]))
++                dirs.add(a[1]);
++        }
++        ImageIcon i = ImageProvider.getIfAvailable(dirs, "mappaint."+styleName, null, name);
++        if(i == null)
++        {
++            System.out.println("Mappaint-Style \""+styleName+"\" icon \"" + name + "\" not found.");
++            i = ImageProvider.getIfAvailable(dirs, "mappaint."+styleName, null, "misc/no_icon.png");
++        }
++        return i;
++    }
++
++    public static void readFromPreferences() {
++        String[] a = null;
++
++        /* don't prefix icon path, as it should be generic */
++        String internalicon = "resource://images/styles/standard/;resource://images/styles/";
++        String internalfile = "resource://styles/standard/elemstyles.xml";
++
++        iconDirs = Main.pref.get("mappaint.icon.sources");
++        if(Main.pref.getBoolean("mappaint.icon.enable-defaults", true))
++            iconDirs = iconDirs == null || iconDirs.length() == 0 ? internalicon : iconDirs + ";" + internalicon;
++
++        String file = Main.pref.get("mappaint.style.sources");
++        if(Main.pref.getBoolean("mappaint.style.enable-defaults", true))
++            file = (file == null || file.length() == 0) ? internalfile : internalfile + ";" + file;
++
++        for(String fileset : file.split(";"))
++        {
++            try
++            {
++                if(fileset.indexOf("=") >= 0)
++                    a = fileset.split("=", 2);
++                else
++                    a = new String[] {null, fileset};
++                XMLReader xmlReader = XMLReaderFactory.createXMLReader();
++                ElemStyleHandler handler = new ElemStyleHandler(a[0]);
++                xmlReader.setContentHandler(handler);
++                xmlReader.setErrorHandler(handler);
++                xmlReader.parse(new InputSource(new MirroredInputStream(a[1])));
++            }
++            catch (Exception e)
++            {
++                System.out.println("Mappaint-Style \"" + a[0] + "\" file \"" + a[1] + "\"");
++                System.out.println("Mappaint-Style problems: " + e);
++            }
++        }
++        iconDirs = null;
++    }
++
++}




More information about the Pkg-grass-devel mailing list