def test_change_zoom(self): self.diagram_control.change_zoom(System.ZOOM_ORIGINAL) self.diagram_control.change_zoom(System.ZOOM_IN) self.diagram_control.change_zoom(System.ZOOM_OUT) diagram_control = DiagramControl(None) diagram_control.change_zoom(System.ZOOM_ORIGINAL)
def add_block(self, block): """ This method add a block. Parameters: * **Types** (:class:`block<>`) Returns: * **Types** (:class:`boolean<boolean>`) """ diagram = self.main_window.work_area.get_current_diagram() if diagram is None: return False new_block = BlockModel(block) new_block = deepcopy(new_block) new_block = Block(diagram, new_block) if not DiagramControl(diagram).add_block(new_block): message = "Block language is different from diagram language.\n" +\ "Diagram is expecting to generate " + diagram.language + \ " code while block is writen in " + block.language Dialog().message_dialog("Error", message, self.main_window) return None diagram.redraw() return new_block
def export_diagram(self): """ This method exports the diagram. """ diagram = self.main_window.work_area.get_current_diagram() if diagram is None: return while True: name = Dialog().save_dialog(self.main_window, title=_("Export diagram as png"), filename=diagram.file_name + ".png", filetype="png") if name is None: return if name.find(".png") == -1: name = name + ".png" if Dialog().confirm_overwrite(name, self.main_window): break result, message = DiagramControl(diagram).export_png(name) if not result: Dialog().message_dialog("Error", message, self.main_window)
def create_diagram_control(self, diagram=None): if diagram is None: diagram = self.create_diagram() diagram_control = DiagramControl(diagram) diagram_control.connectors = [] diagram_control.language = "language" return diagram_control
def save(self, save_as=False): """ This method save the file. """ diagram = self.main_window.work_area.get_current_diagram() if diagram is None: return if diagram.file_name is "Untitled" or save_as: while True: name = Dialog().save_dialog(self.main_window, title=_("Save Diagram"), filename=diagram.file_name, filetype="mscd") if name and not name.endswith("mscd"): name = (("%s" + ".mscd") % name) if Dialog().confirm_overwrite(name, self.main_window): diagram.set_file_name(name) break result, message = False, "" if diagram.file_name is not None: if len(diagram.file_name) > 0: result, message = DiagramControl(diagram).save() if not result: Dialog().message_dialog("Error", message, self.main_window)
def export_diagram(self): """ This method exports the diagram. """ diagram = self.main_window.work_area.get_current_diagram() if diagram is None: return False while True: name = SaveDialog(self.main_window, title=_("Export diagram as png"), filename=System.get_user_dir() + "/" + diagram.file_name + ".png", filetype="png").run() if name is None: return if name.find(".png") == -1: name = name + ".png" if name is not None and os.path.exists(name) is True: msg = _("File exists. Overwrite?") result = ConfirmDialog(msg, self.main_window).run() if result == Gtk.ResponseType.OK: break result, message = DiagramControl(diagram).export_png(name) if not result: MessageDialog("Error", message, self.main_window).run()
def redo(self): """ Redo a modification. """ diagram = self.main_window.work_area.get_current_diagram() if diagram is None: return False DiagramControl(diagram).redo()
def run(self, code=None): """ This method runs the code. """ diagram = self.main_window.work_area.get_current_diagram() if diagram is None: return DiagramControl(diagram).get_code_template().run(code=code)
def delete(self): """ This method delete a block. """ diagram = self.main_window.work_area.get_current_diagram() if diagram is None: return False DiagramControl(diagram).delete()
def cut(self): """ This method cut a block on work area. """ diagram = self.main_window.work_area.get_current_diagram() if diagram is None: return False DiagramControl(diagram).cut()
def view_source(self): """ This method view the source code. """ diagram = self.main_window.work_area.get_current_diagram() if diagram is None: return code = DiagramControl(diagram).get_code_template().generate_code() CodeWindow(self.main_window, code)
def open(self, file_name): """ This method open a file. """ diagram = Diagram(self.main_window) self.main_window.work_area.add_diagram(diagram) DiagramControl(diagram).load(file_name) diagram.set_modified(False) MainControl.add_recent_file(System.properties, file_name) self.main_window.menu.update_recent_file()
def __insert_comment(self, *args): """ This method monitors if the button delete was clicked. Parameters: * **args** """ comment = DiagramControl(self.diagram).add_comment() comment.move(int(float(self.x)), int(float(self.y)))
def test_align(self): for key in self.diagram.blocks: self.diagram.blocks[key].is_selected = True self.diagram_control.add_block(self.create_block()) self.diagram_control.align("BOTTOM") self.diagram_control.align("TOP") self.diagram_control.align("LEFT") self.diagram_control.align("RIGHT") diagram_control = DiagramControl(None) diagram_control.align("RIGHT")
def open(self, file_name): """ This method open a file. """ diagram = Diagram(self.main_window) self.main_window.work_area.add_diagram(diagram) DiagramControl(diagram).load(file_name) diagram.redraw() diagram.set_modified(False) self.set_recent_files(file_name)
def open(self, file_name): """ This method open a file. """ diagram = Diagram(self.main_window) self.main_window.work_area.add_diagram(diagram) if not DiagramControl(diagram).load(file_name): System.log("Problem Loading the Diagram") diagram.redraw() diagram.set_modified(False) self.set_recent_files(file_name)
def open(self, file_name): """ This method open a file. """ diagram = Diagram(self.main_window) result = DiagramControl(diagram).load(file_name) if result[0] is None: self.message_dialog = MessageDialog("Error", result[1], self.main_window) self.message_dialog.run() return diagram = result[0] System.add_recent_files(file_name)
def add_comment(self, comment=None): """ This method add a block. Parameters: * **Types** (:class:`block<>`) Returns: * **Types** (:class:`boolean<boolean>`) """ DiagramControl(self.get_current_diagram()).add_comment(comment) return True
def test_undo_redo(self): self.diagram_control.redo() self.diagram_control.undo() self.diagram_control.redo() diagram_control = DiagramControl(None) diagram_control.undo() diagram_control.redo() while len(self.diagram.undo_stack) > 1: self.diagram.undo_stack.pop() self.diagram_control.undo() self.diagram_control.undo()
def test_add_block(self): block = self.create_block() diagram_control = DiagramControl(None) diagram_control.add_block(block) self.diagram_control.add_block(None) block = self.create_block() self.diagram_control.add_block(block) block.language = "None" self.diagram_control.add_block(block) self.diagram.language = None self.diagram_control.add_block(block)
def test_load(self): self.diagram.file_name = None result = self.diagram_control.load() self.assertFalse(result[0], None) file_name = get_temp_file() + ".mscd" self.diagram_control.save(file_name) result = self.diagram_control.load(file_name) os.remove(file_name) diagram_control_load = self.create_diagram_control() result = diagram_control_load.load() diagram_control = DiagramControl(None) diagram_control.load(None)
def add_comment(self, comment=None): """ This method add a block. Parameters: * **Types** (:class:`block<>`) Returns: * **Types** (:class:`boolean<boolean>`) """ diagram = self.main_window.work_area.get_current_diagram() if diagram is None: return False DiagramControl(diagram).add_comment(comment) return True
def open(self, file_name): """ This method open a file. """ diagram = Diagram(self.main_window) self.main_window.work_area.add_diagram(diagram) DiagramControl(diagram).load(file_name) diagram.redraw() diagram.set_modified(False) if file_name in System.properties.recent_files: System.properties.recent_files.remove(file_name) System.properties.recent_files.insert(0, file_name) if len(System.properties.recent_files) > 10: System.properties.recent_files.pop() self.main_window.menu.update_recent_files( System.properties.recent_files)
def save_source(self, code=None): """ This method saves the source code. """ diagram = self.main_window.work_area.get_current_diagram() if diagram is None: return generator = DiagramControl(diagram).get_code_template() while True: name = Dialog().save_dialog(self.main_window, filename = generator.get_dir_name() + \ generator.get_filename()) if Dialog().confirm_overwrite(name, self.main_window): diagram.set_file_name(name) break generator.save_code(name=name, code=code)
def add_block(self, block): """ This method add a block. Parameters: * **Types** (:class:`block<>`) Returns: * **Types** (:class:`boolean<boolean>`) """ result = DiagramControl(self.get_current_diagram()).add_block(block) if not result[0]: message = result[1] self.message_dialog = MessageDialog("Error", message, self.main_window) self.message_dialog.run() return None return block
def save(self, save_as=False): """ This method save the file. """ diagram = self.main_window.work_area.get_current_diagram() if diagram is None: return False if diagram.file_name == "Untitled" or save_as: while True: dialog = SaveDialog( self.main_window, title=_("Save Diagram"), filename=System.get_user_dir() + "/" + diagram.patch_name, filetype="*.mscd") name = dialog.run() if name is None: System.log("File not saved") return if not name.endswith("mscd"): name = (("%s" + ".mscd") % name) if os.path.exists(name) is True: msg = _("File exists. Overwrite?") result = ConfirmDialog(msg, self.main_window).run() if result == Gtk.ResponseType.CANCEL: continue diagram.file_name = name self.main_window.work_area.rename_diagram(diagram) break result, message = False, "" if diagram.file_name is not None: if len(diagram.file_name) > 0: result, message = DiagramControl(diagram).save() self.set_recent_files(diagram.file_name) if not result: MessageDialog("Error", message, self.main_window).run()
def save(self, save_as=False): """ This method save the file. """ diagram = self.get_current_diagram() if diagram is None: return False if diagram.file_name is "Untitled" or save_as: result, message = self.__select_save(diagram) if not result: return False result, message = DiagramControl(diagram).save() if not result: self.message_dialog = MessageDialog("Error", message, self.main_window) self.message_dialog.run() return False System.add_recent_files(diagram.file_name) self.main_window.work_area.rename_diagram(diagram) return True
def test_copy_delete_paste(self): for key in self.diagram.blocks: self.diagram.blocks[key].is_selected = True for key in self.diagram.blocks: self.diagram.blocks[key].language = "None" break for con in self.diagram.connectors: con.is_selected = True break for comment in self.diagram.comments: comment.is_selected = True break self.diagram_control.copy() self.diagram_control.delete() self.diagram_control.paste() diagram_control = DiagramControl(None) diagram_control.copy() diagram_control.delete() diagram_control.paste()
def test_select_open(self): t1 = threading.Thread(target=self.main_control.select_open, args=(None, )) t1.start() sleep(1) if self.main_control.open_dialog: self.main_control.open_dialog.response(Gtk.ResponseType.CANCEL) t1.join() diagram = self.create_full_diagram(main_window=self.main_window) diagram.file_name = "/tmp/Test.mscd" DiagramControl(diagram).save() path = "/tmp/" System.set_user_dir(path) t1 = threading.Thread(target=self.main_control.select_open, args=(path, )) t1.start() sleep(1) if self.main_control.open_dialog: self.main_control.open_dialog.set_filename("/tmp/Test.mscd") self.main_control.open_dialog.response(Gtk.ResponseType.OK) t1.join() os.remove("/tmp/Test.mscd")
def setUp(self): """Do the test basic setup.""" win = MainControl(MainWindow()) self.diagram_control = DiagramControl(win)