35 #include <wx/stattext.h>
36 #include <wx/msgdlg.h>
101 SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
107 GetSizer()->SetSizeHints(
this);
153 wxBoxSizer* itemBoxSizer2 =
new wxBoxSizer(wxVERTICAL);
154 itemCBulkCmdDlg1->SetSizer(itemBoxSizer2);
157 itemBoxSizer2->Add(
m_FeatureType, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
162 wxBoxSizer* itemBoxSizer4 =
new wxBoxSizer(wxHORIZONTAL);
163 itemBoxSizer2->Add(itemBoxSizer4, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
165 m_Extend5Btn =
new wxCheckBox( itemCBulkCmdDlg1,
wxID_ANY,
_(
"Extend partial 5'"), wxDefaultPosition, wxDefaultSize, 0 );
167 itemBoxSizer4->Add(
m_Extend5Btn, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
169 m_Extend3Btn =
new wxCheckBox( itemCBulkCmdDlg1,
wxID_ANY,
_(
"Extend partial 3'"), wxDefaultPosition, wxDefaultSize, 0 );
171 itemBoxSizer4->Add(
m_Extend3Btn, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
173 wxPanel *container1 =
new wxPanel( itemCBulkCmdDlg1,
wxID_ANY, wxDefaultPosition, wxSize(800,260), 0 );
176 wxBoxSizer* itemBoxSizer5 =
new wxBoxSizer(wxHORIZONTAL);
177 container1->SetSizer(itemBoxSizer5);
179 vector<CFieldNamePanel::EFieldType> field_types;
195 wxPanel *container2 =
new wxPanel( itemCBulkCmdDlg1,
wxID_ANY, wxDefaultPosition, wxSize(800,90), 0 );
196 itemBoxSizer2->Add(container2, 0, wxALIGN_LEFT|wxALL|
wxFIXED_MINSIZE, 0);
198 wxBoxSizer* itemBoxSizer6 =
new wxBoxSizer(wxHORIZONTAL);
199 container2->SetSizer(itemBoxSizer6);
205 itemBoxSizer2->Add(
m_OkCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
269 string field_name =
"";
283 if (objs.size() == 0) {
284 wxMessageBox(
wxT(
"No features found!"),
wxT(
"Error"),
285 wxOK | wxICON_ERROR,
NULL);
289 bool any_change =
false;
303 if (
f->IsSetData() &&
f->GetData().IsCdregion() &&
304 f->IsSetExcept_text() &&
NStr::Find(
f->GetExcept_text(),
"RNA editing") != string::npos)
317 edit::CLocationEditPolicy::Extend5(*new_feat, scope);
322 edit::CLocationEditPolicy::Extend3(*new_feat, scope);
332 if (retranslate_cmd) {
333 cmd->AddCommand(*retranslate_cmd);
343 wxMessageBox(
wxT(
"No effect!"),
wxT(
"Error"),
344 wxOK | wxICON_ERROR,
NULL);
415 new_feat->
Assign(
fi->GetOriginalFeature());
420 edit::CLocationEditPolicy::Extend3(*new_feat, scope);
422 edit::CLocationEditPolicy::Extend5(*new_feat, scope);
427 edit::CLocationEditPolicy::Extend5(*new_feat, scope);
429 edit::CLocationEditPolicy::Extend3(*new_feat, scope);
432 if (extend_up || extend_down)
@ eExtreme_Positional
numerical value
@ eExtreme_Biological
5' and 3'
#define ID_EFL_FEATURETYPE
bool IsGeneralIdProtPresent(objects::CSeq_entry_Handle tse)
objects::CSeq_entry_Handle m_TopSeqEntry
bool Create(wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE, const wxString &name=wxFrameNameStr)
bool GetTopLevelSeqEntryAndProcessor()
ICommandProccessor * m_CmdProccessor
void UpdateChildrenFeaturePanels(wxSizer *sizer)
~CExtendPartialFeatDlg()
Destructor.
virtual string GetErrorMessage()
static CRef< CCmdComposite > ExtendCDS(CSeq_entry_Handle seh)
wxCheckBox * m_Extend3Btn
COkCancelPanel * m_OkCancel
static bool ShowToolTips()
Should we show tooltips?
virtual CRef< CCmdComposite > GetCommand()
static bool Is3AtEndOfSeq(const CSeq_loc &loc, CBioseq_Handle bsh)
static bool Is5AtStartOfSeq(const CSeq_loc &loc, CBioseq_Handle bsh)
CFieldChoicePanel * m_FieldType
void Init()
Initialises member variables.
CExtendPartialFeatDlg()
Constructors.
bool Create(wxWindow *parent, wxWindowID id=10268, const wxString &caption=_("Extend Partial Features"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(900, 500), long style=wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX|wxTAB_TRAVERSAL)
Creation.
wxCheckBox * m_Extend5Btn
void ProcessUpdateFeatEvent(wxCommandEvent &event)
CStringConstraintPanel * m_StringConstraintPanel
void CreateControls()
Creates the controls and sizers.
CFeatureTypePanel * m_FeatureType
wxBitmap GetBitmapResource(const wxString &name)
Retrieves bitmap resources.
wxIcon GetIconResource(const wxString &name)
Retrieves icon resources.
virtual bool SetFieldName(const string &field)
virtual string GetFieldName(const bool subfield=false)
Returns the name of the field as selected in the panel.
void ListPresentFeaturesFirst(const objects::CSeq_entry_Handle &entry, vector< const objects::CFeatListItem * > *featlist=nullptr)
virtual string GetFieldName(const bool subfield=false)
Returns the name of the field as selected in the panel.
bool SetFieldType(CFieldNamePanel::EFieldType field_type, bool is_pair=false)
vector< CConstRef< CObject > > GetObjects(objects::CBioseq_Handle bsh)
namespace ncbi::objects::
CRef< edit::CStringConstraint > GetStringConstraint()
virtual void Execute(IEditCommand *command, wxWindow *window=0)=0
IWorkbench is the central interface in the application framework.
USING_SCOPE(ncbi::objects)
const string kPartialStart
#define EVT_UPDATE_FEATURE_LIST(id, fn)
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
bool IsPartialStart(ESeqLocExtremes ext) const
check start or stop of location for e_Lim fuzz
ENa_strand GetStrand(void) const
Get the location's strand.
TSeqPos GetStart(ESeqLocExtremes ext) const
Return start and stop positions of the seq-loc.
bool IsSetStrand(EIsSetStrand flag=eIsSetStrand_Any) const
Check if strand is set for any/all part(s) of the seq-loc depending on the flag.
bool IsPartialStop(ESeqLocExtremes ext) const
TSeqPos GetStop(ESeqLocExtremes ext) const
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
CSeq_feat_Handle GetSeq_featHandle(const CSeq_feat &feat, EMissing action=eMissing_Default)
TInst_Length GetInst_Length(void) const
CScope & GetScope(void) const
Get scope this handle belongs to.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static bool IsBlank(const CTempString str, SIZE_TYPE pos=0)
Check if a string is blank (has no text).
static SIZE_TYPE Find(const CTempString str, const CTempString pattern, ECase use_case=eCase, EDirection direction=eForwardSearch, SIZE_TYPE occurrence=0)
Find the pattern in the string.
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another string.
bool IsCdregion(void) const
Check if variant Cdregion is selected.
const TData & GetData(void) const
Get the Data member data.
bool IsSetProduct(void) const
product of process Check if a value has been assigned to Product data member.
ENa_strand
strand of nucleic acid
const struct ncbi::grid::netcache::search::fields::SIZE size
double f(double x_, const double &y_)
CRef< CCmdComposite > GetRetranslateCDSCommand(objects::CScope &scope, const objects::CSeq_feat &cds, bool create_general_only)