Author: paperwing
Date: 2012-05-22 14:35:35 -0700 (Tue, 22 May 2012)
New Revision: 29322
Modified:
csplugins/trunk/toronto/yuedong/app_manager/impl/app-impl/src/main/java/org/cytoscape/app/internal/action/AppManagerAction.java
csplugins/trunk/toronto/yuedong/app_manager/impl/app-impl/src/main/java/org/cytoscape/app/internal/ui/InstallFromStorePanel.java
Log:
App downloading is now done inside a Task object (on a separate thread) so the
UI is kept responsive while apps are downloaded and installed
Modified:
csplugins/trunk/toronto/yuedong/app_manager/impl/app-impl/src/main/java/org/cytoscape/app/internal/action/AppManagerAction.java
===================================================================
---
csplugins/trunk/toronto/yuedong/app_manager/impl/app-impl/src/main/java/org/cytoscape/app/internal/action/AppManagerAction.java
2012-05-22 21:20:34 UTC (rev 29321)
+++
csplugins/trunk/toronto/yuedong/app_manager/impl/app-impl/src/main/java/org/cytoscape/app/internal/action/AppManagerAction.java
2012-05-22 21:35:35 UTC (rev 29322)
@@ -65,7 +65,7 @@
public void actionPerformed(ActionEvent event) {
// Create and display the App Manager dialog
- AppManagerDialog appManagerDialog = new
AppManagerDialog(appManager, fileUtil, taskManager,
swingApplication.getJFrame(), true);
+ AppManagerDialog appManagerDialog = new
AppManagerDialog(appManager, fileUtil, taskManager,
swingApplication.getJFrame(), false);
}
}
Modified:
csplugins/trunk/toronto/yuedong/app_manager/impl/app-impl/src/main/java/org/cytoscape/app/internal/ui/InstallFromStorePanel.java
===================================================================
---
csplugins/trunk/toronto/yuedong/app_manager/impl/app-impl/src/main/java/org/cytoscape/app/internal/ui/InstallFromStorePanel.java
2012-05-22 21:20:34 UTC (rev 29321)
+++
csplugins/trunk/toronto/yuedong/app_manager/impl/app-impl/src/main/java/org/cytoscape/app/internal/ui/InstallFromStorePanel.java
2012-05-22 21:35:35 UTC (rev 29322)
@@ -86,8 +86,8 @@
this.parent = parent;
initComponents();
- taskManager.execute(new TaskIterator(new Task(){
-
+ taskManager.execute(new TaskIterator(new Task() {
+
// Obtain information for all available apps, then
append tag information
@Override
public void run(TaskMonitor taskMonitor) throws
Exception {
@@ -347,35 +347,53 @@
}
private void
installSelectedButtonActionPerformed(java.awt.event.ActionEvent evt) {
- Set<WebApp> selectedApps = getSelectedApps();
- WebQuerier webQuerier = appManager.getWebQuerier();
+ final Set<WebApp> selectedApps = getSelectedApps();
+ final WebQuerier webQuerier = appManager.getWebQuerier();
- for (WebApp webApp : selectedApps) {
- try {
- System.out.println("Download path: " +
appManager.getDownloadedAppsPath());
+ System.out.println("Download path: " +
appManager.getDownloadedAppsPath());
+
+ taskManager.execute(new TaskIterator(new Task() {
+
+ @Override
+ public void run(TaskMonitor taskMonitor) throws
Exception {
+ taskMonitor.setTitle("Installing App from App
Store");
- // Download app
- File appFile = webQuerier.downloadApp(webApp.getName(),
new File(appManager.getDownloadedAppsPath()));
+ double progress = 0;
+ double progressIncrement = 1.0 /
selectedApps.size();
- // Parse app
- App parsedApp =
appManager.getAppParser().parseApp(appFile);
-
- // Install app
- appManager.installApp(parsedApp);
-
- } catch (AppDownloadException e) {
- JOptionPane.showMessageDialog(parent, "Error
downloading app: " + e.getMessage(),
- "Error", JOptionPane.ERROR_MESSAGE);
- } catch (AppParsingException e) {
- JOptionPane.showMessageDialog(parent, "Error
parsing app: " + e.getMessage(),
- "Error", JOptionPane.ERROR_MESSAGE);
- } catch (AppInstallException e) {
- JOptionPane.showMessageDialog(parent, "Error
installing app: " + e.getMessage(),
- "Error", JOptionPane.ERROR_MESSAGE);
+ for (WebApp webApp : selectedApps) {
+
+
taskMonitor.setStatusMessage("Installing app: " + webApp.getFullName());
+
+ // Download app
+ File appFile =
webQuerier.downloadApp(webApp.getName(), new
File(appManager.getDownloadedAppsPath()));
+
+ if (appFile != null) {
+ // Parse app
+ App parsedApp =
appManager.getAppParser().parseApp(appFile);
+
+ // Install app
+
appManager.installApp(parsedApp);
+ } else {
+ // Log error: no download links were
found for app
+ System.out.println("Unable to find
download url for: " + webApp.getFullName());
+ }
+
+ progress += progressIncrement;
+ taskMonitor.setProgress(progress);
+ }
+
+
}
- }
- }
+ @Override
+ public void cancel() {
+ }
+
+ }));
+ }
+
+
private void resetButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.