def on_wizard_finish(self, wizard): """ Called when the user finish the wizard @wizard: QWizard instance """ global PROJECT_TYPE ids = wizard.pageIds() page = wizard.page(ids[1]) path = unicode(page.txtPlace.text()) if not path: QMessageBox.critical(wizard, wizard.tr("Incorrect Location"), wizard.tr("The project couldn\'t be create")) return project = {} name = unicode(page.txtName.text()) project['name'] = name project['description'] = unicode(page.txtDescription.toPlainText()) project['license'] = unicode(page.cboLicense.currentText()) project['venv'] = unicode(page.vtxtPlace.text()) project["project-type"] = PROJECT_TYPE project["supported-extensions"] = SUPPORTED_EXTENSIONS path = os.path.join(path, name) tx_path = os.path.join(path, 'metamodel.tx') try: # Create initial folder structure file_manager.create_folder(path, add_init_file=True) json_manager.create_ninja_project(path, name, project) self.create_tx_init_file(tx_path) except file_manager.NinjaIOException as e: QMessageBox.critical(wizard, wizard.tr("Error"), str(e)) return False wizard._load_project(path)
def on_wizard_finish(self, wizard): global PROJECT_TYPE ids = wizard.pageIds() # Manipulate default data for NINJA-IDE projects page = wizard.page(ids[2]) path = unicode(page.txtPlace.text()) if not path: QtGui.QMessageBox.critical( self, self.tr("Incorrect Location"), self.tr("The project couldn\'t be create")) return project = {} name = unicode(page.txtName.text()) project['name'] = name project['project-type'] = PROJECT_TYPE project['description'] = unicode(page.txtDescription.toPlainText()) project['license'] = unicode(page.cboLicense.currentText()) project['venv'] = unicode(page.vtxtPlace.text()) # Manipulate plugin project data page = wizard.page(ids[1]) # Create a folder to contain all the project data (<path>/<name>/) path = os.path.join(path, name) file_manager.create_folder(path, add_init_file=False) # Create the .nja file json_manager.create_ninja_project(path, name, project) plugin_dict = self.create_descriptor(page, path) self.create_plugin_class(page, path, plugin_dict) # Load the project! wizard._load_project(path)
def file_changed(self): ''' Handles key pressed event ''' filename = self.editor_s.get_editor_path() fileType = self.get_file_type(filename) if not fileType == "py": text = self.editor_s.get_text() if text == "": if fileType == METAMODEL: self.graph_widget.add_label("Metamodel", 0) elif fileType == MODEL: self.graph_widget.add_label("Model", 1) else: name = file_manager.get_module_name(filename) if fileType == METAMODEL: newFileName = name + ".tx" elif fileType == MODEL: newFileName = name + ".ml" tmp_folder = os.path.join(PRJ_PATH, "temp") if not file_manager.folder_exists(tmp_folder): file_manager.create_folder(tmp_folder) f = open(os.path.join(tmp_folder, newFileName), 'w') f.write(text) f.flush() f.close() self._visualize(os.path.join(tmp_folder, newFileName))
def on_wizard_finish(self, wizard): global PROJECT_TYPE ids = wizard.pageIds() # Manipulate default data for NINJA-IDE projects page = wizard.page(ids[2]) path = unicode(page.txtPlace.text()) if not path: QMessageBox.critical(self, self.tr("Incorrect Location"), self.tr("The project couldn\'t be create")) return project = {} name = unicode(page.txtName.text()) project['name'] = name project['project-type'] = PROJECT_TYPE project['description'] = unicode(page.txtDescription.toPlainText()) project['license'] = unicode(page.cboLicense.currentText()) project['venv'] = unicode(page.vtxtPlace.text()) # Manipulate plugin project data page = wizard.page(ids[1]) # Create a folder to contain all the project data (<path>/<name>/) path = os.path.join(path, name) file_manager.create_folder(path, add_init_file=False) # Create the .nja file json_manager.create_ninja_project(path, name, project) plugin_dict = self.create_descriptor(page, path) self.create_plugin_class(page, path, plugin_dict) # Load the project! wizard._load_project(path)
def on_wizard_finish(self, wizard): global PROJECT_TYPE ids = wizard.pageIds() # Manipulate default data for NINJA-IDE projects page = wizard.page(ids[2]) place = str(page.txtPlace.text()) if place == '': QMessageBox.critical(self, 'Incorrect Location', 'The project couldn\'t be create') return folder = str(page.txtFolder.text()) path = file_manager.create_path(place, folder) if not file_manager.folder_exists(path): file_manager.create_folder(path) project = {} name = unicode(page.txtName.text()) project['name'] = name project['project-type'] = PROJECT_TYPE project['description'] = unicode(page.txtDescription.toPlainText()) project['license'] = unicode(page.cboLicense.currentText()) project['venv'] = unicode(page.vtxtPlace.text()) # Manipulate plugin project data page = wizard.page(ids[1]) json_manager.create_ninja_project(path, name, project) plugin_dict = self.create_descriptor(page, path) self.create_plugin_class(page, path, plugin_dict) # Load the project! wizard._load_project(path)
def _add_new_folder(self): item = self.currentItem() if item.parent() is None: pathForFolder = item.path else: pathForFolder = os.path.join(item.path, unicode(item.text(0))) result = QInputDialog.getText(self, self.tr("New Folder"), self.tr("Enter the Folder Name:")) folderName = unicode(result[0]) if result[1] and folderName.strip() != '': folderName = os.path.join(pathForFolder, folderName) file_manager.create_folder(folderName) name = file_manager.get_basename(folderName) subitem = ProjectItem(item, name, pathForFolder) subitem.setToolTip(0, name) subitem.setIcon(0, QIcon(resources.IMAGES['tree-folder']))
def _add_new_folder(self): item = self.currentItem() if item.parent() is None: pathForFolder = item.path else: pathForFolder = os.path.join(item.path, item.text(0)) result = QInputDialog.getText(self, self.tr("New Folder"), self.tr("Enter the Folder Name:")) folderName = result[0] if result[1] and folderName.strip() != '': folderName = os.path.join(pathForFolder, folderName) file_manager.create_folder(folderName) name = file_manager.get_basename(folderName) subitem = ProjectItem(item, name, pathForFolder) subitem.setToolTip(0, name) subitem.setIcon(0, QIcon(resources.IMAGES['tree-folder'])) self._refresh_project(item)
def create_plugin_class(self, page, path, plugin_dict): module = plugin_dict['module'] className = plugin_dict['class'] completed = False # Start the template content = TEMPLATE_PLUGIN_BEGIN % className if page.checkEditorS.checkState() == Qt.Checked: content += TEMPLATE_EDITOR_S completed = True if page.checkToolbarS.checkState() == Qt.Checked: content += TEMPLATE_TOOLBAR_S completed = True if page.checkMenuPluginS.checkState() == Qt.Checked: content += TEMPLATE_MENU_S completed = True if page.checkMiscS.checkState() == Qt.Checked: content += TEMPLATE_MISC_S completed = True if page.checkExplorerS.checkState() == Qt.Checked: content += TEMPLATE_EXPLORER_S completed = True if not completed: content += TEMPLATE_PASS_STATMENT content += TEMPLATE_PLUGIN_FINISH content = content # Create the folder file_manager.create_folder(os.path.join(path, module)) # Create the file fileName = os.path.join(os.path.join(path, module), module + '.py') # Write to the file file_manager.store_file_content(fileName, content) # Create the __init__.py with the imports! file_manager.create_init_file_complete(os.path.join(path, module))
def on_wizard_finish(self, wizard): ids = wizard.pageIds() page = wizard.page(ids[1]) place = unicode(page.txtPlace.text()) if not place: QMessageBox.critical(self, self.tr("Incorrect Location"), self.tr("The project couldn\'t be create")) return folder = unicode(page.txtFolder.text()).replace(' ', '_') path = os.path.join(place, folder) try: file_manager.create_folder(path) except: QMessageBox.critical(self, self.tr("Incorrect Location"), self.tr("The folder already exists.")) return project = {} name = unicode(page.txtName.text()) project['name'] = name project['description'] = unicode(page.txtDescription.toPlainText()) project['license'] = unicode(page.cboLicense.currentText()) project['venv'] = unicode(page.vtxtPlace.text()) json_manager.create_ninja_project(path, name, project) self._load_project(path)