Changeset 31166 in osm for applications/editors/josm


Ignore:
Timestamp:
2015-05-31T20:55:36+02:00 (10 years ago)
Author:
nokutu
Message:

Improved downloading behaviour, shortcut changed to ctrl+alt+shift+m and when the layer is active the button changes the selected layer

Location:
applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryData.java

    r31164 r31166  
    2020 *
    2121 * @author nokutu
     22 * @see MapillaryImage
     23 * @see MapillarySequence
    2224 *
    2325 */
     
    178180                                e.printStackTrace();
    179181                        }
    180                         if (image.next() != null)
     182                        if (image.next() != null) {
    181183                                new MapillaryCache(image.next().getKey(),
    182                                                 MapillaryCache.Type.FULL_IMAGE, prev, 200000, 200000,
     184                                                MapillaryCache.Type.THUMBNAIL, prev, 200000, 200000,
    183185                                                new HashMap<String, String>()).submit(this, false);
    184                         if (image.previous() != null)
     186                                if (image.next().next() != null)
     187                                        new MapillaryCache(image.next().next().getKey(),
     188                                                        MapillaryCache.Type.THUMBNAIL, prev, 200000,
     189                                                        200000, new HashMap<String, String>()).submit(this,
     190                                                        false);
     191                        }
     192                        if (image.previous() != null) {
    185193                                new MapillaryCache(image.previous().getKey(),
    186                                                 MapillaryCache.Type.FULL_IMAGE, prev, 200000, 200000,
     194                                                MapillaryCache.Type.THUMBNAIL, prev, 200000, 200000,
    187195                                                new HashMap<String, String>()).submit(this, false);
     196                                if (image.previous().previous() != null)
     197                                        new MapillaryCache(image.previous().previous().getKey(),
     198                                                        MapillaryCache.Type.THUMBNAIL, prev, 200000,
     199                                                        200000, new HashMap<String, String>()).submit(this,
     200                                                        false);
     201                        }
    188202                }
    189203                if (Main.map != null) {
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryDownloadAction.java

    r31164 r31166  
    2727                                tr("Create Mapillary layer."), Shortcut.registerShortcut(
    2828                                                "menu:Mapillary", tr("Menu: {0}", tr("Mapillary")),
    29                                                 KeyEvent.VK_M, Shortcut.ALT_SHIFT), false);
     29                                                KeyEvent.VK_M, Shortcut.ALT_CTRL_SHIFT), false);
    3030        }
    3131
     
    4444                for (Layer layer : Main.map.mapView.getAllLayers()) {
    4545                        if (layer instanceof MapillaryLayer) {
    46                                 System.out.println("Tuturu");
    4746                                this.layer = (MapillaryLayer) layer;
    4847                        }
     
    5150                if (this.layer == null)
    5251                        layer = new MapillaryLayer();
    53                 else
     52                else {
    5453                        this.layer.download();
     54                        if (Main.map.mapView.getActiveLayer() != layer)
     55                                Main.map.mapView.setActiveLayer(layer);
     56                        else
     57                                Main.map.mapView.setActiveLayer(Main.map.mapView.getEditLayer());
     58                }
    5559        }
    5660
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryImage.java

    r31164 r31166  
    77 *
    88 * @author nokutu
    9  *
     9 * @see MapillarySequence
     10 * @see MapillaryData
    1011 */
    1112public class MapillaryImage {
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryImageDisplay.java

    r31164 r31166  
    3232
    3333        /** The image currently displayed */
    34         private transient Image image = null;
     34        private transient BufferedImage image = null;
    3535
    3636        /**
     
    319319                }
    320320                repaint();
     321        }
     322       
     323        public BufferedImage getImage() {
     324                return this.image;
    321325        }
    322326
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryLayer.java

    r31164 r31166  
    4343                MouseListener, DataSetListener, EditLayerChangeListener {
    4444
     45        public static Boolean INSTANCED = false;
     46        public static CacheAccess<String, BufferedImageCacheEntry> CACHE;
     47       
    4548        private final MapillaryData mapillaryData;
    4649        private List<Bounds> bounds;
    4750        private MapillaryToggleDialog tgd;
    48         public static Boolean INSTANCED = false;
    49         public static CacheAccess<String, BufferedImageCacheEntry> CACHE;
    5051
    5152        public MapillaryLayer() {
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryPlugin.java

    r31164 r31166  
    2020
    2121        public static final ImageIcon ICON = new ImageProvider("icon24.png").get();
    22         public static final ImageIcon ICON16 = new ImageProvider("icon16.png").get();
    23         public static final ImageIcon ICON16SELECTED = new ImageProvider("icon16selected.png").get();
     22        public static final ImageIcon ICON16 = new ImageProvider("icon16.png")
     23                        .get();
     24        public static final ImageIcon ICON16SELECTED = new ImageProvider(
     25                        "icon16selected.png").get();
    2426        public static final int ICON_SIZE = 24;
    25        
     27
    2628        MapillaryDownloadAction downloadAction;
    2729        MapillaryExportAction exportAction;
    28        
     30
    2931        public static JMenuItem DOWNLOAD_MENU;
    3032        public static JMenuItem EXPORT_MENU;
     
    3537                exportAction = new MapillaryExportAction();
    3638
    37                 DOWNLOAD_MENU = MainMenu.add(Main.main.menu.imageryMenu, downloadAction, false, 0);
    38                 EXPORT_MENU = MainMenu.add(Main.main.menu.fileMenu, exportAction, false, 14);
     39                DOWNLOAD_MENU = MainMenu.add(Main.main.menu.imageryMenu,
     40                                downloadAction, false, 0);
     41                EXPORT_MENU = MainMenu.add(Main.main.menu.fileMenu, exportAction,
     42                                false, 14);
    3943                EXPORT_MENU.setEnabled(false);
    4044
     
    4751        public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) {
    4852                if (oldFrame == null && newFrame != null) { // map frame added
    49                         MapillaryToggleDialog.deleteInstance ();
    5053                }
    51                 if (oldFrame != null && newFrame == null) { // map frame added
    52                         System.out.println("Mapframe destroyed");
     54                if (oldFrame != null && newFrame == null) { // map frame destroyed
     55                        MapillaryToggleDialog.deleteInstance();
    5356                }
    5457        }
    55        
     58
    5659        public static void setMenuEnabled(JMenuItem menu, boolean value) {
    5760                menu.setEnabled(value);
    5861        }
    5962}
    60 
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillarySequence.java

    r31164 r31166  
    88 *
    99 * @author nokutu
     10 * @see MapillaryImage
    1011 *
    1112 */
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryToggleDialog.java

    r31164 r31166  
    4646        public MapillaryImageDisplay mapillaryImageDisplay;
    4747
     48        private MapillaryCache imageCache;
     49        private MapillaryCache thumbnailCache;
     50
    4851        final JPanel buttons;
    4952
     
    9093                                CacheAccess<String, BufferedImageCacheEntry> prev;
    9194                                try {
     95                                        this.mapillaryImageDisplay.setImage(null);
    9296                                        prev = JCSCacheManager.getCache("mapillary");
    93                                         MapillaryCache cache = new MapillaryCache(image.getKey(),
     97                                        if (thumbnailCache != null)
     98                                                thumbnailCache.cancelOutstandingTasks();
     99                                        thumbnailCache = new MapillaryCache(image.getKey(),
     100                                                        MapillaryCache.Type.THUMBNAIL, prev, 200000,
     101                                                        200000, new HashMap<String, String>());
     102                                        thumbnailCache.submit(this, false);
     103                                       
     104                                        if (imageCache != null)
     105                                                imageCache.cancelOutstandingTasks();
     106                                        imageCache = new MapillaryCache(image.getKey(),
    94107                                                        MapillaryCache.Type.FULL_IMAGE, prev, 200000,
    95108                                                        200000, new HashMap<String, String>());
    96                                         cache.submit(this, false);
     109                                        imageCache.submit(this, false);
    97110                                } catch (IOException e) {
    98111                                        // TODO Auto-generated catch block
     
    181194                                }
    182195                        });
    183                 } else {
     196                } else if (data != null){
    184197                        try {
    185198                                BufferedImage img = ImageIO.read(new ByteArrayInputStream(data
    186199                                                .getContent()));
    187                                 mapillaryImageDisplay.setImage(img);
     200                                if (this.mapillaryImageDisplay.getImage() == null)
     201                                        mapillaryImageDisplay.setImage(img);
     202                                else if (img.getHeight() > this.mapillaryImageDisplay
     203                                                .getImage().getHeight()) {
     204                                        mapillaryImageDisplay.setImage(img);
     205                                }
    188206                        } catch (IOException e) {
    189207                                // TODO Auto-generated catch block
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/downloads/MapillaryExportDownloadThread.java

    r31163 r31166  
    2020import org.openstreetmap.josm.plugins.mapillary.cache.MapillaryCache;
    2121
    22 
    23 
     22/**
     23 * This is the thread that downloads one of the images that are going to be
     24 * exported and writes them in a {@link ArrayBlockQueue}.
     25 *
     26 * @author nokutu
     27 * @see MapillaryExportManager
     28 */
    2429public class MapillaryExportDownloadThread implements Runnable,
    2530                ICachedLoaderListener {
     
    3338
    3439        public MapillaryExportDownloadThread(MapillaryImage image,
    35                         ArrayBlockingQueue<BufferedImage> queue, ArrayBlockingQueue<MapillaryImage> queueImages) {
     40                        ArrayBlockingQueue<BufferedImage> queue,
     41                        ArrayBlockingQueue<MapillaryImage> queueImages) {
    3642                url = "https://d1cuyjsrcm0gby.cloudfront.net/" + image.getKey()
    3743                                + "/thumb-2048.jpg";
     
    6470                        queue.put(ImageIO.read(new ByteArrayInputStream(data.getContent())));
    6571                        queueImages.put(image);
    66                        
     72
    6773                } catch (InterruptedException e) {
    6874                        // TODO Auto-generated catch block
     
    7278                        e.printStackTrace();
    7379                }
    74 
    7580        }
    76 
    7781}
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/downloads/MapillaryExportManager.java

    r31163 r31166  
    1414import org.xml.sax.SAXException;
    1515
     16/**
     17 * Export main thread. Exportation works by creating a
     18 * {@link MapillaryWriterThread} and several
     19 * {@link MapillaryExportDownloadThread}. The second ones download every single
     20 * image that is going to be exported and stores them in an
     21 * {@link ArrayBlockingQueue}. Then it is picked by the first one and written on
     22 * the selected folder. Each image will be named by its key.
     23 *
     24 * @author nokutu
     25 *
     26 */
    1627public class MapillaryExportManager extends PleaseWaitRunnable {
    1728
    1829        ArrayBlockingQueue<BufferedImage> queue;
    1930        ArrayBlockingQueue<MapillaryImage> queueImages;
    20        
     31
    2132        List<MapillaryImage> images;
    2233        String path;
     
    4354        protected void realRun() throws SAXException, IOException,
    4455                        OsmTransferException {
    45                 Thread writer = new Thread(new MapillaryExportWriterThread(path, queue, queueImages,
    46                                 images.size(), this.getProgressMonitor()));
     56                Thread writer = new Thread(new MapillaryExportWriterThread(path, queue,
     57                                queueImages, images.size(), this.getProgressMonitor()));
    4758                writer.start();
    4859                ThreadPoolExecutor ex = new ThreadPoolExecutor(20, 35, 25,
     
    5061                for (MapillaryImage image : images) {
    5162                        try {
    52                                 ex.execute(new MapillaryExportDownloadThread(image, queue, queueImages));
     63                                ex.execute(new MapillaryExportDownloadThread(image, queue,
     64                                                queueImages));
    5365                        } catch (Exception e) {
    5466                                System.out.println("Exception");
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/downloads/MapillaryExportWriterThread.java

    r31163 r31166  
    1212import org.openstreetmap.josm.plugins.mapillary.MapillaryImage;
    1313
    14 
     14/**
     15 * Writes the images from the queue in the HD.
     16 *
     17 * @author nokutu
     18 * @see MapillaryExportManager
     19 */
    1520public class MapillaryExportWriterThread implements Runnable {
    1621
     
    2025        private int amount;
    2126        private ProgressMonitor monitor;
    22        
     27
    2328        public MapillaryExportWriterThread(String path,
    24                         ArrayBlockingQueue<BufferedImage> queue,ArrayBlockingQueue<MapillaryImage> queueImages, int amount, ProgressMonitor monitor) {
     29                        ArrayBlockingQueue<BufferedImage> queue,
     30                        ArrayBlockingQueue<MapillaryImage> queueImages, int amount,
     31                        ProgressMonitor monitor) {
    2532                this.path = path;
    2633                this.queue = queue;
     
    5158                                e.printStackTrace();
    5259                        }
    53                        
     60
    5461                        monitor.worked(PleaseWaitProgressMonitor.PROGRESS_BAR_MAX / amount);
    5562                        monitor.setCustomText("Downloaded " + (i + 1) + "/" + amount);
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/downloads/MapillarySequenceDownloadThread.java

    r31165 r31166  
    2020
    2121/**
    22  * This Class downloads all the pictures in a given sequence and creates the
    23  * needed MapillaryImage and MapillarySequence objects
     22 * This thread downloads all the pictures in a given sequence and creates the
     23 * needed MapillaryImage and MapillarySequence objects. It just stores the ones
     24 * in the given area.
    2425 *
    2526 * @author nokutu
    26  *
     27 * @see MapillarySquareDownloadManagarThread
    2728 */
    2829public class MapillarySequenceDownloadThread implements Runnable {
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/downloads/MapillarySquareDownloadManagerThread.java

    r31165 r31166  
    1414 *
    1515 * @author nokutu
    16  *
     16 *
     17 * @see MapillaryDownloader
    1718 */
    1819public class MapillarySquareDownloadManagerThread implements Runnable {
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/downloads/MapillarySquareDownloadThread.java

    r31165 r31166  
    1515import org.openstreetmap.josm.plugins.mapillary.MapillaryImage;
    1616
     17/**
     18 * This thread downloads one of the images in a given area.
     19 *
     20 * @author nokutu
     21 * @see MapillarySqueareDownloadManagerThread
     22 */
    1723public class MapillarySquareDownloadThread implements Runnable {
    1824        String url;
     
    3238                        br = new BufferedReader(new InputStreamReader(
    3339                                        new URL(url).openStream()));
    34                         /*String jsonLine = "";
    35                         while (br.ready()) {
    36                                 jsonLine += br.readLine();
    37                         }*/
     40                        /*
     41                         * String jsonLine = ""; while (br.ready()) { jsonLine +=
     42                         * br.readLine(); }
     43                         */
    3844                        JsonObject jsonobj = Json.createReader(br).readObject();
    3945                        if (!jsonobj.getBoolean("more")) {
     
    4753                                        image = jsonarr.getJsonObject(i);
    4854                                        images.add(new MapillaryImage(image.getString("key"), image
    49                                                         .getJsonNumber("lat")
    50                                                         .doubleValue(), image.getJsonNumber("lon").doubleValue(), image
     55                                                        .getJsonNumber("lat").doubleValue(), image
     56                                                        .getJsonNumber("lon").doubleValue(), image
    5157                                                        .getJsonNumber("ca").doubleValue()));
    5258                                } catch (Exception e) {
Note: See TracChangeset for help on using the changeset viewer.