def createOOoWriterComp(): if OOoRTC.writer_comp: MyMsgBox('',OOoRTC.SetCoding('RTCは起動済みです','utf-8')) return if OOoRTC.mgr == None: if os.name == 'posix': home = expanduser("~") OOoRTC.mgr = OpenRTM_aist.Manager.init([os.path.abspath(__file__), '-f', home+'/OOoRTC/rtc.conf']) elif os.name == 'nt': OOoRTC.mgr = OpenRTM_aist.Manager.init([os.path.abspath(__file__), '-f', '.\\rtc.conf']) else: return OOoRTC.mgr.setModuleInitProc(MyModuleInit) OOoRTC.mgr.activateManager() OOoRTC.mgr.runManager(True) else: MyModuleInit(OOoRTC.mgr) try: writer = OOoWriter() except NotOOoWriterException: return MyMsgBox('',OOoRTC.SetCoding('RTCを起動しました','utf-8')) return None
def actionPerformed(self, actionEvent): try: draw = OOoDraw() except NotOOoDrawException: return sobj = draw.document.CurrentSelection if sobj: if sobj.Count > 0: obj = sobj.getByIndex(0) jport, d_type = JudgeDrawObjRTC(obj) if jport: if d_type == "DataInPort": OOoRTC.draw_comp.mRemoveInPort(jport) else: OOoRTC.draw_comp.mRemoveOutPort(jport) ClearInfo(self.dlg_control) MyMsgBox('',OOoRTC.SetCoding('削除しました','utf-8')) UpdateSaveSheet() return MyMsgBox(OOoRTC.SetCoding('エラー','utf-8'),OOoRTC.SetCoding('削除済みです','utf-8'))
def setRTCTree(self): if self.mgr != None: self.treeWidget.clear() self.treeNodeList = [] self.sheetcomboBox.clear() for i,j in self.rtc.m_excel.t_xlWorksheet.items(): self.sheetcomboBox.addItem(i.decode("utf-8")) if str(self.sheetcomboBox.currentText().toLocal8Bit()) == u"保存用".encode("cp932"): self.sheetcomboBox.setCurrentIndex(1) address = str(self.namingServertextBox.text()) orb = self.mgr._orb namingserver = OOoRTC.SetNamingServer(address, orb, self.massageBoxFunc, "Unicode") if namingserver == None: return #print namingserver tmp = QtGui.QTreeWidgetItem(["/"]) self.treeWidget.addTopLevelItem(tmp) root = TreeNode(tmp, self) self.treeNodeList.append(root) oChild = self.createNode(address, True) root.appendChild(oChild) _path = ['/', address] self._paths = [] OOoRTC.rtc_get_rtclist(namingserver, self._paths, _path, oChild, self)
def setRTCTree(self): if self.mgr != None: self.treeWidget.clear() self.treeNodeList = [] self.sheetcomboBox.clear() for i, j in self.rtc.m_excel.t_xlWorksheet.items(): self.sheetcomboBox.addItem(i.decode("utf-8")) if str(self.sheetcomboBox.currentText().toLocal8Bit() ) == u"保存用".encode("cp932"): self.sheetcomboBox.setCurrentIndex(1) address = str(self.namingServertextBox.text()) orb = self.mgr._orb namingserver = OOoRTC.SetNamingServer(address, orb, self.massageBoxFunc, "Unicode") if namingserver == None: return #print(namingserver) tmp = QtGui.QTreeWidgetItem(["/"]) self.treeWidget.addTopLevelItem(tmp) root = TreeNode(tmp, self) self.treeNodeList.append(root) oChild = self.createNode(address, True) root.appendChild(oChild) _path = ['/', address] self._paths = [] OOoRTC.rtc_get_rtclist(namingserver, self._paths, _path, oChild, self)
def loadSheet(self): self.rtc.mRemoveAllPort() count = 1 m_hostname = '' _path = [] while True: cell,sheet,m_len = self.rtc.m_excel.getCell(count,"A",'保存用',"",False) if cell.Value2 == None: return m_name = re.split(':',cell.Value2) if len(m_name) < 2: return if len(m_name) == 2: for dn in CalcDataPort.DataType.DataTypeList: if m_name[1] == dn: m_name[1] = dn #m_name[1] = m_name[1].decode("cp932").encode("utf-8") F_Name = m_name[1] + str(OpenRTM_aist.uuid1()) row,col,mlen,sn,mstate,t_attachports = self.loadParam(count) if m_name[0] == 'DataInPort': self.rtc.mAddInPort(F_Name, [[m_name[0],m_name[1]],m_name[1]], row, col, mlen, sn, mstate, t_attachports, False) elif m_name[0] == 'DataOutPort': self.rtc.mAddOutPort(F_Name, [[m_name[0],m_name[1]],m_name[1]], row, col, mlen, sn, mstate, t_attachports, False) else: if m_hostname == m_name[1]: pass else: _paths = OOoRTC.GetPathList(m_name[1], self.mgr, None) m_hostname = m_name[1] if _paths == None: return for p in _paths: if p[0] == m_name: F_Name = p[0][-2] + p[0][-1] profile = p[1].get_port_profile() #props = nvlist_to_dict(profile.properties) row,col,mlen,sn,mstate,t_attachports = self.loadParam(count) if OOoRTC.nvlist_getValue(profile.properties,'port.port_type') == 'DataInPort': self.rtc.mAddOutPort(F_Name, p, row, col, mlen, sn, mstate, t_attachports) elif OOoRTC.nvlist_getValue(profile.properties,'port.port_type') == 'DataOutPort': self.rtc.mAddInPort(F_Name, p, row, col, mlen, sn, mstate, t_attachports) count = count + 1
def setWord(self, m_str): cursor = self.writer.document.getCurrentController().getViewCursor() inp_str = OOoRTC.SetCoding(m_str, self.conf_Code[0]) cursor.setString(inp_str) cursor.CharHeight = self.fontSize cursor.CharHeightAsian = self.fontSize if self.bold: cursor.CharWeight = BOLD cursor.CharWeightAsian = BOLD else: cursor.CharWeight = FW_NORMAL cursor.CharWeightAsian = FW_NORMAL if self.italic: cursor.CharPosture = ITALIC cursor.CharPostureAsian = ITALIC else: cursor.CharPosture = FS_NONE cursor.CharPostureAsian = FS_NONE if self.underline: cursor.CharUnderline = FU_SINGLE else: cursor.CharPosture = FU_NONE if self.strikeout: cursor.CharStrikeout = FST_SINGLE else: cursor.CharStrikeout = FST_NONE if self.emphasis: cursor.CharEmphasis = 1 else: cursor.CharEmphasis = 0 cursor.CharShadowed = self.shadow cursor.CharContoured = self.contoured #cursor.CharStyleName = self.fontName cursor.CharColor = OOoRTC.RGB(self.char_Red,self.char_Green,self.char_Blue) cursor.CharBackColor = OOoRTC.RGB(self.back_Red,self.back_Green,self.back_Blue) cursor.goRight(len(inp_str),False) cursor.collapseToEnd()
def SetRTCTree(oTreeModel, smgr, ctx, dlg_control): oTree = dlg_control.getControl( ControlName.RTCTreeName ) tfns_control = dlg_control.getControl( ControlName.NameServerFName ) if OOoRTC.mgr != None: orb = OOoRTC.mgr._orb namingserver = OOoRTC.SetNamingServer(str(tfns_control.Text), orb, MyMsgBox) if namingserver: oTreeDataModel = smgr.createInstanceWithContext("com.sun.star.awt.tree.MutableTreeDataModel", ctx) root = oTreeDataModel.createNode("/", False) oTreeDataModel.setRoot(root) oChild = oTreeDataModel.createNode(str(tfns_control.Text),False) root.appendChild(oChild) _path = ['/', str(tfns_control.Text)] _paths = [] OOoRTC.rtc_get_rtclist(namingserver, _paths, _path, oChild, oTreeDataModel) oTreeModel.DataModel = oTreeDataModel oTree.addSelectionChangeListener(TreeSelectListener(dlg_control, _paths)) create_listener = CreatePortListener( dlg_control, _paths) create_control = dlg_control.getControl(ControlName.CreateBName) create_control.addActionListener(create_listener) delete_listener = DeleteListener(dlg_control, _paths) delete_control = dlg_control.getControl(ControlName.DeleteBName) delete_control.addActionListener(delete_listener) setPos_listener = SetPosListener(dlg_control, _paths) setpos_control = dlg_control.getControl(ControlName.SetPosBName) setpos_control.addActionListener(setPos_listener)
def deleteSlot(self): pn = str(self.portListcomboBox.currentText().toLocal8Bit()) if (pn in self.rtc.InPorts) == True: i = self.rtc.InPorts[pn] self.rtc.mRemoveInPort(i) self.delPortTC(i) return elif (pn in self.rtc.OutPorts) == True: o = self.rtc.OutPorts[pn] self.rtc.mRemoveOutPort(o) self.delPortTC(o) return t_comp, nd = OOoRTC.JudgePort(self, self._paths) if t_comp: for n, o in self.rtc.OutPorts.items(): if o._port_a[0] == t_comp[0]: self.rtc.mRemoveOutPort(o) self.delPortTC(o) return for n, i in self.rtc.InPorts.items(): if i._port_a[0] == t_comp[0]: self.rtc.mRemoveInPort(i) self.delPortTC(i) return else: self.massageBoxFunc("", u'データポートを選択してください') return self.massageBoxFunc("", u'削除済みです')
def mAddOutPort(self, name, m_inport, row, col, mlen, sn, mstate, t_attachports, autoCon = True): sig = CalcDataPort.DataType.Single sec = CalcDataPort.DataType.Sequence ext = CalcDataPort.DataType.Extend m_data_o = None m_data_type = None if autoCon: m_data_o, m_data_type = CalcDataPort.GetDataType(m_inport[1]) else: m_data_o, m_data_type = CalcDataPort.GetDataSType(m_inport[1]) if m_data_o: m_outport = OpenRTM_aist.OutPort(name, m_data_o) self.addOutPort(name, m_outport) if autoCon: OOoRTC.ConnectPort(m_inport[1], m_outport._objref, name) if m_data_type[1] == sig: self.OutPorts[name] = self.m_CalcOutPort(m_outport, m_data_o, name, row, col, mlen, sn, mstate, m_inport, m_data_type, t_attachports) elif m_data_type[1] == sec: self.OutPorts[name] = self.m_CalcOutPortSeq(m_outport, m_data_o, name, row, col, mlen, sn, mstate, m_inport, m_data_type, t_attachports) elif m_data_type[1] == ext: self.OutPorts[name] = self.m_CalcOutPortEx(m_outport, m_data_o, name, row, col, mlen, sn, mstate, m_inport, m_data_type, t_attachports) return self.OutPorts[name] return None
def UpdateTree(dlg_control, m_port): info_control = dlg_control.getControl( ControlName.TextFName ) info_control.setText(OOoRTC.SetCoding('作成済み','utf-8')) dtcb_control = dlg_control.getControl( ControlName.DataTypeCBName ) if len(m_port._port_a[0]) == 2: dtcb_control.setText(m_port._port_a[1]) else: dtcb_control.setText("") xo_control = dlg_control.getControl( ControlName.XoffsetBName ) xo_control.setText(str(m_port._ox)) yo_control = dlg_control.getControl( ControlName.YoffsetBName ) yo_control.setText(str(m_port._oy)) ro_control = dlg_control.getControl( ControlName.RoffsetBName ) ro_control.setText(str(m_port._or)) xs_control = dlg_control.getControl( ControlName.XscaleBName ) xs_control.setText(str(m_port._sx)) ys_control = dlg_control.getControl( ControlName.YscaleBName ) ys_control.setText(str(m_port._sy))
def actionPerformed(self, actionEvent): objectTree = self.dlg_control.getControl(ControlName.RTCTreeName) t_comp, nd = OOoRTC.JudgePort(objectTree, self._paths) if t_comp: for n,i in OOoRTC.draw_comp.InPorts.items(): if i._port_a[0] == t_comp[0]: i._obj.RotateAngle = i._r t_pos = Point() t_pos.X = i._x t_pos.Y = i._y i._obj.setPosition(t_pos) return else: MyMsgBox(OOoRTC.SetCoding('エラー','utf-8'),OOoRTC.SetCoding('データポートを選択してください','utf-8')) return MyMsgBox(OOoRTC.SetCoding('エラー','utf-8'),OOoRTC.SetCoding('削除済みです','utf-8'))
def mAddInPort(self, name, m_outport, row, col, mlen, sn, mstate, t_attachports, autoCon=True): sig = CalcDataPort.DataType.Single sec = CalcDataPort.DataType.Sequence ext = CalcDataPort.DataType.Extend m_data_i = None m_data_type = None if autoCon: m_data_i, m_data_type = CalcDataPort.GetDataType(m_outport[1]) else: m_data_i, m_data_type = CalcDataPort.GetDataSType(m_outport[1]) if m_data_i: m_inport = OpenRTM_aist.InPort(name, m_data_i) self.addInPort(name, m_inport) if autoCon: OOoRTC.ConnectPort(m_inport._objref, m_outport[1], name) #self.InPorts[name] = self.m_CalcPortObject(m_inport, m_data_i, name, row, col, mlen, sn, mstate, m_outport, m_data_type, t_attachports) if m_data_type[1] == sig: self.InPorts[name] = self.m_CalcInPort(m_inport, m_data_i, name, row, col, mlen, sn, mstate, m_outport, m_data_type, t_attachports) elif m_data_type[1] == sec: self.InPorts[name] = self.m_CalcInPortSeq( m_inport, m_data_i, name, row, col, mlen, sn, mstate, m_outport, m_data_type, t_attachports) elif m_data_type[1] == ext: self.InPorts[name] = self.m_CalcInPortEx( m_inport, m_data_i, name, row, col, mlen, sn, mstate, m_outport, m_data_type, t_attachports) m_inport.addConnectorDataListener( OpenRTM_aist.ConnectorDataListenerType.ON_BUFFER_WRITE, DataListener(self.InPorts[name], self)) return self.InPorts[name] return None
def resetSlot(self): t_comp, nd = OOoRTC.JudgePort(self, self._paths) if t_comp: for n, o in self.rtc.OutPorts.items(): if o._port_a[0] == t_comp[0]: o._num = int(o._col) return for n, i in self.rtc.InPorts.items(): if i._port_a[0] == t_comp[0]: i._num = int(i._col) return else: self.massageBoxFunc("", u'データポートを選択してください') return self.massageBoxFunc("", u'削除済みです')
def mAddOutPort(self, name, m_inport, offset, scale, pos, obj, autoCon = True): m_data_o = None m_data_type = None if autoCon: m_data_o, m_data_type = DrawDataPort.GetDataType(m_inport[1]) else: m_data_o, m_data_type = DrawDataPort.GetDataSType(m_inport[1]) if m_data_o: m_outport = OpenRTM_aist.OutPort(name, m_data_o) self.addOutPort(name, m_outport) if autoCon: OOoRTC.ConnectPort(m_outport._objref, m_inport[1], name) self.OutPorts[name] = DrawDataPort.DrawPortObject(m_outport, m_data_o, name, offset, scale, pos, obj, m_inport, m_data_type)
def GetDataType(m_port): basic = DataType.basic extended = DataType.extended profile = m_port.get_port_profile() #props = nvlist_to_dict(profile.properties) #data_type = props['dataport.data_type'] data_type = OOoRTC.nvlist_getValue(profile.properties,'dataport.data_type') if data_type.startswith('IDL:'): data_type = data_type[4:] colon = data_type.rfind(':') if colon != -1: data_type = data_type[:colon] data_type = data_type.replace('RTC/','') return GetDataSType(data_type)
def attachBSlot(self): pn = str(self.portListcomboBox.currentText().toLocal8Bit()) if (pn in self.rtc.OutPorts) == True: o = self.rtc.OutPorts[pn] self.attachTC(o) return t_comp, nd = OOoRTC.JudgePort(self, self._paths) if t_comp: for n, o in self.rtc.OutPorts.items(): if o._port_a[0] == t_comp[0]: self.attachTC(o) return else: self.massageBoxFunc("", u'データポートを選択してください') return self.massageBoxFunc("", u'削除済みです')
def treeWidgetSlot(self, obj): self.datatypecomboBox.setCurrentIndex(0) self.selItem = self.getTreeNode(obj) t_comp, nd = OOoRTC.JudgePort(self, self._paths) self.portListcomboBox.lineEdit().setText("") if t_comp: for n, o in self.rtc.OutPorts.items(): if o._port_a[0] == t_comp[0]: self.updateTree(o) return for n, i in self.rtc.InPorts.items(): if i._port_a[0] == t_comp[0]: self.updateTree(i) return else: return self.infotextBox.setText(u"未作成") """tmp = self.getTreeNode(obj)
def selectionChanged(self, ev): try: draw = OOoDraw() except NotOOoDrawException: return sobj = draw.document.CurrentSelection if sobj: if sobj.Count > 0: obj = sobj.getByIndex(0) jport, d_type = JudgeDrawObjRTC(obj) if jport: UpdateTree(self.dlg_control, jport) return else: return info_control = self.dlg_control.getControl( ControlName.TextFName ) info_control.setText(OOoRTC.SetCoding('未作成','utf-8'))
def configUpdate(self): for i in range(0, 100): dn = "dataport" + str(i+1) if self._configsets.haveConfig(dn): self._configsets.activateConfigurationSet(dn) self._configsets.update(dn) tdt = "" tmp = None if self.ConfInPorts.has_key(dn): if self.conf_port_type[0] != "DataInPort": del self.ConfInPorts[dn] else: tmp = self.ConfInPorts[dn] tdt = "DataInPort" if self.ConfOutPorts.has_key(dn): if self.conf_port_type[0] != "DataOutPort": del self.ConfOutPorts[dn] else: tmp = self.ConfOutPorts[dn] tdt = "DataOutPort" data_type = "" if tmp != None: profile = tmp._port.get_port_profile() #props = nvlist_to_dict(profile.properties) #data_type = props['dataport.data_type'] data_type = OOoRTC.nvlist_getValue(profile.properties,'dataport.data_type') if data_type.startswith('IDL:'): data_type = data_type[4:] colon = data_type.rfind(':') if colon != -1: data_type = data_type[:colon] data_type = data_type.replace('RTC/','') if int(self.conf_column[0]) > 0 and len(self.conf_start_row[0]) > 0: c_move = True if int(self.c_move[0]) == 0: c_move = False Attach_Port = {} tA = re.split(",",self.Attach_Port[0]) for k in tA: if k != "" and k != "None": Attach_Port[k] = k if tdt != None and data_type == self.conf_data_type[0]:# and self.conf_port_type[0] == tdt: tmp._row = self.conf_start_row[0] tmp._sn = self.conf_sheetname[0] tmp._col = self.conf_column[0] tmp._length = self.conf_end_row[0] tmp.attachports = Attach_Port tmp.state = c_move else: if tmp != None: tmp._port.disconnect_all() self.removePort(tmp._port) if self.conf_port_type[0] == "DataInPort": self.addConfInPort(dn, self.conf_data_type[0], self.conf_start_row[0], int(self.conf_column[0]), self.conf_end_row[0], self.conf_sheetname[0], c_move, Attach_Port) elif self.conf_port_type[0] == "DataOutPort": self.addConfOutPort(dn, self.conf_data_type[0], self.conf_start_row[0], int(self.conf_column[0]), self.conf_end_row[0], self.conf_sheetname[0], c_move, Attach_Port)
def LoadSheet(): if OOoRTC.draw_comp: draw = OOoRTC.draw_comp.draw OOoRTC.draw_comp.mRemoveAllPort() oDrawPages = draw.drawpages oDrawPage = oDrawPages.getByIndex(0) st_control = oDrawPage.getForms().getByIndex(0).getByName('SaveTextBox') text = str(st_control.Text) m_port = re.split(';',text) m_hostname = '' _path = [] for mp in m_port: m_list = re.split('#',mp) if len(m_list) > 10: m_name = re.split(':',m_list[0]) if len(m_name) < 2: return if len(m_name) == 2: for dn in DrawDataPort.DataType.DataTypeList: if m_name[1] == dn: m_name[1] = dn m_i,m_j,_ox,_oy,_or,_sx,_sy,_x,_y,_r,_obj,flag = LoadParam(m_list, oDrawPages) F_Name = m_name[1] + str(m_i) + str(m_j) if m_name[0] == "DataOutPort": OOoRTC.draw_comp.mAddOutPort(F_Name, [[m_name[0],m_name[1]],m_name[1]], [_ox,_oy,_or], [_sx,_sy], [_x, _y, _r], _obj, False) if m_name[0] == 'DataOutPort': OOoRTC.draw_comp.mAddInPort(F_Name, [[m_name[0],m_name[1]],m_name[1]], [_ox,_oy,_or], [_sx,_sy], [_x, _y, _r], _obj, False) else: if m_hostname == m_name[1]: pass else: _paths = OOoRTC.GetPathList(m_name[1], OOoRTC.mgr ,MyMsgBox) m_hostname = m_name[1] if _paths == None: return for p in _paths: if p[0] == m_name: profile = p[1].get_port_profile() #props = nvlist_to_dict(profile.properties) m_i,m_j,_ox,_oy,_or,_sx,_sy,_x,_y,_r,_obj,flag = LoadParam(m_list, oDrawPages) F_Name = p[0][-2] + p[0][-1] + str(m_i) + str(m_j) if flag: if OOoRTC.nvlist_getValue(profile.properties,'port.port_type') == 'DataInPort': OOoRTC.draw_comp.mAddOutPort(F_Name, p, [_ox,_oy,_or], [_sx,_sy], [_x, _y, _r], _obj) if OOoRTC.nvlist_getValue(profile.properties,'port.port_type') == 'DataOutPort': OOoRTC.draw_comp.mAddInPort(F_Name, p, [_ox,_oy,_or], [_sx,_sy], [_x, _y, _r], _obj)
def actionPerformed(self, actionEvent): try: draw = OOoDraw() except NotOOoDrawException: return sobj = draw.document.CurrentSelection if sobj: if sobj.Count > 0: obj = sobj.getByIndex(0) jport, d_type = JudgeDrawObjRTC(obj) if jport: xo_control = self.dlg_control.getControl( ControlName.XoffsetBName ) yo_control = self.dlg_control.getControl( ControlName.YoffsetBName ) ro_control = self.dlg_control.getControl( ControlName.RoffsetBName ) xs_control = self.dlg_control.getControl( ControlName.XscaleBName ) ys_control = self.dlg_control.getControl( ControlName.YscaleBName ) jport._ox = long(xo_control.Text) jport._oy = long(yo_control.Text) jport._or = float(ro_control.Text) jport._sx = long(xs_control.Text) jport._sy = long(ys_control.Text) UpdateSaveSheet() return dtcb_control = self.dlg_control.getControl( ControlName.DataTypeCBName ) dt = str(dtcb_control.Text) if dt != "": F_Name = dt + str(OpenRTM_aist.uuid1()) ptcb_control = self.dlg_control.getControl( ControlName.PortTypeCBName ) pt = str(ptcb_control.Text) for d in DrawDataPort.DataType.DataTypeList: if dt == d: dt = d if pt == "DataOutPort": pt = "DataInPort" else: pt = "DataOutPort" CompAddPort(F_Name, [[pt,dt],dt], self.dlg_control, obj, pt, False) if pt == "DataInPort": MyMsgBox('',OOoRTC.SetCoding(dt+"型のOutPortを作成しました。",'utf-8')) else: MyMsgBox('',OOoRTC.SetCoding(dt+"型のInPortを作成しました。",'utf-8')) UpdateSaveSheet() info_control = self.dlg_control.getControl( ControlName.TextFName ) info_control.setText(OOoRTC.SetCoding('作成済み','utf-8')) return objectTree = self.dlg_control.getControl(ControlName.RTCTreeName) t_comp, nd = OOoRTC.JudgePort(objectTree, self._paths) if t_comp: m_i,m_j = JudgeRTCObjDraw(obj) F_Name = t_comp[0][-2] + t_comp[0][-1] + str(m_i) + str(m_j) profile = t_comp[1].get_port_profile() #props = nvlist_to_dict(profile.properties) CompAddPort(F_Name, t_comp, self.dlg_control, obj, OOoRTC.nvlist_getValue(profile.properties,'port.port_type')) t_str = str(m_i) + "ページの" + str(m_j) + "番目の図形と" + t_comp[0][-2] + t_comp[0][-1] + "を関連付けました" MyMsgBox('',OOoRTC.SetCoding(t_str,'utf-8')) UpdateSaveSheet() info_control = self.dlg_control.getControl( ControlName.TextFName ) info_control.setText(OOoRTC.SetCoding('作成済み','utf-8'))
def LoadSheet(): if OOoRTC.draw_comp: draw = OOoRTC.draw_comp.draw OOoRTC.draw_comp.mRemoveAllPort() oDrawPages = draw.drawpages oDrawPage = oDrawPages.getByIndex(0) st_control = oDrawPage.getForms().getByIndex(0).getByName('SaveTextBox') text = str(st_control.Text) m_port = re.split(';',text) m_hostname = '' _path = [] for mp in m_port: m_list = re.split('#',mp) if len(m_list) > 10: m_name = re.split(':',m_list[0]) if len(m_name) < 2: return if len(m_name) == 2: for dn in DrawDataPort.DataType.DataTypeList: if m_name[1] == dn: m_name[1] = dn m_i,m_j,_ox,_oy,_or,_sx,_sy,_x,_y,_r,_obj,flag = LoadParam(m_list, oDrawPages) F_Name = m_name[1] + str(m_i) + str(m_j) if m_name[0] == "DataOutPort": OOoRTC.draw_comp.mAddOutPort(F_Name, [[m_name[0],m_name[1]],m_name[1]], [_ox,_oy,_or], [_sx,_sy], [_x, _y, _r], _obj, False) if m_name[0] == 'DataOutPort': OOoRTC.draw_comp.mAddInPort(F_Name, [[m_name[0],m_name[1]],m_name[1]], [_ox,_oy,_or], [_sx,_sy], [_x, _y, _r], _obj, False) else: if m_hostname == m_name[1]: pass else: _paths = OOoRTC.GetPathList(m_name[1], OOoRTC.mgr ,MyMsgBox) m_hostname = m_name[1] if _paths == None: return for p in _paths: if p[0] == m_name: profile = p[1].get_port_profile() props = nvlist_to_dict(profile.properties) m_i,m_j,_ox,_oy,_or,_sx,_sy,_x,_y,_r,_obj,flag = LoadParam(m_list, oDrawPages) F_Name = p[0][-2] + p[0][-1] + str(m_i) + str(m_j) if flag: if props['port.port_type'] == 'DataInPort': OOoRTC.draw_comp.mAddOutPort(F_Name, p, [_ox,_oy,_or], [_sx,_sy], [_x, _y, _r], _obj) if props['port.port_type'] == 'DataOutPort': OOoRTC.draw_comp.mAddInPort(F_Name, p, [_ox,_oy,_or], [_sx,_sy], [_x, _y, _r], _obj)
def SetDialog(): try: draw = OOoDraw() except NotOOoDrawException: return sobj = draw.document.CurrentSelection if sobj == None: MyMsgBox(OOoRTC.SetCoding('エラー','utf-8'), OOoRTC.SetCoding('図形を選択してください','utf-8')) return elif sobj.Count < 1: MyMsgBox(OOoRTC.SetCoding('エラー','utf-8'), OOoRTC.SetCoding('図形を選択してください','utf-8')) return dialog_name = "OOoDrawControlRTC.RTCTreeDialog" ctx = uno.getComponentContext() smgr = ctx.ServiceManager dp = smgr.createInstance("com.sun.star.awt.DialogProvider") dlg_control = dp.createDialog("vnd.sun.star.script:"+dialog_name+"?location=application") oTree = dlg_control.getControl(ControlName.RTCTreeName) LoadSheet() oTreeModel = oTree.getModel() SetRTCTree_listener = SetRTCTreeListener( oTreeModel, smgr, ctx, dlg_control ) setrtctree_control = dlg_control.getControl(ControlName.CreateTreeBName) setrtctree_control.addActionListener(SetRTCTree_listener) tfns_control = dlg_control.getControl( ControlName.NameServerFName ) tfns_control.setText('localhost') xo_control = dlg_control.getControl( ControlName.XoffsetBName ) xo_control.setText(str(0)) yo_control = dlg_control.getControl( ControlName.YoffsetBName ) yo_control.setText(str(0)) ro_control = dlg_control.getControl( ControlName.RoffsetBName ) ro_control.setText(str(0)) xs_control = dlg_control.getControl( ControlName.XscaleBName ) xs_control.setText(str(100)) ys_control = dlg_control.getControl( ControlName.YscaleBName ) ys_control.setText(str(100)) dtcb_control = dlg_control.getControl( ControlName.DataTypeCBName ) dtcb_control.addItem ("", dtcb_control.ItemCount) for n in DrawDataPort.DataType.DataTypeList: dtcb_control.addItem (n, dtcb_control.ItemCount) ptcb_control = dlg_control.getControl( ControlName.PortTypeCBName ) ptcb_control.addItem ("DataInPort", ptcb_control.ItemCount) ptcb_control.addItem ("DataOutPort", ptcb_control.ItemCount) ptcb_control.setText('DataInPort') setallpos_listener = SetAllPosListener( dlg_control ) setallpos_control = dlg_control.getControl(ControlName.SetAllPosBName) setallpos_control.addActionListener(setallpos_listener) dlg_control.execute() dlg_control.dispose()
def ClearInfo(dlg_control): info_control = dlg_control.getControl( ControlName.TextFName ) info_control.setText(OOoRTC.SetCoding('未作成','utf-8'))
def configUpdate(self): for i in range(0, 100): dn = "dataport" + str(i+1) if self._configsets.haveConfig(dn): self._configsets.activateConfigurationSet(dn) self._configsets.update(dn) tdt = "" tmp = None if dn in self.ConfInPorts: if self.conf_port_type[0] != "DataInPort": del self.ConfInPorts[dn] else: tmp = self.ConfInPorts[dn] tdt = "DataInPort" if dn in self.ConfOutPorts: if self.conf_port_type[0] != "DataOutPort": del self.ConfOutPorts[dn] else: tmp = self.ConfOutPorts[dn] tdt = "DataOutPort" data_type = "" if tmp != None: profile = tmp._port.get_port_profile() #props = nvlist_to_dict(profile.properties) #data_type = props['dataport.data_type'] data_type = OOoRTC.nvlist_getValue(profile.properties,'dataport.data_type') if data_type.startswith('IDL:'): data_type = data_type[4:] colon = data_type.rfind(':') if colon != -1: data_type = data_type[:colon] data_type = data_type.replace('RTC/','') if int(self.conf_column[0]) > 0 and len(self.conf_start_row[0]) > 0: c_move = True if int(self.c_move[0]) == 0: c_move = False Attach_Port = {} tA = re.split(",",self.Attach_Port[0]) for k in tA: if k != "" and k != "None": Attach_Port[k] = k if tdt != None and data_type == self.conf_data_type[0]:# and self.conf_port_type[0] == tdt: tmp._row = self.conf_start_row[0] tmp._sn = self.conf_sheetname[0] tmp._col = self.conf_column[0] tmp._length = self.conf_end_row[0] tmp.attachports = Attach_Port tmp.state = c_move else: if tmp != None: tmp._port.disconnect_all() self.removePort(tmp._port) if self.conf_port_type[0] == "DataInPort": self.addConfInPort(dn, self.conf_data_type[0], self.conf_start_row[0], int(self.conf_column[0]), self.conf_end_row[0], self.conf_sheetname[0], c_move, Attach_Port) elif self.conf_port_type[0] == "DataOutPort": self.addConfOutPort(dn, self.conf_data_type[0], self.conf_start_row[0], int(self.conf_column[0]), self.conf_end_row[0], self.conf_sheetname[0], c_move, Attach_Port)
def actionPerformed(self, actionEvent): try: draw = OOoDraw() except NotOOoDrawException: return sobj = draw.document.CurrentSelection if sobj: if sobj.Count > 0: obj = sobj.getByIndex(0) jport, d_type = JudgeDrawObjRTC(obj) if jport: xo_control = self.dlg_control.getControl( ControlName.XoffsetBName ) yo_control = self.dlg_control.getControl( ControlName.YoffsetBName ) ro_control = self.dlg_control.getControl( ControlName.RoffsetBName ) xs_control = self.dlg_control.getControl( ControlName.XscaleBName ) ys_control = self.dlg_control.getControl( ControlName.YscaleBName ) jport._ox = long(xo_control.Text) jport._oy = long(yo_control.Text) jport._or = float(ro_control.Text) jport._sx = long(xs_control.Text) jport._sy = long(ys_control.Text) UpdateSaveSheet() return dtcb_control = self.dlg_control.getControl( ControlName.DataTypeCBName ) dt = str(dtcb_control.Text) if dt != "": F_Name = dt + str(OpenRTM_aist.uuid1()) ptcb_control = self.dlg_control.getControl( ControlName.PortTypeCBName ) pt = str(ptcb_control.Text) for d in DrawDataPort.DataType.DataTypeList: if dt == d: dt = d if pt == "DataOutPort": pt = "DataInPort" else: pt = "DataOutPort" CompAddPort(F_Name, [[pt,dt],dt], self.dlg_control, obj, pt, False) if pt == "DataInPort": MyMsgBox('',OOoRTC.SetCoding(dt+"型のOutPortを作成しました。",'utf-8')) else: MyMsgBox('',OOoRTC.SetCoding(dt+"型のInPortを作成しました。",'utf-8')) UpdateSaveSheet() info_control = self.dlg_control.getControl( ControlName.TextFName ) info_control.setText(OOoRTC.SetCoding('作成済み','utf-8')) return objectTree = self.dlg_control.getControl(ControlName.RTCTreeName) t_comp, nd = OOoRTC.JudgePort(objectTree, self._paths) if t_comp: m_i,m_j = JudgeRTCObjDraw(obj) F_Name = t_comp[0][-2] + t_comp[0][-1] + str(m_i) + str(m_j) profile = t_comp[1].get_port_profile() props = nvlist_to_dict(profile.properties) CompAddPort(F_Name, t_comp, self.dlg_control, obj, props['port.port_type']) t_str = str(m_i) + "ページの" + str(m_j) + "番目の図形と" + t_comp[0][-2] + t_comp[0][-1] + "を関連付けました" MyMsgBox('',OOoRTC.SetCoding(t_str,'utf-8')) UpdateSaveSheet() info_control = self.dlg_control.getControl( ControlName.TextFName ) info_control.setText(OOoRTC.SetCoding('作成済み','utf-8'))
def delete(self): self.cell2.CellBackColor = OOoRTC.RGB(0, 0, 0)
def addSlot(self): pn = str(self.portListcomboBox.currentText().toLocal8Bit()) if self.rtc.InPorts.has_key(pn) == True: self.setPortParam(self.rtc.InPorts[pn]) self.updateSaveSheet() return elif self.rtc.OutPorts.has_key(pn) == True: self.setPortParam(self.rtc.OutPorts[pn]) self.updateSaveSheet() return dt = str(self.datatypecomboBox.currentText().toLocal8Bit()) if dt != "": F_Name = dt + str(OpenRTM_aist.uuid1()) pt = str(self.porttypecomboBox.currentText().toLocal8Bit()) if pt == "DataOutPort": if self.compAddOutPort(F_Name, [[pt,dt],dt], False): self.massageBoxFunc('',dt.decode("utf-8")+u"型のOutPortを作成しました。") else: if self.compAddInPort(F_Name, [[pt,dt],dt], False): self.massageBoxFunc('',dt.decode("utf-8")+u"型のInPortを作成しました。") self.updateInPortList() self.updateDataPortList() self.updateSaveSheet() return t_comp, nd = OOoRTC.JudgePort(self, self._paths) if t_comp: for n,o in self.rtc.OutPorts.items(): if o._port_a[0] == t_comp[0]: self.setPortParam(o) return for n,i in self.rtc.InPorts.items(): if i._port_a[0] == t_comp[0]: self.setPortParam(i) return F_Name = t_comp[0][-2] + t_comp[0][-1] profile = t_comp[1].get_port_profile() #props = nvlist_to_dict(profile.properties) if OOoRTC.nvlist_getValue(profile.properties,'port.port_type') == 'DataInPort': self.compAddOutPort(F_Name, t_comp) elif OOoRTC.nvlist_getValue(profile.properties,'port.port_type') == 'DataOutPort': self.compAddInPort(F_Name, t_comp) self.updateSaveSheet() self.infotextBox.setText(u"作成済み") self.updateInPortList() self.updateDataPortList() self.massageBoxFunc('',t_comp[0][-2]+u"の"+t_comp[0][-1]+u"と通信するデータポートを作成しました。") """print self.coltextBox.text()
def loadSheet(self): self.rtc.mRemoveAllPort() count = 1 m_hostname = '' _path = [] while True: cell, sheet, m_len = self.rtc.m_excel.getCell( count, "A", '保存用', "", False) if cell.Value2 == None: return m_name = re.split(':', cell.Value2) if len(m_name) < 2: return if len(m_name) == 2: for dn in CalcDataPort.DataType.DataTypeList: if m_name[1] == dn: m_name[1] = dn #m_name[1] = m_name[1].decode("cp932").encode("utf-8") F_Name = m_name[1] + str(OpenRTM_aist.uuid1()) row, col, mlen, sn, mstate, t_attachports = self.loadParam( count) if m_name[0] == 'DataInPort': self.rtc.mAddInPort(F_Name, [[m_name[0], m_name[1]], m_name[1]], row, col, mlen, sn, mstate, t_attachports, False) elif m_name[0] == 'DataOutPort': self.rtc.mAddOutPort(F_Name, [[m_name[0], m_name[1]], m_name[1]], row, col, mlen, sn, mstate, t_attachports, False) else: if m_hostname == m_name[1]: pass else: _paths = OOoRTC.GetPathList(m_name[1], self.mgr, None) m_hostname = m_name[1] if _paths == None: return for p in _paths: if p[0] == m_name: F_Name = p[0][-2] + p[0][-1] profile = p[1].get_port_profile() #props = nvlist_to_dict(profile.properties) row, col, mlen, sn, mstate, t_attachports = self.loadParam( count) if OOoRTC.nvlist_getValue( profile.properties, 'port.port_type') == 'DataInPort': self.rtc.mAddOutPort(F_Name, p, row, col, mlen, sn, mstate, t_attachports) elif OOoRTC.nvlist_getValue( profile.properties, 'port.port_type') == 'DataOutPort': self.rtc.mAddInPort(F_Name, p, row, col, mlen, sn, mstate, t_attachports) count = count + 1
def addSlot(self): pn = str(self.portListcomboBox.currentText().toLocal8Bit()) if (pn in self.rtc.InPorts) == True: self.setPortParam(self.rtc.InPorts[pn]) self.updateSaveSheet() return elif (pn in self.rtc.OutPorts) == True: self.setPortParam(self.rtc.OutPorts[pn]) self.updateSaveSheet() return dt = str(self.datatypecomboBox.currentText().toLocal8Bit()) if dt != "": F_Name = dt + str(OpenRTM_aist.uuid1()) pt = str(self.porttypecomboBox.currentText().toLocal8Bit()) if pt == "DataOutPort": if self.compAddOutPort(F_Name, [[pt, dt], dt], False): self.massageBoxFunc( '', dt.decode("utf-8") + u"型のOutPortを作成しました。") else: if self.compAddInPort(F_Name, [[pt, dt], dt], False): self.massageBoxFunc( '', dt.decode("utf-8") + u"型のInPortを作成しました。") self.updateInPortList() self.updateDataPortList() self.updateSaveSheet() return t_comp, nd = OOoRTC.JudgePort(self, self._paths) if t_comp: for n, o in self.rtc.OutPorts.items(): if o._port_a[0] == t_comp[0]: self.setPortParam(o) return for n, i in self.rtc.InPorts.items(): if i._port_a[0] == t_comp[0]: self.setPortParam(i) return F_Name = t_comp[0][-2] + t_comp[0][-1] profile = t_comp[1].get_port_profile() #props = nvlist_to_dict(profile.properties) if OOoRTC.nvlist_getValue(profile.properties, 'port.port_type') == 'DataInPort': self.compAddOutPort(F_Name, t_comp) elif OOoRTC.nvlist_getValue(profile.properties, 'port.port_type') == 'DataOutPort': self.compAddInPort(F_Name, t_comp) self.updateSaveSheet() self.infotextBox.setText(u"作成済み") self.updateInPortList() self.updateDataPortList() self.massageBoxFunc( '', t_comp[0][-2] + u"の" + t_comp[0][-1] + u"と通信するデータポートを作成しました。") """print(self.coltextBox.text())