/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package org.bridgedb.cytoscape.internal.task;
import javax.swing.JFrame;
import org.bridgedb.cytoscape.internal.IDMapperClientManager;
import org.bridgedb.cytoscape.internal.ui.BridgeDbDialog;
import org.bridgedb.cytoscape.internal.ui.IDMappingSourceConfigDialog;
import org.cytoscape.util.swing.FileUtil;
import org.cytoscape.util.swing.OpenBrowser;
import org.cytoscape.work.AbstractTask;
import org.cytoscape.work.TaskManager;
import org.cytoscape.work.TaskMonitor;
import org.cytoscape.work.Tunable;
/**
*
* @author gaoj
*/
public class OpenIDMappingResourceConfigDialogTask extends AbstractTask {
@Tunable(description="Application name (optional) for application-specific ID mapping resources"
+ " -- do not specify if use the globel resources", context="nogui")
public String appName = null;
private final TaskManager taskManager;
private final OpenBrowser openBrowser;
private final FileUtil fileUtil;
private final BridgeDbDialog parentDialog;
private final JFrame parentFrame;
private IDMappingSourceConfigDialog srcConfDialog;
public OpenIDMappingResourceConfigDialogTask(TaskManager taskManager, OpenBrowser openBrowser, FileUtil fileUtil, BridgeDbDialog parentDialog, JFrame parentFrame) {
this.taskManager = taskManager;
this.openBrowser = openBrowser;
this.fileUtil = fileUtil;
this.parentDialog = parentDialog;
this.parentFrame = parentFrame;
}
@Override
public void cancel() {
if (srcConfDialog!=null) {
srcConfDialog.setVisible(false);
srcConfDialog.dispose();
}
}
@Override
public void run(TaskMonitor taskMonitor) throws Exception {
taskMonitor.setTitle("Manager ID Mapping Resources");
try {
taskMonitor.setStatusMessage("Initializing...");
if (parentDialog!=null) {
srcConfDialog = new IDMappingSourceConfigDialog(
parentDialog, taskManager, openBrowser, fileUtil,
IDMapperClientManager.getIDMapperClientManager(appName),
false);
srcConfDialog.setLocationRelativeTo(parentDialog);
} else {
srcConfDialog = new IDMappingSourceConfigDialog(
parentFrame, taskManager, openBrowser, fileUtil,
IDMapperClientManager.getIDMapperClientManager(appName),
false);
srcConfDialog.setLocationRelativeTo(parentFrame);
}
srcConfDialog.setVisible(true);
taskMonitor.setProgress(1.00);
} catch (Exception e) {
taskMonitor.showMessage(TaskMonitor.Level.ERROR, "Failed to open BridgeDb config dialog.");
taskMonitor.setProgress(1.00);
e.printStackTrace();
}
}
}