public Object run(ExecutionEvent event) throws ExecutionException { DBSelection dbSel = event == null ? null : new DBSelection(HandlerUtil.getCurrentSelection(event)); if (model == null) { ElementDBNode sel = dbSel.getSel(); if (sel instanceof InstanceDBNode) model = addSibling ? ((InstanceDBNode) sel).getInstDB().modelRoot() : dbSel.getModel(); else if (sel instanceof ModelDBNode) model = ((ModelDBNode) sel).model(); } if (model == null) { ViewUtils.setErrorMessage("no model selected to add the instance to, request ignored"); return null; } Shell activeShell = ViewUtils.getTopShellActivePage(); if (!ToolsDesignLib.isEditable(model.getDb())) { MessageDialog.openError( activeShell, "Add model", "Attempting to add a new model to the library " + model.getDb().getName() + ". Only the work library is editable, all others are read-only"); return null; } SelectionDialogModel dialog = new SelectionDialogModel(activeShell, model.techno()); if (dialog.open() == Window.OK) { for (ModelDB m : dialog.getDataModel().getSelectedModels()) { DBJobParam param = new DBJobParam(); param.setSrcModel(m); param.setDstModel(model); InstanceAddDBJob job = new InstanceAddDBJob(param); job.launch(); } } model = null; return null; }
public Object execute(ExecutionEvent event) throws ExecutionException { DBSelection dbSel = new DBSelection(HandlerUtil.getCurrentSelection(event)); ElementDBNode sel = dbSel.getSel(); if (sel == null) { Logger.warn("nothing selected in the design browser, nothing to report"); return null; } String selName = (sel instanceof ModelDBNode) ? "/" : ((InstanceDBNode) sel).getInstPath(); MessageDialogWithToggle dialog = new MessageDialogWithToggle( HandlerUtil.getActiveShell(event), "Report type", null, "After clicking OK, the states of the current model are applied successively; " + "the currents found in each state are stored in a PowerPoint document ", MessageDialog.INFORMATION, new String[] {IDialogConstants.OK_LABEL, IDialogConstants.CANCEL_LABEL}, 0, "generate a power report instead", false); if (dialog.open() == Window.OK) { IScriptService interpreter = ScriptRegistry.instance.interpreter(SCRIPT_LANGAGE.TCL); try { interpreter.eval( "package require ms_report; ms_report::ppa_report " + selName + " " + (dialog.getToggleState() ? "power" : "current"), SCR_LOG_TYPE.PRINT_TRANSCRIPT); } catch (ScriptServiceException e) { ViewUtils.setErrorMessage("report generation failed", true); } } return null; }