Changeset 287 in main


Ignore:
Timestamp:
09/14/11 08:43:42 (8 years ago)
Author:
pcosquer
Message:

navigate: replace image mab by div and anchor

Location:
trunk/openPLM
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/openPLM/media/css/openplm.css

    r282 r287  
    434434} 
    435435 
     436div#DivNav { 
     437position: absolute; 
     438} 
     439 
     440div.node > a > span { 
     441    position:absolute; 
     442    width:100%; 
     443    height:100%; 
     444    top:0; 
     445    left:0; 
     446    text-decoration:none; 
     447} 
     448 
     449 
    436450img#ImgNav 
    437451{ 
  • trunk/openPLM/media/js/navigate.js

    r279 r287  
    1212    .bind('click', function(){ 
    1313      // Move slideInner using left attribute for position 
    14       $('#ImgNav').animate({ 
     14      $('#DivNav').animate({ 
    1515        "left": "-=100px" 
    1616      }, "fast"); 
     
    2121    .bind('click', function(){ 
    2222      // Move slideInner using left attribute for position 
    23       $('#ImgNav').animate({ 
     23      $('#DivNav').animate({ 
    2424        "left": "+=100px" 
    2525      }, "fast"); 
     
    3030    .bind('click', function(){ 
    3131      // Move slideInner using top attribute for position 
    32       $('#ImgNav').animate({ 
     32      $('#DivNav').animate({ 
    3333        "top": "+=100px" 
    3434      }, "fast"); 
     
    3939    .bind('click', function(){ 
    4040      // Move slideInner using left attribute for position 
    41       $('#ImgNav').animate({ 
     41      $('#DivNav').animate({ 
    4242        "top": "-=100px" 
    4343      }, "fast"); 
    4444    }); 
    4545 
    46   $("#ImgNav").draggable({ 
     46  $("#DivNav").draggable({ 
    4747      cursor: 'crosshair' 
    4848      }); 
  • trunk/openPLM/plmapp/navigate.py

    r284 r287  
    3131import warnings 
    3232import cStringIO as StringIO 
     33import xml.etree.cElementTree as ET 
    3334 
    3435import pygraphviz as pgv 
     
    111112                             "request_notification_from", OSR)  
    112113        self.options = dict.fromkeys(self.options_list, False) 
    113      
    114114        self.graph = pgv.AGraph() 
    115         self.graph.clear() 
    116115        self.graph.graph_attr.update(self.GRAPH_ATTRIBUTES) 
    117116        self.graph.node_attr.update(self.NODE_ATTRIBUTES) 
    118117        self.graph.edge_attr.update(self.EDGE_ATTRIBUTES) 
    119      
     118 
    120119    def set_options(self, options): 
    121120        """ 
     
    266265                         OSR : (lambda *args: None, None), } 
    267266        for field, value in self.options.items(): 
    268             if value:  
     267            if value: 
    269268                function, argument = functions_dic[field] 
    270269                function(self.object, argument) 
     
    288287        node.attr["tooltip"] = node.attr["label"].replace("\\n", " ") 
    289288 
     289 
     290    def convert_map(self, map_string): 
     291        elements = [] 
     292        for area in ET.fromstring(map_string).findall("area"): 
     293            left, top, x2, y2 = map(int, area.get("coords").split(",")) 
     294            width = x2 - left 
     295            height = y2 - top 
     296            style = "position:absolute;z-index:5;top:%dpx;left:%dpx;width:%dpx;height:%dpx;" % (top, left, width, height) 
     297            div = ET.Element("div", id="Nav-%s" % area.get("id"), style=style) 
     298            div.set("class", "node") 
     299            a = ET.SubElement(div, "a", href=area.get("href"))  
     300            ET.SubElement(a, "span") 
     301            elements.append(div) 
     302 
     303        s = "\n".join(ET.tostring(div) for div in elements) 
     304        return s 
     305 
    290306    def render(self): 
    291307        """ 
     
    295311        """ 
    296312        warnings.simplefilter('ignore', RuntimeWarning) 
    297          
    298313        # rebuild a frozen graph with sorted edges to avoid random output 
    299314        edges = self.graph.edges() 
     
    322337        self.graph.clear() 
    323338        warnings.simplefilter('default', RuntimeWarning) 
    324         return map_string, picture_path 
    325  
     339        return self.convert_map(map_string), picture_path 
     340 
  • trunk/openPLM/plmapp/views.py

    r279 r287  
    14061406###                     Manage html pages for navigate function                        ### 
    14071407##########################################################################################     
    1408 regex_pattern = re.compile(r'coords\=\"(\d{1,5}),(\d{1,5}),(\d{1,5}),(\d{1,5})') 
     1408regex_pattern = re.compile(r'top:(\d+)px;left:(\d+)px;width:(\d+)px;height:(\d+)px;') 
    14091409 
    14101410@handle_errors 
     
    14541454    graph.create_edges() 
    14551455    map_string, picture_path = graph.render() 
    1456     x_1st_point, y_1st_point, x_2nd_point, y_2nd_point = map(int, 
     1456    top, left, w, h = map(int, 
    14571457                    re.search(regex_pattern, map_string).groups()) 
    1458     x_part_node_position = (x_1st_point + x_2nd_point) // 2 
    1459     y_part_node_position = (y_1st_point + y_2nd_point) // 2 
     1458    x_part_node_position = (2 * left + w) // 2 
     1459    y_part_node_position = (2 * top + h) // 2 
    14601460    x_img_position_corrected = 1172 // 2 - x_part_node_position 
    14611461    y_img_position_corrected = 500 // 2 - y_part_node_position 
Note: See TracChangeset for help on using the changeset viewer.