def _draw_text(self, parent, xy, text, font_name="Arial", font_size=16): x, y = xy dom_extensions.textOnlyElementUnder(parent, "text", text, (("x", str(x)), ("y", str(y)), ("font-family", font_name), ("font-size", str(font_size)), ('fill', "#000")))
def _draw_text( self, parent, xy, text, font_name="Arial", font_size=16): x, y = xy dom_extensions.textOnlyElementUnder( parent, "text", text, (( "x", str( x)), ( "y", str( y)), ( "font-family", font_name), ( "font-size", str( font_size)), ( 'fill', "#000")))
def get_CML_dom( self, doc): if self.not_enough_data(): return None out = doc.createElement( 'bond') out.setAttribute('order', str( self.order)) if self.stereo: dom_ext.textOnlyElementUnder( out, 'stereo', self.stereo) out.setAttribute( 'atomRefs2', '%s %s' % ( str( self.atom1), str( self.atom2))) return out
def get_CML_dom(self, doc): if self.not_enough_data(): return None out = doc.createElement('bond') out.setAttribute('order', str(self.order)) if self.stereo: dom_ext.textOnlyElementUnder(out, 'stereo', self.stereo) out.setAttribute('atomRefs2', '%s %s' % (str(self.atom1), str(self.atom2))) return out
def write_to_dom(self, doc=None): if not doc: doc = dom.Document() top = doc.createElement("bkchem-prefs") doc.appendChild(top) for k, v in self.data.items(): itype = 'UnicodeType' for tn in types.__dict__: if type(v) == types.__dict__[tn]: itype = tn break # Deal with string types explicitly if sys.version_info[0] > 2: if isinstance(v, bytes): v = v.decode('utf-8') itype = 'UnicodeType' elif isinstance(v, str): itype = 'UnicodeType' else: if isinstance(v, str): v = v.decode('utf-8') itype = 'UnicodeType' elif isinstance(v, unicode): itype = 'UnicodeType' el = dom_extensions.textOnlyElementUnder(top, k, v, attributes = (("type", itype),)) return doc
def get_package( self, doc): el = doc.createElement( "fragment") el.setAttribute( "id", self.id) el.setAttribute( "type", self.type) dom_ext.textOnlyElementUnder( el, "name", xml.sax.saxutils.escape( self.name)) for e in self.edges: dom_ext.elementUnder( el, "bond", (("id", e.id),)) for v in self.vertices: dom_ext.elementUnder( el, "vertex", (("id", v.id),)) for k, v in self.properties.iteritems(): itype = 'UnicodeType' for tn in types.__dict__: if type( v) == types.__dict__[ tn]: itype = tn break dom_ext.elementUnder( el, "property", (("name",str( k)), ("value",str( v)), ("type", itype))) return el
def get_svg_element( self, doc): e = doc.createElement( 'g') x, y = self.x, self.y font = tkFont.Font( family=self.atom.font_family, size=self.size) dx = font.measure( self.text) / 2 y += font.metrics('descent') text = dom_extensions.textOnlyElementUnder( e, 'text', self.text, (('font-size', "%dpt" % self.size), ('font-family', self.atom.font_family), ( "x", str( x - dx)), ( "y", str( y)), ( 'fill', self.line_color))) return e
def get_CML_dom( self, doc): if self.not_enough_data(): return None out = doc.createElement( 'bond') #atom1 dom_ext.textOnlyElementUnder( out, 'string', str( self.atom1), (('builtin','atomRef'), ('convention','CML'))) #atom2 dom_ext.textOnlyElementUnder( out, 'string', str( self.atom2), (('builtin','atomRef'), ('convention','CML'))) #order dom_ext.textOnlyElementUnder( out, 'string', str( self.order), (('builtin','order'), ('convention','CML'))) #stereo if self.stereo: dom_ext.textOnlyElementUnder( out, 'string', str( self.stereo), (('builtin','stereo'), ('convention','CML'))) return out
def write_to_dom( self, doc=None): if not doc: doc = dom.Document() top = doc.createElement( "bkchem-prefs") doc.appendChild( top) for k, v in self.data.iteritems(): itype = 'UnicodeType' for tn in types.__dict__: if type( v) == types.__dict__[ tn]: itype = tn break if itype == "StringType": v = v.decode('utf-8') itype = 'UnicodeType' el = dom_extensions.textOnlyElementUnder( top, k, unicode( v), attributes = (("type", itype),)) return doc
def add_plus(self, p): """adds plus item to SVG document""" item = p.item x1, y1 = p.get_xy() x, y, x2, y2 = self.paper.bbox(item) if p.area_color: # it is not needed to export the rectangle in case its transparent dom_extensions.elementUnder(self.group, 'rect', (('x', self.convert(x)), ('y', self.convert(y)), ('width', self.convert(x2 - x)), ('height', self.convert(y2 - y)), ('fill', self.cc(p.area_color)), ('stroke', self.cc(p.area_color)))) y1 += (y2 - y) / 4.0 text = dom_extensions.textOnlyElementUnder( self.group, 'text', '+', (('font-size', "%d%s" % (p.font_size, pt_or_px)), ('font-family', p.font_family), ("x", self.convert(x)), ("y", self.convert(round(y1))), ('fill', self.cc(p.line_color))))
def add_plus( self, p): """adds plus item to SVG document""" item = p.item x1, y1 = p.get_xy() x, y, x2, y2 = self.paper.bbox( item) if p.area_color: # it is not needed to export the rectangle in case its transparent dom_extensions.elementUnder( self.group, 'rect', (( 'x', self.convert( x)), ( 'y', self.convert( y)), ( 'width', self.convert( x2-x)), ( 'height', self.convert( y2-y)), ( 'fill', self.cc( p.area_color)), ( 'stroke', self.cc( p.area_color)))) y1 += (y2-y)/4.0 text = dom_extensions.textOnlyElementUnder( self.group, 'text', '+', (('font-size', "%d%s" % (p.font_size, pt_or_px)), ('font-family', p.font_family), ( "x", self.convert( x)), ( "y", self.convert( round( y1))), ( 'fill', self.cc( p.line_color))))
def get_CML_dom( self, doc): if self.not_enough_data(): return None # raise cml_exception( "missing "+str( self.not_enough_data())+" in atom specification") out = doc.createElement( 'atom') #id dom_ext.textOnlyElementUnder( out, 'string', str( self.id), (('builtin','atomId'), ('convention','CML'))) #name dom_ext.textOnlyElementUnder( out, 'string', str( self.symbol), (('builtin','elementType'), ('convention','CML'))) # x, y if self.z is None: dom_ext.textOnlyElementUnder( out, 'float', str( self.x), (('builtin','x2'),)) dom_ext.textOnlyElementUnder( out, 'float', str( self.y), (('builtin','y2'),)) else: dom_ext.textOnlyElementUnder( out, 'float', str( self.x), (('builtin','x3'),)) dom_ext.textOnlyElementUnder( out, 'float', str( self.y), (('builtin','y3'),)) dom_ext.textOnlyElementUnder( out, 'float', str( self.z), (('builtin','z3'),)) return out