public void run() { if (main.getBioPAXModel() == null) { MessageDialog.openError(main.getShell(), "Error!", "Load or query a BioPAX model first!"); return; } // open dialog CompartmentQueryParamWithEntitiesDialog dialog = new CompartmentQueryParamWithEntitiesDialog(main); options = dialog.open(options); if (!options.isCancel()) { options.setCancel(true); } else { return; } // Source and target node sets Set<String> source = new HashSet<String>(dialog.getSourceAddedCompartments()); Set<String> target = new HashSet<String>(dialog.getTargetAddedCompartments()); Set<BioPAXElement> result = QueryExecuter.runPathsFromTo( BioPAXUtil.getElementsAtLocations(main.getBioPAXModel(), source), BioPAXUtil.getElementsAtLocations(main.getBioPAXModel(), target), main.getBioPAXModel(), options.getLimitType() ? LimitType.NORMAL : LimitType.SHORTEST_PLUS_K, options.getLengthLimit()); viewAndHighlightResult(result, options.isCurrentView(), "Query Result"); }
/** * After creating the dialog box, initial values are assigned to the fields with data in opt * OptionsPack */ public void setInitialValues(QueryOptionsPack opt) { if (main.getPathwayGraph() == null) { newViewButton.setSelection(true); currentViewButton.setSelection(false); currentViewButton.setEnabled(false); opt.setCurrentView(false); } if (opt.isCurrentView()) { currentViewButton.setSelection(true); } else { newViewButton.setSelection(true); } lengthLimit.setText(String.valueOf(opt.getLengthLimit())); if (sourceST != null && opt.getSourceList() != null) { sourceST.symbolText.setText(opt.getOneStringSources()); } if (targetST != null && opt.getTargetList() != null) { targetST.symbolText.setText(opt.getOneStringTargets()); } if (downstreamButton != null) { // Downstream, Upstream or Both if (opt.isDownstream() && opt.isUpstream() && bothButton != null) { bothButton.setSelection(true); } else if (opt.isDownstream()) { downstreamButton.setSelection(true); } else if (opt.isUpstream()) { upstreamButton.setSelection(true); } } if (strictButton != null) { // Strict if (opt.isStrict()) { strictButton.setSelection(true); } } // Set both texts' values if (shortestPlusK != null) { shortestPlusK.setText(String.valueOf(opt.getShortestPlusKLimit())); } if (shortestPlusKButton != null) { shortestPlusKButton.setSelection(!opt.getLimitType()); } }
/** Create the dialog */ public AbstractQueryParamDialog(ChisioMain main, boolean forSIF) { super(main.getShell(), SWT.NONE); this.main = main; this.forSIF = forSIF; }