COIN-OR::LEMON - Graph Library

Changeset 172:fc1e478697d3 in glemon-0.x for graph_displayer_canvas.cc


Ignore:
Timestamp:
10/25/06 15:21:24 (18 years ago)
Author:
Hegyi Péter
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/glemon/trunk@3017
Message:

Currently visualized map can be saved and loaded from file.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • graph_displayer_canvas.cc

    r168 r172  
    88  isbutton(0), active_item(NULL), target_item(NULL), nodemap_to_edit(""),
    99  edgemap_to_edit(""), autoscale(true), zoomtrack(false), radius_size(20), edge_width(10),
    10   iterations(20), attraction(0.05), propulsation(40000), was_redesigned(false), mytab(mainw)
     10  iterations(20), attraction(0.05), propulsation(40000), was_redesigned(false), is_drawn(false), mytab(mainw)
    1111{
    1212  //base event handler is move tool
     
    6464void GraphDisplayerCanvas::propertyUpdate(Node node, int prop)
    6565{
    66   //dummy=dummy;
    67 
    6866  std::string mapname=mytab.getActiveNodeMap(prop);
    6967
    70   if(mapname!="")
    71     {
    72       if( ( ((mytab.mapstorage).nodemap_storage).find(mapname) != ((mytab.mapstorage).nodemap_storage).end() ) )
    73         {
     68  if(is_drawn)
     69    {
     70      if(mapname!="")
     71        {
     72          if( ( ((mytab.mapstorage).nodemap_storage).find(mapname) != ((mytab.mapstorage).nodemap_storage).end() ) )
     73            {
     74              switch(prop)
     75                {
     76                case N_RADIUS:
     77                  changeNodeRadius(mapname, node);
     78                  break;
     79                case N_COLOR:
     80                  changeNodeColor(mapname, node);
     81                  break;
     82                case N_TEXT:
     83                  changeNodeText(mapname, node);
     84                  break;
     85                default:
     86                  std::cerr<<"Error\n";
     87                }
     88            }
     89        }
     90      else //mapname==""
     91        {
     92          Node node=INVALID;   
    7493          switch(prop)
    7594            {
    7695            case N_RADIUS:
    77               changeNodeRadius(mapname, node);
     96              resetNodeRadius(node);
    7897              break;
    7998            case N_COLOR:
    80               changeNodeColor(mapname, node);
     99              resetNodeColor(node);
    81100              break;
    82101            case N_TEXT:
    83               changeNodeText(mapname, node);
     102              resetNodeText(node);
    84103              break;
    85104            default:
     
    88107        }
    89108    }
    90   else //mapname==""
    91     {
    92       Node node=INVALID;       
    93       switch(prop)
    94         {
    95         case N_RADIUS:
    96           resetNodeRadius(node);
    97           break;
    98         case N_COLOR:
    99           resetNodeColor(node);
    100           break;
    101         case N_TEXT:
    102           resetNodeText(node);
    103           break;
    104         default:
    105           std::cerr<<"Error\n";
    106         }
    107     }
    108 
    109109}
    110110
    111111void GraphDisplayerCanvas::propertyUpdate(Edge edge, int prop)
    112112{
    113   //dummy=dummy;
    114 
    115113  std::string mapname=mytab.getActiveEdgeMap(prop);
    116114
    117   if(mapname!="")
    118     {
    119       if( ( ((mytab.mapstorage).edgemap_storage).find(mapname) != ((mytab.mapstorage).edgemap_storage).end() ) )
     115  if(is_drawn)
     116    {
     117      if(mapname!="")
     118        {
     119          if( ( ((mytab.mapstorage).edgemap_storage).find(mapname) != ((mytab.mapstorage).edgemap_storage).end() ) )
     120            {
     121              switch(prop)
     122                {
     123                case E_WIDTH:
     124                  changeEdgeWidth(mapname, edge);
     125                  break;
     126                case E_COLOR:
     127                  changeEdgeColor(mapname, edge);
     128                  break;
     129                case E_TEXT:
     130                  changeEdgeText(mapname, edge);
     131                  break;
     132                default:
     133                  std::cerr<<"Error\n";
     134                }
     135            }
     136        }
     137      else //mapname==""
    120138        {
    121139          switch(prop)
    122140            {
    123141            case E_WIDTH:
    124               changeEdgeWidth(mapname, edge);
     142              resetEdgeWidth(edge);
    125143              break;
    126144            case E_COLOR:
    127               changeEdgeColor(mapname, edge);
     145              resetEdgeColor(edge);
    128146              break;
    129147            case E_TEXT:
    130               changeEdgeText(mapname, edge);
     148              resetEdgeText(edge);
    131149              break;
    132150            default:
    133151              std::cerr<<"Error\n";
    134152            }
    135         }
    136     }
    137   else //mapname==""
    138     {
    139       switch(prop)
    140         {
    141         case E_WIDTH:
    142           resetEdgeWidth(edge);
    143           break;
    144         case E_COLOR:
    145           resetEdgeColor(edge);
    146           break;
    147         case E_TEXT:
    148           resetEdgeText(edge);
    149           break;
    150         default:
    151           std::cerr<<"Error\n";
    152153        }
    153154    }
     
    208209  }
    209210
     211  is_drawn=true;
     212
     213  //upon drawing graph
     214  //properties have to
     215  //be set in as well
     216  for(int i=0;i<NODE_PROPERTY_NUM;i++)
     217    {
     218      propertyUpdate(Node(INVALID), i);
     219    }
     220
     221  for(int i=0;i<EDGE_PROPERTY_NUM;i++)
     222    {
     223      propertyUpdate(Edge(INVALID), i);
     224    }
     225
    210226  updateScrollRegion();
    211227}
     
    228244    delete edgetextmap[e];
    229245  }
     246
     247  is_drawn=false;
    230248}
    231249
Note: See TracChangeset for help on using the changeset viewer.