You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by mc...@apache.org on 2016/04/18 18:34:07 UTC

[2/4] nifi git commit: NIFI-1323: - Creating graph control panels for navigating and operating. - Remove controls from the header into the graph control panels where appropriate. - Removing unneeded styles and images.

NIFI-1323:
- Creating graph control panels for navigating and operating.
- Remove controls from the header into the graph control panels where appropriate.
- Removing unneeded styles and images.


Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/6b571081
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/6b571081
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/6b571081

Branch: refs/heads/NIFI-1323
Commit: 6b571081409f91a15638c3098a351fe672ea1886
Parents: c45060f
Author: Matt Gilman <ma...@gmail.com>
Authored: Mon Jan 4 17:05:02 2016 -0500
Committer: Matt Gilman <ma...@gmail.com>
Committed: Mon Jan 4 17:05:02 2016 -0500

----------------------------------------------------------------------
 .../nifi-framework/nifi-web/nifi-web-ui/pom.xml |   1 -
 .../main/resources/filters/canvas.properties    |   1 -
 .../src/main/webapp/WEB-INF/pages/canvas.jsp    |   1 +
 .../WEB-INF/partials/canvas/canvas-header.jsp   |   1 -
 .../WEB-INF/partials/canvas/navigation.jsp      | 130 ++++++--
 .../nifi-web-ui/src/main/webapp/css/header.css  | 151 ---------
 .../nifi-web-ui/src/main/webapp/css/main.css    |   4 +
 .../src/main/webapp/css/navigation.css          | 228 ++++---------
 .../src/main/webapp/icon-font/LICENSE.txt       |  12 +
 .../src/main/webapp/icon-font/README.txt        |  75 +++++
 .../src/main/webapp/icon-font/config.json       | 118 +++++++
 .../src/main/webapp/icon-font/css/animation.css |  85 +++++
 .../icon-font/css/nifi-icon-font-codes.css      |  19 ++
 .../icon-font/css/nifi-icon-font-embedded.css   |  72 ++++
 .../icon-font/css/nifi-icon-font-ie7-codes.css  |  19 ++
 .../webapp/icon-font/css/nifi-icon-font-ie7.css |  30 ++
 .../webapp/icon-font/css/nifi-icon-font.css     |  74 ++++
 .../src/main/webapp/icon-font/demo.html         | 334 +++++++++++++++++++
 .../webapp/icon-font/font/nifi-icon-font.eot    | Bin 0 -> 8352 bytes
 .../webapp/icon-font/font/nifi-icon-font.svg    |  29 ++
 .../webapp/icon-font/font/nifi-icon-font.ttf    | Bin 0 -> 8160 bytes
 .../webapp/icon-font/font/nifi-icon-font.woff   | Bin 0 -> 4844 bytes
 .../src/main/webapp/images/bgOutline.png        | Bin 585 -> 0 bytes
 .../main/webapp/images/bgToolbarBtnBorder.png   | Bin 227 -> 0 bytes
 .../src/main/webapp/images/buttonColor.png      | Bin 1679 -> 0 bytes
 .../src/main/webapp/images/buttonCopy.png       | Bin 1166 -> 0 bytes
 .../src/main/webapp/images/buttonDelete.png     | Bin 1837 -> 0 bytes
 .../src/main/webapp/images/buttonDisable.png    | Bin 1737 -> 0 bytes
 .../src/main/webapp/images/buttonEnable.png     | Bin 1375 -> 0 bytes
 .../src/main/webapp/images/buttonGroup.png      | Bin 880 -> 0 bytes
 .../src/main/webapp/images/buttonOutline.png    | Bin 495 -> 0 bytes
 .../src/main/webapp/images/buttonPanDown.png    | Bin 554 -> 0 bytes
 .../src/main/webapp/images/buttonPanLeft.png    | Bin 588 -> 0 bytes
 .../src/main/webapp/images/buttonPanRight.png   | Bin 530 -> 0 bytes
 .../src/main/webapp/images/buttonPanUp.png      | Bin 551 -> 0 bytes
 .../src/main/webapp/images/buttonPaste.png      | Bin 1372 -> 0 bytes
 .../src/main/webapp/images/buttonRun.png        | Bin 1163 -> 0 bytes
 .../src/main/webapp/images/buttonStop.png       | Bin 869 -> 0 bytes
 .../src/main/webapp/images/buttonTemplate.png   | Bin 1290 -> 0 bytes
 .../src/main/webapp/images/buttonZoom100.png    | Bin 449 -> 0 bytes
 .../src/main/webapp/images/buttonZoomFit.png    | Bin 499 -> 0 bytes
 .../src/main/webapp/images/buttonZoomIn.png     | Bin 435 -> 0 bytes
 .../src/main/webapp/images/buttonZoomOut.png    | Bin 339 -> 0 bytes
 .../src/main/webapp/js/nf/canvas/nf-birdseye.js |  68 ++--
 .../webapp/js/nf/canvas/nf-canvas-toolbar.js    | 178 +++++-----
 .../src/main/webapp/js/nf/canvas/nf-canvas.js   |   3 +-
 .../webapp/js/nf/canvas/nf-graph-control.js     | 171 +++++++---
 .../webapp/js/nf/canvas/nf-toolbar-action.js    |  96 ------
 .../src/main/webapp/js/nf/nf-storage.js         |   2 +-
 49 files changed, 1280 insertions(+), 622 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml
index 35ad4a2..f675e2a 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml
@@ -308,7 +308,6 @@
                                                 <include>${staging.dir}/js/nf/canvas/nf-selectable.js</include>
                                                 <include>${staging.dir}/js/nf/canvas/nf-connectable.js</include>
                                                 <include>${staging.dir}/js/nf/canvas/nf-birdseye.js</include>
-                                                <include>${staging.dir}/js/nf/canvas/nf-toolbar-action.js</include>
                                                 <include>${staging.dir}/js/nf/canvas/nf-canvas-toolbar.js</include>
                                                 <include>${staging.dir}/js/nf/canvas/nf-graph-control.js</include>
                                                 <include>${staging.dir}/js/nf/canvas/nf-canvas-header.js</include>

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas.properties
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas.properties
index bf61846..aaf6f47 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas.properties
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas.properties
@@ -52,7 +52,6 @@ nf.canvas.script.tags=<script type="text/javascript" src="js/nf/nf-namespace.js?
 <script type="text/javascript" src="js/nf/canvas/nf-connectable.js?${project.version}"></script>\n\
 <script type="text/javascript" src="js/nf/canvas/nf-selectable.js?${project.version}"></script>\n\
 <script type="text/javascript" src="js/nf/canvas/nf-birdseye.js?${project.version}"></script>\n\
-<script type="text/javascript" src="js/nf/canvas/nf-toolbar-action.js?${project.version}"></script>\n\
 <script type="text/javascript" src="js/nf/canvas/nf-canvas-toolbar.js?${project.version}"></script>\n\
 <script type="text/javascript" src="js/nf/canvas/nf-graph-control.js?${project.version}"></script>\n\
 <script type="text/javascript" src="js/nf/canvas/nf-canvas-header.js?${project.version}"></script>\n\

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/canvas.jsp
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/canvas.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/canvas.jsp
index f9970df..76b22be 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/canvas.jsp
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/canvas.jsp
@@ -22,6 +22,7 @@
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
         <link rel="shortcut icon" href="images/nifi16.ico"/>
         <link rel="stylesheet" href="css/reset.css" type="text/css" />
+        <link rel="stylesheet" href="icon-font/css/nifi-icon-font.css" type="text/css" />
         ${nf.canvas.style.tags}
         <link rel="stylesheet" href="js/codemirror/lib/codemirror.css" type="text/css" />
         <link rel="stylesheet" href="js/codemirror/addon/hint/show-hint.css" type="text/css" />

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/canvas-header.jsp
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/canvas-header.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/canvas-header.jsp
index 7a1d22d..c868bca 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/canvas-header.jsp
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/canvas-header.jsp
@@ -23,7 +23,6 @@
         <div id="toolbox-right-edge"></div>
     </div>
     <div id="toolbar">
-        <div id="global-controls"></div>
         <div id="utilities-container">
             <div id="utilities-border"></div>
             <div id="utility-buttons">

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/navigation.jsp
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/navigation.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/navigation.jsp
index 325cf9d..714a0ed 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/navigation.jsp
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/navigation.jsp
@@ -24,34 +24,104 @@
     </div>
     <div id="breadcrumbs-background"></div>
 </div>
-<div id="pan-and-zoom">
-    <div id="graph-control-separator">&nbsp;</div>
-    <table class="pan">
-        <tr>
-            <td id="pan-top-left"></td>
-            <td id="pan-up-button" title="Pan Up" class="pan-up"></td>
-            <td id="pan-top-right"></td>
-        </tr>
-        <tr>
-            <td id="pan-left-button" title="Pan Left" class="pan-left"></td>
-            <td id="pan-center"></td>
-            <td id="pan-right-button" title="Pan Right" class="pan-right"></td>
-        </tr>
-        <tr>
-            <td id="pan-bottom-left"></td>
-            <td id="pan-down-button" title="Pan Down" class="pan-down"></td>
-            <td id="pan-bottom-right"></td>
-        </tr>
-    </table>
-    <div id="graph-control-separator">&nbsp;</div>
-    <div id="zoom-in-button" title="Zoom In" class="zoom-in"></div>
-    <div id="zoom-out-button" title="Zoom Out" class="zoom-out"></div>
-    <div id="graph-control-separator">&nbsp;</div>
-    <div id="zoom-fit-button" title="Fit" class="fit-image"></div>
-    <div id="graph-control-separator">&nbsp;</div>
-    <div id="zoom-actual-button" title="Actual Size" class="actual-size"></div>
+<div id="graph-controls">
+    <div id="navigation-control" class="graph-control">
+        <div class="graph-control-docked pointer" title="Navigate">
+            <i class="graph-control-icon nifi-icon icon-compass"></i>
+        </div>
+        <div class="graph-control-header-container hidden">
+            <div class="graph-control-header-icon">
+                <i class="graph-control-icon nifi-icon icon-compass"></i>
+            </div>
+            <div class="graph-control-header">NAVIGATE</div>
+            <div class="graph-control-header-action">
+                <i class="graph-control-expansion nifi-icon icon-plus-squared-alt pointer"></i>
+            </div>
+            <div class="clear"></div>
+        </div>
+        <div class="graph-control-content hidden">
+            <div id="navigation-buttons">
+                <div id="naviagte-zoom-in" class="action-button" title="Zoom In">
+                    <i class="graph-control-action-icon nifi-icon icon-zoom-in"></i>
+                </div>
+                <div class="button-spacer-small">&nbsp;</div>
+                <div id="naviagte-zoom-out" class="action-button" title="Zoom Out">
+                    <i class="graph-control-action-icon nifi-icon icon-zoom-out"></i>
+                </div>
+                <div class="button-spacer-large">&nbsp;</div>
+                <div id="naviagte-zoom-fit" class="action-button" title="Fit">
+                    <i class="graph-control-action-icon nifi-icon icon-fighter-jet"></i>
+                </div>
+                <div class="button-spacer-small">&nbsp;</div>
+                <div id="naviagte-zoom-actual-size" class="action-button" title="Actual">
+                    <i class="graph-control-action-icon nifi-icon icon-award"></i>
+                </div>
+                <div class="clear"></div>
+            </div>
+            <div id="birdseye"></div>
+        </div>
+    </div>
+    <div id="operation-control" class="graph-control">
+        <div class="graph-control-docked pointer" title="Operate">
+            <i class="graph-control-icon nifi-icon icon-bullseye"></i>
+        </div>
+        <div class="graph-control-header-container hidden">
+            <div class="graph-control-header-icon">
+                <i class="graph-control-icon nifi-icon icon-bullseye"></i>
+            </div>
+            <div class="graph-control-header">OPERATE</div>
+            <div class="graph-control-header-action">
+                <i class="graph-control-expansion nifi-icon icon-plus-squared-alt pointer"></i>
+            </div>
+            <div class="clear"></div>
+        </div>
+        <div class="graph-control-content hidden">
+            <div id="operation-buttons">
+                <div>
+                    <div id="operate-enable" class="action-button" title="Enable">
+                        <i class="graph-control-action-icon nifi-icon icon-toggle-on"></i>
+                    </div>
+                    <div class="button-spacer-small">&nbsp;</div>
+                    <div id="operate-disable" class="action-button" title="Disable">
+                        <i class="graph-control-action-icon nifi-icon icon-toggle-off"></i>
+                    </div>
+                    <div class="button-spacer-large">&nbsp;</div>
+                    <div id="operate-start" class="action-button" title="Start">
+                        <i class="graph-control-action-icon nifi-icon icon-play"></i>
+                    </div>
+                    <div class="button-spacer-small">&nbsp;</div>
+                    <div id="operate-stop" class="action-button" title="Stop">
+                        <i class="graph-control-action-icon nifi-icon icon-stop"></i>
+                    </div>
+                    <div class="button-spacer-large">&nbsp;</div>
+                    <div id="operate-template" class="action-button" title="Create Template">
+                        <i class="graph-control-action-icon nifi-icon icon-bus"></i>
+                    </div>
+                    <div class="button-spacer-large">&nbsp;</div>
+                    <div id="operate-copy" class="action-button" title="Copy">
+                        <i class="graph-control-action-icon nifi-icon icon-th"></i>
+                    </div>
+                    <div class="button-spacer-small">&nbsp;</div>
+                    <div id="operate-paste" class="action-button" title="Paste">
+                        <i class="graph-control-action-icon nifi-icon icon-paste"></i>
+                    </div>
+                    <div class="clear"></div>
+                </div>
+                <div style="margin-top: 5px;">
+                    <div id="operate-group" class="action-button" title="Group">
+                        <i class="graph-control-action-icon nifi-icon icon-fire"></i>
+                    </div>
+                    <div class="button-spacer-large">&nbsp;</div>
+                    <div id="operate-color" class="action-button" title="Fill Color">
+                        <i class="graph-control-action-icon nifi-icon icon-brush-1"></i>
+                    </div>
+                    <div class="clear"></div>
+                </div>
+            </div>
+        </div>
+    </div>
 </div>
-<div id="birdseye-collapse" class="birdseye-expanded"></div>
-<div id="birdseye-container">
-    <div id="birdseye"></div>
-</div>
\ No newline at end of file
+    <%--<div id="zoom-in-button" title="Zoom In" class="zoom-in"></div>--%>
+    <%--<div id="zoom-out-button" title="Zoom Out" class="zoom-out"></div>--%>
+    <%--<div id="zoom-fit-button" title="Fit" class="fit-image"></div>--%>
+    <%--<div id="zoom-actual-button" title="Actual Size" class="actual-size"></div>--%>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/header.css
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/header.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/header.css
index 200f6bb..8021b34 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/header.css
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/header.css
@@ -241,157 +241,6 @@ div.label-icon-drag {
     height: 28px;
 }
 
-/* global actions / controls */
-
-div.toolbar-icon {
-    float: left;
-    height: 26px;
-    width: 20px;
-}
-
-#global-controls-container {
-    float: left;
-}
-
-div.control-border {
-    float: left;
-    height: 26px;
-    width: 1px;
-    background: transparent url(../images/bgToolbarBtnBorder.png) no-repeat scroll top left;
-}
-
-div.control-separator {
-    float: left;
-    height: 26px;
-    width: 5px;
-}
-
-#global-controls {
-    float: left;
-    margin-top: 1px;
-    margin-left: 20px;
-}
-
-div.enable-all {
-    background: transparent url(../images/buttonEnable.png) no-repeat scroll top left;
-}
-
-div.enable-all-hover {
-    background: transparent url(../images/buttonEnable.png) no-repeat scroll top center;
-}
-
-div.enable-all-disable {
-    background: transparent url(../images/buttonEnable.png) no-repeat scroll top right;
-}
-
-div.disable-all {
-    background: transparent url(../images/buttonDisable.png) no-repeat scroll top left;
-}
-
-div.disable-all-hover {
-    background: transparent url(../images/buttonDisable.png) no-repeat scroll top center;
-}
-
-div.disable-all-disable {
-    background: transparent url(../images/buttonDisable.png) no-repeat scroll top right;
-}
-
-div.start-all {
-    background: transparent url(../images/buttonRun.png) no-repeat scroll top left;
-}
-
-div.start-all-hover {
-    background: transparent url(../images/buttonRun.png) no-repeat scroll top center;
-}
-
-div.start-all-disable {
-    background: transparent url(../images/buttonRun.png) no-repeat scroll top right;
-}
-
-div.stop-all {
-    background: transparent url(../images/buttonStop.png) no-repeat scroll top left;
-}
-
-div.stop-all-hover {
-    background: transparent url(../images/buttonStop.png) no-repeat scroll top center;
-}
-
-div.stop-all-disable {
-    background: transparent url(../images/buttonStop.png) no-repeat scroll top right;
-}
-
-div.copy {
-    background: transparent url(../images/buttonCopy.png) no-repeat scroll top left;
-}
-
-div.copy-hover {
-    background: transparent url(../images/buttonCopy.png) no-repeat scroll top center;
-}
-
-div.copy-disable {
-    background: transparent url(../images/buttonCopy.png) no-repeat scroll top right;
-}
-
-div.paste {
-    background: transparent url(../images/buttonPaste.png) no-repeat scroll top left;
-}
-
-div.paste-hover {
-    background: transparent url(../images/buttonPaste.png) no-repeat scroll top center;
-}
-
-div.paste-disable {
-    background: transparent url(../images/buttonPaste.png) no-repeat scroll top right;
-}
-
-div.fill {
-    background: transparent url(../images/buttonColor.png) no-repeat scroll top left;
-}
-
-div.fill-hover {
-    background: transparent url(../images/buttonColor.png) no-repeat scroll top center;
-}
-
-div.fill-disable {
-    background: transparent url(../images/buttonColor.png) no-repeat scroll top right;
-}
-
-div.group {
-    background: transparent url(../images/buttonGroup.png) no-repeat scroll top left;
-}
-
-div.group-hover {
-    background: transparent url(../images/buttonGroup.png) no-repeat scroll top center;
-}
-
-div.group-disable {
-    background: transparent url(../images/buttonGroup.png) no-repeat scroll top right;
-}
-
-div.delete {
-    background: transparent url(../images/buttonDelete.png) no-repeat scroll top left;
-}
-
-div.delete-hover {
-    background: transparent url(../images/buttonDelete.png) no-repeat scroll top center;
-}
-
-div.delete-disable {
-    background: transparent url(../images/buttonDelete.png) no-repeat scroll top right;
-}
-
-div.template {
-    background: transparent url(../images/buttonTemplate.png) no-repeat scroll top left;
-}
-
-div.template-hover {
-    background: transparent url(../images/buttonTemplate.png) no-repeat scroll top center;
-}
-
-div.template-disable {
-    background: transparent url(../images/buttonTemplate.png) no-repeat scroll top right;
-}
-
 /* search field */
 
 div.search-result-icon {

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css
index 3a6e9d1..79043df 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css
@@ -104,6 +104,10 @@ ul.links span.header-link-over {
     General Styles
 */
 
+i.nifi-icon {
+    color: #8ea8b2;
+}
+
 .unselectable {
     -webkit-touch-callout: none;
     -webkit-user-select: none;

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/navigation.css
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/navigation.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/navigation.css
index 4f53610..9eac8ae 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/navigation.css
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/navigation.css
@@ -14,132 +14,113 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/* styles for the graph pan/zoom controls */
 
-#pan-and-zoom {
-    position: absolute;
-    top: 94px;
-    width: 59px;
-    height: 153px;
-    padding-right: 4px;
-    padding-bottom: 4px;
-    z-index: 1000;
-    background: transparent url(../images/bgPanZoom.png) no-repeat scroll top left;
-}
-
-table.pan {
-    float: left;
-    clear: left;
-    border-collapse: collapse;
-    padding: 0;
-    margin: 0;
-    margin-left: 6px;
-}
-
-#pan-up-button, #pan-down-button {
-    height: 12px;
-    width: 18px;
-    cursor: pointer;
-    z-index: inherit;
-}
-
-#pan-left-button, #pan-right-button {
-    width: 14px;
-    height: 16px;
-    cursor: pointer;
-    z-index: inherit;
-}
+/* general graph control styles */
 
-#pan-center {
-    width: 18px;
-    height: 16px;
-    background: transparent url(../images/bgPanCenter.png) no-repeat scroll center center;
+#graph-controls {
+    position: absolute;
+    left: 0;
+    z-index: 2;
 }
 
-#pan-top-right, #pan-top-left, #pan-bottom-right, #pan-bottom-left {
-    background-color: transparent;
+div.graph-control {
+    padding: 2px;
+    border: 1px solid #e5ebed;
+    margin-bottom: 5px;
+    background-color: #fff;
 }
 
-td.pan-up {
-    background: transparent url(../images/buttonPanUp.png) no-repeat scroll top left;
+div.graph-control i.graph-control-icon {
+    font-size: 20px;
 }
 
-td.pan-up-hover {
-    background: transparent url(../images/buttonPanUp.png) no-repeat scroll top right;
+div.graph-control i.graph-control-expansion {
+    font-size: 20px;
+    color: #035f8f;
 }
 
-td.pan-down {
-    background: transparent url(../images/buttonPanDown.png) no-repeat scroll top left;
+div.graph-control-header-icon {
+    float: left;
 }
 
-td.pan-down-hover {
-    background: transparent url(../images/buttonPanDown.png) no-repeat scroll top right;
+div.graph-control-header {
+    float: left;
+    font-size: 14px;
+    line-height: 22px;
+    color: #8ea8b2;
 }
 
-td.pan-left {
-    background: transparent url(../images/buttonPanLeft.png) no-repeat scroll top left;
+div.graph-control-header-action {
+    float: right;
 }
 
-td.pan-left-hover {
-    background: transparent url(../images/buttonPanLeft.png) no-repeat scroll top right;
+div.graph-control-content {
+    margin: 5px;
+    width: 250px;
 }
 
-td.pan-right {
-    background: transparent url(../images/buttonPanRight.png) no-repeat scroll top left;
-}
+/* navigate buttons */
 
-td.pan-right-hover {
-    background: transparent url(../images/buttonPanRight.png) no-repeat scroll top right;
+#navigation-buttons {
+    margin-bottom: 5px;
 }
 
-div.zoom-in {
-    background: transparent url(../images/buttonZoomIn.png) no-repeat scroll top left;
+div.action-button {
+    float: left;
+    border: 1px solid #8ea8b2;
+    cursor: pointer;
+    height: 24px;
+    width: 24px;
+    text-align: center;
 }
 
-div.zoom-in-hover {
-    background: transparent url(../images/buttonZoomIn.png) no-repeat scroll top right;
+div.graph-control i.graph-control-action-icon {
+    font-size: 16px;
+    color: #035f8f;
+    line-height: 24px;
 }
 
-div.zoom-out {
-    background: transparent url(../images/buttonZoomOut.png) no-repeat scroll top left;
+div.graph-control i.icon-disabled {
+    color: #ddd;
 }
 
-div.zoom-out-hover {
-    background: transparent url(../images/buttonZoomOut.png) no-repeat scroll top right;
+div.button-spacer-small {
+    float: left;
+    width: 2px;
 }
 
-div.fit-image {
-    background: transparent url(../images/buttonZoomFit.png) no-repeat scroll top left;
+div.button-spacer-large {
+    float: left;
+    width: 10px;
 }
 
-div.fit-image-hover {
-    background: transparent url(../images/buttonZoomFit.png) no-repeat scroll top right;
-}
+/* outline/birdseye */
 
-div.actual-size {
-    background: transparent url(../images/buttonZoom100.png) no-repeat scroll top left;
+#birdseye svg, #birdseye canvas {
+    position: absolute;
+    overflow: hidden;
+    top: 62px;
+    left: 8px;
 }
 
-div.actual-size-hover {
-    background: transparent url(../images/buttonZoom100.png) no-repeat scroll top right;
+#birdseye {
+    width: 248px;
+    height: 150px;
+    background: #fff;
+    z-index: 1001;
+    overflow: hidden;
+    border: 1px solid #e5ebed;
 }
 
-#zoom-in-button, #zoom-out-button, #zoom-fit-button, #zoom-actual-button {
-    float: left;
-    clear: left;
-    margin-left: 20px;
-    height: 16px;
-    width: 18px;
-    cursor: pointer;
-    z-index: inherit;
+.brush .extent {
+    stroke: #666;
+    fill-opacity: .125;
+    shape-rendering: crispEdges;
 }
 
-#graph-control-separator {
-    float: left;
-    clear: left;
-    height: 8px;
-    -webkit-user-select: none;
-    -moz-user-select: none;
+rect.birdseye-brush {
+    stroke: #7098ad;
+    fill: transparent;
 }
 
 /* styles for the breadcrumbs bar */
@@ -218,75 +199,4 @@ div.actual-size-hover {
     left: 10px;
     float: left;
     white-space: nowrap;
-}
-
-/* styles for the outline */
-
-#birdseye-container {
-    position: absolute;
-    top: 94px;
-    right: 0px;
-    width: 202px;
-    height: 117px;
-    background-image: url(../images/bgOutline.png);
-    background-color: transparent;
-    z-index: 1000;
-    overflow: hidden;
-}
-
-#birdseye-container svg, #birdseye-container canvas {
-    position: absolute;
-    overflow: hidden;
-    top: 1px;
-    left: 4px;
-    bottom: 0px;
-    right: 0px;
-}
-
-#birdseye {
-    margin-top: 1px;
-    margin-left: 4px;
-    width: 194px;
-    height: 108px;
-    background: #fff;
-    z-index: 1001;
-    overflow: hidden;
-    border: 1px solid #ccc;
-}
-
-#birdseye-collapse {
-    position: absolute;
-    top: 80px;
-    right: 5px;
-    width: 15px;
-    height: 10px;
-    z-index: 1010;
-    cursor: pointer;
-}
-
-div.birdseye-expanded {
-    background: transparent url(../images/buttonOutline.png) no-repeat scroll top left;
-}
-
-div.birdseye-expanded-hover {
-    background: transparent url(../images/buttonOutline.png) no-repeat scroll top right;
-}
-
-div.birdseye-collapsed {
-    background: transparent url(../images/buttonOutline.png) no-repeat scroll bottom left;
-}
-
-div.birdseye-collapsed-hover {
-    background: transparent url(../images/buttonOutline.png) no-repeat scroll bottom right;
-}
-
-.brush .extent {
-    stroke: #666;
-    fill-opacity: .125;
-    shape-rendering: crispEdges;
-}
-
-rect.birdseye-brush {
-    stroke: #7098ad;
-    fill: transparent;
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/LICENSE.txt
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/LICENSE.txt b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/LICENSE.txt
new file mode 100644
index 0000000..b511054
--- /dev/null
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/LICENSE.txt
@@ -0,0 +1,12 @@
+Font license info
+
+
+## Font Awesome
+
+   Copyright (C) 2012 by Dave Gandy
+
+   Author:    Dave Gandy
+   License:   SIL ()
+   Homepage:  http://fortawesome.github.com/Font-Awesome/
+
+

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/README.txt
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/README.txt b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/README.txt
new file mode 100644
index 0000000..a91438a
--- /dev/null
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/README.txt
@@ -0,0 +1,75 @@
+This webfont is generated by http://fontello.com open source project.
+
+
+================================================================================
+Please, note, that you should obey original font licences, used to make this
+webfont pack. Details available in LICENSE.txt file.
+
+- Usually, it's enough to publish content of LICENSE.txt file somewhere on your
+  site in "About" section.
+
+- If your project is open-source, usually, it will be ok to make LICENSE.txt
+  file publically available in your repository.
+
+- Fonts, used in Fontello, don't require a clickable link on your site.
+  But any kind of additional authors crediting is welcome.
+================================================================================
+
+
+Comments on archive content
+---------------------------
+
+- /font/* - fonts in different formats
+
+- /css/*  - different kinds of css, for all situations. Should be ok with 
+  twitter bootstrap. Also, you can skip <i> style and assign icon classes
+  directly to text elements, if you don't mind about IE7.
+
+- demo.html - demo file, to show your webfont content
+
+- LICENSE.txt - license info about source fonts, used to build your one.
+
+- config.json - keeps your settings. You can import it back into fontello
+  anytime, to continue your work
+
+
+Why so many CSS files ?
+-----------------------
+
+Because we like to fit all your needs :)
+
+- basic file, <your_font_name>.css - is usually enough, it contains @font-face
+  and character code definitions
+
+- *-ie7.css - if you need IE7 support, but still don't wish to put char codes
+  directly into html
+
+- *-codes.css and *-ie7-codes.css - if you like to use your own @font-face
+  rules, but still wish to benefit from css generation. That can be very
+  convenient for automated asset build systems. When you need to update font -
+  no need to manually edit files, just override old version with archive
+  content. See fontello source code for examples.
+
+- *-embedded.css - basic css file, but with embedded WOFF font, to avoid
+  CORS issues in Firefox and IE9+, when fonts are hosted on the separate domain.
+  We strongly recommend to resolve this issue by `Access-Control-Allow-Origin`
+  server headers. But if you ok with dirty hack - this file is for you. Note,
+  that data url moved to separate @font-face to avoid problems with <IE9, when
+  string is too long.
+
+- animate.css - use it to get ideas about spinner rotation animation.
+
+
+Attention for server setup
+--------------------------
+
+You MUST setup server to reply with proper `mime-types` for font files -
+otherwise some browsers will fail to show fonts.
+
+Usually, `apache` already has necessary settings, but `nginx` and other
+webservers should be tuned. Here is list of mime types for our file extensions:
+
+- `application/vnd.ms-fontobject` - eot
+- `application/x-font-woff` - woff
+- `application/x-font-ttf` - ttf
+- `image/svg+xml` - svg

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/config.json
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/config.json b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/config.json
new file mode 100644
index 0000000..f92c00b
--- /dev/null
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/config.json
@@ -0,0 +1,118 @@
+{
+  "name": "nifi-icon-font",
+  "css_prefix_text": "icon-",
+  "css_use_suffix": false,
+  "hinting": true,
+  "units_per_em": 1000,
+  "ascent": 850,
+  "glyphs": [
+    {
+      "uid": "b1887b423d2fd15c345e090320c91ca0",
+      "css": "th",
+      "code": 59404,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "2d3be3e856fc1e4ac067590d2ded1b07",
+      "css": "plus-squared-alt",
+      "code": 59395,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "18ef25350258541e8e54148ed79845c0",
+      "css": "minus-squared-alt",
+      "code": 59393,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "e5d624264734620fa9f98d59e6dc941f",
+      "css": "compass",
+      "code": 59392,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "0b2b66e526028a6972d51a6f10281b4b",
+      "css": "zoom-in",
+      "code": 59396,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "d25d10efa900f529ad1d275657cfd30e",
+      "css": "zoom-out",
+      "code": 59397,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "ce06b5805120d0c2f8d60cd3f1a4fdb5",
+      "css": "play",
+      "code": 59402,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "b624a1e512819d410ddbee84e6918b9d",
+      "css": "stop",
+      "code": 59403,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "ab656e280958018a7859eba9a1eabbc7",
+      "css": "award",
+      "code": 59399,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "cb36cbe4e2dac9545e32c3d80a7c6e03",
+      "css": "fighter-jet",
+      "code": 59398,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "b429436ec5a518c78479d44ef18dbd60",
+      "css": "paste",
+      "code": 59405,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "2a4e6c99b732a57da40e32fa2a7800a4",
+      "css": "toggle-off",
+      "code": 59400,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "3256ef03b16e7ab51235bc7378b53bb5",
+      "css": "toggle-on",
+      "code": 59401,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "254077e7c0a9e6d303b32f9c35b96a40",
+      "css": "fire",
+      "code": 59408,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "8aa99bc60f3553bb3e31b73dd6e744c8",
+      "css": "rocket",
+      "code": 59407,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "5b17c7263caa553039655f2fef81ecaf",
+      "css": "bus",
+      "code": 59406,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "c92ad3028acce9d51bae0ac82f5de8a2",
+      "css": "bullseye",
+      "code": 59394,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "fa9a0b7e788c2d78e24cef1de6b70e80",
+      "css": "brush-1",
+      "code": 59410,
+      "src": "fontawesome"
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/animation.css
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/animation.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/animation.css
new file mode 100644
index 0000000..ac5a956
--- /dev/null
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/animation.css
@@ -0,0 +1,85 @@
+/*
+   Animation example, for spinners
+*/
+.animate-spin {
+  -moz-animation: spin 2s infinite linear;
+  -o-animation: spin 2s infinite linear;
+  -webkit-animation: spin 2s infinite linear;
+  animation: spin 2s infinite linear;
+  display: inline-block;
+}
+@-moz-keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@-webkit-keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@-o-keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@-ms-keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font-codes.css
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font-codes.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font-codes.css
new file mode 100644
index 0000000..382c656
--- /dev/null
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font-codes.css
@@ -0,0 +1,19 @@
+
+.icon-compass:before { content: '\e800'; } /* '' */
+.icon-minus-squared-alt:before { content: '\e801'; } /* '' */
+.icon-bullseye:before { content: '\e802'; } /* '' */
+.icon-plus-squared-alt:before { content: '\e803'; } /* '' */
+.icon-zoom-in:before { content: '\e804'; } /* '' */
+.icon-zoom-out:before { content: '\e805'; } /* '' */
+.icon-fighter-jet:before { content: '\e806'; } /* '' */
+.icon-award:before { content: '\e807'; } /* '' */
+.icon-toggle-off:before { content: '\e808'; } /* '' */
+.icon-toggle-on:before { content: '\e809'; } /* '' */
+.icon-play:before { content: '\e80a'; } /* '' */
+.icon-stop:before { content: '\e80b'; } /* '' */
+.icon-th:before { content: '\e80c'; } /* '' */
+.icon-paste:before { content: '\e80d'; } /* '' */
+.icon-bus:before { content: '\e80e'; } /* '' */
+.icon-rocket:before { content: '\e80f'; } /* '' */
+.icon-fire:before { content: '\e810'; } /* '' */
+.icon-brush-1:before { content: '\e812'; } /* '' */
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font-embedded.css
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font-embedded.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font-embedded.css
new file mode 100644
index 0000000..fa8ce02
--- /dev/null
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font-embedded.css
@@ -0,0 +1,72 @@
+@font-face {
+  font-family: 'nifi-icon-font';
+  src: url('../font/nifi-icon-font.eot?54105150');
+  src: url('../font/nifi-icon-font.eot?54105150#iefix') format('embedded-opentype'),
+       url('../font/nifi-icon-font.svg?54105150#nifi-icon-font') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+@font-face {
+  font-family: 'nifi-icon-font';
+  src: url('data:application/octet-stream;base64,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') format('woff'),
+       url('data:application/octet-stream;base64,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') format('truetype');
+}
+/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
+/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
+/*
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+  @font-face {
+    font-family: 'nifi-icon-font';
+    src: url('../font/nifi-icon-font.svg?54105150#nifi-icon-font') format('svg');
+  }
+}
+*/
+ 
+ [class^="icon-"]:before, [class*=" icon-"]:before {
+  font-family: "nifi-icon-font";
+  font-style: normal;
+  font-weight: normal;
+  speak: none;
+ 
+  display: inline-block;
+  text-decoration: inherit;
+  width: 1em;
+  margin-right: .2em;
+  text-align: center;
+  /* opacity: .8; */
+ 
+  /* For safety - reset parent styles, that can break glyph codes*/
+  font-variant: normal;
+  text-transform: none;
+     
+  /* fix buttons height, for twitter bootstrap */
+  line-height: 1em;
+ 
+  /* Animation center compensation - margins should be symmetric */
+  /* remove if not needed */
+  margin-left: .2em;
+ 
+  /* you can be more comfortable with increased icons size */
+  /* font-size: 120%; */
+ 
+  /* Uncomment for 3D effect */
+  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
+}
+.icon-compass:before { content: '\e800'; } /* '' */
+.icon-minus-squared-alt:before { content: '\e801'; } /* '' */
+.icon-bullseye:before { content: '\e802'; } /* '' */
+.icon-plus-squared-alt:before { content: '\e803'; } /* '' */
+.icon-zoom-in:before { content: '\e804'; } /* '' */
+.icon-zoom-out:before { content: '\e805'; } /* '' */
+.icon-fighter-jet:before { content: '\e806'; } /* '' */
+.icon-award:before { content: '\e807'; } /* '' */
+.icon-toggle-off:before { content: '\e808'; } /* '' */
+.icon-toggle-on:before { content: '\e809'; } /* '' */
+.icon-play:before { content: '\e80a'; } /* '' */
+.icon-stop:before { content: '\e80b'; } /* '' */
+.icon-th:before { content: '\e80c'; } /* '' */
+.icon-paste:before { content: '\e80d'; } /* '' */
+.icon-bus:before { content: '\e80e'; } /* '' */
+.icon-rocket:before { content: '\e80f'; } /* '' */
+.icon-fire:before { content: '\e810'; } /* '' */
+.icon-brush-1:before { content: '\e812'; } /* '' */
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font-ie7-codes.css
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font-ie7-codes.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font-ie7-codes.css
new file mode 100644
index 0000000..4b6063d
--- /dev/null
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font-ie7-codes.css
@@ -0,0 +1,19 @@
+
+.icon-compass { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
+.icon-minus-squared-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
+.icon-bullseye { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe802;&nbsp;'); }
+.icon-plus-squared-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe803;&nbsp;'); }
+.icon-zoom-in { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe804;&nbsp;'); }
+.icon-zoom-out { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe805;&nbsp;'); }
+.icon-fighter-jet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
+.icon-award { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
+.icon-toggle-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
+.icon-toggle-on { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe809;&nbsp;'); }
+.icon-play { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80a;&nbsp;'); }
+.icon-stop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80b;&nbsp;'); }
+.icon-th { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80c;&nbsp;'); }
+.icon-paste { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80d;&nbsp;'); }
+.icon-bus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80e;&nbsp;'); }
+.icon-rocket { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80f;&nbsp;'); }
+.icon-fire { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe810;&nbsp;'); }
+.icon-brush-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe812;&nbsp;'); }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font-ie7.css
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font-ie7.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font-ie7.css
new file mode 100644
index 0000000..6fb8344
--- /dev/null
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font-ie7.css
@@ -0,0 +1,30 @@
+[class^="icon-"], [class*=" icon-"] {
+  font-family: 'nifi-icon-font';
+  font-style: normal;
+  font-weight: normal;
+ 
+  /* fix buttons height */
+  line-height: 1em;
+ 
+  /* you can be more comfortable with increased icons size */
+  /* font-size: 120%; */
+}
+ 
+.icon-compass { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
+.icon-minus-squared-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
+.icon-bullseye { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe802;&nbsp;'); }
+.icon-plus-squared-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe803;&nbsp;'); }
+.icon-zoom-in { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe804;&nbsp;'); }
+.icon-zoom-out { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe805;&nbsp;'); }
+.icon-fighter-jet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
+.icon-award { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
+.icon-toggle-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
+.icon-toggle-on { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe809;&nbsp;'); }
+.icon-play { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80a;&nbsp;'); }
+.icon-stop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80b;&nbsp;'); }
+.icon-th { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80c;&nbsp;'); }
+.icon-paste { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80d;&nbsp;'); }
+.icon-bus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80e;&nbsp;'); }
+.icon-rocket { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80f;&nbsp;'); }
+.icon-fire { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe810;&nbsp;'); }
+.icon-brush-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe812;&nbsp;'); }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font.css
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font.css
new file mode 100644
index 0000000..f347464
--- /dev/null
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/css/nifi-icon-font.css
@@ -0,0 +1,74 @@
+@font-face {
+  font-family: 'nifi-icon-font';
+  src: url('../font/nifi-icon-font.eot?69740385');
+  src: url('../font/nifi-icon-font.eot?69740385#iefix') format('embedded-opentype'),
+       url('../font/nifi-icon-font.woff?69740385') format('woff'),
+       url('../font/nifi-icon-font.ttf?69740385') format('truetype'),
+       url('../font/nifi-icon-font.svg?69740385#nifi-icon-font') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
+/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
+/*
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+  @font-face {
+    font-family: 'nifi-icon-font';
+    src: url('../font/nifi-icon-font.svg?69740385#nifi-icon-font') format('svg');
+  }
+}
+*/
+ 
+ [class^="icon-"]:before, [class*=" icon-"]:before {
+  font-family: "nifi-icon-font";
+  font-style: normal;
+  font-weight: normal;
+  speak: none;
+ 
+  display: inline-block;
+  text-decoration: inherit;
+  width: 1em;
+  margin-right: .2em;
+  text-align: center;
+  /* opacity: .8; */
+ 
+  /* For safety - reset parent styles, that can break glyph codes*/
+  font-variant: normal;
+  text-transform: none;
+ 
+  /* fix buttons height, for twitter bootstrap */
+  line-height: 1em;
+ 
+  /* Animation center compensation - margins should be symmetric */
+  /* remove if not needed */
+  margin-left: .2em;
+ 
+  /* you can be more comfortable with increased icons size */
+  /* font-size: 120%; */
+ 
+  /* Font smoothing. That was taken from TWBS */
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+ 
+  /* Uncomment for 3D effect */
+  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
+}
+ 
+.icon-compass:before { content: '\e800'; } /* '' */
+.icon-minus-squared-alt:before { content: '\e801'; } /* '' */
+.icon-bullseye:before { content: '\e802'; } /* '' */
+.icon-plus-squared-alt:before { content: '\e803'; } /* '' */
+.icon-zoom-in:before { content: '\e804'; } /* '' */
+.icon-zoom-out:before { content: '\e805'; } /* '' */
+.icon-fighter-jet:before { content: '\e806'; } /* '' */
+.icon-award:before { content: '\e807'; } /* '' */
+.icon-toggle-off:before { content: '\e808'; } /* '' */
+.icon-toggle-on:before { content: '\e809'; } /* '' */
+.icon-play:before { content: '\e80a'; } /* '' */
+.icon-stop:before { content: '\e80b'; } /* '' */
+.icon-th:before { content: '\e80c'; } /* '' */
+.icon-paste:before { content: '\e80d'; } /* '' */
+.icon-bus:before { content: '\e80e'; } /* '' */
+.icon-rocket:before { content: '\e80f'; } /* '' */
+.icon-fire:before { content: '\e810'; } /* '' */
+.icon-brush-1:before { content: '\e812'; } /* '' */
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/demo.html
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/demo.html b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/demo.html
new file mode 100644
index 0000000..c52bd01
--- /dev/null
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/demo.html
@@ -0,0 +1,334 @@
+<!DOCTYPE html>
+<html>
+  <head><!--[if lt IE 9]><script language="javascript" type="text/javascript" src="//html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
+    <meta charset="UTF-8"><style>/*
+ * Bootstrap v2.2.1
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+.clearfix {
+  *zoom: 1;
+}
+.clearfix:before,
+.clearfix:after {
+  display: table;
+  content: "";
+  line-height: 0;
+}
+.clearfix:after {
+  clear: both;
+}
+html {
+  font-size: 100%;
+  -webkit-text-size-adjust: 100%;
+  -ms-text-size-adjust: 100%;
+}
+a:focus {
+  outline: thin dotted #333;
+  outline: 5px auto -webkit-focus-ring-color;
+  outline-offset: -2px;
+}
+a:hover,
+a:active {
+  outline: 0;
+}
+button,
+input,
+select,
+textarea {
+  margin: 0;
+  font-size: 100%;
+  vertical-align: middle;
+}
+button,
+input {
+  *overflow: visible;
+  line-height: normal;
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+  padding: 0;
+  border: 0;
+}
+body {
+  margin: 0;
+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+  font-size: 14px;
+  line-height: 20px;
+  color: #333;
+  background-color: #fff;
+}
+a {
+  color: #08c;
+  text-decoration: none;
+}
+a:hover {
+  color: #005580;
+  text-decoration: underline;
+}
+.row {
+  margin-left: -20px;
+  *zoom: 1;
+}
+.row:before,
+.row:after {
+  display: table;
+  content: "";
+  line-height: 0;
+}
+.row:after {
+  clear: both;
+}
+[class*="span"] {
+  float: left;
+  min-height: 1px;
+  margin-left: 20px;
+}
+.container,
+.navbar-static-top .container,
+.navbar-fixed-top .container,
+.navbar-fixed-bottom .container {
+  width: 940px;
+}
+.span12 {
+  width: 940px;
+}
+.span11 {
+  width: 860px;
+}
+.span10 {
+  width: 780px;
+}
+.span9 {
+  width: 700px;
+}
+.span8 {
+  width: 620px;
+}
+.span7 {
+  width: 540px;
+}
+.span6 {
+  width: 460px;
+}
+.span5 {
+  width: 380px;
+}
+.span4 {
+  width: 300px;
+}
+.span3 {
+  width: 220px;
+}
+.span2 {
+  width: 140px;
+}
+.span1 {
+  width: 60px;
+}
+[class*="span"].pull-right,
+.row-fluid [class*="span"].pull-right {
+  float: right;
+}
+.container {
+  margin-right: auto;
+  margin-left: auto;
+  *zoom: 1;
+}
+.container:before,
+.container:after {
+  display: table;
+  content: "";
+  line-height: 0;
+}
+.container:after {
+  clear: both;
+}
+p {
+  margin: 0 0 10px;
+}
+.lead {
+  margin-bottom: 20px;
+  font-size: 21px;
+  font-weight: 200;
+  line-height: 30px;
+}
+small {
+  font-size: 85%;
+}
+h1 {
+  margin: 10px 0;
+  font-family: inherit;
+  font-weight: bold;
+  line-height: 20px;
+  color: inherit;
+  text-rendering: optimizelegibility;
+}
+h1 small {
+  font-weight: normal;
+  line-height: 1;
+  color: #999;
+}
+h1 {
+  line-height: 40px;
+}
+h1 {
+  font-size: 38.5px;
+}
+h1 small {
+  font-size: 24.5px;
+}
+body {
+  margin-top: 90px;
+}
+.header {
+  position: fixed;
+  top: 0;
+  left: 50%;
+  margin-left: -480px;
+  background-color: #fff;
+  border-bottom: 1px solid #ddd;
+  padding-top: 10px;
+  z-index: 10;
+}
+.footer {
+  color: #ddd;
+  font-size: 12px;
+  text-align: center;
+  margin-top: 20px;
+}
+.footer a {
+  color: #ccc;
+  text-decoration: underline;
+}
+.the-icons {
+  font-size: 14px;
+  line-height: 24px;
+}
+.switch {
+  position: absolute;
+  right: 0;
+  bottom: 10px;
+  color: #666;
+}
+.switch input {
+  margin-right: 0.3em;
+}
+.codesOn .i-name {
+  display: none;
+}
+.codesOn .i-code {
+  display: inline;
+}
+.i-code {
+  display: none;
+}
+@font-face {
+      font-family: 'nifi-icon-font';
+      src: url('./font/nifi-icon-font.eot?83682963');
+      src: url('./font/nifi-icon-font.eot?83682963#iefix') format('embedded-opentype'),
+           url('./font/nifi-icon-font.woff?83682963') format('woff'),
+           url('./font/nifi-icon-font.ttf?83682963') format('truetype'),
+           url('./font/nifi-icon-font.svg?83682963#nifi-icon-font') format('svg');
+      font-weight: normal;
+      font-style: normal;
+    }
+     
+     
+    .demo-icon
+    {
+      font-family: "nifi-icon-font";
+      font-style: normal;
+      font-weight: normal;
+      speak: none;
+     
+      display: inline-block;
+      text-decoration: inherit;
+      width: 1em;
+      margin-right: .2em;
+      text-align: center;
+      /* opacity: .8; */
+     
+      /* For safety - reset parent styles, that can break glyph codes*/
+      font-variant: normal;
+      text-transform: none;
+     
+      /* fix buttons height, for twitter bootstrap */
+      line-height: 1em;
+     
+      /* Animation center compensation - margins should be symmetric */
+      /* remove if not needed */
+      margin-left: .2em;
+     
+      /* You can be more comfortable with increased icons size */
+      /* font-size: 120%; */
+     
+      /* Font smoothing. That was taken from TWBS */
+      -webkit-font-smoothing: antialiased;
+      -moz-osx-font-smoothing: grayscale;
+     
+      /* Uncomment for 3D effect */
+      /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
+    }
+     </style>
+    <link rel="stylesheet" href="css/animation.css"><!--[if IE 7]><link rel="stylesheet" href="css/nifi-icon-font-ie7.css"><![endif]-->
+    <script>
+      function toggleCodes(on) {
+        var obj = document.getElementById('icons');
+        
+        if (on) {
+          obj.className += ' codesOn';
+        } else {
+          obj.className = obj.className.replace(' codesOn', '');
+        }
+      }
+      
+    </script>
+  </head>
+  <body>
+    <div class="container header">
+      <h1>
+        nifi-icon-font
+         <small>font demo</small>
+      </h1>
+      <label class="switch">
+        <input type="checkbox" onclick="toggleCodes(this.checked)">show codes
+      </label>
+    </div>
+    <div id="icons" class="container">
+      <div class="row">
+        <div title="Code: 0xe800" class="the-icons span3"><i class="demo-icon icon-compass">&#xe800;</i> <span class="i-name">icon-compass</span><span class="i-code">0xe800</span></div>
+        <div title="Code: 0xe801" class="the-icons span3"><i class="demo-icon icon-minus-squared-alt">&#xe801;</i> <span class="i-name">icon-minus-squared-alt</span><span class="i-code">0xe801</span></div>
+        <div title="Code: 0xe802" class="the-icons span3"><i class="demo-icon icon-bullseye">&#xe802;</i> <span class="i-name">icon-bullseye</span><span class="i-code">0xe802</span></div>
+        <div title="Code: 0xe803" class="the-icons span3"><i class="demo-icon icon-plus-squared-alt">&#xe803;</i> <span class="i-name">icon-plus-squared-alt</span><span class="i-code">0xe803</span></div>
+      </div>
+      <div class="row">
+        <div title="Code: 0xe804" class="the-icons span3"><i class="demo-icon icon-zoom-in">&#xe804;</i> <span class="i-name">icon-zoom-in</span><span class="i-code">0xe804</span></div>
+        <div title="Code: 0xe805" class="the-icons span3"><i class="demo-icon icon-zoom-out">&#xe805;</i> <span class="i-name">icon-zoom-out</span><span class="i-code">0xe805</span></div>
+        <div title="Code: 0xe806" class="the-icons span3"><i class="demo-icon icon-fighter-jet">&#xe806;</i> <span class="i-name">icon-fighter-jet</span><span class="i-code">0xe806</span></div>
+        <div title="Code: 0xe807" class="the-icons span3"><i class="demo-icon icon-award">&#xe807;</i> <span class="i-name">icon-award</span><span class="i-code">0xe807</span></div>
+      </div>
+      <div class="row">
+        <div title="Code: 0xe808" class="the-icons span3"><i class="demo-icon icon-toggle-off">&#xe808;</i> <span class="i-name">icon-toggle-off</span><span class="i-code">0xe808</span></div>
+        <div title="Code: 0xe809" class="the-icons span3"><i class="demo-icon icon-toggle-on">&#xe809;</i> <span class="i-name">icon-toggle-on</span><span class="i-code">0xe809</span></div>
+        <div title="Code: 0xe80a" class="the-icons span3"><i class="demo-icon icon-play">&#xe80a;</i> <span class="i-name">icon-play</span><span class="i-code">0xe80a</span></div>
+        <div title="Code: 0xe80b" class="the-icons span3"><i class="demo-icon icon-stop">&#xe80b;</i> <span class="i-name">icon-stop</span><span class="i-code">0xe80b</span></div>
+      </div>
+      <div class="row">
+        <div title="Code: 0xe80c" class="the-icons span3"><i class="demo-icon icon-th">&#xe80c;</i> <span class="i-name">icon-th</span><span class="i-code">0xe80c</span></div>
+        <div title="Code: 0xe80d" class="the-icons span3"><i class="demo-icon icon-paste">&#xe80d;</i> <span class="i-name">icon-paste</span><span class="i-code">0xe80d</span></div>
+        <div title="Code: 0xe80e" class="the-icons span3"><i class="demo-icon icon-bus">&#xe80e;</i> <span class="i-name">icon-bus</span><span class="i-code">0xe80e</span></div>
+        <div title="Code: 0xe80f" class="the-icons span3"><i class="demo-icon icon-rocket">&#xe80f;</i> <span class="i-name">icon-rocket</span><span class="i-code">0xe80f</span></div>
+      </div>
+      <div class="row">
+        <div title="Code: 0xe810" class="the-icons span3"><i class="demo-icon icon-fire">&#xe810;</i> <span class="i-name">icon-fire</span><span class="i-code">0xe810</span></div>
+        <div title="Code: 0xe812" class="the-icons span3"><i class="demo-icon icon-brush-1">&#xe812;</i> <span class="i-name">icon-brush-1</span><span class="i-code">0xe812</span></div>
+      </div>
+    </div>
+    <div class="container footer">Generated by <a href="http://fontello.com">fontello.com</a></div>
+  </body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi/blob/6b571081/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/font/nifi-icon-font.eot
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/font/nifi-icon-font.eot b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/font/nifi-icon-font.eot
new file mode 100644
index 0000000..520e333
Binary files /dev/null and b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/icon-font/font/nifi-icon-font.eot differ