GUI -- Added UiViewHidden subclass of UiView to allow for views that do not have an entry in the navigation panel.
- Added placeholder "flow" view.
Change-Id: I3a969d16baf608b132c10cfc7f154d0ce51c765e
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/MainNavResource.java b/web/gui/src/main/java/org/onosproject/ui/impl/MainNavResource.java
index 7cee7f9..be229d3 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/MainNavResource.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/MainNavResource.java
@@ -18,6 +18,7 @@
import org.onosproject.ui.UiExtension;
import org.onosproject.ui.UiExtensionService;
import org.onosproject.ui.UiView;
+import org.onosproject.ui.UiViewHidden;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@@ -71,7 +72,9 @@
StringBuilder sb = new StringBuilder("\n");
for (UiExtension extension : service.getExtensions()) {
for (UiView view : extension.views()) {
- sb.append(String.format(NAV_FORMAT, view.id(), view.label()));
+ if (!(view instanceof UiViewHidden)) {
+ sb.append(String.format(NAV_FORMAT, view.id(), view.label()));
+ }
}
}
return new ByteArrayInputStream(sb.toString().getBytes());
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java b/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
index f5a7ec8..2f1a2e2 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
@@ -28,6 +28,7 @@
import org.onosproject.ui.UiExtensionService;
import org.onosproject.ui.UiMessageHandlerFactory;
import org.onosproject.ui.UiView;
+import org.onosproject.ui.UiViewHidden;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -59,13 +60,15 @@
// Creates core UI extension
private static UiExtension createCoreExtension() {
- List<UiView> coreViews = of(new UiView("topo", "Topology View"),
+ List<UiView> coreViews = of(new UiView("topo", "Topology"),
new UiView("device", "Devices"),
+ new UiViewHidden("flow"),
new UiView("link", "Links"),
new UiView("host", "Hosts"),
new UiView("intent", "Intents"),
new UiView("app", "Applications"),
new UiView("cluster", "Cluster Nodes"));
+
UiMessageHandlerFactory messageHandlerFactory =
() -> ImmutableList.of(
new TopologyViewMessageHandler(),
@@ -76,6 +79,7 @@
new ApplicationViewMessageHandler(),
new ClusterViewMessageHandler()
);
+
return new UiExtension(coreViews, messageHandlerFactory, "core",
UiExtensionManager.class.getClassLoader());
}
diff --git a/web/gui/src/main/webapp/app/view/flow/flow.css b/web/gui/src/main/webapp/app/view/flow/flow.css
new file mode 100644
index 0000000..7166e57
--- /dev/null
+++ b/web/gui/src/main/webapp/app/view/flow/flow.css
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ ONOS GUI -- Flow View -- CSS file
+ */
+
+#ov-flow td {
+}
\ No newline at end of file
diff --git a/web/gui/src/main/webapp/app/view/flow/flow.html b/web/gui/src/main/webapp/app/view/flow/flow.html
new file mode 100644
index 0000000..9c1de12
--- /dev/null
+++ b/web/gui/src/main/webapp/app/view/flow/flow.html
@@ -0,0 +1,4 @@
+<!-- Host partial HTML -->
+<div id="ov-flow">
+ <h1> Flows are here </h1>
+</div>
diff --git a/web/gui/src/main/webapp/app/view/flow/flow.js b/web/gui/src/main/webapp/app/view/flow/flow.js
new file mode 100644
index 0000000..0436a3e
--- /dev/null
+++ b/web/gui/src/main/webapp/app/view/flow/flow.js
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ ONOS GUI -- Flow View Module
+ */
+
+(function () {
+ 'use strict';
+
+ angular.module('ovFlow', [])
+ .controller('OvFlowCtrl',
+ ['$log', '$scope', 'TableBuilderService',
+
+ function ($log, $scope, tbs) {
+ //tbs.buildTable({
+ // self: this,
+ // scope: $scope,
+ // tag: 'flow'
+ //});
+
+ $log.log('OvFlowCtrl has been created');
+ }]);
+}());
diff --git a/web/gui/src/main/webapp/index.html b/web/gui/src/main/webapp/index.html
index d90bdc8..a112c34 100644
--- a/web/gui/src/main/webapp/index.html
+++ b/web/gui/src/main/webapp/index.html
@@ -110,6 +110,7 @@
<script src="app/view/topo/topoTraffic.js"></script>
<script src="app/view/topo/topoToolbar.js"></script>
<script src="app/view/device/device.js"></script>
+ <script src="app/view/flow/flow.js"></script>
<script src="app/view/link/link.js"></script>
<script src="app/view/host/host.js"></script>
<script src="app/view/intent/intent.js"></script>
@@ -123,6 +124,7 @@
<!-- Builtin views stylesheets. -->
<link rel="stylesheet" href="app/view/topo/topo.css">
<link rel="stylesheet" href="app/view/device/device.css">
+ <link rel="stylesheet" href="app/view/flow/flow.css">
<link rel="stylesheet" href="app/view/link/link.css">
<link rel="stylesheet" href="app/view/host/host.css">
<link rel="stylesheet" href="app/view/intent/intent.css">
diff --git a/web/gui/src/main/webapp/onos.js b/web/gui/src/main/webapp/onos.js
index 5a4f9f5..d478a2a 100644
--- a/web/gui/src/main/webapp/onos.js
+++ b/web/gui/src/main/webapp/onos.js
@@ -38,6 +38,7 @@
// {INJECTED-VIEW-IDS-START}
'topo',
'device',
+ 'flow',
'host',
'app',
'intent',