[freeplane] 01/03: Imported Upstream version 1.5.15

Felix Natter fnatter-guest at moszumanska.debian.org
Sat Aug 27 11:25:23 UTC 2016


This is an automated email from the git hooks/post-receive script.

fnatter-guest pushed a commit to branch master
in repository freeplane.

commit daf7fc3f0fcf8915d584845c77d14c713afe43d9
Author: Felix Natter <fnatter at gmx.net>
Date:   Sat Aug 27 13:16:08 2016 +0200

    Imported Upstream version 1.5.15
---
 freeplane/doc/history_en.txt                       |  4 ++
 .../resources/default_accelerators_mac.properties  |  1 +
 .../resources/translations/Resources_nl.properties | 59 +++++++++++-----------
 .../freeplane/core/util/FreeplaneIconUtils.java    | 22 +++++++-
 .../java/org/freeplane/core/util/Quantity.java     |  5 ++
 .../features/attribute/AttributeRegistry.java      |  3 +-
 .../features/icon/factory/ImageIconFactory.java    |  3 +-
 .../org/freeplane/features/map/MapController.java  |  2 +
 .../mindmapmode/MLocationController.java           |  2 +-
 .../mindmapmode/MNodeStyleController.java          |  4 +-
 .../features/text/mindmapmode/JoinNodesAction.java |  2 +-
 .../main/mindmapmode/UpdateCheckAction.java        |  4 +-
 .../org/freeplane/view/swing/map/MapScroller.java  |  2 +
 .../java/org/freeplane/view/swing/map/MapView.java |  4 ++
 .../org/freeplane/view/swing/map/NodeView.java     |  2 +-
 .../view/swing/ui/DefaultMouseWheelListener.java   |  3 +-
 .../org/freeplane/core/util/QuantityShould.java    |  7 +++
 .../translations/Resources_en.properties           | 37 +-------------
 freeplane/viewer-resources/version.properties      |  2 +-
 .../windows-installer/Freeplane_without_Java.iss   |  2 +-
 .../windows-portable/App/AppInfo/appinfo.ini       |  4 +-
 .../scripts/installScriptAddOn.groovy              |  9 ++--
 gitinfo.properties                                 |  2 +-
 gitinfo.txt                                        |  2 +-
 24 files changed, 100 insertions(+), 87 deletions(-)

diff --git a/freeplane/doc/history_en.txt b/freeplane/doc/history_en.txt
index a3c65f7..1e91b72 100644
--- a/freeplane/doc/history_en.txt
+++ b/freeplane/doc/history_en.txt
@@ -1,4 +1,8 @@
 ===============================
+1.5.15
+===============================
+
+===============================
 1.5.14
 ===============================
 Fix latex export and support latex in style editor
diff --git a/freeplane/resources/default_accelerators_mac.properties b/freeplane/resources/default_accelerators_mac.properties
index 4ab76da..3d4de57 100644
--- a/freeplane/resources/default_accelerators_mac.properties
+++ b/freeplane/resources/default_accelerators_mac.properties
@@ -3,3 +3,4 @@ acceleratorFor.MindMap/NewParentNode=shift TAB
 acceleratorFor.MindMap/NewSummaryAction=alt shift TAB
 acceleratorFor.MindMap/SelectNoteAction=meta PERIOD
 acceleratorFor.MindMap/OpenLastOpenedAction_1=meta 1
+acceleratorFor.MindMap/DeleteAction=BACK_SPACE
diff --git a/freeplane/resources/translations/Resources_nl.properties b/freeplane/resources/translations/Resources_nl.properties
index 75b04c5..51d83bb 100644
--- a/freeplane/resources/translations/Resources_nl.properties
+++ b/freeplane/resources/translations/Resources_nl.properties
@@ -168,12 +168,12 @@ branch=Tak
 browse=Verkennen...
 calendar_attributes_panel=Agenda en attributen
 calendar_panel=Agenda
-can_not_clone_encrypted_node=versleutelde knooppunten kunnen niet gekopieerd worden
+can_not_clone_encrypted_node=Versleutelde knopen kunnen niet gekloond worden
 can_not_connect_to_info_server=Kan geen verbinding maken met de server
 can_not_delete_predefined_style=Kan voorgedefinieerde opmaakstijl niet wissen
 can_not_delete_root_style=Kan opmaakstijl stamknoop niet wissen
 can_not_delete_style_group=Kan sijlgroep niet wissen
-can_not_encrypt_cloned_node=gekopieerde knopen kunnen niet versleuteld worden
+can_not_encrypt_cloned_node=Gekloonde knopen kunnen niet versleuteld worden
 can_not_save_key_set=Kan de set met sneltoetsen niet bewaren
 cancel=&Annuleren
 CancelAction.text=Annuleren
@@ -206,7 +206,7 @@ choose_node_background_color=Kies achtergrondkleur knoop:
 choose_node_color=Kies tekstkleur voor de knoop:
 ClearLinkAnchorAction.text=Wissen koppelingsanker
 ClearLinkAnchorAction.tooltip=<html>wis eerder ingesteld knoopanker</html>
-CloneAction.text=invoegen van kopie
+CloneAction.text=Plakken kloon
 close_btn=Sluiten
 CloseAction.text=Sluiten mindmap
 cloud_shapes=cloud vormen
@@ -226,7 +226,7 @@ connector_label=Label bij verbindingslijn
 connector_lines=Lijnvorm verbindingslijn
 connector_shapes=Bochtvorm verbindingslijn
 ConnectorColorAction.text=Kleur verbindingslijn...
-ConvertCloneToIndependentNodeAction.text=verwijder kopie
+ConvertCloneToIndependentNodeAction.text=Ontklonen
 CopyAction.text=Kopi\u00EBren
 CopyAction.tooltip=Kopieer geselecteerde tak
 CopyAttributes.text=Kopi\u00EBren attributen
@@ -380,7 +380,7 @@ FaqOpenURLAction.text=FAQ
 file=&Bestand
 file_already_exists=Het bestand {0} bestaat al. Wil je het overschrijven?
 file_not_found=Bestand {0} niet gevonden
-FileListFlavorHandler=Hyperlinks naar bestanden
+FileListFlavorHandler=Snelkoppelingen naar bestanden
 FileProperties_BranchLeafCount=Aaantal bladknopen in geselecteerde tak(ken)
 FileProperties_BranchNodeCount=Aantal knopen in geselecteerde tak(ken):
 FileProperties_ChangesSinceLastSave=Wijzigingen na laatste keer bewaren:
@@ -479,7 +479,7 @@ FoldOneLevelAction.text=E\u00E9n niveau dichtvouwen
 FoldOneLevelAction.tooltip=<html>  E\u00E9n niveau dichtvouwen.</html>
 follow_clone=Binnen ''{0}''
 follow_graphical_link=Ga naar ''{0}''
-FollowLinkAction.text=Openen hyperlink
+FollowLinkAction.text=Openen snelkoppeling
 font=Lettertype
 FontFamilyAction.text=Lettertypenaam (font)
 FontSizeAction.text=Lettertypegrootte
@@ -681,7 +681,7 @@ IconSelectionPlugin.tooltip=<html> Hier kun je een pictogram kiezen..</html>
 image_covertLink=Converteer koppeling naar afbeelding
 ImageFlavorHandler=Afbeelding (gebruik apart bestand)
 import=Importeren
-import_linked_branch_no_link=De geselecteerde knoop heeft geen hyperlink om de afbeelding te importeren.
+import_linked_branch_no_link=De geselecteerde knoop heeft geen snelkoppeling om de afbeelding te importeren.
 ImportAction.text=Importeren
 ImportBranchAction.text=Importeren volledige tak...
 ImportExplorerFavoritesAction.text=Importeren Explorer-favorieten...
@@ -783,14 +783,14 @@ map_locked_by_open=De mindmap {0} wordt al bewerkt door gebruiker {1} en wordt a
 map_locked_by_save_as=De mindmap {0} wordt al bewerkt door gebruiker {1}. De actie bewaren-als is afgebroken.
 map_not_saved=De mindmap was niet opgeslagen.
 MapBackgroundClearAction.text=Wissen
-MapBackgroundColorAction.text=Achtergrondkleur mindmap
+MapBackgroundColorAction.text=Achtergrondkleur
 MapBackgroundImageAction.text=Achtergrondafbeelding...
 maps=Mindmaps
 MaxNodeWidth.text=Bepaal maximum knoopbreedte
 menu_applyStyle=Toepassen stijl
 menu_attributes=Attributen
 menu_clouds=Wolk
-menu_copy=Kopieren
+menu_copy=Kopi\u00EBren
 menu_coreFormat=Knoopkern
 menu_details=Knoopuitbreiding
 menu_displayAttributes=Knoopattributen
@@ -913,8 +913,8 @@ NodeUpAction.text=Knoop naar boven
 nonboldify_branch=Vet uitschakelen
 nonitalicise_branch=Schuin uitschakelen
 normal=Normaal
-not_saved_for_image_error=De mindmap moet opgeslagen worden voordat je een afbeelding kunt toevoegen met  de bestandskiezer of via een hyperlink
-not_saved_for_link_error=De mindmap moet zijn voor je met de bestandskiezer een hyperlink kunt toevoegen
+not_saved_for_image_error=De mindmap moet opgeslagen worden voordat je een afbeelding kunt toevoegen met  de bestandskiezer of via een snelkoppeling
+not_saved_for_link_error=De mindmap moet zijn voor je met de bestandskiezer een snelkoppeling kunt toevoegen
 note_window_location=Positie notitiehulpvenster
 notes=Knoopnotitie
 NotificationOptions.CLOSE=Sluit
@@ -924,7 +924,7 @@ NotificationOptions.SELECT_NODE=Ga naar herinnering
 ok=OK
 OKAction.text=OK
 OnlineReference.text=Online documentatiemindmaps
-open_asMindMap=Miindmap
+open_asMindMap=Mindmap
 OpenAction.text=Openen mindmap...
 OpenFreeplaneSiteAction.text=Thuispagina op Internet van Freeplane
 OpenMapsAddLocation.text=Toevoegen OpenMap locatie...
@@ -1026,7 +1026,7 @@ OptionPanel.edgestyle.tooltip=Opmaak van de tak naar de ouderknoop; deze wordt o
 OptionPanel.edgewidth=Dikte tak
 OptionPanel.edgewidth.tooltip=Opmaak van de tak naar de ouderknoop; deze wordt ook toegepast naar de eigen kindknopen
 OptionPanel.EDIT_CURRENT=Inhoud overschrijven
-OptionPanel.edit_on_double_click=Bewerkinsmode na dubbelklikken
+OptionPanel.edit_on_double_click=Bewerkingsmode na dubbelklikken
 OptionPanel.editor_extra_width=Extra diktestap
 OptionPanel.editor_extra_width.tooltip=<html>Bepaalt het aantal pixels waarmee de knoopbreedte groter wordt als de tekst te breed is..</html>
 OptionPanel.el=Grieks \u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC
@@ -1077,7 +1077,7 @@ OptionPanel.groovy_editor_font.tooltip=Gebruik 'Dialog' of 'Monospaced'als je un
 OptionPanel.groovy_editor_font_size=Lettergrootte voor Groovy Syntax Highlighting Editor
 OptionPanel.gtk=Gtk
 OptionPanel.hide_edge=Verborgen
-OptionPanel.highlight_formulas=Accentueren furmules
+OptionPanel.highlight_formulas=Accentueren formules
 OptionPanel.horizontal=Rechte bocht
 OptionPanel.hr=Kroatisch / Hrvatski
 OptionPanel.HTML=HTML
@@ -1120,7 +1120,7 @@ OptionPanel.latex_macros=Algemene LaTeX Macros
 OptionPanel.layout_map_on_text_change=Map layout bij bewerken
 OptionPanel.layout_map_on_text_change.tooltip=Schakel uit voor betere werking
 OptionPanel.linear=Rechte lijn
-OptionPanel.links=Hyperlinks
+OptionPanel.links=Snelkoppelingen
 OptionPanel.links.tooltip=<html> Stel kyperlinks in als relatief of absoluuut</html>
 OptionPanel.load_folding=Bij openen
 OptionPanel.load_folding_from_map_default_fold_all=Uit mindmap overnemen om alles open/dicht te vouwen
@@ -1152,7 +1152,7 @@ OptionPanel.nodebackgroundcolor.tooltip=Achtergrondkleur knoop indien niet gesel
 OptionPanel.nodecolor=Tekstkleur
 OptionPanel.nodecolor.tooltip=Tekstkleur knoop indien niet geselecteerd.
 OptionPanel.nodefontbold=Vet lettertype
-OptionPanel.nodefonthyperlink=Hyperlink
+OptionPanel.nodefonthyperlink=Snelkoppeling
 OptionPanel.nodefontitalic=Schuin lettertype
 OptionPanel.nodefontname=Naam lettertype
 OptionPanel.nodefontsize=Grootte lettertype
@@ -1249,7 +1249,7 @@ OptionPanel.separator.formula=Plugin voor formules
 OptionPanel.separator.General=Algemeen
 OptionPanel.separator.html_export=HTML-exporteren
 OptionPanel.separator.html_import=HTML Importeren
-OptionPanel.separator.hyperlink_types=Hyperlinktypes
+OptionPanel.separator.hyperlink_types=Types snelkoppelingen
 OptionPanel.separator.icon_properties=Pictogrammen
 OptionPanel.separator.icons=Pictogrammen in "Selecteren pictogram..."
 OptionPanel.separator.initial_map_size=Initi\u00EBle grootte mindmap
@@ -1306,7 +1306,7 @@ OptionPanel.single_backup_directory=Gebruik dezelfde directory voor back-up best
 OptionPanel.single_backup_directory.tooltip=<html>  Als bestanden van backups en automatisch bewaren in bijelkaar in een directory geplaatst moeten worden, in plaats van in een subdirectory in de directory waarin de mindmap staat. </html>
 OptionPanel.single_backup_directory_path=Backup directory (als bovenstaande optie geselecteerd is)
 OptionPanel.single_backup_directory_path.tooltip=<html>  Gaat boven defaut <freeplaneuserdir>/.backup</html>
-OptionPanel.single_instance=Open bestanden van lopende instantie
+OptionPanel.single_instance=Open bestanden in een lopende instantie
 OptionPanel.single_instance_force=Vermijd in ieder geval tweede instantie
 OptionPanel.single_instance_force.tooltip=Voorkom tweede instantie ook als geen file wordt geladen
 OptionPanel.sk=Slovaaks  / sloven\u010Dina
@@ -1327,10 +1327,10 @@ OptionPanel.standardcloudestyle=Standaard wolkstijl
 OptionPanel.standardcloudestyle.tooltip=<html> De standaard wolkstijl. Op dit moment is enkel 'bocht' mogelijk</html>
 OptionPanel.standarddrawrectangleforselection=Tonen geselecteerde knopen met een omlijning
 OptionPanel.standarddrawrectangleforselection.tooltip=<html> Markeren geselecteerde knopen met een omlijning.</html>
-OptionPanel.standardlinkcolor=Standaard kleur van een hyperlink
-OptionPanel.standardlinkcolor.tooltip=<html> De standaardkleur van de hyperlink in html-notatie </html>
-OptionPanel.standardlinkestyle=Standaardstijl hyperlink
-OptionPanel.standardlinkestyle.tooltip=<html> De standaarstijl voor hyperlink: op dit moment wordt alleen 'bocht' ondersteund</html>
+OptionPanel.standardlinkcolor=Standaard kleur voor een snelkoppeling
+OptionPanel.standardlinkcolor.tooltip=<html> De standaardkleur van de snelkoppeling in html-notatie </html>
+OptionPanel.standardlinkestyle=Standaardstijl snelkoppeling
+OptionPanel.standardlinkestyle.tooltip=<html> De standaarstijl voor snelkoppeling: op dit moment wordt alleen 'bocht' ondersteund</html>
 OptionPanel.standardselectednodecolor=Standaardkleur geselecteerde knoop
 OptionPanel.standardselectednodecolor.tooltip=<html> De standaard tekstkleur indien geselecteerd. In html-notatie (#RRGGBB in hex waarden) </html>
 OptionPanel.standardselectednoderectanglecolor=Kleur knoopomlijning geselecteerde knoop
@@ -1456,7 +1456,7 @@ plugins/TimeManagement.xml_Replace_All=Alles vervangen
 plugins/TimeManagement.xml_Replace_Selected=Selectie vervangen
 plugins/TimeManagement.xml_Select=Selecteren
 plugins/TimeManagement.xml_todayButton=Vandaag
-plugins/TimeManagement.xml_WindowTitle=Agenda
+plugins/TimeManagement.xml_WindowTitle=Herinneringen
 plugins/TimeManagement.xml_WindowTitle_All_Nodes=Zoeken en vervangen
 preferences=Voorkeuren
 print_preview_title=Afdrukvoorbeeld
@@ -1499,7 +1499,7 @@ RemoveIconAction.text=Verwijderen laatste pictogram
 RemoveNoteAction.text=Verwijderen knoopnotitie
 RemoveNoteAction.tooltip=<html> Verwijderen inhoud van notitievenster.</html>
 rename=&Hernoemen
-repair_link=Herstellen hyperlink
+repair_link=Herstellen snelkoppeling
 repair_link_question=Kan de gekoppelde mindmap niet laden. Wilt u de koppeling handmatig herstellen?
 replace=Vervangen
 replace_shortcut_question=Deze sneltoets is op dit moment verbonden mer\n {0}.\nDeze koppeling verwijderen ?
@@ -1528,6 +1528,7 @@ script_execution_disabled=Geen uivoering van script
 ScriptEditor.text=Bewerken scripts...
 ScriptEditor.tooltip=Laat toe om grotere scripts te maken in Freeplane.
 ScriptEditorPanel.changed_cancel=De scripts werden veranderd. Ben je zeker dat je de aanpassingen niet wil bewaren ?
+scripting=Scripts
 scripting_api_generator_legend=Legenda
 scripting_api_generator_proxy=Proxy
 scripting_api_generator_title=API voor scripts
@@ -1548,13 +1549,13 @@ selection_method_direct=Aanwijzen om te selecteren
 SelectNoteAction.text=Bewerken notitiehulpvenster
 SelectNoteAction.tooltip=Wissel naar/van notitievenster
 set_accelerator_on_next_click_action=Om eennieuwe sneltoets toe te wijzen: druk op 'Ctr' tijdens het aankikken van het commando.
-SetAccelerator.dialogTitle=Definitie snelkoppeling
+SetAccelerator.dialogTitle=Definitie sneltoets
 SetAccelerator.keystrokeDetected=Toets ''{0}'' is niet aan een menu item toegewezen.
 SetAcceleratorOnNextClickAction.text=Toewijzen sneltoets...
 SetImageByFileChooserAction.text=Toevoegen afbeelding of converteren link...
 SetLinkAnchorAction.text=Zetten koppelingsanker
-SetLinkAnchorAction.tooltip=<html>instellen geselekteerde knoop als anker voor later te<br/>maken van een hyperlink tussen knopen (ook tussen mindmaps).
-SetLinkAnchorAction.tooltip_anchored=<html>instellen geselekteerde knoop als anker voor later te<br/>maken hyperlink tussen knopen. Huidig anker:<br/>{0}
+SetLinkAnchorAction.tooltip=<html>instellen geselekteerde knoop als anker voor later te<br/>maken snelkoppeling met andere knoop of mindmap.
+SetLinkAnchorAction.tooltip_anchored=<html>instellen geselekteerde knoop als anker voor later te<br/>maken snelkoppeling met andere knoop of mindmap. Huidig anker:<br/>{0}
 SetLinkByFileChooserAction.text=Koppeling kiezen...
 SetLinkByTextFieldAction.text=Koppeling typen of wijzigen...
 SetNodeLink.text=Maak knoopkoppeling...
@@ -1799,9 +1800,9 @@ summary_nodes=Groepsknopen
 summary_not_possible=Kan voor huidige selectie geen groepsknoop maken
 svg=SVG
 template_dir=Standaard mindmapstijlen
-TimeListAction.text=Managen taken...
+TimeListAction.text=Taakbeheer...
 TimeListAction.tooltip=Toont alle geplande herinneringen en de bijhorende knopen.
-TimeManagementAction.text=Managen tijd...
+TimeManagementAction.text=Agenda...
 TimeManagementAction.tooltip=<html> Start de agendamodule.</html>
 ToggleChildrenFoldedAction.text=Kleinkinderen open/dichtvouwen
 ToggleDetailsAction.text=Tonen knoopdetails
diff --git a/freeplane/src/main/java/org/freeplane/core/util/FreeplaneIconUtils.java b/freeplane/src/main/java/org/freeplane/core/util/FreeplaneIconUtils.java
index 953c44f..2e26e38 100644
--- a/freeplane/src/main/java/org/freeplane/core/util/FreeplaneIconUtils.java
+++ b/freeplane/src/main/java/org/freeplane/core/util/FreeplaneIconUtils.java
@@ -1,5 +1,8 @@
 package org.freeplane.core.util;
 
+import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -31,11 +34,26 @@ public class FreeplaneIconUtils {
 	}
 
 	public static ImageIcon createImageIcon(final String resourcePath) {
-		return new ImageIcon(ResourceController.getResourceController().getResource(resourcePath));
+		final URL resourceUrl = ResourceController.getResourceController().getResource(resourcePath);
+		return createImageIcon(resourceUrl);
 	}
 	
 	public static ImageIcon createImageIconByResourceKey(final String resourceKey) {
 		final ResourceController resourceController = ResourceController.getResourceController();
-		return new ImageIcon(resourceController.getResource(resourceController.getProperty(resourceKey)));
+		final URL resourceUrl = resourceController.getResource(resourceController.getProperty(resourceKey));
+		return createImageIcon(resourceUrl);
+	}
+
+	public static ImageIcon createImageIconPrivileged(final URL resourceUrl) {
+		return AccessController.doPrivileged(new PrivilegedAction<ImageIcon>() {
+			@Override
+			public ImageIcon run() {
+				return  createImageIcon(resourceUrl);
+			}
+		});
+	}
+
+	private static ImageIcon createImageIcon(final URL resourceUrl) {
+		return new ImageIcon(resourceUrl);
 	}
 }
diff --git a/freeplane/src/main/java/org/freeplane/core/util/Quantity.java b/freeplane/src/main/java/org/freeplane/core/util/Quantity.java
index 3c3eb1e..7a031ed 100644
--- a/freeplane/src/main/java/org/freeplane/core/util/Quantity.java
+++ b/freeplane/src/main/java/org/freeplane/core/util/Quantity.java
@@ -80,6 +80,11 @@ public class Quantity <U extends Enum<U> & Convertible >{
 			throw new IllegalStateException("non negative value required");
 	}
 
+	public static <U extends Enum<U> & Convertible> void assertNonNegativeOrNull(Quantity<U> quantity) {
+		if(quantity != null)
+			quantity.assertNonNegative();
+	}
+
 	public Quantity<U> add(Quantity<U> second) {
 		if(unit == second.unit)
 			return new Quantity<U>(value + second.value, unit);
diff --git a/freeplane/src/main/java/org/freeplane/features/attribute/AttributeRegistry.java b/freeplane/src/main/java/org/freeplane/features/attribute/AttributeRegistry.java
index 48b0a54..d5e99a1 100644
--- a/freeplane/src/main/java/org/freeplane/features/attribute/AttributeRegistry.java
+++ b/freeplane/src/main/java/org/freeplane/features/attribute/AttributeRegistry.java
@@ -150,7 +150,8 @@ public class AttributeRegistry implements IExtension {
 	}
 
 	public void fireStateChanged() {
-		for (ChangeListener l : changeListeners) {
+		final ChangeListener[] currentChangeListeners = changeListeners.toArray(new ChangeListener[changeListeners.size()]);
+		for (ChangeListener l : currentChangeListeners) {
 			if (changeEvent == null) {
 				changeEvent = new ChangeEvent(this);
 			}
diff --git a/freeplane/src/main/java/org/freeplane/features/icon/factory/ImageIconFactory.java b/freeplane/src/main/java/org/freeplane/features/icon/factory/ImageIconFactory.java
index 8dbe24e..f619acd 100644
--- a/freeplane/src/main/java/org/freeplane/features/icon/factory/ImageIconFactory.java
+++ b/freeplane/src/main/java/org/freeplane/features/icon/factory/ImageIconFactory.java
@@ -25,6 +25,7 @@ import java.util.WeakHashMap;
 import javax.swing.ImageIcon;
 
 import org.freeplane.core.resources.ResourceController;
+import org.freeplane.core.util.FreeplaneIconUtils;
 import org.freeplane.features.icon.UIIcon;
 
 /**
@@ -56,7 +57,7 @@ public final class ImageIconFactory {
 				result = ICON_CACHE.get(url);
 			}
 			else {
-				result = new ImageIcon(url);
+				result = FreeplaneIconUtils.createImageIconPrivileged(url);
 				ICON_CACHE.put(url, result);
 			}
 		}
diff --git a/freeplane/src/main/java/org/freeplane/features/map/MapController.java b/freeplane/src/main/java/org/freeplane/features/map/MapController.java
index 95f724e..258c757 100644
--- a/freeplane/src/main/java/org/freeplane/features/map/MapController.java
+++ b/freeplane/src/main/java/org/freeplane/features/map/MapController.java
@@ -650,6 +650,8 @@ public class MapController extends SelectionController implements IExtension{
 	 */
 	public NodeModel getNodeFromID(final String nodeID) {
 		final MapModel map = Controller.getCurrentController().getMap();
+		if(map == null)
+			return null;
 		final NodeModel node = map.getNodeForID(nodeID);
 		return node;
 	}
diff --git a/freeplane/src/main/java/org/freeplane/features/nodelocation/mindmapmode/MLocationController.java b/freeplane/src/main/java/org/freeplane/features/nodelocation/mindmapmode/MLocationController.java
index 6441ce0..d62dff2 100644
--- a/freeplane/src/main/java/org/freeplane/features/nodelocation/mindmapmode/MLocationController.java
+++ b/freeplane/src/main/java/org/freeplane/features/nodelocation/mindmapmode/MLocationController.java
@@ -108,7 +108,7 @@ public class MLocationController extends LocationController {
 
 	public void setMinimalDistanceBetweenChildren(NodeModel node, final Quantity<LengthUnits> minimalDistanceBetweenChildren){
 		if(node != null){
-			minimalDistanceBetweenChildren.assertNonNegative();
+			Quantity.assertNonNegativeOrNull(minimalDistanceBetweenChildren);
 			final IActor actor = new ChangeVGapActor(node, minimalDistanceBetweenChildren);
 			Controller.getCurrentModeController().execute(actor, node.getMap());
 		}
diff --git a/freeplane/src/main/java/org/freeplane/features/nodestyle/mindmapmode/MNodeStyleController.java b/freeplane/src/main/java/org/freeplane/features/nodestyle/mindmapmode/MNodeStyleController.java
index 57f97fc..fe2004b 100644
--- a/freeplane/src/main/java/org/freeplane/features/nodestyle/mindmapmode/MNodeStyleController.java
+++ b/freeplane/src/main/java/org/freeplane/features/nodestyle/mindmapmode/MNodeStyleController.java
@@ -588,7 +588,7 @@ public class MNodeStyleController extends NodeStyleController {
 		modeController.execute(actor, node.getMap());
 	}
 	public void setMinNodeWidth(final NodeModel node, final Quantity<LengthUnits> minNodeWidth) {
-		minNodeWidth.assertNonNegative();
+		Quantity.assertNonNegativeOrNull(minNodeWidth);
 	    final NodeSizeModel sizeModel = createOwnSizeModel(node);
 		final Quantity<LengthUnits> oldValue = NodeSizeModel.getMinNodeWidth(node);
 		final IActor actor = new IActor() {
@@ -616,7 +616,7 @@ public class MNodeStyleController extends NodeStyleController {
     }
 
 	public void setMaxNodeWidth(final NodeModel node, final Quantity<LengthUnits> maxNodeWidth) {
-		maxNodeWidth.assertNonNegative();
+		Quantity.assertNonNegativeOrNull(maxNodeWidth);
 	    final NodeSizeModel sizeModel = createOwnSizeModel(node);
 		final Quantity<LengthUnits> oldValue = NodeSizeModel.getMaxNodeWidth(node);
 		final IActor actor = new IActor() {
diff --git a/freeplane/src/main/java/org/freeplane/features/text/mindmapmode/JoinNodesAction.java b/freeplane/src/main/java/org/freeplane/features/text/mindmapmode/JoinNodesAction.java
index c420503..4fa84a7 100644
--- a/freeplane/src/main/java/org/freeplane/features/text/mindmapmode/JoinNodesAction.java
+++ b/freeplane/src/main/java/org/freeplane/features/text/mindmapmode/JoinNodesAction.java
@@ -44,7 +44,7 @@ class JoinNodesAction extends AFreeplaneAction {
 	}
 
 	public void actionPerformed(final ActionEvent e) {
-		final List<NodeModel> orderedSelection = Controller.getCurrentController().getSelection().getOrderedSelection();
+		final List<NodeModel> orderedSelection = Controller.getCurrentController().getSelection().getSortedSelection(false);
 		final List<NodeModel> selectedNodes = new ArrayList<NodeModel>(orderedSelection);
 		MTextController.getController().joinNodes(selectedNodes, separator);
 	}
diff --git a/freeplane/src/main/java/org/freeplane/main/mindmapmode/UpdateCheckAction.java b/freeplane/src/main/java/org/freeplane/main/mindmapmode/UpdateCheckAction.java
index 17a66d8..18bb402 100644
--- a/freeplane/src/main/java/org/freeplane/main/mindmapmode/UpdateCheckAction.java
+++ b/freeplane/src/main/java/org/freeplane/main/mindmapmode/UpdateCheckAction.java
@@ -55,7 +55,7 @@ class UpdateCheckAction extends AFreeplaneAction {
 	 * the sid.
 	 */
 	private static final long serialVersionUID = 1L;
-	private static final int TWO_DAYS = 1 * 24 * 60 * 60 * 1000;
+	private static final int ONE_DAY = 1 * 24 * 60 * 60 * 1000;
 	private static final String UPDATE_BUTTON_LOCATION = "main_toolbar_update";
 //	/**
 //	 * the url where to download the newest version
@@ -274,7 +274,7 @@ class UpdateCheckAction extends AFreeplaneAction {
 		final Date now = new Date();
 		final long nextCheckMillis = ResourceController.getResourceController().getLongProperty(LAST_UPDATE_CHECK_TIME,
 		    0)
-		        + TWO_DAYS;
+		        + ONE_DAY;
 		final Date nextCheckDate = new Date(nextCheckMillis);
 		if (now.before(nextCheckDate)) {
 			final FreeplaneVersion knownNewVersion = getKnownNewVersion();
diff --git a/freeplane/src/main/java/org/freeplane/view/swing/map/MapScroller.java b/freeplane/src/main/java/org/freeplane/view/swing/map/MapScroller.java
index bc4d309..8a8d965 100644
--- a/freeplane/src/main/java/org/freeplane/view/swing/map/MapScroller.java
+++ b/freeplane/src/main/java/org/freeplane/view/swing/map/MapScroller.java
@@ -161,6 +161,8 @@ class MapScroller {
 	}
 
 	private void scrollNodeToVisible(final NodeView node, final int extraWidth) {
+		if(node == null)
+			return;
 		if(scrollingDirective == ScrollingDirective.DONE || scrollingDirective == ScrollingDirective.ANCHOR)
 			scrollingDirective = ScrollingDirective.MAKE_NODE_VISIBLE;
 		if (scrolledNode != null && scrollingDirective != ScrollingDirective.MAKE_NODE_VISIBLE) {
diff --git a/freeplane/src/main/java/org/freeplane/view/swing/map/MapView.java b/freeplane/src/main/java/org/freeplane/view/swing/map/MapView.java
index b946e39..ba10034 100644
--- a/freeplane/src/main/java/org/freeplane/view/swing/map/MapView.java
+++ b/freeplane/src/main/java/org/freeplane/view/swing/map/MapView.java
@@ -1168,6 +1168,10 @@ public class MapView extends JPanel implements Printable, Autoscroll, IMapChange
 			}
             else
 	            backgroundComponent = (JComponent) factory.createViewer(uri, zoom);
+			if(backgroundComponent == null) {
+				LogUtils.warn("no viewer created for " + uri);
+				return;
+			}
 			((ScalableComponent) backgroundComponent).setCenter(true);
 			((ScalableComponent)backgroundComponent).setImageLoadingListener(new ImageLoadingListener() {
 				public void imageLoaded() {
diff --git a/freeplane/src/main/java/org/freeplane/view/swing/map/NodeView.java b/freeplane/src/main/java/org/freeplane/view/swing/map/NodeView.java
index 7541757..a4ae1ae 100644
--- a/freeplane/src/main/java/org/freeplane/view/swing/map/NodeView.java
+++ b/freeplane/src/main/java/org/freeplane/view/swing/map/NodeView.java
@@ -900,7 +900,7 @@ public class NodeView extends JComponent implements INodeView {
 	}
 
 	public void onNodeDeleted(NodeDeletionEvent nodeDeletionEvent) {
-		if (isFolded) {
+		if (nodeDeletionEvent.index >= getComponentCount() - 1) {
 			return;
 		}
 		final boolean preferredChildIsLeft = preferredChild != null && preferredChild.isLeft();
diff --git a/freeplane/src/main/java/org/freeplane/view/swing/ui/DefaultMouseWheelListener.java b/freeplane/src/main/java/org/freeplane/view/swing/ui/DefaultMouseWheelListener.java
index 0eef5b8..31d9363 100644
--- a/freeplane/src/main/java/org/freeplane/view/swing/ui/DefaultMouseWheelListener.java
+++ b/freeplane/src/main/java/org/freeplane/view/swing/ui/DefaultMouseWheelListener.java
@@ -49,9 +49,8 @@ public class DefaultMouseWheelListener implements MouseWheelListener {
 	public void mouseWheelMoved(final MouseWheelEvent e) {
 		final MapView mapView = (MapView) e.getSource();
 		final ModeController mController = mapView.getModeController();
-		if (mController.isBlocked()) {
+		if (mController.isBlocked() || Controller.getCurrentController().getMap() != mapView.getModel())
 			return;
-		}
 		final Set<IMouseWheelEventHandler> registeredMouseWheelEventHandler = mController.getUserInputListenerFactory()
 		    .getMouseWheelEventHandlers();
 		for (final IMouseWheelEventHandler handler : registeredMouseWheelEventHandler) {
diff --git a/freeplane/src/test/java/org/freeplane/core/util/QuantityShould.java b/freeplane/src/test/java/org/freeplane/core/util/QuantityShould.java
index a61a0e4..cc38fdf 100644
--- a/freeplane/src/test/java/org/freeplane/core/util/QuantityShould.java
+++ b/freeplane/src/test/java/org/freeplane/core/util/QuantityShould.java
@@ -129,4 +129,11 @@ public class QuantityShould {
 		Quantity<Metrics> zero = new Quantity<Metrics>(0, Metrics.cm);
 		zero.assertNonNegative();
 	}
+	
+	@Test()
+	public void nullQuantity_passesOnCheckForNonNegative() throws Exception {
+		Quantity.assertNonNegativeOrNull(null);
+	}
+	
 }
+
diff --git a/freeplane/viewer-resources/translations/Resources_en.properties b/freeplane/viewer-resources/translations/Resources_en.properties
index a0095c9..3f20969 100644
--- a/freeplane/viewer-resources/translations/Resources_en.properties
+++ b/freeplane/viewer-resources/translations/Resources_en.properties
@@ -373,7 +373,7 @@ ExternalImageAddAction.text=Add image...
 ExternalImageChangeAction.text=Change image...
 ExternalImageRemoveAction.text=Remove image
 ExtractLinkFromTextAction.text=Convert link from within text
-ExtractLinkFromTextAction.tooltip=Set hyper link from address n node text
+ExtractLinkFromTextAction.tooltip=Set hyper link from address in node text
 extras=&Tools
 f_button_unassigned=<no action>
 FaqOpenURLAction.text=FAQ
@@ -1848,40 +1848,7 @@ styles.subtopic=Subtopic
 styles.topic=Topic
 styles.user-defined=User defined styles
 styles.website=Website
-styles_background_html=\n \
-<html>\n \
-  <head>\n \
-  </head>\n \
-  <body>\n \
-    <table width="800" style="text-align: left; vertical-align: top">\n \
-      <tr valign="top">\n \
-        <th>\n \
-          <div style="margin-top: 0pt; margin-right: 0pt; margin-bottom: 0pt; margin-left: 0pt; text-align: center; font-weight: bold">\n \
-            About this style set\n \
-          </div>\n \
-          <div style="text-align: left; font-weight: normal">\n \
-            <div style="margin: 3pt">\n \
-              This standard was developed after 11 years pedagogy research about how to make the process of knowledge easier and faster.\n \
-            </div>\n \
-            <div style="margin: 3pt">\n \
-              It aims to make the process of assimilating, processing, absorbing, understanding domain and mastering knowledge, information and ideas as fast and easy as possible.\n \
-            </div>\n \
-            <div style="margin: 3pt">\n \
-              It has been developed by Jonas Batista (Brazil).\n \
-              You can find more information at: <a href="http://www.jonasbatista.com.br/">www.jonasbatista.com.br/ </a>\n \
-            </div>\n \
-          </div>\n \
-        </th>\n \
-        <th>\n \
-            <img src="freeplaneresource:/images/JonasBatista.jpg"/>\n \
-          <div style="text-align: center">\n \
-            Jonas Batista<br/>\n \
-          </div>\n \
-        </th>\n \
-      </tr>\n \
-    </table>\n \
-  </body>\n \
-</html>
+styles_background_html=\n <html>\n <head>\n </head>\n <body>\n <table width="800" style="text-align: left; vertical-align: top">\n <tr valign="top">\n <th>\n <div style="margin-top: 0pt; margin-right: 0pt; margin-bottom: 0pt; margin-left: 0pt; text-align: center; font-weight: bold">\n About this style set\n </div>\n <div style="text-align: left; font-weight: normal">\n <div style="margin: 3pt">\n This standard was developed after 11 years pedagogy research about how to make the process o [...]
 styles_menu=Available styles
 submenu_keystroke_in_use_error=Keystroke {0} can not be used for submenu {1}. Keystroke removed.
 summary_nodes=Summary nodes
diff --git a/freeplane/viewer-resources/version.properties b/freeplane/viewer-resources/version.properties
index f10fb89..22b25d1 100644
--- a/freeplane/viewer-resources/version.properties
+++ b/freeplane/viewer-resources/version.properties
@@ -1,2 +1,2 @@
-freeplane_version=1.5.14
+freeplane_version=1.5.15
 freeplane_version_status=
diff --git a/freeplane_framework/windows-installer/Freeplane_without_Java.iss b/freeplane_framework/windows-installer/Freeplane_without_Java.iss
index aac352b..7885b3d 100644
--- a/freeplane_framework/windows-installer/Freeplane_without_Java.iss
+++ b/freeplane_framework/windows-installer/Freeplane_without_Java.iss
@@ -11,7 +11,7 @@
 ; Predrag Cuklin 18/06/2009 - Universial Version
 ;****************************************************************************
 
-#define MyVersion "1.5.14"
+#define MyVersion "1.5.15"
 #define MyStatus ""
 #define MyAppName "Freeplane"
 #define MyAppPublisher "Open source"
diff --git a/freeplane_framework/windows-portable/App/AppInfo/appinfo.ini b/freeplane_framework/windows-portable/App/AppInfo/appinfo.ini
index 2ec5466..a6a6e7e 100644
--- a/freeplane_framework/windows-portable/App/AppInfo/appinfo.ini
+++ b/freeplane_framework/windows-portable/App/AppInfo/appinfo.ini
@@ -21,8 +21,8 @@ CommercialUse=true
 EULAVersion=1
 
 [Version]
-PackageVersion=1.5.14.1
-DisplayVersion=1.5.14
+PackageVersion=1.5.15.1
+DisplayVersion=1.5.15
 
 [SpecialPaths]
 Plugins=NONE
diff --git a/freeplane_plugin_script/scripts/installScriptAddOn.groovy b/freeplane_plugin_script/scripts/installScriptAddOn.groovy
index 44c1a7a..71ca4af 100644
--- a/freeplane_plugin_script/scripts/installScriptAddOn.groovy
+++ b/freeplane_plugin_script/scripts/installScriptAddOn.groovy
@@ -111,15 +111,16 @@ def checkFreeplaneVersion(Map configMap) {
 		terminate(textUtils.format('addons.installer.too.new', currentVersion, versionTo))
 }
 
-def parseFreeplaneVersion(String propertyName, String versionString) {
+// version could be a FormattedObject
+def parseFreeplaneVersion(String propertyName, Object version) {
 	try {
-		if (versionString)
-			return FreeplaneVersion.getVersion(versionString.replaceFirst('^v', ''))
+		if (version)
+			return FreeplaneVersion.getVersion(version.toString().replaceFirst('^v', ''))
 		return null
 	}
 	catch (Exception e) {
 		e.printStackTrace()
-		mapStructureAssert(false, textUtils.format('addons.installer.freeplaneversion.format.error', propertyName, versionString))
+		mapStructureAssert(false, textUtils.format('addons.installer.freeplaneversion.format.error', propertyName, version))
 	}
 }
 
diff --git a/gitinfo.properties b/gitinfo.properties
index a29563c..7b3786d 100644
--- a/gitinfo.properties
+++ b/gitinfo.properties
@@ -1 +1 @@
-git-revision=7cd85f18e49cb61fd98d59a5b398e82f69860d65 Dimitry Polivaev 2016-08-13 17:11:22 +0200
\ No newline at end of file
+git-revision=f4eeab8f72ddb6eee3ce419ba60c44a50045a176 Volker Boerchers 2016-08-18 23:51:01 +0200
\ No newline at end of file
diff --git a/gitinfo.txt b/gitinfo.txt
index a29563c..7b3786d 100644
--- a/gitinfo.txt
+++ b/gitinfo.txt
@@ -1 +1 @@
-git-revision=7cd85f18e49cb61fd98d59a5b398e82f69860d65 Dimitry Polivaev 2016-08-13 17:11:22 +0200
\ No newline at end of file
+git-revision=f4eeab8f72ddb6eee3ce419ba60c44a50045a176 Volker Boerchers 2016-08-18 23:51:01 +0200
\ No newline at end of file

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/freeplane.git



More information about the pkg-java-commits mailing list