Changeset 15201 in osm for applications/editors/josm


Ignore:
Timestamp:
2009-05-24T20:56:33+02:00 (15 years ago)
Author:
rcernoch
Message:

CzechAddress: Help menu, initial implementation of DB modifier

Location:
applications/editors/josm/plugins/czechaddress
Files:
5 added
9 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/czechaddress/build.xml

    r15166 r15201  
    9797                <pathelement path="${java.class.path}"/>
    9898            </classpath>
     99        <arg value="/home/radek/Desktop/Hustopeče.osm"/>
    99100        </java>
    100101    </target>
  • applications/editors/josm/plugins/czechaddress/nbproject/project.xml

    r15166 r15201  
    55        <general-data xmlns="http://www.netbeans.org/ns/freeform-project/1">
    66            <name>czechaddress</name>
    7             <folders>
    8                 <source-folder>
    9                     <label>src</label>
    10                     <type>java</type>
    11                     <location>src</location>
    12                 </source-folder>
    13             </folders>
    14             <ide-actions>
    15                 <action name="build">
    16                     <target>dist</target>
    17                 </action>
    18                 <action name="clean">
    19                     <target>clean</target>
    20                 </action>
    21                 <action name="javadoc">
    22                     <target>doc</target>
    23                 </action>
    24                 <action name="run">
    25                     <target>run</target>
    26                 </action>
    27                 <action name="rebuild">
    28                     <target>clean</target>
    29                     <target>dist</target>
    30                 </action>
    31             </ide-actions>
    32             <view>
    33                 <items>
    34                     <source-folder style="packages">
    35                         <label>src</label>
    36                         <location>src</location>
    37                     </source-folder>
    38                 </items>
    39                 <context-menu>
    40                     <ide-action name="build"/>
    41                     <ide-action name="clean"/>
    42                     <ide-action name="javadoc"/>
    43                     <ide-action name="run"/>
    44                     <ide-action name="rebuild"/>
    45                 </context-menu>
    46             </view>
    47             <subprojects/>
    487        </general-data>
    498        <general-data xmlns="http://www.netbeans.org/ns/freeform-project/2">
     
    6120                    <type>java</type>
    6221                    <location>src</location>
     22                    <encoding>UTF-8</encoding>
     23                </source-folder>
     24                <source-folder>
     25                    <label>tests</label>
     26                    <type>java</type>
     27                    <location>tests</location>
    6328                    <encoding>UTF-8</encoding>
    6429                </source-folder>
     
    8651                </action>
    8752            </ide-actions>
    88             <export>
    89                 <type>folder</type>
    90                 <location>dist</location>
    91                 <build-target>compile</build-target>
    92             </export>
    9353            <view>
    9454                <items>
     
    9656                        <label>src</label>
    9757                        <location>src</location>
     58                    </source-folder>
     59                    <source-folder style="packages">
     60                        <label>tests</label>
     61                        <location>tests</location>
    9862                    </source-folder>
    9963                    <source-file>
     
    11579            <compilation-unit>
    11680                <package-root>src</package-root>
    117                 <classpath mode="compile">../../core/build:../../core/src</classpath>
     81                <classpath mode="compile">../../core/build:../../core/src:tests/junit-4.5.jar</classpath>
    11882                <javadoc-built-to>doc</javadoc-built-to>
     83                <source-level>1.5</source-level>
     84            </compilation-unit>
     85            <compilation-unit>
     86                <package-root>tests</package-root>
     87                <unit-tests/>
    11988                <source-level>1.5</source-level>
    12089            </compilation-unit>
  • applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/CzechAddressPlugin.java

    r15166 r15201  
    2424import org.openstreetmap.josm.plugins.czechaddress.parser.MvcrParser;
    2525import org.openstreetmap.josm.plugins.czechaddress.actions.FactoryAction;
     26import org.openstreetmap.josm.plugins.czechaddress.actions.HelpAction;
     27import org.openstreetmap.josm.plugins.czechaddress.actions.ModifierAction;
    2628import org.openstreetmap.josm.plugins.czechaddress.actions.SplitAreaByEmptyWayAction;
    2729import org.openstreetmap.josm.plugins.czechaddress.gui.FactoryDialog;
     
    6870        final MvcrParser parser = new MvcrParser();
    6971        //parser.setFilter(null, null, null, "");
    70         //parser.setFilter("BRNO", "BRNO", null, null);
     72        parser.setFilter("HUSTOPEČE", "HUSTOPEČE", null, null);
    7173        parser.setTargetDatabase(mainDatabase);
    7274        parser.setStorageDir(pluginDir);
     
    112114
    113115        // Move houses from list of Houses to list of AddressElements.
    114         List<House> tmp1 = location.getAllHouses();
    115         ArrayList<AddressElement> tmp2 = new ArrayList<AddressElement>(tmp1.size());
    116         for (House h : tmp1) tmp2.add(h);
     116        List<House> houses   = location.getAllHouses();
     117        ArrayList<AddressElement> pool
     118                = new ArrayList<AddressElement>(houses.size());
     119        for (House house : houses) pool.add(house);
     120
     121
     122        /*Capitalizator cap = new Capitalizator(Main.ds.allPrimitives(),
     123                                              location.getStreets());
     124        for (Street s : cap.getClassifiedItems())
     125            System.out.println(s.toString() + " --> " + cap.translate(s).getName());*/
    117126
    118127        // And add them to the reasoner.
    119         mainReasoner = new Reasoner(tmp2);
     128        mainReasoner = new Reasoner(pool);
    120129        mainReasoner.addPrimitives(Main.ds.allPrimitives());
    121130    }
     
    186195            menuItems.add(MainMenu.add(czechMenu, new GroupManipulatorAction()));
    187196            menuItems.add(MainMenu.add(czechMenu, new ConflictResolveAction()));
     197            menuItems.add(MainMenu.add(czechMenu, new ModifierAction()));
     198            menuItems.add(MainMenu.add(czechMenu, new HelpAction()));
    188199            return;
    189200        }
  • applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/StringUtils.java

    r15166 r15201  
    11package org.openstreetmap.josm.plugins.czechaddress;
     2
     3import org.openstreetmap.josm.data.coor.LatLon;
    24
    35/**
     
    3032    }
    3133
     34    public static String coordinateToString(double coor) {
     35        double degrees = Math.floor(coor);
     36        double minutes = Math.floor( 60*(coor-degrees) );
     37        double seconds = 60*60*(coor-degrees-minutes/60);
     38
     39        return String.valueOf(Math.round(    degrees))     + "°" +
     40               String.valueOf(Math.round(    minutes))     + "'" +
     41               String.valueOf(Math.round(100*seconds)/100.0) + "\"";
     42    }
     43
     44    public static String latLonToString(LatLon position) {
     45        assert position != null;
     46        //if (position == null) return "";
     47
     48        return "(lat: " + coordinateToString(position.lat())
     49             + " lon: " + coordinateToString(position.lon()) + ")";
     50    }
     51
     52    /**
     53     * String matcher with abbreviations
     54     *
     55     * <p>Returns {@code true} even if s1="Nám. Svobody" and
     56     * s2="Náměstí Svobody".</p>
     57     */
     58    public boolean matchAbbrev(String s1, String s2) {
     59        String[] parts1 = s1.split(" +");
     60        String[] parts2 = s2.split(" +");
     61
     62        if (parts1.length != parts2.length)
     63            return false;
     64
     65        for (int i=0; i<parts1.length; i++) {
     66            String part1 = parts1[i];
     67            String part2 = parts2[i];
     68
     69            if (part1.charAt(part1.length()-1) == '.')
     70                part1 = part1.substring(0, part1.length()-1);
     71
     72            if (part2.charAt(part2.length()-1) == '.')
     73                part2 = part2.substring(0, part2.length()-1);
     74
     75            int minLen = Math.min(part1.length(), part2.length());
     76            part1 = part1.substring(0, minLen).toUpperCase();
     77            part2 = part2.substring(0, minLen).toUpperCase();
     78
     79            if (!part1.equals(part2))
     80                return false;
     81        }
     82        return true;
     83    }
     84
    3285}
  • applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/addressdatabase/AddressElement.java

    r15166 r15201  
    55import org.openstreetmap.josm.data.osm.OsmPrimitive;
    66import org.openstreetmap.josm.data.osm.Way;
     7import org.openstreetmap.josm.plugins.czechaddress.StringUtils;
    78import org.openstreetmap.josm.plugins.czechaddress.intelligence.Match;
    89import org.openstreetmap.josm.plugins.czechaddress.proposal.Proposal;
     
    275276       
    276277        return 0; // <-- just to make compilers happy. We cannot get here.
    277     }   
     278    }
     279
     280
     281
     282    public String getIsIn() {
     283        return getIsIn(null);
     284    }
     285
     286    protected String getIsInName() {
     287        return getName();
     288    }
     289
     290    private String getIsIn(String childString) {
     291
     292        String result = "";
     293
     294        if (getIsInName() != null  &&  !getIsInName().equals(childString)) {
     295            result += getIsInName() + ", ";
     296        }
     297
     298        if (parent != null)
     299            result += parent.getIsIn(getIsInName());
     300        else
     301            result += "CZ";
     302       
     303        return result;
     304    }
    278305}
  • applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/addressdatabase/House.java

    r15166 r15201  
    171171                                pr.parentStreet.getName()));
    172172       
    173         if (pr.parentViToCi != null) {
     173/*        if (pr.parentViToCi != null) {
    174174            String targetIsIn = "";
    175175
     
    188188                                prim.get(KEY_ADDR_CITY),
    189189                                pr.parentViToCi.getName()));
    190 
     190*/
     191       
     192       
     193        if (parent.parent != null) // For sure our parent is a ElemWithStreets
    191194            props.add(getStringFieldDiff(KEY_IS_IN,
    192195                                prim.get(KEY_IS_IN),
    193                                 targetIsIn));
    194         }
     196                                parent.parent.getIsIn()));
     197/*        }*/
    195198
    196199        // If we have added any proposal so far, add the source info as well.
  • applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/addressdatabase/Region.java

    r15166 r15201  
    9595        return thisString;
    9696    }
     97
     98    @Override
     99    protected String getIsInName() {
     100
     101        if (nuts3name != null)
     102            return nuts3name + " kraj";
     103
     104        if (nuts4name != null)
     105            return nuts3name + " okres";
     106
     107        return null;
     108    }
    97109}
  • applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/addressdatabase/Street.java

    r15166 r15201  
    11package org.openstreetmap.josm.plugins.czechaddress.addressdatabase;
     2
     3import org.openstreetmap.josm.data.osm.OsmPrimitive;
    24
    35/**
     
    2426    }
    2527
    26 
    27 
    28     /*int[] getFieldMatchList(OsmPrimitive primitive) {
     28    @Override
     29    protected int[] getFieldMatchList(OsmPrimitive primitive) {
    2930        int[] result = {0};
    3031       
     
    3334       
    3435        result[0] = matchField(name, primitive.get("name"));
    35        
     36
     37        if (primitive.get("name") != null) {
     38            String[] parts1 = primitive.get("name").split("\\.* +");
     39            String[] parts2 =                  name.split("\\.* +");
     40            for (String p : parts1)
     41                System.out.println("X: " + p);
     42            for (String p : parts2)
     43                System.out.println("Y: " + p);
     44        }
     45
    3646        return result;
    37     }*/
     47    }
    3848}
  • applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/addressdatabase/StringUtils.java

    r15166 r15201  
    1414public class StringUtils {
    1515
    16     public static String coordinateToString(double coor) {
    17         double degrees = Math.floor(coor);
    18         double minutes = Math.floor( 60*(coor-degrees) );
    19         double seconds = 60*60*(coor-degrees-minutes/60);
    20        
    21         return String.valueOf(Math.round(    degrees))     + "°" +
    22                String.valueOf(Math.round(    minutes))     + "'" +
    23                String.valueOf(Math.round(100*seconds)/100.0) + "\"";
    24     }
    25 
    26     public static String latLonToString(LatLon position) {
    27         if (position == null) return "";
    28 
    29         return "(lat: " + coordinateToString(position.lat())
    30              + " lon: " + coordinateToString(position.lon()) + ")";
    31     }
    3216
    3317}
Note: See TracChangeset for help on using the changeset viewer.