47 string descr =
"Remove text ";
60 descr +=
"before " +
match;
65 if (args[
kAfter].IsTrue()) {
76 if (descr.find(
"before ") !=
NPOS) {
79 descr +=
"after " +
match;
109 bool modified = (new_target !=
m_Target);
120 descr +=
"publication ";
142 if (field.empty())
return function;
147 string rt_var =
"obj";
150 if (
function.
empty()) {
152 function +=
"(\"" + path +
"\", ";
156 function +=
"(" + rt_var +
", ";
159 else if (path.find(
',') !=
NPOS) {
160 vector<string> tokens;
165 string rt_var =
"obj";
176 function +=
"(" + rt_var +
", ";
180 bool found_constraint =
false;
183 if (found_constraint) {
184 function +=
"(" + rt_var +
", ";
187 function +=
"(\"" + rt_var +
".data.strs\", ";
211 left_del =
"eDigits";
214 left_del =
"eLetters";
227 right_del =
"eDigits";
230 right_del =
"eLetters";
245 funcs.reserve(funcs.size() + pub_fncs.size());
246 funcs.insert(funcs.end(), pub_fncs.begin(), pub_fncs.end());
268 x_LoadPanel(parent,
"RemoveOutsideStringSourceQual", args);
283 if (path.find(
',') !=
NPOS) {
284 vector<string> tokens;
289 string rt_var =
"obj";
297 function +=
"(\"" + path +
"\", ";
321 x_LoadPanel(parent,
"RemoveOutsideStringStrCommQual", args);
342 string rt_var =
"obj";
348 function +=
"(\"" + rt_var +
".label.str\", ";
351 function +=
"(\"" + rt_var +
".data.str\", ";
375 x_LoadPanel(parent,
"RemoveOutsideStringRNAQual", args);
393 bool modified = (new_target !=
m_Target);
422 function +=
"(\"gene\", " + gene_field +
", ";
426 if (path.find(
',') !=
NPOS) {
427 vector<string> tokens;
431 string rt_var =
"obj";
439 function +=
"(\"" + path +
"\", ";
464 x_LoadPanel(parent,
"RemoveOutsideStringProteinQual", args);
492 string rt_var =
"obj";
493 bool remove_constraint =
true;
496 if (res_function.empty()) {
498 function +=
"(\"" + path +
"\", ";
501 function += res_function;
503 function +=
"(" + rt_var +
", ";
508 function +=
"(\"" + path +
"\", ";
518 return { CMacroFunction_Resolve::GetFuncName(),
532 for (
size_t index = 0; index < 3; ++index) {
535 x_LoadPanel(parent,
"RemoveOutsideStringFeatureQual", args);
550 bool modified = (new_target !=
m_Target);
577 string rt_var =
"obj";
578 bool remove_constraint =
true;
581 if (
function.
empty()) {
583 function +=
"(\"" + path +
"\", ";
587 function +=
"(" + rt_var +
", ";
590 else if (path.find(
',') !=
NPOS) {
591 vector<string> tokens;
595 string rt_var =
"obj";
600 function +=
"(" + rt_var +
", ";
611 function +=
"(\"" + path +
"\", ";
EMacroFieldType m_FieldType
for actions such as appply/edit/etc.
vector< string > x_GetPubFunctions() const
static bool s_IsGeneQualifier(const string &field)
vector< string > GetFeatureTypes(bool for_removal=false, bool to_create=false, bool include_all=false) const
vector< string > GetRNATypes() const
string GetAsnPathToFieldName(const string &field, EMacroFieldType type, const string &target=kEmptyStr)
vector< string > GetncRNAClassTypes(bool include_any=true) const
static CMacroEditorContext & GetInstance()
vector< string > GetFeatQualifiers() const
const vector< string > & GetBsrcKeywords() const
vector< string > GetFieldNames(EMacroFieldType type) const
virtual void x_AddParamPanel(wxWindow *parent)
CRmvOutsideBsrcTreeItemData()
virtual const vector< string > & GetKeywords() const
virtual vector< string > GetFunctionNames() const
virtual string GetFunction(TConstraints &constraints) const
virtual bool UpdateTarget()
virtual string GetFunction(TConstraints &constraints) const
CRmvOutsideFeatQualTreeItemData()
virtual void x_AddParamPanel(wxWindow *parent)
virtual string GetVariables()
virtual string GetMacroDescription() const
virtual void x_AddParamPanel(wxWindow *parent)
CRmvOutsideProteinQualTreeItemData()
virtual string GetFunction(TConstraints &constraints) const
virtual string GetVariables()
virtual string GetMacroDescription() const
virtual vector< string > GetFunctionNames() const
virtual string GetMacroDescription() const
virtual bool UpdateTarget()
virtual string GetVariables()
virtual vector< string > GetFunctionNames() const
virtual string GetFunction(TConstraints &constraints) const
virtual void x_AddParamPanel(wxWindow *parent)
string x_GetMarkedTextFunction() const
CRmvOutsideQualTreeItemData(const string &description, EMacroFieldType type)
virtual void x_AddParamPanel(wxWindow *parent)
virtual bool UpdateTarget()
virtual vector< string > GetFunctionNames() const
virtual string GetFunction(TConstraints &constraints) const
CRmvOutsideRNAQualTreeItemData()
virtual string GetMacroDescription() const
virtual vector< string > GetFunctionNames() const
virtual void x_AddParamPanel(wxWindow *parent)
virtual string GetFunction(TConstraints &constraints) const
CRmvOutsideStrCommQualTreeItemData()
virtual string GetMacroDescription() const
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
void x_LoadPanel(wxWindow *parent, const string &panel_name, const TArgumentsVector &arguments)
unique_ptr< CMacroPanelLoader > m_Panel
constructed panel for specifying function arguments
vector< pair< string, string > > TConstraints
bool Empty(const CNcbiOstrstream &src)
static CTempString GetFuncName()
static CTempString GetFuncName()
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static list< string > & Split(const CTempString str, const CTempString delim, list< string > &arr, TSplitFlags flags=0, vector< SIZE_TYPE > *token_pos=NULL)
Split a string using specified delimiters.
static const string BoolToString(bool value)
Convert bool to string.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another string.
vector< macro::SArgMetaData > TArgumentsVector
CTempString UpdateTargetForFeatures(const string &feature, const string &qualifier, bool for_removal=false)
string GetResolveFuncForDBLink(const string &field, string &rt_var, TConstraints &constraints, bool &found_constraint)
void OnStructCommFieldChanged(CArgumentList &list, CArgument &arg)
bool MultipleValuesAllowed(const string &field)
void UpdateConstraintsForFeatures(TConstraints &constraints, const string &feature)
string GetStructCommQualDescr(const CArgumentList &arg_list)
string GetResolveFuncForMultiValuedQual(const string &field, const string &rt_var, TConstraints &constraints, bool remove_constraint)
string GetResolveFuncForQual(const string &container, const string &field, const string &rt_var, TConstraints &constraints, bool remove_constraint=true)
Generates the definition of rt_var based on input "field".
string GetUpdatemRNADescription(const CArgument &arg)
void OnProteinNameSingle(CArgumentList &list, CArgument &arg)
CTempString UpdateTargetForMolinfo(const string &molinfo_type)
string GetResolveFuncForGeneQuals(const string &container, const string &field, const string &rt_var, TConstraints &constraints, bool remove_constraint=true)
void OnAfterCheck(CArgumentList &list, CArgument &arg)
string GetDelimiterDescr(const string &del)
CTempString UpdateTargetForRnas(const string &rna_type)
void WrapInQuotes(string &str)
string GetEditableFieldForPair(const string &field, const string &rt_var, bool is_feature)
string GetResolveFuncForStrCommQual(const string &field, const string &field_name, const string &rt_var, TConstraints &constraints)
EMacroFieldType GetSourceTypeInSinglePanel(const CArgumentList &arg_list)
void OnRnaTypeChanged(CArgumentList &list, CArgument &arg)
void UpdateConstraintsForRnas(TConstraints &constraints, const CArgumentList &arg_list)
void UpdateConstraintsForMisc(TConstraints &constraints, const string &fieldname, const string &target)
void OnBeforeCheck(CArgumentList &list, CArgument &arg)
string GetResolveFuncForPubQual(const string &field, string &rt_var, TConstraints &constraints)
string GetUpdatemRNAVar(const CArgumentList &arg_list)
const TArgumentsVector & GetRmvOutsideArgs()
const string kDigitsRight
const string kLetterRight
const TArgumentsVector & GetDelimiterArgs()
const string kWholeWordRmv
const TArgumentsVector & GetOptionalArgs()
const TArgumentsVector & GetBsrcArgs()
const string kStrCommField
const string kCaseInsensRmv
constexpr bool empty(list< Ts... >) noexcept
const GenericPointer< typename T::ValueType > T2 value
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)
static int match(PCRE2_SPTR start_eptr, PCRE2_SPTR start_ecode, uint16_t top_bracket, PCRE2_SIZE frame_size, pcre2_match_data *match_data, match_block *mb)