You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sa...@apache.org on 2011/12/19 20:13:58 UTC
svn commit: r1220903 - in
/incubator/airavata/trunk/modules/xbaya-gui/src/main:
java/org/apache/airavata/xbaya/gui/ java/org/apache/airavata/xbaya/menues/
java/org/apache/airavata/xbaya/menues/run/ resources/images/menu/
Author: samindaw
Date: Mon Dec 19 19:13:58 2011
New Revision: 1220903
URL: http://svn.apache.org/viewvc?rev=1220903&view=rev
Log:
Stop button + menu to stop a running workflow
Added:
incubator/airavata/trunk/modules/xbaya-gui/src/main/resources/images/menu/stop.png (with props)
Modified:
incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/gui/XBayaGUI.java
incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/menues/MenuIcons.java
incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/menues/run/RunMenuItem.java
Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/gui/XBayaGUI.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/gui/XBayaGUI.java?rev=1220903&r1=1220902&r2=1220903&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/gui/XBayaGUI.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/gui/XBayaGUI.java Mon Dec 19 19:13:58 2011
@@ -373,7 +373,6 @@ public class XBayaGUI implements EventLi
public void addWorkflowTabChangeListener(ChangeListener listener){
graphTabbedPane.addChangeListener(listener);
tabChangeListeners.add(listener);
-
}
public void removeWorkflowTabChangeListener(ChangeListener listener){
Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/menues/MenuIcons.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/menues/MenuIcons.java?rev=1220903&r1=1220902&r2=1220903&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/menues/MenuIcons.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/menues/MenuIcons.java Mon Dec 19 19:13:58 2011
@@ -31,6 +31,7 @@ public class MenuIcons {
public static final ImageIcon NEW_ICON = SwingUtil.createImageIcon("menu/new2.png");
public static final ImageIcon RUN_ICON = SwingUtil.createImageIcon("menu/play4.png");
+ public static final ImageIcon STOP_ICON = SwingUtil.createImageIcon("menu/stop.png");
public static final ImageIcon MONITOR_PAUSE_ICON = SwingUtil.createImageIcon("menu/pause_monitor1.png");
public static final ImageIcon MONITOR_RESUME_ICON = SwingUtil.createImageIcon("menu/resume_monitoring1.png");;
public static final ImageIcon JCR_ICON = SwingUtil.createImageIcon("jcr-repo.png");;
Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/menues/run/RunMenuItem.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/menues/run/RunMenuItem.java?rev=1220903&r1=1220902&r2=1220903&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/menues/run/RunMenuItem.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/menues/run/RunMenuItem.java Mon Dec 19 19:13:58 2011
@@ -31,6 +31,8 @@ import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
+import javax.swing.event.MenuEvent;
+import javax.swing.event.MenuListener;
import org.apache.airavata.xbaya.XBayaEngine;
import org.apache.airavata.xbaya.event.Event;
@@ -77,6 +79,7 @@ public class RunMenuItem implements Eve
private static final Logger logger = LoggerFactory.getLogger(RunMenuItem.class);
private static final String EXECUTE_ACTIONS = "run_actions";
+ private static final String EXECUTE_MONITOR_ACTIONS = "monitor_actions";
private XBayaToolBar toolBar;
@@ -85,6 +88,10 @@ public class RunMenuItem implements Eve
private ToolbarButton pauseMonitorButton;
private ToolbarButton resumeMonitorButton;
+
+ private JMenuItem stopWorkflowItem;
+
+ private ToolbarButton stopWorkflowButton;
/**
* Constructs a WorkflowMenu.
@@ -99,6 +106,7 @@ public class RunMenuItem implements Eve
monitor.addEventListener(this);
monitor.getConfiguration().addEventListener(this);
XBayaToolBar.setGroupOrder(EXECUTE_ACTIONS, 5);
+ XBayaToolBar.setGroupOrder(EXECUTE_MONITOR_ACTIONS, 6);
}
/**
@@ -119,14 +127,18 @@ public class RunMenuItem implements Eve
this.configMonitorItem = createConfigMonitoring();
this.resumeMonitoringItem = createResumeMonitoring();
this.pauseMonitoringItem = createPauseMonitoring();
- this.resetMonitoringItem = createStopMonitoring();
+ this.resetMonitoringItem = createResetMonitoring();
+ stopWorkflowItem = createStopWorkflow();
runMenu = new JMenu("Run");
runMenu.setMnemonic(KeyEvent.VK_R);
runMenu.add(launchDynamicWorkflowItem);
runMenu.add(launchXBayaInterpreterItem);
-
+
+ runMenu.addSeparator();
+ runMenu.add(stopWorkflowItem);
+
runMenu.addSeparator();
runMenu.add(launchGridChemWorkflowItem);
runMenu.add(launchAndSaveInGridChemWorkflowItem);
@@ -138,8 +150,19 @@ public class RunMenuItem implements Eve
runMenu.add(this.resetMonitoringItem);
runMenu.add(this.configMonitorItem);
- setupMonitors();
+ runMenu.addMenuListener(new MenuListener(){
+ @Override
+ public void menuCanceled(MenuEvent e) {}
+ @Override
+ public void menuDeselected(MenuEvent e) {}
+ @Override
+ public void menuSelected(MenuEvent e) {
+ stopWorkflowItem.setEnabled(isWorkflowRunning());
+ }
+ });
+ setupMonitors();
+ startStopButtonStateUpdater();
}
private void setupMonitors() {
@@ -195,7 +218,7 @@ public class RunMenuItem implements Eve
item.addActionListener(action);
boolean valid = this.engine.getMonitor().getConfiguration().isValid();
item.setVisible(valid);
- resumeMonitorButton = getToolBar().addToolbarButton(EXECUTE_ACTIONS,item.getText(), MenuIcons.MONITOR_RESUME_ICON, "Resume monitoring", action,3);
+ resumeMonitorButton = getToolBar().addToolbarButton(EXECUTE_MONITOR_ACTIONS,item.getText(), MenuIcons.MONITOR_RESUME_ICON, "Resume monitoring", action,4);
resumeMonitorButton.setEnabled(false);
return item;
}
@@ -216,23 +239,37 @@ public class RunMenuItem implements Eve
};
item.addActionListener(action);
item.setVisible(false);
- pauseMonitorButton = getToolBar().addToolbarButton(EXECUTE_ACTIONS,item.getText(), MenuIcons.MONITOR_PAUSE_ICON, "Pause monitoring", action,2);
+ pauseMonitorButton = getToolBar().addToolbarButton(EXECUTE_MONITOR_ACTIONS,item.getText(), MenuIcons.MONITOR_PAUSE_ICON, "Pause monitoring", action,3);
pauseMonitorButton.setEnabled(false);
return item;
}
- private JMenuItem createStopMonitoring() {
+ private JMenuItem createResetMonitoring() {
JMenuItem item = new JMenuItem("Reset monitoring");
item.setMnemonic(KeyEvent.VK_R);
item.addActionListener(new AbstractAction() {
public void actionPerformed(ActionEvent event) {
- cleanup();
+ engine.getMonitor().reset();
}
});
item.setVisible(false);
return item;
}
+ private JMenuItem createStopWorkflow() {
+ JMenuItem item = new JMenuItem("Stop running workflow",MenuIcons.STOP_ICON);
+ item.setMnemonic(KeyEvent.VK_S);
+ AbstractAction action = new AbstractAction() {
+ public void actionPerformed(ActionEvent event) {
+ cleanup();
+ }
+ };
+ item.addActionListener(action);
+ item.setEnabled(false);
+ stopWorkflowButton = getToolBar().addToolbarButton(EXECUTE_ACTIONS,item.getText(), MenuIcons.STOP_ICON, "Stop workflow", action,2);
+ stopWorkflowButton.setEnabled(item.isEnabled());
+ return item;
+ }
private JMenuItem createRunJythonWorkflowItem() {
JMenuItem menuItem = new JMenuItem("Run workflow as Jython...");
@@ -258,7 +295,7 @@ public class RunMenuItem implements Eve
private DynamicWorkflowRunnerWindow window;
public void actionPerformed(ActionEvent event) {
- if (engine.getWorkflowInterpreter()!=null){
+ if (isWorkflowRunning()){
if (JOptionPane.showConfirmDialog(null, "A previous workflow excution data needs to be cleared before launching another workflow. Do you wish to continue?", "Run Dynamic Workflow", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){
cleanup();
}else{
@@ -335,7 +372,6 @@ public class RunMenuItem implements Eve
*/
public void eventReceived(Event event) {
Type type = event.getType();
- lastEvent=event;
if (type.equals(Event.Type.MONITOR_CONFIGURATION_CHANGED)) {
MonitorConfiguration configuration = this.engine.getMonitor().getConfiguration();
boolean valid = configuration.isValid();
@@ -371,5 +407,27 @@ public class RunMenuItem implements Eve
}
}
- private Event lastEvent=null;
+ private boolean isWorkflowRunning() {
+ return engine.getWorkflowInterpreter()!=null;
+ }
+
+ private void startStopButtonStateUpdater() {
+ Thread t=new Thread(){
+ @Override
+ public void run() {
+ while(true){
+ stopWorkflowButton.setEnabled(engine.getWorkflowInterpreter()!=null);
+ if (engine.getWorkflowInterpreter()==null){
+ pauseMonitorButton.setEnabled(false);
+ resumeMonitorButton.setEnabled(false);
+ }
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ }
+ }
+ }
+ };
+ t.start();
+ }
}
\ No newline at end of file
Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/resources/images/menu/stop.png
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/resources/images/menu/stop.png?rev=1220903&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/airavata/trunk/modules/xbaya-gui/src/main/resources/images/menu/stop.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream