version 1.49, 2005/06/08 10:23:16
|
version 1.50, 2005/06/09 08:34:49
|
Line 186 class ECHO_basis:
|
Line 186 class ECHO_basis:
|
"""add a map area to this object""" |
"""add a map area to this object""" |
if (newarea.id is None): |
if (newarea.id is None): |
# create new id |
# create new id |
areas = self.getMapAreas() |
ids = [a.id for a in self.getMapAreas()] |
newarea.id = "a%02d"%len(areas) |
i = len(ids) |
|
while ("a%02d"%i in ids): |
|
# if it exists, try the next one |
|
i += 1 |
|
newarea.id = "a%02d"%i |
self._setObject(newarea.id, newarea) |
self._setObject(newarea.id, newarea) |
|
|
|
def getMapText(self): |
|
"""returns the MapText""" |
|
# get (the first) contained MapText |
|
res = self.ZopeFind(self, obj_metatypes=('ECHO_mapText')) |
|
if len(res) > 0: |
|
text = res[0][1] |
|
return text |
|
return None |
|
|
def ECHO_graphicEntry(self): |
def ECHO_graphicEntry(self): |
"""change map coordinates""" |
"""change map coordinates""" |
if self.hasParentOverview(): |
if self.hasParentOverview(): |
Line 238 class ECHO_basis:
|
Line 251 class ECHO_basis:
|
"""create area calls for JavaScript""" |
"""create area calls for JavaScript""" |
dynamical="\n" |
dynamical="\n" |
for ob in areas: |
for ob in areas: |
if ob.isTypeArrow(): |
dynamical+="""addArea('%s', 'overview', %s, '%s');\n"""%(ob.getFullId(),ob.getCoordString(),ob.getType()) |
dynamical+="""addArea('%s', 'overview', %s, 'arrow');\n"""%(ob.getFullId(),ob.getCoordString()) |
|
else: |
|
dynamical+="""addArea('%s', 'overview', %s, 'area');\n"""%(ob.getFullId(),ob.getCoordString()) |
|
return dynamical |
return dynamical |
|
|
def createMapHead(self): |
def createMapHead(self): |
Line 275 class ECHO_basis:
|
Line 285 class ECHO_basis:
|
text = ob.getLabel() |
text = ob.getLabel() |
if text is None: |
if text is None: |
text = "link" |
text = "link" |
tiptext = ob.getText() |
tiptext = ob.getTip() |
tag = "" |
tag = "" |
if bt.isN4: |
if bt.isN4: |
# N4 needs layer for highlighting |
# N4 needs layer for highlighting |
Line 294 class ECHO_basis:
|
Line 304 class ECHO_basis:
|
bt = BrowserCheck(self) |
bt = BrowserCheck(self) |
id = ob.getFullId() |
id = ob.getFullId() |
link = ob.getLinkId() |
link = ob.getLinkId() |
tiptext = ob.getText() |
tiptext = ob.getTip() |
tag = "" |
tag = "" |
|
|
if bt.isN4: |
if bt.isN4: |
Line 320 class ECHO_basis:
|
Line 330 class ECHO_basis:
|
else: |
else: |
# arrow image |
# arrow image |
tag += '<img id="i.%s" src="%s&rot=%s" border="1" style="position:absolute; top:-100px; left:-100px; border-style:none;" />'%(id,arrowsrc,rot) |
tag += '<img id="i.%s" src="%s&rot=%s" border="1" style="position:absolute; top:-100px; left:-100px; border-style:none;" />'%(id,arrowsrc,rot) |
|
elif ob.isTypeText(): |
|
# div for area |
|
tag += '<div id="i.%s" style="position:absolute; top:-100px; left:-100px;"'%(id) |
|
if tiptext: |
|
tag += ' title="%s"'%tiptext |
|
tag += '><div id="t.%s" class="maptext">'%(id) |
|
tag += ob.getText() |
|
tag += '</div></div>' |
else: |
else: |
if bt.isIE: |
if bt.isIE: |
# IE needs transparent img for area |
# IE needs transparent img for area |
Line 328 class ECHO_basis:
|
Line 346 class ECHO_basis:
|
tag += ' title="%s"'%tiptext |
tag += ' title="%s"'%tiptext |
tag += " />" |
tag += " />" |
else: |
else: |
# div for area |
# empty div for area |
tag += '<div id="i.%s" style="position:absolute; top:-100px; left:-100px;"'%(id) |
tag += '<div id="i.%s" style="position:absolute; top:-100px; left:-100px;"'%(id) |
if tiptext: |
if tiptext: |
tag += ' title="%s"'%tiptext |
tag += ' title="%s"'%tiptext |
Line 348 def toList(field):
|
Line 366 def toList(field):
|
return field |
return field |
|
|
def getText(nodelist): |
def getText(nodelist): |
|
|
rc = "" |
rc = "" |
for node in nodelist: |
for node in nodelist: |
if node.nodeType == node.TEXT_NODE: |
if node.nodeType == node.TEXT_NODE: |
Line 876 class MapArea(SimpleItem):
|
Line 893 class MapArea(SimpleItem):
|
# type constants |
# type constants |
TYPE_AREA = 'area' |
TYPE_AREA = 'area' |
TYPE_ARROW = 'arrow' |
TYPE_ARROW = 'arrow' |
|
TYPE_TEXT = 'text' |
|
|
def __init__(self, id, coords, label=None, type=None, text=None): |
def __init__(self, id, coords, label=None, type=None, tip=None, volatile=True): |
"""init""" |
"""init""" |
self.coords = coords[0:4] |
self.coords = coords[0:4] |
if len(coords) > 4: |
if len(coords) > 4: |
Line 887 class MapArea(SimpleItem):
|
Line 905 class MapArea(SimpleItem):
|
self.id = id |
self.id = id |
self.label = label |
self.label = label |
self.setType(type) |
self.setType(type) |
self.text = text |
self.tip = tip |
|
self.volatile = volatile |
|
|
def setCoords(self, coords): |
def setCoords(self, coords): |
"""sets the coords""" |
"""sets the coords""" |
Line 922 class MapArea(SimpleItem):
|
Line 941 class MapArea(SimpleItem):
|
self.type = MapArea.TYPE_ARROW |
self.type = MapArea.TYPE_ARROW |
elif type == MapArea.TYPE_AREA: |
elif type == MapArea.TYPE_AREA: |
self.type = MapArea.TYPE_AREA |
self.type = MapArea.TYPE_AREA |
|
elif type == MapArea.TYPE_TEXT: |
|
self.type = MapArea.TYPE_TEXT |
else: |
else: |
self.type = MapArea.TYPE_AREA |
self.type = MapArea.TYPE_AREA |
|
|
Line 933 class MapArea(SimpleItem):
|
Line 954 class MapArea(SimpleItem):
|
"""returns if the type is arrow""" |
"""returns if the type is arrow""" |
return self.type == MapArea.TYPE_ARROW |
return self.type == MapArea.TYPE_ARROW |
|
|
|
def isTypeText(self): |
|
"""returns if the type is text""" |
|
return self.type == MapArea.TYPE_TEXT |
|
|
def getAngle(self): |
def getAngle(self): |
"""returns the angle""" |
"""returns the angle""" |
return self.angle |
return self.angle |
Line 941 class MapArea(SimpleItem):
|
Line 966 class MapArea(SimpleItem):
|
"""sets the angle""" |
"""sets the angle""" |
self.angle = angle |
self.angle = angle |
|
|
def getText(self): |
def getTip(self): |
"""returns the popup text""" |
"""returns the popup text""" |
if self.text is None: |
# patch old version |
|
if not hasattr(self, 'tip'): |
|
self.tip = self.text |
|
|
|
if self.tip is None: |
if hasattr(self, 'aq_parent'): |
if hasattr(self, 'aq_parent'): |
parent = self.aq_parent |
parent = self.aq_parent |
if parent.contentType == 'text-popup': |
if parent.contentType == 'text-popup': |
return parent.description |
return parent.description |
return self.text |
return self.tip |
|
|
def setText(self, text): |
def setTip(self, text): |
"""sets the text""" |
"""sets the text""" |
self.text = text |
self.tiptext = text |
|
|
|
def getText(self): |
|
"""returns the text fpr the area""" |
|
if hasattr(self, 'aq_parent'): |
|
parent = self.aq_parent |
|
text = parent.getMapText() |
|
if text is not None: |
|
return text.document_src() |
|
return "" |
|
|
def getLabel(self): |
def getLabel(self): |
"""returns the link label""" |
"""returns the link label""" |
Line 970 class MapArea(SimpleItem):
|
Line 1008 class MapArea(SimpleItem):
|
return self.aq_parent.id |
return self.aq_parent.id |
return self.id |
return self.id |
|
|
|
|
# call this to initialize framework classes, which |
# call this to initialize framework classes, which |
# does the right thing with the security assertions. |
# does the right thing with the security assertions. |
Globals.InitializeClass(MapArea) |
Globals.InitializeClass(MapArea) |
Line 985 class MapText(ZopePageTemplate):
|
Line 1022 class MapText(ZopePageTemplate):
|
security.setDefaultAccess("allow") |
security.setDefaultAccess("allow") |
|
|
_default_content_fn = os.path.join(package_home(globals()), |
_default_content_fn = os.path.join(package_home(globals()), |
'zpt', 'ECHO_mapText_default.html') |
'html', 'ECHO_mapText_default.html') |
|
|
def __init__(self, id, text=None, content_type=None): |
def __init__(self, id, text=None, content_type=None): |
self.id = str(id) |
self.id = str(id) |