[ONOS-3635] Implement List view for extended application properties

Change-Id: Ie8f985f9c2986857df92bcb47b5bdee876f37230
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationResource.java b/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationResource.java
index 398bfee..7601478 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationResource.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationResource.java
@@ -18,10 +18,15 @@
 import com.sun.jersey.multipart.FormDataParam;
 import org.onlab.rest.BaseResource;
 import org.onosproject.app.ApplicationAdminService;
+import org.onosproject.core.Application;
+import org.onosproject.core.ApplicationId;
 
 import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import java.io.IOException;
@@ -41,4 +46,13 @@
         return Response.ok().build();
     }
 
+    @Path("{name}/icon")
+    @GET
+    @Produces("image/png")
+    public Response getIcon(@PathParam("name") String name) throws IOException {
+        ApplicationAdminService service = get(ApplicationAdminService.class);
+        ApplicationId appId = service.getId(name);
+        Application app = service.getApplication(appId);
+        return Response.ok(app.icon()).build();
+    }
 }
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationViewMessageHandler.java
index 6f8eee9..80c1e75 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationViewMessageHandler.java
@@ -45,15 +45,18 @@
     private static final String STATE = "state";
     private static final String STATE_IID = "_iconid_state";
     private static final String ID = "id";
+    private static final String ICON = "icon";
     private static final String VERSION = "version";
+    private static final String CATEGORY = "category";
     private static final String ORIGIN = "origin";
     private static final String DESC = "desc";
+    private static final String URL = "url";
 
     private static final String ICON_ID_ACTIVE = "active";
     private static final String ICON_ID_INACTIVE = "appInactive";
 
     private static final String[] COL_IDS = {
-            STATE, STATE_IID, ID, VERSION, ORIGIN, DESC
+            STATE, STATE_IID, ID, ICON, VERSION, CATEGORY, ORIGIN, DESC, URL
     };
 
     @Override
@@ -99,9 +102,12 @@
             row.cell(STATE, state)
                 .cell(STATE_IID, iconId)
                 .cell(ID, id.name())
+                .cell(ICON, id.name())
                 .cell(VERSION, app.version())
+                .cell(CATEGORY, app.category())
                 .cell(ORIGIN, app.origin())
-                .cell(DESC, app.description());
+                .cell(DESC, app.description())
+                .cell(URL, app.url());
         }
     }