/**
  * Returns the content
  */
 public function getContents()
 {
     $q = new DataCube_Query($this->_owApp->selectedModel, $this->_titleHelperLimit, $this->_dimensionElementLimit);
     if (false === $q->containsDataCubeInformation()) {
         return false;
     }
     /**
      * Set paths
      */
     $basePath = $this->view->basePath = $this->_config->staticUrlBase . 'extensions/cubeviz/';
     $baseCssPath = $basePath . 'public/css/';
     $baseImagesPath = $basePath . 'public/images/';
     $baseJavascriptPath = $basePath . 'public/javascript/';
     /**
      * Including javascript files for this action
      */
     $this->view->headScript()->appendFile($baseJavascriptPath . 'libraries/CryptoJS_Md5.js', 'text/javascript')->appendFile($baseJavascriptPath . 'libraries/json2.js', 'text/javascript')->appendFile($baseJavascriptPath . 'libraries/underscore.js', 'text/javascript')->appendFile($baseJavascriptPath . 'libraries/underscore.string.js', 'text/javascript')->appendScript('_.mixin(_.str.exports());')->appendFile($basePath . 'ChartConfig.js', 'text/javascript');
     // If this module is in the "development" context
     if ('development' === $this->_privateConfig->get('context')) {
         $this->view->headScript()->appendFile($baseJavascriptPath . 'libraries/munit.js', 'text/javascript')->appendFile($baseJavascriptPath . 'Test.js', 'text/javascript')->appendFile($baseJavascriptPath . 'Main.js', 'text/javascript');
         // otherwise it is in "production" context
     } else {
         $this->view->headScript()->appendFile($baseJavascriptPath . 'Main-production.js', 'text/javascript');
     }
     /**
      * Including css files for this action
      */
     $this->view->headLink()->prependStylesheet($baseCssPath . 'foreign/FontAwesome/css/font-awesome.min.css')->prependStylesheet($baseCssPath . 'main.css')->prependStylesheet($baseCssPath . 'DataselectionModule/attribute.css')->prependStylesheet($baseCssPath . 'DataselectionModule/component.css')->prependStylesheet($baseCssPath . 'DataselectionModule/dataSelectionModule.css')->prependStylesheet($baseCssPath . 'DataselectionModule/dataSet.css')->prependStylesheet($baseCssPath . 'DataselectionModule/footer.css')->prependStylesheet($baseCssPath . 'DataselectionModule/measure.css')->prependStylesheet($baseCssPath . 'DataselectionModule/slice.css');
     // IE specific CSS for fontawesome
     if (strpos($_SERVER['HTTP_USER_AGENT'], '(compatible; MSIE ') !== FALSE) {
         $this->view->headLink()->appendStylesheet($baseCssPath . 'foreign/FontAwesome/css/font-awesome-ie7.min.css');
     }
     /**
      * Model information
      */
     $model = $this->_owApp->selectedModel;
     $modelIri = $model->getModelIri();
     $modelStore = $model->getStore();
     $serviceUrl = true === isset($_SESSION['ONTOWIKI']['serviceUrl']) ? $_SESSION['ONTOWIKI']['serviceUrl'] : null;
     CubeViz_ViewHelper::$isCubeVizDataselectionModuleLoaded = true;
     // init cubeVizApp
     $config = CubeViz_ViewHelper::initApp($this->view, $model, $this->_owApp->getConfig()->store->backend, $this->_privateConfig->get('context'), $modelIri, $serviceUrl, $this->_config->staticUrlBase, $baseImagesPath, $this->_request->getParam('cv_dataHash'), $this->_request->getParam('cv_uiHash'), $this->_titleHelperLimit, $this->_dimensionElementLimit);
     if (null !== $config) {
         $this->view->headScript()->appendScript('cubeVizApp._ = ' . json_encode($config, JSON_FORCE_OBJECT) . ';')->appendScript('cubeVizApp._.backend.chartConfig = CubeViz_ChartConfig;');
     }
     $this->view->translate = $this->_owApp->translate;
     /**
      * fill template with content and give generated HTML back
      */
     return $this->render('public/templates/cubeviz/DataselectionModule');
 }
 /**
  *
  */
 public function indexAction()
 {
     // In case no model was selected, it redirect to the root url of OntoWiki
     if (false === isset($this->_owApp->selectedModel)) {
         $this->_helper->redirector->gotoUrl('/');
         return;
     }
     /**
      * Set paths
      */
     $basePath = $this->view->basePath = $this->_config->staticUrlBase . 'extensions/cubeviz/';
     $baseJavascriptPath = $basePath . 'public/javascript/';
     $baseCssPath = $basePath . 'public/css/';
     $this->view->cubevizImagesPath = $baseImagesPath = $basePath . 'public/images/';
     $this->view->translate = $this->_owApp->translate;
     /**
      * Including javascript files for this action
      */
     // Libraries
     $this->view->headScript()->appendFile($baseJavascriptPath . 'libraries/javascriptStats-1.0.1.js', 'text/javascript')->appendFile($baseJavascriptPath . 'libraries/highcharts.js', 'text/javascript')->appendFile($baseJavascriptPath . 'libraries/highcharts-more.js', 'text/javascript');
     /**
      * Including css files for this action
      */
     $this->view->headLink()->prependStylesheet($baseCssPath . 'foreign/Bootstrap/bootstrap.min.css')->prependStylesheet($baseCssPath . '/main.css')->prependStylesheet($baseCssPath . '/IndexAction/exportArea.css')->prependStylesheet($baseCssPath . '/IndexAction/header.css')->prependStylesheet($baseCssPath . '/IndexAction/legend.css')->prependStylesheet($baseCssPath . '/IndexAction/visualization.css')->prependStylesheet($baseCssPath . '/IndexAction/visualizationSelector.css');
     /**
      * Load model information
      */
     $model = $this->_owApp->selectedModel;
     $modelIri = $model->getModelIri();
     $modelStore = $model->getStore();
     $modelInformation = CubeViz_ViewHelper::getModelInformation($modelStore, $model, $modelIri);
     $modelInformation['rdfs:label'] = true === isset($modelInformation['http://www.w3.org/2000/01/rdf-schema#label']) ? $modelInformation['http://www.w3.org/2000/01/rdf-schema#label']['content'] : $modelIri;
     $serviceUrl = true === isset($_SESSION['ONTOWIKI']['serviceUrl']) ? $_SESSION['ONTOWIKI']['serviceUrl'] : null;
     /**
      * Set view and some of its properties.
      */
     // fill title-field
     $this->view->placeholder('main.window.title')->set('Visualization for ' . $modelInformation['rdfs:label']);
     $on = $this->_owApp->getNavigation();
     $on->disableNavigation();
     // disable OntoWiki's Navigation
     CubeViz_ViewHelper::$isCubeVizIndexLoaded = true;
     // init cubeVizApp
     try {
         $config = CubeViz_ViewHelper::initApp($this->view, $model, $this->_owApp->getConfig()->store->backend, $this->_privateConfig->get('context'), $modelIri, $serviceUrl, $this->_config->staticUrlBase, $baseImagesPath, $this->_request->getParam('cv_dataHash'), $this->_request->getParam('cv_uiHash'), $modelInformation, $this->_titleHelperLimit, $this->_dimensionElementLimit);
     } catch (Exception $e) {
         $this->_redirect(OntoWiki::getInstance()->getConfig()->urlBase . "/cubeviz/modelinfo", array('code' => 302));
     }
     // load settings from the doap.n3
     $this->view->useExport = $this->_privateConfig->get('useExport');
     $this->view->uiUseDataSetInsteadOfModel = true !== $this->_privateConfig->get('uiUseDataSetInsteadOfModel') ? 'false' : 'true';
     if (null !== $config) {
         $this->view->headScript()->appendScript('cubeVizApp._ = ' . json_encode($config, JSON_FORCE_OBJECT) . ';')->appendScript('cubeVizApp._.backend.chartConfig = CubeViz_ChartConfig;');
     }
 }