QString PWMatrixSearchPrompter::composeRichDoc() { Actor* modelProducer = qobject_cast<IntegralBusPort*>(target->getPort(MODEL_PORT))->getProducer(PWMatrixWorkerFactory::WMATRIX_SLOT.getId()); Actor* seqProducer = qobject_cast<IntegralBusPort*>(target->getPort(BasePorts::IN_SEQ_PORT_ID()))->getProducer(BaseSlots::DNA_SEQUENCE_SLOT().getId()); QString unsetStr = "<font color='red'>"+tr("unset")+"</font>"; QString seqName = tr("For each sequence from <u>%1</u>,").arg(seqProducer ? seqProducer->getLabel() : unsetStr); QString modelName = tr("with all profiles provided by <u>%1</u>,").arg(modelProducer ? modelProducer->getLabel() : unsetStr); QString resultName = getRequiredParam(NAME_ATTR); resultName = getHyperlink(NAME_ATTR, resultName); QString strandName; switch (getStrand(getParameter(BaseAttributes::STRAND_ATTRIBUTE().getId()).value<QString>())) { case 0: strandName = PWMatrixSearchWorker::tr("both strands"); break; case 1: strandName = PWMatrixSearchWorker::tr("direct strand"); break; case -1: strandName = PWMatrixSearchWorker::tr("complement strand"); break; } strandName = getHyperlink(BaseAttributes::STRAND_ATTRIBUTE().getId(), strandName); QString doc = tr("%1 search transcription factor binding sites (TFBS) %2." "<br>Recognize sites with <u>similarity %3%</u>, process <u>%4</u>." "<br>Output the list of found regions annotated as <u>%5</u>.") .arg(seqName) .arg(modelName) .arg(getHyperlink(SCORE_ATTR, getParameter(SCORE_ATTR).toInt())) .arg(strandName) .arg(resultName); return doc; }
QString SiteconWritePrompter::composeRichDoc() { IntegralBusPort *input = qobject_cast<IntegralBusPort*>(target->getPort(SITECON_IN_PORT_ID)); SAFE_POINT(NULL != input, "NULL input port", ""); QString from = getProducersOrUnset(SITECON_IN_PORT_ID, SiteconWorkerFactory::SITECON_SLOT.getId()); QString url = getScreenedURL(input, BaseAttributes::URL_OUT_ATTRIBUTE().getId(), BaseSlots::URL_SLOT().getId()); url = getHyperlink(BaseAttributes::URL_OUT_ATTRIBUTE().getId(), url); return tr("Save the profile(s) from <u>%1</u> to %2.").arg(from).arg(url); }
QString CollocationPrompter::composeRichDoc() { IntegralBusPort* input = qobject_cast<IntegralBusPort*>(target->getPort(BasePorts::IN_SEQ_PORT_ID())); Actor* seqProducer = input->getProducer(SEQ_SLOT); QString seqName = seqProducer ? tr(" sequence from <u>%1</u>").arg(seqProducer->getLabel()) : ""; QString annName = getProducers(BasePorts::IN_SEQ_PORT_ID(), FEATURE_TABLE_SLOT); if (!annName.isEmpty()) { annName = tr(" set of annotations from <u>%1</u>").arg(annName); } QString data; if (seqName.isEmpty() && annName.isEmpty()) { //return "<font color='red'>"+tr("unset")+"</font>"; } else if (!seqName.isEmpty() && !annName.isEmpty()) { data = tr("For each %1 and %2,").arg(seqName).arg(annName); } else { data = tr("For each %1%2,").arg(seqName).arg(annName); } QString annotations; QStringList names = annotations.split(QRegExp("\\W+"), QString::SkipEmptyParts).toSet().toList(); annotations = names.join(", "); if (annotations.isEmpty()) { annotations = getRequiredParam(ANN_ATTR); } annotations = getHyperlink(ANN_ATTR, annotations); int distance = getParameter(LEN_ATTR).toInt(); bool mode = getParameter(FIT_ATTR).toBool(); QString extra; if (mode) { extra = tr(" Annotations themselves may not span beyond the region."); } QString resultName = getHyperlink(NAME_ATTR, getRequiredParam(NAME_ATTR)); QString doc = tr("%1 look if <u>%2</u> annotations appear collocated within same region of length <u>%3</u>.%4" "<br>Output the list of found regions annotated as <u>%5</u>.") .arg(data) //sequence from Read Fasta 1 .arg(annotations) .arg(getHyperlink(LEN_ATTR, distance)) .arg(extra) .arg(resultName); return doc; }
QString ConservationPlotPrompter::composeRichDoc() { QString res = ""; Actor* annProducer = qobject_cast<IntegralBusPort*>(target->getPort(IN_PORT_DESCR))->getProducer(ANNOT_SLOT_ID); QString unsetStr = "<font color='red'>"+tr("unset")+"</font>"; QString annUrl = annProducer ? annProducer->getLabel() : unsetStr; QString file = getHyperlink(OUTPUT_FILE, getURL(OUTPUT_FILE)); QString assembly = getHyperlink(ASSEMBLY_VER, getURL(ASSEMBLY_VER)); res.append(tr("Uses annotations from <u>%1</u> as peak regions for conservation plot.").arg(annUrl)); res.append(tr(" Conservations scores from <u>%1</u>.").arg(assembly)); res.append(tr(" Outputs the result to <u>%1</u>").arg(file)); res.append("."); return res; }
/******************************* * FilterSequencePrompter *******************************/ QString PassFilterPrompter::composeRichDoc() { IntegralBusPort* input = qobject_cast<IntegralBusPort*>(target->getPort("in-data")); Actor* producer = input->getProducer(BaseSlots::TEXT_SLOT().getId()); QString unsetStr = "<font color='red'>"+tr("unset")+"</font>"; QString producerName = tr("<u>%1</u>").arg(producer ? producer->getLabel() : unsetStr); QString passVals = getRequiredParam(BaseSlots::TEXT_SLOT().getId()); passVals = getHyperlink(BaseSlots::TEXT_SLOT().getId(), passVals); QString res = tr("Filters input data from %1 by value(s) %2.").arg(producerName).arg(passVals); return res; }
/****************************** * RepeatPrompter ******************************/ QString RepeatPrompter::composeRichDoc() { IntegralBusPort* input = qobject_cast<IntegralBusPort*>(target->getPort(BasePorts::IN_SEQ_PORT_ID())); Actor* producer = input->getProducer(BaseSlots::DNA_SEQUENCE_SLOT().getId()); QString unsetStr = "<font color='red'>"+tr("unset")+"</font>"; QString producerName = tr(" from <u>%1</u>").arg(producer ? producer->getLabel() : unsetStr); // TODO extend ? QString resultName = getRequiredParam(NAME_ATTR); QString inverted = getParameter(INVERT_ATTR).toBool() ? tr("inverted") : tr("direct"); QString doc = tr("For each sequence%1, find <u>%2</u> repeats." "<br>Detect <u>%3% identical</u> repeats <u>not shorter than %4 bps</u>." "<br>Output the list of found regions annotated as <u>%5</u>.") .arg(producerName) //sequence from Read Fasta 1 .arg(getHyperlink(INVERT_ATTR, inverted)) .arg(getHyperlink(IDENTITY_ATTR, getParameter(IDENTITY_ATTR).toInt())) .arg(getHyperlink(LEN_ATTR, getParameter(LEN_ATTR).toInt())) .arg(getHyperlink(NAME_ATTR, resultName)); return doc; }
QString GenomeAlignerPrompter::composeRichDoc() { QString res = ""; Actor* readsProducer = qobject_cast<IntegralBusPort*>(target->getPort(IN_PORT_DESCR))->getProducer(READS_URL_SLOT_ID); QString unsetStr = "<font color='red'>"+tr("unset")+"</font>"; QString readsUrl = readsProducer ? readsProducer->getLabel() : unsetStr; QString genome = getHyperlink(REFERENCE_GENOME, getURL(REFERENCE_GENOME)); res.append(tr("Aligns reads from <u>%1</u> ").arg(readsUrl)); res.append(tr(" to reference genome <u>%1</u>.").arg(genome)); return res; }
BOOL AP_Win32Dialog_InsertHyperlink::_onInitDialog(HWND hWnd, WPARAM /*wParam*/, LPARAM /*lParam*/) { const XAP_StringSet* pSS = m_pApp->getStringSet(); // Update the caption setDialogTitle(pSS->getValue(AP_STRING_ID_DLG_InsertHyperlink_Title)); /* Localise controls*/ _DSX(INSERTHYPERLINK_BTN_OK, DLG_OK); _DSX(INSERTHYPERLINK_BTN_CANCEL, DLG_Cancel); _DS(INSERTHYPERLINK_LBL_MSG, DLG_InsertHyperlink_Msg); // initial data resetContent(AP_RID_DIALOG_INSERTHYPERLINK_LBX_LINK); UT_uint32 count = getExistingBookmarksCount(); for( UT_uint32 i = 0; i < count; i++) { addItemToList( AP_RID_DIALOG_INSERTHYPERLINK_LBX_LINK, getNthExistingBookmark( i ) ); } SetFocus(GetDlgItem(hWnd,AP_RID_DIALOG_INSERTHYPERLINK_EBX_LINK)); const gchar * hyperlink = getHyperlink(); if(hyperlink) { if(hyperlink[0]=='#') //ignore the anchor for internal bookmarks { setControlText(AP_RID_DIALOG_INSERTHYPERLINK_EBX_LINK, hyperlink+1); } else { setControlText(AP_RID_DIALOG_INSERTHYPERLINK_EBX_LINK, hyperlink); } selectControlText(AP_RID_DIALOG_INSERTHYPERLINK_EBX_LINK, 0, -1); } centerDialog(); return 0; // 0 because we called set focus }
QString GetFileListPrompter::composeRichDoc() { QString url = getHyperlink(URL_ATTR, getURL(URL_ATTR)); return tr("Gets paths of files: <u>%1</u>.") .arg(url); }
QString SiteconReadPrompter::composeRichDoc() { return tr("Read model(s) from <u>%1</u>.").arg(getHyperlink(BaseAttributes::URL_IN_ATTRIBUTE().getId(), getURL(BaseAttributes::URL_IN_ATTRIBUTE().getId()))); }
/***************************** * ORFPrompter *****************************/ QString ORFPrompter::composeRichDoc() { IntegralBusPort* input = qobject_cast<IntegralBusPort*>(target->getPort(BasePorts::IN_SEQ_PORT_ID())); Actor* producer = input->getProducer(BaseSlots::DNA_SEQUENCE_SLOT().getId()); QString unsetStr = "<font color='red'>"+tr("unset")+"</font>"; QString producerName = tr(" from <u>%1</u>").arg(producer ? producer->getLabel() : unsetStr); ORFAlgorithmSettings cfg; cfg.strand = getStrand(getParameter(BaseAttributes::STRAND_ATTRIBUTE().getId()).value<QString>()); cfg.minLen = getParameter(LEN_ATTR).toInt(); cfg.mustFit = getParameter(FIT_ATTR).toBool(); cfg.mustInit = getParameter(INIT_ATTR).toBool(); cfg.allowAltStart = getParameter(ALT_ATTR).toBool(); cfg.includeStopCodon = getParameter(ISC_ATTR).toBool(); QString extra; if (!cfg.mustInit) { QString anyLink = getHyperlink(INIT_ATTR, tr("starting with any codon")); extra += tr(", allow ORFs %1 other than terminator").arg(anyLink); } else if (cfg.allowAltStart) { QString altLink = getHyperlink(ALT_ATTR, tr("alternative start codons")); extra += tr(", take into account %1").arg(altLink); } if (cfg.mustFit) { QString mustFitLink = getHyperlink(FIT_ATTR, tr("ignore non-terminated")); extra += tr(", %1 ORFs").arg(mustFitLink); } QString strandName; switch (cfg.strand) { case ORFAlgorithmStrand_Both: strandName = ORFWorker::tr("both strands"); break; case ORFAlgorithmStrand_Direct: strandName = ORFWorker::tr("direct strand"); break; case ORFAlgorithmStrand_Complement: strandName = ORFWorker::tr("complement strand"); break; } strandName = getHyperlink(BaseAttributes::STRAND_ATTRIBUTE().getId(), strandName); QString resultName = getHyperlink(NAME_ATTR, getRequiredParam(NAME_ATTR)); QString transId = getParameter(ID_ATTR).toString(); QString ttName = AppContext::getDNATranslationRegistry()-> lookupTranslation(AppContext::getDNAAlphabetRegistry()->findById(BaseDNAAlphabetIds::NUCL_DNA_DEFAULT()), DNATranslationType_NUCL_2_AMINO, transId)->getTranslationName(); ttName = getHyperlink(ID_ATTR, ttName); QString doc = tr("For each nucleotide sequence%1, find ORFs in <u>%2</u> using the <u>%3</u>." "<br>Detect only ORFs <u>not shorter than %4 bps</u>%5." "<br>Output the list of found regions annotated as <u>%6</u>.") .arg(producerName) //sequence from Read Fasta 1 .arg(strandName) //both strands .arg(ttName) //Standard Genetic Code .arg(getHyperlink(LEN_ATTR, cfg.minLen)) //100 .arg(extra) // take into account alternative start codons. .arg(resultName); return doc; }
void AP_UnixDialog_InsertHyperlink::_constructWindowContents ( GtkWidget * vbox2 ) { const XAP_StringSet * pSS = m_pApp->getStringSet(); GtkWidget *label1; GtkWidget *label2; std::string s; pSS->getValueUTF8(AP_STRING_ID_DLG_InsertHyperlink_Msg,s); label1 = gtk_label_new (s.c_str()); gtk_widget_show (label1); gtk_box_pack_start (GTK_BOX (vbox2), label1, FALSE, FALSE, 3); m_entry = gtk_entry_new(); gtk_box_pack_start (GTK_BOX (vbox2), m_entry, FALSE, FALSE, 0); gtk_widget_show(m_entry); const gchar * hyperlink = getHyperlink(); if (hyperlink && *hyperlink) { if (*hyperlink == '#') { gtk_entry_set_text ( GTK_ENTRY(m_entry), hyperlink + 1) ; } else { gtk_entry_set_text ( GTK_ENTRY(m_entry), hyperlink ) ; } } // the bookmark list m_swindow = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (m_swindow),GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_show(m_swindow); gtk_box_pack_start (GTK_BOX (vbox2), m_swindow, TRUE, TRUE, 0); GtkListStore * store = gtk_list_store_new(1, G_TYPE_STRING); GtkTreeView * treeview; m_clist = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); treeview = GTK_TREE_VIEW(m_clist); gtk_tree_view_set_headers_visible(treeview, FALSE); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_BROWSE); GtkCellRenderer *renderer = GTK_CELL_RENDERER(gtk_cell_renderer_text_new()); GtkTreeViewColumn *col; col = gtk_tree_view_column_new_with_attributes("", renderer, "text", 0, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), col); //gtk_box_pack_start (GTK_BOX (vbox2), m_blist, FALSE, FALSE, 0); m_pBookmarks.clear(); for (int i = 0; i < static_cast<int>(getExistingBookmarksCount()); i++) { m_pBookmarks.push_back(getNthExistingBookmark(i)); } std::sort(m_pBookmarks.begin(), m_pBookmarks.end()); for (int i = 0; i < static_cast<int>(getExistingBookmarksCount()); i++) { GtkTreeIter iter; gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, 0, m_pBookmarks[i].c_str(), -1); } gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(m_swindow),m_clist); pSS->getValueUTF8(AP_STRING_ID_DLG_InsertHyperlink_TitleLabel, s); label2 = gtk_label_new(s.c_str()); gtk_widget_show(label2); gtk_box_pack_start(GTK_BOX(vbox2), label2, TRUE, TRUE, 3); m_titleEntry = gtk_entry_new(); gtk_box_pack_start(GTK_BOX(vbox2), m_titleEntry, FALSE, FALSE, 0); gtk_widget_show(m_titleEntry); const gchar * hyperlinkTitle = getHyperlinkTitle(); if (hyperlinkTitle && *hyperlinkTitle) { gtk_entry_set_text(GTK_ENTRY(m_titleEntry), hyperlinkTitle); } }