//-*-c++-*-
#ifndef TULIP_SELECTIONPROXY_H
#define TULIP_SELECTIONPROXY_H

#include "PropertyProxy.h"
#include "MethodFactory.h"
#include "TemplateFactory.h"

class PropertyContext;


///
class SelectionProxy:public PropertyProxy<BooleanType,BooleanType>
{ 
  ///
  friend class Selection;

public:
  static TemplateFactory<SelectionFactory,Selection,PropertyContext *> factory;

private:
  Selection *currentSelection;

public :
  ///
  SelectionProxy (PropertyContext *context);
  ///
  ~SelectionProxy();
  ///
  bool reCompute(std::string &erreurMsg);
  ///
  bool select(std::string , std::string &);
  ///
  void reset_handler();
  ///
  void recompute_handler();  
  ///Effectue un not sur tous les élément visible du proxy
  void reverse();
  ///hide all the element of the visible graph which are true in this Selection Proxy
  ///Also deprecated ou bien à ne mettre que dans le module de vue.
  void hideSelection();
  ///reverse all the direction of edges of the visible graph which are true in this Selection Proxy
  void reverseEdgeDirection();
};



#endif








