Index: /applications/editors/josm/plugins/videomapping/.checkstyle
===================================================================
--- /applications/editors/josm/plugins/videomapping/.checkstyle	(revision 32630)
+++ /applications/editors/josm/plugins/videomapping/.checkstyle	(revision 32630)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
+  <local-check-config name="JOSM" location="/JOSM/tools/checkstyle/josm_checks.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <fileset name="all" enabled="true" check-config-name="JOSM" local="true">
+    <file-match-pattern match-pattern="." include-pattern="true"/>
+  </fileset>
+  <filter name="DerivedFiles" enabled="true"/>
+  <filter name="FilesFromPackage" enabled="true">
+    <filter-data value="data"/>
+    <filter-data value="images"/>
+    <filter-data value="styles"/>
+    <filter-data value="resources"/>
+    <filter-data value="scripts"/>
+  </filter>
+</fileset-config>
Index: /applications/editors/josm/plugins/videomapping/.project
===================================================================
--- /applications/editors/josm/plugins/videomapping/.project	(revision 32629)
+++ /applications/editors/josm/plugins/videomapping/.project	(revision 32630)
@@ -17,7 +17,13 @@
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 	</natures>
 </projectDescription>
Index: /applications/editors/josm/plugins/videomapping/.settings/org.eclipse.jdt.ui.prefs
===================================================================
--- /applications/editors/josm/plugins/videomapping/.settings/org.eclipse.jdt.ui.prefs	(revision 32630)
+++ /applications/editors/josm/plugins/videomapping/.settings/org.eclipse.jdt.ui.prefs	(revision 32630)
@@ -0,0 +1,60 @@
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=false
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_type_arguments=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=true
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_type_arguments=false
Index: /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/VideoObserver.java
===================================================================
--- /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/VideoObserver.java	(revision 32629)
+++ /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/VideoObserver.java	(revision 32630)
@@ -5,6 +5,7 @@
 public interface VideoObserver {
     void playing(long time);
+
     void jumping(long time);
-    void metadata(long time,boolean subtitles);
 
+    void metadata(long time, boolean subtitles);
 }
Index: /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/VideoPlugin.java
===================================================================
--- /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/VideoPlugin.java	(revision 32629)
+++ /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/VideoPlugin.java	(revision 32630)
@@ -49,16 +49,16 @@
  */
 public class VideoPlugin extends Plugin implements LayerChangeListener, ActiveLayerChangeListener {
-    private JMenu VMenu,VDeinterlacer;
-    private JosmAction VAdd,/*VRemove,*/VStart,Vbackward,Vforward,VJump,Vfaster,Vslower,Vloop;
-    private JRadioButtonMenuItem VIntBob,VIntNone,VIntLinear;
-    private JCheckBoxMenuItem VCenterIcon,VSubTitles;
-    private JMenuItem VJumpLength,VLoopLength;
-    private final String PROP_MRU="videomapping.mru";
-    private final String PROP_AUTOCENTER="videomapping.autocenter";
-    private final String PROP_JUMPLENGTH="videomapping.jumplength";
-    private final String PROP_LOOPLENGTH="videomapping.looplength"; 
+    private JMenu VMenu, VDeinterlacer;
+    private JosmAction VAdd, /*VRemove,*/ VStart, Vbackward, Vforward, VJump, Vfaster, Vslower, Vloop;
+    private JRadioButtonMenuItem VIntBob, VIntNone, VIntLinear;
+    private JCheckBoxMenuItem VCenterIcon, VSubTitles;
+    private JMenuItem VJumpLength, VLoopLength;
+    private final String PROP_MRU = "videomapping.mru";
+    private final String PROP_AUTOCENTER = "videomapping.autocenter";
+    private final String PROP_JUMPLENGTH = "videomapping.jumplength";
+    private final String PROP_LOOPLENGTH = "videomapping.looplength";
 //    private String deinterlacer;
     private boolean autoCenter;
-    private Integer jumpLength,loopLength;
+    private Integer jumpLength, loopLength;
     private String mostRecentFolder;
     private GpxLayer gpsLayer;
@@ -71,6 +71,6 @@
         super(info);
         VideoEngine.setupPlayer();
-        Main.getLayerManager().addLayerChangeListener(this);				
-        Main.getLayerManager().addActiveLayerChangeListener(this);                            
+        Main.getLayerManager().addLayerChangeListener(this);
+        Main.getLayerManager().addActiveLayerChangeListener(this);
         createMenusAndShortCuts();
         enableVideoControlMenus(false);
@@ -80,17 +80,18 @@
 
     private void createMenusAndShortCuts() {
-        VMenu = Main.main.menu.addMenu("Video", tr("Video"), KeyEvent.VK_Q, Main.main.menu.getDefaultMenuPos(),ht("/Plugin/Videomapping"));
+        VMenu = Main.main.menu.addMenu("Video", tr("Video"), KeyEvent.VK_Q, Main.main.menu.getDefaultMenuPos(), ht("/Plugin/Videomapping"));
         VMenu.setEnabled(false);
-        VAdd= new JosmAction(tr("Import Video"),"videomapping",tr("Sync a video against this GPS track"),null,false) {
-            @Override public void actionPerformed(ActionEvent arg0) {                 
+        VAdd = new JosmAction(tr("Import Video"), "videomapping", tr("Sync a video against this GPS track"), null, false) {
+            @Override public void actionPerformed(ActionEvent arg0) {
                     importVideoFile();
                 }
         };
-        /*VRemove=*/ new JosmAction(tr("Remove Video"),"videomapping",tr("removes current video from layer"),null,false) {
+        /*VRemove=*/ new JosmAction(tr("Remove Video"), "videomapping", tr("removes current video from layer"), null, false) {
             @Override public void actionPerformed(ActionEvent arg0) {
             }
         };
+        // CHECKSTYLE.OFF: LineLength
         VStart = new JosmAction(tr("Play/Pause"), "audio-playpause", tr("starts/pauses video playback"),
-                Shortcut.registerShortcut("videomapping:startstop",tr("Video: {0}", tr("Play/Pause")),KeyEvent.VK_NUMPAD5, Shortcut.DIRECT), false, "vm_play_pause",false) {            
+                Shortcut.registerShortcut("videomapping:startstop", tr("Video: {0}", tr("Play/Pause")), KeyEvent.VK_NUMPAD5, Shortcut.DIRECT), false, "vm_play_pause", false) {
             @Override public void actionPerformed(ActionEvent e) {
                 if (gpsVideoPlayer != null) {
@@ -100,5 +101,5 @@
         };
         Vbackward = new JosmAction(tr("Backward"), "audio-prev", tr("jumps n sec back"),
-                Shortcut.registerShortcut("videomapping:backward",tr("Video: {0}", tr("Backward")),KeyEvent.VK_NUMPAD4, Shortcut.DIRECT), false, "vm_prev",false) {
+                Shortcut.registerShortcut("videomapping:backward", tr("Video: {0}", tr("Backward")), KeyEvent.VK_NUMPAD4, Shortcut.DIRECT), false, "vm_prev", false) {
             @Override public void actionPerformed(ActionEvent e) {
                 if (gpsVideoPlayer != null) {
@@ -107,6 +108,6 @@
             }
         };
-        Vforward= new JosmAction(tr("Forward"), "audio-next", tr("jumps n sec forward"),
-                Shortcut.registerShortcut("videomapping:forward",tr("Video: {0}", tr("Forward")),KeyEvent.VK_NUMPAD6, Shortcut.DIRECT), false, "vm_next",false) {
+        Vforward = new JosmAction(tr("Forward"), "audio-next", tr("jumps n sec forward"),
+                Shortcut.registerShortcut("videomapping:forward", tr("Video: {0}", tr("Forward")), KeyEvent.VK_NUMPAD6, Shortcut.DIRECT), false, "vm_next", false) {
             @Override public void actionPerformed(ActionEvent e) {
                 if (gpsVideoPlayer != null) {
@@ -115,7 +116,6 @@
             }
         };
-        Vfaster= new JosmAction(tr("Faster"), "audio-faster", tr("faster playback"),
-                Shortcut.registerShortcut("videomapping:faster",tr("Video: {0}", tr("Faster")),KeyEvent.VK_NUMPAD8, Shortcut.DIRECT), false, "vm_faster",false) {
-            
+        Vfaster = new JosmAction(tr("Faster"), "audio-faster", tr("faster playback"),
+                Shortcut.registerShortcut("videomapping:faster", tr("Video: {0}", tr("Faster")), KeyEvent.VK_NUMPAD8, Shortcut.DIRECT), false, "vm_faster", false) {
             @Override public void actionPerformed(ActionEvent e) {
                 if (gpsVideoPlayer != null) {
@@ -124,7 +124,7 @@
             }
         };
-        Vslower= new JosmAction(tr("Slower"), "audio-slower", tr("slower playback"),
-                Shortcut.registerShortcut("videomapping:slower",tr("Video: {0}", tr("Slower")),KeyEvent.VK_NUMPAD2, Shortcut.DIRECT), false, "vm_slower",false) {
-            
+
+        Vslower = new JosmAction(tr("Slower"), "audio-slower", tr("slower playback"),
+                Shortcut.registerShortcut("videomapping:slower", tr("Video: {0}", tr("Slower")), KeyEvent.VK_NUMPAD2, Shortcut.DIRECT), false, "vm_slower", false) {
             @Override public void actionPerformed(ActionEvent e) {
                 if (gpsVideoPlayer != null) {
@@ -133,13 +133,13 @@
             }
         };
-        VJump= new JosmAction(tr("Jump To"), "jumpto", tr("jumps to the entered gps time"),null, false) {
-            @Override public void actionPerformed(ActionEvent e) {
-            	showJumpTo();
-            }
-                            
-            
-        };
-        Vloop= new JosmAction(tr("Loop"), "loop", tr("loops n sec around current position"),
-                Shortcut.registerShortcut("videomapping:loop",tr("Video: {0}", tr("Loop")),KeyEvent.VK_NUMPAD7, Shortcut.DIRECT), false) {            
+
+        VJump = new JosmAction(tr("Jump To"), "jumpto", tr("jumps to the entered gps time"), null, false) {
+            @Override public void actionPerformed(ActionEvent e) {
+                showJumpTo();
+            }
+        };
+
+        Vloop = new JosmAction(tr("Loop"), "loop", tr("loops n sec around current position"),
+                Shortcut.registerShortcut("videomapping:loop", tr("Video: {0}", tr("Loop")), KeyEvent.VK_NUMPAD7, Shortcut.DIRECT), false) {
             @Override public void actionPerformed(ActionEvent e) {
                 if (gpsVideoPlayer != null) {
@@ -148,7 +148,7 @@
             }
         };
-        
+
         //now the options menu
-        VCenterIcon = new JCheckBoxMenuItem(new JosmAction(tr("Keep centered"), (String)null, tr("follows the video icon automatically"),null, false,"vm_keepcentered",false) {            
+        VCenterIcon = new JCheckBoxMenuItem(new JosmAction(tr("Keep centered"), (String) null, tr("follows the video icon automatically"), null, false, "vm_keepcentered", false) {
             @Override public void actionPerformed(ActionEvent e) {
                 if (videoPositionLayer != null) {
@@ -157,6 +157,6 @@
             }
         });
-        
-        VSubTitles = new JCheckBoxMenuItem(new JosmAction(tr("Subtitles"), (String)null, tr("Show subtitles in video"),null, false,"vm_subtitles",false) {
+
+        VSubTitles = new JCheckBoxMenuItem(new JosmAction(tr("Subtitles"), (String) null, tr("Show subtitles in video"), null, false, "vm_subtitles", false) {
             @Override public void actionPerformed(ActionEvent e) {
                 if (gpsVideoPlayer != null) {
@@ -165,25 +165,25 @@
             }
         });
-        
-        VJumpLength = new JMenuItem(new JosmAction(tr("Jump length"), (String)null, tr("Set the length of a jump"),null, false,"vm_jumplen",false) {            
-            @Override public void actionPerformed(ActionEvent e) {
-            	Object[] possibilities = {"200", "500", "1000", "2000", "10000"};
-                String s = (String)JOptionPane.showInputDialog(Main.parent,tr("Jump in video for x ms"),tr("Jump length"),JOptionPane.QUESTION_MESSAGE,null,possibilities,jumpLength);
-                jumpLength=Integer.getInteger(s);
+
+        VJumpLength = new JMenuItem(new JosmAction(tr("Jump length"), (String) null, tr("Set the length of a jump"), null, false, "vm_jumplen", false) {
+            @Override public void actionPerformed(ActionEvent e) {
+                Object[] possibilities = {"200", "500", "1000", "2000", "10000"};
+                String s = (String) JOptionPane.showInputDialog(Main.parent, tr("Jump in video for x ms"), tr("Jump length"), JOptionPane.QUESTION_MESSAGE, null, possibilities, jumpLength);
+                jumpLength = Integer.getInteger(s);
                 saveProperties();
             }
         });
-        
-        VLoopLength = new JMenuItem(new JosmAction(tr("Loop length"), (String)null, tr("Set the length around a looppoint"),null, false,"vm_looplen",false) {            
-            @Override public void actionPerformed(ActionEvent e) {
-            	Object[] possibilities = {"500", "1000", "3000", "5000", "10000"};
-                String s = (String)JOptionPane.showInputDialog(Main.parent,tr("Jump in video for x ms"),tr("Loop length"),JOptionPane.QUESTION_MESSAGE,null,possibilities,loopLength);
-                loopLength=Integer.getInteger(s);
+
+        VLoopLength = new JMenuItem(new JosmAction(tr("Loop length"), (String) null, tr("Set the length around a looppoint"), null, false, "vm_looplen", false) {
+            @Override public void actionPerformed(ActionEvent e) {
+                Object[] possibilities = {"500", "1000", "3000", "5000", "10000"};
+                String s = (String) JOptionPane.showInputDialog(Main.parent, tr("Jump in video for x ms"), tr("Loop length"), JOptionPane.QUESTION_MESSAGE, null, possibilities, loopLength);
+                loopLength = Integer.getInteger(s);
                 saveProperties();
             }
         });
         //TODO read deinterlacers list out of videoengine
-        VDeinterlacer= new JMenu("Deinterlacer");
-        VIntNone= new JRadioButtonMenuItem(new JosmAction(tr("none"), (String)null, tr("no deinterlacing"),null, false,"vm_deinterlacer",false) {            
+        VDeinterlacer = new JMenu("Deinterlacer");
+        VIntNone = new JRadioButtonMenuItem(new JosmAction(tr("none"), (String) null, tr("no deinterlacing"), null, false, "vm_deinterlacer", false) {
             @Override public void actionPerformed(ActionEvent e) {
                 if (gpsVideoPlayer != null) {
@@ -192,5 +192,5 @@
             }
         });
-        VIntBob= new JRadioButtonMenuItem(new JosmAction("bob", (String)null, tr("deinterlacing using line doubling"),null, false,"vm_bobdeinterlace",false) {
+        VIntBob = new JRadioButtonMenuItem(new JosmAction("bob", (String) null, tr("deinterlacing using line doubling"), null, false, "vm_bobdeinterlace", false) {
             @Override public void actionPerformed(ActionEvent e) {
                 if (gpsVideoPlayer != null) {
@@ -199,5 +199,5 @@
             }
         });
-        VIntLinear= new JRadioButtonMenuItem(new JosmAction("linear", (String)null, tr("deinterlacing using linear interpolation"),null, false,"vm_lineardeinterlace",false) {
+        VIntLinear = new JRadioButtonMenuItem(new JosmAction("linear", (String) null, tr("deinterlacing using linear interpolation"), null, false, "vm_lineardeinterlace", false) {
             @Override public void actionPerformed(ActionEvent e) {
                 if (gpsVideoPlayer != null) {
@@ -206,8 +206,9 @@
             }
         });
+        // CHECKSTYLE.ON: LineLength
         VDeinterlacer.add(VIntNone);
         VDeinterlacer.add(VIntBob);
-        VDeinterlacer.add(VIntLinear);        
-        VMenu.add(VAdd);        
+        VDeinterlacer.add(VIntLinear);
+        VMenu.add(VAdd);
         VMenu.add(VStart);
         VMenu.add(Vbackward);
@@ -229,9 +230,9 @@
         fc.setSelectedFile(new File(mostRecentFolder));
         if (fc.showOpenDialog(Main.parent) != JFileChooser.CANCEL_OPTION) {
-            mostRecentFolder=fc.getSelectedFile().getAbsolutePath();
+            mostRecentFolder = fc.getSelectedFile().getAbsolutePath();
             saveProperties();
             if (videoPositionLayer == null && gpsLayer != null) {
                 videoPositionLayer = new VideoPositionLayer(gpsLayer);
-                gpsVideoPlayer = new GPSVideoPlayer(new SimpleDateFormat("hh:mm:ss") ,videoPositionLayer);
+                gpsVideoPlayer = new GPSVideoPlayer(new SimpleDateFormat("hh:mm:ss"), videoPositionLayer);
                 gpsVideoPlayer.setJumpLength(jumpLength);
                 gpsVideoPlayer.setLoopLength(loopLength);
@@ -241,5 +242,5 @@
                 gpsVideoPlayer.addVideo(fc.getSelectedFile());
             } else {
-                JOptionPane.showMessageDialog(Main.parent, 
+                JOptionPane.showMessageDialog(Main.parent,
                     tr("VLC library is not correctly initialized."+
                             " Please check that VLC {0} is correctly installed on your system."+
@@ -247,5 +248,5 @@
                     tr("Error"), JOptionPane.ERROR_MESSAGE);
             }
-        }		
+        }
     }
 
@@ -257,48 +258,48 @@
         Vfaster.setEnabled(b);
         Vslower.setEnabled(b);
-        VJump.setEnabled(b);		
-    }
-	
+        VJump.setEnabled(b);
+    }
+
     private void setDefaults() {
-        autoCenter=false;
-//		deinterlacer="";
-        jumpLength=1000;
-        loopLength=6000;
-        mostRecentFolder=System.getProperty("user.home");		
-    }
-	
+        autoCenter = false;
+//        deinterlacer="";
+        jumpLength = 1000;
+        loopLength = 6000;
+        mostRecentFolder = System.getProperty("user.home");
+    }
+
     private void loadProperties() {
-        String temp;        
-        temp=Main.pref.get(PROP_AUTOCENTER);
-        if((temp!=null)&&(temp.length()!=0))
-        	autoCenter=Boolean.getBoolean(temp);        
-        temp=Main.pref.get(PROP_JUMPLENGTH);
-        if((temp!=null)&&(temp.length()!=0))
-        	jumpLength=Integer.valueOf(temp);
-        temp=Main.pref.get(PROP_LOOPLENGTH);
-        if((temp!=null)&&(temp.length()!=0))
-        	loopLength=Integer.valueOf(temp);
-        temp=Main.pref.get(PROP_MRU);
-        if((temp!=null)&&(temp.length()!=0))
-        	mostRecentFolder=Main.pref.get(PROP_MRU);        
-    }
-	
-    private void saveProperties(){
+        String temp;
+        temp = Main.pref.get(PROP_AUTOCENTER);
+        if ((temp != null) && (temp.length() != 0))
+            autoCenter = Boolean.getBoolean(temp);
+        temp = Main.pref.get(PROP_JUMPLENGTH);
+        if ((temp != null) && (temp.length() != 0))
+            jumpLength = Integer.valueOf(temp);
+        temp = Main.pref.get(PROP_LOOPLENGTH);
+        if ((temp != null) && (temp.length() != 0))
+            loopLength = Integer.valueOf(temp);
+        temp = Main.pref.get(PROP_MRU);
+        if ((temp != null) && (temp.length() != 0))
+            mostRecentFolder = Main.pref.get(PROP_MRU);
+    }
+
+    private void saveProperties() {
         Main.pref.put(PROP_AUTOCENTER, autoCenter);
         Main.pref.put(PROP_JUMPLENGTH, jumpLength.toString());
-        Main.pref.put(PROP_LOOPLENGTH, loopLength.toString());  
-    	Main.pref.put(PROP_MRU, mostRecentFolder);
-    }
-	
+        Main.pref.put(PROP_LOOPLENGTH, loopLength.toString());
+        Main.pref.put(PROP_MRU, mostRecentFolder);
+    }
+
     private void showJumpTo() {
         try {
-            JOptionPane d=new JOptionPane(tr("Jump to"), JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION);	    	
-            SimpleDateFormat gpsTimeFormat= new SimpleDateFormat("HH:mm:ss");
-            String timerange=gpsTimeFormat.format(videoPositionLayer.getFirstWayPoint().getTime())+" - ";
-            timerange=timerange+gpsTimeFormat.format(videoPositionLayer.getLastWayPoint().getTime());
+            JOptionPane d = new JOptionPane(tr("Jump to"), JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
+            SimpleDateFormat gpsTimeFormat = new SimpleDateFormat("HH:mm:ss");
+            String timerange = gpsTimeFormat.format(videoPositionLayer.getFirstWayPoint().getTime())+" - ";
+            timerange = timerange+gpsTimeFormat.format(videoPositionLayer.getLastWayPoint().getTime());
             d.add(new JLabel(timerange)); //TODO for some reason this doesn't work -> use dialog
             final JFormattedTextField inp = new JFormattedTextField(new MaskFormatter("##:##:##"));
-            inp.setText(gpsTimeFormat.format( videoPositionLayer.getGPSDate()));
-            inp.setInputVerifier(new InputVerifier() {					
+            inp.setText(gpsTimeFormat.format(videoPositionLayer.getGPSDate()));
+            inp.setInputVerifier(new InputVerifier() {
                     @Override
                     public boolean verify(JComponent input) {
@@ -314,8 +315,7 @@
                 }
             });
-            if (JOptionPane.showConfirmDialog(Main.parent,inp, tr("Jump to GPS time"),JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION)
-            {
+            if (JOptionPane.showConfirmDialog(Main.parent, inp, tr("Jump to GPS time"), JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) {
                     //add the day to the time
-                    Date t = gpsTimeFormat.parse(inp.getText());	    		
+                    Date t = gpsTimeFormat.parse(inp.getText());
                     Calendar time = Calendar.getInstance();
                     Calendar date = Calendar.getInstance();
@@ -323,10 +323,9 @@
                     date.setTime(videoPositionLayer.getFirstWayPoint().getTime());
                     time.set(date.get(Calendar.YEAR), date.get(Calendar.MONTH), date.get(Calendar.DATE));
-                if (t!=null)
-                {
+                if (t != null) {
                     videoPositionLayer.jump(time.getTime());
-                }                       
-            }
-    	} catch (ParseException e1) {
+                }
+            }
+        } catch (ParseException e1) {
             e1.printStackTrace();
         }
@@ -337,12 +336,12 @@
         if (l instanceof GpxLayer) {
             VAdd.setEnabled(true);
-            gpsLayer = (GpxLayer) l;            
+            gpsLayer = (GpxLayer) l;
             //TODO append to GPS Layer menu
-        }   
-    }
-    
+        }
+    }
+
     @Override
     public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) {
-        handleLayer(Main.getLayerManager().getActiveLayer());  
+        handleLayer(Main.getLayerManager().getActiveLayer());
     }
 
Index: /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/VideoPositionLayer.java
===================================================================
--- /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/VideoPositionLayer.java	(revision 32629)
+++ /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/VideoPositionLayer.java	(revision 32630)
@@ -41,5 +41,5 @@
     private DateFormat gpsTimeFormat;
     private WayPoint iconPosition;
-    private final int GPS_INTERVALL=1000;
+    private final int GPS_INTERVALL = 1000;
     private GPSVideoPlayer gpsVideoPlayer;
     private boolean autoCenter;
@@ -48,8 +48,8 @@
         super("videolayer");
         layerIcon = new ImageIcon("images/videomapping.png");
-        gpsTrack=importGPSLayer(gpsLayer.data);
-        gpsTimeFormat= new SimpleDateFormat("HH:mm:ss");
-        iconPosition=gpsTrack.get(0);
-        Main.getLayerManager().addLayer(this);        
+        gpsTrack = importGPSLayer(gpsLayer.data);
+        gpsTimeFormat = new SimpleDateFormat("HH:mm:ss");
+        iconPosition = gpsTrack.get(0);
+        Main.getLayerManager().addLayer(this);
     }
 
@@ -76,10 +76,10 @@
     private void paintGpsTrack(Graphics2D g, MapView map) {
         g.setColor(Color.YELLOW);
-        for(WayPoint n: gpsTrack) {
+        for (WayPoint n: gpsTrack) {
             Point p = map.getPoint(n.getEastNorth());
             g.drawOval(p.x - 2, p.y - 2, 4, 4);
         }
     }
-    
+
     private void paintSyncedTrack(Graphics2D g, MapView map) {
         g.setColor(Color.GREEN);
@@ -88,6 +88,6 @@
                 Point p = map.getPoint(n.getEastNorth());
                 g.drawOval(p.x - 2, p.y - 2, 4, 4);
-            }                
-        } 
+            }
+        }
     }
 
@@ -96,8 +96,8 @@
             Point p = map.getPoint(iconPosition.getEastNorth());
             layerIcon.paintIcon(null, g, p.x-layerIcon.getIconWidth()/2, p.y-layerIcon.getIconHeight()/2);
-            g.drawString(gpsTimeFormat.format(iconPosition.getTime()),p.x-15,p.y-15);
-        }
-    }
-/*    
+            g.drawString(gpsTimeFormat.format(iconPosition.getTime()), p.x-15, p.y-15);
+        }
+    }
+/*
     private void paintInterpolatedSegment(Graphics2D g) {
         g.setColor(Color.CYAN);
@@ -107,5 +107,5 @@
             g.drawOval(p.x - 2, p.y - 2, 4, 4);
         }
-        
+
     }
 
@@ -129,10 +129,10 @@
         test.setHours(14);
         test.setMinutes(50);
-        test.setSeconds(33);        
+        test.setSeconds(33);
         ls.add(getWayPointBefore(new Date(test.getTime()+500)));
         ls.add(interpolate(new Date(test.getTime()+500)));
         return ls;
     }
-*/    
+*/
     //creates a waypoint for the corresponding time
     public WayPoint interpolate(Date GPSTime) {
@@ -142,25 +142,25 @@
         }
         long diff = GPSTime.getTime() - before.getTime().getTime();
-        assert diff>=0;
-        assert diff<GPS_INTERVALL;
-        float perc=((float)diff/(float)GPS_INTERVALL)*100;        
-        return interpolate(before,perc);
-    }
-    
+        assert diff >= 0;
+        assert diff < GPS_INTERVALL;
+        float perc = ((float) diff/(float) GPS_INTERVALL)*100;
+        return interpolate(before, perc);
+    }
+
     public WayPoint getWayPointBefore(Date GPSTime) {
-        assert GPSTime.after(getFirstWayPoint().getTime())==true;
-        assert GPSTime.before(getLastWayPoint().getTime())==true;
-        
-        Date first=getFirstWayPoint().getTime();
-        long diff=GPSTime.getTime()-first.getTime();
+        assert GPSTime.after(getFirstWayPoint().getTime()) == true;
+        assert GPSTime.before(getLastWayPoint().getTime()) == true;
+
+        Date first = getFirstWayPoint().getTime();
+        long diff = GPSTime.getTime()-first.getTime();
         //assumes that GPS intervall is constant
-        int id = (int) (diff/GPS_INTERVALL);        
+        int id = (int) (diff/GPS_INTERVALL);
         return 0 <= id && id < gpsTrack.size() ? gpsTrack.get(id) : null;
     }
-    
+
     public WayPoint getFirstWayPoint() {
         return gpsTrack.isEmpty() ? null : gpsTrack.get(0);
     }
-    
+
     public WayPoint getLastWayPoint() {
         return gpsTrack.isEmpty() ? null : gpsTrack.get(gpsTrack.size()-1);
@@ -169,37 +169,37 @@
     //interpolates a waypoint between this and the following waypoint at percent
     private WayPoint interpolate(WayPoint first, float percent) {
-        assert (percent>0);
-        assert (percent<100);
-        double dX,dY;
-        WayPoint leftP,rightP;
-        
-        WayPoint next=gpsTrack.get(gpsTrack.indexOf(first)+1);       
+        assert (percent > 0);
+        assert (percent < 100);
+        double dX, dY;
+        WayPoint leftP, rightP;
+
+        WayPoint next = gpsTrack.get(gpsTrack.indexOf(first)+1);
         //determine which point is what
-        leftP=getLeftPoint(first, next);
-        rightP=getRightPoint(first,next);
+        leftP = getLeftPoint(first, next);
+        rightP = getRightPoint(first, next);
         //calc increment
-        percent=percent/100;
-        dX=(rightP.getCoor().lon()-leftP.getCoor().lon())*percent;
-        dY=(rightP.getCoor().lat()-leftP.getCoor().lat())*percent;
+        percent = percent/100;
+        dX = (rightP.getCoor().lon()-leftP.getCoor().lon())*percent;
+        dY = (rightP.getCoor().lat()-leftP.getCoor().lat())*percent;
         //move in the right direction
-        if (first==leftP) {
-            return new WayPoint(new LatLon(leftP.getCoor().lat()+dY,leftP.getCoor().lon()+dX));
+        if (first == leftP) {
+            return new WayPoint(new LatLon(leftP.getCoor().lat()+dY, leftP.getCoor().lon()+dX));
         } else {
-            return new WayPoint(new LatLon(rightP.getCoor().lat()-dY,rightP.getCoor().lon()-dX));
-        }
-    }
-    
-    private WayPoint getLeftPoint(WayPoint p1,WayPoint p2) {
-        if(p1.getCoor().lon()<p2.getCoor().lon()) return p1; else return p2;
-    }
-    
+            return new WayPoint(new LatLon(rightP.getCoor().lat()-dY, rightP.getCoor().lon()-dX));
+        }
+    }
+
+    private WayPoint getLeftPoint(WayPoint p1, WayPoint p2) {
+        if (p1.getCoor().lon() < p2.getCoor().lon()) return p1; else return p2;
+    }
+
     private WayPoint getRightPoint(WayPoint p1, WayPoint p2) {
-        if(p1.getCoor().lon()>p2.getCoor().lon()) return p1; else return p2;
-    }
-    
+        if (p1.getCoor().lon() > p2.getCoor().lon()) return p1; else return p2;
+    }
+
     public Date getGPSDate() {
         return iconPosition.getTime();
     }
-    
+
     public WayPoint getCurrentWayPoint() {
         return iconPosition;
@@ -209,5 +209,5 @@
         return gpsTrack;
     }
-    
+
     public void jump(Date GPSTime) {
         setIconPosition(getWayPointBefore(GPSTime));
@@ -225,6 +225,6 @@
     public void mouseReleased(MouseEvent e) {
         //only leftclicks on our layer
-        if(e.getButton() == MouseEvent.BUTTON1) {
-            WayPoint wp = getNearestWayPoint(e.getPoint());                
+        if (e.getButton() == MouseEvent.BUTTON1) {
+            WayPoint wp = getNearestWayPoint(e.getPoint());
             if (wp != null) {
                 if (gpsVideoPlayer.areAllVideosSynced()) {
@@ -233,5 +233,5 @@
                 }
                 setIconPosition(wp);
-            }            
+            }
         }
     }
@@ -239,9 +239,9 @@
     //finds the first waypoint that is nearby the given point
     private WayPoint getNearestWayPoint(Point mouse) {
-        final int MAX=10;
+        final int MAX = 10;
         Point p;
-        Rectangle rect = new Rectangle(mouse.x-MAX/2,mouse.y-MAX/2,MAX,MAX);
+        Rectangle rect = new Rectangle(mouse.x-MAX/2, mouse.y-MAX/2, MAX, MAX);
         //iterate through all possible notes
-        for(WayPoint n : gpsTrack) {
+        for (WayPoint n : gpsTrack) {
             p = Main.map.mapView.getPoint(n.getEastNorth());
             if (rect.contains(p)) {
@@ -279,5 +279,5 @@
 
     @Override
-    public boolean isMergable(Layer arg0) {        
+    public boolean isMergable(Layer arg0) {
         return false;
     }
@@ -290,5 +290,5 @@
     public void visitBoundingBox(BoundingXYVisitor arg0) {
     }
-    
+
     public void setGPSVideoPlayer(GPSVideoPlayer player) {
         gpsVideoPlayer = player;
Index: /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/GPSVideo.java
===================================================================
--- /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/GPSVideo.java	(revision 32629)
+++ /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/GPSVideo.java	(revision 32630)
@@ -15,104 +15,104 @@
 // a specific synced video
 public class GPSVideo extends Video {
-	private static final String SYNC_KEY = "synced";
-	public JComponent SyncComponent;
-	private WayPoint syncWayPoint;
-	private long syncVideoTime;
-	private Date start;
-	private Date end;
-	public WayPoint firstWayPoint;
-	public WayPoint lastWayPoint;
-	private VideoPositionLayer videoPositionLayer;
-	
-	public GPSVideo(File filename, String id, MediaPlayerFactory mediaPlayerFactory) {
-		super(filename,id,mediaPlayerFactory);
-	}
-	
-	public GPSVideo(Video video) {
-		super(video.filename, video.id, video.mediaPlayerFactory);
-		this.player = video.player;
-	}
-	
-	//calculates attributes basing upon the current position
-	public void doSync(VideoPositionLayer layer) {
-		this.videoPositionLayer = layer;
-		if (isSynced())
-			removeSyncedWayPoints();
-		syncWayPoint = layer.getCurrentWayPoint();
-		syncVideoTime = getCurrentTime();
-		//calc now, to avoid calculations on every click
-		if (syncWayPoint != null) {
-    		start = new Date(syncWayPoint.getTime().getTime()-syncVideoTime);
-    		end = new Date(start.getTime()+player.getLength());
-		} else {
-		    start = null;
-		    end = null;
-		}
-		firstWayPoint = getFirstGPS();
-		lastWayPoint = getLastGPS();
-		markSyncedWayPoints();
-		Main.map.mapView.repaint();
-	}
+    private static final String SYNC_KEY = "synced";
+    public JComponent SyncComponent;
+    private WayPoint syncWayPoint;
+    private long syncVideoTime;
+    private Date start;
+    private Date end;
+    public WayPoint firstWayPoint;
+    public WayPoint lastWayPoint;
+    private VideoPositionLayer videoPositionLayer;
 
-	//make sure we don't leave the GPS track
-	private WayPoint getFirstGPS() {
-		if (start == null || start.before(videoPositionLayer.getFirstWayPoint().getTime())) {
-			return videoPositionLayer.getFirstWayPoint();
-		} else {
-			return videoPositionLayer.getWayPointBefore(start);
-		}
-	}
-	
-	//make sure we don't leave the GPS track
-	private WayPoint getLastGPS() {
-		if (end == null || end.after(videoPositionLayer.getLastWayPoint().getTime())) {
-			return videoPositionLayer.getLastWayPoint();
-		} else {
-			return videoPositionLayer.getWayPointBefore(end);
-		}
-	}
-	
-	private void removeSyncedWayPoints() {
-		List <WayPoint> track = videoPositionLayer.getTrack();
-		int start = track.indexOf(firstWayPoint);
-		int end = track.indexOf(lastWayPoint);
+    public GPSVideo(File filename, String id, MediaPlayerFactory mediaPlayerFactory) {
+        super(filename, id, mediaPlayerFactory);
+    }
+
+    public GPSVideo(Video video) {
+        super(video.filename, video.id, video.mediaPlayerFactory);
+        this.player = video.player;
+    }
+
+    //calculates attributes basing upon the current position
+    public void doSync(VideoPositionLayer layer) {
+        this.videoPositionLayer = layer;
+        if (isSynced())
+            removeSyncedWayPoints();
+        syncWayPoint = layer.getCurrentWayPoint();
+        syncVideoTime = getCurrentTime();
+        //calc now, to avoid calculations on every click
+        if (syncWayPoint != null) {
+            start = new Date(syncWayPoint.getTime().getTime()-syncVideoTime);
+            end = new Date(start.getTime()+player.getLength());
+        } else {
+            start = null;
+            end = null;
+        }
+        firstWayPoint = getFirstGPS();
+        lastWayPoint = getLastGPS();
+        markSyncedWayPoints();
+        Main.map.mapView.repaint();
+    }
+
+    //make sure we don't leave the GPS track
+    private WayPoint getFirstGPS() {
+        if (start == null || start.before(videoPositionLayer.getFirstWayPoint().getTime())) {
+            return videoPositionLayer.getFirstWayPoint();
+        } else {
+            return videoPositionLayer.getWayPointBefore(start);
+        }
+    }
+
+    //make sure we don't leave the GPS track
+    private WayPoint getLastGPS() {
+        if (end == null || end.after(videoPositionLayer.getLastWayPoint().getTime())) {
+            return videoPositionLayer.getLastWayPoint();
+        } else {
+            return videoPositionLayer.getWayPointBefore(end);
+        }
+    }
+
+    private void removeSyncedWayPoints() {
+        List<WayPoint> track = videoPositionLayer.getTrack();
+        int start = track.indexOf(firstWayPoint);
+        int end = track.indexOf(lastWayPoint);
         if (0 <= start && start <= end && end < track.size()) {
-    		for (WayPoint n : track.subList(start, end)) {
-    			n.attr.keySet().remove(SYNC_KEY);
-    		}
+            for (WayPoint n : track.subList(start, end)) {
+                n.attr.keySet().remove(SYNC_KEY);
+            }
         }
-	}
+    }
 
-	private void markSyncedWayPoints() {
-		List <WayPoint> track = videoPositionLayer.getTrack();
-		int start = track.indexOf(firstWayPoint);
-		int end = track.indexOf(lastWayPoint);
-		if (0 <= start && start <= end && end < track.size()) {
-    		for (WayPoint n : track.subList(start, end)) {
-    			n.attr.put(SYNC_KEY, id);
-    		}
-		}
-	}
+    private void markSyncedWayPoints() {
+        List<WayPoint> track = videoPositionLayer.getTrack();
+        int start = track.indexOf(firstWayPoint);
+        int end = track.indexOf(lastWayPoint);
+        if (0 <= start && start <= end && end < track.size()) {
+            for (WayPoint n : track.subList(start, end)) {
+                n.attr.put(SYNC_KEY, id);
+            }
+        }
+    }
 
-	public boolean isSynced() {
-		return syncWayPoint != null;
-	}
+    public boolean isSynced() {
+        return syncWayPoint != null;
+    }
 
-	//if synced jump in video to this GPS timecode 
-	public void jumpTo(Date GPSTime) {
-		if((GPSTime.after(firstWayPoint.getTime())&(GPSTime.before(lastWayPoint.getTime())))) {
-			long diff = GPSTime.getTime()-start.getTime();
-			player.setTime(diff);
-			System.out.println(diff);
-		}
-	}
-	
-	public WayPoint getCurrentWayPoint() {
-		if (isSynced()) {
-			long videotime = player.getTime();
-			Date gpstime = new Date(start.getTime()+videotime);
-			return videoPositionLayer.interpolate(gpstime);
-		}
-		return null;
-	}
+    //if synced jump in video to this GPS timecode
+    public void jumpTo(Date GPSTime) {
+        if ((GPSTime.after(firstWayPoint.getTime()) & (GPSTime.before(lastWayPoint.getTime())))) {
+            long diff = GPSTime.getTime()-start.getTime();
+            player.setTime(diff);
+            System.out.println(diff);
+        }
+    }
+
+    public WayPoint getCurrentWayPoint() {
+        if (isSynced()) {
+            long videotime = player.getTime();
+            Date gpstime = new Date(start.getTime()+videotime);
+            return videoPositionLayer.interpolate(gpstime);
+        }
+        return null;
+    }
 }
Index: /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/GPSVideoPlayer.java
===================================================================
--- /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/GPSVideoPlayer.java	(revision 32629)
+++ /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/GPSVideoPlayer.java	(revision 32630)
@@ -20,77 +20,77 @@
 //extends video playback, major control has the video player
 public class GPSVideoPlayer extends VideoPlayer {
-	private List<GPSVideo> videos;
-	private VideoPositionLayer videoPositionLayer;
+    private List<GPSVideo> videos;
+    private VideoPositionLayer videoPositionLayer;
 
-	public GPSVideoPlayer(DateFormat videoTimeFormat,VideoPositionLayer videoPositionLayer) throws HeadlessException {
-		super(videoTimeFormat);
-		videos = new LinkedList<>();
-		this.videoPositionLayer=videoPositionLayer;
-		videoPositionLayer.setGPSVideoPlayer(this);
-	}
+    public GPSVideoPlayer(DateFormat videoTimeFormat, VideoPositionLayer videoPositionLayer) throws HeadlessException {
+        super(videoTimeFormat);
+        videos = new LinkedList<>();
+        this.videoPositionLayer = videoPositionLayer;
+        videoPositionLayer.setGPSVideoPlayer(this);
+    }
 
-	public GPSVideo addVideo(File videofile) {		
-		GPSVideo video = new GPSVideo(super.addVideo(videofile,Integer.toString(videos.size())));
-		enableSingleVideoMode(true);
-		videos.add(video);
-		addSyncButton(video);
-		return video;
-	}
+    public GPSVideo addVideo(File videofile) {
+        GPSVideo video = new GPSVideo(super.addVideo(videofile, Integer.toString(videos.size())));
+        enableSingleVideoMode(true);
+        videos.add(video);
+        addSyncButton(video);
+        return video;
+    }
 
-	private void addSyncButton(GPSVideo video) {
-		JButton syncButton= new JButton(tr("Sync"));
-		syncButton.setBackground(Color.RED);		
-		syncButton.addActionListener(new ActionListener() {
+    private void addSyncButton(GPSVideo video) {
+        JButton syncButton = new JButton(tr("Sync"));
+        syncButton.setBackground(Color.RED);
+        syncButton.addActionListener(new ActionListener() {
             @Override
             public void actionPerformed(ActionEvent e) {
-            	resync(e);
-            }			
-		});
-		video.SyncComponent=syncButton;
-		//video.panel.add(syncButton,BorderLayout.SOUTH);
-		controlsPanel.add(syncButton);
-	}	
+                resync(e);
+            }
+        });
+        video.SyncComponent = syncButton;
+        //video.panel.add(syncButton,BorderLayout.SOUTH);
+        controlsPanel.add(syncButton);
+    }
 
-	//do a (re)sync
-	private void resync(ActionEvent e) {
-		JButton btn =(JButton)e.getSource();
-    	GPSVideo v=findVideo(btn);
-    	v.doSync(videoPositionLayer);
-    	btn.setBackground(Color.GREEN);
-    	enableSingleVideoMode(false);
-	}
-	
-	protected GPSVideo findVideo(JButton source) {
-		for (GPSVideo v : videos) {
-			if (v.SyncComponent==source) return v;
-		}
-		return null;
-	}
-	
-	//jump in all videos this date, if possible
-	public void jumpTo(Date date) {
-		for (GPSVideo video : videos) {
-			video.jumpTo(date);
-		}
-	}
-	
-	public boolean areAllVideosSynced() {
-		for (GPSVideo video : videos) {
-			if (!video.isSynced()) return false;
-		}
-		return true;		
-	}
+    //do a (re)sync
+    private void resync(ActionEvent e) {
+        JButton btn = (JButton) e.getSource();
+        GPSVideo v = findVideo(btn);
+        v.doSync(videoPositionLayer);
+        btn.setBackground(Color.GREEN);
+        enableSingleVideoMode(false);
+    }
 
-	@Override
-	public void update_plays() {		
-		super.update_plays();
-		if (areAllVideosSynced())
-			videoPositionLayer.setIconPosition( videos.get(0).getCurrentWayPoint());
-	}
-	
-	@Override
-	public void windowClosing(WindowEvent arg0) {
-		videoPositionLayer.unload();
-		super.windowClosing(arg0);
-	}
+    protected GPSVideo findVideo(JButton source) {
+        for (GPSVideo v : videos) {
+            if (v.SyncComponent == source) return v;
+        }
+        return null;
+    }
+
+    //jump in all videos this date, if possible
+    public void jumpTo(Date date) {
+        for (GPSVideo video : videos) {
+            video.jumpTo(date);
+        }
+    }
+
+    public boolean areAllVideosSynced() {
+        for (GPSVideo video : videos) {
+            if (!video.isSynced()) return false;
+        }
+        return true;
+    }
+
+    @Override
+    public void update_plays() {
+        super.update_plays();
+        if (areAllVideosSynced())
+            videoPositionLayer.setIconPosition(videos.get(0).getCurrentWayPoint());
+    }
+
+    @Override
+    public void windowClosing(WindowEvent arg0) {
+        videoPositionLayer.unload();
+        super.windowClosing(arg0);
+    }
 }
Index: /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/Video.java
===================================================================
--- /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/Video.java	(revision 32629)
+++ /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/Video.java	(revision 32630)
@@ -15,25 +15,25 @@
 //basic informations about one single video playback instance
 public class Video {
-	public final File filename;
-	public final String id; //unique id to make it easy to identify
-	public MediaPlayer player;
-	public Canvas canvas;
-	public CanvasVideoSurface videoSurface;
-	public final JPanel panel;
-	public final MediaPlayerFactory mediaPlayerFactory;
-	
-	public Video(File filename, String id, MediaPlayerFactory mediaPlayerFactory) {
-		this.filename = filename;
-		this.id = id;
-		this.mediaPlayerFactory = mediaPlayerFactory;
-		this.canvas = new Canvas();
-		this.videoSurface = mediaPlayerFactory.newVideoSurface(canvas);
-		this.panel = new JPanel();
-		this.panel.setLayout(new FlowLayout());
-		this.panel.add(videoSurface.canvas(), BorderLayout.CENTER);
-	}
-	
-	public long getCurrentTime() {
-		return player.getTime();
-	}
+    public final File filename;
+    public final String id; //unique id to make it easy to identify
+    public MediaPlayer player;
+    public Canvas canvas;
+    public CanvasVideoSurface videoSurface;
+    public final JPanel panel;
+    public final MediaPlayerFactory mediaPlayerFactory;
+    
+    public Video(File filename, String id, MediaPlayerFactory mediaPlayerFactory) {
+        this.filename = filename;
+        this.id = id;
+        this.mediaPlayerFactory = mediaPlayerFactory;
+        this.canvas = new Canvas();
+        this.videoSurface = mediaPlayerFactory.newVideoSurface(canvas);
+        this.panel = new JPanel();
+        this.panel.setLayout(new FlowLayout());
+        this.panel.add(videoSurface.canvas(), BorderLayout.CENTER);
+    }
+    
+    public long getCurrentTime() {
+        return player.getTime();
+    }
 }
Index: /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/VideoEngine.java
===================================================================
--- /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/VideoEngine.java	(revision 32629)
+++ /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/VideoEngine.java	(revision 32630)
@@ -9,4 +9,8 @@
 
 import org.openstreetmap.josm.Main;
+
+import com.sun.jna.NativeLibrary;
+import com.sun.jna.platform.win32.Advapi32Util;
+import com.sun.jna.platform.win32.WinReg;
 
 import uk.co.caprica.vlcj.binding.internal.libvlc_media_t;
@@ -21,42 +25,38 @@
 import uk.co.caprica.vlcj.runtime.windows.WindowsRuntimeUtil;
 
-import com.sun.jna.NativeLibrary;
-import com.sun.jna.platform.win32.Advapi32Util;
-import com.sun.jna.platform.win32.WinReg;
-
 //concrete Player library that is able to playback multiple videos
 public class VideoEngine implements MediaPlayerEventListener {
-	private FullScreenStrategy fullScreenStrategy;
-	public MediaPlayerFactory mediaPlayerFactory;
-	private List<Video> videos;
-	private List<VideosObserver> observers;
-	private final String[] libvlcArgs = {""};
+    private FullScreenStrategy fullScreenStrategy;
+    public MediaPlayerFactory mediaPlayerFactory;
+    private List<Video> videos;
+    private List<VideosObserver> observers;
+    private final String[] libvlcArgs = {""};
     private final String[] standardMediaOptions = {""};
-    private final static String[] deinterlacers = {"bob","linear"};
+    private static final String[] deinterlacers = {"bob", "linear"};
     //private final float initialCanvasFactor = 0.5f;
-	private boolean singleVideoMode; //commands will only affect the last added video
-	private Video lastAddedVideo;
-
-	//called at plugin start to setup library
-	public static void setupPlayer() {
-	    String vlcInstallDir = null;
-
-	    if (RuntimeUtil.isWindows()) {
-	        vlcInstallDir = WindowsRuntimeUtil.getVlcInstallDir();
-	        String arch = System.getProperty("os.arch");
-	        if (vlcInstallDir == null && arch.equals("amd64")) {
-	            try {
-	                vlcInstallDir = Advapi32Util.registryGetStringValue(WinReg.HKEY_LOCAL_MACHINE,
-	                        WindowsRuntimeUtil.VLC_REGISTRY_KEY.replaceFirst("\\\\", "\\\\Wow6432Node\\\\"),
-	                        WindowsRuntimeUtil.VLC_INSTALL_DIR_KEY);
-	            } catch (RuntimeException e) {
-	                Main.error(e);
-	            }
-	        }
-	    } else if (RuntimeUtil.isMac()) {
-	        // TODO
-	    } else if (RuntimeUtil.isNix()) {
+    private boolean singleVideoMode; //commands will only affect the last added video
+    private Video lastAddedVideo;
+
+    //called at plugin start to setup library
+    public static void setupPlayer() {
+        String vlcInstallDir = null;
+
+        if (RuntimeUtil.isWindows()) {
+            vlcInstallDir = WindowsRuntimeUtil.getVlcInstallDir();
+            String arch = System.getProperty("os.arch");
+            if (vlcInstallDir == null && arch.equals("amd64")) {
+                try {
+                    vlcInstallDir = Advapi32Util.registryGetStringValue(WinReg.HKEY_LOCAL_MACHINE,
+                            WindowsRuntimeUtil.VLC_REGISTRY_KEY.replaceFirst("\\\\", "\\\\Wow6432Node\\\\"),
+                            WindowsRuntimeUtil.VLC_INSTALL_DIR_KEY);
+                } catch (RuntimeException e) {
+                    Main.error(e);
+                }
+            }
+        } else if (RuntimeUtil.isMac()) {
             // TODO
-	    }
+        } else if (RuntimeUtil.isNix()) {
+            // TODO
+        }
 
         if (vlcInstallDir != null) {
@@ -66,15 +66,15 @@
             Main.error("videomapping: unable to locate VLC install dir");
         }
-	}
-
-	public VideoEngine(Window parent) {
-		System.setProperty("logj4.configuration","file:log4j.xml"); //TODO still unsure if we can't link this to the JOSM log4j instance
-		videos = new LinkedList<>();
-		observers = new LinkedList<>();
-		try {
-			mediaPlayerFactory = new MediaPlayerFactory(libvlcArgs);
-	        fullScreenStrategy = new DefaultFullScreenStrategy(parent);
-		} catch (NoClassDefFoundError e) {
-		    Main.error(tr("Unable to find JNA Java library!"));
+    }
+
+    public VideoEngine(Window parent) {
+        System.setProperty("logj4.configuration", "file:log4j.xml"); //TODO still unsure if we can't link this to the JOSM log4j instance
+        videos = new LinkedList<>();
+        observers = new LinkedList<>();
+        try {
+            mediaPlayerFactory = new MediaPlayerFactory(libvlcArgs);
+            fullScreenStrategy = new DefaultFullScreenStrategy(parent);
+        } catch (NoClassDefFoundError e) {
+            Main.error(tr("Unable to find JNA Java library!"));
         } catch (UnsatisfiedLinkError e) {
             Main.error(tr("Unable to find native libvlc library!"));
@@ -82,265 +82,266 @@
             Main.error(t);
         }
-	}
-
-	public void add(Video video) {
-		try {
-			EmbeddedMediaPlayer mp = mediaPlayerFactory.newEmbeddedMediaPlayer(fullScreenStrategy);
-			video.player=mp;
-			mp.setStandardMediaOptions(standardMediaOptions);
-			videos.add(video);
-			lastAddedVideo=video;
-			mp.setVideoSurface(video.videoSurface);
-	        mp.addMediaPlayerEventListener(this);
-	        String mediaPath = video.filename.getAbsoluteFile().toString();
-	        mp.playMedia(mediaPath);
-	        //now fetching and playback starts automatically
-		} catch (NoClassDefFoundError e) {
-		    Main.error(tr("Unable to find JNA Java library!"));
+    }
+
+    public void add(Video video) {
+        try {
+            EmbeddedMediaPlayer mp = mediaPlayerFactory.newEmbeddedMediaPlayer(fullScreenStrategy);
+            video.player = mp;
+            mp.setStandardMediaOptions(standardMediaOptions);
+            videos.add(video);
+            lastAddedVideo = video;
+            mp.setVideoSurface(video.videoSurface);
+            mp.addMediaPlayerEventListener(this);
+            String mediaPath = video.filename.getAbsoluteFile().toString();
+            mp.playMedia(mediaPath);
+            //now fetching and playback starts automatically
+        } catch (NoClassDefFoundError e) {
+            Main.error(tr("Unable to find JNA Java library!"));
         } catch (UnsatisfiedLinkError e) {
             Main.error(tr("Unable to find native libvlc library!"));
         }
-	}
-	/*
-	private Video getVideo(MediaPlayer mp)
-	{
-		for (Video video : videos) {
-			if (video.player==mp) return video;
-		}
-		return null;
-	}
+    }
+
+    /*
+    private Video getVideo(MediaPlayer mp)
+    {
+        for (Video video : videos) {
+            if (video.player==mp) return video;
+        }
+        return null;
+    }
 */
-	public List<Video> getVideos() {
-		return videos;
-	}
-
-	public void play() {
-		if (singleVideoMode) {
-			lastAddedVideo.player.play();
-		} else {
-			for (Video video : videos) {
-				video.player.play();
-			}
-		}
-	}
-
-	//toggles pause and play
-	public void pause() {
-		if (singleVideoMode) {
-			lastAddedVideo.player.pause();
-		} else {
-			for (Video video : videos) {
-				video.player.pause();
-			}
-		}
-	}
-
-	//ensures that all stop
-	public void pauseAll() {
-		for (Video video : videos) {
-			if (video.player.isPlaying())
-				video.player.pause();
-		}
-	}
-
-	//jumps relative for ms in all videos
-	public void jumpFor(long ms) {
-		if (singleVideoMode) {
-			long start=lastAddedVideo.player.getTime();
-			lastAddedVideo.player.setTime(start+ms);
-		} else {
-			for (Video video : videos) {
-				long start=video.player.getTime();
-				video.player.setTime(start+ms);
-			}
-		}
-		notifyObservers(VideoObserversEvents.jumping);
-	}
-
-	//jumps in all videos to this absolute video time
-	public void jumpTo(long msVideo) {
-		if (singleVideoMode) {
-			lastAddedVideo.player.setTime(msVideo);
-		} else {
-			for (Video video : videos) {
-				video.player.setTime(msVideo);
-			}
-		}
-		notifyObservers(VideoObserversEvents.jumping);
-	}
-
-	//TODO muss evtl. auf Rückgabe für alle Videos erweitert werden
-	public long getVideoTime() {
-		return videos.get(0).player.getTime();
-	}
-
-	//jumps in all videos to this absolute video time percentage
-	public void jumpToPosition(int percent) {
-		float position = (percent/100f);
-		if (singleVideoMode) {
-			lastAddedVideo.player.setPosition(position);
-		} else {
-			for (Video video : videos) {
-				video.player.setPosition(position);
-			}
-		}
-		notifyObservers(VideoObserversEvents.jumping);
-	}
-
-	//TODO muss evtl. auf Rückgabe für alle Videos erweitert werden
-	public int getPosition() {
-		return (int) (videos.get(0).player.getPosition()*100);
-	}
-
-	public void setSpeed(int percent) {
-		if (singleVideoMode) {
-			lastAddedVideo.player.setRate(percent/100f);
-		}
-		for (Video video : videos) {
-			video.player.setRate(percent/100f);
-		}
-		notifyObservers(VideoObserversEvents.speeding);
-	}
-
-	//TODO muss evtl. auf Rückgabe für alle Videos erweitert werden
-	public int getSpeed() {
-		return (int) (videos.get(0).player.getRate()*100);
-	}
-
-	//returns if at least one video has subtitles
-	public boolean hasSubtitles() {
-		for (Video video : videos) {
-			if (video.player.getSpuCount()>0) return true;
-		}
-		return false;
-	}
-
-	public void setSubtitles (boolean enabled) {
-		if (enabled) {
-			//VLC uses a list of sub picture units
-			for (Video video : videos) {
-				video.player.setSpu(0);
-			}
-		} else {
-			for (Video video : videos) {
-				video.player.setSpu(-1);
-			}
-		}
-	}
-
-	public void setDeinterlacer (DeinterlaceMode deinterlacer) {
-		if (singleVideoMode) {
-			lastAddedVideo.player.setDeinterlace(deinterlacer);
-		} else {
-			for (Video video : videos) {
-				video.player.setDeinterlace(deinterlacer);
-			}
-		}
-	}
-
-	public static String[] getDeinterlacers() {
-		return deinterlacers;
-	}
-
-	public void mute() {
-		if (singleVideoMode) {
-			lastAddedVideo.player.mute();
-		}
-		for (Video video : videos) {
-			video.player.mute();
-		}
-	}
-
-	public void unload() {
-		for (Video video : videos) {
-			video.player.stop();
-			video.player.release();
-			video.player=null;
-			video.videoSurface=null;
-			video.canvas=null;
-		}
-		mediaPlayerFactory.release();
-	}
-
-	public void addObserver(VideosObserver observer) {
-		observers.add(observer);
-	}
-
-	private void notifyObservers(VideoObserversEvents event) {
-		for (VideosObserver observer : observers) {
-			observer.update(event);
-		}
-	}
-
-    @Override
-	public void backward(MediaPlayer arg0) { }
+    public List<Video> getVideos() {
+        return videos;
+    }
+
+    public void play() {
+        if (singleVideoMode) {
+            lastAddedVideo.player.play();
+        } else {
+            for (Video video : videos) {
+                video.player.play();
+            }
+        }
+    }
+
+    //toggles pause and play
+    public void pause() {
+        if (singleVideoMode) {
+            lastAddedVideo.player.pause();
+        } else {
+            for (Video video : videos) {
+                video.player.pause();
+            }
+        }
+    }
+
+    //ensures that all stop
+    public void pauseAll() {
+        for (Video video : videos) {
+            if (video.player.isPlaying())
+                video.player.pause();
+        }
+    }
+
+    //jumps relative for ms in all videos
+    public void jumpFor(long ms) {
+        if (singleVideoMode) {
+            long start = lastAddedVideo.player.getTime();
+            lastAddedVideo.player.setTime(start+ms);
+        } else {
+            for (Video video : videos) {
+                long start = video.player.getTime();
+                video.player.setTime(start+ms);
+            }
+        }
+        notifyObservers(VideoObserversEvents.jumping);
+    }
+
+    //jumps in all videos to this absolute video time
+    public void jumpTo(long msVideo) {
+        if (singleVideoMode) {
+            lastAddedVideo.player.setTime(msVideo);
+        } else {
+            for (Video video : videos) {
+                video.player.setTime(msVideo);
+            }
+        }
+        notifyObservers(VideoObserversEvents.jumping);
+    }
+
+    //TODO muss evtl. auf Rückgabe für alle Videos erweitert werden
+    public long getVideoTime() {
+        return videos.get(0).player.getTime();
+    }
+
+    //jumps in all videos to this absolute video time percentage
+    public void jumpToPosition(int percent) {
+        float position = (percent/100f);
+        if (singleVideoMode) {
+            lastAddedVideo.player.setPosition(position);
+        } else {
+            for (Video video : videos) {
+                video.player.setPosition(position);
+            }
+        }
+        notifyObservers(VideoObserversEvents.jumping);
+    }
+
+    //TODO muss evtl. auf Rückgabe für alle Videos erweitert werden
+    public int getPosition() {
+        return (int) (videos.get(0).player.getPosition()*100);
+    }
+
+    public void setSpeed(int percent) {
+        if (singleVideoMode) {
+            lastAddedVideo.player.setRate(percent/100f);
+        }
+        for (Video video : videos) {
+            video.player.setRate(percent/100f);
+        }
+        notifyObservers(VideoObserversEvents.speeding);
+    }
+
+    //TODO muss evtl. auf Rückgabe für alle Videos erweitert werden
+    public int getSpeed() {
+        return (int) (videos.get(0).player.getRate()*100);
+    }
+
+    //returns if at least one video has subtitles
+    public boolean hasSubtitles() {
+        for (Video video : videos) {
+            if (video.player.getSpuCount() > 0) return true;
+        }
+        return false;
+    }
+
+    public void setSubtitles(boolean enabled) {
+        if (enabled) {
+            //VLC uses a list of sub picture units
+            for (Video video : videos) {
+                video.player.setSpu(0);
+            }
+        } else {
+            for (Video video : videos) {
+                video.player.setSpu(-1);
+            }
+        }
+    }
+
+    public void setDeinterlacer(DeinterlaceMode deinterlacer) {
+        if (singleVideoMode) {
+            lastAddedVideo.player.setDeinterlace(deinterlacer);
+        } else {
+            for (Video video : videos) {
+                video.player.setDeinterlace(deinterlacer);
+            }
+        }
+    }
+
+    public static String[] getDeinterlacers() {
+        return deinterlacers;
+    }
+
+    public void mute() {
+        if (singleVideoMode) {
+            lastAddedVideo.player.mute();
+        }
+        for (Video video : videos) {
+            video.player.mute();
+        }
+    }
+
+    public void unload() {
+        for (Video video : videos) {
+            video.player.stop();
+            video.player.release();
+            video.player = null;
+            video.videoSurface = null;
+            video.canvas = null;
+        }
+        mediaPlayerFactory.release();
+    }
+
+    public void addObserver(VideosObserver observer) {
+        observers.add(observer);
+    }
+
+    private void notifyObservers(VideoObserversEvents event) {
+        for (VideosObserver observer : observers) {
+            observer.update(event);
+        }
+    }
+
+    @Override
+    public void backward(MediaPlayer arg0) { }
 /*
-	public void buffering(MediaPlayer arg0) {
-
-	}
+    public void buffering(MediaPlayer arg0) {
+
+    }
 */
     @Override
-	public void error(MediaPlayer arg0) { }
-
-    @Override
-	public void finished(MediaPlayer arg0) { }
-
-    @Override
-	public void forward(MediaPlayer arg0) { }
-
-    @Override
-	public void lengthChanged(MediaPlayer arg0, long arg1) { }
+    public void error(MediaPlayer arg0) { }
+
+    @Override
+    public void finished(MediaPlayer arg0) { }
+
+    @Override
+    public void forward(MediaPlayer arg0) { }
+
+    @Override
+    public void lengthChanged(MediaPlayer arg0, long arg1) { }
 /*
-	public void mediaChanged(MediaPlayer arg0) {
-
-	}
-
-	public void metaDataAvailable(MediaPlayer mp, VideoMetaData data) {
-		Dimension org=data.getVideoDimension();
-		getVideo(mp).canvas.setSize(new Dimension((int)(org.width*initialCanvasFactor), (int)(org.height*initialCanvasFactor)));
-		notifyObservers(VideoObserversEvents.resizing);
-	}
+    public void mediaChanged(MediaPlayer arg0) {
+
+    }
+
+    public void metaDataAvailable(MediaPlayer mp, VideoMetaData data) {
+        Dimension org=data.getVideoDimension();
+        getVideo(mp).canvas.setSize(new Dimension((int)(org.width*initialCanvasFactor), (int)(org.height*initialCanvasFactor)));
+        notifyObservers(VideoObserversEvents.resizing);
+    }
 */
     @Override
-	public void opening(MediaPlayer arg0) {	}
-
-    @Override
-	public void pausableChanged(MediaPlayer arg0, int arg1) { }
-
-    @Override
-	public void paused(MediaPlayer arg0) { }
-
-    @Override
-	public void playing(MediaPlayer arg0) { }
-
-    @Override
-	public void positionChanged(MediaPlayer arg0, float arg1) { }
-
-    @Override
-	public void seekableChanged(MediaPlayer arg0, int arg1) { }
-
-    @Override
-	public void snapshotTaken(MediaPlayer arg0, String arg1) { }
-
-    @Override
-	public void stopped(MediaPlayer arg0) { }
-
-    @Override
-	public void timeChanged(MediaPlayer arg0, long arg1) { }
-
-    @Override
-	public void titleChanged(MediaPlayer arg0, int arg1) { }
-
-	public boolean isNoVideoPlaying() {
-		for (Video video : videos) {
-			if (video.player.isPlaying())
-				return false;
-		}
-		return true;
-	}
-
-	public void enableSingleVideoMode(boolean enabled) {
-		singleVideoMode = true;
-	}
+    public void opening(MediaPlayer arg0) { }
+
+    @Override
+    public void pausableChanged(MediaPlayer arg0, int arg1) { }
+
+    @Override
+    public void paused(MediaPlayer arg0) { }
+
+    @Override
+    public void playing(MediaPlayer arg0) { }
+
+    @Override
+    public void positionChanged(MediaPlayer arg0, float arg1) { }
+
+    @Override
+    public void seekableChanged(MediaPlayer arg0, int arg1) { }
+
+    @Override
+    public void snapshotTaken(MediaPlayer arg0, String arg1) { }
+
+    @Override
+    public void stopped(MediaPlayer arg0) { }
+
+    @Override
+    public void timeChanged(MediaPlayer arg0, long arg1) { }
+
+    @Override
+    public void titleChanged(MediaPlayer arg0, int arg1) { }
+
+    public boolean isNoVideoPlaying() {
+        for (Video video : videos) {
+            if (video.player.isPlaying())
+                return false;
+        }
+        return true;
+    }
+
+    public void enableSingleVideoMode(boolean enabled) {
+        singleVideoMode = true;
+    }
 
     @Override
@@ -429,38 +430,38 @@
     }
 
-	@Override
-	public void corked(MediaPlayer mediaPlayer, boolean corked) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public void muted(MediaPlayer mediaPlayer, boolean muted) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public void volumeChanged(MediaPlayer mediaPlayer, float volume) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public void audioDeviceChanged(MediaPlayer mediaPlayer, String audioDevice) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public void chapterChanged(MediaPlayer mediaPlayer, int newChapter) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public void mediaSubItemTreeAdded(MediaPlayer mediaPlayer, libvlc_media_t item) {
-		// TODO Auto-generated method stub
-
-	}
+    @Override
+    public void corked(MediaPlayer mediaPlayer, boolean corked) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void muted(MediaPlayer mediaPlayer, boolean muted) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void volumeChanged(MediaPlayer mediaPlayer, float volume) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void audioDeviceChanged(MediaPlayer mediaPlayer, String audioDevice) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void chapterChanged(MediaPlayer mediaPlayer, int newChapter) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void mediaSubItemTreeAdded(MediaPlayer mediaPlayer, libvlc_media_t item) {
+        // TODO Auto-generated method stub
+
+    }
 }
Index: /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/VideoObserversEvents.java
===================================================================
--- /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/VideoObserversEvents.java	(revision 32629)
+++ /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/VideoObserversEvents.java	(revision 32630)
@@ -4,7 +4,7 @@
 //basic categories of what might be interesting for a single video
 public enum VideoObserversEvents {
-	resizing,
-	speeding,
-	jumping
+    resizing,
+    speeding,
+    jumping
 
 }
Index: /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/VideoPlayer.java
===================================================================
--- /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/VideoPlayer.java	(revision 32629)
+++ /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/VideoPlayer.java	(revision 32630)
@@ -37,8 +37,8 @@
 public class VideoPlayer extends JFrame implements WindowListener, VideosObserver, VideoPlayerObserver {
     private static final int notificationIntervall = 500;
-    protected JPanel screenPanel,controlsPanel,canvasPanel;
+    protected JPanel screenPanel, controlsPanel, canvasPanel;
     private JSlider timeline;
-    private JButton play,back,forward;
-    private JToggleButton loop,mute;
+    private JButton play, back, forward;
+    private JToggleButton loop, mute;
     private JSlider speed;
 //    private DateFormat videoTimeFormat;
@@ -50,12 +50,12 @@
     private Timer notificationTimer;
     private List<VideoPlayerObserver> observers;
-    
+
     public VideoPlayer(DateFormat videoTimeFormat) throws HeadlessException {
-        super();        
+        super();
 //        this.videoTimeFormat=videoTimeFormat;
         //setup playback notifications
-        videoengine=new VideoEngine(this);
+        videoengine = new VideoEngine(this);
         videoengine.addObserver(this);
-        observers=new LinkedList<>();        
+        observers = new LinkedList<>();
         addObserver(this);
         //setup GUI
@@ -64,12 +64,12 @@
         createUI();
         addUI();
-        addUIListeners();    
+        addUIListeners();
         setVisible(true);
-        setAlwaysOnTop(true);        
+        setAlwaysOnTop(true);
         this.addWindowListener(this);
     }
-    
+
     public Video addVideo(File videofile, String id) {
-        Video video = new Video(videofile,id,videoengine.mediaPlayerFactory);
+        Video video = new Video(videofile, id, videoengine.mediaPlayerFactory);
         canvasPanel.add(video.panel);
         video.canvas.setSize(new Dimension(300, 300)); // will be updated by the video engine itself
@@ -79,9 +79,9 @@
         return video;
     }
-    
-    public List <Video> getVideos() {
+
+    public List<Video> getVideos() {
         return videoengine.getVideos();
     }
-    
+
     public void pause() {
         videoengine.pause();
@@ -91,5 +91,5 @@
             startNotificationTimer();
     }
-    
+
     public void pauseAll() {
         stopNotificationTimer();
@@ -98,23 +98,23 @@
 
     public void backward() {
-        videoengine.jumpFor(-jumpLength);    
+        videoengine.jumpFor(-jumpLength);
     }
 
     public void forward() {
-        videoengine.jumpFor(jumpLength);    
+        videoengine.jumpFor(jumpLength);
     }
 
     public void setSpeed(Integer percent) {
-        speed.setValue(percent);        
-    }
-    
+        speed.setValue(percent);
+    }
+
     public Integer getSpeed() {
         return speed.getValue();
     }
-    
+
     public void setDeinterlacer(DeinterlaceMode deinterlacer) {
         videoengine.setDeinterlacer(deinterlacer);
     }
-    
+
     public void setSubtitles(boolean enabled) {
         videoengine.setSubtitles(enabled);
@@ -127,8 +127,8 @@
     //TODO auf mehrere Videos umstellen
     public void toggleLooping() {
-        if (loopingTimer==null) {
+        if (loopingTimer == null) {
             //do reset after loop time experienced
-            final long videoResetTime = (long) videoengine.getVideoTime()-loopLength/2;
-            TimerTask reset = new TimerTask() {                
+            final long videoResetTime = videoengine.getVideoTime()-loopLength/2;
+            TimerTask reset = new TimerTask() {
                 @Override
                 public void run() {
@@ -136,9 +136,9 @@
                 }
             };
-            loopingTimer= new Timer();
-            loopingTimer.schedule(reset,loopLength/2,loopLength);
+            loopingTimer = new Timer();
+            loopingTimer.schedule(reset, loopLength/2, loopLength);
         } else {
             loopingTimer.cancel();
-            loopingTimer=null;
+            loopingTimer = null;
         }
     }
@@ -147,41 +147,41 @@
     private void createUI() {
         //setIconImage();
-        timeline = new JSlider(0,100,0);
+        timeline = new JSlider(0, 100, 0);
         timeline.setMajorTickSpacing(5);
         timeline.setMinorTickSpacing(1);
         timeline.setPaintTicks(true);
-        play= new JButton(tr("play"));
-        back= new JButton("<");
-        forward= new JButton(">");
-        loop= new JToggleButton(tr("loop"));
-        mute= new JToggleButton(tr("mute"));
-        speed = new JSlider(0,200,100);
+        play = new JButton(tr("play"));
+        back = new JButton("<");
+        forward = new JButton(">");
+        loop = new JToggleButton(tr("loop"));
+        mute = new JToggleButton(tr("mute"));
+        speed = new JSlider(0, 200, 100);
         speed.setMajorTickSpacing(50);
-        speed.setPaintTicks(true);          
+        speed.setPaintTicks(true);
         speed.setOrientation(Adjustable.VERTICAL);
         Hashtable<Integer, JLabel> labelTable = new Hashtable<>();
-        labelTable.put( new Integer( 100 ), new JLabel("1x") );
-        labelTable.put( new Integer( 50 ), new JLabel("-2x") );
-        labelTable.put( new Integer( 200 ), new JLabel("2x") );
-        speed.setLabelTable( labelTable );
+        labelTable.put(new Integer(100), new JLabel("1x"));
+        labelTable.put(new Integer(50), new JLabel("-2x"));
+        labelTable.put(new Integer(200), new JLabel("2x"));
+        speed.setLabelTable(labelTable);
         speed.setPaintLabels(true);
     }
-    
+
     //puts all player controls to screen
     private void addUI() {
         //create layouts
         this.setLayout(new BorderLayout());
-        screenPanel=new JPanel();
+        screenPanel = new JPanel();
         screenPanel.setLayout(new BorderLayout());
-        controlsPanel=new JPanel();
+        controlsPanel = new JPanel();
         controlsPanel.setLayout(new FlowLayout());
-        canvasPanel=new JPanel();
+        canvasPanel = new JPanel();
         canvasPanel.setLayout(new FlowLayout());
-        add(screenPanel,BorderLayout.CENTER);
-        add(controlsPanel,BorderLayout.SOUTH);
+        add(screenPanel, BorderLayout.CENTER);
+        add(controlsPanel, BorderLayout.SOUTH);
         //fill screen panel
-        screenPanel.add(canvasPanel,BorderLayout.CENTER);
-        screenPanel.add(timeline,BorderLayout.SOUTH);
-        screenPanel.add(speed,BorderLayout.EAST);
+        screenPanel.add(canvasPanel, BorderLayout.CENTER);
+        screenPanel.add(timeline, BorderLayout.SOUTH);
+        screenPanel.add(speed, BorderLayout.EAST);
         controlsPanel.add(play);
         controlsPanel.add(back);
@@ -192,15 +192,15 @@
         mute.setSelected(false);
     }
-    
+
     //add UI functionality
-    private void addUIListeners() {        
-        
-        play.addActionListener(new ActionListener() {            
-            @Override
-            public void actionPerformed(ActionEvent arg0) {
-                pause();                
-            }
-        });
-        
+    private void addUIListeners() {
+
+        play.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent arg0) {
+                pause();
+            }
+        });
+
         back.addActionListener(new ActionListener() {
             @Override
@@ -209,5 +209,5 @@
             }
         });
-        
+
         forward.addActionListener(new ActionListener() {
             @Override
@@ -216,5 +216,5 @@
             }
         });
-        
+
         loop.addActionListener(new ActionListener() {
             @Override
@@ -223,5 +223,5 @@
             }
         });
-        
+
         mute.addActionListener(new ActionListener() {
             @Override
@@ -230,9 +230,9 @@
             }
         });
-        
+
         timeline.addChangeListener(new ChangeListener() {
             @Override
             public void stateChanged(ChangeEvent e) {
-                //skip events, fired by this sliede, one cycle ago                
+                //skip events, fired by this sliede, one cycle ago
                 if (!isManualJump) {
                     isManualJump = true;
@@ -241,9 +241,9 @@
             }
         });
-        
-        speed.addChangeListener(new ChangeListener() {            
-            @Override
-            public void stateChanged(ChangeEvent arg0) {                            
-                if(!speed.getValueIsAdjusting()) {
+
+        speed.addChangeListener(new ChangeListener() {
+            @Override
+            public void stateChanged(ChangeEvent arg0) {
+                if (!speed.getValueIsAdjusting()) {
                     videoengine.setSpeed(speed.getValue());
                 }
@@ -251,22 +251,22 @@
         });
     }
-    
+
     public void setJumpLength(long ms) {
         jumpLength = ms;
     }
-    
+
     public void setLoopLength(long ms) {
         loopLength = ms;
     }
-    
+
     public void enableSingleVideoMode(boolean enabled) {
         pauseAll();
         videoengine.enableSingleVideoMode(enabled);
     }
-    
+
     public void addObserver(VideoPlayerObserver observer) {
         observers.add(observer);
     }
-    
+
     private void stopNotificationTimer() {
         /*
@@ -280,17 +280,17 @@
 
     private void startNotificationTimer() {
-        notificationTimer= new Timer();
-        notificationTimer.schedule(new TimerTask() {                
+        notificationTimer = new Timer();
+        notificationTimer.schedule(new TimerTask() {
             @Override
             public void run() {
                 notifyObservers();
-                
-            }
-        },notificationIntervall,notificationIntervall);
-    }
-    
-    private void  notifyObservers() {
+
+            }
+        }, notificationIntervall, notificationIntervall);
+    }
+
+    private void notifyObservers() {
         for (VideoPlayerObserver observer : observers) {
-            observer.update_plays();//TODO hier müssten gleich die Zeiten übergeben werden
+            observer.update_plays(); // TODO hier müssten gleich die Zeiten übergeben werden
         }
     }
@@ -303,5 +303,5 @@
 
     @Override
-    public void windowClosing(WindowEvent arg0) {    
+    public void windowClosing(WindowEvent arg0) {
         videoengine.unload();
     }
@@ -321,6 +321,5 @@
     @Override
     public void update(VideoObserversEvents event) {
-        switch (event)
-        {        
+        switch (event) {
             case resizing:
             {
@@ -334,8 +333,8 @@
             }
             case jumping:
-            {            
+            {
                 break;
             }
-        }        
+        }
     }
 
@@ -352,5 +351,5 @@
         isManualJump = false;
     }
-    
+
     public boolean isCorrectlyInitiliazed() {
         return videoengine != null && videoengine.mediaPlayerFactory != null;
Index: /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/VideoPlayerObserver.java
===================================================================
--- /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/VideoPlayerObserver.java	(revision 32629)
+++ /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/VideoPlayerObserver.java	(revision 32630)
@@ -5,4 +5,4 @@
  */
 public interface VideoPlayerObserver {
-	public void update_plays();
+    void update_plays();
 }
Index: /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/VideosObserver.java
===================================================================
--- /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/VideosObserver.java	(revision 32629)
+++ /applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/VideosObserver.java	(revision 32630)
@@ -5,4 +5,4 @@
  */
 public interface VideosObserver {
-	void update(VideoObserversEvents event);
+    void update(VideoObserversEvents event);
 }
