Search in sources :

Example 6 with WebApp

use of org.cytoscape.app.internal.net.WebApp in project cytoscape-impl by cytoscape.

the class InstallAppsPanel method fillResultsTree.

private void fillResultsTree(Set<WebApp> webApps) {
    if (webApps == null) {
        resultsTree.setModel(new DefaultTreeModel(null));
        resultsTreeApps = new HashSet<WebApp>();
        return;
    }
    appManager.getWebQuerier().checkWebAppInstallStatus(webApps, appManager);
    List<WebApp> sortedApps = new LinkedList<WebApp>(webApps);
    // Sort apps by alphabetical order
    Collections.sort(sortedApps, new Comparator<WebApp>() {

        @Override
        public int compare(WebApp webApp, WebApp other) {
            return (webApp.getName().compareToIgnoreCase(other.getName()));
        }
    });
    DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
    DefaultMutableTreeNode treeNode;
    for (WebApp webApp : sortedApps) {
        if (webApp.getCorrespondingApp() != null && webApp.getCorrespondingApp().getStatus() == AppStatus.INSTALLED) {
            webApp.setAppListDisplayName(webApp.getFullName() + " (Installed)");
        } else {
            webApp.setAppListDisplayName(webApp.getFullName());
        }
        treeNode = new DefaultMutableTreeNode(webApp);
        root.add(treeNode);
    }
    resultsTree.setModel(new DefaultTreeModel(root));
    resultsTreeApps = new HashSet<WebApp>(webApps);
}
Also used : DefaultMutableTreeNode(javax.swing.tree.DefaultMutableTreeNode) DefaultTreeModel(javax.swing.tree.DefaultTreeModel) LinkedList(java.util.LinkedList) WebApp(org.cytoscape.app.internal.net.WebApp)

Example 7 with WebApp

use of org.cytoscape.app.internal.net.WebApp in project cytoscape-impl by cytoscape.

the class InstallAppsPanel method buildTagsTree.

private void buildTagsTree() {
    WebQuerier webQuerier = appManager.getWebQuerier();
    // Get all available apps and tags
    Set<WebApp> availableApps = webQuerier.getAllApps();
    Set<WebQuerier.AppTag> availableTags = webQuerier.getAllTags();
    if (availableApps == null || availableTags == null)
        return;
    List<WebQuerier.AppTag> sortedTags = new LinkedList<WebQuerier.AppTag>(availableTags);
    Collections.sort(sortedTags, new Comparator<WebQuerier.AppTag>() {

        @Override
        public int compare(AppTag tag, AppTag other) {
            return other.getCount() - tag.getCount();
        }
    });
    DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
    DefaultMutableTreeNode allAppsTreeNode = new DefaultMutableTreeNode("all apps" + " (" + availableApps.size() + ")");
    root.add(allAppsTreeNode);
    DefaultMutableTreeNode collectionsTreeNode = new DefaultMutableTreeNode("collections (0)");
    DefaultMutableTreeNode appsByTagTreeNode = new DefaultMutableTreeNode("apps by tag");
    for (final WebQuerier.AppTag appTag : sortedTags) {
        if (appTag.getName().equals("collections"))
            collectionsTreeNode.setUserObject(appTag);
        else
            appsByTagTreeNode.add(new DefaultMutableTreeNode(appTag));
    }
    root.add(collectionsTreeNode);
    root.add(appsByTagTreeNode);
    tagsTree.setModel(new DefaultTreeModel(root));
    // tagsTree.expandRow(2);
    currentSelectedAppTag = null;
    hasTagTreeBeenPopulated = true;
}
Also used : AppTag(org.cytoscape.app.internal.net.WebQuerier.AppTag) DefaultMutableTreeNode(javax.swing.tree.DefaultMutableTreeNode) AppTag(org.cytoscape.app.internal.net.WebQuerier.AppTag) DefaultTreeModel(javax.swing.tree.DefaultTreeModel) WebQuerier(org.cytoscape.app.internal.net.WebQuerier) LinkedList(java.util.LinkedList) WebApp(org.cytoscape.app.internal.net.WebApp)

Example 8 with WebApp

use of org.cytoscape.app.internal.net.WebApp in project cytoscape-impl by cytoscape.

the class CheckForUpdatesPanel method checkUpdates.

private void checkUpdates() {
    final Set<App> appsToCheckUpdates = appManager.getInstalledApps();
    taskManager.execute(new TaskIterator(new Task() {

        @Override
        public void run(TaskMonitor taskMonitor) throws Exception {
            taskMonitor.setTitle("Checking for updates");
            WebQuerier webQuerier = appManager.getWebQuerier();
            String siteName, siteUrl;
            double progress = 0.0;
            // Obtain apps listing from each site if not done so
            for (DownloadSite downloadSite : downloadSitesManager.getDownloadSites()) {
                siteName = downloadSite.getSiteName();
                siteUrl = downloadSite.getSiteUrl();
                taskMonitor.setStatusMessage("Obtaining apps listing from " + siteName + "(" + siteUrl + ") ...");
                taskMonitor.setProgress(progress);
                progress += 1.0 / (downloadSitesManager.getDownloadSites().size() + 1);
                webQuerier.setCurrentAppStoreUrl(siteUrl);
                Set<WebApp> webApps = webQuerier.getAllApps();
            }
            taskMonitor.setStatusMessage("Reading listings for new versions");
            // We're 98% done.
            taskMonitor.setProgress(0.98);
            updateManager.checkForUpdates(appsToCheckUpdates);
        }

        @Override
        public void cancel() {
        // TODO Auto-generated method stub
        }
    }));
}
Also used : App(org.cytoscape.app.internal.manager.App) WebApp(org.cytoscape.app.internal.net.WebApp) Task(org.cytoscape.work.Task) InstallUpdatesTask(org.cytoscape.app.internal.task.InstallUpdatesTask) InstallAppsFromWebAppTask(org.cytoscape.app.internal.task.InstallAppsFromWebAppTask) ObservableTask(org.cytoscape.work.ObservableTask) TaskIterator(org.cytoscape.work.TaskIterator) TaskMonitor(org.cytoscape.work.TaskMonitor) DownloadSite(org.cytoscape.app.internal.ui.downloadsites.DownloadSite) WebQuerier(org.cytoscape.app.internal.net.WebQuerier) WebApp(org.cytoscape.app.internal.net.WebApp)

Example 9 with WebApp

use of org.cytoscape.app.internal.net.WebApp in project cytoscape-impl by cytoscape.

the class InstallUpdatesTask method run.

@Override
public void run(TaskMonitor taskMonitor) throws Exception {
    taskMonitor.setTitle("Install Updates");
    taskMonitor.setTitle("");
    List<WebApp> webApps = new ArrayList<WebApp>();
    for (Update update : updates) {
        webApps.add(update.getWebApp());
    }
    insertTasksAfterCurrentTask(new InstallAppsFromWebAppTask(webApps, appManager, false));
}
Also used : ArrayList(java.util.ArrayList) Update(org.cytoscape.app.internal.net.Update) WebApp(org.cytoscape.app.internal.net.WebApp)

Example 10 with WebApp

use of org.cytoscape.app.internal.net.WebApp in project cytoscape-impl by cytoscape.

the class ListAvailableTask method getResults.

@SuppressWarnings({ "unchecked" })
@Override
public <R> R getResults(Class<? extends R> type) {
    if (type.equals(JSONResult.class)) {
        JSONResult res = () -> {
            StringBuilder stringBuilder = new StringBuilder("[");
            int count = webAppList.size();
            int index = 0;
            for (WebApp app : webAppList) {
                stringBuilder.append("{\"appName\": \"" + app.getName() + "\",");
                stringBuilder.append("\"description\": " + Utils.quote(app.getDescription()) + ",");
                if (app.getDetails() != null)
                    stringBuilder.append("\"details\": " + Utils.quote(app.getDetails()) + "}");
                else
                    stringBuilder.append("\"details\": \"\"}");
                index++;
                if (index < count)
                    stringBuilder.append(",");
            }
            stringBuilder.append("]");
            // System.out.println(stringBuilder.toString());
            return stringBuilder.toString();
        };
        return (R) res;
    } else if (type.equals(String.class)) {
        List<String> appList = new ArrayList<String>(webAppList.size());
        Map<String, WebApp> appMap = new HashMap<String, WebApp>();
        for (WebApp app : webAppList) {
            appList.add(app.getFullName().toLowerCase());
            appMap.put(app.getFullName().toLowerCase(), app);
        }
        Collections.sort(appList);
        String list = "";
        for (String app : appList) {
            WebApp thisApp = appMap.get(app);
            list += "name: " + thisApp.getFullName() + ", version: " + getVersion(thisApp) + "\n";
        }
        return (R) list;
    } else if (type.equals(List.class)) {
        List<String> list = new ArrayList<>();
        for (WebApp app : webAppList) {
            list.add(app.getFullName());
        }
        return (R) list;
    }
    return null;
}
Also used : JSONResult(org.cytoscape.work.json.JSONResult) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List) HashMap(java.util.HashMap) Map(java.util.Map) WebApp(org.cytoscape.app.internal.net.WebApp)

Aggregations

WebApp (org.cytoscape.app.internal.net.WebApp)12 ArrayList (java.util.ArrayList)4 HashMap (java.util.HashMap)3 LinkedList (java.util.LinkedList)3 DefaultMutableTreeNode (javax.swing.tree.DefaultMutableTreeNode)3 App (org.cytoscape.app.internal.manager.App)3 WebQuerier (org.cytoscape.app.internal.net.WebQuerier)3 TaskIterator (org.cytoscape.work.TaskIterator)3 File (java.io.File)2 List (java.util.List)2 DefaultTreeModel (javax.swing.tree.DefaultTreeModel)2 InstallAppsFromWebAppTask (org.cytoscape.app.internal.task.InstallAppsFromWebAppTask)2 Task (org.cytoscape.work.Task)2 TaskMonitor (org.cytoscape.work.TaskMonitor)2 Map (java.util.Map)1 Set (java.util.Set)1 TreePath (javax.swing.tree.TreePath)1 DownloadStatus (org.cytoscape.app.internal.net.DownloadStatus)1 Update (org.cytoscape.app.internal.net.Update)1 Release (org.cytoscape.app.internal.net.WebApp.Release)1