[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