def __init__(self, grammarController, state): self.grammarController = grammarController self.state = state self._view = EditStateView(self, self.state) self.log = logging.getLogger(__name__)
class EditStateController(object): """Manages the edition of a state""" def __init__(self, grammarController, state): self.grammarController = grammarController self.state = state self._view = EditStateView(self, self.state) self.log = logging.getLogger(__name__) @property def view(self): return self._view def displayErrorMessage(self, errorMessage): if errorMessage is None: self._view.errorImage.hide() self._view.errorLabel.set_label("") self._view.errorLabel.hide() else: self._view.errorLabel.set_label(errorMessage) self._view.errorLabel.show() self._view.errorImage.show() def cancelButton_clicked_cb(self, event): """Callback executed when the user clicks on the cancel button""" self._view.destroy() def createButton_clicked_cb(self, event): currentProject = self.grammarController.getCurrentProject() """callback executed when the user clicks on the create button""" initialState = self._view.initialStateCheckButton.get_active() stateName = self._view.nameEntry.get_text() automata = currentProject.getGrammar().getAutomata() errorMessage = None # verify initialState is valid if not initialState and automata.getInitialState() == self.state: errorMessage = _("You cannot deactivate an initial state.") self.displayErrorMessage(errorMessage) return # verify the name of the state is unique found = False if automata is not None: for state in automata.getStates(): if state.getName() == stateName and state != self.state: found = True break if found: errorMessage = _("A state already has this name, please specify another one") self.displayErrorMessage(errorMessage) return self.state.setName(stateName) if initialState: automata.setInitialState(self.state) self._view.destroy() self.grammarController.restart() def run(self): self._view.run()
class EditStateController(object): """Manages the edition of a state""" def __init__(self, grammarController, state): self.grammarController = grammarController self.state = state self._view = EditStateView(self, self.state) self.log = logging.getLogger(__name__) @property def view(self): return self._view def displayErrorMessage(self, errorMessage): if errorMessage is None: self._view.errorImage.hide() self._view.errorLabel.set_label("") self._view.errorLabel.hide() else: self._view.errorLabel.set_label(errorMessage) self._view.errorLabel.show() self._view.errorImage.show() def cancelButton_clicked_cb(self, event): """Callback executed when the user clicks on the cancel button""" self._view.destroy() def createButton_clicked_cb(self, event): currentProject = self.grammarController.getCurrentProject() """callback executed when the user clicks on the create button""" initialState = self._view.initialStateCheckButton.get_active() stateName = self._view.nameEntry.get_text() automata = currentProject.getGrammar().getAutomata() errorMessage = None # verify initialState is valid if not initialState and automata.getInitialState() == self.state: errorMessage = _("You cannot deactivate an initial state.") self.displayErrorMessage(errorMessage) return # verify the name of the state is unique found = False if automata is not None: for state in automata.getStates(): if state.getName() == stateName and state != self.state: found = True break if found: errorMessage = _( "A state already has this name, please specify another one") self.displayErrorMessage(errorMessage) return self.state.setName(stateName) if initialState: automata.setInitialState(self.state) self._view.destroy() self.grammarController.restart() def run(self): self._view.run()