ICommand::Handle UserRequestBuilder::buildActivateEpochRequest() const {
    checkCredentials();
    checkWorld();
    return mReqBuilder->buildActivateEpochRequest(
        mUsername, mPassword,
        mWorld
    );
}
void RemoteMachineMonitorDialogImpl::sl_okPushButtonClicked() {
    if (okPushButton->text() == OK_BUTTON_RUN) {
        RemoteMachineSettingsPtr s = getSelectedMachine();
        checkCredentials(s);
    }

    accept();
}
ICommand::Handle UserRequestBuilder::buildCreateEpochRequest (
    const std::string a_epoch_name ) const {
    checkCredentials();
    checkWorld();
    return mReqBuilder->buildCreateEpochRequest(
        mUsername, mPassword,
        mWorld,
        a_epoch_name
    );
}
void RemoteMachineMonitorDialogImpl::pingMachine( const RemoteMachineSettingsPtr& settings, QTreeWidgetItem * item ) {
    assert( NULL != settings && NULL != item );

    if (!checkCredentials(settings)) {
        return;
    }

    if( pingingItems.values().contains( item ) ) {
        rsLog.info(tr("Ping task is already active for machine: %1" ).arg(item->text(0)));
        return;
    }

    pingingItems.insert( settings, item );
    item->setIcon(2, PING_WAIT_FOR_RESPONSE);
    item->setIcon(3, PING_WAIT_FOR_RESPONSE);

    RetrieveRemoteMachineInfoTask * retrieveInfoTask = new RetrieveRemoteMachineInfoTask( settings );
    connect( retrieveInfoTask, SIGNAL( si_stateChanged() ), SLOT( sl_retrieveInfoTaskStateChanged() ) );
    AppContext::getTaskScheduler()->registerTopLevelTask( retrieveInfoTask );
}