1 package jalview.ws2.operations;
4 import java.util.concurrent.CompletionStage;
6 import javax.swing.JMenu;
7 import javax.swing.JMenuItem;
9 import jalview.bin.Cache;
10 import jalview.gui.AlignFrame;
11 import jalview.gui.WsJobParameters;
12 import jalview.util.MessageManager;
13 import jalview.ws.params.ArgumentI;
14 import jalview.ws.params.ParamDatastoreI;
15 import jalview.ws.params.WsParamSetI;
16 import jalview.ws2.WebServiceI;
17 import jalview.ws2.gui.MenuEntryProviderI;
19 public class OperationStub extends AbstractOperation
22 public OperationStub(WebServiceI service, String typeName)
24 super(service, typeName);
28 public MenuEntryProviderI getMenuBuilder()
30 return this::buildMenu;
33 public void buildMenu(JMenu parent, AlignFrame frame)
36 var item = new JMenuItem(MessageManager.formatMessage(
37 "label.calcname_with_default_settings", getName()));
38 item.addActionListener((event) -> {
39 Cache.log.info(String.format("Starting service %s.", getName()));
45 var item = new JMenuItem(
46 MessageManager.getString("label.edit_settings_and_run"));
47 item.setToolTipText(MessageManager.getString(
48 "label.view_and_change_parameters_before_running_calculation"));
49 item.addActionListener((event) -> {
50 openEditParamsDialog(getParamStore(), null, null)
51 .thenAcceptAsync((arguments) -> {
52 if (arguments != null)
54 Cache.log.info(String.format("Starting service %s with custom parameters.", getName()));
63 private CompletionStage<List<ArgumentI>> openEditParamsDialog(
64 ParamDatastoreI paramStore, WsParamSetI preset,
65 List<ArgumentI> arguments)
67 WsJobParameters jobParams;
68 if (preset == null && arguments != null && arguments.size() > 0)
69 jobParams = new WsJobParameters(paramStore, preset, arguments);
71 jobParams = new WsJobParameters(paramStore, preset, null);
74 jobParams.setName(MessageManager.getString(
75 "label.adjusting_parameters_for_calculation"));
77 var stage = jobParams.showRunDialog();
78 return stage.thenApply((startJob) -> {
81 if (jobParams.getPreset() == null)
83 return jobParams.getJobParams();
87 return jobParams.getPreset().getArguments();