Changeset 32554 in osm


Ignore:
Timestamp:
2016-07-04T13:45:59+02:00 (9 years ago)
Author:
darya
Message:

oneroad test fix opens editor

Location:
applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/actions/IncompleteMembersDownloadThread.java

    r32522 r32554  
    2121        }
    2222
    23         @SuppressWarnings("unused")
    24         private void realRun() {
    25                 // TODO
    26         }
    2723
    2824        @Override
     
    4036                                        if (RouteUtils.isTwoDirectionRoute(currentRelation)) {
    4137                                                list.add(currentRelation);
    42 //                                              for (RelationMember rm : currentRelation.getMembers()) {
    43 //                                                      if (rm.hasRole("stop") || rm.hasRole("stop_entry_only") || rm.hasRole("stop_exit_only")
    44 //                                                                      || rm.hasRole("platform") || rm.hasRole("platform_entry_only")
    45 //                                                                      || rm.hasRole("platform_exit_only")) {
    46 //                                                              List<OsmPrimitive> referrers = rm.getMember().getReferrers();
    47 //                                                              for (OsmPrimitive referrer : referrers) {
    48 //                                                                      if (referrer.getType().equals(OsmPrimitiveType.RELATION)
    49 //                                                                                      && referrer.hasTag("public_transport", "stop_area")) {
    50 //                                                                              list.add(referrer);
    51 //                                                                      }
    52 //                                                              }
    53 //                                                      }
    54 //                                              }
    5538                                        }
    5639                                }
  • applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/IncompleteMembersDownloadDialog.java

    r32522 r32554  
    66import javax.swing.JOptionPane;
    77import javax.swing.JPanel;
    8 import javax.swing.SwingUtilities;
    98
    109public class IncompleteMembersDownloadDialog extends JPanel {
     
    2625        private int selectedOption;
    2726
    28         public IncompleteMembersDownloadDialog(long id) {
     27        public IncompleteMembersDownloadDialog() {
     28               
    2929                selectedOption = Integer.MIN_VALUE;
    30 
    31 //              message = tr("The relation (id={0}) has incomplete members.\n"+
    32 //                  "They need to be downloaded to proceed with validation of this relation.\nDo you want to download incomplete members?", id);
    3330                message = tr("Route relations have incomplete members.\nThey need to be downloaded to proceed with validation.\nDo you want to download them?");
    3431                checkbox = new JCheckBox(tr("Remember my choice and do not ask me again in this session"));
     
    5653                }
    5754
    58                 // this.createDialog(); // FIXME
    5955               
    60 
    6156                Object[] params = {message, checkbox};
    6257                selectedOption = JOptionPane.showOptionDialog(this, params, tr("PT_Assistant Fetch Request"), JOptionPane.YES_NO_OPTION,
     
    7469        }
    7570
    76         @SuppressWarnings("unused")
    77         private void createDialog() {
    78                 if (!SwingUtilities.isEventDispatchThread()) {
    79                         Object[] params = {message, checkbox};
    80                         selectedOption = JOptionPane.showOptionDialog(null, params, tr("Fetch Request"), JOptionPane.YES_NO_OPTION,
    81                                         JOptionPane.QUESTION_MESSAGE, null, options, 0);
    82                 } else {
    83                         SwingUtilities.invokeLater(new Runnable() {
    84                                 @Override
    85                                 public void run() {
    86                                         createDialog();
    87                                 }
    88                         });
    89 
    90                 }
    91         }
    92 
    9371}
  • applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/PTAssitantValidatorTest.java

    r32522 r32554  
    33import static org.openstreetmap.josm.tools.I18n.tr;
    44
     5import java.lang.reflect.InvocationTargetException;
    56import java.util.ArrayList;
    67import java.util.List;
    78
    89import javax.swing.JOptionPane;
     10import javax.swing.SwingUtilities;
    911
    1012import org.openstreetmap.josm.command.Command;
     
    4042                layer = new PTAssistantLayer();
    4143                DataSet.addSelectionListener(layer);
    42                
     44
    4345        }
    4446
     
    5052                }
    5153
    52                 // Download incomplete members. If the download does not work, finish.
     54                // Download incomplete members. If the download does not work, return
     55                // and do not do any testing.
    5356                if (r.hasIncompleteMembers()) {
    54                         boolean downloadSuccessful = this.downloadIncompleteMembers(r);
     57
     58                        boolean downloadSuccessful = this.downloadIncompleteMembers();
    5559                        if (!downloadSuccessful) {
    5660                                return;
    5761                        }
     62
    5863                }
    5964
     
    6166                        return;
    6267                }
    63                
    6468
    6569                // Check individual ways using the oneway direction test and the road
     
    8690         * @return true if successful, false if not successful
    8791         */
    88         private boolean downloadIncompleteMembers(Relation r) {
    89                 IncompleteMembersDownloadDialog incompleteMembersDownloadDialog = new IncompleteMembersDownloadDialog(
    90                                 r.getId());
    91 
    92                 int userInput = incompleteMembersDownloadDialog.getUserSelection();
    93 
    94                 if (userInput == JOptionPane.YES_OPTION) {
     92        private boolean downloadIncompleteMembers() {
     93
     94                final int[] userSelection = { 0 };
     95
     96                try {
     97
     98                        if (SwingUtilities.isEventDispatchThread()) {
     99
     100                                userSelection[0] = realDownloadIncompleteMembers();
     101
     102                        } else {
     103
     104                                SwingUtilities.invokeAndWait(new Runnable() {
     105                                        @Override
     106                                        public void run() {
     107                                                try {
     108                                                        userSelection[0] = realDownloadIncompleteMembers();
     109                                                } catch (InterruptedException e) {
     110                                                        e.printStackTrace();
     111                                                }
     112
     113                                        }
     114                                });
     115
     116                        }
     117
     118                } catch (InterruptedException | InvocationTargetException e) {
     119                        return false;
     120                }
     121
     122                if (userSelection[0] == JOptionPane.YES_OPTION) {
    95123
    96124                        Thread t = new IncompleteMembersDownloadThread();
     
    100128                                        t.wait();
    101129                                } catch (InterruptedException e) {
    102                                         // TODO: give the user a message that testing stops
    103130                                        return false;
    104131                                }
    105132                        }
    106                         return true;
    107                 }
    108 
    109                 return false;
     133
     134                }
     135
     136                return true;
     137
     138        }
     139
     140        /**
     141         * Shows the dialog asking the user about an incomplete member download
     142         *
     143         * @return user's selection
     144         * @throws InterruptedException
     145         */
     146        private int realDownloadIncompleteMembers() throws InterruptedException {
     147
     148                IncompleteMembersDownloadDialog incompleteMembersDownloadDialog = new IncompleteMembersDownloadDialog();
     149                return incompleteMembersDownloadDialog.getUserSelection();
     150
    110151        }
    111152
     
    229270                List<Command> commands = new ArrayList<>();
    230271
    231                 if (testError.getCode() == ERROR_CODE_ROAD_TYPE
    232                                 || testError.getCode() == ERROR_CODE_CONSTRUCTION) {
     272                if (testError.getCode() == ERROR_CODE_ROAD_TYPE || testError.getCode() == ERROR_CODE_CONSTRUCTION) {
    233273                        commands.add(WayChecker.fixErrorByRemovingWay(testError));
    234274                }
    235                
     275
    236276                if (testError.getCode() == ERROR_CODE_DIRECTION) {
    237277                        commands.add(WayChecker.fixErrorByZooming(testError));
     278
    238279                }
    239280
     
    279320        }
    280321
    281        
    282322        @SuppressWarnings("unused")
    283323        private void performDummyTest(Relation r) {
  • applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/WayChecker.java

    r32497 r32554  
    77import java.util.List;
    88
     9import org.openstreetmap.josm.Main;
     10import org.openstreetmap.josm.actions.AutoScaleAction;
    911import org.openstreetmap.josm.command.ChangeCommand;
    1012import org.openstreetmap.josm.command.Command;
     
    1921import org.openstreetmap.josm.data.validation.Test;
    2022import org.openstreetmap.josm.data.validation.TestError;
     23import org.openstreetmap.josm.gui.dialogs.relation.GenericRelationEditor;
     24import org.openstreetmap.josm.gui.dialogs.relation.RelationDialogManager;
    2125import org.openstreetmap.josm.gui.dialogs.relation.sort.WayConnectionType;
    2226import org.openstreetmap.josm.gui.dialogs.relation.sort.WayConnectionTypeCalculator;
     27import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    2328import org.openstreetmap.josm.plugins.pt_assistant.utils.RouteUtils;
    2429
     
    275280                }
    276281               
    277 //              Collection<? extends OsmPrimitive> primitives = testError.getPrimitives();
    278 //              Relation originalRelation = (Relation) primitives.iterator().next();
     282                 long startTime = System.currentTimeMillis();
     283               
     284                Collection<? extends OsmPrimitive> primitives = testError.getPrimitives();
     285                Relation originalRelation = (Relation) primitives.iterator().next();
    279286                Collection<?> highlighted = testError.getHighlighted();
    280287                Way wayToHighlight = (Way) highlighted.iterator().next();
    281288                ArrayList<OsmPrimitive> primitivesToHighlight = new ArrayList<>(1);
    282289                primitivesToHighlight.add(wayToHighlight);
    283 
     290               
     291                long endTime = System.currentTimeMillis();
     292                System.out.println("obtaining primitives: " + (endTime - startTime));
     293                startTime = endTime;
     294               
    284295                SelectCommand command = new SelectCommand(primitivesToHighlight);
    285296               
     297                endTime = System.currentTimeMillis();
     298                System.out.println("constructing command: " + (endTime - startTime));
     299                startTime = endTime;
     300               
     301                AutoScaleAction.zoomTo(primitivesToHighlight);
     302               
     303                endTime = System.currentTimeMillis();
     304                System.out.println("AutoScaleAction done: " + (endTime - startTime));
     305                startTime = endTime;
     306               
     307                List<OsmDataLayer> listOfLayers = Main.getLayerManager().getLayersOfType(OsmDataLayer.class);
     308                for (OsmDataLayer osmDataLayer: listOfLayers) {
     309                        if (osmDataLayer.data == originalRelation.getDataSet()) {
     310                                endTime = System.currentTimeMillis();
     311                                System.out.println("getting to the necessary layer: " + (endTime - startTime));
     312                                startTime = endTime;
     313                               
     314                                GenericRelationEditor editor = new GenericRelationEditor(osmDataLayer, originalRelation, originalRelation.getMembersFor(primitivesToHighlight));
     315                                endTime = System.currentTimeMillis();
     316                                System.out.println("creating relation editor: " + (endTime - startTime));
     317                                startTime = endTime;
     318                               
     319                                RelationDialogManager.getRelationDialogManager().register(osmDataLayer, originalRelation, editor);
     320                               
     321                                endTime = System.currentTimeMillis();
     322                                System.out.println("registering relation editor: " + (endTime - startTime));
     323                                startTime = endTime;
     324                               
     325                                editor.setVisible(true);
     326                               
     327                                endTime = System.currentTimeMillis();
     328                                System.out.println("setting editor visible: " + (endTime - startTime));
     329                                startTime = endTime;
     330                               
     331                                break;
     332                        }
     333                }
     334               
     335                endTime = System.currentTimeMillis();
     336                System.out.println("whatever else: " + (endTime - startTime));
     337                startTime = endTime;
     338                                               
    286339                return command;
    287340               
Note: See TracChangeset for help on using the changeset viewer.