change transliterate library and implement log swing
git-svn-id: https://osmand.googlecode.com/svn/trunk@116 e29c36b1-1cfa-d876-8d93-3434fc2bb7b8
This commit is contained in:
parent
409f31bfcc
commit
dab9f436cf
13 changed files with 148 additions and 53 deletions
|
@ -5,6 +5,6 @@
|
||||||
<classpathentry kind="lib" path="lib/bzip2-20090327.jar"/>
|
<classpathentry kind="lib" path="lib/bzip2-20090327.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/sqlitejdbc-v056.jar"/>
|
<classpathentry kind="lib" path="lib/sqlitejdbc-v056.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/commons-logging-1.1.1.jar"/>
|
<classpathentry kind="lib" path="lib/commons-logging-1.1.1.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/icu4j-4_4_1.jar" sourcepath="C:/Download/icu4j-4_4_1-src.jar"/>
|
<classpathentry kind="lib" path="lib/junidecode-0.1.jar"/>
|
||||||
<classpathentry kind="output" path="bin"/>
|
<classpathentry kind="output" path="bin"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
Binary file not shown.
BIN
DataExtractionOSM/lib/junidecode-0.1.jar
Normal file
BIN
DataExtractionOSM/lib/junidecode-0.1.jar
Normal file
Binary file not shown.
|
@ -1,8 +1,13 @@
|
||||||
.level = SEVERE
|
.level = SEVERE
|
||||||
handlers=java.util.logging.ConsoleHandler
|
handlers=java.util.logging.ConsoleHandler, java.util.logging.FileHandler
|
||||||
|
|
||||||
# Set the default logging level for the logger named com.mycompany
|
# Set the default logging level for the logger named com.mycompany
|
||||||
com.osmand.level = ALL
|
com.osmand.level = ALL
|
||||||
|
|
||||||
|
java.util.logging.FileHandler.pattern=%h/Application Data/Osmand/osmand.log
|
||||||
|
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
|
||||||
|
java.util.logging.FileHandler.append = false
|
||||||
|
java.util.logging.FileHandler.limit = 100000
|
||||||
|
|
||||||
java.util.logging.ConsoleHandler.level=ALL
|
java.util.logging.ConsoleHandler.level=ALL
|
||||||
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
|
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
|
|
@ -1,18 +1,43 @@
|
||||||
package com.osmand;
|
package com.osmand;
|
||||||
|
|
||||||
|
import javax.swing.JOptionPane;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
|
|
||||||
|
import com.osmand.swing.OsmExtractionUI;
|
||||||
|
|
||||||
public class ExceptionHandler {
|
public class ExceptionHandler {
|
||||||
private static final Log log = LogUtil.getLog(ExceptionHandler.class);
|
private static final Log log = LogUtil.getLog(ExceptionHandler.class);
|
||||||
|
|
||||||
public static void handle(Exception e){
|
public static void handle(Throwable e){
|
||||||
e.printStackTrace();
|
handle("Error occurred", e);
|
||||||
log.error("Error occurred", e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void handle(String msg, Exception e){
|
public static void handle(String msg, Throwable e){
|
||||||
e.printStackTrace();
|
if(e != null){
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
|
} else {
|
||||||
|
log.error(msg);
|
||||||
|
}
|
||||||
|
if(e != null){
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
if (OsmExtractionUI.MAIN_APP != null && OsmExtractionUI.MAIN_APP.getFrame() != null) {
|
||||||
|
String text;
|
||||||
|
String title;
|
||||||
|
if (e != null) {
|
||||||
|
text = e.getMessage();
|
||||||
|
title = msg;
|
||||||
|
} else {
|
||||||
|
title = "Error occured";
|
||||||
|
text = msg;
|
||||||
|
}
|
||||||
|
JOptionPane.showMessageDialog(OsmExtractionUI.MAIN_APP.getFrame(), text, title, JOptionPane.ERROR_MESSAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void handle(String msg){
|
||||||
|
handle(msg, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,10 +30,9 @@ public class ToDoConstants {
|
||||||
|
|
||||||
|
|
||||||
// FIXME Bugs Android :
|
// FIXME Bugs Android :
|
||||||
// Investigate good transliterate
|
|
||||||
// 6. Understand concept of application where to save/restore global setting.
|
// 6. Understand concept of application where to save/restore global setting.
|
||||||
// (for example reset navigate to point, reset link map with location). It should be reset after user call exit.
|
// (for example reset navigate to point, reset link map with location). It should be reset after user call exit.
|
||||||
// Call ResourceManager.close when it is needed.
|
// Call ResourceManager.close when it is needed (+).
|
||||||
// 10. Notification is gone after clear all notifications
|
// 10. Notification is gone after clear all notifications
|
||||||
|
|
||||||
// Performance improvements Android :
|
// Performance improvements Android :
|
||||||
|
@ -41,8 +40,6 @@ public class ToDoConstants {
|
||||||
|
|
||||||
|
|
||||||
// TODO SWING : in release 0.1
|
// TODO SWING : in release 0.1
|
||||||
// 5. Implement suppress warning for duplicate id (+)
|
|
||||||
// 2. Configure file log & see log from file (add uncaught exception handling) (+)
|
|
||||||
// 6. Implement renaming/deleting street/building/city (+)
|
// 6. Implement renaming/deleting street/building/city (+)
|
||||||
// 7. Implement saving bundle of tiles in different folder (+)
|
// 7. Implement saving bundle of tiles in different folder (+)
|
||||||
|
|
||||||
|
@ -70,4 +67,5 @@ public class ToDoConstants {
|
||||||
|
|
||||||
// DONE SWING
|
// DONE SWING
|
||||||
// 8. Implement basic transliteration version
|
// 8. Implement basic transliteration version
|
||||||
|
// 2. Configure file log & see log from file (add uncaught exception handling)
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,12 +14,13 @@ import java.util.ArrayList;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import net.sf.junidecode.Junidecode;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.apache.tools.bzip2.CBZip2InputStream;
|
import org.apache.tools.bzip2.CBZip2InputStream;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
import com.ibm.icu.text.Transliterator;
|
|
||||||
import com.osmand.Algoritms;
|
import com.osmand.Algoritms;
|
||||||
import com.osmand.IProgress;
|
import com.osmand.IProgress;
|
||||||
import com.osmand.data.Amenity;
|
import com.osmand.data.Amenity;
|
||||||
|
@ -249,6 +250,7 @@ public class DataExtraction {
|
||||||
progress.startTask("Loading file " + path, -1);
|
progress.startTask("Loading file " + path, -1);
|
||||||
}
|
}
|
||||||
OsmBaseStorage storage = new OsmBaseStorage();
|
OsmBaseStorage storage = new OsmBaseStorage();
|
||||||
|
storage.setSupressWarnings(DataExtractionSettings.getSettings().isSupressWarningsForDuplicatedId());
|
||||||
if (addFilter != null) {
|
if (addFilter != null) {
|
||||||
storage.getFilters().add(addFilter);
|
storage.getFilters().add(addFilter);
|
||||||
}
|
}
|
||||||
|
@ -306,31 +308,32 @@ public class DataExtraction {
|
||||||
// 7. Call data preparation to sort cities, calculate center location, assign id to objects
|
// 7. Call data preparation to sort cities, calculate center location, assign id to objects
|
||||||
country.doDataPreparation();
|
country.doDataPreparation();
|
||||||
// 8. Transliterate names to english
|
// 8. Transliterate names to english
|
||||||
Transliterator latin = Transliterator.getInstance("Any-Latin;NFD;[:Nonspacing Mark:] Remove;NFC");
|
|
||||||
if(latin != null){
|
convertEnglishName(country);
|
||||||
convertEnglishName(country, latin);
|
for (CityType c : CityType.values()) {
|
||||||
for(CityType c : CityType.values() ){
|
for (City city : country.getCitiesByType(c)) {
|
||||||
for(City city : country.getCitiesByType(c)){
|
convertEnglishName(city);
|
||||||
convertEnglishName(city, latin);
|
for (Street s : city.getStreets()) {
|
||||||
for(Street s : city.getStreets()){
|
convertEnglishName(s);
|
||||||
convertEnglishName(s, latin);
|
for (Building b : s.getBuildings()) {
|
||||||
for(Building b : s.getBuildings()){
|
convertEnglishName(b);
|
||||||
convertEnglishName(b, latin);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(Amenity a : country.getAmenityManager().getAllObjects()){
|
for (Amenity a : country.getAmenityManager().getAllObjects()) {
|
||||||
convertEnglishName(a, latin);
|
convertEnglishName(a);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return country;
|
return country;
|
||||||
}
|
}
|
||||||
|
// icu4j example - icu is not good in transliteration russian names
|
||||||
|
// Transliterator latin = Transliterator.getInstance("Any-Latin;NFD;[:Nonspacing Mark:] Remove;NFC");
|
||||||
|
|
||||||
private void convertEnglishName(MapObject o, Transliterator transliterator){
|
private void convertEnglishName(MapObject o){
|
||||||
String name = o.getName();
|
String name = o.getName();
|
||||||
if(name != null && o.getEnName() == null){
|
if(name != null && o.getEnName() == null){
|
||||||
o.setEnName(transliterator.transliterate(name));
|
o.setEnName(Junidecode.unidecode(name));
|
||||||
|
// o.setEnName(transliterator.transliterate(name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,6 +56,7 @@ public class OsmBaseStorage extends DefaultHandler {
|
||||||
protected InputStream inputStream;
|
protected InputStream inputStream;
|
||||||
protected InputStream streamForProgress;
|
protected InputStream streamForProgress;
|
||||||
protected List<IOsmStorageFilter> filters = new ArrayList<IOsmStorageFilter>();
|
protected List<IOsmStorageFilter> filters = new ArrayList<IOsmStorageFilter>();
|
||||||
|
protected boolean supressWarnings = true;
|
||||||
|
|
||||||
|
|
||||||
public synchronized void parseOSM(InputStream stream, IProgress progress, InputStream streamForProgress) throws IOException, SAXException {
|
public synchronized void parseOSM(InputStream stream, IProgress progress, InputStream streamForProgress) throws IOException, SAXException {
|
||||||
|
@ -89,6 +90,13 @@ public class OsmBaseStorage extends DefaultHandler {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isSupressWarnings() {
|
||||||
|
return supressWarnings;
|
||||||
|
}
|
||||||
|
public void setSupressWarnings(boolean supressWarnings) {
|
||||||
|
this.supressWarnings = supressWarnings;
|
||||||
|
}
|
||||||
|
|
||||||
protected SAXParser saxParser;
|
protected SAXParser saxParser;
|
||||||
public SAXParser initSaxParser(){
|
public SAXParser initSaxParser(){
|
||||||
if(saxParser != null){
|
if(saxParser != null){
|
||||||
|
@ -192,8 +200,8 @@ public class OsmBaseStorage extends DefaultHandler {
|
||||||
if(currentParsedEntity != null){
|
if(currentParsedEntity != null){
|
||||||
if(acceptEntityToLoad(currentParsedEntity)){
|
if(acceptEntityToLoad(currentParsedEntity)){
|
||||||
Entity oldEntity = entities.put(currentParsedEntity.getId(), currentParsedEntity);
|
Entity oldEntity = entities.put(currentParsedEntity.getId(), currentParsedEntity);
|
||||||
if(oldEntity!= null){
|
if(!supressWarnings && oldEntity!= null){
|
||||||
// throw new UnsupportedOperationException("Entity with id=" + oldEntity.getId() +" is duplicated in osm map");
|
throw new UnsupportedOperationException("Entity with id=" + oldEntity.getId() +" is duplicated in osm map");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// System.gc();
|
// System.gc();
|
||||||
|
|
|
@ -21,7 +21,6 @@ import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Enumeration;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Stack;
|
import java.util.Stack;
|
||||||
|
@ -30,7 +29,6 @@ import java.util.Map.Entry;
|
||||||
import javax.xml.stream.XMLStreamException;
|
import javax.xml.stream.XMLStreamException;
|
||||||
import javax.xml.stream.XMLStreamWriter;
|
import javax.xml.stream.XMLStreamWriter;
|
||||||
|
|
||||||
import com.ibm.icu.text.Transliterator;
|
|
||||||
import com.osmand.Algoritms;
|
import com.osmand.Algoritms;
|
||||||
import com.osmand.data.MapObject;
|
import com.osmand.data.MapObject;
|
||||||
import com.osmand.osm.Entity;
|
import com.osmand.osm.Entity;
|
||||||
|
@ -172,13 +170,17 @@ public class OsmStorageWriter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
/*public static void main(String[] args) {
|
||||||
|
|
||||||
Transliterator inst = Transliterator.getInstance("Any-Latin;NFD;[:Nonspacing Mark:] Remove;NFC");
|
// Transliterator inst = Transliterator.getInstance("Any-Latin;NFD;[:Nonspacing Mark:] Remove;NFKC");
|
||||||
|
Transliterator inst = Transliterator.getInstance("Any-Latin;");
|
||||||
Enumeration<String> e = Transliterator.getAvailableIDs();
|
Enumeration<String> e = Transliterator.getAvailableIDs();
|
||||||
while(e.hasMoreElements()){
|
while(e.hasMoreElements()){
|
||||||
System.out.println(e.nextElement());
|
System.out.println(e.nextElement());
|
||||||
}
|
}
|
||||||
System.out.println(inst.transliterate("Привет всемь жаваыфайу ы х й к ще цуккак у ваа"));
|
String str = "Привет Гомель жаль прощаться до скорой встречи когда ы ";
|
||||||
}
|
System.out.println(Junidecode.unidecode(str));
|
||||||
|
System.out.println(inst.transliterate(str));
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,6 +84,14 @@ public class DataExtractionSettings {
|
||||||
preferences.putBoolean("use_internet", b);
|
preferences.putBoolean("use_internet", b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isSupressWarningsForDuplicatedId(){
|
||||||
|
return preferences.getBoolean("supress_duplicated_id", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSupressWarningsForDuplicatedId(boolean b){
|
||||||
|
preferences.putBoolean("supress_duplicated_id", b);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
String[] SUFFIXES = new String[] {"av.", "avenue", "просп.", "пер.", "пр.","заул.", "проспект", "переул.", "бул.", "бульвар", "тракт"};
|
String[] SUFFIXES = new String[] {"av.", "avenue", "просп.", "пер.", "пр.","заул.", "проспект", "переул.", "бул.", "бульвар", "тракт"};
|
||||||
String[] DEFAUTL_SUFFIXES = new String[] {"str.", "street", "улица", "ул."};
|
String[] DEFAUTL_SUFFIXES = new String[] {"str.", "street", "улица", "ул."};
|
||||||
|
|
|
@ -32,6 +32,7 @@ public class OsmExtractionPreferencesDialog extends JDialog {
|
||||||
private JTextField streetDefaultSuffixes;
|
private JTextField streetDefaultSuffixes;
|
||||||
|
|
||||||
private JCheckBox useInternet;
|
private JCheckBox useInternet;
|
||||||
|
private JCheckBox supressWarning;
|
||||||
|
|
||||||
public OsmExtractionPreferencesDialog(Component parent){
|
public OsmExtractionPreferencesDialog(Component parent){
|
||||||
super(JOptionPane.getFrameForComponent(parent), true);
|
super(JOptionPane.getFrameForComponent(parent), true);
|
||||||
|
@ -41,7 +42,7 @@ public class OsmExtractionPreferencesDialog extends JDialog {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showDialog(){
|
public void showDialog(){
|
||||||
setSize(600, 220);
|
setSize(600, 250);
|
||||||
double x = getParent().getBounds().getCenterX();
|
double x = getParent().getBounds().getCenterX();
|
||||||
double y = getParent().getBounds().getCenterY();
|
double y = getParent().getBounds().getCenterY();
|
||||||
setLocation((int) x - getWidth() / 2, (int) y - getHeight() / 2);
|
setLocation((int) x - getWidth() / 2, (int) y - getHeight() / 2);
|
||||||
|
@ -74,7 +75,7 @@ public class OsmExtractionPreferencesDialog extends JDialog {
|
||||||
|
|
||||||
private void createGeneralSection(JPanel root) {
|
private void createGeneralSection(JPanel root) {
|
||||||
JPanel panel = new JPanel();
|
JPanel panel = new JPanel();
|
||||||
panel.setLayout(new GridLayout(1, 1, 5, 5));
|
panel.setLayout(new GridLayout(2, 1, 5, 5));
|
||||||
panel.setBorder(BorderFactory.createTitledBorder("General"));
|
panel.setBorder(BorderFactory.createTitledBorder("General"));
|
||||||
root.add(panel);
|
root.add(panel);
|
||||||
|
|
||||||
|
@ -82,6 +83,11 @@ public class OsmExtractionPreferencesDialog extends JDialog {
|
||||||
useInternet.setText("Use internet to download tiles");
|
useInternet.setText("Use internet to download tiles");
|
||||||
useInternet.setSelected(DataExtractionSettings.getSettings().useInternetToLoadImages());
|
useInternet.setSelected(DataExtractionSettings.getSettings().useInternetToLoadImages());
|
||||||
panel.add(useInternet);
|
panel.add(useInternet);
|
||||||
|
|
||||||
|
supressWarning = new JCheckBox();
|
||||||
|
supressWarning.setText("Supress warnings for duplicated id in osm file");
|
||||||
|
supressWarning.setSelected(DataExtractionSettings.getSettings().isSupressWarningsForDuplicatedId());
|
||||||
|
panel.add(supressWarning);
|
||||||
panel.setMaximumSize(new Dimension(Short.MAX_VALUE, panel.getPreferredSize().height));
|
panel.setMaximumSize(new Dimension(Short.MAX_VALUE, panel.getPreferredSize().height));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -164,6 +170,9 @@ public class OsmExtractionPreferencesDialog extends JDialog {
|
||||||
if(settings.useInternetToLoadImages() != useInternet.isSelected()){
|
if(settings.useInternetToLoadImages() != useInternet.isSelected()){
|
||||||
settings.setUseInterentToLoadImages(useInternet.isSelected());
|
settings.setUseInterentToLoadImages(useInternet.isSelected());
|
||||||
}
|
}
|
||||||
|
if(settings.isSupressWarningsForDuplicatedId() != supressWarning.isSelected()){
|
||||||
|
settings.setSupressWarningsForDuplicatedId (supressWarning.isSelected());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
import java.lang.Thread.UncaughtExceptionHandler;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -88,11 +89,24 @@ import com.osmand.swing.MapPanel.MapSelectionArea;
|
||||||
public class OsmExtractionUI implements IMapLocationListener {
|
public class OsmExtractionUI implements IMapLocationListener {
|
||||||
|
|
||||||
private static final Log log = LogFactory.getLog(OsmExtractionUI.class);
|
private static final Log log = LogFactory.getLog(OsmExtractionUI.class);
|
||||||
|
public static final String LOG_PATH = System.getProperty("user.home")+"/Application Data/Osmand/osmand.log";
|
||||||
|
public static OsmExtractionUI MAIN_APP;
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
OsmExtractionUI ui = new OsmExtractionUI(null);
|
// first of all config log
|
||||||
ui.frame.setBounds(DataExtractionSettings.getSettings().getWindowBounds());
|
new File(LOG_PATH).getParentFile().mkdirs();
|
||||||
ui.frame.setVisible(true);
|
final UncaughtExceptionHandler defaultHandler = Thread.getDefaultUncaughtExceptionHandler();
|
||||||
|
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler(){
|
||||||
|
@Override
|
||||||
|
public void uncaughtException(Thread t, Throwable e) {
|
||||||
|
log.error("Error in thread " + t.getName(), e);
|
||||||
|
defaultHandler.uncaughtException(t, e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
MAIN_APP = new OsmExtractionUI(null);
|
||||||
|
MAIN_APP.frame.setBounds(DataExtractionSettings.getSettings().getWindowBounds());
|
||||||
|
MAIN_APP.frame.setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected City selectedCity;
|
protected City selectedCity;
|
||||||
|
@ -116,7 +130,6 @@ public class OsmExtractionUI implements IMapLocationListener {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public OsmExtractionUI(final Region r){
|
public OsmExtractionUI(final Region r){
|
||||||
this.region = r;
|
this.region = r;
|
||||||
createUI();
|
createUI();
|
||||||
|
@ -478,8 +491,28 @@ public class OsmExtractionUI implements IMapLocationListener {
|
||||||
bar.add(menu);
|
bar.add(menu);
|
||||||
JMenuItem settings = new JMenuItem("Settings...");
|
JMenuItem settings = new JMenuItem("Settings...");
|
||||||
menu.add(settings);
|
menu.add(settings);
|
||||||
|
menu.addSeparator();
|
||||||
|
JMenuItem openLogFile = new JMenuItem("Open log file...");
|
||||||
|
menu.add(openLogFile);
|
||||||
|
|
||||||
|
|
||||||
|
openLogFile.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
File file = new File(OsmExtractionUI.LOG_PATH);
|
||||||
|
if (file != null && file.exists()) {
|
||||||
|
try {
|
||||||
|
Runtime.getRuntime().exec(new String[] { "notepad.exe", file.getAbsolutePath() }); //$NON-NLS-1$
|
||||||
|
} catch (IOException es) {
|
||||||
|
ExceptionHandler.handle("Failed to open log file ", es);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
ExceptionHandler.handle("Log file is not found");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
exitMenu.addActionListener(new ActionListener(){
|
exitMenu.addActionListener(new ActionListener(){
|
||||||
@Override
|
@Override
|
||||||
|
@ -616,6 +649,10 @@ public class OsmExtractionUI implements IMapLocationListener {
|
||||||
return fc;
|
return fc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public JFrame getFrame() {
|
||||||
|
return frame;
|
||||||
|
}
|
||||||
|
|
||||||
public void loadCountry(final File f, final IOsmStorageFilter filter){
|
public void loadCountry(final File f, final IOsmStorageFilter filter){
|
||||||
try {
|
try {
|
||||||
final ProgressDialog dlg = new ProgressDialog(frame, "Loading osm file");
|
final ProgressDialog dlg = new ProgressDialog(frame, "Loading osm file");
|
||||||
|
@ -655,7 +692,7 @@ public class OsmExtractionUI implements IMapLocationListener {
|
||||||
} catch (InterruptedException e1) {
|
} catch (InterruptedException e1) {
|
||||||
log.error("Interrupted", e1);
|
log.error("Interrupted", e1);
|
||||||
} catch (InvocationTargetException e1) {
|
} catch (InvocationTargetException e1) {
|
||||||
log.error("Exception during operation", e1.getCause());
|
ExceptionHandler.handle("Exception during operation", e1.getCause());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -689,7 +726,7 @@ public class OsmExtractionUI implements IMapLocationListener {
|
||||||
} catch (InterruptedException e1) {
|
} catch (InterruptedException e1) {
|
||||||
log.error("Interrupted", e1);
|
log.error("Interrupted", e1);
|
||||||
} catch (InvocationTargetException e1) {
|
} catch (InvocationTargetException e1) {
|
||||||
log.error("Exception during operation", e1.getCause());
|
ExceptionHandler.handle("Log file is not found", e1.getCause());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<classpath>
|
<classpath>
|
||||||
<classpathentry kind="src" path="src"/>
|
<classpathentry kind="src" path="src"/>
|
||||||
<classpathentry excluding="**/MapPanel*|com/osmand/LogUtil.java|com/osmand/osm/io/OSMStorageWriter.java|com/osmand/DataExtraction.java|com/osmand/swing/|com/osmand/data/preparation/DataExtraction.java|com/osmand/data/preparation/DataIndexBuilder.java|com/osmand/osm/io/OsmStorageWriter.java|test/" kind="src" path="use"/>
|
<classpathentry excluding="**/MapPanel*|com/osmand/LogUtil.java|com/osmand/osm/io/OSMStorageWriter.java|com/osmand/DataExtraction.java|com/osmand/swing/|com/osmand/data/preparation/DataExtraction.java|com/osmand/data/preparation/DataIndexBuilder.java|com/osmand/osm/io/OsmStorageWriter.java|test/|com/osmand/ExceptionHandler.java" kind="src" path="use"/>
|
||||||
<classpathentry kind="src" path="gen"/>
|
<classpathentry kind="src" path="gen"/>
|
||||||
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
||||||
<classpathentry kind="lib" path="lib/bzip2-20090327.jar"/>
|
<classpathentry kind="lib" path="lib/bzip2-20090327.jar"/>
|
||||||
|
|
Loading…
Reference in a new issue