RheiaLogger* RheiaLoggerFactory::BuildLogger( const wxString& type, const wxString& WXUNUSED(name) ) { RheiaRegisteredLoggersMap::iterator rit = m_registeredLoggers.find(type); if( rit == m_registeredLoggers.end() ) return m_nullloger; RheiaLogger* logger = rit->second.createLogger(); logger->SetType(type); return logger; }
void RheiaLoggerManager::ClearLog( const wxString& name ) { RheiaLogger* logger = GetLogger( name ); if( logger == m_nullloger ) return; if( !name.IsEmpty() ) { /*** activate the page in the book or recreate it if it does not exists */ RheiaInfoPaneManager* ip = RheiaInfoPaneManager::Get(m_parent); if( !ip->PageExists(name) ) ip->AddPage( name , m_activelog ); ip->ActivatePage( name ); } logger->Clear(); }
void RheiaLoggerManager::InitializeEnvironment() { // /************************************************************************* // * Create the log window // *************************************************************************/ //#if wxHAS_TEXT_WINDOW_STREAM // LogWindow = new wxTextCtrl( Book, wxID_ANY, _("This is the log window\n"), wxDefaultPosition, // wxDefaultSize, wxNO_BORDER | wxTE_RICH | wxTE_READONLY | wxTE_MULTILINE ); // redirector = new wxStreamToTextRedirector( LogWindow ); //#else // LogWindow = new wxStreamedTextCtrl( Book, wxID_ANY, _("This is the log window\n"), wxDefaultPosition, // wxDefaultSize, wxNO_BORDER | wxTE_RICH | wxTE_READONLY | wxTE_MULTILINE ); // redirector = new wxStreamToTextRedirector( (wxStreamedTextCtrl*) LogWindow , std::cout ); //#endif // std::cout << "Standard cout stream redirected to the log window..." << std::endl; // // // Set user profile book configuration // RheiaConfigurationManager *icfg = RheiaManager::Get()->GetConfigurationManager(_T("log_manager")); // // /* Now sets the log font size */ // int FontSize = (int) icfg->ReadInt(_T("/aspect/log_font_size"), 8); // wxTextCtrl *iText = LogWindow; // wxFont font = iText->GetFont(); // font.SetPointSize( FontSize ); // iText->SetFont( font ); // // for(size_t i = 0; i < max_logs; ++i) // { // slot[i].index = i; // slot[i].log = &g_null_log; // } // // SetLog(new RheiaTextCtrlLogger, app_log); // SetLog(new RheiaStdoutLogger, stdout_log); // SetLog(new RheiaTextCtrlLogger, debug_log); // slot[app_log].title = _T("Rheia"); // slot[debug_log].title = _T("Rheia Debug"); // slot[stdout_log].title = _T("stdout"); // // wxString path = RheiaStandardPaths::DataDirectoryGlobal() + _T("/images/edit_16x16.png"); // defaultBitmap = RheiaLoadBitmap(path, wxBITMAP_TYPE_PNG); // // wxRegisterId(baseID + num_pages); // for(int i = 0; i < num_pages; ++i) // { // page[i] = Page(); // } // // wxWindow* log; // // for(size_t i = app_log; i < ::max_logs; ++i) // { // if((log = Slot(i).GetLogger()->CreateControl(Book))) // AddLogger(Slot(i).GetLogger(), log, Slot(i).title, Slot(i).icon); // } // // /************************************************************************* // * Add the log window to the page // *************************************************************************/ // Book->AddPage( LogWindow , _("Logs") , false , defaultBitmap ); /*** * Global loggers shall now be registered * Create standard RheiaLoggers name Rheia Log, Rheia Debug Log */ RheiaLogger* log = RheiaLoggerFactory::Get()->BuildLogger( wxT("TimeTextLogger") , wxT("Rheia Log") ); if( log != NULL ) { AddLogger(log,wxT("Rheia Log")); log->Log( wxT("Rheia Log initialized ...") , RheiaLogging::success ); log->Log( wxT("You will find here all standard Rheia Logging Info ...") , RheiaLogging::info ); SetActiveLogger( wxT("Rheia Log") ); } //#if defined( RHEIA_DEBUG ) || defined( _DEBUG ) RheiaLogger* debuglog = RheiaLoggerFactory::Get()->BuildLogger( wxT("TimeTextLogger") , wxT("Rheia Debug Log") ); if( debuglog != NULL ) { AddLogger(debuglog,wxT("Rheia Debug Log")); debuglog->Log( wxT("Rheia Debug Log initialized ...") , RheiaLogging::success ); } //#endif if( m_parent ) { m_parent->PushEventHandler( this ); RheiaFrameEventsManager::Get(m_parent)->RegisterEventMethod(RheiaEVT_FRAME_CLOSING, new RheiaEventFunctor<RheiaLoggerManager>(this, RheiaFrameEventHandler(RheiaLoggerManager::OnCloseFrame))); } }
RheiaMainFrame::RheiaMainFrame(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style): RheiaManagedFrame(parent, id, title, pos, size, style) { BuildMenu(); /* First build the aui components */ BuildAui(); /* now create the info window */ wxAuiNotebook* book = RheiaInfoPaneManager::Get(this)->CreateWindow(this); RheiaInfoPaneManager::Get(this)->BuildMenu( m_menuBar ); m_layout->AddPane( book , wxAuiPaneInfo(). Name(wxT("InfoPane")).Caption(_("Information")). BestSize(600,500).MinSize(wxSize(100,100)).MaximizeButton(true). MinimizeButton(true). Bottom().Layer(0)); /* now create the info window */ book = RheiaLeftPaneManager::Get(this)->CreateWindow(this); RheiaLeftPaneManager::Get(this)->BuildMenu( m_menuBar ); m_layout->AddPane( book , wxAuiPaneInfo(). Name(wxT("ManagementPane")).Caption(_("Management")). BestSize(300,600).MinSize(wxSize(100,100)).MaximizeButton(true). MinimizeButton(true). Left().Layer(1)); /*** Now add the workspace manager to the left pane's manager */ RheiaLeftPaneManager::Get(this)->AddPage( wxT("Workspaces") , RheiaWorkspaceManager::Get(this) ); RheiaWorkspaceManager::Get(this)->BuildMenu( m_menuBar ); RheiaLoggerManager::Get(this)->InitializeEnvironment(); RheiaLoggerManager::Get(this)->BuildMenu(m_menuBar); RheiaLogger* log = RheiaLoggerManager::Get(this)->GetRheiaDebugLogger(); log->Log( wxT("RheiaMainFrame::Registering Rheia Events..."), RheiaLogging::info ); RheiaEditorManager::Get(this)->BuildMenu( m_menuBar ); /* RheiaEditorPropertyPanel* m_pppanel = new RheiaEditorPropertyPanel(this,NULL); m_layout->AddPane( m_pppanel , wxAuiPaneInfo(). Name(wxT("ManagementPane")).Caption(_("Editor Configuration")). BestSize(300,600).MinSize(wxSize(100,100)). Right().Layer(1));*/ /*** Build toolbars */ wxAuiToolBar* prjtb = RheiaWorkspaceManager::Get(this)->BuildProjectsToolBar(this); RheiaToolBarManager::Get(this)->AddToolBar(wxT("Projects"),prjtb); wxAuiToolBar* wksptb = RheiaWorkspaceManager::Get(this)->BuildToolBar(this); RheiaToolBarManager::Get(this)->AddToolBar(wxT("Workspaces"),wksptb); RheiaEditorManager::Get(this)->BuildToolBar( this ); // // RheiaInfoPaneManager::Get(this)->AddPage(wxT("Python console"), RheiaPythonConsoleManager::Get(this)); // RheiaPythonConsoleManager::Get(this)->BuildMenu(m_menuBar); // //// wxBitmap bmp = RheiaLoadBitmap(RheiaStandardPaths::DataDirectoryGlobal() + (_T("/share/rheia/images/rheia_24.jpg")) , wxBITMAP_TYPE_JPEG ); //// wxIcon icon; //// icon.CopyFromBitmap( bmp ); //// SetIcon( icon ); // /* First build the status bar */ log->Log( wxT("RheiaMainFrame::Building Rheia status bar..."), RheiaLogging::info); BuildStatusBar(); /* Displays a welcome message in the status bar */ #if wxUSE_STATUSBAR SetStatusText(_("Welcome to Rheia !")); #endif // wxUSE_STATUSBAR log->Log( wxT("RheiaMainFrame::Loading user profile..."), RheiaLogging::info); LoadLayout(); log->Log( wxT("RheiaMainFrame::Initializing package data base..."), RheiaLogging::info); RheiaPackageDBManager::Get(); log->Log( wxT("RheiaMainFrame::Checking for pending packages..."), RheiaLogging::info); RheiaPackageManager::Get()->InstallPendingPackages( true ); log->Log( wxT("RheiaMainFrame::Loading installed plugins..."), RheiaLogging::info); RheiaPluginManager::Get()->LoadAllPlugins(); RheiaPackageManager::Get()->BuildMenu( this , m_menuBar ); log->Log( wxT("RheiaMainFrame::Initializing package data base..."), RheiaLogging::info); RheiaPackageDBManager::Get(); log->Log( wxT("RheiaMainFrame::Checking for pending packages..."), RheiaLogging::info); RheiaPackageManager::Get()->InstallPendingPackages( true ); log->Log( wxT("RheiaMainFrame::Loading installed plugins..."), RheiaLogging::info); RheiaPluginManager::Get()->LoadAllPlugins(); RheiaFramePluginManager::Get(this)->LoadAllPlugins(); m_startpage = new RheiaStartPageContainer( this, wxT("nm_test_page.html") ); RheiaCenterPaneManager::Get(this)->AddPage( wxT("Start here") , m_startpage ); m_layout->Update(); RegisterEvents(); }