changeset 6034:dd789066e61e 8.0-b122

Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt
author kcr
date Sat, 28 Dec 2013 08:05:35 -0800
parents bee85bc7f009 b5ed4e9e9ce9
children 193626ad5b24 26f87c5d3435 e3be095eed59
files build.properties
diffstat 1166 files changed, 5578 insertions(+), 2480 deletions(-) [+]
line wrap: on
line diff
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/AutoLogoutLightBox.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/AutoLogoutLightBox.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/ConferenceScheduleApp.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/ConferenceScheduleApp.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/Page.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/Page.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/PageContainer.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/PageContainer.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/PlatformIntegration.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/PlatformIntegration.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/Theme.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/Theme.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/TouchClickedEventAvoider.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/TouchClickedEventAvoider.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/TouchScrollEventSynthesizer.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/TouchScrollEventSynthesizer.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/CheckBoxItem.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/CheckBoxItem.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/EventPopoverPage.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/EventPopoverPage.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/LoginProgressBarSkin.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/LoginProgressBarSkin.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/NoopScrollBarSkin.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/NoopScrollBarSkin.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/Popover.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/Popover.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/PopoverBox.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/PopoverBox.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/PopoverBoxItem.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/PopoverBoxItem.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/PopoverTreeList.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/PopoverTreeList.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/ResizableWrappingText.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/ResizableWrappingText.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/ScrollPaneSkin3.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/ScrollPaneSkin3.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/SearchBox.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/SearchBox.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/SimpleVBox.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/SimpleVBox.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/TestPopover.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/TestPopover.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/TestVirtualKeyboard.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/TestVirtualKeyboard.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/TreeBoxItem.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/TreeBoxItem.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/VirtualKeyboard.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/VirtualKeyboard.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/VirtualKeyboardSkin.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/VirtualKeyboardSkin.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/DataService.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/DataService.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/JSONParserJP.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/JSONParserJP.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/SessionManagement.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/SessionManagement.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/TwitterJson.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/TwitterJson.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/devoxx/DevoxxDataService.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/devoxx/DevoxxDataService.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/devoxx/GetConferenceDataTask.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/devoxx/GetConferenceDataTask.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/devoxx/LoginTask.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/devoxx/LoginTask.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/devoxx/TestDataService.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/devoxx/TestDataService.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/devoxx/UpdateScheduleTask.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/data/devoxx/UpdateScheduleTask.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Availability.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Availability.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Event.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Event.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/FilterType.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/FilterType.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Level.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Level.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Room.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Room.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Session.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Session.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/SessionTime.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/SessionTime.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/SessionType.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/SessionType.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Speaker.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Speaker.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Track.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Track.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Tweet.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Tweet.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Venue.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/model/Venue.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/CatalogPage.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/CatalogPage.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/FilterSessionsByTrackPage.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/FilterSessionsByTrackPage.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/FilterSessionsByTypePage.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/FilterSessionsByTypePage.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/LoginScreen.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/LoginScreen.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/SearchFilterPopoverPage.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/SearchFilterPopoverPage.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/SessionFilterCriteria.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/SessionFilterCriteria.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/SessionListPage.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/SessionListPage.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/SocialPage.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/SocialPage.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/SpeakersPage.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/SpeakersPage.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/TimelinePage.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/TimelinePage.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/TracksPage.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/TracksPage.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/VenueRoomPage.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/VenueRoomPage.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/VenuesPage.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/pages/VenuesPage.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/Modena/src/main/java/modena/SameHeightTestController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/Modena/src/main/java/modena/SameHeightTestController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/Modena/src/main/java/modena/SamplePage.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/Modena/src/main/java/modena/SamplePage.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/Modena/src/main/java/modena/SamplePageChartHelper.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/Modena/src/main/java/modena/SamplePageChartHelper.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/Modena/src/main/java/modena/SamplePageHelpers.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/Modena/src/main/java/modena/SamplePageHelpers.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/Modena/src/main/java/modena/SamplePageTableHelper.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/Modena/src/main/java/modena/SamplePageTableHelper.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/Modena/src/main/java/modena/SamplePageTreeHelper.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/Modena/src/main/java/modena/SamplePageTreeHelper.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/Modena/src/main/java/modena/SamplePageTreeTableHelper.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/Modena/src/main/java/modena/SamplePageTreeTableHelper.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/Modena/src/main/java/modena/SimpleWindowPage.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/Modena/src/main/java/modena/SimpleWindowPage.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/Modena/src/main/resources/modena/TestApp.css	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/experiments/Modena/src/main/resources/modena/TestApp.css	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/Ball.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/Ball.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BallsPane.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BallsPane.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BallsScreen.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BallsScreen.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BouncingBallsApp.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/BouncingBallsApp.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/Constants.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/bouncingballs/Constants.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Ball.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Ball.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Bat.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Bat.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Bonus.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Bonus.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Brick.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Brick.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/BrickBreakerApp.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/BrickBreakerApp.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Config.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Config.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Level.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Level.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/LevelData.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/LevelData.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Splash.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Splash.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Utils.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Utils.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Calculator.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Calculator.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/CalculatorApp.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/CalculatorApp.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Key.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Key.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Util.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/calc/Util.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2012 Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/AppPlatform.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/AppPlatform.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/CssPanelDelegate.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/CssPanelDelegate.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/CssPanelMenuController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/CssPanelMenuController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindow.css	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindow.css	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindow.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindow.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
@@ -31,13 +31,14 @@
   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 -->
+
 <?import java.lang.*?>
 <?import java.net.*?>
 <?import javafx.scene.control.*?>
 <?import javafx.scene.layout.*?>
 <?scenebuilder-preview-i18n-resource i18n/SceneBuilderApp.properties?>
 
-<VBox id="DocumentWindow" alignment="CENTER" prefHeight="800.0" prefWidth="1200.0" spacing="0.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2">
+<VBox id="DocumentWindow" alignment="CENTER" prefHeight="800.0" prefWidth="1200.0" spacing="0.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
   <children>
     <SplitPane fx:id="mainSplitPane" dividerPositions="0.656641604010025" focusTraversable="true" orientation="VERTICAL" prefHeight="200.0" prefWidth="160.0" VBox.vgrow="ALWAYS">
       <items>
@@ -49,14 +50,22 @@
                   <children>
                     <HBox id="HBox" alignment="CENTER" spacing="0.0" styleClass="panelHeader">
                       <children>
-                        <Label maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" styleClass="panelTitle" text="Library" HBox.hgrow="NEVER" />
+                        <Label maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" styleClass="panelTitle" text="%library" HBox.hgrow="NEVER" />
                         <StackPane fx:id="librarySearchPanelHost" maxHeight="-1.0" maxWidth="-1.0" minHeight="-1.0" minWidth="-1.0" prefHeight="-1.0" prefWidth="-1.0" style="" HBox.hgrow="ALWAYS" />
-                        <MenuButton fx:id="LibraryMenu" mnemonicParsing="false" styleClass="panelMenuButton" text="" HBox.hgrow="NEVER">
+                        <MenuButton fx:id="libraryMenuButton" mnemonicParsing="false" styleClass="panelMenuButton" text="" HBox.hgrow="NEVER">
                           <items>
-                            <CheckMenuItem mnemonicParsing="false" onAction="#onLibraryViewAsList" text="%library.panel.menu.view.list" fx:id="libraryViewAsList" />
-                            <CheckMenuItem mnemonicParsing="false" onAction="#onLibraryViewAsSections" selected="true" text="%library.panel.menu.view.sections" fx:id="libraryViewAsSections" />
+                            <CheckMenuItem fx:id="libraryViewAsList" mnemonicParsing="false" onAction="#onLibraryViewAsList" text="%library.panel.menu.view.list" />
+                            <CheckMenuItem fx:id="libraryViewAsSections" mnemonicParsing="false" onAction="#onLibraryViewAsSections" selected="true" text="%library.panel.menu.view.sections" />
                             <SeparatorMenuItem mnemonicParsing="false" />
                             <MenuItem mnemonicParsing="false" onAction="#onLibraryImportJarFxml" text="%library.panel.menu.import.jar.fxml" />
+                            <MenuItem fx:id="libraryImportSelection" mnemonicParsing="false" onAction="#onLibraryImportSelection" text="%library.panel.menu.import.selection" />
+                            <SeparatorMenuItem mnemonicParsing="false" />
+                            <Menu mnemonicParsing="false" text="%library.panel.menu.custom">
+                              <items>
+                                <MenuItem fx:id="libraryReveal" mnemonicParsing="false" onAction="#onLibraryRevealCustomFolder" text="Action 1" />
+                                <MenuItem fx:id="libraryReport" mnemonicParsing="false" onAction="#onLibraryShowJarAnalysisReport" text="%library.panel.menu.custom.report" />
+                              </items>
+                            </Menu>
                           </items>
                         </MenuButton>
                       </children>
@@ -68,29 +77,33 @@
                   <children>
                     <HBox id="HBox" alignment="CENTER" spacing="0.0" VBox.vgrow="NEVER">
                       <children>
-                        <Label maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" styleClass="panelTitle" text="Document" HBox.hgrow="NEVER" />
+                        <Label maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" styleClass="panelTitle" text="%document" HBox.hgrow="NEVER" />
                         <Pane maxWidth="1.7976931348623157E308" prefHeight="-1.0" prefWidth="-1.0" HBox.hgrow="ALWAYS" />
-                        <MenuButton fx:id="HierarchyMenu" contentDisplay="GRAPHIC_ONLY" mnemonicParsing="false" styleClass="panelMenuButton" text="">
+                        <MenuButton fx:id="" contentDisplay="GRAPHIC_ONLY" mnemonicParsing="false" styleClass="panelMenuButton" text="">
                           <items>
-                            <RadioMenuItem mnemonicParsing="false" onAction="#onHierarchyShowInfo" selected="true" text="Show Info" fx:id="showInfoMenuItem">
-                              <toggleGroup>
-                                <ToggleGroup fx:id="hierarchyDisplayOptionTG" />
-                              </toggleGroup>
-                            </RadioMenuItem>
-                            <RadioMenuItem mnemonicParsing="false" onAction="#onHierarchyShowFxId" text="Show fx:id" toggleGroup="$hierarchyDisplayOptionTG" fx:id="showFxIdMenuItem" />
-                            <RadioMenuItem mnemonicParsing="false" onAction="#onHierarchyShowNodeId" text="Show Node Id" toggleGroup="$hierarchyDisplayOptionTG" fx:id="showNodeIdMenuItem" />
+                            <Menu mnemonicParsing="false" text="%hierarchy.displays">
+                              <items>
+                                <RadioMenuItem fx:id="showInfoMenuItem" mnemonicParsing="false" onAction="#onHierarchyShowInfo" selected="true" text="%hierarchy.show.info">
+                                  <toggleGroup>
+                                    <ToggleGroup fx:id="hierarchyDisplayOptionTG" />
+                                  </toggleGroup>
+                                </RadioMenuItem>
+                                <RadioMenuItem fx:id="showFxIdMenuItem" mnemonicParsing="false" onAction="#onHierarchyShowFxId" text="%hierarchy.show.fxid" toggleGroup="$hierarchyDisplayOptionTG" />
+                                <RadioMenuItem fx:id="showNodeIdMenuItem" mnemonicParsing="false" onAction="#onHierarchyShowNodeId" text="%hierarchy.show.nodeid" toggleGroup="$hierarchyDisplayOptionTG" />
+                              </items>
+                            </Menu>
                           </items>
                         </MenuButton>
                       </children>
                     </HBox>
                     <Accordion fx:id="documentAccordion" maxHeight="-1.0" VBox.vgrow="ALWAYS">
                       <panes>
-                        <TitledPane fx:id="Hierarchy" animated="true" text="Hierarchy">
+                        <TitledPane fx:id="Hierarchy" animated="true" text="%hierarchy">
                           <content>
                             <StackPane fx:id="hierarchyPanelHost" maxHeight="-1.0" style="-fx-padding: 0;" />
                           </content>
                         </TitledPane>
-                        <TitledPane fx:id="Info" animated="true" text="Controller">
+                        <TitledPane fx:id="Info" animated="true" text="%controller">
                           <content>
                             <StackPane fx:id="infoPanelHost" maxHeight="-1.0" />
                           </content>
@@ -111,24 +124,24 @@
               <children>
                 <HBox id="HBox" alignment="CENTER" spacing="0.0" VBox.vgrow="NEVER">
                   <children>
-                    <Label maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" styleClass="panelTitle" text="Inspector" HBox.hgrow="NEVER" />
+                    <Label maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" styleClass="panelTitle" text="%inspector" HBox.hgrow="NEVER" />
                     <StackPane fx:id="inspectorSearchPanelHost" prefHeight="-1.0" prefWidth="-1.0" HBox.hgrow="ALWAYS" />
                     <MenuButton fx:id="InspectorMenu" contentDisplay="GRAPHIC_ONLY" mnemonicParsing="false" styleClass="panelMenuButton" text="" HBox.hgrow="NEVER">
                       <items>
-                        <RadioMenuItem mnemonicParsing="false" onAction="#onInspectorShowAllAction" selected="true" text="Show All">
+                        <RadioMenuItem mnemonicParsing="false" onAction="#onInspectorShowAllAction" selected="true" text="%inspector.show.all">
                           <toggleGroup>
                             <ToggleGroup fx:id="showTg" />
                           </toggleGroup>
                         </RadioMenuItem>
-                        <RadioMenuItem disable="false" mnemonicParsing="false" onAction="#onInspectorShowEditedAction" text="Show Edited" toggleGroup="$showTg" />
+                        <RadioMenuItem disable="false" mnemonicParsing="false" onAction="#onInspectorShowEditedAction" text="%inspector.show.edited" toggleGroup="$showTg" />
                         <SeparatorMenuItem mnemonicParsing="false" />
-                        <RadioMenuItem mnemonicParsing="false" onAction="#onInspectorViewSectionsAction" selected="true" text="View Sections">
+                        <RadioMenuItem mnemonicParsing="false" onAction="#onInspectorViewSectionsAction" selected="true" text="%inspector.view.sections">
                           <toggleGroup>
                             <ToggleGroup fx:id="viewTg" />
                           </toggleGroup>
                         </RadioMenuItem>
-                        <RadioMenuItem mnemonicParsing="false" onAction="#onInspectorViewByPropertyNameAction" text="View by property name" toggleGroup="$viewTg" />
-                        <RadioMenuItem mnemonicParsing="false" onAction="#onInspectorViewByPropertyTypeAction" text="View by property type" toggleGroup="$viewTg" />
+                        <RadioMenuItem mnemonicParsing="false" onAction="#onInspectorViewByPropertyNameAction" text="%inspector.by.property.name" toggleGroup="$viewTg" />
+                        <RadioMenuItem mnemonicParsing="false" onAction="#onInspectorViewByPropertyTypeAction" text="%inspector.by.property.type" toggleGroup="$viewTg" />
                       </items>
                     </MenuButton>
                   </children>
@@ -142,7 +155,7 @@
           <children>
             <AnchorPane>
               <children>
-                <Label layoutX="0.0" layoutY="6.0" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" styleClass="panelTitle" text="CSS Analyzer" />
+                <Label layoutX="0.0" layoutY="6.0" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" styleClass="panelTitle" text="%csspanel" />
                 <HBox id="HBox" alignment="CENTER" layoutY="0.0" spacing="5.0" AnchorPane.rightAnchor="0.0">
                   <children>
                     <StackPane fx:id="cssPanelSearchPanelHost" prefHeight="-1.0" prefWidth="-1.0" />
@@ -161,8 +174,8 @@
                         </Menu>
                         <SeparatorMenuItem mnemonicParsing="false" />
                         <MenuItem mnemonicParsing="false" onAction="#onCssPanelCopyStyleablePathAction" text="%csspanel.copy.path" />
-                        <MenuItem mnemonicParsing="false" onAction="#onCssPanelShowStyledOnlyAction" text="%csspanel.hide.default.values" fx:id="cssPanelShowStyledOnlyMi" />
-                        <MenuItem mnemonicParsing="false" onAction="#onCssPanelSplitDefaultsAction" text="%csspanel.defaults.split" fx:id="cssPanelSplitDefaultsMi" />
+                        <MenuItem fx:id="cssPanelShowStyledOnlyMi" mnemonicParsing="false" onAction="#onCssPanelShowStyledOnlyAction" text="%csspanel.hide.default.values" />
+                        <MenuItem fx:id="cssPanelSplitDefaultsMi" mnemonicParsing="false" onAction="#onCssPanelSplitDefaultsAction" text="%csspanel.defaults.split" />
                       </items>
                     </MenuButton>
                   </children>
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindowController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/DocumentWindowController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -40,10 +40,13 @@
 import com.oracle.javafx.scenebuilder.app.preferences.PreferencesRecordGlobal;
 import com.oracle.javafx.scenebuilder.app.preview.BackgroundColorDialogController;
 import com.oracle.javafx.scenebuilder.app.preview.PreviewWindowController;
+import com.oracle.javafx.scenebuilder.app.report.JarAnalysisReportController;
 import com.oracle.javafx.scenebuilder.app.selectionbar.SelectionBarController;
 import com.oracle.javafx.scenebuilder.app.skeleton.SkeletonWindowController;
 import com.oracle.javafx.scenebuilder.app.template.FxmlTemplates;
 import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
+import com.oracle.javafx.scenebuilder.kit.editor.EditorController.ControlAction;
+import com.oracle.javafx.scenebuilder.kit.editor.EditorController.EditAction;
 import com.oracle.javafx.scenebuilder.kit.editor.EditorPlatform;
 import com.oracle.javafx.scenebuilder.kit.editor.job.Job;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.content.ContentPanelController;
@@ -59,7 +62,12 @@
 import com.oracle.javafx.scenebuilder.kit.editor.panel.util.dialog.AlertDialog;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.util.dialog.ErrorDialog;
 import com.oracle.javafx.scenebuilder.kit.editor.search.SearchController;
+import com.oracle.javafx.scenebuilder.kit.editor.selection.AbstractSelectionGroup;
+import com.oracle.javafx.scenebuilder.kit.editor.selection.ObjectSelectionGroup;
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument;
+import com.oracle.javafx.scenebuilder.kit.fxom.FXOMObject;
+import com.oracle.javafx.scenebuilder.kit.library.user.UserLibrary;
+import com.sun.javafx.scene.control.behavior.KeyBinding;
 import java.io.File;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
@@ -71,19 +79,30 @@
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.attribute.FileTime;
+import java.util.ArrayList;
 import java.util.Comparator;
+import java.util.List;
 import javafx.beans.InvalidationListener;
 import javafx.beans.Observable;
 import javafx.beans.value.ChangeListener;
 import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
+import javafx.event.EventHandler;
 import javafx.fxml.FXML;
 import javafx.geometry.Insets;
+import javafx.scene.Node;
 import javafx.scene.control.Accordion;
 import javafx.scene.control.CheckMenuItem;
+import javafx.scene.control.MenuButton;
+import javafx.scene.control.ComboBox;
 import javafx.scene.control.MenuItem;
 import javafx.scene.control.RadioMenuItem;
 import javafx.scene.control.SplitPane;
+import javafx.scene.control.TextInputControl;
+import javafx.scene.input.Clipboard;
+import javafx.scene.input.KeyCode;
+import javafx.scene.input.KeyCombination;
+import javafx.scene.input.KeyEvent;
 import javafx.scene.layout.StackPane;
 import javafx.scene.layout.VBox;
 import javafx.stage.FileChooser;
@@ -97,6 +116,9 @@
     
     
     public enum DocumentControlAction {
+        COPY,
+        SELECT_ALL,
+        SELECT_NONE,
         SAVE_FILE,
         SAVE_AS_FILE,
         REVERT_FILE,
@@ -112,6 +134,7 @@
         TOGGLE_CSS_PANEL,
         TOGGLE_LEFT_PANEL,
         TOGGLE_RIGHT_PANEL,
+        TOGGLE_OUTLINES_VISIBILITY,
         TOGGLE_GUIDES_VISIBILITY,
         SHOW_PREVIEW_WINDOW,
         CHOOSE_BACKGROUND_COLOR,
@@ -125,6 +148,11 @@
         SHOW_SAMPLE_CONTROLLER
     }
     
+    public enum DocumentEditAction {
+        CUT,
+        PASTE
+    }
+    
     public enum ActionStatus {
         CANCELLED,
         DONE
@@ -141,18 +169,20 @@
     private final LibraryPanelController libraryPanelController = new LibraryPanelController(editorController);
     private final SelectionBarController selectionBarController = new SelectionBarController(editorController);
     private final MessageBarController messageBarController = new MessageBarController(editorController);
-    // The PreviewWindowController is created lazily because it needs an owner
-    // and computing it here would be too costly (impact on start-up time).
-    private PreviewWindowController previewWindowController = null;
     private final SearchController librarySearchController = new SearchController(editorController);
     private final SearchController inspectorSearchController = new SearchController(editorController);
     private final SearchController cssPanelSearchController = new SearchController(editorController);;
     private final SceneStyleSheetMenuController sceneStyleSheetMenuController = new SceneStyleSheetMenuController(this);
     private final CssPanelMenuController cssPanelMenuController = new CssPanelMenuController(cssPanelController);
     private final ResourceController resourceController = new ResourceController((this));
-    // The SkeletonWindowController is created lazily because it needs an owner
-    // and computing it here would be too costly (impact on start-up time).
+    // The controller below are created lazily because they need an owner
+    // and computing them here would be too costly (impact on start-up time):
+    // - PreviewWindowController
+    // - SkeletonWindowController
+    // - JarAnalysisReportController
+    private PreviewWindowController previewWindowController = null;
     private SkeletonWindowController skeletonWindowController = null;
+    private JarAnalysisReportController jarAnalysisReportController = null;
 
     @FXML private StackPane libraryPanelHost;
     @FXML private StackPane librarySearchPanelHost;
@@ -169,8 +199,11 @@
     @FXML private SplitPane leftRightSplitPane;
     @FXML private SplitPane libraryDocumentSplitPane;
     
+    @FXML private MenuButton libraryMenuButton;
+    @FXML private MenuItem libraryImportSelection;
     @FXML private CheckMenuItem libraryViewAsList;
     @FXML private CheckMenuItem libraryViewAsSections;
+    @FXML private MenuItem libraryReveal;
     
     @FXML private MenuItem cssPanelShowStyledOnlyMi;
     @FXML private MenuItem cssPanelSplitDefaultsMi;
@@ -188,6 +221,56 @@
     private FileTime loadFileTime;
     private Job saveJob;
     
+    private final EventHandler<KeyEvent> mainKeyEventFilter = new EventHandler<KeyEvent>() {
+
+        @Override
+        public void handle(KeyEvent event) {
+            //------------------------------------------------------------------
+            // TEXT INPUT CONTROL
+            //------------------------------------------------------------------
+            // Common editing actions handled natively and defined as application accelerators
+            // 
+            // The platform support is not mature/stable enough to rely on.
+            // Indeed, the behavior may differ :
+            // - when using system menu bar vs not using it
+            // - when using accelerators vs using menu items
+            // - depending on the focused control (TextField vs ComboBox)
+            // 
+            // On SB side, we decide for now to consume events that may be handled natively
+            // so ALL actions are defined in our ApplicationMenu class.
+            //
+            // This may be revisit when platform implementation will be more reliable.
+            //
+            final Node focusOwner = getScene().getFocusOwner();
+            final KeyCombination accelerator = getAccelerator(event);
+            if (isTextInputControlEditing(focusOwner) == true 
+                    && accelerator != null) {
+                for (KeyBinding binding : SBTextInputControlBindings.getBindings()) {
+                    // The event is handled natively
+                    if (binding.getSpecificity(null, event) > 0) {
+                        // 
+                        // When using system menu bar, the event is handled natively 
+                        // before the application receives it : we just consume the event 
+                        // so the editing action is not performed a second time by the app.
+                        if (menuBarController.getMenuBar().isUseSystemMenuBar()) {
+                            event.consume();
+                        }
+                        break;
+                    }
+                }
+            }
+            
+            // MenuItems define a single accelerator.
+            // BACK_SPACE key must be handled same way as DELETE key.
+            if (isTextInputControlEditing(focusOwner) == false 
+                    && KeyCode.BACK_SPACE.equals(event.getCode())) {
+                if (editorController.canPerformEditAction(EditAction.DELETE)) {
+                    editorController.performEditAction(EditAction.DELETE);
+                }
+            }
+        }
+    };
+    
     /*
      * DocumentWindowController
      */
@@ -336,6 +419,18 @@
         final boolean result;
         
         switch(controlAction) {
+            case COPY:
+                result = canPerformCopy();
+                break;
+                
+            case SELECT_ALL:
+                result = canPerformSelectAll();
+                break;
+                
+            case SELECT_NONE:
+                result = canPerformSelectNone();
+                break;
+                
             case PRINT_FILE:
                 result = editorController.getFxomDocument() != null;
                 break;
@@ -345,6 +440,7 @@
             case TOGGLE_CSS_PANEL:
             case TOGGLE_LEFT_PANEL:
             case TOGGLE_RIGHT_PANEL:
+            case TOGGLE_OUTLINES_VISIBILITY:
             case TOGGLE_GUIDES_VISIBILITY:
             case SHOW_PREVIEW_WINDOW:
                 result = true;
@@ -392,9 +488,12 @@
                 break;
                 
             case SET_RESOURCE:
+                result = true;
+                break;
+                
             case REMOVE_RESOURCE:
             case REVEAL_RESOURCE:
-                result = true;
+                result = resourceController.getResourceFile() != null;
                 break;
                 
             case HELP:
@@ -421,6 +520,18 @@
         final PreferencesRecordDocument recordDocument = pc.getRecordDocument(this);
         
         switch(controlAction) {
+            case COPY:
+                performCopy();
+                break;
+                
+            case SELECT_ALL:
+                performSelectAll();
+                break;
+                
+            case SELECT_NONE:
+                performSelectNone();
+                break;
+                
             case SHOW_PREVIEW_WINDOW:
                 if (previewWindowController == null) {
                     previewWindowController = new PreviewWindowController(editorController, getStage());
@@ -516,6 +627,11 @@
                 recordDocument.setDocumentVisible(documentSplitController.isTargetVisible());
                 break;
                 
+            case TOGGLE_OUTLINES_VISIBILITY:
+                contentPanelController.setOutlinesVisible(
+                        ! contentPanelController.isOutlinesVisible());
+                break;
+                
             case TOGGLE_GUIDES_VISIBILITY:
                 contentPanelController.setGuidesVisible(
                         ! contentPanelController.isGuidesVisible());
@@ -559,7 +675,45 @@
         }
     }
     
+    public boolean canPerformEditAction(DocumentEditAction editAction) {
+        final boolean result;
+        
+        switch(editAction) {
+            case CUT:
+                result = canPerformCut();
+                break;
+                
+            case PASTE:
+                result = canPerformPaste();
+                break;
+                
+            default:
+                result = false;
+                assert false;
+                break;
+        }
+       
+        return result;
+    }
     
+    public void performEditAction(DocumentEditAction editAction) {
+        assert canPerformEditAction(editAction);
+        
+        switch(editAction) {
+            case CUT:
+                performCut();
+                break;
+                
+            case PASTE:
+                performPaste();
+                break;
+                
+            default:
+                assert false;
+                break;
+        }
+    }
+                
     public boolean isLeftPanelVisible() {
         return leftSplitController.isTargetVisible();
     }
@@ -584,6 +738,9 @@
         return librarySplitController.isTargetVisible();
     }
     
+    public File getResourceFile() {
+        return resourceController.getResourceFile();
+    }
     
     public static class TitleComparator implements Comparator<DocumentWindowController> {
 
@@ -632,6 +789,13 @@
         assert libraryDocumentSplitPane.getItems().size() == 2;
         assert documentAccordion != null;
         assert documentAccordion.getPanes().isEmpty() == false;
+        assert libraryViewAsList != null;
+        assert libraryViewAsSections != null;
+        assert libraryReveal != null;
+        assert libraryMenuButton != null;
+        assert libraryImportSelection != null;
+        
+        mainSplitPane.addEventFilter(KeyEvent.KEY_PRESSED, mainKeyEventFilter);
         
         // Insert the menu bar
         assert getRoot() instanceof VBox;
@@ -708,6 +872,37 @@
                 messageBarController.setDocumentDirty(currentJob != saveJob);
             }
         });
+        
+        // Setup title of the Library Reveal menu item according the underlying o/s.
+        final String revealMenuKey;
+        if (EditorPlatform.IS_MAC) {
+            revealMenuKey = "menu.title.reveal.mac";
+        } else if (EditorPlatform.IS_WINDOWS) {
+            revealMenuKey = "menu.title.reveal.win";
+        } else {
+            assert EditorPlatform.IS_LINUX;
+            revealMenuKey = "menu.title.reveal.linux";
+        }
+        libraryReveal.setText(I18N.getString(revealMenuKey));
+        
+        // We need to tune the content of the library menu according if there's
+        // or not a selection likely to be dropped onto Library panel.
+        libraryMenuButton.showingProperty().addListener(new ChangeListener<Boolean>() {
+
+            @Override
+            public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
+                if (t1) {
+                    AbstractSelectionGroup asg = getEditorController().getSelection().getGroup();
+                    libraryImportSelection.setDisable(true);
+
+                    if (asg != null && asg instanceof ObjectSelectionGroup) {
+                        if (((ObjectSelectionGroup)asg).getItems().size() >= 1) {
+                            libraryImportSelection.setDisable(false);
+                        }
+                    }
+                }
+            }
+        });
     }
 
     @Override
@@ -723,7 +918,8 @@
     public boolean isFrontDocumentWindow() {
         return getStage().isFocused()
                 || (previewWindowController != null && previewWindowController.getStage().isFocused())
-                || (skeletonWindowController != null && skeletonWindowController.getStage().isFocused());
+                || (skeletonWindowController != null && skeletonWindowController.getStage().isFocused())
+                || (jarAnalysisReportController != null && jarAnalysisReportController.getStage().isFocused());
     }
 
     public void performCloseFrontDocumentWindow() {
@@ -735,6 +931,9 @@
         } else if (skeletonWindowController != null
                 && skeletonWindowController.getStage().isFocused()) {
             skeletonWindowController.closeWindow();
+        } else if (jarAnalysisReportController != null
+                && jarAnalysisReportController.getStage().isFocused()) {
+            jarAnalysisReportController.closeWindow();
         }
     }
 
@@ -807,17 +1006,19 @@
     @FXML
     void onHierarchyShowInfo(ActionEvent event) {
         hierarchyPanelController.setDisplayOption(AbstractHierarchyPanelController.DisplayOption.INFO);
-        
+        documentAccordion.setExpandedPane(documentAccordion.getPanes().get(0));
     }
     
     @FXML
     void onHierarchyShowFxId(ActionEvent event) {
         hierarchyPanelController.setDisplayOption(AbstractHierarchyPanelController.DisplayOption.FXID);
+        documentAccordion.setExpandedPane(documentAccordion.getPanes().get(0));
     }
     
     @FXML
     void onHierarchyShowNodeId(ActionEvent event) {
         hierarchyPanelController.setDisplayOption(AbstractHierarchyPanelController.DisplayOption.NODEID);
+        documentAccordion.setExpandedPane(documentAccordion.getPanes().get(0));
     }
     
     //
@@ -842,15 +1043,195 @@
         libraryPanelController.setDisplayMode(LibraryPanelController.DISPLAY_MODE.SECTIONS);
     }
 
+    // This method cannot be called if there is not a valid selection, a selection
+    // eligible for being dropped onto Library panel.
     @FXML
     void onLibraryImportSelection(ActionEvent event) {
-        System.out.println("[DocumentWindowController::onLibraryImportSelection] Not yet available"); //NOI18N
+        AbstractSelectionGroup asg = getEditorController().getSelection().getGroup();
+
+        if (asg != null && asg instanceof ObjectSelectionGroup) {
+            ObjectSelectionGroup osg = (ObjectSelectionGroup)asg;
+            
+            if (osg.getItems().size() >= 1) {
+                List<FXOMObject> selection = new ArrayList<FXOMObject>(osg.getItems());
+                libraryPanelController.performImportSelection(selection);
+            }
+        }
+    }
+    
+    @FXML
+    void onLibraryRevealCustomFolder(ActionEvent event) {
+        String userLibraryPath = ((UserLibrary) getEditorController().getLibrary()).getPath();
+        try {
+            EditorPlatform.revealInFileBrowser(new File(userLibraryPath));
+        } catch(IOException x) {
+            final ErrorDialog errorDialog = new ErrorDialog(null);
+            errorDialog.setMessage(I18N.getString("alert.reveal.failure.message", getStage().getTitle()));
+            errorDialog.setDetails(I18N.getString("alert.reveal.failure.details"));
+            errorDialog.setDebugInfoWithThrowable(x);
+            errorDialog.showAndWait();
+        }
+    }
+    
+    @FXML
+    void onLibraryShowJarAnalysisReport(ActionEvent event) {
+        if (jarAnalysisReportController == null) {
+            jarAnalysisReportController = new JarAnalysisReportController(getEditorController(), getStage());
+        }
+        
+        jarAnalysisReportController.openWindow();
     }
     
     /*
      * Private
      */
+
+    private boolean canPerformCopy() {
+        boolean result;
+        final Node focusOwner = this.getScene().getFocusOwner();
+        if (isTextInputControlEditing(focusOwner)) {
+            final TextInputControl tic = getTextInputControl(focusOwner);
+            result = tic.getSelectedText() != null && tic.getSelectedText().isEmpty() == false;
+        } else {
+            result = getEditorController().canPerformControlAction(ControlAction.COPY);
+        }
+        return result;
+    }
+
+    private void performCopy() {
+        final Node focusOwner = this.getScene().getFocusOwner();
+        if (isTextInputControlEditing(focusOwner)) {
+            final TextInputControl tic = getTextInputControl(focusOwner);
+            tic.copy();
+        } else {
+            this.getEditorController().performControlAction(ControlAction.COPY);
+        }
+    }
+
+    private boolean canPerformSelectAll() {
+        boolean result;
+        final Node focusOwner = this.getScene().getFocusOwner();
+        if (isTextInputControlEditing(focusOwner)) {
+            final TextInputControl tic = getTextInputControl(focusOwner);
+            result = tic.getText() != null && tic.getText().isEmpty() == false;
+            final String selectedText = tic.getSelectedText();
+            // Check if the TextInputControl is not already ALL selected
+            if (selectedText != null && selectedText.length() == tic.getText().length()) {
+                result = false;
+            }
+        } else {
+            result = getEditorController().canPerformControlAction(ControlAction.SELECT_ALL);
+        }
+        return result;
+    }
+
+    private void performSelectAll() {
+        final Node focusOwner = this.getScene().getFocusOwner();
+        if (isTextInputControlEditing(focusOwner)) {
+            final TextInputControl tic = getTextInputControl(focusOwner);
+            tic.selectAll();
+        } else {
+            this.getEditorController().performControlAction(ControlAction.SELECT_ALL);
+        }
+    }
+
+    private boolean canPerformSelectNone() {
+        boolean result;
+        final Node focusOwner = this.getScene().getFocusOwner();
+        if (isTextInputControlEditing(focusOwner)) {
+            final TextInputControl tic = getTextInputControl(focusOwner);
+            result = tic.getSelectedText() != null && tic.getSelectedText().isEmpty() == false;
+        } else {
+            result = getEditorController().canPerformControlAction(ControlAction.SELECT_NONE);
+        }
+        return result;
+    }
+
+    private void performSelectNone() {
+        final Node focusOwner = this.getScene().getFocusOwner();
+        if (isTextInputControlEditing(focusOwner)) {
+            final TextInputControl tic = getTextInputControl(focusOwner);
+            tic.deselect();
+        } else {
+            this.getEditorController().performControlAction(ControlAction.SELECT_NONE);
+        }
+    }
     
+    private boolean canPerformCut() {
+        boolean result;
+        final Node focusOwner = this.getScene().getFocusOwner();
+        if (isTextInputControlEditing(focusOwner)) {
+            final TextInputControl tic = getTextInputControl(focusOwner);
+            result = tic.getSelectedText() != null && tic.getSelectedText().isEmpty() == false;
+        } else {
+            result = getEditorController().canPerformEditAction(EditAction.CUT);
+        }
+        return result;
+    }
+    
+    private void performCut() {
+        final Node focusOwner = this.getScene().getFocusOwner();
+        if (isTextInputControlEditing(focusOwner)) {
+            final TextInputControl tic = getTextInputControl(focusOwner);
+            tic.cut();
+        } else {
+            this.getEditorController().performEditAction(EditAction.CUT);
+        }
+    }
+
+    private boolean canPerformPaste() {
+        boolean result;
+        final Node focusOwner = this.getScene().getFocusOwner();
+        if (isTextInputControlEditing(focusOwner)) {
+            result = Clipboard.getSystemClipboard().hasString();
+        } else {
+            result = getEditorController().canPerformEditAction(EditAction.PASTE);
+        }
+        return result;
+    }
+    
+    private void performPaste() {
+        final Node focusOwner = this.getScene().getFocusOwner();
+        if (isTextInputControlEditing(focusOwner)) {
+            final TextInputControl tic = getTextInputControl(focusOwner);
+            tic.paste();
+        } else {
+            this.getEditorController().performEditAction(EditAction.PASTE);
+        }
+    }
+
+    /**
+     * Returns true if the specified node is either a TextInputControl or a ComboBox.
+     */
+    private boolean isTextInputControlEditing(Node node) {
+        return (node instanceof TextInputControl
+                || node instanceof ComboBox);
+    }
+
+    private TextInputControl getTextInputControl(Node node) {
+        assert isTextInputControlEditing(node);
+        final TextInputControl tic;
+        if (node instanceof TextInputControl) {
+            tic = (TextInputControl) node;
+        } else {
+            assert node instanceof ComboBox;
+            final ComboBox<?> cb = (ComboBox<?>) node;
+            tic = cb.getEditor();
+        }
+        return tic;
+    }
+    
+    private KeyCombination getAccelerator(final KeyEvent event) {
+        KeyCombination result = null;
+        for (KeyCombination kc : menuBarController.getAccelerators()) {
+            if (kc.match(event)) {
+                result = kc;
+                break;
+            }
+        }
+        return result;
+    }
+
     private void updateStageTitle() {
         getStage().setTitle(makeTitle(editorController.getFxomDocument()));
     }
@@ -1207,3 +1588,18 @@
         }
     }
 }
+
+/**
+ * This class setup key bindings for the TextInputControl type classes and
+ * provide a way to access the key binding list.
+ */
+class SBTextInputControlBindings extends com.sun.javafx.scene.control.behavior.TextInputControlBindings {
+
+    private SBTextInputControlBindings() {
+        assert false;
+    }
+
+    public static List<KeyBinding> getBindings() {
+        return BINDINGS;
+    }
+}
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/ResourceController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/ResourceController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -35,41 +35,58 @@
 import com.oracle.javafx.scenebuilder.kit.editor.EditorPlatform;
 import com.oracle.javafx.scenebuilder.kit.editor.panel.util.dialog.ErrorDialog;
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.Charset;
+import java.util.PropertyResourceBundle;
+import java.util.ResourceBundle;
 import javafx.stage.FileChooser;
 
 /**
  *
  */
-public class ResourceController {
+class ResourceController {
 
     private final DocumentWindowController documentWindowController;
+    private File resourceFile;
 
     public ResourceController(DocumentWindowController dwc) {
         this.documentWindowController = dwc;
     }
 
-    void performSetResource() {
+    public File getResourceFile() {
+        return resourceFile;
+    }
+    
+    public void performSetResource() {
         // Open a file chooser for *.properties & *.bss
         FileChooser fileChooser = new FileChooser();
         fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter(I18N.getString("resource.filechooser.filter.msg"),
                 "*.properties")); //NOI18N
-        File resourceFile = fileChooser.showOpenDialog(documentWindowController.getStage());
+        File newResourceFile = fileChooser.showOpenDialog(documentWindowController.getStage());
+        if (newResourceFile != null) {
+            if (readPropertyResourceBundle(newResourceFile) == null) {
+                // Property file syntax is probably incorrect
+                
+            } else {
+                resourceFile = newResourceFile;
+                resourceFileDidChange();
+            }            
+        }
 
-        // Update resource property so that listeners will react accordingly
-        documentWindowController.getEditorController().setResource(resourceFile);
     }
 
     public void performRemoveResource() {
-        assert documentWindowController.getEditorController().getResource() != null;
-        // Update resource property so that listeners will react accordingly
-        documentWindowController.getEditorController().setResource(null);
+        assert resourceFile != null;
+        resourceFile = null;
+        resourceFileDidChange();
     }
 
     public void performRevealResource() {
-        assert documentWindowController.getEditorController().getResource() != null;
+        assert resourceFile != null;
         try {
-            EditorPlatform.revealInFileBrowser(documentWindowController.getEditorController().getResource());
+            EditorPlatform.revealInFileBrowser(resourceFile);
         } catch (IOException ioe) {
             final ErrorDialog errorDialog = new ErrorDialog(null);
             errorDialog.setTitle(I18N.getString("error.file.reveal.title"));
@@ -80,4 +97,32 @@
         }
     }
 
+    
+    /*
+     * Private
+     */
+    
+    private void resourceFileDidChange() {
+        ResourceBundle resources;
+        
+        if (resourceFile != null) {
+            resources = readPropertyResourceBundle(resourceFile);
+            assert resources != null;
+        } else {
+            resources = null;
+        }
+        
+        documentWindowController.getEditorController().setResources(resources);
+    }
+    
+    
+    private static PropertyResourceBundle readPropertyResourceBundle(File f) {
+        PropertyResourceBundle result;
+        try {
+            result = new PropertyResourceBundle(new InputStreamReader(new FileInputStream(f), Charset.forName("UTF-8"))); //NOI18N
+        } catch (IOException ex) {
+            result = null;
+        }
+        return result;
+    }
 }
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderApp.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderApp.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderTest.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneBuilderTest.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneStyleSheetMenuController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SceneStyleSheetMenuController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SplitController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/SplitController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/About.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/About.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/AboutWindowController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/AboutWindowController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
Binary file apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/about/about-footer.png has changed
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/I18N.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/I18N.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp.properties	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp.properties	Sat Dec 28 08:05:35 2013 -0800
@@ -1,6 +1,32 @@
+# Copyright (c) 2012, 2014, Oracle and/or its affiliates.
+# All rights reserved. Use is subject to license terms.
 #
-# Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+# This file is available and licensed under the following license:
 #
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in
+#   the documentation and/or other materials provided with the distribution.
+# - Neither the name of Oracle Corporation nor the names of its
+#   contributors may be used to endorse or promote products derived
+#   from this software without specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 # -----------------------------------------------------------------------------
 # Generic labels
@@ -133,7 +159,11 @@
 menu.title.choose.background.color = Choose Background Color\u2026
 menu.title.theme = JavaFX Theme
 menu.title.theme.modena = Modena (JavaFX 8)
+menu.title.theme.modena.touch = Modena Touch (JavaFX 8)
 menu.title.theme.caspian = Caspian (JavaFX 2)
+menu.title.theme.caspian.embedded = Caspian Embedded (JavaFX 2)
+menu.title.theme.caspian.embedded.qvga = Caspian Embedded QVGA (JavaFX 2)
+menu.title.theme.caspian.high.contrast = High Contrast, for Caspian only (JavaFX 2)
 menu.title.scene.stylesheets = Scene Style Sheets
 menu.title.add.stylesheet = Add a Style Sheet\u2026
 menu.title.remove.stylesheet = Remove a Style Sheet
@@ -151,10 +181,34 @@
 menu.title.scene.builder.help = Scene Builder Help
 menu.title.about = About Scene Builder
 
+# -----------------------------------------------------------------------------
+# Document
+# -----------------------------------------------------------------------------
+document = Document
 
 # -----------------------------------------------------------------------------
-# Document Window
+# Hierarchy
 # -----------------------------------------------------------------------------
+hierarchy = Hierarchy
+hierarchy.displays = Hierarchy displays
+hierarchy.show.info = Info
+hierarchy.show.fxid = fx:id
+hierarchy.show.nodeid = Node Id
+
+# -----------------------------------------------------------------------------
+# Controller
+# -----------------------------------------------------------------------------
+controller = Controller
+
+# -----------------------------------------------------------------------------
+# Inspector
+# -----------------------------------------------------------------------------
+inspector = Inspector
+inspector.show.all = Show All
+inspector.show.edited = Show Edited
+inspector.view.sections = View Sections
+inspector.by.property.name = View by property name
+inspector.by.property.type = View by property type
 
 # -----------------------------------------------------------------------------
 # Preferences Window
@@ -178,7 +232,6 @@
 # -----------------------------------------------------------------------------
 # Preview Window
 # -----------------------------------------------------------------------------
-preview.constructing = Constructing Preview content ...
 preview.background.color = Background Color
 preview.no.document = No document
 preview.not.node = Not a Node
@@ -203,10 +256,10 @@
 # -----------------------------------------------------------------------------
 # Library Menu within Library panel
 # -----------------------------------------------------------------------------
-# Import of FXML file is not yet ready
+library = Library
 library.panel.menu.import.jar.fxml = Import JAR/FXML file
+library.panel.menu.import.selection = Import Selection
 # Messages below are temporarily unused
-#library.panel.menu.import.selection = Import Selection
 #library.panel.menu.category.view = View Library Category
 #library.panel.menu.category.create = Create Library Category
 #library.panel.menu.category.remove = Remove Library Category
@@ -215,6 +268,8 @@
 #library.panel.menu.item.remove = Remove Custom Item
 library.panel.menu.view.list = View as List
 library.panel.menu.view.sections = View as Sections
+library.panel.menu.custom = Custom Library Folder
+library.panel.menu.custom.report = Show JAR Analysis Report
 
 # -----------------------------------------------------------------------------
 # About Window
@@ -222,8 +277,8 @@
 about.title = About JavaFX Scene Builder
 about.build.information = Build Information
 about.build.date = Date: {0}
-about.copyright = Copyright \u00a9 2012, 2013, Oracle and/or its affiliates. All rights reserved.\n\nThis software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.\n\nThe information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.\n\nIf this software or related documentation is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:\n\nU.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are \"commercial computer software\" or \"commercial technical data\" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.\n\nThis software is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications which may create a risk of personal injury. If you use this software in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure the safe use of this software. Oracle and its affiliates disclaim any liability for any damages caused by use of this software in dangerous applications.\n\nOracle is a registered trademark of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.\n\nThis software and documentation may provide access to or information on content, products, and services from third parties. Oracle and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.
-about.copyright.open = Copyright (c) 2012, 2013, Oracle and/or its affiliates.\nAll rights reserved. Use is subject to license terms.\n\nThis file is available and licensed under the following license:\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n - Neither the name of Oracle Corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+about.copyright = Copyright \u00a9 2012, 2014, Oracle and/or its affiliates. All rights reserved.\n\nThis software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.\n\nThe information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.\n\nIf this software or related documentation is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:\n\nU.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are \"commercial computer software\" or \"commercial technical data\" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.\n\nThis software is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications which may create a risk of personal injury. If you use this software in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure the safe use of this software. Oracle and its affiliates disclaim any liability for any damages caused by use of this software in dangerous applications.\n\nOracle is a registered trademark of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.\n\nThis software and documentation may provide access to or information on content, products, and services from third parties. Oracle and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.
+about.copyright.open = Copyright (c) 2012, 2014, Oracle and/or its affiliates.\nAll rights reserved. Use is subject to license terms.\n\nThis file is available and licensed under the following license:\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n - Neither the name of Oracle Corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 # Hardware acceleration is a boolean: its value depends on the FX toolkit and pipeline in use.
 about.fx.hardware.acceleration = Hardware acceleration
 about.fx.hardware.acceleration.enabled = ENABLED
@@ -323,6 +378,7 @@
 # -----------------------------------------------------------------------------
 # CSS Panel
 # -----------------------------------------------------------------------------
+csspanel = CSS Analyzer
 csspanel.copy.path = Copy Styleable Path
 csspanel.rules = Rules
 csspanel.show.default.values = Show Properties with Default Values
@@ -339,4 +395,13 @@
 skeleton.add.comments = Comments
 skeleton.format.full = Full
 # Parameter is a fxml file name
-skeleton.window.title = Sample Skeleton for ''{0}'' Controller Class
\ No newline at end of file
+skeleton.window.title = Sample Skeleton for ''{0}'' Controller Class
+
+# -----------------------------------------------------------------------------
+# JAR Analysis Report dialog
+# -----------------------------------------------------------------------------
+# The parameter is a time stamp
+jar.analysis.report.timestamp = Analysis done on {0}
+jar.analysis.report.title = JAR Analysis Report
+jar.analysis.exception = Exception for:
+jar.analysis.not.node = Not a Node:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp_ja.properties	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp_ja.properties	Sat Dec 28 08:05:35 2013 -0800
@@ -1,6 +1,32 @@
+# Copyright (c) 2012, 2014, Oracle and/or its affiliates.
+# All rights reserved. Use is subject to license terms.
 #
-# Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+# This file is available and licensed under the following license:
 #
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in
+#   the documentation and/or other materials provided with the distribution.
+# - Neither the name of Oracle Corporation nor the names of its
+#   contributors may be used to endorse or promote products derived
+#   from this software without specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 # Generic labels
 
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp_zh_CN.properties	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp_zh_CN.properties	Sat Dec 28 08:05:35 2013 -0800
@@ -1,6 +1,32 @@
+# Copyright (c) 2012, 2014, Oracle and/or its affiliates.
+# All rights reserved. Use is subject to license terms.
 #
-# Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+# This file is available and licensed under the following license:
 #
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in
+#   the documentation and/or other materials provided with the distribution.
+# - Neither the name of Oracle Corporation nor the names of its
+#   contributors may be used to endorse or promote products derived
+#   from this software without specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 # Generic labels
 
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/IndexEntry.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/IndexEntry.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanel.css	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanel.css	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanel.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanel.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanelController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/InfoPanelController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/LeftCell.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/LeftCell.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/RightCell.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/info/RightCell.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/DebugMenuController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/DebugMenuController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBar.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBar.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
@@ -31,207 +31,209 @@
   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 -->
-
 <?import java.lang.*?>
 <?import javafx.scene.control.*?>
 <?import javafx.scene.layout.*?>
 <?scenebuilder-preview-i18n-resource ../i18n/SceneBuilderApp.properties?>
 
-<StackPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
-    <children>
-        <MenuBar fx:id="menuBar">
-            <menus>
-                <Menu fx:id="fileMenu" mnemonicParsing="false" text="%menu.title.file">
-                    <items>
-                        <MenuItem fx:id="newMenuItem" mnemonicParsing="false" text="%menu.title.new" />
-                        <Menu fx:id="newTemplateMenuItem" mnemonicParsing="false" text="%menu.title.new.template">
-                            <items>
-                                <MenuItem fx:id="newAlertDialogMenuItem" mnemonicParsing="false" text="%menu.title.new.alert.dialog" />
-                                <MenuItem fx:id="newBasicAppMenuItem" mnemonicParsing="false" text="%menu.title.new.basic.app" />
-                                <MenuItem fx:id="newComplexAppMenuItem" mnemonicParsing="false" text="%menu.title.new.complex.app" />
-                                <SeparatorMenuItem mnemonicParsing="false" />
-                                <MenuItem fx:id="newAlertDialogCssMenuItem" mnemonicParsing="false" text="%menu.title.new.alert.dialog.css" />
-                                <MenuItem fx:id="newAlertDialogI18nMenuItem" mnemonicParsing="false" text="%menu.title.new.alert.dialog.i18n" />
-                                <MenuItem fx:id="newBasicAppCssMenuItem" mnemonicParsing="false" text="%menu.title.new.basic.app.css" />
-                                <MenuItem fx:id="newBasicAppI18nMenuItem" mnemonicParsing="false" text="%menu.title.new.basic.app.i18n" />
-                                <MenuItem fx:id="newComplexAppCssMenuItem" mnemonicParsing="false" text="%menu.title.new.complex.app.css" />
-                                <MenuItem fx:id="newComplexAppI18nMenuItem" mnemonicParsing="false" text="%menu.title.new.complex.app.i18n" />
-                            </items>
-                        </Menu>
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <MenuItem fx:id="openMenuItem" mnemonicParsing="false" text="%menu.title.open" />
-                        <Menu fx:id="openRecentMenu" mnemonicParsing="false" text="%menu.title.open.recent" >              
-                            <items>
-                                <MenuItem mnemonicParsing="false" text="Action 1" />
-                            </items>
-                        </Menu>
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <MenuItem fx:id="saveMenuItem" mnemonicParsing="false" text="%menu.title.save" />
-                        <MenuItem fx:id="saveAsMenuItem" mnemonicParsing="false" text="%menu.title.save.as" />
-                        <MenuItem fx:id="revertMenuItem" mnemonicParsing="false" text="%menu.title.revert" />
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <MenuItem fx:id="revealMenuItem" mnemonicParsing="false" text="Reveal (setup at runtime)" />
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <MenuItem fx:id="closeMenuItem" mnemonicParsing="false" text="%menu.title.close" />
-                        <SeparatorMenuItem fx:id="separatorAbovePreferencesMenuItem" mnemonicParsing="false" />
-                        <MenuItem fx:id="showPreferencesMenuItem" mnemonicParsing="false" text="%menu.title.preferences" />
-                        <MenuItem fx:id="exitMenuItem" mnemonicParsing="false" text="%menu.title.quit" />
-                    </items>
+<StackPane xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2">
+  <children>
+    <MenuBar fx:id="menuBar">
+      <menus>
+        <Menu mnemonicParsing="false" text="%menu.title.file" fx:id="fileMenu">
+          <items>
+            <MenuItem mnemonicParsing="false" text="%menu.title.new" fx:id="newMenuItem" />
+            <Menu mnemonicParsing="false" text="%menu.title.new.template" fx:id="newTemplateMenuItem">
+              <items>
+                <MenuItem mnemonicParsing="false" text="%menu.title.new.alert.dialog" fx:id="newAlertDialogMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.new.basic.app" fx:id="newBasicAppMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.new.complex.app" fx:id="newComplexAppMenuItem" />
+                <SeparatorMenuItem mnemonicParsing="false" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.new.alert.dialog.css" fx:id="newAlertDialogCssMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.new.alert.dialog.i18n" fx:id="newAlertDialogI18nMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.new.basic.app.css" fx:id="newBasicAppCssMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.new.basic.app.i18n" fx:id="newBasicAppI18nMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.new.complex.app.css" fx:id="newComplexAppCssMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.new.complex.app.i18n" fx:id="newComplexAppI18nMenuItem" />
+              </items>
+            </Menu>
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.open" fx:id="openMenuItem" />
+            <Menu mnemonicParsing="false" text="%menu.title.open.recent" fx:id="openRecentMenu">
+              <items>
+                <MenuItem mnemonicParsing="false" text="Action 1" />
+              </items>
+            </Menu>
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.save" fx:id="saveMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.save.as" fx:id="saveAsMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.revert" fx:id="revertMenuItem" />
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <MenuItem mnemonicParsing="false" text="Reveal (setup at runtime)" fx:id="revealMenuItem" />
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.close" fx:id="closeMenuItem" />
+            <SeparatorMenuItem mnemonicParsing="false" fx:id="separatorAbovePreferencesMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.preferences" fx:id="showPreferencesMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.quit" fx:id="exitMenuItem" />
+          </items>
+        </Menu>
+        <Menu mnemonicParsing="false" text="%menu.title.edit">
+          <items>
+            <MenuItem mnemonicParsing="false" text="%menu.title.undo" fx:id="undoMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.redo" fx:id="redoMenuItem" />
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.cut" fx:id="cutMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.copy" fx:id="copyMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.paste" fx:id="pasteMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.paste.into" fx:id="pasteIntoMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.duplicate" fx:id="duplicateMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.delete" fx:id="deleteMenuItem" />
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.select.all" fx:id="selectAllMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.select.none" fx:id="selectNoneMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.select.parent" fx:id="selectParentMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.select.next" fx:id="selectNextMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.select.previous" fx:id="selectPreviousMenuItem" />
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.trim" fx:id="trimMenuItem" />
+          </items>
+        </Menu>
+        <Menu mnemonicParsing="false" text="%menu.title.view">
+          <items>
+            <MenuItem mnemonicParsing="false" text="%menu.title.content" fx:id="gotoContentMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.properties" fx:id="gotoPropertiesMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.layout" fx:id="gotoLayoutMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.code" fx:id="gotoCodeMenuItem" />
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.hide.library.panel" fx:id="toggleLibraryPanelMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.hide.document.panel" fx:id="toggleHierarchyPanelMenuItem" />
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.show.bottom.panel" fx:id="toggleCSSPanelMenuItem" />
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.hide.left.panel" fx:id="toggleLeftPanelMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.hide.right.panel" fx:id="toggleRightPanelMenuItem" />
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.show.outlines" fx:id="toggleOutlinesMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.show.sample.data" fx:id="toggleSampleDataMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.disable.guides" fx:id="toggleAlignmentGuidesMenuItem" />
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <Menu mnemonicParsing="false" text="%menu.title.zoom" fx:id="zoomMenu" />
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.show.sample.controller.skeleton" fx:id="showSampleControllerMenuItem" />
+          </items>
+        </Menu>
+        <Menu mnemonicParsing="false" text="%menu.title.insert" fx:id="insertMenu" />
+        <Menu mnemonicParsing="false" text="%menu.title.modify">
+          <items>
+            <MenuItem mnemonicParsing="false" text="%menu.title.fit" fx:id="fitToParentMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.use.computed.sizes" fx:id="useComputedSizesMenuItem" />
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <Menu mnemonicParsing="false" text="%menu.title.grid">
+              <items>
+                <MenuItem mnemonicParsing="false" text="%menu.title.grid.move.row.above" fx:id="moveRowAboveMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.grid.move.row.below" fx:id="moveRowBelowMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.grid.move.column.before" fx:id="moveColumnBeforeMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.grid.move.column.after" fx:id="moveColumnAfterMenuItem" />
+                <SeparatorMenuItem mnemonicParsing="false" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.grid.add.row.above" fx:id="addRowAboveMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.grid.add.row.below" fx:id="addRowBelowMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.grid.add.column.before" fx:id="addColumnBeforeMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.grid.add.column.after" fx:id="addColumnAfterMenuItem" />
+                <SeparatorMenuItem mnemonicParsing="false" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.grid.increase.row.span" fx:id="increaseRowSpanMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.grid.decrease.row.span" fx:id="decreaseRowSpanMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.grid.increase.column.span" fx:id="increaseColumnSpanMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.grid.decrease.column.span" fx:id="decreaseColumnSpanMenuItem" />
+              </items>
+            </Menu>
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <Menu mnemonicParsing="false" text="%menu.title.add.effect" fx:id="addEffectMenu" />
+            <Menu mnemonicParsing="false" text="%menu.title.add.popup" fx:id="addPopupControlMenu" />
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.edit.included.default" fx:id="editIncludedFileMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.reveal.included.default" fx:id="revealIncludedFileMenuItem" />
+          </items>
+        </Menu>
+        <Menu mnemonicParsing="false" text="%menu.title.arrange">
+          <items>
+            <MenuItem mnemonicParsing="false" text="%menu.title.front" fx:id="bringToFrontMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.back" fx:id="sendToBackMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.forward" fx:id="bringForwardMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.backward" fx:id="sendBackwardMenuItem" />
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <Menu mnemonicParsing="false" text="%menu.title.wrap">
+              <items>
+                <MenuItem mnemonicParsing="false" text="AnchorPane" fx:id="wrapInAnchorPaneMenuItem" />
+                <MenuItem mnemonicParsing="false" text="GridPane" fx:id="wrapInGridPaneMenuItem" />
+                <MenuItem mnemonicParsing="false" text="HBox" fx:id="wrapInHBoxMenuItem" />
+                <MenuItem mnemonicParsing="false" text="Pane" fx:id="wrapInPaneMenuItem" />
+                <MenuItem mnemonicParsing="false" text="ScrollPane" fx:id="wrapInScrollPaneMenuItem" />
+                <MenuItem mnemonicParsing="false" text="SplitPane" fx:id="wrapInSplitPaneMenuItem" />
+                <MenuItem mnemonicParsing="false" text="StackPane" fx:id="wrapInStackPaneMenuItem" />
+                <MenuItem mnemonicParsing="false" text="TabPane" fx:id="wrapInTabPaneMenuItem" />
+                <MenuItem mnemonicParsing="false" text="TitledPane" fx:id="wrapInTitledPaneMenuItem" />
+                <MenuItem mnemonicParsing="false" text="ToolBar" fx:id="wrapInToolBarMenuItem" />
+                <MenuItem mnemonicParsing="false" text="VBox" fx:id="wrapInVBoxMenuItem" />
+                <MenuItem mnemonicParsing="false" text="Group" fx:id="wrapInGroupMenuItem" />
+              </items>
+            </Menu>
+            <MenuItem mnemonicParsing="false" text="%menu.title.unwrap" fx:id="unwrapMenuItem" />
+          </items>
+        </Menu>
+        <Menu mnemonicParsing="false" text="%menu.title.preview">
+          <items>
+            <MenuItem mnemonicParsing="false" text="%menu.title.show.preview" fx:id="showPreviewMenuItem" />
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.choose.background.color" fx:id="chooseBackgroundColorMenuItem" />
+            <SeparatorMenuItem mnemonicParsing="false" />
+            <Menu mnemonicParsing="false" text="%menu.title.theme">
+              <items>
+                <RadioMenuItem mnemonicParsing="false" text="%menu.title.theme.modena" fx:id="modenaThemeMenuItem" />
+                <RadioMenuItem mnemonicParsing="false" text="%menu.title.theme.modena.touch" fx:id="modenaTouchThemeMenuItem" />
+                <SeparatorMenuItem mnemonicParsing="false" />
+                <RadioMenuItem mnemonicParsing="false" text="%menu.title.theme.caspian" fx:id="caspianThemeMenuItem" />
+                <RadioMenuItem mnemonicParsing="false" text="%menu.title.theme.caspian.embedded" fx:id="caspianEmbeddedThemeMenuItem" />
+                <RadioMenuItem mnemonicParsing="false" text="%menu.title.theme.caspian.embedded.qvga" fx:id="caspianEmbeddedQVGAThemeMenuItem" />
+                <SeparatorMenuItem mnemonicParsing="false" />
+                <CheckMenuItem mnemonicParsing="false" text="%menu.title.theme.caspian.high.contrast" fx:id="caspianHighContrastThemeMenuItem"/>
+              </items>
+            </Menu>
+            <Menu mnemonicParsing="false" text="%menu.title.scene.stylesheets">
+              <items>
+                <MenuItem mnemonicParsing="false" text="%menu.title.add.stylesheet" fx:id="addSceneStyleSheetMenuItem" />
+                <Menu mnemonicParsing="false" text="%menu.title.remove.stylesheet" fx:id="removeSceneStyleSheetMenu">
+                  <items>
+                    <MenuItem disable="true" mnemonicParsing="false" text="%scenestylesheet.none" />
+                  </items>
                 </Menu>
-                <Menu mnemonicParsing="false" text="%menu.title.edit">
-                    <items>
-                        <MenuItem fx:id="undoMenuItem" mnemonicParsing="false" text="%menu.title.undo" />
-                        <MenuItem fx:id="redoMenuItem" mnemonicParsing="false" text="%menu.title.redo" />
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <MenuItem fx:id="cutMenuItem" mnemonicParsing="false" text="%menu.title.cut" />
-                        <MenuItem fx:id="copyMenuItem" mnemonicParsing="false" text="%menu.title.copy" />
-                        <MenuItem fx:id="pasteMenuItem" mnemonicParsing="false" text="%menu.title.paste" />
-                        <MenuItem fx:id="pasteIntoMenuItem" mnemonicParsing="false" text="%menu.title.paste.into" />
-                        <MenuItem fx:id="duplicateMenuItem" mnemonicParsing="false" text="%menu.title.duplicate" />
-                        <MenuItem fx:id="deleteMenuItem" mnemonicParsing="false" text="%menu.title.delete" />
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <MenuItem fx:id="selectAllMenuItem" mnemonicParsing="false" text="%menu.title.select.all" />
-                        <MenuItem fx:id="selectNoneMenuItem" mnemonicParsing="false" text="%menu.title.select.none" />
-                        <MenuItem fx:id="selectParentMenuItem" mnemonicParsing="false" text="%menu.title.select.parent" />
-                        <MenuItem fx:id="selectNextMenuItem" mnemonicParsing="false" text="%menu.title.select.next" />
-                        <MenuItem fx:id="selectPreviousMenuItem" mnemonicParsing="false" text="%menu.title.select.previous" />
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <MenuItem fx:id="trimMenuItem" mnemonicParsing="false" text="%menu.title.trim" />
-                    </items>
+                <Menu mnemonicParsing="false" text="%menu.title.open.stylesheet" fx:id="openSceneStyleSheetMenu">
+                  <items>
+                    <MenuItem disable="true" mnemonicParsing="false" text="%scenestylesheet.none" />
+                  </items>
                 </Menu>
-                <Menu mnemonicParsing="false" text="%menu.title.view">
-                    <items>
-                        <MenuItem fx:id="gotoContentMenuItem" mnemonicParsing="false" text="%menu.title.content" />
-                        <MenuItem fx:id="gotoPropertiesMenuItem" mnemonicParsing="false" text="%menu.title.properties" />
-                        <MenuItem fx:id="gotoLayoutMenuItem" mnemonicParsing="false" text="%menu.title.layout" />
-                        <MenuItem fx:id="gotoCodeMenuItem" mnemonicParsing="false" text="%menu.title.code" />
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <MenuItem fx:id="toggleLibraryPanelMenuItem" mnemonicParsing="false" text="%menu.title.hide.library.panel" />
-                        <MenuItem fx:id="toggleHierarchyPanelMenuItem" mnemonicParsing="false" text="%menu.title.hide.document.panel" />
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <MenuItem fx:id="toggleCSSPanelMenuItem" mnemonicParsing="false" text="%menu.title.show.bottom.panel" />
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <MenuItem fx:id="toggleLeftPanelMenuItem" mnemonicParsing="false" text="%menu.title.hide.left.panel" />
-                        <MenuItem fx:id="toggleRightPanelMenuItem" mnemonicParsing="false" text="%menu.title.hide.right.panel" />
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <MenuItem fx:id="toggleOutlinesMenuItem" mnemonicParsing="false" text="%menu.title.show.outlines" />
-                        <MenuItem fx:id="toggleSampleDataMenuItem" mnemonicParsing="false" text="%menu.title.show.sample.data" />
-                        <MenuItem fx:id="toggleAlignmentGuidesMenuItem" mnemonicParsing="false" text="%menu.title.disable.guides" />
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <Menu fx:id="zoomMenu" mnemonicParsing="false" text="%menu.title.zoom" />
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <MenuItem fx:id="showSampleControllerMenuItem" mnemonicParsing="false" text="%menu.title.show.sample.controller.skeleton" />
-                    </items>
-                </Menu>
-                <Menu fx:id="insertMenu" mnemonicParsing="false" text="%menu.title.insert" />
-                <Menu mnemonicParsing="false" text="%menu.title.modify">
-                    <items>
-                        <MenuItem fx:id="fitToParentMenuItem" mnemonicParsing="false" text="%menu.title.fit" />
-                        <MenuItem fx:id="useComputedSizesMenuItem" mnemonicParsing="false" text="%menu.title.use.computed.sizes" />
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <Menu mnemonicParsing="false" text="%menu.title.grid">
-                            <items>
-                                <MenuItem fx:id="selectNextRowMenuItem" mnemonicParsing="false" text="%menu.title.grid.select.next.row" />
-                                <MenuItem fx:id="selectNextColumnMenuItem" mnemonicParsing="false" text="%menu.title.grid.select.next.column" />
-                                <SeparatorMenuItem mnemonicParsing="false" />
-                                <MenuItem fx:id="moveRowAboveMenuItem" mnemonicParsing="false" text="%menu.title.grid.move.row.above" />
-                                <MenuItem fx:id="moveRowBelowMenuItem" mnemonicParsing="false" text="%menu.title.grid.move.row.below" />
-                                <MenuItem fx:id="moveColumnBeforeMenuItem" mnemonicParsing="false" text="%menu.title.grid.move.column.before" />
-                                <MenuItem fx:id="moveColumnAfterMenuItem" mnemonicParsing="false" text="%menu.title.grid.move.column.after" />
-                                <SeparatorMenuItem mnemonicParsing="false" />
-                                <MenuItem fx:id="addRowAboveMenuItem" mnemonicParsing="false" text="%menu.title.grid.add.row.above" />
-                                <MenuItem fx:id="addRowBelowMenuItem" mnemonicParsing="false" text="%menu.title.grid.add.row.below" />
-                                <MenuItem fx:id="addColumnBeforeMenuItem" mnemonicParsing="false" text="%menu.title.grid.add.column.before" />
-                                <MenuItem fx:id="addColumnAfterMenuItem" mnemonicParsing="false" text="%menu.title.grid.add.column.after" />
-                                <SeparatorMenuItem mnemonicParsing="false" />
-                                <MenuItem fx:id="increaseRowSpanMenuItem" mnemonicParsing="false" text="%menu.title.grid.increase.row.span" />
-                                <MenuItem fx:id="decreaseRowSpanMenuItem" mnemonicParsing="false" text="%menu.title.grid.decrease.row.span" />
-                                <MenuItem fx:id="increaseColumnSpanMenuItem" mnemonicParsing="false" text="%menu.title.grid.increase.column.span" />
-                                <MenuItem fx:id="decreaseColumnSpanMenuItem" mnemonicParsing="false" text="%menu.title.grid.decrease.column.span" />
-                            </items>
-                        </Menu>
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <Menu fx:id="addEffectMenu" mnemonicParsing="false" text="%menu.title.add.effect" />
-                        <Menu fx:id="addPopupControlMenu" mnemonicParsing="false" text="%menu.title.add.popup" />
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <MenuItem fx:id="editIncludedFileMenuItem" mnemonicParsing="false" text="%menu.title.edit.included.default" />
-                        <MenuItem fx:id="revealIncludedFileMenuItem" mnemonicParsing="false" text="%menu.title.reveal.included.default" />
-                    </items>
-                </Menu>
-                <Menu mnemonicParsing="false" text="%menu.title.arrange">
-                    <items>
-                        <MenuItem fx:id="bringToFrontMenuItem" mnemonicParsing="false" text="%menu.title.front" />
-                        <MenuItem fx:id="sendToBackMenuItem" mnemonicParsing="false" text="%menu.title.back" />
-                        <MenuItem fx:id="bringForwardMenuItem" mnemonicParsing="false" text="%menu.title.forward" />
-                        <MenuItem fx:id="sendBackwardMenuItem" mnemonicParsing="false" text="%menu.title.backward" />
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <Menu mnemonicParsing="false" text="%menu.title.wrap">
-                            <items>
-                                <MenuItem fx:id="wrapInAnchorPaneMenuItem" mnemonicParsing="false" text="AnchorPane" />
-                                <MenuItem fx:id="wrapInGridPaneMenuItem" mnemonicParsing="false" text="GridPane" />
-                                <MenuItem fx:id="wrapInHBoxMenuItem" mnemonicParsing="false" text="HBox" />
-                                <MenuItem fx:id="wrapInPaneMenuItem" mnemonicParsing="false" text="Pane" />
-                                <MenuItem fx:id="wrapInScrollPaneMenuItem" mnemonicParsing="false" text="ScrollPane" />
-                                <MenuItem fx:id="wrapInSplitPaneMenuItem" mnemonicParsing="false" text="SplitPane" />
-                                <MenuItem fx:id="wrapInStackPaneMenuItem" mnemonicParsing="false" text="StackPane" />
-                                <MenuItem fx:id="wrapInTabPaneMenuItem" mnemonicParsing="false" text="TabPane" />
-                                <MenuItem fx:id="wrapInTitledPaneMenuItem" mnemonicParsing="false" text="TitledPane" />
-                                <MenuItem fx:id="wrapInToolBarMenuItem" mnemonicParsing="false" text="ToolBar" />
-                                <MenuItem fx:id="wrapInVBoxMenuItem" mnemonicParsing="false" text="VBox" />
-                                <MenuItem fx:id="wrapInGroupMenuItem" mnemonicParsing="false" text="Group" />
-                            </items>
-                        </Menu>
-                        <MenuItem fx:id="unwrapMenuItem" mnemonicParsing="false" text="%menu.title.unwrap" />
-                    </items>
-                </Menu>
-                <Menu mnemonicParsing="false" text="%menu.title.preview">
-                    <items>
-                        <MenuItem fx:id="showPreviewMenuItem" mnemonicParsing="false" text="%menu.title.show.preview" />
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <MenuItem fx:id="chooseBackgroundColorMenuItem" mnemonicParsing="false" text="%menu.title.choose.background.color" />
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                        <Menu mnemonicParsing="false" text="%menu.title.theme">
-                            <items>
-                                <RadioMenuItem fx:id="modenaThemeMenuItem" mnemonicParsing="false" text="%menu.title.theme.modena" />
-                                <RadioMenuItem fx:id="caspianThemeMenuItem" mnemonicParsing="false" text="%menu.title.theme.caspian" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" />
-                            </items>
-                        </Menu>
-                        <Menu mnemonicParsing="false" text="%menu.title.scene.stylesheets">
-                            <items>
-                                <MenuItem fx:id="addSceneStyleSheetMenuItem" mnemonicParsing="false" text="%menu.title.add.stylesheet" />
-                                <Menu fx:id="removeSceneStyleSheetMenu" mnemonicParsing="false" text="%menu.title.remove.stylesheet">
-                                    <items>
-                                        <MenuItem disable="true" mnemonicParsing="false" text="%scenestylesheet.none" />
-                                    </items>
-                                </Menu>
-                                <Menu fx:id="openSceneStyleSheetMenu" mnemonicParsing="false" text="%menu.title.open.stylesheet">
-                                    <items>
-                                        <MenuItem disable="true" mnemonicParsing="false" text="%scenestylesheet.none" />
-                                    </items>
-                                </Menu>
-                            </items>
-                        </Menu>
-                        <Menu mnemonicParsing="false" text="%menu.title.internationalization">
-                            <items>
-                                <MenuItem fx:id="setResourceMenuItem" mnemonicParsing="false" text="%menu.title.set.resource" />
-                                <MenuItem fx:id="removeResourceMenuItem" mnemonicParsing="false" text="%menu.title.remove.resource" />
-                                <MenuItem fx:id="revealResourceMenuItem" mnemonicParsing="false" text="%menu.title.reveal.resource" />
-                            </items>
-                        </Menu>
-                    </items>
-                </Menu>
-                <Menu fx:id="windowMenu" mnemonicParsing="false" text="%menu.title.window">
-                    <items>
-                        <SeparatorMenuItem mnemonicParsing="false" />
-                    </items>
-                </Menu>
-                <Menu mnemonicParsing="false" text="%menu.title.help">
-                    <items>
-                        <MenuItem fx:id="helpMenuItem" mnemonicParsing="false" text="%menu.title.scene.builder.help" />
-                        <MenuItem fx:id="aboutMenuItem" mnemonicParsing="false" text="%menu.title.about" />
-                    </items>
-                </Menu>
-            </menus>
-        </MenuBar>
-    </children>
+              </items>
+            </Menu>
+            <Menu mnemonicParsing="false" text="%menu.title.internationalization">
+              <items>
+                <MenuItem mnemonicParsing="false" text="%menu.title.set.resource" fx:id="setResourceMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.remove.resource" fx:id="removeResourceMenuItem" />
+                <MenuItem mnemonicParsing="false" text="%menu.title.reveal.resource" fx:id="revealResourceMenuItem" />
+              </items>
+            </Menu>
+          </items>
+        </Menu>
+        <Menu mnemonicParsing="false" text="%menu.title.window" fx:id="windowMenu">
+          <items>
+            <SeparatorMenuItem mnemonicParsing="false" />
+          </items>
+        </Menu>
+        <Menu mnemonicParsing="false" text="%menu.title.help">
+          <items>
+            <MenuItem mnemonicParsing="false" text="%menu.title.scene.builder.help" fx:id="helpMenuItem" />
+            <MenuItem mnemonicParsing="false" text="%menu.title.about" fx:id="aboutMenuItem" />
+          </items>
+        </Menu>
+      </menus>
+    </MenuBar>
+  </children>
 </StackPane>
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBarController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/menubar/MenuBarController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -33,6 +33,7 @@
 
 import com.oracle.javafx.scenebuilder.app.DocumentWindowController;
 import com.oracle.javafx.scenebuilder.app.DocumentWindowController.DocumentControlAction;
+import com.oracle.javafx.scenebuilder.app.DocumentWindowController.DocumentEditAction;
 import com.oracle.javafx.scenebuilder.app.SceneBuilderApp;
 import com.oracle.javafx.scenebuilder.app.SceneBuilderApp.ApplicationControlAction;
 import com.oracle.javafx.scenebuilder.app.i18n.I18N;
@@ -53,6 +54,7 @@
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -66,6 +68,7 @@
 import javafx.event.EventHandler;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
+import javafx.scene.control.CheckMenuItem;
 import javafx.scene.control.Menu;
 import javafx.scene.control.MenuBar;
 import javafx.scene.control.MenuItem;
@@ -207,10 +210,6 @@
     @FXML
     private MenuItem useComputedSizesMenuItem;
     @FXML
-    private MenuItem selectNextRowMenuItem;
-    @FXML
-    private MenuItem selectNextColumnMenuItem;
-    @FXML
     private MenuItem moveRowAboveMenuItem;
     @FXML
     private MenuItem moveRowBelowMenuItem;
@@ -279,9 +278,17 @@
     @FXML
     private MenuItem showPreviewMenuItem;
     @FXML
-    private MenuItem modenaThemeMenuItem;
+    private RadioMenuItem modenaThemeMenuItem;
     @FXML
-    private MenuItem caspianThemeMenuItem;
+    private RadioMenuItem modenaTouchThemeMenuItem;
+    @FXML
+    private RadioMenuItem caspianThemeMenuItem;
+    @FXML
+    private CheckMenuItem caspianHighContrastThemeMenuItem;
+    @FXML
+    private RadioMenuItem caspianEmbeddedThemeMenuItem;
+    @FXML
+    private RadioMenuItem caspianEmbeddedQVGAThemeMenuItem;
     @FXML
     private MenuItem chooseBackgroundColorMenuItem;
     @FXML
@@ -305,6 +312,7 @@
     private MenuItem aboutMenuItem;
 
     private static final KeyCombination.Modifier modifier;
+    private final Map<KeyCombination, MenuItem> keyToMenu = new HashMap<>();
 
     static {
         if (EditorPlatform.IS_MAC) {
@@ -422,8 +430,6 @@
 
         assert fitToParentMenuItem != null;
         assert useComputedSizesMenuItem != null;
-        assert selectNextRowMenuItem != null;
-        assert selectNextColumnMenuItem != null;
         assert moveRowAboveMenuItem != null;
         assert moveRowBelowMenuItem != null;
         assert moveColumnBeforeMenuItem != null;
@@ -459,7 +465,11 @@
 
         assert showPreviewMenuItem != null;
         assert modenaThemeMenuItem != null;
+        assert modenaTouchThemeMenuItem != null;
         assert caspianThemeMenuItem != null;
+        assert caspianHighContrastThemeMenuItem != null;
+        assert caspianEmbeddedThemeMenuItem != null;
+        assert caspianEmbeddedQVGAThemeMenuItem != null;
         assert chooseBackgroundColorMenuItem != null;
         assert addSceneStyleSheetMenuItem != null;
         assert removeSceneStyleSheetMenu != null;
@@ -549,11 +559,11 @@
             // http://windows.microsoft.com/en-US/windows7/Keyboard-shortcuts
             redoMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.Y, modifier));
         }
-        copyMenuItem.setUserData(new ControlActionController(ControlAction.COPY));
+        copyMenuItem.setUserData(new DocumentControlActionController(DocumentControlAction.COPY));
         copyMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.C, modifier));
-        cutMenuItem.setUserData(new EditActionController(EditAction.CUT));
+        cutMenuItem.setUserData(new DocumentEditActionController(DocumentEditAction.CUT));
         cutMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.X, modifier));
-        pasteMenuItem.setUserData(new EditActionController(EditAction.PASTE));
+        pasteMenuItem.setUserData(new DocumentEditActionController(DocumentEditAction.PASTE));
         pasteMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.V, modifier));
         pasteIntoMenuItem.setUserData(new EditActionController(EditAction.PASTE_INTO));
         pasteIntoMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.V, KeyCombination.SHIFT_DOWN, modifier));
@@ -561,12 +571,12 @@
         duplicateMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.D, modifier));
         deleteMenuItem.setUserData(new EditActionController(EditAction.DELETE));
         deleteMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.DELETE));
-        selectAllMenuItem.setUserData(new ControlActionController(ControlAction.SELECT_ALL));
+        selectAllMenuItem.setUserData(new DocumentControlActionController(DocumentControlAction.SELECT_ALL));
         selectAllMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.A, modifier));
-        selectNoneMenuItem.setUserData(new ControlActionController(ControlAction.SELECT_NONE));
+        selectNoneMenuItem.setUserData(new DocumentControlActionController(DocumentControlAction.SELECT_NONE));
         selectNoneMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.A, KeyCombination.SHIFT_DOWN, modifier));
         selectParentMenuItem.setUserData(new ControlActionController(ControlAction.SELECT_PARENT));
-        selectParentMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.L, modifier));
+        selectParentMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.UP, modifier));
         selectNextMenuItem.setUserData(new ControlActionController(ControlAction.SELECT_NEXT));
         selectNextMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.RIGHT, modifier));
         selectPreviousMenuItem.setUserData(new ControlActionController(ControlAction.SELECT_PREVIOUS));
@@ -661,7 +671,20 @@
             }
         });
         toggleRightPanelMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.DIGIT8, modifier));
-//        toggleOutlinesMenuItem.setUserData(new ControlActionController(ControlAction.));
+        toggleOutlinesMenuItem.setUserData(new DocumentControlActionController(DocumentControlAction.TOGGLE_OUTLINES_VISIBILITY) {
+            @Override
+            public String getTitle() {
+                final String titleKey;
+                if (documentWindowController == null) {
+                    titleKey = "menu.title.hide.outlines";
+                } else if (documentWindowController.getContentPanelController().isOutlinesVisible()) {
+                    titleKey = "menu.title.hide.outlines";
+                } else {
+                    titleKey = "menu.title.show.outlines";
+                }
+                return I18N.getString(titleKey);
+            }
+        });
         toggleOutlinesMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.E, modifier));
         toggleSampleDataMenuItem.setUserData(new ControlActionController(ControlAction.TOGGLE_SAMPLE_DATA) {
             @Override
@@ -719,8 +742,6 @@
         fitToParentMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.K, modifier));
         useComputedSizesMenuItem.setUserData(new EditActionController(EditAction.USE_COMPUTED_SIZES));
         useComputedSizesMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.K, KeyCombination.SHIFT_DOWN, modifier));
-        selectNextRowMenuItem.setUserData(new ControlActionController(ControlAction.SELECT_NEXT_ROW));
-        selectNextColumnMenuItem.setUserData(new ControlActionController(ControlAction.SELECT_NEXT_COLUMN));
         moveRowAboveMenuItem.setUserData(new EditActionController(EditAction.MOVE_ROW_ABOVE));
         moveRowBelowMenuItem.setUserData(new EditActionController(EditAction.MOVE_ROW_BELOW));
         moveColumnBeforeMenuItem.setUserData(new EditActionController(EditAction.MOVE_COLUMN_BEFORE));
@@ -789,8 +810,12 @@
         showPreviewMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.P, modifier));
         chooseBackgroundColorMenuItem.setUserData(new DocumentControlActionController(DocumentControlAction.CHOOSE_BACKGROUND_COLOR));
         chooseBackgroundColorMenuItem.setDisable(true);
+        caspianHighContrastThemeMenuItem.setUserData(new SetThemeActionController(EditorPlatform.Theme.CASPIAN_HIGH_CONTRAST));
         caspianThemeMenuItem.setUserData(new SetThemeActionController(EditorPlatform.Theme.CASPIAN));
+        caspianEmbeddedThemeMenuItem.setUserData(new SetThemeActionController(EditorPlatform.Theme.CASPIAN_EMBEDDED));
+        caspianEmbeddedQVGAThemeMenuItem.setUserData(new SetThemeActionController(EditorPlatform.Theme.CASPIAN_EMBEDDED_QVGA));
         modenaThemeMenuItem.setUserData(new SetThemeActionController(EditorPlatform.Theme.MODENA));
+        modenaTouchThemeMenuItem.setUserData(new SetThemeActionController(EditorPlatform.Theme.MODENA_TOUCH));
 
         addSceneStyleSheetMenuItem.setUserData(new DocumentControlActionController(DocumentControlAction.ADD_SCENE_STYLE_SHEET));
         updateOpenAndRemoveSceneStyleSheetMenus();
@@ -811,45 +836,26 @@
         setResourceMenuItem.setUserData(new DocumentControlActionController(DocumentControlAction.SET_RESOURCE));
         removeResourceMenuItem.setUserData(new DocumentControlActionController(DocumentControlAction.REMOVE_RESOURCE) {
             @Override
-            public boolean canPerform() {
-                if (documentWindowController == null
-                        || documentWindowController.getEditorController().getResource() == null) {
-                    return false;
-                }
-
-                return true;
-            }
-
-            @Override
             public String getTitle() {
                 String title = I18N.getString("menu.title.remove.resource");
                 if (documentWindowController != null
-                        && documentWindowController.getEditorController().getResource() != null) {
+                        && documentWindowController.getResourceFile() != null) {
                     title = I18N.getString("menu.title.remove.resource.with.file",
-                            documentWindowController.getEditorController().getResource().getName());
+                            documentWindowController.getResourceFile().getName());
                 }
 
                 return title;
             }
         });
         revealResourceMenuItem.setUserData(new DocumentControlActionController(DocumentControlAction.REVEAL_RESOURCE) {
-            @Override
-            public boolean canPerform() {
-                if (documentWindowController == null
-                        || documentWindowController.getEditorController().getResource() == null) {
-                    return false;
-                }
-
-                return true;
-            }
 
             @Override
             public String getTitle() {
                 String title = I18N.getString("menu.title.reveal.resource");
                 if (documentWindowController != null
-                        && documentWindowController.getEditorController().getResource() != null) {
+                        && documentWindowController.getResourceFile() != null) {
                     title = I18N.getString("menu.title.reveal.resource.with.file",
-                            documentWindowController.getEditorController().getResource().getName());
+                            documentWindowController.getResourceFile().getName());
                 }
 
                 return title;
@@ -888,6 +894,9 @@
             }
         } else {
             i.setOnAction(onActionEventHandler);
+            if (i.getAccelerator() != null) {
+                keyToMenu.put(i.getAccelerator(), i);
+            }
         }
     }
 
@@ -906,7 +915,20 @@
             final String title;
             if (i.getUserData() instanceof MenuItemController) {
                 final MenuItemController c = (MenuItemController) i.getUserData();
-                disable = !c.canPerform();
+                boolean canPerform;
+                try {
+                    canPerform = c.canPerform();
+                } catch(RuntimeException x) {
+                    // This catch is protection against a bug in canPerform().
+                    // It avoids to block all the items in the menu in case
+                    // of crash in canPerform() (see DTL-6164).
+                    canPerform = false;
+                    final Exception xx 
+                            = new Exception(c.getClass().getSimpleName() 
+                            + ".canPerform() did break for menu item " + i, x); //NOI18N
+                    xx.printStackTrace();
+                }
+                disable = !canPerform;
                 title = c.getTitle();
                 selected = c.isSelected();
             } else {
@@ -945,7 +967,7 @@
         final MenuItemController c = (MenuItemController) i.getUserData();
         c.perform();
     }
-
+    
     /*
      * Private (zoom menu)
      */
@@ -1329,6 +1351,33 @@
 
     }
 
+    class DocumentEditActionController extends MenuItemController {
+
+        private final DocumentEditAction editAction;
+
+        public DocumentEditActionController(DocumentEditAction editAction) {
+            this.editAction = editAction;
+        }
+
+        @Override
+        public boolean canPerform() {
+            boolean result;
+            if (documentWindowController == null) {
+                result = false;
+            } else {
+                result = documentWindowController.canPerformEditAction(editAction);
+            }
+            return result;
+        }
+
+        @Override
+        public void perform() {
+            assert canPerform() : "editAction=" + editAction;
+            documentWindowController.performEditAction(editAction);
+        }
+
+    }
+
     class DocumentControlActionController extends MenuItemController {
 
         private final DocumentControlAction controlAction;
@@ -1450,28 +1499,126 @@
 
         @Override
         public boolean canPerform() {
-            return (documentWindowController != null);
+            boolean res = documentWindowController != null;
+            final EditorPlatform.Theme currentTheme
+                    = documentWindowController.getEditorController().getTheme();
+            // CASPIAN_HIGH_CONTRAST can be selected only if another CASPIAN
+            // theme is active.
+            if (theme == EditorPlatform.Theme.CASPIAN_HIGH_CONTRAST
+                    && (currentTheme == EditorPlatform.Theme.MODENA || currentTheme == EditorPlatform.Theme.MODENA_TOUCH)) {
+                res = false;
+                caspianHighContrastThemeMenuItem.setSelected(false);
+            }
+            return res;
         }
 
         @Override
         public void perform() {
             assert documentWindowController != null;
-            documentWindowController.getEditorController().setTheme(theme);
+
+            EditorPlatform.Theme overiddingTheme = theme;
+
+            switch (theme) {
+                case CASPIAN:
+                    if (caspianHighContrastThemeMenuItem.isSelected()) {
+                        overiddingTheme = EditorPlatform.Theme.CASPIAN_HIGH_CONTRAST;
+                    }
+                    break;
+                case CASPIAN_EMBEDDED:
+                    if (caspianHighContrastThemeMenuItem.isSelected()) {
+                        overiddingTheme = EditorPlatform.Theme.CASPIAN_EMBEDDED_HIGH_CONTRAST;
+                    }
+                    break;
+                case CASPIAN_EMBEDDED_QVGA:
+                    if (caspianHighContrastThemeMenuItem.isSelected()) {
+                        overiddingTheme = EditorPlatform.Theme.CASPIAN_EMBEDDED_QVGA_HIGH_CONTRAST;
+                    }
+                    break;
+                case CASPIAN_HIGH_CONTRAST:
+                    final EditorPlatform.Theme currentTheme
+                            = documentWindowController.getEditorController().getTheme();
+                    switch (currentTheme) {
+                        case CASPIAN:
+                            if (caspianHighContrastThemeMenuItem.isSelected()) {
+                                overiddingTheme = EditorPlatform.Theme.CASPIAN_HIGH_CONTRAST;
+                            }
+                            break;
+                        case CASPIAN_EMBEDDED:
+                            if (caspianHighContrastThemeMenuItem.isSelected()) {
+                                overiddingTheme = EditorPlatform.Theme.CASPIAN_EMBEDDED_HIGH_CONTRAST;
+                            }
+                            break;
+                        case CASPIAN_EMBEDDED_QVGA:
+                            if (caspianHighContrastThemeMenuItem.isSelected()) {
+                                overiddingTheme = EditorPlatform.Theme.CASPIAN_EMBEDDED_QVGA_HIGH_CONTRAST;
+                            }
+                            break;
+                        case CASPIAN_HIGH_CONTRAST:
+                            if (!caspianHighContrastThemeMenuItem.isSelected()) {
+                                overiddingTheme = EditorPlatform.Theme.CASPIAN;
+                            }
+                            break;
+                        case CASPIAN_EMBEDDED_HIGH_CONTRAST:
+                            if (!caspianHighContrastThemeMenuItem.isSelected()) {
+                                overiddingTheme = EditorPlatform.Theme.CASPIAN_EMBEDDED;
+                            }
+                            break;
+                        case CASPIAN_EMBEDDED_QVGA_HIGH_CONTRAST:
+                            if (!caspianHighContrastThemeMenuItem.isSelected()) {
+                                overiddingTheme = EditorPlatform.Theme.CASPIAN_EMBEDDED_QVGA;
+                            }
+                            break;
+                        default:
+                            // All known 6 Caspian cases are already handled above.
+                            assert false;
+                            break;
+                    }
+                    break;
+                default:
+                    // Modena
+                    break;
+            }
+
+            documentWindowController.getEditorController().setTheme(overiddingTheme);
         }
 
         @Override
         public boolean isSelected() {
-            boolean result;
+            boolean res;
 
             if (documentWindowController == null) {
-                result = false;
+                res = false;
             } else {
                 final EditorPlatform.Theme currentTheme
                         = documentWindowController.getEditorController().getTheme();
-                result = currentTheme == theme;
+
+                switch (theme) {
+                    // CASPIAN_HIGH_CONTRAST can be selected only if another CASPIAN
+                    // theme is active.
+                    case CASPIAN_HIGH_CONTRAST:
+                        if (currentTheme == EditorPlatform.Theme.MODENA || currentTheme == EditorPlatform.Theme.MODENA_TOUCH) {
+                            res = false;
+                        } else {
+                            res = true;
+                        }
+                        break;
+                    case CASPIAN:
+                        res = (currentTheme == theme || currentTheme == EditorPlatform.Theme.CASPIAN_HIGH_CONTRAST);
+                        break;
+                    case CASPIAN_EMBEDDED:
+                        res = (currentTheme == theme || currentTheme == EditorPlatform.Theme.CASPIAN_EMBEDDED_HIGH_CONTRAST);
+                        break;
+                    case CASPIAN_EMBEDDED_QVGA:
+                        res = (currentTheme == theme || currentTheme == EditorPlatform.Theme.CASPIAN_EMBEDDED_QVGA_HIGH_CONTRAST);
+                        break;
+                    default:
+                        // Modena
+                        res = currentTheme == theme;
+                        break;
+                }
             }
 
-            return result;
+            return res;
         }
     }
 
@@ -1525,6 +1672,14 @@
         }
     }
 
+    public MenuItem getMenuItem(KeyCombination key) {
+        return keyToMenu.get(key);
+    }
+
+    public Set<KeyCombination> getAccelerators() {
+        return keyToMenu.keySet();
+    }
+
     /**
      * *************************************************************************
      * Static inner class
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBar.css	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBar.css	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBar.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBar.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
@@ -44,29 +44,33 @@
     <HBox fx:id="messageBox" alignment="CENTER" spacing="5.0" styleClass="message-bar">
       <children>
         <StackPane fx:id="selectionBarHost" prefHeight="-1.0" prefWidth="-1.0" HBox.hgrow="ALWAYS" />
-        <Label fx:id="messageLabel" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mouseTransparent="true" style="&#10;" text="Message" HBox.hgrow="ALWAYS" />
-        <HBox id="messageBox" alignment="CENTER_RIGHT" fillHeight="true" prefHeight="-1.0" prefWidth="-1.0" spacing="0.0" HBox.hgrow="NEVER">
+        <HBox fx:id="messagePart" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
           <children>
-            <Button fx:id="messageButton" alignment="CENTER" maxHeight="1.7976931348623157E308" minHeight="-1.0" minWidth="20.0" mnemonicParsing="false" onAction="#onOpenCloseAction" text="" HBox.hgrow="ALWAYS">
-              <graphic>
-                <ImageView id="warning" pickOnBounds="true" visible="true">
-                  <image>
-                    <Image preserveRatio="true" smooth="true" url="@warning.png" />
-                  </image>
-                </ImageView>
-              </graphic>
-              <tooltip>
-                  <Tooltip text="%message.bar.details" />
-              </tooltip>
-            </Button>
-            <Label fx:id="statusLabel" contentDisplay="CENTER" focusTraversable="false" graphicTextGap="0.0" maxHeight="1.7976931348623157E308" minWidth="30.0" prefWidth="30.0" text="" HBox.hgrow="ALWAYS">
-              <tooltip>
-                <Tooltip text="%message.bar.file.dirty" />
-              </tooltip>
-              <HBox.margin>
-                <Insets />
-              </HBox.margin>
-            </Label>
+            <Label fx:id="messageLabel" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mouseTransparent="true" style="&#10;" text="Message" HBox.hgrow="ALWAYS" />
+            <HBox id="messageBox" alignment="CENTER_RIGHT" fillHeight="true" prefHeight="-1.0" prefWidth="-1.0" spacing="0.0" HBox.hgrow="NEVER">
+             <children>
+                <Button fx:id="messageButton" alignment="CENTER" maxHeight="1.7976931348623157E308" minHeight="-1.0" minWidth="20.0" mnemonicParsing="false" onAction="#onOpenCloseAction" text="">
+                  <graphic>
+                    <ImageView id="warning" pickOnBounds="true" visible="true">
+                      <image>
+                        <Image preserveRatio="true" smooth="true" url="@warning.png" />
+                      </image>
+                    </ImageView>
+                  </graphic>
+                  <tooltip>
+                      <Tooltip text="%message.bar.details" />
+                  </tooltip>
+                </Button>
+                <Label fx:id="statusLabel" contentDisplay="CENTER" focusTraversable="false" graphicTextGap="0.0" maxHeight="1.7976931348623157E308" minWidth="30.0" prefWidth="30.0" text="">
+                  <tooltip>
+                    <Tooltip text="%message.bar.file.dirty" />
+                  </tooltip>
+                  <HBox.margin>
+                    <Insets />
+                  </HBox.margin>
+                </Label>
+              </children>
+            </HBox>
           </children>
         </HBox>
       </children>
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBarController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessageBarController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -37,12 +37,11 @@
 import com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractFxmlPanelController;
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument;
 import java.net.URL;
-import java.util.Timer;
-import java.util.TimerTask;
-import javafx.application.Platform;
+import javafx.animation.FadeTransition;
 import javafx.beans.value.ChangeListener;
 import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
+import javafx.event.EventHandler;
 import javafx.fxml.FXML;
 import javafx.scene.control.Button;
 import javafx.scene.control.Label;
@@ -50,7 +49,9 @@
 import javafx.scene.image.Image;
 import javafx.scene.image.ImageView;
 import javafx.scene.layout.HBox;
+import javafx.scene.layout.Priority;
 import javafx.scene.layout.StackPane;
+import javafx.util.Duration;
 
 /**
  *
@@ -70,6 +71,8 @@
     private Label statusLabel;
     @FXML
     private StackPane selectionBarHost;
+    @FXML
+    private HBox messagePart;
 
     private final ImageView fileDirtyImage;
     private Tooltip statusLabelTooltip = null;
@@ -194,6 +197,7 @@
         // no need to display anything in the message bar.
         if (entry != null && logSize > previousTotalNumOfMessages) {
             // We mask the host
+            HBox.setHgrow(messagePart, Priority.ALWAYS);
             getSelectionBarHost().getChildren().get(0).setVisible(false);
             getSelectionBarHost().setManaged(false);
             messageLabel.setManaged(true);
@@ -218,64 +222,31 @@
             messageLabel.setText(entry.getText());
             messageLabel.setVisible(true);
             
-            // We go back to the host after a given time
-            // The fading based code commented out below do not seem to be
-            // reliable in the sense that when sending slowly 10 messages in a
-            // row you get 1 or 2 where the display time isn't correct, fading
-            // duration abrupt, ...
-            // For now we use a timer to switch back abruptly. But fact is the
-            // time the message remains visible do not seem more stable than
-            // with the fading transition.
-            final Timer timer = new Timer(true);
-            final TimerTask timerTask = new TimerTask() {
+            // We go back to the host after a given time            
+            FadeTransition showHost = new FadeTransition(Duration.seconds(1), messagePart);
+            showHost.setFromValue(1.0);
+            showHost.setToValue(0.0);
+            showHost.setDelay(Duration.seconds(2));
+            showHost.setOnFinished(new EventHandler<ActionEvent>() {
 
                 @Override
-                public void run() {
-                    Platform.runLater(new Runnable() {
-
-                        @Override
-                        public void run() {
-                            messageLabel.setVisible(false);
-                            messageLabel.setGraphic(null);
-                            messageLabel.setManaged(false);
-                            if (getEditorController().getMessageLog().getWarningEntryCount() == 0) {
-                                messageButton.setVisible(false);
-                                messageButton.setManaged(false);
-                            }
-                                resetStyle();
-                            getSelectionBarHost().setManaged(true);
-                            getSelectionBarHost().getChildren().get(0).setOpacity(1.0);
-                            getSelectionBarHost().getChildren().get(0).setVisible(true);
-                        }
-                    });
-                    // I don't need to use the timer later on so by cancelling
-                    // it here I free resources that otherwise would prevent
-                    // the JVM from exiting.
-                    timer.cancel();
+                public void handle(ActionEvent t) {
+                    messageLabel.setVisible(false);
+                    messageLabel.setGraphic(null);
+                    messageLabel.setManaged(false);
+                    if (getEditorController().getMessageLog().getWarningEntryCount() == 0) {
+                        messageButton.setVisible(false);
+                        messageButton.setManaged(false);
+                    }
+                    resetStyle();
+                    getSelectionBarHost().setManaged(true);
+                    getSelectionBarHost().getChildren().get(0).setOpacity(1.0);
+                    getSelectionBarHost().getChildren().get(0).setVisible(true);
+                    messagePart.setOpacity(1.0);
+                    HBox.setHgrow(messagePart, Priority.NEVER);
                 }
-            };
-            timer.schedule(timerTask, 2000); // milliseconds
-            
-//            FadeTransition showHost = new FadeTransition(Duration.seconds(1), messageLabel);
-//            showHost.setFromValue(1.0);
-//            showHost.setToValue(0.0);
-//            showHost.setDelay(Duration.seconds(3));
-//            showHost.setOnFinished(new EventHandler<ActionEvent>() {
-//
-//                @Override
-//                public void handle(ActionEvent t) {
-//                    messageLabel.setVisible(false);
-//                    messageButton.setVisible(false);
-//                    if (entry.getType() == MessageLogEntry.Type.INFO) {
-//                        messageLabel.getStyleClass().remove("message-label-info");
-//                    } else {
-//                        messageLabel.getStyleClass().remove("message-label-warning-and-error");
-//                    }
-//                    getSelectionBarHost().getChildren().get(0).setOpacity(1.0);
-//                    getSelectionBarHost().getChildren().get(0).setVisible(true);
-//                }
-//            });
-//            showHost.play();
+            });
+            showHost.play();
         } else if (getEditorController().getMessageLog().getEntryCount() == 0) {
             if (messageWindowController != null && messageWindowController.isWindowOpened()) {
                 messageWindowController.closeWindow();
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanel.css	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanel.css	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanel.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanel.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanelController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePanelController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePopupController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/message/MessagePopupController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Preferences.css	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Preferences.css	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Preferences.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Preferences.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordDocument.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordDocument.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordGlobal.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordGlobal.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesWindowController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesWindowController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/BackgroundColor.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/BackgroundColor.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/BackgroundColorDialogController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/BackgroundColorDialogController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/PreviewWindowController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preview/PreviewWindowController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -39,12 +39,11 @@
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument;
 import com.oracle.javafx.scenebuilder.kit.util.MathUtils;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
-import java.io.InputStreamReader;
 import java.net.MalformedURLException;
-import java.nio.charset.Charset;
-import java.util.PropertyResourceBundle;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.ResourceBundle;
 import java.util.Timer;
 import java.util.TimerTask;
@@ -77,7 +76,6 @@
     private static final String NID_PREVIEW_ROOT = "previewRoot"; //NOI18N
     private EditorPlatform.Theme editorControllerTheme;
     private ObservableList<File> sceneStyleSheet;
-    private File resource;
     
     /**
      * The type of Camera used by the Preview panel.
@@ -136,12 +134,10 @@
             }
         });
         
-        this.resource = editorController.getResource();
-        this.editorController.resourceProperty().addListener(new ChangeListener<File>() {
+        this.editorController.resourcesProperty().addListener(new ChangeListener<ResourceBundle>() {
 
             @Override
-            public void changed(ObservableValue<? extends File> ov, File t, File t1) {
-                resource = t1;
+            public void changed(ObservableValue<? extends ResourceBundle> ov, ResourceBundle t, ResourceBundle t1) {
                 requestUpdate();
             }
         });
@@ -161,7 +157,7 @@
     protected void makeRoot() {
         // Until the timer used in requestUpdate() expires, so that the root of
         // the scene is updated to the real content, we set a placeholder.
-        StackPane sp = new StackPane(new Label(I18N.getString("preview.constructing")));
+        StackPane sp = new StackPane();
         sp.setPrefSize(WIDTH_WHEN_EMPTY, HEIGHT_WHEN_EMPTY);
         setRoot(sp);
 
@@ -205,7 +201,7 @@
 
     /**
      * There's a delay before the content of the preview is refreshed. If any
-     * further modification is brought to the layout before expiration of this
+     * further modification is brought to the layout before expiration of it
      * we restart the timer. The idea is to lower the resources used to refresh
      * the preview window content.
      */
@@ -225,37 +221,37 @@
                         if (fxomDocument != null) {
                             // We clone the FXOMDocument
                             FXOMDocument clone;
-                            ResourceBundle resourceBundle = fxomDocument.getResources();
                             
-                            if (resource != null) {
-                                try {
-                                    resourceBundle = new PropertyResourceBundle(new InputStreamReader(new FileInputStream(resource), Charset.forName("UTF-8"))); //NOI18N
-                                } catch (IOException ex) {
-                                    resourceBundle = fxomDocument.getResources();
-                                }
-                            }
-
                             try {
                                 clone = new FXOMDocument(fxomDocument.getFxmlText(),
                                         fxomDocument.getLocation(),
                                         fxomDocument.getClassLoader(),
-                                        resourceBundle);
+                                        fxomDocument.getResources());
                                 clone.setSampleDataEnabled(fxomDocument.isSampleDataEnabled());
                             } catch (IOException ex) {
                                 throw new RuntimeException("Bug in PreviewWindowController::requestUpdate", ex); //NOI18N
                             }
 
                             Object sceneGraphRoot = clone.getSceneGraphRoot();
-                            final String themeStyleSheetString =
-                                    EditorPlatform.getThemeStylesheetURL(editorControllerTheme).toString();
+                            final List<String> themeStyleSheetStrings = new ArrayList<>();
+                            for (URL themeURL : EditorPlatform.getThemeStylesheetURLs(editorControllerTheme)) {
+                                themeStyleSheetStrings.add(themeURL.toString());
+                            }
 
                             if (sceneGraphRoot instanceof Parent) {
                                 ((Parent) sceneGraphRoot).setId(NID_PREVIEW_ROOT);
                                 setRoot((Parent) updateAutoResizeTransform((Parent) sceneGraphRoot));
                                 assert ((Parent) sceneGraphRoot).getScene() == null;
-                                ((Parent) sceneGraphRoot).getStylesheets().removeAll(themeStyleSheetString);
-                                ((Parent) sceneGraphRoot).getStylesheets().add(themeStyleSheetString);
                                 
+                                // At that stage current style sheets are the one defined within the FXML
+                                ObservableList<String> currentStyleSheets = ((Parent) sceneGraphRoot).getStylesheets();
+                                List<String> newStyleSheets = new ArrayList<>();
+                                
+                                for (String stylesheet : currentStyleSheets) {
+                                    newStyleSheets.add(stylesheet);
+                                }
+                                
+                                // Add style sheet set thanks Preview > Scene Style Sheets > Add a Style Sheet
                                 if (sceneStyleSheet != null) {
                                     for (File f : sceneStyleSheet) {
                                         String urlString = ""; //NOI18N
@@ -264,16 +260,21 @@
                                         } catch (MalformedURLException ex) {
                                             throw new RuntimeException("Bug in PreviewWindowController", ex); //NOI18N
                                         }
-                                        ((Parent) sceneGraphRoot).getStylesheets().removeAll(urlString);
-                                        ((Parent) sceneGraphRoot).getStylesheets().add(urlString);
+                                        newStyleSheets.add(urlString);
                                     }
                                 }
-                                                                
-                                // Not proven necessary as per my testing
-//                                ((Parent) sceneGraphRoot).applyCss();
+                                
+                                // Clean all styling
+                                ((Parent) sceneGraphRoot).getStylesheets().removeAll();
+                                
+                                // Add theme style sheet; order is significant ==> theme one always first
+                                newStyleSheets.addAll(0, themeStyleSheetStrings);
+                                
+                                // Apply the whole styling
+                               ((Parent) sceneGraphRoot).getStylesheets().addAll(newStyleSheets);
                             } else if (sceneGraphRoot instanceof Node) {
                                 StackPane sp = new StackPane();
-                                sp.getStylesheets().add(themeStyleSheetString);
+                                sp.getStylesheets().addAll(0, themeStyleSheetStrings);
                                 
                                 if (sceneStyleSheet != null) {
                                     for (File f : sceneStyleSheet) {
@@ -314,11 +315,12 @@
             }
         };
 
-        // If there is no opened document while Preview window is built we want
-        // it to come up immediately.
         long delay = 0;
 
-        if (editorController.getFxomDocument() != null) {
+        // A long delay makes sense only if we have a valid document and
+        // the preview window is already opened.
+        // When opening preview window we want it fast.
+        if (editorController.getFxomDocument() != null && getStage().isShowing()) {
             delay = 1000;
         }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/report/JarAnalysisReport.css	Sat Dec 28 08:05:35 2013 -0800
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
+ * All rights reserved. Use is subject to license terms.
+ *
+ * This file is available and licensed under the following license:
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *  - Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  - Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the distribution.
+ *  - Neither the name of Oracle Corporation nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+.scroll-pane, .scroll-pane:focused, .scroll-pane:selected, .scroll-pane:pressed, .scroll-pane:hover {
+    -fx-background-color: null;
+    -fx-padding: 0px;
+    -fx-border-width: 1px;
+    -fx-border-color: lightgrey;
+}
+
+.header {
+}
+
+.body {
+    -fx-font-family: monospace;
+    -fx-fill: slategray;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/report/JarAnalysisReport.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
+  All rights reserved. Use is subject to license terms.
+
+  This file is available and licensed under the following license:
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  - Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+  - Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the distribution.
+  - Neither the name of Oracle Corporation nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<?import java.lang.*?>
+<?import java.net.*?>
+<?import javafx.geometry.*?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+<?import javafx.scene.text.*?>
+
+<StackPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
+    <children>
+        <VBox prefHeight="400.0" prefWidth="600.0">
+            <children>
+                <Label fx:id="timestampLabel" text="%jar.analysis.report.timestamp">
+                <VBox.margin>
+                  <Insets bottom="7.0" />
+                </VBox.margin>
+                </Label>
+<ScrollPane prefViewportHeight="350.0" prefViewportWidth="600.0" VBox.vgrow="ALWAYS" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
+<content><TextFlow fx:id="textFlow" focusTraversable="true" VBox.vgrow="ALWAYS" />
+</content>
+<VBox.margin>
+<Insets />
+</VBox.margin>
+</ScrollPane>
+                <Button defaultButton="true" mnemonicParsing="false" onAction="#onCopyAction" text="%label.copy">
+                <VBox.margin>
+                  <Insets top="7.0" />
+                </VBox.margin></Button>
+            </children>
+            <StackPane.margin>
+                <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
+            </StackPane.margin>
+        </VBox>
+    </children>
+    <stylesheets>
+        <URL value="@JarAnalysisReport.css" />
+    </stylesheets>
+</StackPane>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/report/JarAnalysisReportController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -0,0 +1,204 @@
+/*
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
+ * All rights reserved. Use is subject to license terms.
+ *
+ * This file is available and licensed under the following license:
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *  - Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  - Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the distribution.
+ *  - Neither the name of Oracle Corporation nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package com.oracle.javafx.scenebuilder.app.report;
+
+import com.oracle.javafx.scenebuilder.app.i18n.I18N;
+import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
+import com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractFxmlWindowController;
+import com.oracle.javafx.scenebuilder.kit.library.user.UserLibrary;
+import com.oracle.javafx.scenebuilder.kit.library.util.JarReport;
+import com.oracle.javafx.scenebuilder.kit.library.util.JarReportEntry;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import javafx.collections.ListChangeListener;
+import javafx.event.ActionEvent;
+import javafx.fxml.FXML;
+import javafx.scene.control.Label;
+import javafx.scene.input.Clipboard;
+import javafx.scene.input.DataFormat;
+import javafx.stage.Window;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import javafx.scene.Node;
+import javafx.scene.text.Text;
+import javafx.scene.text.TextFlow;
+import javafx.stage.WindowEvent;
+
+/**
+ *
+ */
+public class JarAnalysisReportController extends AbstractFxmlWindowController {
+    
+    @FXML
+    TextFlow textFlow;
+    @FXML
+    Label timestampLabel;
+
+    @FXML
+    void onCopyAction(ActionEvent event) {
+        final Map<DataFormat, Object> content = new HashMap<>();
+        StringBuilder sb = new StringBuilder();
+
+        for (Node item : textFlow.getChildrenUnmodifiable()) {
+            if (item instanceof Text) {
+                sb.append(((Text)item).getText());
+            }
+        }
+        
+        content.put(DataFormat.PLAIN_TEXT, sb.toString());
+        Clipboard.getSystemClipboard().setContent(content);
+    }
+
+    private final EditorController editorController;
+    private final String TIMESTAMP_PATTERN = "h:mm a EEEEEEEEE d MMM. yyyy"; //NOI18N
+    private final SimpleDateFormat TIMESTAMP_DATE_FORMAT = new SimpleDateFormat(TIMESTAMP_PATTERN);
+    private int prefixCounter = 0;
+    private boolean dirty = false;
+
+    public JarAnalysisReportController(EditorController editorController, Window owner) {
+        super(JarAnalysisReportController.class.getResource("JarAnalysisReport.fxml"), I18N.getBundle(), owner); //NOI18N
+        this.editorController = editorController;
+    }
+
+    @Override
+    public void onCloseRequest(WindowEvent event) {
+        getStage().close();
+    }
+    
+    @Override
+    public void openWindow() {
+        super.openWindow();
+        
+        if (dirty) {
+            update();
+        }
+    }
+    
+    @Override
+    protected void controllerDidCreateStage() {
+        // Setup window title
+        getStage().setTitle(I18N.getString("jar.analysis.report.title"));
+    }
+
+    @Override
+    protected void controllerDidLoadFxml() {
+        assert textFlow != null;
+        assert timestampLabel != null;
+                
+        UserLibrary lib = (UserLibrary)editorController.getLibrary();
+        lib.getJarReports().addListener(new ListChangeListener<JarReport>() {
+
+            @Override
+            public void onChanged(ListChangeListener.Change<? extends JarReport> change) {
+                update();
+            }
+        });
+        
+        update();
+    }
+    
+    private void update() {
+        // No need to eat CPU if the skeleton window isn't opened
+        if (getStage().isShowing()) {
+            textFlow.getChildren().clear();
+            
+            updateTimeStampLabel();
+            
+            UserLibrary lib = (UserLibrary)editorController.getLibrary();
+            
+            for (JarReport report : lib.getJarReports()) {
+                for (JarReportEntry entry : report.getEntries()) {
+                    if (entry.getStatus() != JarReportEntry.Status.OK) {
+                        if (entry.getKlass() != null && entry.getException() != null) {
+                            // We use a Text instance for header and another one
+                            // for full stack in order to style them separately
+                            StringBuilder sb = new StringBuilder();
+                            sb.append(getSectionPrefix()).append(I18N.getString("jar.analysis.exception"));
+                            sb.append(" ").append(entry.getName()); //NOI18N
+                            Text text = new Text();
+                            text.setText(sb.toString());
+                            text.getStyleClass().add("header"); //NOI18N
+                            textFlow.getChildren().add(text);
+                            
+                            StringBuilder sb2 = new StringBuilder();
+                            sb2.append(getFullStack(entry.getException()));
+                            Text text2 = new Text();
+                            text2.setText(sb2.toString());
+                            text2.getStyleClass().add("body"); //NOI18N
+                            textFlow.getChildren().add(text2);
+                        }
+                    } else if (! entry.isNode()) {
+                        StringBuilder sb = new StringBuilder();
+                        sb.append(getSectionPrefix()).append(I18N.getString("jar.analysis.not.node"));
+                        sb.append(" ").append(entry.getName()); //NOI18N
+                        Text text = new Text();
+                        text.setText(sb.toString());
+                        text.getStyleClass().add("header"); //NOI18N
+                        textFlow.getChildren().add(text);
+                    }
+                }
+            }
+
+            dirty = false;
+        } else {
+            dirty = true;
+        }
+    }
+    
+    // The very first section must start on top, it is only for the next one we
+    // need a separator.
+    private String getSectionPrefix() {
+        if (prefixCounter == 0) {
+            prefixCounter++;
+            return ""; //NOI18N
+        } else {
+            return "\n\n"; //NOI18N
+        }
+    }
+    
+    private StringBuilder getFullStack(Throwable t) {
+        StringBuilder res = new StringBuilder("\n"); //NOI18N
+        StringWriter writer = new StringWriter();
+            t.printStackTrace(new PrintWriter(writer, true));
+            res.append(writer.getBuffer().toString());
+        return res;
+    }
+    
+    private void updateTimeStampLabel() {
+        UserLibrary lib = (UserLibrary)editorController.getLibrary();
+        Date date = (Date)lib.getExplorationDate();
+        String timestampValue = TIMESTAMP_DATE_FORMAT.format(date);
+        timestampLabel.setText(I18N.getString("jar.analysis.report.timestamp", timestampValue));
+    }
+}
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBar.css	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBar.css	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBar.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBar.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBarController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/selectionbar/SelectionBarController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonBuffer.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonBuffer.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -35,6 +35,7 @@
 import com.oracle.javafx.scenebuilder.app.i18n.I18N;
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument;
 import com.oracle.javafx.scenebuilder.kit.fxom.FXOMObject;
+import com.oracle.javafx.scenebuilder.kit.fxom.FXOMPropertyT;
 import java.lang.reflect.TypeVariable;
 import java.net.URL;
 import java.util.Map;
@@ -59,6 +60,7 @@
     private final StringBuilder classLine = new StringBuilder();
     private final StringBuilder header = new StringBuilder();
     private final StringBuilder initialize = new StringBuilder();
+    private final StringBuilder handlers = new StringBuilder();
 
     enum TEXT_TYPE {
 
@@ -155,6 +157,7 @@
         constructClassLine();
         String documentName = DocumentWindowController.makeTitle(document);
 
+        // All that depends on fx:id
         Map<String, FXOMObject> fxids = document.collectFxIds();
 
         for (FXOMObject value : fxids.values()) {
@@ -199,6 +202,14 @@
         if (textFormat == FORMAT_TYPE.FULL) {
             addImportsFor(imports, URL.class, ResourceBundle.class);
         }
+        
+        // Event handlers
+        for (FXOMPropertyT property : document.getFxomRoot().collectEventHandlers()) {
+            handlers.append(INDENT).append("@FXML\n").append(INDENT).append("void "); //NOI18N
+            final String methodName = property.getValue().replace("#", ""); //NOI18N
+            handlers.append(methodName);
+            handlers.append("(ActionEvent event) {\n\n").append(INDENT).append("}\n\n"); //NOI18N
+        }
 
         // This method must be called once asserts has been populated.
         constructInitialize();
@@ -239,6 +250,7 @@
         }
 
         code.append(variables);
+        code.append(handlers);
         code.append(initialize);
         code.append("}\n"); //NOI18N
 
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindow.css	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindow.css	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindow.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindow.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
@@ -45,7 +45,7 @@
                 <TextArea fx:id="textArea" editable="false" focusTraversable="false" prefHeight="500.0" VBox.vgrow="ALWAYS" />
                 <HBox alignment="BASELINE_RIGHT" prefWidth="600.0" spacing="20.0">
                     <children>
-                        <Button fx:id="copyButton" mnemonicParsing="false" onAction="#onCopyAction" text="%label.copy" HBox.hgrow="ALWAYS" />
+                        <Button mnemonicParsing="false" onAction="#onCopyAction" text="%label.copy" HBox.hgrow="ALWAYS" />
                         <HBox alignment="BASELINE_RIGHT" spacing="5.0" HBox.hgrow="ALWAYS">
                             <children>
                                 <CheckBox fx:id="commentCheckBox" mnemonicParsing="false" text="%skeleton.add.comments">
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindowController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/skeleton/SkeletonWindowController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -58,8 +58,6 @@
 public class SkeletonWindowController extends AbstractFxmlWindowController {
 
     @FXML
-    Button copyButton;
-    @FXML
     CheckBox commentCheckBox;
     @FXML
     CheckBox formatCheckBox;
@@ -80,6 +78,7 @@
     }
 
     private final EditorController editorController;
+    private boolean dirty = false;
 
     public SkeletonWindowController(EditorController editorController, Window owner) {
         super(SkeletonWindowController.class.getResource("SkeletonWindow.fxml"), I18N.getBundle(), owner); //NOI18N
@@ -110,6 +109,15 @@
     public void onCloseRequest(WindowEvent event) {
         getStage().close();
     }
+    
+    @Override
+    public void openWindow() {
+        super.openWindow();
+        
+        if (dirty) {
+            update();
+        }
+    }
 
     /*
      * AbstractFxmlWindowController
@@ -117,7 +125,6 @@
     @Override
     protected void controllerDidLoadFxml() {
         super.controllerDidLoadFxml();
-        assert copyButton != null;
         assert commentCheckBox != null;
         assert formatCheckBox != null;
         assert textArea != null;
@@ -159,192 +166,27 @@
     }
 
     private void update() {
-        updateTitle();
-        final SkeletonBuffer buf = new SkeletonBuffer(editorController.getFxomDocument());
+        // No need to eat CPU if the skeleton window isn't opened
+        if (getStage().isShowing()) {
+            updateTitle();
+            final SkeletonBuffer buf = new SkeletonBuffer(editorController.getFxomDocument());
 
-        if (commentCheckBox.isSelected()) {
-            buf.setTextType(TEXT_TYPE.WITH_COMMENTS);
+            if (commentCheckBox.isSelected()) {
+                buf.setTextType(TEXT_TYPE.WITH_COMMENTS);
+            } else {
+                buf.setTextType(TEXT_TYPE.WITHOUT_COMMENTS);
+            }
+
+            if (formatCheckBox.isSelected()) {
+                buf.setFormat(FORMAT_TYPE.FULL);
+            } else {
+                buf.setFormat(FORMAT_TYPE.COMPACT);
+            }
+
+            textArea.setText(buf.toString());
+            dirty = false;
         } else {
-            buf.setTextType(TEXT_TYPE.WITHOUT_COMMENTS);
+            dirty = true;
         }
-
-        if (formatCheckBox.isSelected()) {
-            buf.setFormat(FORMAT_TYPE.FULL);
-        } else {
-            buf.setFormat(FORMAT_TYPE.COMPACT);
-        }
-        
-        textArea.setText(buf.toString());
     }
-
-//    private String generateSkeleton(TEXT_TYPE textType) {
-//        final String INDENT = "    "; //NOI18N
-//        Map<String, FXOMObject> fxids = editorController.getFxomDocument().collectFxIds();
-//        Set<String> imports = new TreeSet<>();
-//        StringBuilder variables = new StringBuilder();
-//        StringBuilder asserts = new StringBuilder();
-//        
-//        for (String key : fxids.keySet()) {
-//            final FXOMObject value = fxids.get(key);
-////            if (value.isEmpty()) {
-////                continue;
-////            }
-////            if (value.size() > 1) {
-////                variables.append(INDENT).append("// WARNING: fx:id=\"").append(key) //NOI18N
-////                        .append("\" cannot be injected: several objects share the same fx:id;\n\n"); //NOI18N
-////            } else if (Utils.isValidFxmlId(key)) {
-//                final Object obj = value.getSceneGraphObject();
-//                final Class<?> type = obj.getClass();
-//
-////                if (ComponentDictionary.lookupDefinition(type, false) == null && !type.equals(ToggleGroup.class)) {
-////                    Utils.println("Class '" + type.getSimpleName() + "' has no definition: skipping fx:id=\"" + key + "\"");
-////                    continue;
-////                }
-//
-//                addImportsFor(imports, FXML.class, type);
-//                variables.append(INDENT).append("@FXML"); //NOI18N
-//                
-//                if (textType == TEXT_TYPE.WITH_COMMENTS) {
-//                    variables.append(" // fx:id=\"").append(key).append("\""); //NOI18N
-//                }
-//                
-//                variables.append("\n"); //NOI18N
-//                variables.append(INDENT).append("private ").append(type.getSimpleName()); //NOI18N
-//                final TypeVariable<? extends Class<?>>[] parameters = type.getTypeParameters();
-//                
-//                if (parameters.length > 0) {
-//                    variables.append("<"); //NOI18N
-//                    String sep = ""; //NOI18N
-//                    for (TypeVariable<?> t : parameters) {
-//                        variables.append(sep).append("?"); //NOI18N
-//                        sep = ", "; //NOI18N
-//                    }
-//                    variables.append(">"); //NOI18N
-//                }
-//                
-//                if (textType == TEXT_TYPE.WITH_COMMENTS) {
-//                    variables.append(" ").append(key).append("; // Value injected by FXMLLoader\n\n"); //NOI18N
-//                } else {
-//                    variables.append(" ").append(key).append(";\n\n"); //NOI18N
-//                }
-//                
-//                asserts.append(INDENT).append(INDENT).append("assert ").append(key).append(" != null : ") //NOI18N
-//                        .append("\"fx:id=\\\"").append(key).append("\\\" was not injected: check your FXML file ") //NOI18N
-////                        .append("'").append(project.isUntitledProject() ? project.getProjectName() : project.getProjectFxmlFile().getName()) //NOI18N
-//                        .append("'.\";\n"); //NOI18N
-////            } else {
-////                variables.append(INDENT).append("// WARNING: fx:id=\"").append(key) //NOI18N
-////                        .append("\" cannot be injected: it is not a valid Java Identifier;\n\n"); //NOI18N
-////            }
-//        }
-//
-//        addImportsFor(imports, URL.class, ResourceBundle.class);
-//        
-//        // GLOP
-//        StringBuilder glop = new StringBuilder();
-//        for (String ouaf : imports) {
-//            glop.append(ouaf);
-//        }
-//        return glop.toString();
-//
-////        final StringBuilder handlerCode = new StringBuilder();
-////        final Map<String, Set<TargetPropertyValue>> handlers = Collections.unmodifiableMap(context.handlers);
-////        final TreeSet<String> handlerNames = new TreeSet<>(handlers.keySet());
-////        for (String name : handlerNames) {
-////            if (!name.startsWith("#") || name.startsWith("##")) {
-////                continue; //NOI18N
-////            }
-////            final String methodName = name.substring(1);
-////            if (!Utils.isValidFxmlId(methodName)) {
-////                handlerCode.append(INDENT)
-////                        .append("// WARNING: cannot create handler for '") //NOI18N
-////                        .append(name).append("': not a valid method name\n\n"); //NOI18N
-////            } else {
-////                TreeSet<String> comments = new TreeSet<>();
-////                Class<?> eventClass = null;
-////                for (TargetPropertyValue tpv : handlers.get(name)) {
-////                    comments.add(describeHandler(tpv));
-////                    if (!tpv.getProperty().isProp()) {
-////                        eventClass = Event.class;
-////                    } else {
-////                        eventClass = commonEventClass(eventClass, tpv.getProperty().getProp().getType());
-////                    }
-////                }
-////                if (textType == TEXT_TYPE.WITH_COMMENTS) {
-////                    for (String s : comments) {
-////                        handlerCode.append(INDENT).append(s);
-////                    }
-////                }
-////                handlerCode.append(INDENT).append("@FXML\n"); //NOI18N
-////                handlerCode.append(INDENT).append("void ").append(methodName).append("(") //NOI18N
-////                        .append(eventClass.getSimpleName()).append(" event) {\n"); //NOI18N
-////                if (textType == TEXT_TYPE.WITH_COMMENTS) {
-////                    handlerCode.append(INDENT).append(INDENT).append("// handle the event here\n"); //NOI18N
-////                }
-////                handlerCode.append(INDENT).append("}\n\n"); //NOI18N
-////                addImportsFor(imports, eventClass);
-////            }
-////        }
-////
-////        final StringBuilder controller = new StringBuilder();
-////        String controllerName = project.getScreenData().getControllerClass();
-////        if (controllerName == null || controllerName.isEmpty()) {
-////            controllerName = "PleaseProvideControllerClassName"; //NOI18N
-////        }
-////        String simpleName = controllerName.replace("$", "."); //NOI18N
-////        int dot = simpleName.lastIndexOf('.');
-////        if (dot > -1) {
-////            simpleName = simpleName.substring(dot + 1);
-////        }
-////        if (textType == TEXT_TYPE.WITH_COMMENTS) {
-////            controller.append("/**\n").append(" * ") //NOI18N
-////                    .append(format("menu.view.sample.controller.skeleton.header.line1", project.getProjectName()))
-////                    .append("\n").append(" * ") //NOI18N
-////                    .append(format("menu.view.sample.controller.skeleton.header.line2"))
-////                    .append("\n").append(" **/\n\n"); //NOI18N
-////        }
-////        if (!controllerName.contains("$")) { //NOI18N
-////            int lastdot = controllerName.lastIndexOf('.');
-////            if (lastdot > 0) {
-////                controller.append("package ").append(controllerName.substring(0, lastdot)).append(";\n\n"); //NOI18N
-////            }
-////        }
-////        for (String imp : imports) {
-////            controller.append(imp);
-////        }
-////        controller.append("\n\n"); //NOI18N
-////        controller.append("public "); //NOI18N
-////        if (controllerName.contains("$")) { //NOI18N
-////            controller.append("static "); //NOI18N
-////        }
-////        controller.append("class ").append(simpleName).append(" {\n\n"); //NOI18N
-////        if (textType == TEXT_TYPE.WITH_COMMENTS) {
-////            controller.append(INDENT).append("@FXML // ResourceBundle that was given to the FXMLLoader\n") //NOI18N
-////                    .append(INDENT).append("private ResourceBundle resources;\n\n") //NOI18N
-////                    .append(INDENT).append("@FXML // URL location of the FXML file that was given to the FXMLLoader\n") //NOI18N
-////                    .append(INDENT).append("private URL location;\n\n"); //NOI18N
-////        } else {
-////            controller.append(INDENT).append("@FXML\n") //NOI18N
-////                    .append(INDENT).append("private ResourceBundle resources;\n\n") //NOI18N
-////                    .append(INDENT).append("@FXML\n") //NOI18N
-////                    .append(INDENT).append("private URL location;\n\n"); //NOI18N
-////        }
-////        controller.append(variables);
-////        controller.append("\n"); //NOI18N
-////        controller.append(handlerCode.toString());
-////        if (textType == TEXT_TYPE.WITH_COMMENTS) {
-////            controller.append(INDENT).append("@FXML // This method is called by the FXMLLoader when initialization is complete\n"); //NOI18N
-////        } else {
-////            controller.append(INDENT).append("@FXML\n"); //NOI18N
-////        }
-////        controller.append(INDENT).append("void initialize() {\n") //NOI18N
-////                .append(asserts.toString()).append("\n"); //NOI18N
-////        if (textType == TEXT_TYPE.WITH_COMMENTS) {
-////            controller.append(INDENT).append(INDENT).append("// Initialize your logic here: all @FXML variables will have been injected\n"); //NOI18N
-////        }
-////        controller.append("\n") //NOI18N
-////                .append(INDENT).append("}\n\n"); //NOI18N
-////        controller.append("}\n"); //NOI18N
-////        return controller.toString();
-//    }
 }
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog.css	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog.css	Sat Dec 28 08:05:35 2013 -0800
@@ -1,36 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
- * All rights reserved. Use is subject to license terms.
- *
- * This file is available and licensed under the following license:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *  - Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the distribution.
- *  - Neither the name of Oracle Corporation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog_css.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog_css.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog_i18n.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/AlertDialog_i18n.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication.css	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication.css	Sat Dec 28 08:05:35 2013 -0800
@@ -1,36 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
- * All rights reserved. Use is subject to license terms.
- *
- * This file is available and licensed under the following license:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *  - Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the distribution.
- *  - Neither the name of Oracle Corporation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication_css.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication_css.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication_i18n.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/BasicApplication_i18n.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication.css	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication.css	Sat Dec 28 08:05:35 2013 -0800
@@ -1,36 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
- * All rights reserved. Use is subject to license terms.
- *
- * This file is available and licensed under the following license:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *  - Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the distribution.
- *  - Neither the name of Oracle Corporation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication_css.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication_css.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication_i18n.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/ComplexApplication_i18n.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/FxmlTemplates.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/FxmlTemplates.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/TemplateDialog.fxml	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/TemplateDialog.fxml	Sat Dec 28 08:05:35 2013 -0800
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+  Copyright (c) 2012, 2014, Oracle and/or its affiliates.
   All rights reserved. Use is subject to license terms.
 
   This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/TemplateDialogController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/template/TemplateDialogController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/util/FileMutex.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/util/FileMutex.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/util/MessageBox.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/util/MessageBox.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.css	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.css	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java	Fri Dec 20 14:19:02 2013 -0800
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java	Sat Dec 28 08:05:35 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -51,19 +51,8 @@
 import com.oracle.javafx.scenebuilder.kit.editor.job.gridpane.GridPaneJobUtils.Position;
 import com.oracle.javafx.scenebuilder.kit.editor.job.gridpane.MoveColumnJob;
 import com.oracle.javafx.scenebuilder.kit.editor.job.gridpane.MoveRowJob;
+import com.oracle.javafx.scenebuilder.kit.editor.job.wrap.AbstractWrapInJob;
 import com.oracle.javafx.scenebuilder.kit.editor.job.wrap.UnwrapJob;
-import com.oracle.javafx.scenebuilder.kit.editor.job.wrap.WrapInAnchorPaneJob;
-import com.oracle.javafx.scenebuilder.kit.editor.job.wrap.WrapInGridPaneJob;
-import com.oracle.javafx.scenebuilder.kit.editor.job.wrap.WrapInGroupJob;
-import com.oracle.javafx.scenebuilder.kit.editor.job.wrap.WrapInHBoxJob;
-import com.oracle.javafx.scenebuilder.kit.editor.job.wrap.WrapInPaneJob;
-import com.oracle.javafx.scenebuilder.kit.editor.job.wrap.WrapInScrollPaneJob;
-import com.oracle.javafx.scenebuilder.kit.editor.job.wrap.WrapInSplitPaneJob;
-import com.oracle.javafx.scenebuilder.kit.editor.job.wrap.WrapInStackPaneJob;
-import com.oracle.javafx.scenebuilder.kit.editor.job.wrap.WrapInTabPaneJob;
-import com.oracle.javafx.scenebuilder.kit.editor.job.wrap.WrapInTitledPaneJob;
-import com.oracle.javafx.scenebuilder.kit.editor.job.wrap.WrapInToolBarJob;
-import com.oracle.javafx.scenebuilder.kit.editor.job.wrap.WrapInVBoxJob;
 import com.oracle.javafx.scenebuilder.kit.editor.messagelog.MessageLog;
 import com.oracle.javafx.scenebuilder.kit.editor.util.InlineEditController;
 import com.oracle.javafx.scenebuilder.kit.editor.report.ErrorReport;
@@ -102,6 +91,7 @@
 import javafx.beans.value.ObservableListValue;
 import javafx.beans.value.ObservableValue;
 import javafx.collections.ObservableList;
+import javafx.scene.Parent;
 import javafx.scene.effect.Effect;
 import javafx.scene.input.Clipboard;
 import javafx.util.Callback;
@@ -183,10 +173,7 @@
         SELECT_NEXT,
         SELECT_PREVIOUS,
         TOGGLE_CSS_SELECTION,
-        TOGGLE_SAMPLE_DATA,
-        // Candidates for Modify - GridPane
-        SELECT_NEXT_ROW,
-        SELECT_NEXT_COLUMN,
+        TOGGLE_SAMPLE_DATA
     }
     
     private final Selection selection = new Selection();
@@ -211,8 +198,6 @@
             = new SimpleObjectProperty<>(Theme.MODENA);
     private final ListProperty<File> sceneStyleSheetProperty
             = new SimpleListProperty<>();
-    private final ObjectProperty<File> resourceProperty
-            = new SimpleObjectProperty<>(null);