Changeset 32788 in osm for applications


Ignore:
Timestamp:
2016-08-09T01:40:50+02:00 (8 years ago)
Author:
donvip
Message:

checkstyle

Location:
applications/editors/josm/plugins/tracer2
Files:
2 added
18 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/tracer2/.project

    r32286 r32788  
    1616                        </arguments>
    1717                </buildCommand>
     18                <buildCommand>
     19                        <name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
     20                        <arguments>
     21                        </arguments>
     22                </buildCommand>
    1823        </buildSpec>
    1924        <natures>
    2025                <nature>org.eclipse.jdt.core.javanature</nature>
     26                <nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
    2127        </natures>
    2228</projectDescription>
  • applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/ConnectWays.java

    r32474 r32788  
    1 /**
    2  *  Tracer2 - plug-in for JOSM to capture contours
    3  * 
    4  *  This program is free software; you can redistribute it and/or modify
    5  *  it under the terms of the GNU General Public License as published by
    6  *  the Free Software Foundation; either version 2 of the License, or
    7  *  (at your option) any later version.
    8  * 
    9  *  This program is distributed in the hope that it will be useful,
    10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  *  GNU General Public License for more details.
    13  * 
    14  *  You should have received a copy of the GNU General Public License along
    15  *  with this program; if not, write to the Free Software Foundation, Inc.,
    16  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    17  */
    18 
     1// License: GPL. For details, see LICENSE file.
    192package org.openstreetmap.josm.plugins.tracer2;
    203
     
    3518import org.openstreetmap.josm.command.SequenceCommand;
    3619import org.openstreetmap.josm.data.coor.LatLon;
     20import org.openstreetmap.josm.data.osm.BBox;
    3721import org.openstreetmap.josm.data.osm.Node;
     22import org.openstreetmap.josm.data.osm.OsmPrimitive;
    3823import org.openstreetmap.josm.data.osm.Way;
    39 import org.openstreetmap.josm.data.osm.BBox;
    40 import org.openstreetmap.josm.data.osm.OsmPrimitive;
    4124import org.openstreetmap.josm.plugins.tracer2.preferences.ServerParam;
    4225import org.openstreetmap.josm.tools.Pair;
    4326
    44 public class ConnectWays {
    45     static double s_dMinDistance                = 0.000006;             // Minimal distance, for objects
    46     static double s_dMinDistanceN2N             = 0.0000005;    // Minimal distance, when nodes are merged
    47     static double s_dMinDistanceN2oW    = 0.000001;             // Minimal distance, when node is connected to other way
    48     static double s_dMinDistanceN2tW    = 0.000001;             // Minimal distance, when other node is connected this way
    49     final static double MAX_ANGLE       = 30;                           // Minimal angle, when other node is connected this way
    50    
     27public final class ConnectWays {
     28
     29    private ConnectWays() {
     30        // Hide default constructor for utilities classes
     31    }
     32
     33    // CHECKSTYLE.OFF: SingleSpaceSeparator
     34    static double s_dMinDistance     = 0.000006;  // Minimal distance, for objects
     35    static double s_dMinDistanceN2N  = 0.0000005; // Minimal distance, when nodes are merged
     36    static double s_dMinDistanceN2oW = 0.000001;  // Minimal distance, when node is connected to other way
     37    static double s_dMinDistanceN2tW = 0.000001;  // Minimal distance, when other node is connected this way
     38    static final double MAX_ANGLE    = 30;        // Minimal angle, when other node is connected this way
     39    // CHECKSTYLE.ON: SingleSpaceSeparator
     40
    5141    static Way s_oWay;
    5242    static Way s_oWayOld;
    5343    static List<Way> s_oWays;
    5444    static List<Node> s_oNodes;
    55    
     45
    5646    static ServerParam s_oParam;
    5747    static boolean s_bCtrl;
    5848    static boolean s_bAlt;
    59    
     49
    6050    static boolean s_bAddNewWay;
    61    
    62     private static void calcDistance()
    63     {
    64         double dTileSize = Double.parseDouble(s_oParam.getTileSize());
    65         double dResolution = Double.parseDouble(s_oParam.getResolution());
    66         double dMin = dTileSize / dResolution;
    67        
    68         s_dMinDistance = dMin * 30;
    69         s_dMinDistanceN2N = dMin * 2.5;
    70         s_dMinDistanceN2oW = dMin * 5;
    71         s_dMinDistanceN2tW = dMin * 5;
    72     }
    73    
     51
     52    private static void calcDistance() {
     53        double dTileSize = Double.parseDouble(s_oParam.getTileSize());
     54        double dResolution = Double.parseDouble(s_oParam.getResolution());
     55        double dMin = dTileSize / dResolution;
     56
     57        s_dMinDistance = dMin * 30;
     58        s_dMinDistanceN2N = dMin * 2.5;
     59        s_dMinDistanceN2oW = dMin * 5;
     60        s_dMinDistanceN2tW = dMin * 5;
     61    }
     62
    7463    private static void getWays(Way way) {
    75         BBox bbox = new BBox(way);
    76         bbox.addPrimitive(way,s_dMinDistance);
     64        BBox bbox = new BBox(way);
     65        bbox.addPrimitive(way, s_dMinDistance);
    7766        s_oWays = Main.getLayerManager().getEditDataSet().searchWays(bbox);
    7867    }
    79    
     68
    8069    private static List<Way> getWaysOfNode(Node node) {
    81         List<Way> ways;
    82         ways = OsmPrimitive.getFilteredList(node.getReferrers(), Way.class);
    83         return ways;
    84     }
    85    
     70        List<Way> ways;
     71        ways = OsmPrimitive.getFilteredList(node.getReferrers(), Way.class);
     72        return ways;
     73    }
     74
    8675    private static void getNodes(Way way) {
    87         BBox bbox = new BBox(way);
    88         bbox.addPrimitive(way,s_dMinDistance);
    89         s_oNodes = Main.getLayerManager().getEditDataSet().searchNodes(bbox);
    90     }
    91    
     76        BBox bbox = new BBox(way);
     77        bbox.addPrimitive(way, s_dMinDistance);
     78        s_oNodes = Main.getLayerManager().getEditDataSet().searchNodes(bbox);
     79    }
     80
    9281    private static double calcAlpha(LatLon oP1, Node n) {
    93         LatLon oP2 = n.getCoor();
    94        
    95         double dAlpha = Math.atan((oP2.getY() - oP1.getY()) / (oP2.getX() - oP1.getX())) * 180 / Math.PI + (oP1.getX() > oP2.getX() ? 180 : 0);
    96         return checkAlpha(dAlpha);
    97     }
    98    
     82        LatLon oP2 = n.getCoor();
     83
     84        double dAlpha = Math.atan((oP2.getY() - oP1.getY()) / (oP2.getX() - oP1.getX())) * 180 / Math.PI + (oP1.getX() > oP2.getX() ? 180 : 0);
     85        return checkAlpha(dAlpha);
     86    }
     87
    9988    private static Double checkAlpha(Double dAlpha) {
    10089        if (dAlpha > 180) {
     
    10695        return dAlpha;
    10796    }
    108    
     97
    10998    private static boolean isNodeInsideWay(LatLon pos, Way way) {
    110         List<Node> listNode = way.getNodes();
    111        
    112         double dAlpha;
    113         double dAlphaOld = calcAlpha(pos, listNode.get(listNode.size()-1));
    114         double dSumAlpha = 0;
    115        
    116         for (Node n : listNode) {
    117                 dAlpha = calcAlpha(pos, n);
    118                 dSumAlpha += checkAlpha( dAlpha - dAlphaOld );
    119                 dAlphaOld = dAlpha;
    120         }
    121         dSumAlpha = Math.abs(dSumAlpha);
    122        
    123         return dSumAlpha > 359 && dSumAlpha < 361;
    124     }
    125    
     99        List<Node> listNode = way.getNodes();
     100
     101        double dAlpha;
     102        double dAlphaOld = calcAlpha(pos, listNode.get(listNode.size()-1));
     103        double dSumAlpha = 0;
     104
     105        for (Node n : listNode) {
     106            dAlpha = calcAlpha(pos, n);
     107            dSumAlpha += checkAlpha(dAlpha - dAlphaOld);
     108            dAlphaOld = dAlpha;
     109        }
     110        dSumAlpha = Math.abs(dSumAlpha);
     111
     112        return dSumAlpha > 359 && dSumAlpha < 361;
     113    }
     114
    126115    private static Way getOldWay(LatLon pos) {
    127         int i;
    128        
    129         for (i = 0; i < s_oWays.size(); i++) {
    130                 Way way = s_oWays.get(i);
    131                 if (!isSameTag(way)) {
    132                         continue;
    133                 }
    134                 if (isNodeInsideWay(pos, way)) {
    135                         s_oWays.remove(way);
    136                         return way;
    137                 }
    138         }
    139         return null;
    140     }
    141    
     116        int i;
     117
     118        for (i = 0; i < s_oWays.size(); i++) {
     119            Way way = s_oWays.get(i);
     120            if (!isSameTag(way)) {
     121                continue;
     122            }
     123            if (isNodeInsideWay(pos, way)) {
     124                s_oWays.remove(way);
     125                return way;
     126            }
     127        }
     128        return null;
     129    }
     130
    142131    /**
    143132     * Try connect way to other buildings.
     
    148137        LinkedList<Command> cmds = new LinkedList<>();
    149138        LinkedList<Command> cmds2 = new LinkedList<>();
    150        
     139
    151140        s_oParam = param;
    152141        s_bCtrl = ctrl;
    153142        s_bAlt = alt;
    154        
     143
    155144        boolean bAddWay = false;
    156        
     145
    157146        calcDistance();
    158147        getNodes(newWay);
    159148        getWays(newWay);
    160        
     149
    161150        s_oWayOld = getOldWay(pos);
    162        
     151
    163152        if (s_oWayOld == null) {
    164                 s_bAddNewWay = true;
    165                 //cmds.add(new AddCommand(newWay));
    166                 bAddWay = true;
    167                 s_oWayOld = newWay;
    168                 s_oWay = new Way( newWay );
     153            s_bAddNewWay = true;
     154            //cmds.add(new AddCommand(newWay));
     155            bAddWay = true;
     156            s_oWayOld = newWay;
     157            s_oWay = new Way(newWay);
    169158        } else {
    170159            int i;
    171160            Way tempWay;
    172161            s_bAddNewWay = false;
    173            
     162
    174163            //Main.main.getCurrentDataSet().setSelected(m_wayOld);
    175            
     164
    176165            tempWay = new Way(s_oWayOld);
    177            
     166
    178167            for (i = 0; i < newWay.getNodesCount(); i++) {
    179                 tempWay.addNode(tempWay.getNodesCount(), newWay.getNode(i));
     168                tempWay.addNode(tempWay.getNodesCount(), newWay.getNode(i));
    180169            }
    181170            i++;
    182171            for (i = 0; i < s_oWayOld.getNodesCount() - 1; i++) {
    183                 tempWay.removeNode( s_oWayOld.getNode(i) );
     172                tempWay.removeNode(s_oWayOld.getNode(i));
    184173            }
    185174            //cmds.add(new ChangeCommand(m_wayOld, tempWay));
    186175            for (i = 0; i < s_oWayOld.getNodesCount() - 1; i++) {
    187                 Node n = s_oWayOld.getNode(i);
    188                 List<Way> ways = getWaysOfNode(n);
    189                 if (ways.size()<=1) {
    190                         cmds2.add(new DeleteCommand( s_oWayOld.getNode(i) ));
    191                 }
    192                 s_oNodes.remove(s_oWayOld.getNode(i));
     176                Node n = s_oWayOld.getNode(i);
     177                List<Way> ways = getWaysOfNode(n);
     178                if (ways.size() <= 1) {
     179                    cmds2.add(new DeleteCommand(s_oWayOld.getNode(i)));
     180                }
     181                s_oNodes.remove(s_oWayOld.getNode(i));
    193182            }
    194183            s_oWay = tempWay;
    195184        }
    196        
    197         {
    198                 cmds2.addAll(connectTo());
    199 
    200                 // add new Node
    201                 Node firstNode = null;
    202                 Way way = new Way(s_oWay);
    203                 for (Node node : s_oWay.getNodes()) {
    204                         if ( node.getDataSet() != null )
    205                         {
    206                                 way.removeNode(node);
    207                         }
    208                 }
    209                 if ( way.getNodes().size() > 0 )
    210             {
    211                 if (way.firstNode() != way.lastNode() )
    212                 {
    213                         way.addNode(way.firstNode());
    214                 }
    215                         for (Node node : way.getNodes())
    216                         {
    217                                 if (firstNode == null || firstNode != node) {
    218                                         cmds.add(new AddCommand(node));
    219                                 }
    220                                 if (firstNode == null) {
    221                                         firstNode = node;
    222                                 }
    223                         }
    224             }
    225                
    226                 // add new way
    227                 if ( bAddWay == true )
    228                 {
    229                         cmds.add(new AddCommand(s_oWay));
    230                 }
    231            
    232                 cmds.add(new ChangeCommand(s_oWayOld, trySplitWayByAnyNodes(s_oWay)));
    233         }
     185
     186        cmds2.addAll(connectTo());
     187
     188        // add new Node
     189        Node firstNode = null;
     190        Way way = new Way(s_oWay);
     191        for (Node node : s_oWay.getNodes()) {
     192            if (node.getDataSet() != null) {
     193                way.removeNode(node);
     194            }
     195        }
     196        if (way.getNodes().size() > 0) {
     197            if (way.firstNode() != way.lastNode()) {
     198                way.addNode(way.firstNode());
     199            }
     200            for (Node node : way.getNodes()) {
     201                if (firstNode == null || firstNode != node) {
     202                    cmds.add(new AddCommand(node));
     203                }
     204                if (firstNode == null) {
     205                    firstNode = node;
     206                }
     207            }
     208        }
     209
     210        // add new way
     211        if (bAddWay == true) {
     212            cmds.add(new AddCommand(s_oWay));
     213        }
     214
     215        cmds.add(new ChangeCommand(s_oWayOld, trySplitWayByAnyNodes(s_oWay)));
    234216        cmds.addAll(cmds2);
    235        
     217
    236218        TracerDebug oTracerDebug = new TracerDebug();
    237219        oTracerDebug.OutputCommands(cmds);
    238        
     220
    239221        Command cmd = new SequenceCommand(tr("Merge objects nodes"), cmds);
    240        
     222
    241223        return cmd;
    242224    }
    243    
    244    
     225
     226
    245227    /**
    246228     * Try connect way to other buildings.
     
    268250            Node nearestNode = null;
    269251            for (Node nn : s_oNodes) {
    270                 System.out.println("Node: " + nn);
     252                System.out.println("Node: " + nn);
    271253                if (!nn.isUsable() || way.containsNode(nn) || s_oWay.containsNode(nn) || !isInSameTag(nn)) {
    272254                    continue;
     
    278260                }
    279261            }
    280            
     262
    281263            System.out.println("Nearest: " + nearestNode + " distance: " + minDistanceSq);
    282264            if (nearestNode == null) {
     
    287269            }
    288270        }
    289        
     271
    290272        for (Map.Entry<Way, Way> e : modifiedWays.entrySet()) {
    291273            cmds.add(new ChangeCommand(e.getKey(), e.getValue()));
    292274        }
    293        
     275
    294276        //cmds.addFirst(new ChangeCommand(way, trySplitWayByAnyNodes(newWay)));
    295        
     277
    296278        List<Command> cmd = cmds;
    297279        return cmd;
     
    305287     * @return List of Commands.
    306288     */
    307     private static List<Command> mergeNodes(Node n1, Node n2){
     289    private static List<Command> mergeNodes(Node n1, Node n2) {
    308290        List<Command> cmds = new LinkedList<>();
    309291        cmds.add(new MoveCommand(n2,
    310                  (n1.getEastNorth().getX() - n2.getEastNorth().getX())/2,
    311                  (n1.getEastNorth().getY() - n2.getEastNorth().getY())/2
    312                  ));
    313        
     292                (n1.getEastNorth().getX() - n2.getEastNorth().getX())/2,
     293                (n1.getEastNorth().getY() - n2.getEastNorth().getY())/2
     294                ));
     295
    314296        Way newWay = new Way(s_oWay);
    315        
     297
    316298        int j = s_oWay.getNodes().indexOf(n1);
    317299        newWay.addNode(j, n2);
    318300        if (j == 0) {
    319301            // first + last point
    320                 newWay.addNode(newWay.getNodesCount(), n2);
    321         }
    322        
     302            newWay.addNode(newWay.getNodesCount(), n2);
     303        }
     304
    323305        newWay.removeNode(n1);
    324  //       cmds.add(new ChangeCommand(m_way, newWay));
    325        
    326         if (newWay.firstNode() != newWay.lastNode() )
    327         {
    328                 newWay.addNode(newWay.firstNode());
     306        //       cmds.add(new ChangeCommand(m_way, newWay));
     307
     308        if (newWay.firstNode() != newWay.lastNode()) {
     309            newWay.addNode(newWay.firstNode());
    329310        }
    330311        s_oWay = new Way(newWay);
    331        
     312
    332313        //cmds.add(new DeleteCommand(n1));
    333314        return cmds;
     
    341322     *
    342323     * @param node Node to connect.
    343      * @throws IllegalStateException
    344      * @throws IndexOutOfBoundsException
    345324     * @return List of Commands.
    346325     */
    347         private static void tryConnectNodeToAnyWay(Node node, Map<Way, Way> m)
     326    private static void tryConnectNodeToAnyWay(Node node, Map<Way, Way> m)
    348327            throws IllegalStateException, IndexOutOfBoundsException {
    349328
     
    364343        int nearestNodeIndex = 0;
    365344        for (Way ww : s_oWays) {
    366                 System.out.println("Way: " + ww);
     345            System.out.println("Way: " + ww);
    367346            if (!ww.isUsable() || ww.containsNode(node) || !isSameTag(ww)) {
    368347                continue;
     
    377356                double dist = distanceFromSegment2(ll, np.a.getCoor(), np.b.getCoor());
    378357                //System.out.println(" distance: " + dist1 + "  " + dist);
    379                
     358
    380359                if (dist < minDist) {
    381360                    minDist = dist;
     
    399378
    400379    private static double distanceFromSegment2(LatLon c, LatLon a, LatLon b) {
    401         double x;
    402         double y;
    403        
     380        double x;
     381        double y;
     382
    404383        StraightLine oStraightLine1 = new StraightLine(
    405                         new Point2D.Double(a.getX(),a.getY()),
    406                         new Point2D.Double(b.getX(),b.getY()));
     384                new Point2D.Double(a.getX(), a.getY()),
     385                new Point2D.Double(b.getX(), b.getY()));
    407386        StraightLine oStraightLine2 = new StraightLine(
    408                         new Point2D.Double(c.getX(),c.getY()),
    409                         new Point2D.Double(c.getX() + (a.getY()-b.getY()),c.getY() - (a.getX()-b.getX())));
     387                new Point2D.Double(c.getX(), c.getY()),
     388                new Point2D.Double(c.getX() + (a.getY()-b.getY()), c.getY() - (a.getX()-b.getX())));
    410389        Point2D.Double oPoint = oStraightLine1.GetIntersectionPoint(oStraightLine2);
    411        
    412         if ((oPoint.x > a.getX() && oPoint.x > b.getX()) || (oPoint.x < a.getX() && oPoint.x < b.getX()) || 
    413                         (oPoint.y > a.getY() && oPoint.y > b.getY()) || (oPoint.y < a.getY() && oPoint.y < b.getY())) {
    414                 return 100000;
    415         }
    416        
    417         x=c.getX()-oPoint.getX();
    418         y=c.getY()-oPoint.getY();
    419        
     390
     391        if ((oPoint.x > a.getX() && oPoint.x > b.getX()) || (oPoint.x < a.getX() && oPoint.x < b.getX()) ||
     392                (oPoint.y > a.getY() && oPoint.y > b.getY()) || (oPoint.y < a.getY() && oPoint.y < b.getY())) {
     393            return 100000;
     394        }
     395
     396        x = c.getX()-oPoint.getX();
     397        y = c.getY()-oPoint.getY();
     398
    420399        return Math.sqrt((x*x)+(y*y));
    421400    }
    422    
     401
    423402    /**
    424403     * Try split way by any existing building nodes.
     
    429408     *
    430409     * @param way Way to split.
    431      * @throws IndexOutOfBoundsException
    432      * @throws IllegalStateException
    433410     * @return Modified way
    434411     */
     
    444421            System.out.println(way.getNodes().get(i) + "-----" + way.getNodes().get((i + 1) % way.getNodesCount()));
    445422            double minDistanceSq = Double.MAX_VALUE;
    446 //            double maxAngle = MAX_ANGLE;
     423            //            double maxAngle = MAX_ANGLE;
    447424            //List<Node> nodes = Main.main.getCurrentDataSet().searchNodes(new BBox(
    448425            //    Math.min(n1.getX(), n2.getX()) - minDistanceSq,
     
    460437                //double dist = TracerGeometry.distanceFromSegment(nn, n1, n2);
    461438                double dist = distanceFromSegment2(nn, n1, n2);
    462 //                double angle = TracerGeometry.angleOfLines(n1, nn, nn, n2);
     439                //                double angle = TracerGeometry.angleOfLines(n1, nn, nn, n2);
    463440                //System.out.println("Angle: " + angle + " distance: " + dist + " Node: " + nod);
    464                 if (!n1.equalsEpsilon(nn) && !n2.equalsEpsilon(nn) && dist < minDistanceSq){ // && Math.abs(angle) < maxAngle) {
    465                         minDistanceSq = dist;
    466 //                      maxAngle = angle;
     441                if (!n1.equalsEpsilon(nn) && !n2.equalsEpsilon(nn) && dist < minDistanceSq) { // && Math.abs(angle) < maxAngle) {
     442                    minDistanceSq = dist;
     443                    //                    maxAngle = angle;
    467444                    nearestNode = nod;
    468445                }
     
    490467        for (OsmPrimitive op : n.getReferrers()) {
    491468            if (op instanceof Way) {
    492                 if (isSameTag((Way) op)) {
     469                if (isSameTag(op)) {
    493470                    return true;
    494471                }
     
    497474        return false;
    498475    }
    499    
     476
    500477    /**
    501478     * Determines if the specified primitive denotes a building.
     
    503480     * @return True if building key is set and different from no,entrance
    504481     */
    505     protected static final boolean isSameTag(OsmPrimitive p) {
     482    protected static boolean isSameTag(OsmPrimitive p) {
    506483        String v = p.get(s_oParam.getTag());
    507484        if (s_bCtrl || s_oParam.getTag().equals("")) {
    508                 return v == null || v.equals("no");
     485            return v == null || v.equals("no");
    509486        }
    510487        if (s_oParam.getTag().equals("building")) {
    511                 return v != null && !v.equals("no") && !v.equals("entrance");
     488            return v != null && !v.equals("no") && !v.equals("entrance");
    512489        }
    513490        return v != null && !v.equals("no");
  • applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/StraightLine.java

    r30047 r32788  
    1 /**
    2  *  Tracer2 - plug-in for JOSM to capture contours
    3  * 
    4  *  This program is free software; you can redistribute it and/or modify
    5  *  it under the terms of the GNU General Public License as published by
    6  *  the Free Software Foundation; either version 2 of the License, or
    7  *  (at your option) any later version.
    8  * 
    9  *  This program is distributed in the hope that it will be useful,
    10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  *  GNU General Public License for more details.
    13  * 
    14  *  You should have received a copy of the GNU General Public License along
    15  *  with this program; if not, write to the Free Software Foundation, Inc.,
    16  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    17  */
    18 
     1// License: GPL. For details, see LICENSE file.
    192package org.openstreetmap.josm.plugins.tracer2;
    203
     
    2912
    3013    public StraightLine(Double dm, Double dc, boolean bRevert) {
    31         this.m_dm = dm;
    32         this.m_dc = dc;
    33         this.m_dx = Double.NaN;
     14        this.m_dm = dm;
     15        this.m_dc = dc;
     16        this.m_dx = Double.NaN;
    3417        if (this.m_dm.isNaN()) {
    3518            this.m_dAlpha = Double.NaN;
     
    3720            this.m_dAlpha = CheckAlpha((Double.NEGATIVE_INFINITY == this.m_dm) ? -90.0 : 90.0);
    3821        } else {
    39             this.m_dAlpha = CheckAlpha(Math.atan(dm) * 180 / Math.PI + (bRevert ? 180 : 0) );
     22            this.m_dAlpha = CheckAlpha(Math.atan(dm) * 180 / Math.PI + (bRevert ? 180 : 0));
    4023        }
    4124    }
    42    
     25
    4326    public StraightLine(Point2D.Double oP1, Point2D.Double oP2) {
    4427        this.m_dm = (oP2.getY() - oP1.getY()) / (oP2.getX() - oP1.getX());
     
    5033        } else {
    5134            this.m_dx = Double.NaN;
    52             this.m_dAlpha = CheckAlpha(Math.atan((oP2.getY() - oP1.getY()) / (oP2.getX() - oP1.getX())) * 180 / Math.PI + (oP1.getX() > oP2.getX() ? 180 : 0));
     35            this.m_dAlpha = CheckAlpha(
     36                    Math.atan((oP2.getY() - oP1.getY()) / (oP2.getX() - oP1.getX())) * 180 / Math.PI + (oP1.getX() > oP2.getX() ? 180 : 0));
    5337        }
    5438    }
    55    
    56     static private Double CheckAlpha(Double dAlpha) {
     39
     40    private static Double CheckAlpha(Double dAlpha) {
    5741        if (dAlpha > 180) {
    5842            return dAlpha - 360;
     
    6347        return dAlpha;
    6448    }
    65    
     49
    6650    public Double getM() {
    6751        return m_dm;
    6852    }
     53
    6954    public Double getC() {
    7055        return m_dc;
    7156    }
     57
    7258    public Double getX() {
    7359        return m_dx;
    7460    }
     61
    7562    public Double getAlpha() {
    7663        return m_dAlpha;
    7764    }
     65
    7866    public boolean IsLine() {
    7967        return !(m_dx.isNaN() || m_dx.isInfinite() || m_dAlpha.isNaN() || m_dAlpha.isInfinite())
     
    8472        Double dx;
    8573        Double dy;
    86        
     74
    8775        if (!this.IsLine() || !oLine.IsLine()) {
    8876            // data missing
     
    10593            dy = this.m_dm * dx + this.m_dc;
    10694        }
    107        
     95
    10896        return new Point2D.Double(dx, dy);
    10997    }
  • applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/TagValues.java

    r32474 r32788  
    1 /**
    2  *  Tracer2 - plug-in for JOSM to capture contours
    3  * 
    4  *  This program is free software; you can redistribute it and/or modify
    5  *  it under the terms of the GNU General Public License as published by
    6  *  the Free Software Foundation; either version 2 of the License, or
    7  *  (at your option) any later version.
    8  * 
    9  *  This program is distributed in the hope that it will be useful,
    10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  *  GNU General Public License for more details.
    13  * 
    14  *  You should have received a copy of the GNU General Public License along
    15  *  with this program; if not, write to the Free Software Foundation, Inc.,
    16  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    17  */
    18 
     1// License: GPL. For details, see LICENSE file.
    192package org.openstreetmap.josm.plugins.tracer2;
    203
     
    2912    private String m_strTag = "";
    3013    private String m_strPreferredValues = "";
    31    
     14
    3215    private int m_nPos = 0;
    3316    private boolean m_bPreferred = false;
    3417    private String[] m_astrTagValues = null;
    3518    private String[] m_astrTagValuesPreferred = null;
    36    
     19
    3720    public TagValues() {
    38         clearAll();
     21        clearAll();
    3922    }
    40    
     23
    4124    public void readBuildingTags(ServerParam param) {
    42         if (param==null || param.getTag() == null || param.getTag().equals("")) {
    43                 clearAll();
    44                 return;
     25        if (param == null || param.getTag() == null || param.getTag().equals("")) {
     26            clearAll();
     27            return;
    4528        }
    4629        if (param.getTag().equals(m_strTag) && param.getPreferredValues().equals(m_strPreferredValues)) {
    47                 return;
     30            return;
    4831        }
    4932        clearAll();
    50        
     33
    5134        m_strTag = param.getTag();
    5235        m_strPreferredValues = param.getPreferredValues();
    53        
    54         // get values
     36
     37        // get values
    5538        List<String> tagValues = new ArrayList<>();
    5639        List<AutoCompletionListItem> values = Main.getLayerManager().getEditDataSet().getAutoCompletionManager().getValues(m_strTag);
    57         for ( AutoCompletionListItem i : values ) {
    58                 tagValues.add(i.getValue());
     40        for (AutoCompletionListItem i : values) {
     41            tagValues.add(i.getValue());
    5942        }
    60         m_astrTagValues = (String[])tagValues.toArray(new String[tagValues.size()]);
    61        
    62         // get preferred values
    63         if ( m_strPreferredValues.equals("") ) {
    64                 m_astrTagValuesPreferred = new String[0];
    65         } else {
    66                 String[] prefered = m_strPreferredValues.split(";");
    67                 tagValues = new ArrayList<>();
    68                
    69                 for (String str: prefered) {
    70                         String temp = str.trim();
    71                         if (getPos(temp, m_astrTagValues) >= 0 ) {
    72                                 tagValues.add(temp);
    73                         }
    74                 }
    75                 m_astrTagValuesPreferred = (String[])tagValues.toArray(new String[tagValues.size()]);
    76                
    77                 // set to the first preferred
    78                 m_bPreferred = true;
    79                         m_nPos = 0;
    80         }
     43        m_astrTagValues = tagValues.toArray(new String[tagValues.size()]);
     44
     45        // get preferred values
     46        if (m_strPreferredValues.equals("")) {
     47            m_astrTagValuesPreferred = new String[0];
     48        } else {
     49            String[] prefered = m_strPreferredValues.split(";");
     50            tagValues = new ArrayList<>();
     51
     52            for (String str: prefered) {
     53                String temp = str.trim();
     54                if (getPos(temp, m_astrTagValues) >= 0) {
     55                    tagValues.add(temp);
     56                }
     57            }
     58            m_astrTagValuesPreferred = tagValues.toArray(new String[tagValues.size()]);
     59
     60            // set to the first preferred
     61            m_bPreferred = true;
     62            m_nPos = 0;
     63        }
    8164    }
    82    
     65
    8366    private void clearAll() {
    8467        m_strTag = "";
    8568        m_strPreferredValues = "";
    86        
     69
    8770        m_nPos = 0;
    8871        m_bPreferred = false;
     
    9073        m_astrTagValuesPreferred = null;
    9174    }
    92    
     75
    9376    public String getTag() {
    94         if (m_strTag == null || m_strTag.equals("")) {
    95                 return null;
    96         }
    97         return m_strTag;
     77        if (m_strTag == null || m_strTag.equals("")) {
     78            return null;
     79        }
     80        return m_strTag;
    9881    }
    99    
     82
    10083    public String getTagValue() {
    101         if ( m_bPreferred == false ) {
    102                 if (m_astrTagValues != null && m_astrTagValues.length > m_nPos) {
    103                         return m_astrTagValues[m_nPos];
    104                 }
    105         } else {
    106                 if (m_astrTagValuesPreferred != null && m_astrTagValuesPreferred.length > m_nPos) {
    107                         return m_astrTagValuesPreferred[m_nPos];
    108                 }
    109         }
    110         return null;
     84        if (m_bPreferred == false) {
     85            if (m_astrTagValues != null && m_astrTagValues.length > m_nPos) {
     86                return m_astrTagValues[m_nPos];
     87            }
     88        } else {
     89            if (m_astrTagValuesPreferred != null && m_astrTagValuesPreferred.length > m_nPos) {
     90                return m_astrTagValuesPreferred[m_nPos];
     91            }
     92        }
     93        return null;
    11194    }
    112    
    113     private int getPos( String value, String[] values) {
    114         if (value != null && values != null ) {
    115                 for ( int i = 0; i<values.length ; i++ ) {
    116                         if ( value.equals(values[i]) ) {
    117                                 return i;
    118                         }
    119                 }
    120         }
    121         return -1;
     95
     96    private int getPos(String value, String[] values) {
     97        if (value != null && values != null) {
     98            for (int i = 0; i < values.length; i++) {
     99                if (value.equals(values[i])) {
     100                    return i;
     101                }
     102            }
     103        }
     104        return -1;
    122105    }
    123    
     106
    124107    public void left() {
    125         if (m_astrTagValues == null || m_astrTagValues.length == 0) {
    126                 return;
    127         }
    128         if (m_bPreferred == false) {
    129                 if (m_astrTagValuesPreferred == null || m_astrTagValuesPreferred.length == 0) {
    130                         return;
    131                 }
    132                 m_bPreferred = true;
    133                 m_nPos = getPos( m_astrTagValues[m_nPos], m_astrTagValuesPreferred);
    134                 if ( m_nPos < 0 ) {
    135                         m_nPos = 0;
    136                         return;
    137                 }
    138         }
    139                 m_nPos--;
    140         if (m_nPos < 0) m_nPos = m_astrTagValuesPreferred.length-1;
     108        if (m_astrTagValues == null || m_astrTagValues.length == 0) {
     109            return;
     110        }
     111        if (m_bPreferred == false) {
     112            if (m_astrTagValuesPreferred == null || m_astrTagValuesPreferred.length == 0) {
     113                return;
     114            }
     115            m_bPreferred = true;
     116            m_nPos = getPos(m_astrTagValues[m_nPos], m_astrTagValuesPreferred);
     117            if (m_nPos < 0) {
     118                m_nPos = 0;
     119                return;
     120            }
     121        }
     122        m_nPos--;
     123        if (m_nPos < 0) m_nPos = m_astrTagValuesPreferred.length-1;
    141124    }
    142    
     125
    143126    public void right() {
    144         if (m_astrTagValues == null || m_astrTagValues.length == 0) {
    145                 return;
    146         }
    147         if (m_bPreferred == false) {
    148                 if (m_astrTagValuesPreferred == null || m_astrTagValuesPreferred.length == 0) {
    149                         return;
    150                 }
    151                 m_bPreferred = true;
    152                 m_nPos = getPos( m_astrTagValues[m_nPos], m_astrTagValuesPreferred);
    153                 if ( m_nPos < 0 ) {
    154                         m_nPos = 0;
    155                         return;
    156                 }
    157         }
    158                 m_nPos++;
    159         if (m_nPos >= m_astrTagValuesPreferred.length) m_nPos = 0;
     127        if (m_astrTagValues == null || m_astrTagValues.length == 0) {
     128            return;
     129        }
     130        if (m_bPreferred == false) {
     131            if (m_astrTagValuesPreferred == null || m_astrTagValuesPreferred.length == 0) {
     132                return;
     133            }
     134            m_bPreferred = true;
     135            m_nPos = getPos(m_astrTagValues[m_nPos], m_astrTagValuesPreferred);
     136            if (m_nPos < 0) {
     137                m_nPos = 0;
     138                return;
     139            }
     140        }
     141        m_nPos++;
     142        if (m_nPos >= m_astrTagValuesPreferred.length) m_nPos = 0;
    160143    }
    161    
     144
    162145    public void up() {
    163         if (m_astrTagValues == null || m_astrTagValues.length == 0) {
    164                 return;
    165         }
    166         if (m_bPreferred == true) {
    167                 m_bPreferred = false;
    168                 m_nPos = getPos( m_astrTagValuesPreferred[m_nPos], m_astrTagValues);
    169                 if ( m_nPos < 0 ) {
    170                         m_nPos = 0;
    171                         return;
    172                 }
    173         }
    174         m_nPos--;
    175         if (m_nPos < 0) m_nPos = m_astrTagValues.length-1;
     146        if (m_astrTagValues == null || m_astrTagValues.length == 0) {
     147            return;
     148        }
     149        if (m_bPreferred == true) {
     150            m_bPreferred = false;
     151            m_nPos = getPos(m_astrTagValuesPreferred[m_nPos], m_astrTagValues);
     152            if (m_nPos < 0) {
     153                m_nPos = 0;
     154                return;
     155            }
     156        }
     157        m_nPos--;
     158        if (m_nPos < 0) m_nPos = m_astrTagValues.length-1;
    176159    }
    177    
     160
    178161    public void down() {
    179         if (m_astrTagValues == null || m_astrTagValues.length == 0) {
    180                 return;
    181         }
    182         if (m_bPreferred == true) {
    183                 m_bPreferred = false;
    184                 m_nPos = getPos( m_astrTagValuesPreferred[m_nPos], m_astrTagValues);
    185                 if ( m_nPos < 0 ) {
    186                         m_nPos = 0;
    187                         return;
    188                 }
    189         }
    190                 m_nPos++;
    191         if (m_nPos >= m_astrTagValues.length) m_nPos = 0;
     162        if (m_astrTagValues == null || m_astrTagValues.length == 0) {
     163            return;
     164        }
     165        if (m_bPreferred == true) {
     166            m_bPreferred = false;
     167            m_nPos = getPos(m_astrTagValuesPreferred[m_nPos], m_astrTagValues);
     168            if (m_nPos < 0) {
     169                m_nPos = 0;
     170                return;
     171            }
     172        }
     173        m_nPos++;
     174        if (m_nPos >= m_astrTagValues.length) m_nPos = 0;
    192175    }
    193    
     176
    194177}
  • applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/TracerAction.java

    r32474 r32788  
    1 /**
    2  *  Tracer2 - plug-in for JOSM to capture contours
    3  * 
    4  *  This program is free software; you can redistribute it and/or modify
    5  *  it under the terms of the GNU General Public License as published by
    6  *  the Free Software Foundation; either version 2 of the License, or
    7  *  (at your option) any later version.
    8  * 
    9  *  This program is distributed in the hope that it will be useful,
    10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  *  GNU General Public License for more details.
    13  * 
    14  *  You should have received a copy of the GNU General Public License along
    15  *  with this program; if not, write to the Free Software Foundation, Inc.,
    16  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    17  */
    18 
     1// License: GPL. For details, see LICENSE file.
    192package org.openstreetmap.josm.plugins.tracer2;
    203
     
    6245    private static final long serialVersionUID = 1L;
    6346    private static boolean s_bServerVersionOK = false;
    64    
     47
    6548    protected boolean m_bCancel;
    66     private boolean m_bCtrl;    // if pressed no tag is added + changes and connection are made to ways without tag
    67     private boolean m_bAlt;             //
    68     private boolean m_bShift;   // if pressed the new way will be add to the current selected
     49    private boolean m_bCtrl;    // if pressed no tag is added + changes and connection are made to ways without tag
     50    private boolean m_bAlt;     //
     51    private boolean m_bShift;   // if pressed the new way will be add to the current selected
    6952    private boolean m_bEnter = false;
    70    
     53
    7154    private TagValues m_oTagValues = new TagValues();
    72    
     55
    7356    TracerPlugin m_oPlugin;
    74    
    75     public TracerAction(MapFrame mapFrame) {
    76         super(tr("Tracer2"), "tracer2-sml", tr("Tracer2."), Shortcut.registerShortcut("tools:tracer2", tr("Tool: {0}", tr("Tracer2")), KeyEvent.VK_T, Shortcut.DIRECT), mapFrame, getCursor());
    77     }
    78    
     57
     58    TracerAction(MapFrame mapFrame) {
     59        super(tr("Tracer2"), "tracer2-sml", tr("Tracer2."),
     60                Shortcut.registerShortcut("tools:tracer2", tr("Tool: {0}", tr("Tracer2")), KeyEvent.VK_T, Shortcut.DIRECT),
     61                mapFrame, getCursor());
     62    }
     63
    7964    @Override
    8065    public void keyPressed(KeyEvent e) {
    81         //System.out.println("keyPressed: key:" + e.getKeyChar() + " code" + e.getKeyCode() + " Loc" + e.getKeyLocation()+ " ID" + KeyEvent.getKeyText(e.getKeyCode()));
    82        
    83         Collection<OsmPrimitive> selection = getLayerManager().getEditDataSet().getSelected();
    84         List<Command> commands = new ArrayList<>();
    85        
    86         if ( checkActiveServerParam() == false ) return;
    87        
    88         switch (e.getKeyCode()) {
    89         case 37: // left
    90                 m_oTagValues.left();
    91                 break;
    92         case 38: // up
    93                 m_oTagValues.up();
    94                 break;
    95         case 39: // right
    96                 m_oTagValues.right();
    97                 break;
    98         case 40: // down
    99                 m_oTagValues.down();
    100                 break;
    101         default:
    102                 return;
    103         }
    104        
    105         if (selection.isEmpty())
    106         {
     66        Collection<OsmPrimitive> selection = getLayerManager().getEditDataSet().getSelected();
     67        List<Command> commands = new ArrayList<>();
     68
     69        if (checkActiveServerParam() == false) return;
     70
     71        switch (e.getKeyCode()) {
     72        case 37: // left
     73            m_oTagValues.left();
     74            break;
     75        case 38: // up
     76            m_oTagValues.up();
     77            break;
     78        case 39: // right
     79            m_oTagValues.right();
     80            break;
     81        case 40: // down
     82            m_oTagValues.down();
     83            break;
     84        default:
    10785            return;
    10886        }
    109        
     87
     88        if (selection.isEmpty()) {
     89            return;
     90        }
     91
    11092        String strTag = m_oTagValues.getTag();
    11193        String strTagValue = m_oTagValues.getTagValue();
    112        
    113         if ( strTag != null && strTagValue != null ) {
    114                 commands.add(new ChangePropertyCommand(selection, strTag, strTagValue));
    115                
    116                 if (!commands.isEmpty()) {
    117                         Main.main.undoRedo.add( new SequenceCommand( tr("Change tag {0} to {1}", strTag, strTagValue), commands ));
    118                 }
    119         }
    120     }
    121    
    122     @Override
    123     public void keyReleased ( KeyEvent e ) {
    124         //System.out.println("keyReleased: key:" + e.getKeyChar() + " code" + e.getKeyCode() + " Loc" + e.getKeyLocation()+ " chra" + KeyEvent.getKeyText(e.getKeyCode()));
    125     }
    126    
    127     @Override
    128     public void keyTyped ( KeyEvent e ) {
    129         //System.out.println("keyTyped: key:" + e.getKeyChar() + " code" + e.getKeyCode() + " Loc" + e.getKeyLocation()+ " ID" + KeyEvent.getKeyText(e.getKeyCode()));
    130     }
    131    
     94
     95        if (strTag != null && strTagValue != null) {
     96            commands.add(new ChangePropertyCommand(selection, strTag, strTagValue));
     97
     98            if (!commands.isEmpty()) {
     99                Main.main.undoRedo.add(new SequenceCommand(tr("Change tag {0} to {1}", strTag, strTagValue), commands));
     100            }
     101        }
     102    }
     103
     104    @Override
     105    public void keyReleased(KeyEvent e) {
     106    }
     107
     108    @Override
     109    public void keyTyped(KeyEvent e) {
     110    }
     111
    132112    @Override
    133113    public void enterMode() {
    134         m_bEnter = true;
    135        
    136         // is not working hear
    137         // because if JOSM exit it is called too
    138         //checkActiveServerParam();
    139        
    140         if (!isEnabled()) {
     114        m_bEnter = true;
     115
     116        // is not working hear
     117        // because if JOSM exit it is called too
     118        //checkActiveServerParam();
     119
     120        if (!isEnabled()) {
    141121            return;
    142122        }
     
    146126        Main.map.mapView.addKeyListener(this);
    147127    }
    148    
     128
    149129    @Override
    150130    public void exitMode() {
    151         m_bEnter = false;
    152        
     131        m_bEnter = false;
     132
    153133        super.exitMode();
    154134        Main.map.mapView.removeMouseListener(this);
    155135        Main.map.mapView.removeKeyListener(this);
    156136    }
    157    
     137
    158138    private static Cursor getCursor() {
    159139        return ImageProvider.getCursor("crosshair", "tracer2-sml");
    160140    }
    161    
     141
    162142    protected void traceAsync(Point clickPoint) {
    163143        m_bCancel = false;
     
    166146         */
    167147        final LatLon pos = Main.map.mapView.getLatLon(clickPoint.x, clickPoint.y);
    168        
     148
    169149        try {
    170150            PleaseWaitRunnable tracerTask = new PleaseWaitRunnable(tr("Tracing")) {
     
    173153                    traceSync(pos, progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false));
    174154                }
    175                
     155
    176156                @Override
    177157                protected void finish() {
    178158                }
    179                
     159
    180160                @Override
    181161                protected void cancel() {
     
    189169        }
    190170    }
    191    
     171
    192172    private void tagBuilding(Way way) {
    193173        String strTag = m_oTagValues.getTag();
    194174        String strTagValue = m_oTagValues.getTagValue();
    195        
    196         if ( strTag != null && strTagValue != null && !m_bCtrl) {
    197                 way.put(strTag, strTagValue);
    198         }
    199     }
    200    
     175
     176        if (strTag != null && strTagValue != null && !m_bCtrl) {
     177            way.put(strTag, strTagValue);
     178        }
     179    }
     180
    201181    private boolean checkServerVersion() {
    202         int nMajor = 1;
    203         int nMinor = 1;
    204        
    205         if (s_bServerVersionOK == false) {
    206             GetVersion  oGetVersion = new GetVersion();
     182        int nMajor = 1;
     183        int nMinor = 1;
     184
     185        if (s_bServerVersionOK == false) {
     186            GetVersion oGetVersion = new GetVersion();
    207187            oGetVersion.start();
    208            
     188
    209189            int nRetray = 500; // 5 seconds
    210                
    211             while(oGetVersion.isAlive() && nRetray > 0) {
    212                     try {
    213                         Thread.sleep(10);
    214                     } catch (Exception e) {
    215                         break;
    216                     }
    217                     nRetray--;
    218                 }
    219            
     190
     191            while (oGetVersion.isAlive() && nRetray > 0) {
     192                try {
     193                    Thread.sleep(10);
     194                } catch (Exception e) {
     195                    break;
     196                }
     197                nRetray--;
     198            }
     199
    220200            if (oGetVersion.m_nVersionMajor < 0 || oGetVersion.m_nVersionMinor < 0) {
    221                 return false;
     201                return false;
    222202            }
    223203            if (oGetVersion.m_nVersionMajor != nMajor) {
    224                 JOptionPane.showMessageDialog(Main.parent, tr("The Tracer2Server version isn''t compatible with this plugin. Please download version {0} from\n{1}.", nMajor + ".x",
    225                                 "http://sourceforge.net/projects/tracer2server/"), tr("Error"),  JOptionPane.ERROR_MESSAGE);
     204                JOptionPane.showMessageDialog(Main.parent,
     205                        tr("The Tracer2Server version isn''t compatible with this plugin. Please download version {0} from\n{1}.", nMajor + ".x",
     206                                "http://sourceforge.net/projects/tracer2server/"), tr("Error"), JOptionPane.ERROR_MESSAGE);
    226207                return false;
    227208            }
    228209            if (oGetVersion.m_nVersionMinor < nMinor) {
    229                 JOptionPane.showMessageDialog(Main.parent, tr("New version of Tracer2Server is available. For best results please upgrade to version {0}.",nMajor + "." + nMinor ), tr("Information"),  JOptionPane.INFORMATION_MESSAGE);
     210                JOptionPane.showMessageDialog(Main.parent,
     211                        tr("New version of Tracer2Server is available. For best results please upgrade to version {0}.", nMajor + "." + nMinor),
     212                        tr("Information"), JOptionPane.INFORMATION_MESSAGE);
    230213            }
    231214            s_bServerVersionOK = true;
    232         }
    233         return true;
    234     }
    235    
     215        }
     216        return true;
     217    }
     218
    236219    private boolean checkActiveServerParam() {
    237         if (checkServerVersion() == false) {
    238                 return false;
    239         }
    240         if ( m_bEnter == true || TracerPlugin.s_oPlugin.m_oParamList.getActivParam() == null ) {
    241                
    242                 ServerParamList listParam = TracerPlugin.s_oPlugin.m_oParamList;
    243                 List<ServerParam> listEnableParam = listParam.getEnableParamList();
    244                
     220        if (checkServerVersion() == false) {
     221            return false;
     222        }
     223        if (m_bEnter == true || TracerPlugin.s_oPlugin.m_oParamList.getActivParam() == null) {
     224
     225            ServerParamList listParam = TracerPlugin.s_oPlugin.m_oParamList;
     226            List<ServerParam> listEnableParam = listParam.getEnableParamList();
     227
    245228            if (listEnableParam == null || listEnableParam.size() == 0) {
    246                 listParam.setActivParam(null);
    247                 JOptionPane.showMessageDialog(Main.parent, tr("No set of parameter is active!"), tr("Error"),  JOptionPane.ERROR_MESSAGE);
    248                 return false;
    249             }
    250             if ( listEnableParam.size() == 1 ) {
    251                 ServerParam param = listEnableParam.get(0);
    252                 listParam.setActivParam(param);
    253                 m_oTagValues.readBuildingTags(param);
    254                 return true;
    255             }
    256            
     229                listParam.setActivParam(null);
     230                JOptionPane.showMessageDialog(Main.parent, tr("No set of parameter is active!"), tr("Error"), JOptionPane.ERROR_MESSAGE);
     231                return false;
     232            }
     233            if (listEnableParam.size() == 1) {
     234                ServerParam param = listEnableParam.get(0);
     235                listParam.setActivParam(param);
     236                m_oTagValues.readBuildingTags(param);
     237                return true;
     238            }
     239
    257240            ServerParamSelectDialog dialog = new ServerParamSelectDialog(listEnableParam, listParam.getActivParam());
    258            
     241
    259242            if (dialog.getShow()) {
    260243                JOptionPane pane = new JOptionPane(dialog, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
    261244                JDialog dlg = pane.createDialog(Main.parent, tr("Tracer2") + " - " + tr("Select parameter"));
    262                 dlg.setVisible(true);
    263                 Object obj = pane.getValue();
     245                dlg.setVisible(true);
     246                Object obj = pane.getValue();
    264247                dlg.dispose();
    265                 if(obj != null && ((Integer)obj) == JOptionPane.OK_OPTION) {
    266                         TracerPlugin.s_oPlugin.m_oParamList.setActivParam(dialog.getSelectedParam());
    267                 } else {
    268                         return false;
    269                 }
    270             }
    271         }
    272         ServerParam param = TracerPlugin.s_oPlugin.m_oParamList.getActivParam();
    273         if ( param == null ) {
    274                 return false;
    275         }
    276         m_bEnter = false;
    277         m_oTagValues.readBuildingTags(param);
    278         return true;
    279     }
    280    
     248                if (obj != null && ((Integer) obj) == JOptionPane.OK_OPTION) {
     249                    TracerPlugin.s_oPlugin.m_oParamList.setActivParam(dialog.getSelectedParam());
     250                } else {
     251                    return false;
     252                }
     253            }
     254        }
     255        ServerParam param = TracerPlugin.s_oPlugin.m_oParamList.getActivParam();
     256        if (param == null) {
     257            return false;
     258        }
     259        m_bEnter = false;
     260        m_oTagValues.readBuildingTags(param);
     261        return true;
     262    }
     263
    281264    private void traceSync(LatLon pos, ProgressMonitor progressMonitor) {
    282265        Collection<Command> commands = new LinkedList<>();
    283        
     266
    284267        progressMonitor.beginTask(null, 3);
    285268        try {
    286269            ArrayList<LatLon> coordList;
    287            
    288             if ( checkActiveServerParam() == false ) return;
    289            
     270
     271            if (checkActiveServerParam() == false) return;
     272
    290273            ServerParam param = TracerPlugin.s_oPlugin.m_oParamList.getActivParam();
    291             GetTrace  oTraceSimple = new GetTrace(pos, param);
     274            GetTrace oTraceSimple = new GetTrace(pos, param);
    292275            oTraceSimple.start();
    293             try
    294             {
    295                 while(oTraceSimple.isAlive())
    296                     {
    297                         Thread.sleep(50);
    298                         if (m_bCancel == true)
    299                         {
    300                                 oTraceSimple.interrupt();
    301                                 break;
    302                         }
    303                     }
    304                     coordList = oTraceSimple.m_listLatLon;
    305                 } catch (Exception e) {
    306                 coordList = new ArrayList<>();
    307             }
    308            
     276            try {
     277                while (oTraceSimple.isAlive()) {
     278                    Thread.sleep(50);
     279                    if (m_bCancel == true) {
     280                        oTraceSimple.interrupt();
     281                        break;
     282                    }
     283                }
     284                coordList = oTraceSimple.m_listLatLon;
     285            } catch (Exception e) {
     286                coordList = new ArrayList<>();
     287            }
     288
    309289            if (m_bCancel == true || coordList.size() == 0) {
    310290                return;
    311291            }
    312            
     292
    313293            // make nodes a way
    314294            Way way = new Way();
     
    323303            }
    324304            way.addNode(firstNode);
    325            
     305
    326306            tagBuilding(way);
    327            
     307
    328308            // connect to other buildings
    329309            commands.add(ConnectWays.connect(way, pos, param, m_bCtrl, m_bAlt));
    330            
     310
    331311            if (!commands.isEmpty()) {
    332                 String strCommand;
    333                 if (ConnectWays.s_bAddNewWay == true) {
    334                         strCommand = tr("Tracer2: add a way with {0} points", coordList.size());
    335                 } else {
    336                         strCommand = tr("Tracer2: modify way to {0} points", coordList.size());
    337                 }
    338                 Main.main.undoRedo.add(new SequenceCommand(strCommand, commands));
    339                
     312                String strCommand;
     313                if (ConnectWays.s_bAddNewWay == true) {
     314                    strCommand = tr("Tracer2: add a way with {0} points", coordList.size());
     315                } else {
     316                    strCommand = tr("Tracer2: modify way to {0} points", coordList.size());
     317                }
     318                Main.main.undoRedo.add(new SequenceCommand(strCommand, commands));
     319
    340320                if (m_bShift) {
    341321                    getLayerManager().getEditDataSet().addSelected(ConnectWays.s_oWay);
     
    346326                System.out.println("Failed");
    347327            }
    348            
     328
    349329        } finally {
    350330            progressMonitor.finishTask();
    351331        }
    352332    }
    353    
     333
    354334    public void cancel() {
    355335        m_bCancel = true;
    356336    }
    357    
     337
    358338    @Override
    359339    public void mouseClicked(MouseEvent e) {
    360340    }
    361    
     341
    362342    @Override
    363343    public void mouseEntered(MouseEvent e) {
    364344    }
    365    
     345
    366346    @Override
    367347    public void mouseExited(MouseEvent e) {
    368348    }
    369    
     349
    370350    @Override
    371351    public void mousePressed(MouseEvent e) {
     
    379359        }
    380360    }
    381    
     361
    382362    @Override
    383363    protected void updateKeyModifiers(MouseEvent e) {
     
    386366        m_bShift = (e.getModifiers() & ActionEvent.SHIFT_MASK) != 0;
    387367    }
    388    
     368
    389369    @Override
    390370    public void mouseReleased(MouseEvent e) {
    391371    }
    392    
     372
    393373}
    394374
  • applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/TracerDebug.java

    r30737 r32788  
    1 /**
    2  *  Tracer2 - plug-in for JOSM to capture contours
    3  * 
    4  *  This program is free software; you can redistribute it and/or modify
    5  *  it under the terms of the GNU General Public License as published by
    6  *  the Free Software Foundation; either version 2 of the License, or
    7  *  (at your option) any later version.
    8  * 
    9  *  This program is distributed in the hope that it will be useful,
    10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  *  GNU General Public License for more details.
    13  * 
    14  *  You should have received a copy of the GNU General Public License along
    15  *  with this program; if not, write to the Free Software Foundation, Inc.,
    16  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    17  */
    18 
     1// License: GPL. For details, see LICENSE file.
    192package org.openstreetmap.josm.plugins.tracer2;
    203
     
    3417
    3518    private static String FormatPrimitive(String strIn) {
    36         while (strIn.contains("{")) {
    37                 strIn = strIn.replace("{", "xxxxx");
    38         }
    39                 return strIn.replaceAll("xxxxx", "\r\n  {");
     19        while (strIn.contains("{")) {
     20            strIn = strIn.replace("{", "xxxxx");
     21        }
     22        return strIn.replaceAll("xxxxx", "\r\n    {");
    4023    }
    4124
    42         public  void OutputOsmPrimitive(Collection<OsmPrimitive> cOsmPrimitive) {
    43                 if (cOsmPrimitive != null) {
    44                 for (OsmPrimitive p : cOsmPrimitive) {
    45                 System.out.println(" OsmPrimitive: " + FormatPrimitive(p.toString()));
    46             }
    47                 }
    48         }
    49        
    50         public  void OutputOsmExtendsPrimitive(Collection<? extends OsmPrimitive> cOsmPrimitive) {
    51                 if (cOsmPrimitive != null) {
    52                 for (OsmPrimitive p : cOsmPrimitive) {
    53                 System.out.println(" OsmPrimitive x: " + FormatPrimitive(p.toString()));
    54             }
    55                 }
    56         }
    57        
    58         public void OutputCommands(LinkedList<Command> cmds) {
    59                
    60                 for (Command c : cmds) {
    61                         System.out.println("");
     25    public void OutputOsmPrimitive(Collection<OsmPrimitive> cOsmPrimitive) {
     26        if (cOsmPrimitive != null) {
     27            for (OsmPrimitive p : cOsmPrimitive) {
     28                System.out.println(" OsmPrimitive: " + FormatPrimitive(p.toString()));
     29            }
     30        }
     31    }
    6232
    63                         Collection<OsmPrimitive> cp1 = null;
    64                 Collection<OsmPrimitive> cp2 = null;
    65                 Collection<OsmPrimitive> cp3 = null;
    66                 Collection<? extends OsmPrimitive> cpx = null;
    67                
    68                 List<OsmPrimitive> lp1 = new LinkedList<>();
    69                 List<OsmPrimitive> lp2 = new LinkedList<>();
    70                 List<OsmPrimitive> lp3 = new LinkedList<>();
    71                 List<OsmPrimitive> lp = new LinkedList<>();
    72                
    73                 cp1 = lp1;
    74                 cp2 = lp2;
    75                 cp3 = lp3;
    76                 cpx = lp;
    77                
    78                 //OsmPrimitive op = new OsmPrimitive();
    79                 OsmPrimitive op1 = new Way();
    80                
    81                 System.out.println("Command: " + c.toString());
    82                
    83                 if (c instanceof AddCommand) {
    84                     AddCommand x = (AddCommand) c;
    85                         x.fillModifiedData(cp1, cp2, cp3);
    86                         OutputOsmPrimitive(cp1);
    87                         OutputOsmPrimitive(cp2);
    88                         OutputOsmPrimitive(cp3);
    89                         cpx = x.getParticipatingPrimitives();
    90                         OutputOsmExtendsPrimitive(cpx);
    91                 } else if (c instanceof ChangeCommand) { // order is important!
    92                         ChangeCommand x = (ChangeCommand) c;
    93                         x.fillModifiedData(cp1, cp2, cp3);
    94                         x.getOrig(op1);
    95                         OutputOsmPrimitive(cp1);
    96                         OutputOsmPrimitive(cp2);
    97                         OutputOsmPrimitive(cp3);
    98                         cpx = x.getParticipatingPrimitives();
    99                         OutputOsmExtendsPrimitive(cpx);
    100                 } else if (c instanceof DeleteCommand) {
    101                         DeleteCommand x = (DeleteCommand) c;
    102                         x.fillModifiedData(cp1, cp2, cp3);
    103                         OutputOsmPrimitive(cp1);
    104                         OutputOsmPrimitive(cp2);
    105                         OutputOsmPrimitive(cp3);
    106                         cpx = x.getParticipatingPrimitives();
    107                         OutputOsmExtendsPrimitive(cpx);
    108                 } else if (c instanceof MoveCommand) { // order is important!
    109                         MoveCommand x = (MoveCommand) c;
    110                         x.fillModifiedData(cp1, cp2, cp3);
    111                         OutputOsmPrimitive(cp1);
    112                         OutputOsmPrimitive(cp2);
    113                         OutputOsmPrimitive(cp3);
    114                         cpx = x.getParticipatingPrimitives();
    115                         OutputOsmExtendsPrimitive(cpx);
    116                 } else {
    117                         c.fillModifiedData(cp1, cp2, cp3);
    118                         OutputOsmPrimitive(cp1);
    119                         OutputOsmPrimitive(cp2);
    120                         OutputOsmPrimitive(cp3);
    121                         cpx = c.getParticipatingPrimitives();
    122                         OutputOsmExtendsPrimitive(cpx);
    123                 }
     33    public void OutputOsmExtendsPrimitive(Collection<? extends OsmPrimitive> cOsmPrimitive) {
     34        if (cOsmPrimitive != null) {
     35            for (OsmPrimitive p : cOsmPrimitive) {
     36                System.out.println(" OsmPrimitive x: " + FormatPrimitive(p.toString()));
     37            }
    12438        }
    125         }
    126        
     39    }
     40
     41    public void OutputCommands(LinkedList<Command> cmds) {
     42
     43        for (Command c : cmds) {
     44            System.out.println("");
     45
     46            Collection<OsmPrimitive> cp1 = null;
     47            Collection<OsmPrimitive> cp2 = null;
     48            Collection<OsmPrimitive> cp3 = null;
     49            Collection<? extends OsmPrimitive> cpx = null;
     50
     51            List<OsmPrimitive> lp1 = new LinkedList<>();
     52            List<OsmPrimitive> lp2 = new LinkedList<>();
     53            List<OsmPrimitive> lp3 = new LinkedList<>();
     54            List<OsmPrimitive> lp = new LinkedList<>();
     55
     56            cp1 = lp1;
     57            cp2 = lp2;
     58            cp3 = lp3;
     59            cpx = lp;
     60
     61            //OsmPrimitive op = new OsmPrimitive();
     62            OsmPrimitive op1 = new Way();
     63
     64            System.out.println("Command: " + c.toString());
     65
     66            if (c instanceof AddCommand) {
     67                AddCommand x = (AddCommand) c;
     68                x.fillModifiedData(cp1, cp2, cp3);
     69                OutputOsmPrimitive(cp1);
     70                OutputOsmPrimitive(cp2);
     71                OutputOsmPrimitive(cp3);
     72                cpx = x.getParticipatingPrimitives();
     73                OutputOsmExtendsPrimitive(cpx);
     74            } else if (c instanceof ChangeCommand) { // order is important!
     75                ChangeCommand x = (ChangeCommand) c;
     76                x.fillModifiedData(cp1, cp2, cp3);
     77                x.getOrig(op1);
     78                OutputOsmPrimitive(cp1);
     79                OutputOsmPrimitive(cp2);
     80                OutputOsmPrimitive(cp3);
     81                cpx = x.getParticipatingPrimitives();
     82                OutputOsmExtendsPrimitive(cpx);
     83            } else if (c instanceof DeleteCommand) {
     84                DeleteCommand x = (DeleteCommand) c;
     85                x.fillModifiedData(cp1, cp2, cp3);
     86                OutputOsmPrimitive(cp1);
     87                OutputOsmPrimitive(cp2);
     88                OutputOsmPrimitive(cp3);
     89                cpx = x.getParticipatingPrimitives();
     90                OutputOsmExtendsPrimitive(cpx);
     91            } else if (c instanceof MoveCommand) { // order is important!
     92                MoveCommand x = (MoveCommand) c;
     93                x.fillModifiedData(cp1, cp2, cp3);
     94                OutputOsmPrimitive(cp1);
     95                OutputOsmPrimitive(cp2);
     96                OutputOsmPrimitive(cp3);
     97                cpx = x.getParticipatingPrimitives();
     98                OutputOsmExtendsPrimitive(cpx);
     99            } else {
     100                c.fillModifiedData(cp1, cp2, cp3);
     101                OutputOsmPrimitive(cp1);
     102                OutputOsmPrimitive(cp2);
     103                OutputOsmPrimitive(cp3);
     104                cpx = c.getParticipatingPrimitives();
     105                OutputOsmExtendsPrimitive(cpx);
     106            }
     107        }
     108    }
     109
    127110}
  • applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/TracerException.java

    r30047 r32788  
    1 /**
    2  *  Tracer2 - plug-in for JOSM to capture contours
    3  * 
    4  *  This program is free software; you can redistribute it and/or modify
    5  *  it under the terms of the GNU General Public License as published by
    6  *  the Free Software Foundation; either version 2 of the License, or
    7  *  (at your option) any later version.
    8  * 
    9  *  This program is distributed in the hope that it will be useful,
    10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  *  GNU General Public License for more details.
    13  * 
    14  *  You should have received a copy of the GNU General Public License along
    15  *  with this program; if not, write to the Free Software Foundation, Inc.,
    16  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    17  */
    18 
     1// License: GPL. For details, see LICENSE file.
    192package org.openstreetmap.josm.plugins.tracer2;
    203
     
    247
    258    /**
    26          *
    27         */
    28         private static final long serialVersionUID = 4404064875119981715L;
     9     *
     10    */
     11    private static final long serialVersionUID = 4404064875119981715L;
    2912
    30         public TracerException() {
     13    TracerException() {
    3114        super(tr("An unknown error has occurred"));
    3215    }
    3316
    34     public TracerException(String err) {
     17    TracerException(String err) {
    3518        super(err);
    3619    }
  • applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/TracerGeometry.java

    r30047 r32788  
    1 /**
    2  *  Tracer2 - plug-in for JOSM to capture contours
    3  * 
    4  *  This program is free software; you can redistribute it and/or modify
    5  *  it under the terms of the GNU General Public License as published by
    6  *  the Free Software Foundation; either version 2 of the License, or
    7  *  (at your option) any later version.
    8  * 
    9  *  This program is distributed in the hope that it will be useful,
    10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  *  GNU General Public License for more details.
    13  * 
    14  *  You should have received a copy of the GNU General Public License along
    15  *  with this program; if not, write to the Free Software Foundation, Inc.,
    16  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    17  */
    18 
     1// License: GPL. For details, see LICENSE file.
    192package org.openstreetmap.josm.plugins.tracer2;
    203
    214import org.openstreetmap.josm.data.coor.LatLon;
    225
    23 public class TracerGeometry {
     6public final class TracerGeometry {
     7
     8    private TracerGeometry() {
     9        // Hide default constructor for utilities classes
     10    }
    2411
    2512    /**
     
    3118     * @return Angle in degrees.
    3219     */
    33     static public double angleOfLines(LatLon a, LatLon b, LatLon c, LatLon d) {
     20    public static double angleOfLines(LatLon a, LatLon b, LatLon c, LatLon d) {
    3421        return (Math.abs(
    35                     Math.atan2(a.lat() - b.lat(), a.lon() - b.lon()) -
    36                     Math.atan2(c.lat() - d.lat(), c.lon() - d.lon())
     22                Math.atan2(a.lat() - b.lat(), a.lon() - b.lon()) -
     23                Math.atan2(c.lat() - d.lat(), c.lon() - d.lon())
    3724                ) / Math.PI * 180) % 360;
    3825    }
     
    4532     * @return Distance.
    4633     */
    47     static public double distanceFromSegment(LatLon c, LatLon a, LatLon b) {
     34    public static double distanceFromSegment(LatLon c, LatLon a, LatLon b) {
    4835        return distanceFromSegment(
    4936                c.getX(), c.getY(),
    5037                a.getX(), a.getY(),
    5138                b.getX(), b.getY()
    52         );
     39                );
    5340    }
    5441
    55     static private double distanceFromSegment(double cx, double cy, double ax, double ay, double bx, double by) {
     42    private static double distanceFromSegment(double cx, double cy, double ax, double ay, double bx, double by) {
    5643        double r_numerator = (cx - ax) * (bx - ax) + (cy - ay) * (by - ay);
    5744        double r_denomenator = (bx - ax) * (bx - ax) + (by - ay) * (by - ay);
    58         if(r_denomenator == 0)System.out.println("r_denomenator == 0    ------------");
     45        if (r_denomenator == 0)System.out.println("r_denomenator == 0    ------------");
    5946        double r = r_numerator / r_denomenator;
    6047        double s = ((ay - cy) * (bx - ax) - (ax - cx) * (by - ay)) / r_denomenator;
  • applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/TracerPlugin.java

    r30047 r32788  
    1 /**
    2  *  Tracer2 - plug-in for JOSM to capture contours
    3  * 
    4  *  This program is free software; you can redistribute it and/or modify
    5  *  it under the terms of the GNU General Public License as published by
    6  *  the Free Software Foundation; either version 2 of the License, or
    7  *  (at your option) any later version.
    8  * 
    9  *  This program is distributed in the hope that it will be useful,
    10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  *  GNU General Public License for more details.
    13  * 
    14  *  You should have received a copy of the GNU General Public License along
    15  *  with this program; if not, write to the Free Software Foundation, Inc.,
    16  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    17  */
    18 
     1// License: GPL. For details, see LICENSE file.
    192package org.openstreetmap.josm.plugins.tracer2;
    203
     
    3013
    3114public class TracerPlugin extends Plugin {
    32        
     15
    3316    public static TracerPlugin s_oPlugin;
    34    
     17
    3518    public final ServerParamList m_oParamList;
    36        
     19
    3720    public TracerPlugin(PluginInformation info) {
    3821        super(info);
    3922        MainMenu.add(Main.main.menu.moreToolsMenu, new TracerAction(Main.map));
    40        
     23
    4124        s_oPlugin = this;
    42        
     25
    4326        File plugindir = new File(this.getPluginDir());
    4427        if (!plugindir.exists()) {
    4528            plugindir.mkdirs();
    4629        }
    47        
     30
    4831        m_oParamList = new ServerParamList(new File(plugindir, "serverParam.cfg").getAbsolutePath());
    4932    }
    50    
     33
    5134    @Override
    5235    public PreferenceSetting getPreferenceSetting() {
    5336        return new ServerParamPreference(this);
    5437    }
    55    
    5638}
  • applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/preferences/ServerParam.java

    r30049 r32788  
    1 /**
    2  *  Tracer2 - plug-in for JOSM to capture contours
    3  * 
    4  *  This program is free software; you can redistribute it and/or modify
    5  *  it under the terms of the GNU General Public License as published by
    6  *  the Free Software Foundation; either version 2 of the License, or
    7  *  (at your option) any later version.
    8  * 
    9  *  This program is distributed in the hope that it will be useful,
    10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  *  GNU General Public License for more details.
    13  * 
    14  *  You should have received a copy of the GNU General Public License along
    15  *  with this program; if not, write to the Free Software Foundation, Inc.,
    16  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    17  */
    18 
     1// License: GPL. For details, see LICENSE file.
    192package org.openstreetmap.josm.plugins.tracer2.preferences;
    203
     
    3518
    3619public class ServerParam {
    37        
     20
    3821    protected boolean m_bEnabled;
    3922    private String m_strName = "Name";
     
    4831    private String m_strTag = "building";
    4932    private String m_strPreferredValues = "yes;house;garage";
    50    
     33
    5134    protected JMenuItem m_oMenuItem;
    52    
     35
    5336    public boolean isEnabled() {
    5437        return m_bEnabled;
    5538    }
     39
    5640    public void setEnabled(boolean enabled) {
    57         if (!m_bEnabled ^ enabled)
     41        if (!m_bEnabled ^ enabled)
    5842            return;
    5943        m_bEnabled = enabled;
    6044    }
    61    
     45
    6246    public String getName() {
    6347        return m_strName;
    6448    }
     49
    6550    public void setName(String name) {
    6651        m_strName = name;
    6752    }
    68    
     53
    6954    public String getDescription() {
    7055        return m_strDescription;
    7156    }
     57
    7258    public void setDescription(String description) {
    7359        m_strDescription = description;
    7460    }
    75    
     61
    7662    public String getUrl() {
    7763        return m_strUrl;
    7864    }
     65
    7966    public void setUrl(String url) {
    8067        m_strUrl = url;
    8168    }
    82    
     69
    8370    public String getTileSize() {
    8471        return m_strTileSize;
    8572    }
     73
    8674    public void setTileSize(String tileSize) {
    8775        m_strTileSize = tileSize;
    8876    }
    89    
     77
    9078    public String getResolution() {
    9179        return m_strResolution;
    9280    }
     81
    9382    public void setResolution(String resolution) {
    9483        m_strResolution = resolution;
    9584    }
    96    
     85
    9786    public String getSkipBottom() {
    9887        return m_strSkipBottom;
    9988    }
     89
    10090    public void setSkipBottom(String skipBottom) {
    10191        m_strSkipBottom = skipBottom;
    10292    }
    103    
     93
    10494    public String getMode() {
    10595        return m_strMode;
    10696    }
     97
    10798    public void setMode(String mode) {
    10899        m_strMode = mode;
    109100    }
    110    
     101
    111102    public String getThreshold() {
    112103        return m_strThreshold;
    113104    }
     105
    114106    public void setThreshold(String threshold) {
    115107        m_strThreshold = threshold;
    116108    }
    117    
     109
    118110    public String getPointsPerCircle() {
    119111        return m_strPointsPerCircle;
    120112    }
     113
    121114    public void setPointsPerCircle(String pointsPerCircle) {
    122115        m_strPointsPerCircle = pointsPerCircle;
    123116    }
    124    
     117
    125118    public String getTag() {
    126119        return m_strTag;
    127120    }
     121
    128122    public void setTag(String tag) {
    129123        m_strTag = tag;
    130124    }
    131    
     125
    132126    public String getPreferredValues() {
    133127        return m_strPreferredValues;
    134128    }
     129
    135130    public void setPreferredValues(String preferredValues) {
    136131        m_strPreferredValues = preferredValues;
    137132    }
    138    
     133
    139134    public ServerParam() {
    140135        m_bEnabled = false;
    141136    }
    142    
     137
    143138    public ServerParam(String name) {
    144139        this();
    145140        m_strName = name;
    146141    }
    147    
     142
    148143    public String serialize() {
    149144        StringBuilder oBuilder = new StringBuilder();
     
    163158        return oBuilder.toString();
    164159    }
    165    
     160
    166161    public static ServerParam unserialize(String str) {
    167         ServerParam oParam = new ServerParam();
     162        ServerParam oParam = new ServerParam();
    168163        String[] lines = str.split("\n");
    169164        for (String line : lines) {
     
    196191        return oParam;
    197192    }
    198    
     193
    199194    protected void showErrorMessage(String message, String details) {
    200195        final JPanel p = new JPanel(new GridBagLayout());
    201         p.add(new JMultilineLabel(message),GBC.eol());
     196        p.add(new JMultilineLabel(message), GBC.eol());
    202197        if (details != null) {
    203198            JTextArea info = new JTextArea(details, 20, 60);
     
    207202        }
    208203        SwingUtilities.invokeLater(new Runnable() {
     204            @Override
    209205            public void run() {
    210206                JOptionPane.showMessageDialog(Main.parent, p, tr("Tracer2 error"), JOptionPane.ERROR_MESSAGE);
     
    212208        });
    213209    }
    214    
     210
    215211}
  • applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/preferences/ServerParamDialog.java

    r30532 r32788  
    1 /**
    2  *  Tracer2 - plug-in for JOSM to capture contours
    3  * 
    4  *  This program is free software; you can redistribute it and/or modify
    5  *  it under the terms of the GNU General Public License as published by
    6  *  the Free Software Foundation; either version 2 of the License, or
    7  *  (at your option) any later version.
    8  * 
    9  *  This program is distributed in the hope that it will be useful,
    10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  *  GNU General Public License for more details.
    13  * 
    14  *  You should have received a copy of the GNU General Public License along
    15  *  with this program; if not, write to the Free Software Foundation, Inc.,
    16  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    17  */
    18 
     1// License: GPL. For details, see LICENSE file.
    192package org.openstreetmap.josm.plugins.tracer2.preferences;
    203
     
    4124public class ServerParamDialog extends ExtendedDialog {
    4225    /**
    43          *
    44         */
    45         private static final long serialVersionUID = -3229680217088662218L;
    46        
    47         private String[] m_astrTileSize = new String[] {"0.0001", "0.0002", "0.0004", "0.0008", "0.001", "0.002", "0.004", "0.008", "0.01"};
    48         private String[] m_astrResolution = new String[] {"512", "1024", "2048", "4096"};
    49         private String[] m_astrMode = new String[] {"boundary", "match color"};
    50         private String[] m_astrPointsPerCircle = new String[] {"0", "8", "12", "16", "20", "24", "32"};
    51        
    52         private ServerParam m_oParam;
    53        
     26     *
     27    */
     28    private static final long serialVersionUID = -3229680217088662218L;
     29
     30    private String[] m_astrTileSize = new String[] {"0.0001", "0.0002", "0.0004", "0.0008", "0.001", "0.002", "0.004", "0.008", "0.01"};
     31    private String[] m_astrResolution = new String[] {"512", "1024", "2048", "4096"};
     32    private String[] m_astrMode = new String[] {"boundary", "match color"};
     33    private String[] m_astrPointsPerCircle = new String[] {"0", "8", "12", "16", "20", "24", "32"};
     34
     35    private ServerParam m_oParam;
     36
    5437    private JPanel m_oPanel = new JPanel(new GridBagLayout());
    5538    private JTextField m_oName = new JTextField();
    5639    private JTextField m_oDescription = new JTextField();
    57     private JTextArea m_oUrl = new JTextArea(5,5);
     40    private JTextArea m_oUrl = new JTextArea(5, 5);
    5841    private JComboBox<String> m_oTileSize;
    5942    private JComboBox<String> m_oResolution;
     
    6447    private JTextField m_oTag = new JTextField();
    6548    private JTextField m_oPreferredValues = new JTextField();
    66    
     49
    6750    private JScrollPane m_oScrollpaneUrl;
    68    
     51
    6952    public ServerParam getServerParam() {
    70         return m_oParam;
     53        return m_oParam;
    7154    }
    72    
     55
    7356    private void addLabelled(String str, Component c) {
    7457        JLabel label = new JLabel(str);
     
    7760        m_oPanel.add(c, GBC.eol().fill(GridBagConstraints.HORIZONTAL));
    7861    }
    79    
     62
    8063    private void addGap() {
    8164        JPanel p = new JPanel();
    82         p.setMinimumSize(new Dimension(10,0));
     65        p.setMinimumSize(new Dimension(10, 0));
    8366        m_oPanel.add(p, GBC.eol().fill(GridBagConstraints.HORIZONTAL));
    8467    }
    85    
     68
    8669    private void load() {
    8770        m_oName.setText(m_oParam.getName());
    8871        m_oDescription.setText(m_oParam.getDescription());
    8972        m_oUrl.setText(m_oParam.getUrl());
    90         loadComboBox( m_oTileSize, m_oParam.getTileSize(), m_astrTileSize);
    91         loadComboBox( m_oResolution, m_oParam.getResolution(), m_astrResolution);
     73        loadComboBox(m_oTileSize, m_oParam.getTileSize(), m_astrTileSize);
     74        loadComboBox(m_oResolution, m_oParam.getResolution(), m_astrResolution);
    9275        //m_oSkipBottom.setText(param.getSkipBottom());
    93         loadComboBox( m_oMode, m_oParam.getMode(), m_astrMode);
     76        loadComboBox(m_oMode, m_oParam.getMode(), m_astrMode);
    9477        m_oThreshold.setText(m_oParam.getThreshold());
    95         loadComboBox( m_oPointsPerCircle, m_oParam.getPointsPerCircle(), m_astrPointsPerCircle);
     78        loadComboBox(m_oPointsPerCircle, m_oParam.getPointsPerCircle(), m_astrPointsPerCircle);
    9679        m_oTag.setText(m_oParam.getTag());
    9780        m_oPreferredValues.setText(m_oParam.getPreferredValues());
    9881    }
    99    
     82
    10083    private void save() {
    101         m_oParam.setName(m_oName.getText());
    102         m_oParam.setDescription(m_oDescription.getText());
    103         m_oParam.setUrl(m_oUrl.getText());
    104         m_oParam.setTileSize(saveComboBox(m_oTileSize, m_astrTileSize));
    105         m_oParam.setResolution(saveComboBox(m_oResolution, m_astrResolution));
    106         //m_oParam.setSkipBottom(m_oSkipBottom.getText());
    107         m_oParam.setMode(saveComboBox(m_oMode, m_astrMode));
    108         m_oParam.setThreshold(m_oThreshold.getText());
    109         m_oParam.setPointsPerCircle(saveComboBox(m_oPointsPerCircle, m_astrPointsPerCircle));
    110         m_oParam.setTag(m_oTag.getText());
    111         m_oParam.setPreferredValues(m_oPreferredValues.getText());
     84        m_oParam.setName(m_oName.getText());
     85        m_oParam.setDescription(m_oDescription.getText());
     86        m_oParam.setUrl(m_oUrl.getText());
     87        m_oParam.setTileSize(saveComboBox(m_oTileSize, m_astrTileSize));
     88        m_oParam.setResolution(saveComboBox(m_oResolution, m_astrResolution));
     89        //m_oParam.setSkipBottom(m_oSkipBottom.getText());
     90        m_oParam.setMode(saveComboBox(m_oMode, m_astrMode));
     91        m_oParam.setThreshold(m_oThreshold.getText());
     92        m_oParam.setPointsPerCircle(saveComboBox(m_oPointsPerCircle, m_astrPointsPerCircle));
     93        m_oParam.setTag(m_oTag.getText());
     94        m_oParam.setPreferredValues(m_oPreferredValues.getText());
    11295    }
    113    
    114     private void loadComboBox( JComboBox<?> c, String strValue, String[] astrValues ) {
     96
     97    private void loadComboBox(JComboBox<?> c, String strValue, String[] astrValues) {
    11598        int pos = 0;
    116         for ( String str: astrValues ) {
    117                 if (strValue.equals(str)) {
    118                 c.setSelectedIndex(pos);
    119                 return;
    120                 }
    121                 pos++;
     99        for (String str: astrValues) {
     100            if (strValue.equals(str)) {
     101                c.setSelectedIndex(pos);
     102                return;
     103            }
     104            pos++;
    122105        }
    123106    }
    124    
    125     private String saveComboBox( JComboBox<?> c, String[] astrValues ) {
     107
     108    private String saveComboBox(JComboBox<?> c, String[] astrValues) {
    126109        return astrValues[c.getSelectedIndex()];
    127110    }
    128    
     111
    129112    public ServerParamDialog(ServerParam param) {
    130113        super(Main.parent, tr("Tracer2") + " - " + tr("Parameter for server request"),
    131                 new String[] { tr("OK"), tr("Cancel") },
     114                new String[] {tr("OK"), tr("Cancel")},
    132115                true);
    133116        if (param == null) {
    134                 m_oParam = new ServerParam();
     117            m_oParam = new ServerParam();
    135118        } else {
    136                 m_oParam = param;
     119            m_oParam = param;
    137120        }
    138        
     121
    139122        contentInsets = new Insets(15, 15, 5, 15);
    140         setButtonIcons(new String[] { "ok.png", "cancel.png" });
    141        
     123        setButtonIcons(new String[] {"ok.png", "cancel.png"});
     124
    142125        m_oTileSize = new JComboBox<>(m_astrTileSize);
    143126        m_oResolution = new JComboBox<>(m_astrResolution);
    144127        m_oMode = new JComboBox<>(m_astrMode);
    145128        m_oPointsPerCircle = new JComboBox<>(m_astrPointsPerCircle);
    146        
     129
    147130        load();
    148        
     131
    149132        addLabelled(tr("Name:"), m_oName);
    150133        addLabelled(tr("Description:"), m_oDescription);
     
    165148        addLabelled(tr("Tag:"), m_oTag);
    166149        addLabelled(tr("Preferred values:"), m_oPreferredValues);
    167        
     150
    168151        setMinimumSize(new Dimension(500, 0));
    169        
     152
    170153        setContent(m_oPanel);
    171154        setupDialog();
    172155    }
    173    
     156
    174157    @Override
    175158    protected void buttonAction(int buttonIndex, ActionEvent evt) {
     
    177160            save();
    178161        } else {
    179                 m_oParam = null;
     162            m_oParam = null;
    180163        }
    181164        super.buttonAction(buttonIndex, evt);
  • applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/preferences/ServerParamList.java

    r30738 r32788  
    1 /**
    2  *  Tracer2 - plug-in for JOSM to capture contours
    3  *
    4  *  This program is free software; you can redistribute it and/or modify
    5  *  it under the terms of the GNU General Public License as published by
    6  *  the Free Software Foundation; either version 2 of the License, or
    7  *  (at your option) any later version.
    8  *
    9  *  This program is distributed in the hope that it will be useful,
    10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  *  GNU General Public License for more details.
    13  *
    14  *  You should have received a copy of the GNU General Public License along
    15  *  with this program; if not, write to the Free Software Foundation, Inc.,
    16  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    17  */
    18 
     1// License: GPL. For details, see LICENSE file.
    192package org.openstreetmap.josm.plugins.tracer2.preferences;
    203
     
    3821        this.m_strFilename = filename;
    3922        if (filename == null) {
    40                 loadDefault();
     23            loadDefault();
    4124        } else {
    42                 load();
     25            load();
    4326        }
    4427    }
     
    4932            String strLine;
    5033            while ((strLine = oReader.readLine()) != null) {
    51                 oBuilder.append(strLine).append('\n');
     34                oBuilder.append(strLine).append('\n');
    5235                if (strLine.equals("")) {
    53                         m_listServerParam.add(ServerParam.unserialize(oBuilder.toString()));
    54                         oBuilder = new StringBuilder();
     36                    m_listServerParam.add(ServerParam.unserialize(oBuilder.toString()));
     37                    oBuilder = new StringBuilder();
    5538                }
    5639            }
    5740        } catch (Exception e) {
    58                 loadDefault();
     41            loadDefault();
    5942        }
    6043    }
     
    6245    public void loadDefault() {
    6346        try (
    64                 InputStream oIP = getClass().getResourceAsStream("/resources/serverParam.cfg");
    65             BufferedReader oReader = new BufferedReader(new InputStreamReader(oIP));
    66         ) {
     47                InputStream oIP = getClass().getResourceAsStream("/resources/serverParam.cfg");
     48                BufferedReader oReader = new BufferedReader(new InputStreamReader(oIP));
     49                ) {
    6750            StringBuilder oBuilder = new StringBuilder();
    6851            String strLine;
    6952            while ((strLine = oReader.readLine()) != null) {
    70                 oBuilder.append(strLine).append('\n');
     53                oBuilder.append(strLine).append('\n');
    7154                if (strLine.equals("")) {
    72                         m_listServerParam.add(ServerParam.unserialize(oBuilder.toString()));
    73                         oBuilder = new StringBuilder();
     55                    m_listServerParam.add(ServerParam.unserialize(oBuilder.toString()));
     56                    oBuilder = new StringBuilder();
    7457                }
    7558            }
    7659        } catch (Exception e) {
    77                 Main.warn("Tracer2 warning: can't load file " + m_strFilename);
     60            Main.warn("Tracer2 warning: can't load file " + m_strFilename);
    7861        }
    7962    }
     
    8265        try (OutputStreamWriter oWriter = new OutputStreamWriter(new FileOutputStream(m_strFilename), "UTF-8")) {
    8366            for (ServerParam param : m_listServerParam) {
    84                 oWriter.write(param.serialize());
     67                oWriter.write(param.serialize());
    8568            }
    8669        } catch (Exception e) {
    87                 Main.warn("Tracer2 warning: can't save file " + m_strFilename);
     70            Main.warn("Tracer2 warning: can't save file " + m_strFilename);
    8871        }
    8972    }
     
    9679        return m_oActivParam;
    9780    }
     81
    9882    public void setActivParam(ServerParam param) {
    99         if ( m_listServerParam.contains(param)) {
    100                 m_oActivParam = param;
    101         }
     83        if (m_listServerParam.contains(param)) {
     84            m_oActivParam = param;
     85        }
    10286    }
    10387
    10488    public List<ServerParam> getEnableParamList() {
    105         List<ServerParam> listParam = new ArrayList<>();
    106         for ( ServerParam param: m_listServerParam) {
    107                 if (param.isEnabled()) {
    108                         listParam.add(param);
    109                 }
     89        List<ServerParam> listParam = new ArrayList<>();
     90        for (ServerParam param: m_listServerParam) {
     91            if (param.isEnabled()) {
     92                listParam.add(param);
     93            }
    11094        }
    111         return listParam;
     95        return listParam;
    11296    }
    11397
    11498    public void addParam(ServerParam param) {
    115         m_listServerParam.add(param);
     99        m_listServerParam.add(param);
    116100    }
    117101
    118102    public void removeParam(ServerParam param) {
    119         param.setEnabled(false);
    120         m_listServerParam.remove(param);
     103        param.setEnabled(false);
     104        m_listServerParam.remove(param);
    121105    }
    122106}
  • applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/preferences/ServerParamPanel.java

    r30047 r32788  
    1 /**
    2  *  Tracer2 - plug-in for JOSM to capture contours
    3  * 
    4  *  This program is free software; you can redistribute it and/or modify
    5  *  it under the terms of the GNU General Public License as published by
    6  *  the Free Software Foundation; either version 2 of the License, or
    7  *  (at your option) any later version.
    8  * 
    9  *  This program is distributed in the hope that it will be useful,
    10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  *  GNU General Public License for more details.
    13  * 
    14  *  You should have received a copy of the GNU General Public License along
    15  *  with this program; if not, write to the Free Software Foundation, Inc.,
    16  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    17  */
    18 
     1// License: GPL. For details, see LICENSE file.
    192package org.openstreetmap.josm.plugins.tracer2.preferences;
    203
     
    3619
    3720public class ServerParamPanel extends JPanel {
    38         /**
    39          *
    40         */
    41         private static final long serialVersionUID = -6174275926314685531L;
    42        
    43         ServerParamList m_listParam;
    44        
     21    /**
     22     *
     23    */
     24    private static final long serialVersionUID = -6174275926314685531L;
     25
     26    ServerParamList m_listParam;
     27
    4528    public ServerParamPanel(ServerParamList listParam) {
    4629        super(new GridBagLayout());
    4730        m_listParam = listParam;
    4831    }
    49    
     32
    5033    public void refresh() {
    5134        removeAll();
     
    5437        gbc.fill = GridBagConstraints.HORIZONTAL;
    5538        gbc.insets = new Insets(2, 5, 2, 5);
    56        
     39
    5740        for (final ServerParam param : m_listParam.getParamList()) {
    5841            gbc.gridx = 0;
    5942            gbc.weightx = 1.0;
    6043            gbc.anchor = GridBagConstraints.WEST;
    61            
     44
    6245            final JCheckBox cbParam = new JCheckBox(param.getName());
    6346            cbParam.setSelected(param.isEnabled());
    6447            cbParam.addActionListener(new ActionListener() {
     48                @Override
    6549                public void actionPerformed(ActionEvent e) {
    6650                    param.setEnabled(cbParam.isSelected());
     
    6852            });
    6953            add(cbParam, gbc);
    70            
     54
    7155            gbc.gridx = 1;
    7256            gbc.weightx = 0;
    7357            gbc.anchor = GridBagConstraints.EAST;
    74            
     58
    7559            final JButton bEdit = new JButton(tr("Edit"));
    7660            bEdit.addActionListener(new ActionListener() {
     
    8468            });
    8569            add(bEdit, gbc);
    86            
     70
    8771            gbc.gridx = 2;
    8872            final JButton bDel = new JButton(tr("Delete"));
     
    9478                            tr("Are you sure?"),
    9579                            JOptionPane.YES_NO_OPTION,
    96                             JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION)
    97                     {
    98                         m_listParam.removeParam(param);
     80                            JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) {
     81                        m_listParam.removeParam(param);
    9982                        refresh();
    10083                    }
     
    10285            });
    10386            add(bDel, gbc);
    104            
     87
    10588            gbc.gridy++;
    10689        }
     
    10891        gbc.fill = GridBagConstraints.NONE;
    10992        gbc.anchor = GridBagConstraints.WEST;
    110        
     93
    11194        JPanel p = new JPanel(new GridBagLayout());
    112        
     95
    11396        final JButton bNew = new JButton(tr("Add new"));
    11497        bNew.addActionListener(new ActionListener() {
     
    118101                dlg.setVisible(true);
    119102                dlg.dispose();
    120                 ServerParam param = ((ServerParamDialog)dlg).getServerParam();
     103                ServerParam param = ((ServerParamDialog) dlg).getServerParam();
    121104                if (param != null && param.getName() != null && (!"".equals(param.getName()))) {
    122105                    m_listParam.addParam(param);
     
    127110        });
    128111        p.add(bNew);
    129        
     112
    130113        final JButton bPredefined = new JButton(tr("Add predefined"));
    131114        bPredefined.addActionListener(new ActionListener() {
    132115            @Override
    133116            public void actionPerformed(ActionEvent arg0) {
    134                 ServerParamList myParamList;
     117                ServerParamList myParamList;
    135118
    136                 myParamList = new ServerParamList(null);
    137                
    138                 ServerParamSelectDialog dialog = new ServerParamSelectDialog(myParamList.getParamList(), null);
    139                
     119                myParamList = new ServerParamList(null);
     120
     121                ServerParamSelectDialog dialog = new ServerParamSelectDialog(myParamList.getParamList(), null);
     122
    140123                if (dialog.getShow()) {
    141124                    JOptionPane pane = new JOptionPane(dialog, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
    142125                    JDialog dlg = pane.createDialog(Main.parent, tr("Tracer2") + " - " + tr("Select predefined parameter"));
    143                         dlg.setVisible(true);
    144                         Object obj = pane.getValue();
     126                    dlg.setVisible(true);
     127                    Object obj = pane.getValue();
    145128                    dlg.dispose();
    146                         if(obj != null && ((Integer)obj) == JOptionPane.OK_OPTION) {
    147                                 ServerParam param = dialog.getSelectedParam();
     129                    if (obj != null && ((Integer) obj) == JOptionPane.OK_OPTION) {
     130                        ServerParam param = dialog.getSelectedParam();
    148131
    149                                 dlg = new ServerParamDialog(param);
    150                                 dlg.setVisible(true);
    151                                 dlg.dispose();
    152                         param = ((ServerParamDialog)dlg).getServerParam();
     132                        dlg = new ServerParamDialog(param);
     133                        dlg.setVisible(true);
     134                        dlg.dispose();
     135                        param = ((ServerParamDialog) dlg).getServerParam();
    153136                        if (param != null && param.getName() != null && (!"".equals(param.getName()))) {
    154137                            m_listParam.addParam(param);
    155138                            param.setEnabled(true);
    156139                        }
    157                         }
     140                    }
    158141                }
    159142                refresh();
     
    161144        });
    162145        p.add(bPredefined);
    163        
     146
    164147        add(p, gbc);
    165148        gbc.gridy++;
    166        
     149
    167150        gbc.weightx = 1.0;
    168151        gbc.weighty = 1.0;
  • applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/preferences/ServerParamPreference.java

    r30047 r32788  
    1 /**
    2  *  Tracer2 - plug-in for JOSM to capture contours
    3  * 
    4  *  This program is free software; you can redistribute it and/or modify
    5  *  it under the terms of the GNU General Public License as published by
    6  *  the Free Software Foundation; either version 2 of the License, or
    7  *  (at your option) any later version.
    8  * 
    9  *  This program is distributed in the hope that it will be useful,
    10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  *  GNU General Public License for more details.
    13  * 
    14  *  You should have received a copy of the GNU General Public License along
    15  *  with this program; if not, write to the Free Software Foundation, Inc.,
    16  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    17  */
    18 
     1// License: GPL. For details, see LICENSE file.
    192package org.openstreetmap.josm.plugins.tracer2.preferences;
    203
     
    3215
    3316public class ServerParamPreference extends DefaultTabPreferenceSetting {
    34        
    35         TracerPlugin m_oPlugin;
    36        
     17
     18    TracerPlugin m_oPlugin;
     19
    3720    public ServerParamPreference(TracerPlugin plugin) {
    38         super("tracer2", tr("Tracer2") + " - " + tr("Preferences"), tr("Modify list of parameter for server request."));
     21        super("tracer2", tr("Tracer2") + " - " + tr("Preferences"), tr("Modify list of parameter for server request."));
    3922
    4023        m_oPlugin = plugin;
    4124    }
    42    
     25
    4326    @Override
    4427    public void addGui(PreferenceTabbedPane gui) {
     
    4932        p.add(sp, GBC.eol().fill(GridBagConstraints.BOTH));
    5033    }
    51    
     34
    5235    @Override
    5336    public boolean ok() {
  • applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/preferences/ServerParamSelectDialog.java

    r30532 r32788  
    1 /**
    2  *  Tracer2 - plug-in for JOSM to capture contours
    3  * 
    4  *  This program is free software; you can redistribute it and/or modify
    5  *  it under the terms of the GNU General Public License as published by
    6  *  the Free Software Foundation; either version 2 of the License, or
    7  *  (at your option) any later version.
    8  * 
    9  *  This program is distributed in the hope that it will be useful,
    10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  *  GNU General Public License for more details.
    13  * 
    14  *  You should have received a copy of the GNU General Public License along
    15  *  with this program; if not, write to the Free Software Foundation, Inc.,
    16  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    17  */
    18 
     1// License: GPL. For details, see LICENSE file.
    192package org.openstreetmap.josm.plugins.tracer2.preferences;
    203
     
    3316
    3417public class ServerParamSelectDialog extends JPanel {
    35        
    36         private JComboBox<String> m_oComboBox;
     18
     19    private JComboBox<String> m_oComboBox;
    3720    List<ServerParam> m_listServerParam;
    3821    private boolean m_bShow = true;
    39    
     22
    4023    public boolean getShow() {
    41         return m_bShow;
     24        return m_bShow;
    4225    }
    43    
    44         public ServerParamSelectDialog(List<ServerParam> listParam) {
    45                 Init(m_listServerParam, null);
    46         }
    47        
    48         public ServerParamSelectDialog(List<ServerParam> listServerParam, ServerParam activParam) {
    49                 Init(listServerParam, activParam);
    50         }
    51        
    52         private void Init(List<ServerParam> listParam, ServerParam activParam) {
     26
     27    public ServerParamSelectDialog(List<ServerParam> listParam) {
     28        Init(m_listServerParam, null);
     29    }
     30
     31    public ServerParamSelectDialog(List<ServerParam> listServerParam, ServerParam activParam) {
     32        Init(listServerParam, activParam);
     33    }
     34
     35    private void Init(List<ServerParam> listParam, ServerParam activParam) {
    5336        GridBagConstraints c = new GridBagConstraints();
    54        
     37
    5538        String[] astr = new String[listParam.size()];
    56        
     39
    5740        m_listServerParam = listParam;
    58        
    59         if ( activParam == null ) {
    60                 activParam = m_listServerParam.get(0);
     41
     42        if (activParam == null) {
     43            activParam = m_listServerParam.get(0);
    6144        }
    6245        int i = 0;
    6346        int pos = 0;
    64         for ( ServerParam param: m_listServerParam ) {
    65                 astr[i] = param.getName();
    66                 if (param.equals(activParam)) {
    67                         pos = i;
    68                 }
    69                 i++;
     47        for (ServerParam param: m_listServerParam) {
     48            astr[i] = param.getName();
     49            if (param.equals(activParam)) {
     50                pos = i;
     51            }
     52            i++;
    7053        }
    7154        m_oComboBox = new JComboBox<>(astr);
    7255        m_oComboBox.setSelectedIndex(pos);
    73        
     56
    7457        setLayout(new GridBagLayout());
    75        
    76         c.insets = new Insets(4,4,4,4);
     58
     59        c.insets = new Insets(4, 4, 4, 4);
    7760        c.gridwidth = 1;
    7861        c.weightx = 0.8;
     
    8164        c.gridy = 0;
    8265        add(new JLabel(tr("Parameter:")), c);
    83        
     66
    8467        c.gridwidth = 1;
    8568        c.gridx = 1;
     
    8770        c.weightx = 1.5;
    8871        add(m_oComboBox, c);
    89         }
    90        
    91         public ServerParam getSelectedParam() {
    92         int nSel = m_oComboBox.getSelectedIndex();
     72    }
     73
     74    public ServerParam getSelectedParam() {
     75        int nSel = m_oComboBox.getSelectedIndex();
    9376        return m_listServerParam.get(nSel);
    9477    }
    95         public void checkComboBox() {
    96         int nSel = m_oComboBox.getSelectedIndex();
     78
     79    public void checkComboBox() {
     80        int nSel = m_oComboBox.getSelectedIndex();
    9781        TracerPlugin.s_oPlugin.m_oParamList.setActivParam(m_listServerParam.get(nSel));
    9882    }
    99        
     83
    10084}
  • applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/server/GetTrace.java

    r31369 r32788  
    1 /**
    2  *  Tracer2 - plug-in for JOSM to capture contours
    3  * 
    4  *  This program is free software; you can redistribute it and/or modify
    5  *  it under the terms of the GNU General Public License as published by
    6  *  the Free Software Foundation; either version 2 of the License, or
    7  *  (at your option) any later version.
    8  * 
    9  *  This program is distributed in the hope that it will be useful,
    10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  *  GNU General Public License for more details.
    13  * 
    14  *  You should have received a copy of the GNU General Public License along
    15  *  with this program; if not, write to the Free Software Foundation, Inc.,
    16  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    17  */
    18 
     1// License: GPL. For details, see LICENSE file.
    192package org.openstreetmap.josm.plugins.tracer2.server;
    203
    214import java.util.ArrayList;
    225
     6import org.openstreetmap.josm.Main;
    237import org.openstreetmap.josm.data.coor.LatLon;
    248import org.openstreetmap.josm.plugins.tracer2.preferences.ServerParam;
    259
    2610public class GetTrace extends Request {
    27        
    28         private LatLon m_oLatLon;
    29         private ServerParam m_oServerParam;
     11
     12    private LatLon m_oLatLon;
     13    private ServerParam m_oServerParam;
    3014    public ArrayList<LatLon> m_listLatLon = new ArrayList<>();
    31    
     15
    3216    /**
    3317     * Trace s simple shape on position.
     
    3519     * @param oParam parameter for tracing.
    3620     */
    37    public GetTrace(LatLon oLatLon, ServerParam oParam) {
    38         m_oLatLon = oLatLon;
    39         m_oServerParam = oParam;
     21    public GetTrace(LatLon oLatLon, ServerParam oParam) {
     22        m_oLatLon = oLatLon;
     23        m_oServerParam = oParam;
    4024    }
    41    
    42    /**
    43     * Thread that get a shape from the Server.
    44     */
     25
     26    /**
     27     * Thread that get a shape from the Server.
     28     */
     29    @Override
    4530    public void run() {
    46         m_listLatLon = new ArrayList<>();
    47        
     31        m_listLatLon = new ArrayList<>();
     32
    4833        try {
    4934            String strResponse = callServer("traceOrder=GetTrace"
    50                         + "&traceLat=" + m_oLatLon.lat()
    51                         + "&traceLon=" + m_oLatLon.lon()
    52                         + "&traceName=" + m_oServerParam.getName()
    53                         + "&traceUrl=" + m_oServerParam.getUrl()
    54                         + "&traceTileSize=" + m_oServerParam.getTileSize()
    55                         + "&traceResolution=" + m_oServerParam.getResolution()
    56                         //+ "&traceSkipBottom=" + param.getSkipBottom()
    57                         + "&traceMode=" + m_oServerParam.getMode()
    58                         + "&traceThreshold=" + m_oServerParam.getThreshold()
    59                         + "&tracePointsPerCircle=" + m_oServerParam.getPointsPerCircle()
    60             );
    61            
     35                    + "&traceLat=" + m_oLatLon.lat()
     36                    + "&traceLon=" + m_oLatLon.lon()
     37                    + "&traceName=" + m_oServerParam.getName()
     38                    + "&traceUrl=" + m_oServerParam.getUrl()
     39                    + "&traceTileSize=" + m_oServerParam.getTileSize()
     40                    + "&traceResolution=" + m_oServerParam.getResolution()
     41                    //+ "&traceSkipBottom=" + param.getSkipBottom()
     42                    + "&traceMode=" + m_oServerParam.getMode()
     43                    + "&traceThreshold=" + m_oServerParam.getThreshold()
     44                    + "&tracePointsPerCircle=" + m_oServerParam.getPointsPerCircle()
     45                    );
     46
    6247            if (strResponse == null || strResponse.equals("")) {
    63                 return;
     48                return;
    6449            }
    65            
     50
    6651            if (checkError(strResponse) == true) {
    67                 return;
     52                return;
    6853            }
    69            
     54
    7055            if (strResponse.startsWith("(")) {
    71                 GetPoints(strResponse);
    72                 return;
     56                GetPoints(strResponse);
     57                return;
    7358            }
    7459            String[] astrParts = strResponse.split("&");
    7560
    7661            for (String strPart : astrParts) {
    77                 if (strPart.contains("tracePoints="))
    78                 {
    79                         String strPoints = strPart.replace("tracePoints=", "");
    80                         GetPoints(strPoints);
    81                         return;
    82                 }
     62                if (strPart.contains("tracePoints=")) {
     63                    String strPoints = strPart.replace("tracePoints=", "");
     64                    GetPoints(strPoints);
     65                    return;
     66                }
    8367            }
    8468        } catch (Exception e) {
    85                 //m_listLatLon = new ArrayList<>();
     69            //m_listLatLon = new ArrayList<>();
     70            Main.warn(e);
    8671        }
    8772    }
    88    
    89    
     73
    9074    /**
    9175     * Get points from string
    9276     */
    93      public void GetPoints(String strResponse) {
    94          try {
    95              if (!strResponse.startsWith("(") || !strResponse.endsWith(")")){
    96                 return;
    97              }
    98              strResponse = strResponse.substring(1, strResponse.length()-1);
    99              
    100              ArrayList<LatLon> nodelist = new ArrayList<>();
    101              
    102              String[] astrPoints = strResponse.split("\\)\\(");
    103              for (String strPoint : astrPoints) {
    104                  String[] astrParts = strPoint.split(":");
    105                  double x = Double.parseDouble(astrParts[0]);
    106                  double y = Double.parseDouble(astrParts[1]);
    107                  nodelist.add(new LatLon(x, y));
    108              }
    109              m_listLatLon = nodelist;
    110          } catch (Exception e) {
    111                 //m_listLatLon = new ArrayList<>();
    112          }
    113      }
    114    
     77    public void GetPoints(String strResponse) {
     78        try {
     79            if (!strResponse.startsWith("(") || !strResponse.endsWith(")")) {
     80                return;
     81            }
     82            strResponse = strResponse.substring(1, strResponse.length()-1);
     83
     84            ArrayList<LatLon> nodelist = new ArrayList<>();
     85
     86            String[] astrPoints = strResponse.split("\\)\\(");
     87            for (String strPoint : astrPoints) {
     88                String[] astrParts = strPoint.split(":");
     89                double x = Double.parseDouble(astrParts[0]);
     90                double y = Double.parseDouble(astrParts[1]);
     91                nodelist.add(new LatLon(x, y));
     92            }
     93            m_listLatLon = nodelist;
     94        } catch (Exception e) {
     95            //m_listLatLon = new ArrayList<>();
     96            Main.warn(e);
     97        }
     98    }
     99
    115100}
  • applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/server/GetVersion.java

    r30077 r32788  
    1 /**
    2  *  Tracer2 - plug-in for JOSM to capture contours
    3  * 
    4  *  This program is free software; you can redistribute it and/or modify
    5  *  it under the terms of the GNU General Public License as published by
    6  *  the Free Software Foundation; either version 2 of the License, or
    7  *  (at your option) any later version.
    8  * 
    9  *  This program is distributed in the hope that it will be useful,
    10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  *  GNU General Public License for more details.
    13  * 
    14  *  You should have received a copy of the GNU General Public License along
    15  *  with this program; if not, write to the Free Software Foundation, Inc.,
    16  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    17  */
    18 
     1// License: GPL. For details, see LICENSE file.
    192package org.openstreetmap.josm.plugins.tracer2.server;
    203
     4import org.openstreetmap.josm.Main;
     5
    216public class GetVersion extends Request {
    22        
     7
    238    public int m_nVersionMajor = -1;
    249    public int m_nVersionMinor = -1;
    2510    public int m_nVersionBuild = -1;
    2611    public int m_nVersionRevision = -1;
    27    
     12
    2813    /**
    2914     * Get version from server.
    3015     */
    31         public GetVersion() {
     16    public GetVersion() {
    3217    }
    33    
    34         /**
    35          * Thread that get the version of the Server.
    36          */
     18
     19    /**
     20     * Thread that get the version of the Server.
     21     */
     22    @Override
    3723    public void run() {
    3824        try {
    39             String strResponse = callServer("traceOrder=GetVersion" );
    40            
     25            String strResponse = callServer("traceOrder=GetVersion");
     26
    4127            if (strResponse == null || strResponse.equals("")) {
    42                 return;
     28                return;
    4329            }
    44            
     30
    4531            if (checkError(strResponse) == true) {
    46                 return;
     32                return;
    4733            }
    48            
     34
    4935            String[] astrParts = strResponse.split(":");
    5036            if (astrParts.length < 2) {
    51                 return;
     37                return;
    5238            }
    5339            if (astrParts.length > 0) m_nVersionMajor = Integer.parseInt(astrParts[0]);
     
    5642            if (astrParts.length > 3) m_nVersionRevision = Integer.parseInt(astrParts[3]);
    5743        } catch (Exception e) {
     44            Main.warn(e);
    5845        }
    5946    }
    60    
     47
    6148}
  • applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/server/Request.java

    r30062 r32788  
    1 /**
    2  *  Tracer2 - plug-in for JOSM to capture contours
    3  * 
    4  *  This program is free software; you can redistribute it and/or modify
    5  *  it under the terms of the GNU General Public License as published by
    6  *  the Free Software Foundation; either version 2 of the License, or
    7  *  (at your option) any later version.
    8  * 
    9  *  This program is distributed in the hope that it will be useful,
    10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  *  GNU General Public License for more details.
    13  * 
    14  *  You should have received a copy of the GNU General Public License along
    15  *  with this program; if not, write to the Free Software Foundation, Inc.,
    16  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    17  */
    18 
     1// License: GPL. For details, see LICENSE file.
    192package org.openstreetmap.josm.plugins.tracer2.server;
    203
     
    3114
    3215public class Request extends Thread {
    33        
     16
    3417    static final String URL = "http://localhost:49243/";
    35    
     18
    3619    public Request() {
    3720    }
    38    
     21
    3922    /**
    4023     * Send request to the server.
     
    5336            return oBuilder.toString();
    5437        } catch (ConnectException e) {
    55             JOptionPane.showMessageDialog(Main.parent, tr("Tracer2Server isn''t running. Please start the Server.\nIf you don''t have the server, please download it from\n{0}.",
    56                         "http://sourceforge.net/projects/tracer2server/") , tr("Error"),  JOptionPane.ERROR_MESSAGE);
     38            JOptionPane.showMessageDialog(Main.parent,
     39                    tr("Tracer2Server isn''t running. Please start the Server.\nIf you don''t have the server, please download it from\n{0}.",
     40                            "http://sourceforge.net/projects/tracer2server/"), tr("Error"), JOptionPane.ERROR_MESSAGE);
    5741            return "";
    5842        } catch (Exception e) {
    59             JOptionPane.showMessageDialog(Main.parent, tr("Tracer2Server hasn''t found anything.") + "\n", tr("Error"),  JOptionPane.ERROR_MESSAGE);
    60                 return "";
    61         }
     43            JOptionPane.showMessageDialog(Main.parent, tr("Tracer2Server hasn''t found anything.") + "\n",
     44                    tr("Error"), JOptionPane.ERROR_MESSAGE);
     45            return "";
     46        }
    6247    }
    63    
     48
    6449    /**
    6550     * Checks errors in response from the server.
     
    7055        String strIdentifier = "&traceError=";
    7156        if (strResponse.contains(strIdentifier)) {
    72                 String strError = strResponse.replaceFirst(strIdentifier, "").trim();
    73             JOptionPane.showMessageDialog(Main.parent, tr("Tracer2Server has detected an error.") + "\n" + strError, tr("Error"),  JOptionPane.ERROR_MESSAGE);
    74                 return true;
     57            String strError = strResponse.replaceFirst(strIdentifier, "").trim();
     58            JOptionPane.showMessageDialog(Main.parent, tr("Tracer2Server has detected an error.") + "\n" + strError,
     59                    tr("Error"), JOptionPane.ERROR_MESSAGE);
     60            return true;
    7561        }
    7662        return false;
    7763    }
    78    
     64
     65    @Override
    7966    public void run() {
    8067    }
    81    
    8268}
Note: See TracChangeset for help on using the changeset viewer.